Предварительно проверяем наличие IPTV на порту !!!
Работает , отлично , и на ноуте, который за DIR300 . И на компе .
с таким набором ... нащупал ...
Схема .
inet - (em0)Freebsd(rl1_10.11.6.200/23)
/
switch(гавно) ---------- winXP (10.11.6.40/23)
|
(10.11.7.200/23) dir300(192.168.200.200/24) - winXP(192.168.200.201/24)
8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #2 - на 7.2 тот же набор - НЕ пошел !
набрел в статье , мол таки да ...
#ядро
### igmp
options MROUTING
### POLLING
options DEVICE_POLLING
options HZ=1000
# --------
igmpproxy - ставил из портов .
cat /usr/local/etc/igmpproxy.conf |grep -Evi '^#|^$'
quickleave
phyint em0 upstream ratelimit 0 threshold 1
altnet 10.5.200.1/32
# 10.5.200.1/32 - Freebsd провайдера у Вас другой , (не уверен , нужно ли ... )
# но
# tcpdump -vvv -nnpi rl1
# 23:05:48.488247 IP (tos 0xe0, ttl 62, id 0, offset 0, flags [DF], proto UDP (17), length 1344)
# 10.5.200.1.49152 > 238.0.16.41.1234: [no cksum] UDP, length 1316
### tcpdump -nnpi em0
#23:46:13.113268 IP 10.5.200.1.49152 > 238.0.16.41.1234: UDP, length 1316
## собсно поток .
phyint rl1 downstream ratelimit 0 threshold 1
phyint rl0 disabled
phyint ng0 disabled
phyint lo0 disabled
phyint plip0 disabled
# необходимо disabled - на ВСЕХ не нужных интерфейсах!
# --------------------------------- end /usr/local/etc/igmpproxy.conf
# === ipfw фильтрация (топор) (в гавно-свитч еще локалка была включена ...)
table\(33\) - em0_ip(внешний) и rl1_ip(внутренний)
/sbin/ipfw -q add 746 pass igmp from table\(33\) to 224.0.0.0/4
#/sbin/ipfw -q add 750 drop igmp from any to 224.0.0.0/4 in via rl1
#
#ващето , достатодчно кажется 224.0.0.2/32 ну мож еще 224.0.0.1/32
# лишнее провайдер обрезает . * сноска1 (в PS !)
#___ PF !!! (Natит , без этих строк - не работало .)
# less /etc/pf.conf
pass in proto igmp all allow-opts
pass out proto igmp all allow-opts
( process , его автозапуск rc.local
###### ps auwx |grep -i igmp
root 1054 0,0 0,1 3284 1100 v0- S 9:57 0:00,77 /usr/local/sbin/igmpproxy /usr/local/etc/igmpproxy.conf
#######less /usr/local/etc/rc.d/rc-local.sh
#igmpproxy
/usr/local/sbin/igmpproxy /usr/local/etc/igmpproxy.conf &
# - (амперсант в конце строки ... )
)
##### TCPDUMP
#rl1 (внутренний ) tcpdump -nnpi rl1 | grep -i 'igmp'
#- клацаю по каналу с WinXP 10.11.6.40
23:20:50.376602 IP 10.11.6.40 > 224.0.0.2: igmp leave 238.0.16.32
23:20:50.377349 IP 10.11.6.200 > 238.0.16.32: igmp query v2 [gaddr 238.0.16.32]
23:20:50.614001 IP 10.11.6.40 > 238.0.16.41: igmp v2 report 238.0.16.41
23:20:51.600241 IP 10.11.6.40 > 238.0.16.41: igmp v2 report 238.0.16.41
23:20:52.600325 IP 10.11.6.40 > 238.0.16.41: igmp v2 report 238.0.16.41
#em0 (внешний) tcpdump -nnpi em0 | grep -i 'igmp'
#- переключаю канал WinXP 10.11.6.40
23:27:00.550944 IP 99.99.99.200 > 224.0.0.2: igmp leave 238.0.16.39
23:27:00.567214 IP 99.99.99.254 > 238.0.16.39: igmp query v2 [max resp time 10] [gaddr 238.0.16.39]
23:27:00.685212 IP 99.99.99.200 > 238.0.16.27: igmp v2 report 238.0.16.27
23:27:00.745008 IP 99.99.99.254 > 238.0.16.39: igmp query v2 [max resp time 10] [gaddr 238.0.16.39]
## IPTVplayer на 2-х компах TRAFSHOW
10.5.200.1..49152 238.0.16.41..1234 udp 8211840 348364
10.5.200.1..49152 238.0.16.24..1234 udp 3338496 137088
Удачи
PS
INET - dlink DES-3028 провайдера
на влане включен igmp_snooping
create mcast_filter_profile profile_id 1 profile_name qqq
create mcast_filter_profile profile_id 9 profile_name test
config mcast_filter_profile profile_id 1 add 224.0.0.2-224.0.0.2
(**сноска1 = !!! работает ... если открыть 224.0.0.0/24 - пров отключит за ALL GROUPS !
)
config mcast_filter_profile profile_id 9 add 238.0.0.0-238.255.255.255 (тут мультик ... )
show limited_multicast_addr ports 24 (мой)
Max Multicast Filter Group:
Port: 24
Profile Id: 1,9