У меня есть мост Linux с тремя интерфейсами, например tap0, tap1 и tap2. Я бы хотел изменить стандартное поведение моста следующим образом:
Если трансляция L2 исходит от tap0, тогда она должна быть направлена только на tap2 (tap1 должен ее отбросить).
Если трансляция L2 исходит от tap1, тогда она должна быть направлена только на tap2 (tap0 должен ее отбросить).
Если широковещательная передача L2 исходит от tap2, она должна быть перенаправлена на tap0 и tap1, как это делают обычные мосты.
Можно ли таким образом контролировать поведение моста в Linux?
Ура
Даниэль
смотреть на ebtables которые управляют пересылкой для мостов Linux:
# forward tap0 broadcasts to tap2, do not forward to tap1
ebtables -A FORWARD -i tap0 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap0 -o tap1 -d ff:ff:ff:ff:ff:ff -j DROP
# forward tap1 broadcasts to tap2, do not forward to tap0
ebtables -A FORWARD -i tap1 -o tap2 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap1 -o tap0 -d ff:ff:ff:ff:ff:ff -j DROP
# forward tap2 broadcasts to tap0 and tap1
ebtables -A FORWARD -i tap2 -o tap0 -d ff:ff:ff:ff:ff:ff -j ACCEPT
ebtables -A FORWARD -i tap2 -o tap1 -d ff:ff:ff:ff:ff:ff -j ACCEPT