Итак, небольшая информация для желающих настроить Multicast Routing на
своей Fedora Core 6 уже работающей как маршрутизатор/NAT.
Для этого нам дополнительно понадобится igmpproxy, утилита управляющая
ядром ОС и конфигурирующего его как и куда слать необходимый поток,
берем тут: http://sourceforge.net/projects/igmpproxy
IGMP Proxy
качаем ее, делаем
# tar -zxf
igmpproxy-src-0.1-beta2.tar.gz
# cd igmpproxy/
# less README
# cd src/
# make && make install
Она установилась, скомпилировалась, выдала кучу варнингов, все ок.
Лезем в /etc/igmpproxy.conf
и приводим к примерно следующему виду, у
меня eth0 смотрит в
публичную сеть моего провайдера Mig Telecom, а eth1
в сетку квартиры. Если есть какие либо дополнительные адаптеры для них
тоже надо прописать конфигурацию, в частности либо задизаблить, либо
прописать что на них будут ломиться клиенты
##------------------------------------------------------
## Enable Quickleave mode (Sends
Leave instantly)
## Эту строчку раскомментируют
только в том случае,
## если внути всего лишь один
клиент IP TV
##------------------------------------------------------
#quickleave
##------------------------------------------------------
## Configuration for eth0
(Upstream Interface)
## Здесь указаны параметры для
публичного интерфейса,
## на который придет поток от
провайдера
##------------------------------------------------------
phyint eth0 upstream ratelimit
0 threshold 1
altnet 10.20.0.0/16
altnet 88.210.40.0/24
altnet 80.240.211.0/22
##------------------------------------------------------
## Configuration for eth1
(Downstream Interface)
## Типовая конфигурация для
внутреннего интерфейса
##------------------------------------------------------
phyint eth1 downstream ratelimit
0 threshold 1
##------------------------------------------------------
## Configuration for eth2
(Disabled Interface)
## eth2 в системе есть, но не
используется никем, отключаем
##------------------------------------------------------
phyint eth2 disabled
Запускаем igmpproxy и
переходим к небольшой конфигурации IPTables, без которой у меня не
заработало.
IP Tables
Вот этот набор правил понадобился для корректной работы FW, разрешается
весь входящий мультикст, разрешается его форвардинг и плюс ко всему
добавляем в TTL 1, без этого добавления отказывался работать напрочь.
modprobe ipt_TTL
iptables -t filter -A INPUT -d
224.0.0.0/240.0.0.0 -i eth0 -j ACCEPT
iptables -t filter -A INPUT -s
224.0.0.0/240.0.0.0 -i eth0 -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
Перед применением правил придется выполнить modprobe ipt_TTL чтоб корректно
работало добавление TTL и пакеты не отбрасывались. Ко мне они приходили
с минимальным TTL и дальнейшая маршрутизация была невозможна.
Собственно после именно этих действий оно заработало, вроде ничего не
забыл.