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

Неверный MAC-адрес многоадресной рассылки с более чем одним сетевым интерфейсом

Я пытаюсь подписаться на группу многоадресной рассылки с машины Red Hat с четырьмя сетевыми интерфейсами, каждый из которых находится в другой подсети. Это работает только в том случае, если я привязываю многоадресный сокет к сетевому интерфейсу, на котором шлюз совпадает с настроенным шлюзом по умолчанию.

Моя таблица маршрутов (вывод команды "route"):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.37.0       *               255.255.255.0   U     0      0        0 eth2
10.1.39.0       *               255.255.255.0   U     0      0        0 eth3
10.1.38.0       *               255.255.255.0   U     0      0        0 eth1
10.1.33.0       *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth3
link-local      *               255.255.0.0     U     1003   0        0 eth0
link-local      *               255.255.0.0     U     1004   0        0 eth1
link-local      *               255.255.0.0     U     1005   0        0 eth2
default         10.1.33.1       0.0.0.0         UG    0      0        0 eth0

В каждой подсети есть брандмауэр, настроенный как шлюз (в каждом файле конфигурации ifcfg-ethX), во всех интерфейсах он имеет адрес * .1 в этой подсети.

Вот мое исследование с использованием Wireshark:

Если я привяжу сокет к eth0, операционная система отправит пакет многоадресного соединения с полем Dst на уровне Ethernet, установленным на 01: 00: 5e: 02: 02: 11, MAC-адрес многоадресной рассылки. Межсетевой экран принимает этот пакет и начинает ретрансляцию пакетов для этой группы многоадресной рассылки.

Если я привяжу сокет к eth2, операционная система отправит пакет многоадресного соединения с полем Dst на уровне Ethernet, установленным на 84: b8: 02: d2: cd: 88, физический MAC-адрес межсетевого экрана. Брандмауэр отбрасывает этот пакет, поскольку у него нет действительного MAC-адреса многоадресной рассылки.

Если я изменю шлюз по умолчанию на 10.1.37.1, тогда многоадресная рассылка начнет работать на eth2, но не на eth0.

Есть ли у меня неправильная конфигурация? Есть ли способ заставить разные группы многоадресной рассылки одновременно работать с разными сетевыми интерфейсами?