❓ What?

Proxmox creates fwbr interfaces when you start a VM with any bridge attached, as seen here. This is done because firewall rules (using the proxmox firewall) cannot be set directly on a bridge, otherwise they will be set for all the vms using that bridge. Instead firewall rules are applied to the firewall interfaces instead.

tap dev → fwrbr → fwrln ⇄ fwrpr → vmbrX

This is apparently what the flow is. I need to dig deeper but the documentation on this is really sparse.

❔ Why?

I do not use the Proxmox firewall (disabled on the datacenter level) and having more interfaces is just overhead without any real purpose.

🎤 How?

The solution is pretty simple: Disable the firewall checkbox on the nic.

The following is when the firewall checkbox is enabled on virtual nic on a LXC:

root@compute01:~# ip a | grep 1200
171: veth12003i0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master fwbr12003i0 state UP group default qlen 1000
172: fwbr12003i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
173: fwpr12003p0@fwln12003i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master sdntest state UP group default qlen 1000
174: fwln12003i0@fwpr12003p0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master fwbr12003i0 state UP group default qlen 1000

This is after unticking the firewall checkbox on the nic of the lxc:

root@compute01:~# ip a | grep 1200
171: veth12003i0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master sdntest state UP group default qlen 1000

👓 References

My Proxmox clusters.