O CentOS 7 não está configurando meu gateway do DHCP

7

Eu tenho uma instalação mínima do CentOS 7.

Desativei o Gerenciador de Rede, pois quero configurar minha rede da maneira "antiga".

systemctl stop NetworkManager 
systemctl disable NetworkManager
chkconfig network on
service network restart

Minha configuração de rede (/ etc / sysconfig / network-scripts / ifcfg-ens4) se parece com isto:

DEVICE="ens4"
TYPE="Ethernet"
NOZEROCONF="yes"
PERSISTENT_DHCLIENT="1"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens4"
ONBOOT="yes"
NM_CONTROLLED="no"

Meu arquivo de aluguel DHCP é assim:

lease {
  interface "ens4";
  fixed-address 144.76.190.238;
  option subnet-mask 255.255.255.255;
  option routers 144.76.190.224;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 8.8.8.8,8.8.4.4;
  option dhcp-server-identifier 144.76.190.224;
  option host-name "hello.example.com";
  option domain-name "example.com";
  renew 2 2014/10/21 05:44:47;
  rebind 2 2014/10/21 15:04:03;
  expire 2 2014/10/21 18:04:03;
}

Agora, meu problema é que o campo "roteadores" do DHCP parece ser ignorado pelo CentOS 7. IP, netmask e hostname estão sendo definidos corretamente, mas minha rota padrão não está sendo definida (em branco).

Como você pode ver, estou usando a máscara de rede 255.255.255.255 para que o IP do gateway fique "fora" da minha rede. Por isso, é necessária uma rota extra. Se eu executar estes manualmente:

route add -host 144.76.190.224 dev ens4
route add defualt gw 144.76.190.224

Então tudo funciona bem:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         144.76.190.224  0.0.0.0         UG    0      0        0 ens4
144.76.190.224  0.0.0.0         255.255.255.255 UH    0      0        0 ens4

Todas as outras distribuições de Linux que testei, incluindo o Centos 6, funcionam bem e configuram essas duas rotas automaticamente a partir do DHCP.

Então minha pergunta é essa; Por que isso não é definido automaticamente no CentOS 7? Alguma coisa mudou e eu tenho que adicionar alguns sinalizadores adicionais ao cliente DHCP para que ele funcione?

Parece que o CentOS 6 usa o dhclient versão 4.1.1-P1 e o CentOS 7 usa o 4.2.5. Talvez eles tenham mudado alguma coisa entre essas versões?

UPDATE 1:

Eu olhei para as notas de lançamento do dhclient e achei isso para 4.0.0:

"O dhclient-script foi atualizado para criar uma rota de host para o padrão   gateway se a máscara de sub-rede fornecida para um endereço IPv4 for um / 32. este   permite que o cliente trabalhe em ambientes de rede 'cativos', onde o   operador não quer que os clientes façam crosstalk diretamente. "

Então, isso deveria estar funcionando desde há muito tempo. Talvez o CentOS 7 o tenha removido do "dhclient-script"?

UPDATE 2:

Copiei o arquivo "/ sbin / dhclient-script" de uma instalação do CentOS 6 para o servidor do CentOS 7. Agora tudo funciona bem. Vou investigar quais mudanças eles fizeram, mas parece que eles introduziram um bug no CentOS 7.

UPDATE 3:

Eu descobri o problema. Eles adicionaram uma verificação de ping (estúpida) na nova versão do / sbin / dhclient-script que tenta fazer ping no gateway antes de adicioná-lo. Como estou bloqueando pings no meu firewall no servidor DHCP, ele não respondeu e, portanto, o dhclient-script não adicionou nenhuma rota padrão.

    
por Daniele Testa 21.10.2014 / 13:03

3 respostas

4

Verifique se o servidor DHCP responde ao ping. Caso contrário, o / sbin / dhclient-script não configurará a rota padrão corretamente.

Esse "check" adicional parece ter sido adicionado a versões posteriores do dhclient ou adicionado especialmente no CentOS 7. A verificação de ping não existe nas versões do CentOS anteriores a 7.

    
por 21.10.2014 / 20:23
1

Eu tive este problema agora mesmo em uma instalação limpa de um convidado do VMware do CentOS 7 e foi por causa de eu ter configurado uma reserva de DHCP previamente para aquele convidado no VMWare Workstation em:

C: \ ProgramData \ VMware \ vmnetdhcp.conf

Portanto, a correção é comentar ou remover as duas linhas no arquivo conf relacionadas ao servidor do CentOS:

host VMnet8 {
    hardware ethernet 00:40:56:C0:00:08;
    fixed-address 192.168.80.1;
    #hardware ethernet 00:0C:29:19:C7:7A; <--Comment or remove this CentOS line
    #fixed-address 192.168.80.111;        <--Comment or remove this CentOS line
    option domain-name-servers 0.0.0.0;
    option domain-name "";
    option routers 0.0.0.0;
}

Salve o arquivo (como administrador), reinicie o serviço VMWare DHCP no host e faça um network service restart no CentOS. Agora você terá um gateway para acessar a Internet. No entanto, você também precisa yum update para corrigir o problema de reserva do dhcp no gateway. Caso contrário, se você adicionar a reserva antes disso, ela não terá nenhum gateway na próxima reinicialização. Depois que as atualizações forem concluídas, o problema deverá ser resolvido. Portanto, adicione as linhas acima de volta ao arquivo conf e reinicie o serviço VMWare DHCP novamente para que sua reserva esteja de volta e você esteja definido.

Este é apenas o caso da configuração inicial do CentOS. Então, é doloroso uma vez depois de uma instalação limpa. Eu vou estar fazendo snapshots VMWare avançar, apesar da desvantagem disso.

Para o registro, meu NetworkManager está ativado. Se alguém souber uma maneira permanente de evitar isso após uma instalação limpa, compartilhe. Ele pode ser corrigido em uma atualização posterior do CentOS, pois yum update o corrige.

É uma situação específica, mas não é uma configuração incomum. Eu principalmente postou esta resposta porque eu provavelmente estarei de volta aqui no futuro tentando lembrar o que eu fiz. Mas eu matei algumas horas nisso, então espero que ajude alguém também.

    
por 29.10.2018 / 06:39
0

Talvez você tenha definido um gateway padrão em /etc/sysconfig/network/routes já?

Se não, você pode pelo menos configurar que o que você rotear manualmente é feito automaticamente nesse arquivo:

144.76.190.224 - 255.255.255.255 ens4
default 144.76.190.224 - ens4
    
por 21.10.2014 / 13:38