Назад | Перейти на главную страницу

многоадресная маршрутизация - CentOS 5

Я пытаюсь передать поток многоадресной передачи с интерфейса eth1 (192.168.20.41) на интерфейс tun0 (192.168.100.40) на CentOS 5.

Я вижу входящий многоадресный поток на eth1:

tcpdump -n -i eth1

type=1700 audit(1324681169.542:52): dev=eth1 prom=256 old_prom=0 auid=4294967295 ses=4294967295
Dec 23 17:59:29 localhost kernel: device eth1 entered promiscuous mode
Dec 23 17:59:29 localhost kernel: type=1700 audit(1324681169.542:52): dev=eth1 prom=256 old_prom=0 auid=4294967295 ses=4294967295
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
17:59:29.576192 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328
17:59:29.576277 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328
17:59:29.576801 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328

Но я не вижу многоадресную рассылку на интерфейсе tun0. Что я делаю не так? Конфигурация прилагается ниже:

Файл /etc/igmpproxy.conf:

phyint eth1 upstream  ratelimit 0  threshold 1
        altnet 192.168.100.0/24
phyint tun0 downstream  ratelimit 0  threshold 1
phyint eth0 disabled
phyint eth5 disabled

Конфигурация iptable:

iptables -A INPUT -p igmp -j ACCEPT
iptables -A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp -j ACCEPT
iptables -A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
modprobe ipt_TTL
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1

Адаптер tun0 - это туннель GRE через eth0: cat / etc / sysconfig / network-scripts / ifcfg-tun0

DEVICE=tun0
TYPE=GRE
ONBOOT=yes
MY_INNER_IPADDR=192.168.100.40
PEER_INNER_IPADDR=192.168.100.30
PEER_OUTER_IPADDR=192.168.20.30

Я считаю групповую маршрутизацию чем-то вроде черной магии, но вот несколько моментов ...

  • Проверьте, создает ли igmpproxy многоадресный маршрут, используя ip mroute команда.

  • Если это так, вероятно, ваше ядро ​​все еще фильтрует ввод.

  • Наиболее частая причина - отсутствие маршрута к источнику. Вы пробовали отключить iptables? Или используйте TRACE цель?

  • И если многоадресный маршрут не создан, я бы предложил использовать pimd (это то, что я использую для маршрутизации своих многоадресных IPTV).

  • И похоже, вы неправильно используете altnet. Согласно составленной документации, это означает

Specifies an additional subnet (network) attached to the physical interface described in the phyint entry. mask_len is the length of the network mask.

(не могу оставить комментарий, поэтому оставлю ответ)

Если я правильно понимаю, у вас есть система на 192.168.20.0/24, отправляющая многоадресный трафик в определенную группу 224.1.1.1, и вы хотите маршрутизировать этот трафик через туннельный интерфейс на промежуточном Linux-сервере.

Я не знаком с работой igmpproxy, но, судя по названию, подозреваю, что он отправляет эхом пакеты IGMP в удаленную локальную сеть. Это может не сработать для вашей реализации туннеля, потому что IGMP предназначен для работы только в локальной сети, а не в туннеле.

PIM будет вашим другом здесь - он позволит вашему Linux-устройству обмениваться информацией об источниках и группах многоадресной рассылки с другими маршрутизаторами.

Какая система завершает туннель GRE? Может ли он работать с PIM в плотном или разреженном режиме? Может ли локальный Linux-сервер запускать PIM, если вам нужно?

Быстрый Google раскрывает Linux Multicast HOWTO здесь.

HTH!