Пересылка DHCP-пакетов из интерфейса крана через мост не работает
Я пытаюсь перенаправить пакеты из приложения пользовательского пространства через интерфейс крана на физический порт Ethernet. Я настроил интерфейс ответвления и подключил его к мосту, а также к порту Ethernet и установил их обоих в качестве ведущих. Приложение пользовательского пространства имеет собственный стек TCP/IP и драйвер Ethernet.
Приложение пользовательского пространства пытается запустить DHCP, и я вижу, что пакеты DHCP достигают моста без каких-либо проблем, однако ни один из пакетов не выходит из интерфейса Ethernet. Я также вижу пакеты в мосту, которые принимаются через интерфейс Ethernet, так что это работает. Я попытался установить оба интерфейса и мост в неразборчивый режим, и это не имело никакого значения. Я также установил время переадресации моста на ноль, и это не помогло.
Кто-нибудь знает, что может помешать прохождению пакетов с моста на интерфейс Ethernet? Ссылка также работает на обоих интерфейсах и на мосту.
# ip -s link show dev eth1:
2: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq master asim-br0 state UP mode DEFAULT group default qlen 1000
link/ether 10:7b:44:91:3e:c9 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
1170034 9380 0 0 0 4218
TX: bytes packets errors dropped carrier collsns
115628 498 0 0 0 0
Количество пакетов 498 никогда не меняется.
# ip -s link show dev test-br0
1351: asim-br0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 10:7b:44:91:3e:c9 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
364721 2962 0 0 0 0
TX: bytes packets errors dropped carrier collsns
43980 178 0 0 0 0
Количество пакетов RX увеличивается, но количество пакетов TX остается постоянным.
# brctl showstp test-br0
test-br0
bridge id 8000.107b44913ec9
designated root 8000.107b44913ec9
root port 0 path cost 0
max age 20.00 bridge max age 20.00
hello time 2.00 bridge hello time 2.00
forward delay 0.00 bridge forward delay 0.00
ageing time 300.00
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 166.34
flags
testnic0 (1)
port id 8001 state forwarding
designated root 8000.107b44913ec9 path cost 100
designated bridge 8000.107b44913ec9 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
testnic1 (2)
port id 8002 state disabled
designated root 8000.107b44913ec9 path cost 100
designated bridge 8000.107b44913ec9 message age timer 0.00
designated port 8002 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
testnic2 (3)
port id 8003 state disabled
designated root 8000.107b44913ec9 path cost 100
designated bridge 8000.107b44913ec9 message age timer 0.00
designated port 8003 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
testnic3 (4)
port id 8004 state disabled
designated root 8000.107b44913ec9 path cost 100
designated bridge 8000.107b44913ec9 message age timer 0.00
designated port 8004 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
eth1 (5)
port id 8005 state forwarding
designated root 8000.107b44913ec9 path cost 4
designated bridge 8000.107b44913ec9 message age timer 0.00
designated port 8005 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
Вот установка моста:
# brctl show
bridge name bridge id STP enabled interfaces
test-br0 8000.107b44913ec9 no testnic0
testnic1
testnic2
testnic3
eth1
br0 8000.107b4491a2ec no eth0
docker0 8000.024291d41878 no
Обратите внимание, что я также отключил все функции разгрузки.