Netzwerkschnittstelle / DHCP-Probleme ubuntu mit kvm und Netzwerkbrücke

6310
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 

ifconfig

eth0 Link encap:Ethernet HWaddr 38:60:77:aa:aa:aa  inet addr:10.0.0.137 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:52068 errors:0 dropped:0 overruns:0 frame:0 TX packets:10900 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000  RX bytes:12322071 (12.3 MB) TX bytes:2494188 (2.4 MB)  lo Link encap:Local Loopback  inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2651 errors:0 dropped:0 overruns:0 frame:0 TX packets:2651 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:402096 (402.0 KB) TX bytes:402096 (402.0 KB)  virbr0 Link encap:Ethernet HWaddr f6:94:09:8f:7b:b5  inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

Sudo Dhcpclient -r -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 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

eth0 Link encap:Ethernet HWaddr 38:60:77:82:a8:61  inet addr:10.0.0.137 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:312183 errors:0 dropped:0 overruns:0 frame:0 TX packets:85529 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000  RX bytes:80808972 (80.8 MB) TX bytes:20479979 (20.4 MB)  lo Link encap:Local Loopback  inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3910 errors:0 dropped:0 overruns:0 frame:0 TX packets:3910 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:461047 (461.0 KB) TX bytes:461047 (461.0 KB)  virbr0 Link encap:Ethernet HWaddr 96:a2:d6:f5:30:fc  inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 
1
Welche Art von Netzwerkkarte haben Sie? oo. vor 11 Jahren 0
lspci | egrep -i --color 'network | ethernet' 05: 00.0 Netzwerkcontroller: Ralink corp. RT5390 Wireless 802.11n 1T / 1R PCIe 06: 00.0-Ethernet-Controller: Realtek Semiconductor Co., Ltd., RTL8111 / 8168B PCI Express-Gigabit-Ethernet-Controller (Rev. 06) Alex Edwards vor 11 Jahren 0
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

4 Antworten auf die Frage

1
davidgo

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

auto eth0 iface eth0 inet dhcp 

zu

auto eth0 Adresse XXXX iface eth0 inet statisch Netzmaske 255.255.255.0  Gateway XXXY 

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:

eth0 Link encap:Ethernet HWaddr 00:30:67:4f:48:57  UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:27 Base address:0x4000   eth1 Link encap:Ethernet HWaddr 54:e6:fc:80:06:9b  inet6 addr: fe80::56e6:fcff:fe80:69b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:209503 errors:0 dropped:0 overruns:0 frame:0 TX packets:22361 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000  RX bytes:46807271 (44.6 MiB) TX bytes:1558940 (1.4 MiB) Interrupt:16 Base address:0x8000   lo Link encap:Local Loopback  inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:24031 errors:0 dropped:0 overruns:0 frame:0 TX packets:24031 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:2462584 (2.3 MiB) TX bytes:2462584 (2.3 MiB)  venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  inet6 addr: fe80::1/128 Scope:Link UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:3 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)  vmbr0 Link encap:Ethernet HWaddr 54:e6:fc:80:06:9b  inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::56e6:fcff:fe80:69b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:196981 errors:0 dropped:0 overruns:0 frame:0 TX packets:10585 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0  RX bytes:43275844 (41.2 MiB) TX bytes:784636 (766.2 KiB) 

Am besten habe ich bis jetzt.

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 iptables FORWARDKette ( 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.