问题描述
我正在尝试通过 Tap 接口将来自用户空间应用程序的数据包转发到物理以太网端口。我已经设置了 tap 接口并将其连接到网桥和以太网端口,并将它们都设置为 master。用户空间应用程序有自己的 TCP/IP 堆栈和以太网驱动程序。
用户空间应用程序正在尝试运行 DHCP,我可以看到 DHCP 数据包到达网桥没有任何问题,但是,没有数据包从以太网接口传出。我还看到网桥中通过以太网接口接收到的数据包,这样就可以了。 我已经尝试将接口和桥都设置为混杂模式,但没有任何区别。我还将网桥转发时间设置为零,但没有帮助。
有没有人知道什么可以阻止数据包从网桥到以太网接口?接口和网桥上的链接也已启动。
# 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,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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)