请教 QNAP NAS 的一个奇怪的网络问题

2023-06-06 11:33:45 +08:00
 Citrus

先上拓扑

网络配置

  1. 存在两个 VLAN ,使用同一个路由做 DHCP + 上网,两个 VLAN 间互通
  2. VLAN 10 是默认 VLAN ( Untagged VLAN ),也就是交换机上除了特别配置的口以外,都是 Access 模式 Native VLAN = 10
  3. PC 1 和 Server 2 不支持 VLAN ,对应的交换机端口为 Access 模式,PC 1 和 eth1 是 VLAN 10 ,eth0 是 VLAN 20
  4. PC 2 和 Server 1 支持 VLAN ,对应的交换机端口为 Trunk 模式,设备上手动设置 VLAN 20
  5. Server 2 为 QNAP NAS ,主网口 eth1 ,在 VLAN 10 ,作为主要流量出入口
  6. Server 3 为 Server 2 上的 LXD 容器,使用虚拟交换机桥接设备的 eth0 。由于虚拟交换机不支持 VLAN ,所以设备上没有设置 VLAN 信息,eth0 对应的交换机端口设置为了 Access 模式 VLAN 20
  7. 通过 SSH 可以看到这个桥接操作涉及了三块网卡,分别是 eth0 qvs0 和 veth0 ,三块网卡分别都获取到了 VLAN 20 的 IP

现状

  1. 所有设备均可正常上网
  2. PC 1 访问图里的任何设备都是通的,比如在 Server 3 起个 python3 -m http.server 是可以访问的
  3. PC 2 访问 Server 1 和 Server 2 本身(无论是通过 1.20 还是 2.20 )都是通的,但是访问 Server 3 是不通的
  4. PC 2 ping Server 3 是通的
  5. Server 3 访问 Server 1 是通的
  6. 当 PC 2 尝试访问 Server 3 时进行抓包,在 eth0 qvs0 veth0 和 Server 3 容器内均能抓到 TCP 握手的 SYN 包,但是抓不到任何 Server 3 的回包
  7. 当 PC 1 尝试访问 Server 3 时进行抓包,同样三块网卡和容器内均能抓到,流量完全正常
  8. 检查发现 Server 3 没有任何防火墙(就是一个纯净的 ubuntu LXD 容器)

疑问

  1. 为什么会出现过路由器跨 VLAN 后访问 Server 3 通,但是同 VLAN 访问 Server 3 却不通的情况?
  2. 猜测可能是这个 vSwitch 桥接出现了问题,有没有什么办法可以调试排查这个问题?
  3. 在 Server 3 的网卡都抓到了 SYN 包,为何没有抓到任何回包?
  4. 如果发往 Server 3 的 SYN 包是被 iptables 拦截了,在容器内还能抓到包么?如何确认是否被拦截了?
693 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/946211

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX