DHCP weist kein Gateway zu

DHCP weist kein Gateway zu

Ich betreibe also einen Entwicklungsserver für virtuelle KVM-Maschinen. Ich habe einen DHCP-Server, der lokal auf dem Hostknoten mit der folgenden Konfiguration ausgeführt wird:

/etc/dhcp/dhcpd.conf

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

subnet xxx.xxx.x.0 netmask 255.255.255.0 {
 range xxx.xxx.x.2 xxx.xxx.x.127;
 option routers xxx.xxx.x.1;
 option broadcast-address xxx.xxx.x.255;
 option domain-name-servers 8.8.8.8;
 option netbios-name-servers 8.8.8.8;
 default-lease-time 86400;
 max-lease-time 86400;
 option rfc3442-classless-static-routes 24, xxx, xxx, x, 0, 0, 0, 0, 0, 0, xxx, xxx, x, 1;
 option ms-classless-static-routes 24, xxx, xxx, x, 0, 0, 0, 0, 0, 0, xxx, xxx, x, 1;
         host 102 {hardware ethernet 4A:19:BD:DF:B0:07;fixed-address xxx.xxx.x.5;}


 }

/etc/default/isc-dhcp-server

# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid

# Additional options to start dhcpd with.
#       Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="vmbr0"

Als Referenz: Dies ist ein Debian 7 Proxmox-Server.

Das Problem ist, dass dem Server problemlos eine IP über DHCP zugewiesen wird. Er erhält xxx.xxx.x.5, das Gateway wird jedoch über Route -n auf 0.0.0.0 gesetzt und das Netzwerk ist daher nicht erreichbar.

Inhalt der VM-Netzwerkkonfigurationsdatei:

DEVICE=eth01
BOOTPROTO=dhcp 
ONBOOT=yes

ungültiges Argument

Darüber hinaus tritt beim Abrufen von Informationen von DHCP ein Fehler aufgrund eines ungültigen Arguments auf. Die beiden könnten miteinander in Zusammenhang stehen.

Fehlerprotokoll auf dem Client:

Bildbeschreibung hier eingeben

Antwort1

Mit begrenzten Informationen ist es schwierig, Probleme aus der Ferne zu beheben. Aber ich würde es gerne versuchen.

Zunächst nur eine Vermutung. Normalerweise lautet der Gerätename eth0oder eth1, nicht eth01. Dies könnte den „ungültigen Argumentfehler“ erklären. Stellen Sie sicher, dass Sie es mit der richtigen Netzwerkkarte von ifconfig -aoder ip linkin der VM zu tun haben.

Ein weiterer Verdächtiger ist die statische Route. Sie sollte 13 Elemente im Array haben, statt Ihrer 14. Das Format ist <netmask>, <network-byte1>, <network-byte2>, <network-byte3>, <router-byte1>, <router-byte2>, <router-byte3>.... Es sollte also so aussehen 24,192,168,1, 192,168,1,1, 0, 192,168,1,1. Schauen Sie malHier. Ich vermute, dass die falsche statische Route das Standard-Gateway überschreibt.

Wenn das nicht das Problem ist, benötigen Sie einen Prozess zum Debuggen. Aus Ihrer DHCP-Konfiguration gehe ich davon aus, dass es vmbr0sich um eine Linux-Bridge handelt und VMs von dort aus erstellt werden. Sie müssen bestätigen, dass das VM-Netzwerk richtig erstellt wurde, indem Sie virt net-listund virt edit <vm>auf dem Host/Hypervisor überprüfen. Sie können auch verwenden virt-manager. Stellen Sie sicher, dass die VM nur eine Netzwerkkarte hat, die von überbrückt wird vmbr0.

Wenn das Problem immer noch nicht behoben ist, gehen Sie in die VM und debuggen Sie den DHCP-Client. Führen Sie zuerst aus killall dhclientund überwachen Sie den Verkehr dann dhclient eth0mit dhcpdump -i eth0oder tcpdump udp and port 67 or 68. Suchen Sie nach Gateway-Optionen. Stellen Sie sicher, dass kein anderer DHCP-Server im Weg ist. (Könnte das Standard-NAT von libvirt sein oder ein anderer DHCP-Server von außerhalb, da Sie eine Bridge haben). Sie können es auch dhcpdump/tcpdumpauf dem Host ausführen, auf dem Sie den DHCP-Server haben.

Ich hoffe das hilft.

verwandte Informationen