Eu tenho um sistema com duas placas de rede nele. Esta máquina e alguns dispositivos acompanhantes serão movidos e conectados a diferentes LANs ou, às vezes, usarão acesso discado.
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
Estou usando o ifconfig para ativar ou desativar as interfaces (exceto com o ppp0, que é tratado pelo KPPP).
Se eu abrir o eth1 primeiro, ele obtém um endereço do DHCP e obtém o gateway e isso é adicionado ao roteamento para que não haja problemas para acessar a LAN e a Internet.
Se eu abrir eth0 primeiro ou segundo, ele obtém seu endereço e define o gateway padrão para dentro de seu espaço de endereço (no intervalo 10.xxx). Se eu abrir eth0 primeiro e eth1 segundo, o gateway padrão ainda será mantido dentro do intervalo 10.xxx.
Portanto, não importa o que eu faça, o eth0 substituirá o eth1 e "reivindicará" o gateway no roteamento.
Existe alguma maneira de impedir que eth0 reivindique o gateway ou garantir que o eth1 (se mencionado em 2º) use seu gateway? Ou posso, de alguma forma, priorizar uma classificação do gateway de qual interface deve ser usado sobre os outros?
Basicamente, quero garantir que o gateway do espaço de endereço padrão do eth1 seja usado se estiver ativo e, caso contrário, o gateway padrão do ppp0 será usado. Eu gostaria de impedir que o eth0 tenha o gateway padrão.
fonte
ifconfig
cause qualquer tipo de interação DHCP. Normalmenteifup
fará isso, iniciandodhclient
. Suas interfaces eth * possivelmente estão sendo apresentadas pelo processo de inicialização do sistema, digamos/etc/init.d/network
, ou pelo NetworkManager?Respostas:
A configuração do servidor DHCP está incorreta. Ele não deve enviar uma opção de gateway padrão quando não puder fornecer roteamento para o resto do mundo. Se enviar essa opção, qualquer cliente poderá presumir que pode enviar pacotes para qualquer destino fora do link para o gateway padrão especificado.
Portanto, sua caixa está correta ao usar o gateway padrão de eth0, se for solicitado pelo DHCP. A solução é remover a opção ruim do seu servidor DHCP.
fonte
Eu enfrentei um problema semelhante no Raspbian (suponho que a solução abaixo também seja aplicável ao Debian). O Raspberry Pi 3 possui 2 NICs integradas: Wi-Fi e Ethernet. Eu uso os dois, eles são wlan0 e eth0, respectivamente. O wlan0 está conectado à minha rede Wi-Fi doméstica e o acesso à Internet é fornecido por essa interface. Ele obtém suas configurações via DHCP do meu roteador doméstico. eth0 está conectado diretamente ao meu PC com Windows e possui um IP estático atribuído. Nenhum acesso à Internet via eth0 estava disponível, pois eu não o configurei no meu PC com Windows.
No Raspbian, o daemon dhcpcd é responsável pela configuração de interfaces de rede. Para definir o IP estático para a interface eth0, foram adicionadas as seguintes linhas ao final de
/etc/dhcpcd.conf
:Com essas configurações, o dhcpcd criou duas rotas padrão e a rota via eth0 teve prioridade mais alta que a via wlan0:
Portanto, eu não tinha acesso à Internet, porque o sistema tentou rotear via eth0 e não tinha acesso à internet, como mencionei acima.
Para resolver o problema, usei a
nogateway
opção na/etc/dhcpcd.conf
interface for eth0. Portanto, a configuração específica de eth0 começou assim:Depois de salvar essa configuração e reiniciar, não havia rota padrão via eth0:
O acesso à Internet apareceu e o problema foi resolvido.
fonte
nogateway
é o caminho a percorrer em mais distros debianNo RHEL6 / Fedora 22, o seguinte foi testado.
Em / etc / sysconfig / network-scripts / ifcfg-eth1, adicione a linha:
Substitua eth1 pelo nome da interface em que o roteamento padrão não é desejado.
Isso também pode ser feito via GUI do Network Manager, marcando a caixa "Use esta conexão apenas para recursos em sua rede" na parte inferior da guia IPv4.
DEFROUTE = no impede a adição da rota padrão (destino 0.0.0.0) à tabela de roteamento quando a interface está ativada. ie a entrada a seguir não seria adicionada.
fonte
ok, então o que você deseja é que a máquina nunca abra um gateway padrão quando abrir o eth0 e obter um endereço via DHCP.
Aqui está a solução:
Editar arquivo:
e preencha com:
antes:
após ifdown eth0, ifup eth0:
fonte
Você pode editar o arquivo dhcpclient.conf e não solicitar nenhuma rota padrão no servidor DHCP remoto.
Uma pequena amostra do que fiz e está funcionando no meu caso
fonte