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


Eu estou usando o Debian 7.0.

Eu tenho uma máquina com duas placas de rede conectadas e desejo 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:

enter image description here

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

O estranho problema é que você pode pingar / acessar apenas o IP de eth1. Então, novamente, mesmo quando eu tenho duas placas de rede eu 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ê pode tentar o ping também e você verá.

Espero que você possa me ajudar!


0


origem


Você não atribuiu endereços IP estaticamente, você os designou dinamicamente. Seu problema é que você tem 2 interfaces na mesma sub-rede / Uma maneira melhor seria ligar as duas interfaces em uma única interface e, em seguida, abrir uma interface secundária se precisar de 2 IPs. - davidgo
Como posso criar outra sub-rede? Como posso criar 2 interfaces? Eu não entendo nada disso. - Tony Stark


Respostas:


Provavelmente porque o sistema com dois NICs está tentando enviar a mensagem de ping ICMP de resposta de eth0 fora 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 olhar para os recursos de roteamento de políticas do Linux ("roteamento de políticas" do Google e boa sorte, porque estou estudando isso sozinho) ou para redirecionar o tráfego com iptables se você realmente quiser fazer isso.


2



você não usa o roteamento de políticas para resolver esse problema, você usa a vinculação de canais. - davidgo


O caminho mais simples

Em seu nível de conhecimento, talvez seja melhor ignorar o segundo NIC (ou seja, desconectá-lo) e ter 2 endereços IP vinculados ao primeiro 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 jeito difícil

A idéia 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. Dar uma olhada Aqui para uma descrição de 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 é reiniciar o 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.

Então o arquivo será parecido

# 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

0



Eu tenho uma pergunta para o caminho mais simples. A eth0: 1 terá endereços MAC diferentes da eth0? Eu preciso de dois endereços mac diferentes. - Tony Stark
Não, ele fornecerá apenas 1 endereço de ethernet. Talvez você deva descrever seu objetivo final, em vez de fazer uma suposição de como alcançá-lo? Eu noto que ambos os endereços IP estão na mesma sub-rede - então a questão é por que você precisa de 2 endereços mac? Veja também serverfault.com/questions/223601/… - davidgo
Eu preciso de 2 endereços mac porque eu devo dar ao meu provedor o endereço MAC e eles me dão um endereço IP estático para o MAC. - Tony Stark
Isso levanta uma série de perguntas que você deve esclarecer com seu ISP ao procurar uma solução - Embora pareça que seu ISP pode / está alocando IPs estáticos sobre DHCP, você pode configurar os endereços IP usando statics em sua configuração, e se você trouxer um endereço IP estático não associado a um endereço MAC, funcionará e (porque você está estaticamente atribuindo seus endereços ao seu lado), eles poderão ter o mesmo MAC associado a 2 IPs. - davidgo
Veja também serverfault.com/questions/223601/… (mas substitua eth0 por bond0) para criar vlans com diferentes endereços MAC aparecendo na interface. Observe que o formato é bondX.X, em vez de bondX: X - davidgo