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:
Mas ainda estou preocupado e tenho duas perguntas em particular:
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?
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.
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.
Tags networking openbsd