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

查看 35|回复 0
作者:Citrus   
先上拓扑

网络配置
[ol]
  • 存在两个 VLAN ,使用同一个路由做 DHCP + 上网,两个 VLAN 间互通
  • VLAN 10 是默认 VLAN ( Untagged VLAN ),也就是交换机上除了特别配置的口以外,都是 Access 模式 Native VLAN = 10
  • PC 1 和 Server 2 不支持 VLAN ,对应的交换机端口为 Access 模式,PC 1 和 eth1 是 VLAN 10 ,eth0 是 VLAN 20
  • PC 2 和 Server 1 支持 VLAN ,对应的交换机端口为 Trunk 模式,设备上手动设置 VLAN 20
  • Server 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]
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部