utmapp / utmapp/UTM

Guest ingress packets broken when using Bridged interface with VLAN interface

Open
#3,902 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
35.5k
Forks
1.8k
Avg merge
5d 5h
Merged PRs (30d)
7

Description

**Describe the issue**
When creating guest and assigning its network mode to bridged that is attached to VLAN tagged interface, the ingress packets towards the guest contain additional bytes before the IP packet header. I suspect this is a bug on Apple's side, but reporting here, in case there is something you can amend from UTM side.

In my example I will be using vlan3 interface, same problem happens regardless of having one or multiple vlan interfaces.

Steps to reproduce:
1. Create VLAN interface from Network settings and assign it to some physical IF (in my case, VLAN 130 to bridge vlan3 using Physical interface USB-C to LAN adapter)
2. Create guest and assign network mode to 'Bridged' - Bridged Interface 'vlan3'
3. Start the guest and wait until it attempts to obtain network information (doesn't matter if static or DHCP) and see that packets are broken

I have three packet captures, can provide if needed:
- TCPDUMP from en4 (the physical interface) - scope of packets limited to those that are VLAN tagged with VLAN-ID 130, packets are all ok
- TCPDUMP from vlan3 (the vlan interface) - packets are all ok
- TCPDUMP from bridge100 - DHCP Reply packets are broken, before IP header there are the additional "00 82 08 00" bytes

**Configuration**
* UTM Version: 3.1.5 (53)
* OS Version: 12.3.1
* Apple Silicon

Ifconfig of the auto-created bridge100:
`bridge100: flags=8863 mtu 1500
options=3
ether be:d0:74:24:13:64
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x0
member: vlan3 flags=3
ifmaxaddr 0 port 30 priority 0 path cost 0
member: vmenet0 flags=3
ifmaxaddr 0 port 25 priority 0 path cost 0
media: autoselect
status: active`

ifconfig of the vlan3 interface:
`vlan3: flags=8943 mtu 1500
options=6063
ether 3c:18:a0:51:01:4c
inet6 fe80::c10:aa25:72d2:eacf%vlan3 prefixlen 64 secured scopeid 0x1e
nd6 options=201
vlan: 130 parent interface: en4
media: autoselect (1000baseT )
status: active`

Attaching screenshot of two wireshark windows (left vlan3 interface, ok, right bridge100 interface, broken packet)

![broken-packet](https://user-images.githubusercontent.com/42151530/163355846-670e7ee9-314c-4671-9c8e-b2e67184ccbf.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.