dhcp não atribuindo gateway

2

Portanto, estou executando um servidor dev para máquinas virtuais KVM. Eu tenho um servidor DHCP em execução localmente no nó do host com a seguinte configuração:

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

Para referência, este é um servidor proxmox debian 7.

O problema é que o servidor recebe um IP via DHCP sem problemas. Obtém xxx.xxx.x.5, no entanto, o gateway é definido como 0.0.0.0 quando visualizado via route -n e, portanto, a rede não está acessível.

Conteúdo do arquivo de configuração de rede da VM:

DEVICE=eth01
BOOTPROTO=dhcp 
ONBOOT=yes

Alémdisso,háumerrodeargumentoinválidoquandoestáobtendoinformaçõesdoDHCP,elaspodemestarrelacionadas.

Logdeerronocliente:

    
por awmusic12635 27.09.2015 / 03:45

1 resposta

5

É difícil solucionar problemas remotamente com informações limitadas. Mas eu gostaria de tentar.

Primeiro, apenas um palpite. Normalmente, o nome do DISPOSITIVO é eth0 ou eth1 , não eth01 . Isso pode explicar o "erro de argumento inválido". Verifique se você está lidando com a NIC correta em ifconfig -a ou ip link na VM.

Outro suspeito é a rota estática. Ele deve ter 13 itens na matriz, em vez de 14. O formato é <netmask>, <network-byte1>, <network-byte2>, <network-byte3>, <router-byte1>, <router-byte2>, <router-byte3>... . Portanto, deve parecer com isso 24,192,168,1, 192,168,1,1, 0, 192,168,1,1 . Dê uma olhada aqui . Eu acho que a rota estática errada sobrescreve o gateway padrão.

Se esse não for o problema, você precisa de um processo para depurar. De sua configuração DHCP, eu assumo que vmbr0 é uma ponte Linux e as VMs são criadas a partir daí. Você precisa confirmar se a rede da VM foi criada corretamente, verificando virt net-list e virt edit <vm> no host / hyperviser. Você também pode usar virt-manager . Certifique-se de que a VM tenha apenas uma NIC, que é conectada a partir de vmbr0 .

Se ainda não for corrigido, vá para a VM e depure o cliente DHCP. Primeiro, killall dhclient e, em seguida, execute dhclient eth0 e monitore o tráfego com dhcpdump -i eth0 ou tcpdump udp and port 67 or 68 . Procure por opções de gateway. Certifique-se de que não haja outro servidor DHCP no caminho. (Pode ser o NAT padrão do libvirt; ou pode ser outro servidor DHCP de fora, desde que você tenha uma ponte). Você também pode executar dhcpdump/tcpdump no host em que você tem o servidor DHCP.

Espero que isso ajude.

    
por 29.09.2015 / 22:32