Netzwerkschnittstelle / DHCP-Probleme ubuntu mit kvm und Netzwerkbrücke
6353
Alex Edwards
Ich habe ein Ubuntu-System, auf dem 12.10 läuft
Ich verwende KVM und habe eine Bridge für die virtuellen Maschinen konfiguriert, die Nat-Weiterleitung verwendet. Ich habe Probleme mit dem Verbindungsabbruch, manchmal bleibt sie einige Tage, manchmal einige Minuten lang auf.
Ich habe die Brücke gesperrt geschieht das Problem, aber es ist immer noch zu lösen, habe ich versucht eine manuelle dhcp Release zu tun und zu erneuern, die manchmal funktioniert, es wird mir eine neue ip und im wieder weg, aber ich merkte, dass meine IP nicht aktualisiert wird, wenn ich laufen ifconfigoder in kvm Verbindungseinstellungen.
/ etc / schnittstellen
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp #auto br0 #iface br0 inet dhcp # bridge_ports eth0 # bridge_stp off # bridge_fd 0 # bridge_maxwait 0
Internet Systems Consortium DHCP Client 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/virbr0/f6:94:09:8f:7b:b5 Sending on LPF/virbr0/f6:94:09:8f:7b:b5 Listening on LPF/eth0/38:60:77:aa:aa:aa Sending on LPF/eth0/38:60:77:aa:aa:aa Sending on Socket/fallback DHCPRELEASE on eth0 to 10.0.0.254 port 67
sudo dhcpclient -v
Internet Systems Consortium DHCP Client 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/virbr0/f6:94:09:8f:7b:b5 Sending on LPF/virbr0/f6:94:09:8f:7b:b5 Sending on Socket/fallback DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 3 DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 5 DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 9 DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 15
Momentan ist die einzige Möglichkeit, diesen Zustand wiederherzustellen, das Netzkabel zu entfernen und neu zu starten
AKTUALISIEREN
Wenn die Verbindung abbricht, hatte ich einige Erfolge, sudo dhclient -vohne die Adresse vorher fallen zu lassen.
dhclient -v
Internet Systems Consortium DHCP Client 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/virbr0/96:a2:d6:f5:30:fc Sending on LPF/virbr0/96:a2:d6:f5:30:fc Listening on LPF/eth0/38:60:77:aa:aa:aa Sending on LPF/eth0/38:60:77:aa:aa:aa Sending on Socket/fallback DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 3 DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 DHCPREQUEST of 10.0.0.129 on eth0 to 255.255.255.255 port 67 DHCPOFFER of 10.0.0.129 from 10.0.0.254 DHCPACK of 10.0.0.129 from 10.0.0.254 bound to 10.0.0.129 -- renewal in 5716 seconds.
hier kann ich sehen, dass ich vermietet werde, 10.0.0.129aber ifconfig wird immer noch angezeigt10.0.0.137
Vielleicht sollte ich die WLAN-Karte deaktivieren, da ich sie nicht benutze
Alex Edwards vor 11 Jahren
0
Kannst du die Ausgabe von `tail -f / var / log / syslog` posten? und ein tcpdump von networkmanager, während die verbindung verloren geht? (am besten auf http://pastebin.com)
rubo77 vor 11 Jahren
0
@ rubo77 wird es tun, es könnte eine Weile dauern, bis es sich heute gut benommen hat!
Alex Edwards vor 11 Jahren
0
Ich bin wirklich überrascht, dass niemand die naheliegende Antwort erwähnt hat -
Löschen Sie DHCP und verwenden Sie eine statische IP-Adressierung. Sie können mit NAT ETC fortfahren, weisen Sie die IP-Adressen einfach nicht aus dem DHCP-Pool zu, sondern in demselben Subnetz, und alles sollte zuverlässig und vorhersehbar funktionieren.
Um die statische IP-Adressierung zu aktivieren, müssen Sie lediglich Änderungen vornehmen
Stellen Sie sicher, dass das Gateway die von KVM zugewiesene Adresse ist (wenn Sie / sbin / route -n ausführen, wird Ihnen das Standard-Gateway angezeigt - dies ist die zu verwendende IP-Adresse).
gute statische IP-Erklärung für das Überbrücken
Thufir vor 6 Jahren
0
0
killermist
Gedreht im Dunkeln:
ethX soll nichts DHCP.
Von einer Maschine, die auf Proxmox basiert, ist das Ergebnis von ifconfig (mit vmbr0 Bridging auf eth1 (die einzige echte, verbundene Netzwerkkarte, da es sich um gbit handelt) Folgendes:
Nun, ich habe die Brücke deaktiviert, die br0 ist. Wenn dies aktiviert ist, hat eth0 keine IP-Adresse auf br0, aber ich bekomme immer noch die gleichen Probleme mit dem Dropout von Verbindungen. virbr0 ist etwas, was von kvm erstellt wurde. Ich denke, das ist die Nat für die virtuellen Hosts, die extern adressierbar sind, wenn sie ausgeführt werden. Diese Konfiguration ist jedoch ohne VMs.
Alex Edwards vor 11 Jahren
0
Ya. Es war eine Einstellung im Dunkeln und viel zu lang, um die Frage zu kommentieren. Ich dachte, es könnte einige Ideen wecken, die Sie zum richtigen Ergebnis führen könnten. Ich hoffe, Sie finden es heraus oder wissen, dass jemand anderes die Antwort kennt.
killermist vor 11 Jahren
0
0
rubo77
Another shot in the dark:
you could try to disable IPv6 control in Networkmanager: set it from Method:"Automatic" to Method "Ignore"
that solved this kind of problem to me once.
if that doesen't work, you should examin the output of
tail -f /var/log/syslog
while the connection gets lost and reconnects
another hint can be gained by examining a tcpdump of networkmanager
ipv6 sollte bereits deaktiviert sein Ich habe net.ipv6.conf.all.disable_ipv6 = 1, net.ipv6.conf.default.disable_ipv6 = 1, net.ipv6.conf.lo.disable_ipv6 = 1 in meiner sysctl.conf -Datei
Alex Edwards vor 11 Jahren
0
0
pilona
Wenn Sie eine Bridge verwenden, um Ihre VMs mit demselben Netzwerk wie eth0 zu verbinden, sollten Sie im Allgemeinen kein NATing durchführen. Sie müssen nur die folgenden fünf Schritte ausführen:
Konfigurieren Sie Ihren Hypervisor für die Verwendung der entsprechenden Bridge-Schnittstelle. KVM wird nur vom Kernel bereitgestellt. Ein Hypervisor kann dies verwenden, um eine virtuelle Maschine zu implementieren. Wenn der Hypervisor für die Verwendung virbr0konfiguriert ist br0, Sie aber konfiguriert haben, treten natürlich Probleme auf. Es scheint, dass virbr0Ihr Hypervisor das automatisch eingerichtet hat, also müssen Sie an dieser Stelle nur sicherstellen, dass Ihre VMs diese Schnittstelle verwenden (ich würde davon ausgehen, dass dies bereits geschehen ist) und die eth0hinzugefügt wurde (dh sudo brctl addif virbr0 eth0).
Stellen Sie sicher, dass alle relevanten Links aktiv sind (dh sudo ip link set dev eth0 up; sudo ip link set dev virbr0 up). ipAus dem iproute2Paket bevorzugen ; ifconfigaus dem net-toolspaket ist lange veraltet, sollte aber trotzdem für so etwas grundlegendes funktionieren.
IP-Weiterleitung im Kernel aktivieren (dh sysctl net.ipv4.ip_forward=1)
Stellen Sie Ihre Firewall so ein, dass der überbrückte Datenverkehr zugelassen wird. Wenn Sie nicht besonders wählerisch sind oder sich Sorgen machen, dass Personen beliebigen Datenverkehr an Ihre VMs senden, können Sie Folgendes tun, um den Datenverkehr zuzulassen:
Wenn überbrückter Verkehr für iptables sichtbar ist (dh net.bridge.bridge-nf-call-iptables= 1):
Spülen Sie die iptablesFORWARDKette ( iptables -F FORWARD) in Tabelle Filter.
Setzen Sie die Richtlinie auf ACCEPT( iptables -P FORWARD ACCEPT).
Stellen Sie sicher, dass Sie keine anderen Tabellen filtern (was Sie nicht tun sollten, da dies nicht deren Zweck ist).
Wenn überbrückter Datenverkehr für arptables sichtbar ist (dh net.bridge.bridge-nf-call-arptables= 1), müssen Sie etwas Ähnliches wie oben für die INund- OUTChain-in-Tabelle filter(in der Tat die einzige Tabelle) tun .
Wieder etwas Ähnliches für tun ebtables. Es muss nicht geprüft werden, ob ein bestimmtes sysctl gesetzt ist. Es ist immer für den überbrückten Verkehr relevant.
Ich habe die Details für die letzten beiden ausgelassen, da es unwahrscheinlich ist, dass Ihr System dort irgendeine Konfiguration hat. Möglicherweise haben Sie sie nicht einmal auf Ihrem System installiert. In diesem Fall können Sie diese Schritte einfach überspringen.
Stellen Sie sicher, dass Sie kein ARP-Proxy sind . Sie brauchen es wahrscheinlich nicht (z. B. für etwas, das nichts mit dieser Frage zu tun hat) und tun es wahrscheinlich auch nicht sudo sysctl net.ipv4.conf.all.proxy_arp=0. Wenn Sie überbrücken, sollten Sie ARP für ein so einfaches Beispiel nicht vertreten.
Meines Wissens gibt es keine "NAT-Weiterleitung". Meinen Sie gerade reine IP-Weiterleitung (nicht dasselbe wie Ethernet-Bridging)? Meinten Sie portweiterleitung? Das Weiterleiten der Bootps- (67) und Bootpc (68) -Ports (die vom DHCP-Server bzw. -Client verwendet werden) und das NATing alles andere ist ein sehr queeres Setup und macht das Debuggen schwierig.