Очень нужна помощь. Отчаялся уже. Шлюз на ClearOS (клон CentOS)
1) Провайдериспользуюет протокол IGMP 2й версии
# echo "2" > /proc/sys/net/ipv4/conf/eth0/force_igmp_version
2) Интернет поднят на PPPoE на eth0. Раздается во внутреннюю сетку на eth1 через igmpproxy
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:19:DB:30:46:58
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::219:dbff:fe30:4658/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2329001 errors:0 dropped:0 overruns:0 frame:0
TX packets:1481082 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2667397441 (2.4 GiB) TX bytes:373980121 (356.6 MiB)
Memory:de740000-de760000
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:80.x.x.x P-t-P:80.x.x.x Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:2171004 errors:0 dropped:0 overruns:0 frame:0
TX packets:1475356 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2595939334 (2.4 GiB) TX bytes:341569297 (325.7 MiB)
# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:19:DB:30:46:59
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::219:dbff:fe30:4659/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1893283 errors:0 dropped:0 overruns:0 frame:0
TX packets:2553448 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:999780464 (953.4 MiB) TX bytes:2369267923 (2.2 GiB)
Memory:de780000-de7a0000
Фрагмент /etc/rc.d/rc.firewall.local, относящийся к делу
iptables -A INPUT -o eth0 -p igmp -j ACCEPT
iptables -A INPUT -m udp -p udp -d 224.0.0.0/4 -j ACCEPT
iptables -t filter -A FORWARD -d 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t filter -A FORWARD -s 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1
Т.к. инет идет на ppp0, а телевидение должно на eth0, (Таблица каналов провайдера состоит сплошь из адресов вида udp://@239.1.1.x:1234)
ip route add 224.0.0.0/4 metric 50 dev eth0
Итого, таблица маршрутизации:
# ip r
80.x.x.x dev ppp0 proto kernel scope link src 80.x.x.x
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.1
192.168.4.0/24 dev eth4 proto kernel scope link src 192.168.4.1
192.168.3.0/24 dev eth3 proto kernel scope link src 192.168.3.1
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.1
224.0.0.0/4 dev eth0 scope link metric 50
default via 192.168.2.3 dev eth2
Интерфейсы, которые можно игнорировать:
eth2=192.168.2.1
eth3=192.168.3.1
eth4=192.168.4.1
3) Настройка igmpproxy
# cat /usr/local/etc/igmpproxy.conf
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
##------------------------------------------------------
phyint eth0 upstream ratelimit 0 threshold 1
altnet 192.168.100.0/24
altnet 224.0.0.0/4
##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint eth1 downstream ratelimit 0 threshold 1
altnet 192.168.10.0/24
##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint eth2 disabled
phyint eth3 disabled
phyint eth4 disabled
phyint ppp0 disabled
phyint lo disabled
4) странно, что tcpdump пуст
# tcpdump -vvv -i eth0 igmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
0 packets captured
9 packets received by filter
0 packets dropped by kernel
5) при запуске igmpproxy имеем примерно следующее
adding VIF, Ix 0 Fl 0x0 IP 0x0104a8c0 eth4, Threshold: 1, Ratelimit: 0
adding VIF, Ix 1 Fl 0x0 IP 0x0103a8c0 eth3, Threshold: 1, Ratelimit: 0
adding VIF, Ix 2 Fl 0x0 IP 0x0102a8c0 eth2, Threshold: 1, Ratelimit: 0
adding VIF, Ix 3 Fl 0x0 IP 0x0164a8c0 eth0, Threshold: 1, Ratelimit: 0
adding VIF, Ix 4 Fl 0x0 IP 0x010aa8c0 eth1, Threshold: 1, Ratelimit: 0
adding VIF, Ix 5 Fl 0x0 IP 0x03eff950 ppp0, Threshold: 1, Ratelimit: 0
joinMcGroup: 224.0.0.2 on eth1
RECV Membership query from 192.168.10.1 to 224.0.0.1
RECV V2 member report from 192.168.10.165 to 239.255.255.250
Inserted route table entry for 239.255.255.250 on VIF #4
joinMcGroup: 239.255.255.250 on eth0
The source address 192.168.10.97 for group 239.255.255.250, is not in any valid net for upstream VIF.
The source address 192.168.10.72 for group 239.255.255.250, is not in any valid net for upstream VIF.
The source address 192.168.4.5 for group 239.255.0.1, is not in any valid net for upstream VIF.
RECV V2 member report from 192.168.10.8 to 239.1.1.3
Inserted route table entry for 239.1.1.3 on VIF #4
.......
joinMcGroup: 239.1.1.9 on eth0
RECV Membership query from 192.168.10.1 to 239.1.1.7
RECV V2 member report from 192.168.10.8 to 239.1.1.9
Updated route entry for 239.1.1.9 on VIF #4
Route is not active. No kernel updates done.
RECV Membership query from 192.168.10.1 to 239.1.1.19
RECV V2 member report from 192.168.10.8 to 239.1.1.9
Updated route entry for 239.1.1.9 on VIF #4
RECV V1 member report from 192.168.10.23 to 239.255.255.250
Updated route entry for 239.255.255.250 on VIF #4
RECV V1 member report from 192.168.10.23 to 239.255.255.253
Updated route entry for 239.255.255.253 on VIF #4
RECV Leave message from 192.168.10.8 to 224.0.0.2
leaveMcGroup: 239.1.1.16 on eth0
RECV Membership query from 192.168.10.1 to 239.1.1.16
RECV V2 member report from 192.168.10.8 to 239.1.1.17
Inserted route table entry for 239.1.1.17 on VIF #4
joinMcGroup: 239.1.1.17 on eth0
RECV Leave message from 192.168.10.8 to 224.0.0.2
leaveMcGroup: 239.1.1.17 on eth0
RECV Membership query from 192.168.10.1 to 239.1.1.17
RECV V2 member report from 192.168.10.8 to 239.1.1.18
Inserted route table entry for 239.1.1.18 on VIF #4
joinMcGroup: 239.1.1.18 on eth0
The source address 192.168.4.5 for group 239.255.0.1, is not in any valid net for upstream VIF.
RECV V2 member report from 192.168.10.8 to 239.1.1.18
Updated route entry for 239.1.1.18 on VIF #4
RECV V2 member report from 192.168.10.8 to 239.1.1.18
Updated route entry for 239.1.1.18 on VIF #4
RECV Membership query from 192.168.10.1 to 239.1.1.7
Route is not active. No kernel updates done.
RECV Membership query from 192.168.10.1 to 239.1.1.16
select() failure; Errno(4): Interrupted system call
Got a interupt signal. Exiting.
Route is not active. No kernel updates done.
leaveMcGroup: 239.1.1.7 on eth0
MRT_DROP_MEMBERSHIP failed; Errno(99): Cannot assign requested address
Route is not active. No kernel updates done.
leaveMcGroup: 239.1.1.9 on eth0
Route is not active. No kernel updates done.
leaveMcGroup: 239.1.1.16 on eth0
MRT_DROP_MEMBERSHIP failed; Errno(99): Cannot assign requested address
Route is not active. No kernel updates done.
leaveMcGroup: 239.1.1.17 on eth0
MRT_DROP_MEMBERSHIP failed; Errno(99): Cannot assign requested address
Route is not active. No kernel updates done.
leaveMcGroup: 239.1.1.18 on eth0
Route is not active. No kernel updates done.
leaveMcGroup: 224.0.1.127 on eth0
Route is not active. No kernel updates done.
leaveMcGroup: 239.255.255.250 on eth0
Route is not active. No kernel updates done.
leaveMcGroup: 239.255.255.253 on eth0
All routes removed. Routing table is empty.
Shutdown complete....
Уже несколько дней борюсь. На ноуте, непосредственно подключенном к конвертору от оптики, показывает нормально, правда при поднятии pppoe затыкается, но это наверняка из-за маршрута.