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

Маршрутизатор, использующий smcroute, прекращает маршрутизацию многоадресной рассылки через некоторое время

У меня проблема с многоадресной маршрутизацией на "с нуля" (Debian, а не LFS;)) linux router / firewall. Дома настроил пользователя и серверную сеть. Между ними находится маршрутизатор / брандмауэр (плата APU2E4), который, помимо прочего, должен маршрутизировать мультимедийные данные (UPnP) от медиа-сервера (контейнера на сервере Proxmox VE) клиентам. Для этого я использую smcroute. В течение нескольких месяцев все шло хорошо - и время от времени он переставал работать (не менял ни капли конфигурации). (Раньше у меня были подобные проблемы два или три раза, но я мог «решить» их, просто перезапустив брандмауэр.)

Через некоторое время после запуска smcroute tcpdump больше не обнаруживает ни одного из ожидаемых многоадресных пакетов на межсетевом экране (tcpdump -i enp1s0 host 239.255.255.250 and port 1900). До этого момента пакеты действительно поступали через этот интерфейс. (Я также проверил другие интерфейсы, но таких пакетов - UPnP - тоже нет. Но это ожидаемое поведение, поскольку клиенты должны и могут подключаться только к enp1s0.)

TTL рассматриваемых пакетов больше 1 (проверено на клиентском хосте). Я даже позволяю iptables на маршрутизаторе увеличивать TTL, если такой пакет имеет значение 1.

Когда кажется, что на enp1s0 больше нет пакетов ip maddress по-прежнему перечисляет этот интерфейс как член группы:

    2:  enp1s0
        link  33:33:00:00:00:01
        link  01:00:5e:00:00:01
        link  33:33:ff:54:2b:98
        link  01:00:5e:7f:ff:fa
        inet  239.255.255.250
        inet  224.0.0.1
        inet6 ff02::1:ff54:2b98 users 2
        inet6 ff02::1
        inet6 ff01::1

Но ip mroute больше не перечисляет (динамически устанавливаемые) маршруты:

Перед:

root@gw-srv:~# ip mroute
(10.0.0.20,239.255.255.250)      Iif: enp2s0     Oifs: enp1s0  State:
resolved
(192.168.0.20,239.255.255.250)   Iif: enp1s0     Oifs: enp2s0  State:
resolved
(192.168.0.2,239.255.255.250)    Iif: enp1s0     Oifs: enp2s0  State:
resolved
(192.168.0.1,239.255.255.250)    Iif: enp1s0     Oifs: enp2s0  State:
resolved

После:

root@gw-srv:~# ip mroute
(10.0.0.20,239.255.255.250)      Iif: enp2s0     Oifs: enp1s0  State:
resolved

Когда я указываю исходный адрес типа 192.168.0.2 в smcroute.conf, соответствующий маршрут не «исчезает» (10.0.0.20 - это медиа-сервер в другой подсети). Однако проблема все еще существует.

Я также проверил с помощью iperf на маршрутизаторе, работает ли многоадресная рассылка между двумя хостами:

Маршрутизатор: iperf -s -u -B 239.255.255.250 -i 1

Клиент: iperf -c 239.255.255.250 -u -T 32 -t 3 -i 1

Когда smcroute только что был запущен, сервер принимает пакеты. Через несколько минут ничего не приходит (пока я не перезапущу smcroute или вручную не выйду из группы многоадресной рассылки). Когда в этот момент я использую любой другой многоадресный адрес (например, 239.255.255.249), пакеты попадают на брандмауэр (сервер iperf). А когда smcroute вообще не работает, проблемы не возникает (с 239.255.255.250).

В целом мне кажется, что, когда через несколько минут был установлен многоадресный маршрут, маршрутизатор больше не может принимать многоадресный трафик на соответствующий адрес.

Вы можете понять это? Пока не нашел ни малейшего намека на такую ​​проблему.

Большое спасибо за предложения.