Estou configurando a rede CentOS 7 em um servidor com 2 nic. As interfaces de rede são:
em1 que deve ser conectado a uma rede local por DHCP,
IP: 192.168.0.240
Gateway: 192.168.0.2
Masq.: 255.255.255.0
.Seu script de configuração é
/etc/sysconfig/network-scripts/ifcfg-em1
:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="em1"
DEVICE="em1"
ONBOOT="yes"
IPV6_PRIVACY="no"
em2 que deve estar conectado à internet com ip estático
IP: 179.94.94.83
Gateway: 179.94.94.81
Masq.: 255.255.255.248
Seu script de configuração é
/etc/sysconfig/network-scripts/ifcfg-em2
:
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
DEVICE=em2
ONBOOT=yes
IPADDR=179.94.94.83
GATEWAY=179.94.94.81
DNS1=200.40.30.245
DNS2=200.40.220.245
PROXY_METHOD=none
BROWSER_ONLY=no
PREFIX=29
O problema:
O problema é quando as duas placas (em1 e em2) estão conectadas eu consigo conectar usando o IP 192.168.0.240 mas não tenho acesso usando o IP 179.94.94.83 ou vice-versa, dependendo de qual for conectado primeiro, mas se for apenas um deles está conectado o IP correspondente funciona normalmente.
tenho lido:
- https://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/
- http://jensd.be/468/linux/two-network-cards-rp_filter
- https://serverfault.com/questions/779786/public-interface-not-listening-by-default-centos-7
mas não consegui encontrar uma solução. Aqui o autor se refere à configuração do NAT http://jensd.be/468/linux/two-network-cards-rp_filter#comment-15119 mas de qualquer forma não consigo fazer as duas conexões funcionarem simultaneamente.
Para esclarecer as coisas:
1 NIC1 deve ter um IP estático local como 192.168.xx e NIC2 deve ter o IP estático externo 179.xxx
2 Seria ótimo se pudéssemos acessar serviços diferentes através de redes diferentes, ou seja. SSH usando apenas LAN e HTTP usando ambos (aberto à Internet e LAN)
Você ainda tem DHCP em sua configuração.
Seu
/etc/sysconfig/network-scripts/ifcfg-em1
script deve ficar assim:O seu
/etc/sysconfig/network-scripts/ifcfg-em2
deve ser parecido:Além disso, adicione a seguinte linha
/etc/sysconfig/network
ou edite a linha GATEWAY existente:Você não precisa abrir mão do DHCP. Você pode instruir os scripts de inicialização a desabilitar a rota padrão, mesmo se obtida na resposta do servidor DHCP. Isso permite que você mantenha uma concessão ativa válida no servidor DHCP e recupere outras informações úteis fornecidas pelo DHCP, enquanto permite que você tenha um gateway padrão definido em outro lugar.
Basta alterar o
DEFROUTE
parâmetro para:/etc/sysconfig/network-scripts/ifcfg-em1
e reinicie a rede (ou apenas )ifdown em1; ifup em1
.Encontrado estudando
/etc/sysconfig/network-scripts/ifup-eth
e depois na Redhat (embora só mencione seu uso junto com o NetworkManager, funciona com e sem ele):4.6. Configurando o Gateway Padrão
Observe que, no CentOS, se o parâmetro
NM_CONTROLLED=no
não estiver definido e o NetworkManager estiver instalado, o que provavelmente é o seu caso ao ver os parâmetros extras, o NetworkManager (geralmente bem) interagirá com os scripts sysconfig e criará uma configuração equivalente a partir do mesmo arquivo. É então aconselhável fazer umanmcli c reload
alteração direta no arquivo.A alteração equivalente também pode ser obtida do lado do NetworkManager, uma vez que você determina o nome do id ou uuid usado para a interface (aqui escolhendo que ela seja nomeada
System em1
pelo NetworkManager).que se posicionará automaticamente
DEFROUTE=no
em/etc/sysconfig/network-scripts/ifcfg-em1
. Continuar a descer/subir a interface ainda é necessário.Você também pode ter que considerar desabilitar os servidores DNS do DHCP e substituí-los por parâmetros DNS "estáticos", embora não haja uma boa solução fornecida pelos scripts de rede se você precisar de resoluções DNS internas e externas ao mesmo tempo (você provavelmente exigir um servidor DNS local personalizado ou solução semelhante), então pondere se isso pode ajudar ou não:
Este parâmetro parece funcionar bem apenas quando sob o controle do NetworkManager, nos testes que fiz, aparentemente não teve efeito sem, porque o DNS foi definido diretamente
/etc/resolv.conf
pelo emdhclient
vez de ser "integrado" pelo NM primeiro. Se esse for realmente o seu caso (sem NetworkManager e não o deseja), a outra resposta disponível pode ser mais adequada.Da mesma forma, há a propriedade NetworkManager equivalente
ipv4.ignore-auto-dns
(assim como aipv6.ignore-auto-dns
correspondenteIPV6_PEERDNS=
) exposta.