Ordem de resolvedores de DNS ou rota “exclusiva” adicionando no Mac OS X?

3

Estou trabalhando em uma empresa onde - devido a vários motivos estranhos - tenho a seguinte configuração:

  • Ethernet: está em uma rede de convidados e tem acesso à internet
  • Wifi: está em uma rede corporativa e tem acesso à intranet
  • a ordem do adaptador é configurada para que a ethernet seja a primeira
  • route add é usado para adicionar as rotas da intranet que eu preciso (10. [4/6/1/39] .x.x. etc.)

O problema agora é que certos programas não funcionam, já que eles não usam IPs, mas denominam endereços. Conseqüentemente, scutil --dns tem o resolvedor nº 1 com servidores DNS externos e segue o resolvedor nº 2 com os servidores DNS da intranet. (se eu desconectar o cabo e estiver apenas na Wifi corp, os nomes serão resolvidos bem).

Pensei em duas soluções possíveis, mas não sei como fazê-las funcionar:

  • embora o Wi-Fi seja o primeiro adaptador em ordem, de alguma forma eu mudo a ordem do resolvedor de DNS para que o DNS da intranet seja tentado antes do DNS da Internet
  • coloque o adaptador Wifi em primeiro lugar e, em seguida, localize um comando de rota "excluindo", que não diz "enviar IP X sobre en0", mas sim "enviar qualquer IP diferente de X sobre en1"

Alguém pode me ajudar aqui?

    
por Bouncner 09.11.2012 / 18:11

2 respostas

3

Parece que trabalhei na mesma empresa; -)

Por favor, encontre no link abaixo um script Ruby que você pode adaptar para fazer o que Hennes descreve como opção 4) , embora use o encaminhamento de solicitação de DNS em vez de exibições. Isso deve ser fácil de consertar embora. link

Este script usará o sudo conforme necessário.

Use-o apenas se você entender exatamente o que ele faz.

É melhor criar um novo Location usando System Preferences > Network antes de começar a experimentar esse script, pois isso permitirá que você desfaça quaisquer alterações, voltando para o Location .

O que isso fará:

  • Enumere todas as interfaces de rede e identifique a que está conectada à rede corporativa e aquela conectada à outra rede com base no endereço IP DEFAULT GATEWAYs (não no endereço atribuído à própria interface)
  • Configure o servidor DNS BIND interno para processar solicitações da rede corporativa e da Internet e encaminhá-las por domínio. Por exemplo, example.com será encaminhado para os servidores de nomes corporativos, enquanto example.net será encaminhado para os outros servidores de nomes.
  • Estabelecer o roteamento para uma lista de sub-redes através da interface corporativa, o resto através da outra rede
  • Opcionalmente, ele também iniciará uma conexão VPN se configurado corretamente.

Você precisa adaptar o script para atender às suas necessidades.

Esteja ciente de que você precisa chamar o script novamente com o argumento restore depois de se desconectar da rede corporativa, caso contrário, todas as solicitações DNS pousarão em seu servidor de nomes local e não ser capaz de resolvê-los fora do ambiente corporativo.

    
por 10.11.2012 / 22:19
0

Não tenho certeza se essa é uma resposta completa adequada, mas colocá-la em vários comentários parece um problema.

1) Solução rápida:

Adicione os nomes da intranet ao arquivo host. (Ele está em / private / etc / hosts ). Isso funciona se você precisar apenas de acesso a alguns servidores e é relativamente fácil de fazer. Também parece um kludge e se os IPs do servidor mudarem você precisará atualizar manualmente o seu arquivo de hosts.

2) Supondo que o servidor DNS na intranet também revolve nomes na Internet, você pode usar apenas esse servidor DNS. Considero isso improvável, pois você mencionou explicitamente que a rede de convidados tem acesso à Internet e a outra à intranet. (Pode ser que a intranet tenha acesso à Internet, mas que esteja bloqueada por meio de algumas regras de firewall que não bloqueiam tudo. Por exemplo, não a porta 53).

3) O uso de ambos os servidores DNS (que é o que você está tentando fazer) pode não funcionar.

Não tenho uma máquina OS / X para testar isso, mas recentemente aprendi da maneira mais difícil que alguns sistemas operacionais não consultam servidores DNS em ordem, nem voltam a um servidor de nomes secundário quando o primeiro falha. Em vez disso, eles parecem usar os servidores de nomes listados aleatoriamente.

O resultado disso seria:
(ordem DNS da Internet, DNS da intranet)
Consulta de host na internet - > obras.
Consulta de host na intranet - > Falha procure por servidor DNS na internet, desista, em vez de tentar o próximo.

Eu não sei se este é o caso no OS / X e não tenho mac para testá-lo.

4) Servidor de nomes local

(em negrito porque acho que esta é a melhor solução).

OS / X vem com BIND e parece fácil habilite-o . A palavra-chave que você deseja procurar no BIND é a visualização

    
por 09.11.2012 / 19:08

Tags