Duas rotas para a mesma rede - prioridade diferente

1

Eu estou tentando decidir sobre a configuração mais adequada para o meu servidor com duas interfaces externas, ambas obtendo um número IP externo de um ISP sobre DHCP. Isso é para que eu possa hospedar diferentes serviços em diferentes IPs. Os endereços provavelmente residirão na mesma rede, o que pode causar alguma dor de cabeça com meu roteamento.

O cenário mais fácil é simplesmente atribuir uma prioridade diferente a cada interface de rede, tendo uma interface como "primário", para o qual tudo é roteado por padrão. Como não estou interessado em balanceamento de carga ou failover, isso deve funcionar.

ifconfig em0 priority 0
ifconfig em2 priority 10

Eu simulei o cenário usando um servidor DHCP local e parece funcionar bem. A tabela de roteamento é semelhante a esta após a configuração automática por DHCP:

# route -n show -inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            10.0.0.1           UGS        0        0     -     8 em0
224/4              127.0.0.1          URS        0        0 32768     8 lo0
10.0.0/24          10.0.0.2           UCn        1       13     -     4 em0
10.0.0/24          10.0.0.3           UCn        0        0     -    14 em2
10.0.0.1           xx:xx:xx:xx:xx:01  UHLch      1       12     -     3 em0
10.0.0.2           xx:xx:xx:xx:xx:02  UHLl       0        0     -     1 em0
10.0.0.3           xx:xx:xx:xx:xx:03  UHLl       0        3     -     1 em2
10.0.0.255         10.0.0.2           UHPb       0        0     -     1 em0
10.0.0.255         10.0.0.3           UHPb       0        0     -     1 em2
127/8              127.0.0.1          UGRS       0        0 32768     8 lo0
127.0.0.1          127.0.0.1          UHhl       1        2 32768     1 lo0

Existe apenas uma saída padrão através do meu gateway, e a rota conflitante 10.0.0/24 tem prioridades diferentes, portanto, apenas uma maneira deve ser usada, a menos que explicitamente solicitado.

De acordo com todos os meus testes, isso funciona bem. Em particular:

  • Os serviços no servidor que escutam os dois IPs podem ser acessados usando IP.
  • Serviços de escuta em uma interface só podem ser acessados nessa interface.
  • Ao fazer ping de um host no servidor, posso selecionar uma interface de saída. Isso funciona como esperado.

Mas ainda estou preocupado e tenho duas perguntas em particular:

Devo excluir a rota extra para minha rede?

Eu tenho duas rotas para 10.0.0/24 . O contador "Use" para o último nunca é incrementado, e minha rede parece funcionar mesmo se eu deletar aquele para em2 .

10.0.0/24          10.0.0.2           UCn        1       13     -     4 em0
10.0.0/24          10.0.0.3           UCn        0        0     -    14 em2

A segunda rota é necessária? Se não, isso faz algum mal?

Preciso de duas transmissões para a mesma rede?

Cada interface também configura sua própria transmissão para a mesma rede.

10.0.0.255         10.0.0.2           UHPb       0        0     -     1 em0
10.0.0.255         10.0.0.3           UHPb       0        0     -     1 em2

A mesma pergunta aqui: Ambos são necessários, e se não, é prejudicial? Eu poderia facilmente imaginar que cada interface deve ter uma entrada na tabela, mas tenho medo de não saber o suficiente sobre isso. Eu não vejo nenhuma coisa estranha acontecendo na minha LAN.

... espere

Depois de executar esta configuração por um tempo, a rede parou de funcionar. Verificando os logs, vejo isso:

arp: attempt to add entry for 10.0.0.1 on em0 by xx:xx:xx:xx:xx:xx on em2
arpresolve: 10.0.0.1: route contains no arp information
arpresolve: 10.0.0.1: route contains no arp information
arpresolve: 10.0.0.1: route contains no arp information
...

Aparentemente alguma coisa na configuração tem que mudar. Eu ainda não tenho certeza do que.

    
por pipe 28.04.2017 / 20:41

0 respostas