[Bug 238198] Traffic through a vm -> bridge(4) -> vlan -> ix(4) does not return

[email protected]
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238198

vlad <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #17 from vlad <[email protected]> ---
Hi there. Are there any solutions about the reported issue?
Because I ran into the same tag-vlan bridge related bug on FreeBSD 14.2
release.

A brief netflow topology of my vm-bhyve setup config:
vm-guest -> tap_if -> bridge -> lagg0.101 -> lagg0 -> switch link
aggregation(lacp proto).

My configuration:
The bridge and interface configuration was made trough a vm-bhyve utilities:

I have two bridges: 

First for all permitted tagged/untagged traffic
# ifconfig vm-prod-untag
vm-prod-untag: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        options=0
        ether 76:af:6f:48:e6:44
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 10 priority 128 path cost 2000000
        member: lagg0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 6 priority 128 path cost 10000
        groups: bridge vm-switch viid-688c3@
        nd6 options=9<PERFORMNUD,IFDISABLED>

Second for tagged vlan101

# ifconfig vm-mgmt-v101
vm-mgmt-v101: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        options=0
        ether 6e:09:e8:bd:9e:bb
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: tap1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 11 priority 128 path cost 2000000
        member: lagg0.101 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 9 priority 128 path cost 10000
        groups: bridge vm-switch viid-55f45@
        nd6 options=9<PERFORMNUD,IFDISABLED>


# ifconfig lagg0.101
lagg0.101:
flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0
mtu 1500
        description: vm-vlan/mgmt-v101/lagg0.101
        options=0
        ether 3c:ec:ef:f5:f0:54
        groups: vlan vm-vlan viid-c50e3@
        vlan: 101 vlanproto: 802.1q vlanpcp: 0 parent interface: lagg0
        media: Ethernet autoselect
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>


# ifconfig lagg0
lagg0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
       
options=8120b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,HWSTATS>
        ether 3c:ec:ef:f5:f0:54
        hwaddr 00:00:00:00:00:00
        laggproto lacp lagghash l2,l3
        laggport: igb2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        groups: lagg
        media: Ethernet autoselect
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>



# vm switch list
NAME        TYPE      IFACE          ADDRESS  PRIVATE  MTU  VLAN  PORTS
prod-untag  standard  vm-prod-untag  -        no       -    -     lagg0
mgmt-v101   standard  vm-mgmt-v101   -        no       -    101   lagg0

# vm switch info
------------------------
Virtual Switch: prod-untag
------------------------
  type: standard
  ident: vm-prod-untag
  vlan: -
  physical-ports: lagg0
  bytes-in: 249898 (244.041K)
  bytes-out: 0 (0.000B)

  virtual-port
    device: tap0
    vm: devuan5

------------------------
Virtual Switch: mgmt-v101
------------------------
  type: standard
  ident: vm-mgmt-v101
  vlan: 101
  physical-ports: lagg0
  bytes-in: 78782 (76.935K)
  bytes-out: 0 (0.000B)

  virtual-port
    device: tap1
    vm: devuan5

On the guest-vm tap1 interface the broadcast/multicast traffic on given vlan is
monitored:

13:36:54.002150 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
58:9c:fc:03:ff:48, length 300
13:36:54.678090 e4:4e:2d:20:73:b0 > 01:00:0c:cc:cc:cd, 802.3, length 50: LLC,
dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco
(0x00000c), pid PVST (0x010b), length 42: STP 802.1w, Rapid STP, Flags [Learn,
Forward], bridge-id 8065.e4:4e:2d:20:73:80.8030, length 42
13:36:55.332705 18:e8:29:e0:8f:af > 01:00:5e:7e:7f:3f, ethertype IPv4 (0x0800),
length 60: 192.168.101.18 > 239.254.127.63: igmp v2 report 239.254.127.63
13:36:55.472674 a8:42:a1:3e:ad:3d > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 766: 192.168.101.56.32953 > 255.255.255.255.29810: UDP, length 724
13:36:55.503004 a8:42:a1:3e:ae:95 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 765: 192.168.101.50.45589 > 255.255.255.255.29810: UDP, length 723


At the bridge level MAC addresses are learned also

# ifconfig vm-mgmt-v101 addr

3c:ec:ef:ed:ba:23 Vlan0 lagg0.101 1161 flags=0<>
18:e8:29:e0:8f:af Vlan0 lagg0.101 1179 flags=0<>
80:2a:a8:56:06:d8 Vlan0 lagg0.101 1194 flags=0<>
a8:42:a1:3e:ae:2e Vlan0 lagg0.101 1190 flags=0<>
a8:42:a1:3e:ae:1a Vlan0 lagg0.101 1199 flags=0<>
a8:42:a1:3e:ae:5a Vlan0 lagg0.101 1199 flags=0<>
a8:42:a1:3e:ae:9f Vlan0 lagg0.101 1197 flags=0<>
a8:42:a1:3e:ae:0c Vlan0 lagg0.101 1197 flags=0<>
a8:42:a1:3e:ad:70 Vlan0 lagg0.101 1195 flags=0<>
a8:42:a1:3e:ae:11 Vlan0 lagg0.101 1194 flags=0<>
a8:42:a1:3e:ad:3d Vlan0 lagg0.101 1193 flags=0<>
a8:42:a1:3e:ae:95 Vlan0 lagg0.101 1193 flags=0<>
e4:4e:2d:20:73:b0 Vlan0 lagg0.101 1199 flags=0<>
58:9c:fc:03:ff:48 Vlan0 tap2 1196 flags=0<>



Debugging:

When i start dhclient on guest vm, on the lagg0.101
only DHCP Requests are monitored.

# tcpdump -ni lagg0.101 -e port 67 or port 68 -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on lagg0.101, link-type EN10MB (Ethernet), snapshot length 262144
bytes
13:50:20.685895 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
58:9c:fc:03:ff:48, length 300
13:50:24.542102 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
58:9c:fc:03:ff:48, length 300
13:50:27.733103 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
58:9c:fc:03:ff:48, length 300


On the lagg0 DHCP Request and DHCP Reply are monitored

tcpdump -ni lagg0 -e vlan 101 and port 67 or port 68 -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on lagg0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:50:20.685898 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 346: vlan 101, p 0, ethertype IPv4 (0x0800), 0.0.0.0.68 >
255.255.255.255.67: BOOTP/DHCP, Request from 58:9c:fc:03:ff:48, length 300
13:50:20.686402 d2:f7:aa:37:2c:73 > 58:9c:fc:03:ff:48, ethertype 802.1Q
(0x8100), length 346: vlan 101, p 0, ethertype IPv4 (0x0800), 192.168.101.1.67
> 192.168.101.165.68: BOOTP/DHCP, Reply, length 300
13:50:24.542106 58:9c:fc:03:ff:48 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q
(0x8100), length 346: vlan 101, p 0, ethertype IPv4 (0x0800), 0.0.0.0.68 >
255.255.255.255.67: BOOTP/DHCP, Request from 58:9c:fc:03:ff:48, length 300
13:50:24.542858 d2:f7:aa:37:2c:73 > 58:9c:fc:03:ff:48, ethertype 802.1Q
(0x8100), length 346: vlan 101, p 0, ethertype IPv4 (0x0800), 192.168.101.1.67
> 192.168.101.165.68: BOOTP/DHCP, Reply, length 300


In inbound direction somewhere between lagg0 -> lagg0.101 unicast packets are
lost. ARP proto, the same situation.

If I remove lagg0 as a member from the bridge vm-prod-untag, on the other
vm-mgmt-v101 bridge the unicast tagged packets appears.
No matters if we use link-aggregation lagg or physical igbX interface.

Solution can be to use only tagged vlans on the same parent interface, or
untagged traffic to be configured on a standalone interface.

Regards,

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.