忽略主接口上带有 VLAN 标记的数据包

忽略主接口上带有 VLAN 标记的数据包

我在 ESXi 上有一个带有单个网络接口的 Ubuntu 虚拟机,该接口是一个标记为 VLAN 4095 的端口组,因此它可以访问所有标记的 VLAN。本机 VLAN 是 37。我使用 Netplan 创建了几个 VLAN 接口,如下所示:

network:
  ethernets:
    ens160:
      dhcp4: true
  version: 2
  vlans:
    vlan98:
      id: 98
      link: ens160
      dhcp4: true
      optional: true
      link-local: []

我有一项服务在所有接口(包括主接口)上接收多播流量,ens160并且我希望每个接口的流量保持独立。我面临的问题是: ens160接收全部数据包,包括标记的数据包。有没有办法让这个主界面仅有的看到未标记的数据包吗?

# ip -d link show
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:07:84:53 brd ff:ff:ff:ff:ff:ff promiscuity 13 minmtu 60 maxmtu 9000 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
25: vlan98@ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:07:84:53 brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 0 maxmtu 65535 
    vlan protocol 802.1Q id 98 <REORDER_HDR> addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 

显示我想排除的数据包的示例:

# tcpdump -ni ens160 -e host 10.37.154.4
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens160, link-type EN10MB (Ethernet), capture size 262144 bytes
15:55:00.023677 00:60:74:fb:d0:87 > 01:00:5e:00:01:81, ethertype 802.1Q (0x8100), length 90: vlan 98, p 0, ethertype IPv4, 10.37.154.4.319 > 224.0.1.129.319: UDP, length 44

我尝试在 ens160 上禁用 dhcp,然后为 vlan37 添加一个附加接口,但这会导致网络完全瘫痪。

相关内容