先上拓扑 网络配置 [ol]存在两个 VLAN ,使用同一个路由做 DHCP + 上网,两个 VLAN 间互通VLAN 10 是默认 VLAN ( Untagged VLAN ),也就是交换机上除了特别配置的口以外,都是 Access 模式 Native VLAN = 10PC 1 和 Server 2 不支持 VLAN ,对应的交换机端口为 Access 模式,PC 1 和 eth1 是 VLAN 10 ,eth0 是 VLAN 20PC 2 和 Server 1 支持 VLAN ,对应的交换机端口为 Trunk 模式,设备上手动设置 VLAN 20Server 2 为 QNAP NAS ,主网口 eth1 ,在 VLAN 10 ,作为主要流量出入口Server 3 为 Server 2 上的 LXD 容器,使用虚拟交换机桥接设备的 eth0 。由于虚拟交换机不支持 VLAN ,所以设备上没有设置 VLAN 信息,eth0 对应的交换机端口设置为了 Access 模式 VLAN 20通过 SSH 可以看到这个桥接操作涉及了三块网卡,分别是 eth0 qvs0 和 veth0 ,三块网卡分别都获取到了 VLAN 20 的 IP [/ol] 现状 [ol]所有设备均可正常上网PC 1 访问图里的任何设备都是通的,比如在 Server 3 起个 python3 -m http.server 是可以访问的PC 2 访问 Server 1 和 Server 2 本身(无论是通过 1.20 还是 2.20 )都是通的,但是访问 Server 3 是不通的PC 2 ping Server 3 是通的Server 3 访问 Server 1 是通的当 PC 2 尝试访问 Server 3 时进行抓包,在 eth0 qvs0 veth0 和 Server 3 容器内均能抓到 TCP 握手的 SYN 包,但是抓不到任何 Server 3 的回包当 PC 1 尝试访问 Server 3 时进行抓包,同样三块网卡和容器内均能抓到,流量完全正常检查发现 Server 3 没有任何防火墙(就是一个纯净的 ubuntu LXD 容器) [/ol] 疑问 [ol]为什么会出现过路由器跨 VLAN 后访问 Server 3 通,但是同 VLAN 访问 Server 3 却不通的情况?猜测可能是这个 vSwitch 桥接出现了问题,有没有什么办法可以调试排查这个问题?在 Server 3 的网卡都抓到了 SYN 包,为何没有抓到任何回包?如果发往 Server 3 的 SYN 包是被 iptables 拦截了,在容器内还能抓到包么?如何确认是否被拦截了? [/ol]