Linux/Ubuntu 桥接导致 tcp 重传和 DUP ACK

Linux/Ubuntu 桥接导致 tcp 重传和 DUP ACK

当我在 Ubuntu 服务器上配置网桥时,每个数据包都会被重新传输,并且会收到许多重复的 ACK…… 就像这个 wireshark 图像

我的桥接接口配置是:

iface enp5s0 inet manual


auto br0
iface br0 inet static
      address 172.25.25.1
      netmask 255.255.255.0
      network 172.25.25.0
      gateway 172.25.25.251
      broadcast 172.25.25.255
      dns-nameservers 172.25.25.251
      bridge_ports enp5s0
      bridge_stp off
      bridge_fd 0
      bridge_maxwait 0

内核:Linux 4.13.0-38-generic #43~16.04.1-Ubuntu x86_64 操作系统:Ubuntu 16.04.4 LTS

我的 ethtool 结果:

ethtool enp5s0
Settings for enp5s0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: on
    Supports Wake-on: g
    Wake-on: g
    Link detected: yes

我也确实设置了

sysctl net.bridge.bridge-nf-call-iptables=0

我是否遗漏了什么?还是某个地方有错误?或者有什么地方很乱!

我已经尝试了 hwe 内核 4.13 和通用 4.4,尝试更换交换机/电缆...都一样,只需删除桥接接口并直接添加 ip 即可解决问题。

答案1

网络桥没有问题……问题出在tcpdump -i any。它捕获了每个数据包两次!一次是在 ,br0另一次是在物理接口本身。

相关内容