Problem with VLAN and DHCP

nsv

New Member
Jun 23, 2023
1
0
1
Hi all!

I recently installed proxmox on my server, and now I'm trying to get networking in order.

The problem that I have, is that for a certain VLAN, the DHCP response from my DHCP server doesn't seem to end up in my VM. It does seem to reach proxmox, but there's nothing arriving in the VM.

What I'm trying to achieve, is the following:

From my ISP, I've got a /29 subnet. I have a Mikrotik router running RouterOS 7. I configured a VLAN (id=200) in which I want to add devices and VMs that get an IP from that subnet. Besides that, I've got a standard 192.168.some.thing subnet that is used by every other piece of hardware in my home network.
So, I want to add a VM in proxmox with two virtual interfaces, one that gets an IP from the 192.168 subnet, and another that gets an IP from the /29 subnet of my ISP.

My network topology is as follows:

ISP <-> Mikrotik Router <-> Server running Proxmox <-> switch <-> PCs

My server has two physical interfaces that I bridged together (vmbr0). I did this, because my switch isn't managed, and I read that it strips the VLAN tags from packets. So the switch is running further downstream, and there's a few pieces of hardware behind it. I don't think that it influences my setup too much, but just so you get the whole picture.

So, what I did in proxmox to achieve things there:
  • I added an extra interface to my VM, and set the VLAN tag to 200
  • I made the bridge (vmbr0) VLAN aware
However, the interface does not seem to get an IP. The strange thing is, that a DHCP lease is provided from my router. Even stranger: it seems to end up in proxmox, but it stops there (it doesn't reach the VM).

What I did to analyze the problem, is running tcpdump in order to gather the DHCP traffic:

Code:
tcpdump -i vmbr0v200 -pvn port 67 and port 68

First, I ran this on proxmox. This gave me the following:

Code:
tcpdump: listening on vmbr0v200, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:31:59.579453 IP (tos 0x0, ttl 16, id 0, offset 0, flags [none], proto UDP (17), length 328)
    45.xxx.xxx.233.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300, xid 0x6c990843, Flags [none]
          Your-IP 45.xxx.xxx.234
          Server-IP 45.xxx.xxx.233
          Client-Ethernet-Address 9a:01:73:ba:ab:15
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Offer
            Subnet-Mask (1), length 4: 255.255.255.248
            Default-Gateway (3), length 4: 45.xxx.xxx.233
            Domain-Name-Server (6), length 8: 8.8.8.8,8.8.4.4
            Lease-Time (51), length 4: 600
            Server-ID (54), length 4: 45.xxx.xxx.233

So, this all seemed good! A correct IP address was given out, the interface MAC-address was the right one (9a:01:73:ba:ab:15 is of the virtual interface that I put the VLAN tag on). But, nothing on the VM side.

When I ran the same thing on the VM side:

Code:
tcpdump -i ens19 -pvn port 67 and port 68

All I got was the request:

Code:
tcpdump: listening on ens19, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:34:54.988228 IP (tos 0xc0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 322)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 9a:01:73:ba:ab:15, length 294, xid 0xc62d7779, secs 1342, Flags [none]
          Client-Ethernet-Address 9a:01:73:ba:ab:15
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Discover
            Client-ID (61), length 19: hardware-type 255, 9e:37:69:8c:00:02:00:00:ab:11:f2:16:3b:8b:f0:03:d6:c8
            Parameter-Request (55), length 11:
              Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
              Domain-Name (15), MTU (26), Static-Route (33), NTP (42)
              Unknown (119), Unknown (120), Classless-Static-Route (121)
            MSZ (57), length 2: 576
            Hostname (12), length 10: "kubernetes"

Does anyone know what could go wrong in this setup?

EDIT:

Some additional findings. I know that my router implicitly marks VLAN-less packets with VLAN 1. So on my virtual interface where the 192.168 subnet is, I set the VLAN tag to 1. This works, I do get an IP from my router. I ran tcpdump in my VM, and the output is as follows:

Code:
tcpdump -i ens18 -pvn port 67 and port 68

tcpdump: listening on ens18, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:42:37.582434 IP (tos 0xc0, ttl 64, id 11934, offset 0, flags [DF], proto UDP (17), length 322)
    192.168.88.157.68 > 192.168.88.1.67: BOOTP/DHCP, Request from c6:13:ea:18:09:cc, length 294, xid 0x120faea6, secs 1805, Flags [none]
          Client-IP 192.168.88.157
          Client-Ethernet-Address c6:13:ea:18:09:cc
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Request
            Client-ID (61), length 19: hardware-type 255, ca:53:09:5a:00:02:00:00:ab:11:f2:16:3b:8b:f0:03:d6:c8
            Parameter-Request (55), length 11:
              Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
              Domain-Name (15), MTU (26), Static-Route (33), NTP (42)
              Unknown (119), Unknown (120), Classless-Static-Route (121)
            MSZ (57), length 2: 576
            Hostname (12), length 10: "kubernetes"
14:42:37.593791 IP (tos 0x0, ttl 16, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.88.1.67 > 192.168.88.157.68: BOOTP/DHCP, Reply, length 300, xid 0x120faea6, Flags [none]
          Client-IP 192.168.88.157
          Your-IP 192.168.88.157
          Server-IP 192.168.88.1
          Client-Ethernet-Address c6:13:ea:18:09:cc
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: ACK
            Subnet-Mask (1), length 4: 255.255.255.0
            Default-Gateway (3), length 4: 192.168.88.1
            Domain-Name-Server (6), length 8: 192.168.88.1,8.8.8.8
            Lease-Time (51), length 4: 600
            Server-ID (54), length 4: 192.168.88.1
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!