Hi. This is my first post. I've been experimenting with Proxmox and have been scratching my head trying to solve this issue for the last day or so.
The short version: I have three devices. There is the Proxmox VE host itself (let's call it
What I'm experiencing is a lack of connectivity between
The configuration details follow.
Here's how I've set up my Proxmox host's
In other words, the Proxmox host has two NICs. The first,
Both of these connections are bridged (to
And here's how I've set up my single test VM (
Notice:
So, let's try pinging the guest from either another Ubuntu Linux machine (a VirtualBox guest attached to the same hostonly interface as the Proxmox VE host), or from my actual physical host. In either case, my expectation is that since the Proxmox VE guest (
What's going on? Here's output of
As you can see, there is absolutely no traffic at all captured. Weird, right? So let's try the other direction: pinging from the Proxmox guest, through the bridge, to
Okay! So the Proxmox guest is sending out ARP requests. Is the
Okay! So ARP requests are able to traverse the bridge as expected. Moreover, ARP replies are being emitted, as well.
But why aren't those replies being received by the Proxmox VE host? Any guidance will be appreciated.
The short version: I have three devices. There is the Proxmox VE host itself (let's call it
pve
, running Proxmox VE 6.2-11), a single virtualized guest running inside the Proxmox VE hypervisor (let's call it VM100
), and another Linux computer that is completely independent of Proxmox (let's call it laptop
). I want to set things up such that all of these three devices are connected on the same LAN, a typical "default configuration using a bridge" as described by the Proxmox wiki. The catch is that all of these devices are running inside VirtualBox 6.1.14 (the latest stable version as of this writing) because, as I said, I've just begun experimenting with Proxmox and am not ready to commit hardware to it.What I'm experiencing is a lack of connectivity between
VM100
(the Proxmox guest) and laptop
(the computer outside Proxmox but on the same LAN as the Proxmox VE host), despite perfect connectivity between pve
(the Proxmox host) and laptop
. Specifically, if I try to ping laptop
from VM100
, I observe the following sequence of events on the Proxmox host (pve
).- ARP request is sent from
VM100
(Proxmox guest). - Proxmox host sees the request being sent.
laptop
sees the ARP request intended for it ("who has…?"), and sends a reply ("is at…") intended forVM100
.- Proxmox host (
pve
) doesn't see the ARP reply at all, for some reason, and so neither does its guest, resulting in a failure to connect.
laptop
and the pve
node at all.The configuration details follow.
Here's how I've set up my Proxmox host's
/etc/network/interfaces
file:
Code:
root@pve:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports eth0
bridge-stp off
bridge-fd 0
#DHCP to Internet
auto eth1
iface eth1 inet manual
auto vmbr1
iface vmbr1 inet static
address 10.10.10.2/24
bridge-ports eth1
bridge-stp off
bridge-fd 0
#Static IPs to hostonly network
In other words, the Proxmox host has two NICs. The first,
eth0
is the NAT'ed connection to the Internet configured with DHCP. The second, eth1
is attached to the VirtualBox hostonly network. This also follows the direction of the Proxmox wiki's "Proxmox VE inside VirtualBox" page.Both of these connections are bridged (to
vmbr0
and vmbr1
, respectively), so that Proxmox's guests can also have the same setup: one NIC connected to the Internet via NAT and DHCP auto-configuration, and another connected to a private LAN.And here's how I've set up my single test VM (
VM100
) hosted by Proxmox:
Code:
root@pve:~# cat /etc/pve/nodes/pve/qemu-server/100.conf
acpi: 1
agent: enabled=0,fstrim_cloned_disks=0,type=virtio
arch: x86_64
balloon: 0
bios: seabios
boot: cd
bootdisk: scsi0
#cipassword: [REDACTED]
ciuser: ubuntu
cores: 1
cpu: cputype=qemu64
cpuunits: 1024
ide2: local-lvm:vm-100-cloudinit,media=cdrom
ipconfig0: ip=dhcp
ipconfig1: ip=10.10.10.50/24
keyboard: en-us
memory: 512
name: testvm
net0: e1000=D2:91:C2:04:67:90,bridge=vmbr0
net1: e1000=66:B6:78:6E:92:42,bridge=vmbr1
ostype: other
scsi0: local-lvm:vm-100-disk-0,size=8G
scsihw: virtio-scsi-pci
serial0: socket
smbios1: uuid=19f3a52c-e6a6-4321-b909-fa9f548adea1
sockets: 1
#sshkeys: [REDACTED]
tablet: 1
template: 0
vga: memory=16,type=std
vmgenid: 61746464-665e-4788-af0a-b6652f36d99d
Notice:
- I was careful to use
e1000
network device emulation because, again, Proxmox VE itself is a VirtualBox guest. The Proxmox guest is thus nested inside a VirtualBox hypervisor and the private LAN to whichnet1
is attached (viabridge=vmbr1
) is a VirtualBox hostonly network. - The IP address for this VM on the hostonly network that is causing trouble is 10.10.10.50.
Code:
ubuntu@testvm:~$ ip a show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 66:b6:78:6e:92:42 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.50/24 brd 10.10.10.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::64b6:78ff:fe6e:9242/64 scope link
valid_lft forever preferred_lft forever
So, let's try pinging the guest from either another Ubuntu Linux machine (a VirtualBox guest attached to the same hostonly interface as the Proxmox VE host), or from my actual physical host. In either case, my expectation is that since the Proxmox VE guest (
VM100
) is bridged to a VirtualBox Host-Only network, I should be able to contact it. However, I can't:
Code:
vagrant@10.10.10.20:~$ ping -c 4 10.10.10.50
PING 10.10.10.50 (10.10.10.50) 56(84) bytes of data.
--- 10.10.10.50 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3328ms
What's going on? Here's output of
tcpdump -i vmbr1 -v host 10.10.10.20 or host 10.10.10.50
running on pve
(the Proxmox VE node) while doing the above ping:
Code:
root@pve:~# tcpdump -i vmbr1 -v host 10.10.10.50 or 10.10.10.20
tcpdump: listening on vmbr1, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
As you can see, there is absolutely no traffic at all captured. Weird, right? So let's try the other direction: pinging from the Proxmox guest, through the bridge, to
laptop
. Here's what pve
sees this time:
Code:
root@pve:~# tcpdump -i vmbr1 -v host 10.10.10.50 or 10.10.10.20
tcpdump: listening on vmbr1, link-type EN10MB (Ethernet), capture size 262144 bytes
07:31:16.369083 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
07:31:17.375724 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
07:31:18.399932 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
07:31:19.424524 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
07:31:20.447462 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
07:31:21.471552 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
Okay! So the Proxmox guest is sending out ARP requests. Is the
laptop
seeing those requests? Here's a sudo tcpdump -i enp0s8 -n -v host 10.10.10.50 or 10.10.10.20
on the laptop
while pinging it from VM100:
Code:
vagrant@10.10.10.20:~$ sudo tcpdump -i enp0s8 -n -v host 10.10.10.50 or host 10.10.10.20
tcpdump: listening on enp0s8, link-type EN10MB (Ethernet), capture size 262144 bytes
06:35:51.749683 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:51.749712 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
06:35:52.774498 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:52.774539 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
06:35:53.800175 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:53.800225 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
06:35:54.821756 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:54.821776 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
06:35:55.867627 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:55.867652 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
06:35:56.877819 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.10.20 tell 10.10.10.50, length 46
06:35:56.877842 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.10.10.20 is-at 08:00:27:02:b2:48, length 28
Okay! So ARP requests are able to traverse the bridge as expected. Moreover, ARP replies are being emitted, as well.
But why aren't those replies being received by the Proxmox VE host? Any guidance will be appreciated.
Last edited: