I have a 3 node cluster setup that is claiming mac addresses used by other devices on the network. I have one central switch, E1 and several switches, A##, connected to that one. One proxmox host is connected to A10 and two are connected to A11. The ports connected to the proxmox servers (only one at a time) show mac address belonging to other devices on the network assigned to this port and E1 will start routing traffic to that switch. I have OVS setup on the proxmox boxes.
Each proxmox box has
- eth0 (vmbr1) connected to switch for local network only
- eth1 (vmbr2) connected to switch for ceph network (ceph runs on different servers)
- eth2 (vmbr0) connected to public A## switch for Internet traffic
There is nothing common about the the mac addresses that are being claimed. They may be connected to different switches running different OSs with different hardware and on different vlans. The switch tends to happen to lightly used devices, but not always. I can prevent this from happening by putting static mac address entries in E1 or by having a device run a continuous ping of E1. MAC addresses will be claimed randomly and it may get fixed on its own after some random period of time. The mac addresses are not duplicated on the proxmox host or vms.
I see that OVS is creating interfaces like fwln1115o0. It seems that this interface is getting the mac address from somewhere. How are these created and why?
Why would the Proxmox host be announcing a mac address that is not on the server?
On the network core switch:
On the switch that this devices is on:
On the switch that Proxmox is on:
On Proxmox host:
Network config
Each proxmox box has
- eth0 (vmbr1) connected to switch for local network only
- eth1 (vmbr2) connected to switch for ceph network (ceph runs on different servers)
- eth2 (vmbr0) connected to public A## switch for Internet traffic
There is nothing common about the the mac addresses that are being claimed. They may be connected to different switches running different OSs with different hardware and on different vlans. The switch tends to happen to lightly used devices, but not always. I can prevent this from happening by putting static mac address entries in E1 or by having a device run a continuous ping of E1. MAC addresses will be claimed randomly and it may get fixed on its own after some random period of time. The mac addresses are not duplicated on the proxmox host or vms.
I see that OVS is creating interfaces like fwln1115o0. It seems that this interface is getting the mac address from somewhere. How are these created and why?
Why would the Proxmox host be announcing a mac address that is not on the server?
Code:
# pveversion --verbose
proxmox-ve: 5.3-1 (running kernel: 4.15.18-9-pve)
pve-manager: 5.3-5 (running version: 5.3-5/97ae681d)
pve-kernel-4.15: 5.2-12
pve-kernel-4.15.18-9-pve: 4.15.18-30
pve-kernel-4.15.18-7-pve: 4.15.18-27
pve-kernel-4.4.134-1-pve: 4.4.134-112
pve-kernel-4.4.35-2-pve: 4.4.35-79
pve-kernel-4.4.6-1-pve: 4.4.6-48
corosync: 2.4.4-pve1
criu: 2.11.1-1~bpo90
glusterfs-client: 3.8.8-1
ksm-control-daemon: 1.2-2
libjs-extjs: 6.0.1-2
libpve-access-control: 5.1-3
libpve-apiclient-perl: 2.0-5
libpve-common-perl: 5.0-43
libpve-guest-common-perl: 2.0-18
libpve-http-server-perl: 2.0-11
libpve-storage-perl: 5.0-33
libqb0: 1.0.3-1~bpo9
lvm2: 2.02.168-pve6
lxc-pve: 3.0.2+pve1-5
lxcfs: 3.0.2-2
novnc-pve: 1.0.0-2
openvswitch-switch: 2.7.0-3
proxmox-widget-toolkit: 1.0-22
pve-cluster: 5.0-31
pve-container: 2.0-31
pve-docs: 5.3-1
pve-edk2-firmware: 1.20181023-1
pve-firewall: 3.0-16
pve-firmware: 2.0-6
pve-ha-manager: 2.0-5
pve-i18n: 1.0-9
pve-libspice-server1: 0.14.1-1
pve-qemu-kvm: 2.12.1-1
pve-xtermjs: 1.0-5
qemu-server: 5.0-43
smartmontools: 6.5+svn4324-1
spiceterm: 3.0-5
vncterm: 1.5-3
zfsutils-linux: 0.7.12-pve1~bpo1
On the network core switch:
Code:
E1#sho arp | inc 0017.c5ac.97e5
Internet X.X.35.40 154 0017.c5ac.97e5 ARPA Vlan11 pv 1100
Internet X.X.35.41 22 0017.c5ac.97e5 ARPA Vlan11 pv 1100
Internet X.X.35.42 129 0017.c5ac.97e5 ARPA Vlan11 pv 1100
## When it is working correctly, I get this
E1#sho mac add add 0017.c5ac.97e5
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
11 0017.c5ac.97e5 DYNAMIC pv Po22
1100 0017.c5ac.97e5 BLOCKED Po22
## When it is failing, i get this
E1#sho mac add add 0017.c5ac.97e5
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
11 0017.c5ac.97e5 DYNAMIC pv Po10
## Connection to A10
interface Port-channel10
switchport mode trunk
switchport nonegotiate
end
On the switch that this devices is on:
Code:
A22#sho mac add add 0017.c5ac.97e5
Unicast Entries
vlan mac address type protocols port
-------+---------------+--------+---------------------+--------------------
11 0017.c5ac.97e5 dynamic ip GigabitEthernet1/34
On the switch that Proxmox is on:
Code:
A10#sho mac add int gi1/4
Unicast Entries
vlan mac address type protocols port
-------+---------------+--------+---------------------+--------------------
...
11 0017.c5ac.97e5 dynamic ip GigabitEthernet1/4
...
Interface GigabitEthernet1/4
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 3,11,60,1100
switchport mode trunk
switchport nonegotiate
spanning-tree cost 20
end
#connection to E1
interface Port-channel1
switchport
switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate
end
On Proxmox host:
Code:
proxmox1:~# ovs-appctl fdb/show vmbr0 | grep e5
13 11 00:17:c5:ac:97:e5 215
proxmox1:~# ovs-ofctl dump-ports-desc vmbr0
OFPST_PORT_DESC reply (xid=0x2):
1(eth2): addr:6c:b3:11:31:b1:75
config: 0
state: 0
current: 1GB-FD COPPER AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE
speed: 1000 Mbps now, 1000 Mbps max
2(pxhost): addr:6c:b3:11:31:b1:75
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
3(fwln107o0): addr:56:d5:75:3a:b1:0e
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
4(tap1002i0): addr:e6:f2:b4:4b:53:d5
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
5(tap1002i2): addr:56:b2:49:2c:c8:55
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
6(fwln1003o0): addr:76:08:42:13:1f:46
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
7(fwln1003o2): addr:5a:fa:10:d1:ba:64
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
8(fwln1113o1): addr:62:68:cc:b8:e7:73
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
9(tap1000i0): addr:76:fb:f1:c5:b7:1e
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
10(tap1000i2): addr:f6:f5:c6:e2:73:a1
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
11(fwln1007o0): addr:d6:df:0c:54:1a:7c
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
12(fwln1116o0): addr:4a:f9:a9:45:82:6d
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
13(fwln1115o0): addr:1e:ef:d2:63:41:e9
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
LOCAL(vmbr0): addr:6c:b3:11:31:b1:75
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
Network config
Code:
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
# Bridges
auto vmbr0
allow-ovs vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports eth2 pxhost
auto vmbr1
allow-ovs vmbr1
iface vmbr1 inet manual
ovs_type OVSBridge
ovs_ports eth0 llan llan2
pre-up ( ifconfig eth0 mtu 8192)
mtu 8192
auto vmbr2
allow-ovs vmbr2
iface vmbr2 inet manual
ovs_type OVSBridge
ovs_ports eth1 dlan
pre-up ( ifconfig eth1 mtu 8192)
mtu 8192
# Physical Ports
allow-vmbr1 eth0
iface eth0 inet manual
ovs_type OVSPort
ovs_bridge vmbr1
## post-up echo 1> /proc/sys/net/ipv4/conf/eth2/proxy_arp
allow-vmbr2 eth1
iface eth1 inet manual
ovs_type OVSPort
ovs_bridge vmbr2
allow-vmbr0 eth2
iface eth2 inet manual
ovs_type OVSPort
ovs_bridge vmbr0
# Setup network for host
# Public
allow-vmbr0 pxhost
iface pxhost inet static
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=11
hwaddress ether 6c:b3:11:31:b1:75
address X.X.34.3
netmask 255.255.248.0
gateway X.X.32.1
# LAN
allow-vmbr1 llan
iface llan inet static
ovs_type OVSIntPort
ovs_bridge vmbr1
address 192.168.0.3
netmask 255.255.255.0
mtu 8192
allow-vmbr1 llan2
iface llan2 inet static
ovs_type OVSIntPort
ovs_bridge vmbr1
ovs_options tag=15
address 192.168.88.103
netmask 255.255.248.0
# Ceph Network
allow-vmbr2 dlan
iface dlan inet static
ovs_type OVSIntPort
ovs_bridge vmbr2
address 10.11.0.3
netmask 255.255.254.0
mtu 8192
## post-up iptables -t nat -A POSTROUTING -s 10.11.0.0/23 -o vmbr0 -j MASQUERADE
## post-down iptables -t nat -D POSTROUTING -s 10.11.0.0/23 -o vmbr0 -j MASQUERADE