DHCP가 게이트웨이를 할당하지 않습니다

DHCP가 게이트웨이를 할당하지 않습니다

그래서 저는 KVM 가상 머신용 개발 서버를 실행하고 있습니다. 다음 구성으로 호스트 노드에서 로컬로 실행되는 DHCP 서버가 있습니다.

/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-서버

# 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"

참고로 Debian 7 proxmox 서버입니다.

문제는 문제 없이 DHCP를 통해 서버에 IP가 할당된다는 것입니다. xxx.xxx.x.5를 가져오지만 -n 경로를 통해 볼 때 게이트웨이는 0.0.0.0으로 설정되므로 네트워크에 연결할 수 없습니다.

VM 네트워크 구성 파일의 내용:

DEVICE=eth01
BOOTPROTO=dhcp 
ONBOOT=yes

잘못된 인수

또한 DHCP에서 정보를 가져올 때 잘못된 인수 오류가 발생하며 관련이 있을 수 있습니다.

클라이언트의 오류 로그:

여기에 이미지 설명을 입력하세요

답변1

제한된 정보로 원격으로 문제를 해결하는 것은 어렵습니다. 하지만 시도해 보고 싶습니다.

먼저, 추측입니다. 일반적으로 DEVICE 이름은 eth0또는 eth1가 아닌 입니다 eth01. 이는 "잘못된 인수 오류"를 설명할 수 있습니다. VM에서 ifconfig -a또는 ip linkVM에서 올바른 NIC를 다루고 있는지 확인하십시오 .

또 다른 용의자는 정적 경로입니다. 배열에는 14개가 아닌 13개의 항목이 있어야 합니다. 형식은 입니다 <netmask>, <network-byte1>, <network-byte2>, <network-byte3>, <router-byte1>, <router-byte2>, <router-byte3>.... 따라서 다음과 같아야 합니다 24,192,168,1, 192,168,1,1, 0, 192,168,1,1. 구경하다여기. 잘못된 정적 경로가 기본 게이트웨이를 덮어쓰는 것 같습니다.

그것이 문제가 아니라면 디버깅을 위한 프로세스가 필요합니다. DHCP 구성에서 vmbr0Linux 브리지가 있다고 가정 하고 거기에서 VM이 생성됩니다. 호스트/하이퍼바이저에서 virt net-list및 확인을 통해 VM 네트워크가 올바르게 생성되었는지 확인해야 합니다 . virt edit <vm>을 사용할 수도 있습니다 virt-manager. VM에 에서 브리지되는 NIC가 하나만 있는지 확인하세요 vmbr0.

여전히 문제가 해결되지 않은 경우 VM으로 이동하여 DHCP 클라이언트를 디버그하세요. 먼저 , 또는 을 사용 killall dhclient하여 트래픽을 실행 dhclient eth0하고 모니터링합니다 . 게이트웨이 옵션을 찾으세요. 도중에 다른 DHCP 서버가 없는지 확인하세요. (libvirt의 기본 NAT일 수도 있고 브리지가 있으므로 외부의 다른 DHCP 서버일 수도 있습니다.) DHCP 서버가 있는 호스트에서 실행할 수도 있습니다 .dhcpdump -i eth0tcpdump udp and port 67 or 68dhcpdump/tcpdump

이게 도움이 되길 바란다.

관련 정보