Static Multicast Routing: различия между версиями

Материал из ALT Linux Wiki
Строка 34: Строка 34:
Файл '''/etc/igmpproxy.conf''':
Файл '''/etc/igmpproxy.conf''':


  quickleave
  # Раскомментируйте параметр quickleave
  phyint eth0 upstream
# если внутри всего лишь один клиент IP TV
altnet 0.0.0.0/0
#quickleave
  phyint eth1 downstream
  phyint eth0 upstream ratelimit 0  threshold 1
        altnet 192.168.0.0/24
phyint eth1 downstream  ratelimit 0  threshold 1
 
В параметрах altnet обычно указываются маски сети, в которых разрешена маршрутизация. В примере ''192.168.0.0/24'' — маска локальной сети.
 
=== Настройка маршрутизации ===
 
1. Шлюз должен быть настроен для маршрутизации сетевых пакетов:
* Находится в режиме "Шлюз" в модуле "Брандмауэр" в дистрибутивах на базе Пятой платформы;
* или настраиваем вручную:
 
echo 1 > /proc/sys/net/ipv4/conf/default/forwarding
 
Отключаем reverse path filtering:
 
echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
 
Для ядер 2.6.x указываем версию IGMP (igmpproxy поддерживает только IGMPv1 и IGMPv2 на внутреннем интерфейсе):
echo 1 >  /proc/sys/net/ipv4/conf/eth0/force_igmp_version
echo 1 >  /proc/sys/net/ipv4/conf/eth1/force_igmp_version
 
2. Проверяем готовность к маршрутизации:
 
[root@ham1 ~]# less /proc/config.gz | grep '\(MROUTE\|MULTICAST\)'
CONFIG_IP_MULTICAST=y
CONFIG_IP_MROUTE=y
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/default/forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/mc_forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/mc_forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/rp_filter
0
  [root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth1/force_igmp_version
1
 
3. Запускаем igmpproxy
[root@ham1 ~]# /usr/sbin/igmpproxy /etc/igmpproxy.conf

Версия от 11:32, 12 мая 2010


Настройка статической multicast-маршрутизации на дистрибутивах ALT Linux.

Ссылки

Общие понятия

Рассмотрим типичную схему multicast-маршрутизации с выделенным сервером, имеющим два сетевых интерфейса:

  • eth0 — публичный интерфейс, на который придет поток от провайдера;
  • eth1 — интерфейс в локальную сеть, в которой находятся клиенты.


Типовая схема multicast-маршрутизации

Подготовка шлюза

Для начала необходимо установить дистрибутив ALT Linux и пакет igmpproxy из соответствующего репозитория:

apt-get update
apt-get install igmpproxy

Также необходимы пакеты iptables net-tools iproute2, в дистрибутивах ALT Linux они присутствуют по умолчанию.

Для мониторинга можно установить пакеты tcpdump и wireshark

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

Файл /etc/igmpproxy.conf:

# Раскомментируйте параметр quickleave
# если внутри всего лишь один клиент IP TV 
#quickleave
phyint eth0 upstream  ratelimit 0  threshold 1
       altnet 192.168.0.0/24
phyint eth1 downstream  ratelimit 0  threshold 1

В параметрах altnet обычно указываются маски сети, в которых разрешена маршрутизация. В примере 192.168.0.0/24 — маска локальной сети.

Настройка маршрутизации

1. Шлюз должен быть настроен для маршрутизации сетевых пакетов:

  • Находится в режиме "Шлюз" в модуле "Брандмауэр" в дистрибутивах на базе Пятой платформы;
  • или настраиваем вручную:
echo 1 > /proc/sys/net/ipv4/conf/default/forwarding

Отключаем reverse path filtering:

echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter

Для ядер 2.6.x указываем версию IGMP (igmpproxy поддерживает только IGMPv1 и IGMPv2 на внутреннем интерфейсе):

echo 1 >  /proc/sys/net/ipv4/conf/eth0/force_igmp_version
echo 1 >  /proc/sys/net/ipv4/conf/eth1/force_igmp_version

2. Проверяем готовность к маршрутизации:

[root@ham1 ~]# less /proc/config.gz | grep '\(MROUTE\|MULTICAST\)'
CONFIG_IP_MULTICAST=y
CONFIG_IP_MROUTE=y
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/default/forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/mc_forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/mc_forwarding
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/rp_filter
0
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
1
[root@ham1 ~]# cat /proc/sys/net/ipv4/conf/eth1/force_igmp_version
1

3. Запускаем igmpproxy

[root@ham1 ~]# /usr/sbin/igmpproxy /etc/igmpproxy.conf