Utilizando o DHCP para obter dois endereços IP diferentes para duas NICs em uma máquina

0

Estou usando o Debian 7.0.

Eu tenho uma máquina com duas placas de rede conectadas e quero atribuir dois endereços IP estáticos a essa máquina.

Aqui está minha configuração em /etc/network/interfaces :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

Aqui está o resultado de /sbin/ifconfig :

Como você pode ver, as duas NICs receberam um endereço IP estático.

O estranho problema é que você pode fazer ping / acessar apenas o IP de eth1 . Então, novamente, mesmo quando eu tenho dois NICs, tenho apenas um IP para essa máquina.

Onde está o meu erro, porque eu não consigo acessar / acessar / pingar o IP de eth0 de outra máquina?

Você também pode testar o ping e verá.

Espero que você possa me ajudar!

    
por Venelin Vasilev 22.03.2016 / 17:10

2 respostas

2

Provavelmente porque o sistema com duas NICs está tentando enviar a mensagem de ping ICMP de resposta de eth0 de eth1 .

Quando o sistema envia o tráfego para a rede, ele consulta sua Base de Informações de Encaminhamento local (FIB) ou a tabela de roteamento.

A tabela de roteamento terá uma lista de sub-redes e interfaces onde essa sub-rede pode ser alcançada. Cada pacote de saída é comparado com todas as entradas nesta tabela, e aquele com o número CIDR de sub-rede mais alto "vencerá" e será usado para enviar o tráfego. Se não houver vencedores, o gateway padrão será usado.

Você tem 2 entradas com a mesma sub-rede CIDR indo para a mesma sub-rede. Essencialmente, no que diz respeito ao seu sistema, estes vão para o mesmo local, por isso não importa qual é usado. Sua pilha de rede usará a primeira que encontrar, enviará o tráfego para fora dela e terminará com ela. Provavelmente, a NIC com o menor número IP está aparecendo primeiro em sua tabela de roteamento.

Você precisa examinar os recursos de roteamento de políticas do Linux (o "roteamento de políticas" do Google e a boa sorte, porque estou estudando isso sozinho) ou procure redirecionar o tráfego com iptables se realmente quiser fazer isso.

    
por 22.03.2016 / 17:23
0

A maneira simples

No seu nível de conhecimento, talvez seja melhor ignorar a segunda NIC (ou seja, desconectá-la) e ter 2 endereços IP vinculados à primeira NIC. As desvantagens são a falta de redundância e você está limitado à velocidade de 1 NIC.

Para fazer isso (para eth0), modifique seu arquivo / etc / network / interfaces para ler:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address A.A.A.A
netmask 255.255.252.0
gateway X.X.X.X

auto eth0:1
iface eth0:1 inet static
address B.B.B.B
netmask 255.255.252.0

Note que você precisará colocar o endereço de gateway correto para X.X.X.X. Você também precisará verificar se os endereços IP (A.A.A e B.B.B.B) não estão no intervalo de DHCP.

O caminho mais difícil

A ideia aqui é fazer com que as duas interfaces atuem como uma interface de velocidade dupla (com a capacidade de continuar o trabalho se uma interface for desconectada) e, em seguida, exibir os endereços IP semelhantes aos acima.

A primeira dificuldade a superar é descobrir qual modo usar. Não existe uma solução única para todas as soluções aqui, é a questão de escolher a mais adequada para você e seu hardware. Dê uma olhada aqui para obter uma descrição dos diferentes modos. Em caso de dúvida, use o modo 0 - isso não requer hardware sofisticado, mas você só pode obter o efeito completo da ligação de canal para o tráfego de saída, mas ainda assim obtém redundância. Se você tiver tráfego para muitos endereços diferentes na LAN, o modo 2 também não é uma má escolha.

Você precisa criar um arquivo como /etc/modprobe.d/bonding.conf para informar ao sistema sobre como você deseja fazer a ligação

alias bond0 bonding
options bond0 mode=0 miimon=100

(O acima assume que você está usando o modo 0).

A maneira mais fácil de fazer essa alteração entrar em vigor é reinicializar seu computador.

Agora você terá uma nova interface disponível no seu sistema "bond0". Usando / etc / networks / interfaces, você agora escraviza as duas interfaces ethernet e, em seguida, exibe as interfaces virtuais conforme o exemplo 1 acima.

O arquivo será parecido com

# The loopback network interface
auto lo
iface lo inet loopback

# Enslave the ethernet drivers
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0

auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth1

# The primary network interface
auto bond0
iface bond0 inet static
address A.A.A.A
netmask 255.255.252.0
gateway X.X.X.X

auto bond0:1
iface bond0:1 inet static
address B.B.B.B
netmask 255.255.252.0
    
por 24.03.2016 / 23:00