Configurando o roteamento para duas redes (uma interna, uma externa)

0

Aqui está a situação. Meu Mac se conecta a duas redes - uma interna e outra externa. O DNS interno funciona para URLs internas e externas, o DNS externo (obviamente) não sabe nada sobre as URLs internas. A rede interna não se conecta a IPs externos, a rede externa não se conecta a IPs internos.

Então, dependendo de como eu configurei a ordem de serviço na seção Rede das Preferências do Sistema:

Então, se eu colocar a rede interna antes do externo na ordem de serviço:

  1. O DNS interno atende a todas as solicitações corretamente (para URLs internas e externas)
  2. A rede interna não pode se conectar a URLs externos, então acho que preciso adicionar um monte de entradas à tabela de roteamento para que cada coisa que não seja um IP interno seja enviada para a rede externa.

Se eu colocar a rede externa primeiro e a rede interna em segundo lugar e adicionar uma entrada à tabela de roteamento para que todas as solicitações internas passem para a rede interna:

  1. Mesmo se eu adicionar o DNS interno primeiro na configuração da rede externa, ainda não consigo resolver URLs internos.

Então, aqui estão minhas perguntas:

1) Por que não consigo resolver URLs internos? Como recebi a entrada na tabela de roteamento, enviando todos os IPs internos para a rede interna, as solicitações de DNS não devem ir para o DNS interno, mesmo que a rede externa seja a primeira na ordem de serviço?

2) Existe uma maneira inteligente de adicionar entradas à tabela de roteamento para dizer "tudo, exceto 10.x.x.x, vai para a rede X"?

p.s. Para minha pergunta # 2, eu estava pensando que a maneira de especificar "tudo, exceto 10.x.x.x" era ter uma série de comandos de rota:

/sbin/route add -net 128.0.0.0 -netmask 128.0.0.0 -interface en0
/sbin/route add -net  64.0.0.0 -netmask 192.0.0.0 -interface en0
/sbin/route add -net  32.0.0.0 -netmask 224.0.0.0 -interface en0
/sbin/route add -net  16.0.0.0 -netmask 240.0.0.0 -interface en0

mas espero que haja uma maneira mais fácil.

    
por Betty Crokker 15.01.2015 / 18:20

1 resposta

1

Assumindo que sua rede interna é como 10.0.0.0/8 com o gateway 10.0.0.1 em eth1 e seu gateway padrão externo está em eth1 com IP a.b.c.d, isso deve ser feito:

route change default -interface en0 route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en1

você também pode configurá-los em seus scripts de rede (você pode fazê-lo no Linux - não tenho certeza sobre o Mac), veja aqui como um exemplo. Isso realmente seria uma maneira mais persistente, já que você não precisa adicionar rotas manualmente a cada inicialização (ou colocá-las em um script).

Atualização: comandos atualizados para o Mac OS X conforme o comentário do OP, veja o link para alternativas do Linux.

    
por 15.01.2015 / 20:18