Vor einigen Tagen habe ich festgestellt, dass einige der LXC-Container meinen Proxmox VE Host, der gleichzeitig das Default Gateway ist, nicht mehr erreichen können. Wenn ich also beispielsweise das Interface des Host oder ein System im Internet von einem LXC-Container aus angepingt habe, so war das System nicht erreichbar. Interessanterweise funktionierte aber der Umgekehrte Weg: ein ping vom Host ging immer durch und interessanterweise funktionierte nach einem initialen Ping vom Host auch wieder der Verbindungsaufbau von der virtuellen Maschine aus.
Die ersten Hinweise haben sich in den Syslogs gefunden:
Es wurden also offensichtlich ungültige Pakete vom Kernel verworfen. Warum genau geht leider aus den Fehlermeldungen nicht wirklich hervor. Gleichzeitig tacuhen in der ARP-Tabellen auf den Gast und auf dem Host vergleichsweise viele Einträge auf. Vor allem ist mir aufgefallen, dass in der ARP-TAbelle (arp -a) für die IP-ADresse des das Default-GW die MAC-Adresse des Interfaces
Mit dem folgenden Eintrag in
Damit war der Fehler bei mir behoben. Da ich im Forum noch keinen passenden Eintrag zur Behebung des "Martian Packet"-Fehler gefunden habe, hoffe ich, dass die Lösung jemanden bei der Fehlersuche hilft.
Gruß,
Stephan
PS: Eine etwas ausführlichere Beschreibung habe ich hier veröffentlicht: https://nerdig.es/proxmox-martians/
Die ersten Hinweise haben sich in den Syslogs gefunden:
Code:
May 19 16:41:58 proxmox kernel: [62251.236437] IPv4: martian source 10.x.x.x from 10.y.y.y, on dev fwbr100i0
May 19 16:41:58 proxmox kernel: [62251.236442] ll header: 00000000: ff ff ff ff ff ff aa bb cc dd ee ff 08 06
Es wurden also offensichtlich ungültige Pakete vom Kernel verworfen. Warum genau geht leider aus den Fehlermeldungen nicht wirklich hervor. Gleichzeitig tacuhen in der ARP-Tabellen auf den Gast und auf dem Host vergleichsweise viele Einträge auf. Vor allem ist mir aufgefallen, dass in der ARP-TAbelle (arp -a) für die IP-ADresse des das Default-GW die MAC-Adresse des Interfaces
fwbr###i0
anstsatt des Interfaces vmbr1
gespeichert wird. Mit dem folgenden Eintrag in
/etc/sysctl.conf
habe ich sichergestellt, dass nur noch das Interface, dem die entsprechende IP-Adresse zugeordnet ist, auf die ARP-Requests antwortet (siehe auch /proc/sys/net/ipv4/* Variables):
Code:
# avoid martian packets due to wrong MAC address distribution
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
Damit war der Fehler bei mir behoben. Da ich im Forum noch keinen passenden Eintrag zur Behebung des "Martian Packet"-Fehler gefunden habe, hoffe ich, dass die Lösung jemanden bei der Fehlersuche hilft.
Gruß,
Stephan
PS: Eine etwas ausführlichere Beschreibung habe ich hier veröffentlicht: https://nerdig.es/proxmox-martians/