AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 413566
Accepted
Allan
Allan
Asked: 2017-12-29 17:50:21 +0800 CST2017-12-29 17:50:21 +0800 CST 2017-12-29 17:50:21 +0800 CST

FreeBSD com duas interfaces de rede e domínios diferentes

  • 772

Eu tenho uma máquina FreeBSD com duas NICs configuradas da seguinte forma:

  • em0 ---> IP set via DHCP (192.168.1.0/24). "home" domain
  • em1 ---> IP set statically (10.0.0.2). "lab" domain

Para todos os efeitos, meu domínio doméstico funciona bem. Posso acessar a Internet e fazer ping em qualquer host da rede. O roteamento também funciona, posso fazer ping em qualquer host de qualquer domínio da máquina FreeBSD via IP, mas só posso resolver nomes na rede doméstica.

Criei um /etc/resolvconf.confarquivo para anexar o domínio de pesquisa e o servidor de nomes ao resolv.confarquivo da seguinte maneira:

search_domains="lab"
name_servers="10.0.0.10" 

Em seguida, atualizo o resolv.conf com o comando:

$ sudo resolvconf -u

Agora posso resolver nomes na labrede, mas não mais na homerede. Editar manualmente o arquivo resolv.conf e inverter a ordem dos domínios e servidores de nomes resulta na resolução, homemas não lab- exatamente o oposto.

Como posso dizer resolv.confpara usar um servidor DNS para um domínio específico (o IP definido estaticamente) e permitir que ele obtenha as informações de DNS para o outro IP via DHCP?


Somente para referência....

/etc/rc.conf:

hostname="beastie1"
ifconfig_em0="DHCP"
ifconfig_em1="inet 10.0.0.2 netmask 255.255.255.0"
defaultrouter="192.168.1.1"

/etc/resolv.conf

# Generated by resolvconf
search lab home.
nameserver 10.0.0.10
nameserver 192.168.1.1

O "servidor" DNS no labdomínio 10.0.0.0 nada mais é do que um roteador Netgear de consumo barato que fornece concessões de DHCP. Eu só tenho isso definido estaticamente porque é um servidor TFTP para bootimages e eu propositalmente o defini como 10.0.0.2 para facilitar o uso ao tentar fazer flash de atualizações de firmware em alguns equipamentos Cisco.

networking freebsd
  • 1 1 respostas
  • 1425 Views

1 respostas

  • Voted
  1. Best Answer
    JdeBP
    2017-12-30T03:52:00+08:002017-12-30T03:52:00+08:00

    Você está usando a ferramenta totalmente errada para o trabalho.

    Esse trabalho não é feito na biblioteca do cliente DNS. As bibliotecas de cliente DNS não são complexas o suficiente para tomar decisões sobre o roteamento de consultas para diferentes conjuntos de servidor DNS de conteúdo com base no nome que está sendo pesquisado. As bibliotecas de clientes DNS delegam o trabalho pesado de resolução de consultas, incluindo esse tipo de coisa, para resolver servidores DNS proxy. São eles que implementam o serviço DNS split-horizon , que é o mecanismo que você deseja aqui.

    No seu caso, se você estiver usando apenas o que vem com o FreeBSD (ou seus derivados, como DragonFly BSD e TrueOS) pronto para uso, esta será uma instância de unboundexecução local.

    Você faz três coisas:

    • Você corre unbound. Ative-o para iniciar automaticamente local_unbound_enable=YESda /etc/rc.confmaneira usual.
    • Você configura unboundpara executar o serviço DNS split horizon. Você faz isso com zonas de stubunbound.conf para seus lab.example.com.e seus home.example.com.domínios, denotando 10.0.0.10e 192.168.1.1como os servidores DNS de conteúdo para esses nomes de domínio e tudo abaixo deles.
    • Você diz à biblioteca do cliente DNS para consultar seu servidor e somente seu servidor. Você tem uma nameserverlinha em /etc/resolv.conf(de um name_serverspar chave-valor em /etc/resolvconf.conf) que direciona sua biblioteca de cliente DNS para falar com unbound.

    Notas:

    • Você não usa home.e lab.. Estes são nomes de domínio de nível superior reais, que você não possui . home.atualmente é objeto de 10 solicitações na ICANN. Use um nome de domínio que você possui , não aqueles que você não possui. Substitua isso por example.com.no acima. Não , você não possui local., localhost., ou muitos outros.dev.corp.

      Se, por exemplo, você possuísse radiantnexus.com., você usaria home.allan.radiantnexus.com.e lab.allan.radiantnexus.com..

    • Ajuste seus domínios de pesquisa apropriadamente , se desejar que nomes de domínio não totalmente qualificados sejam encontrados em seu namespace local.

      search_domains="home.allan.radiantnexus.com lab.allan.radiantnexus.com"para continuar o exemplo anterior.

    • Não pense que você pode recorrer aos servidores DNS proxy de resolução de outras pessoas. Um grande erro é adicionar um servidor DNS proxy de resolução fornecido pelo seu roteador pronto para uso, pelo seu ISP ou pelo Google. Todos os servidores com os quais sua biblioteca de cliente DNS se comunica diretamente devem fornecer a mesma visualização do namespace DNS, consistente entre si. O DNS público do Google não sabe nada sobre seu namespace interno, para começar. Se você deseja um servidor DNS alternativo, precisa de outro servidor DNS local em algum lugar, configurado com a mesma configuração split-horizon.
    • Você também precisa de zonas de stub para todos os nomes de pesquisa endereço-a-nome IPv6 e IPv4 não públicos. Na verdade, existem muitos deles, e o tráfego de pesquisa para eles realmente não deve vazar pelas fronteiras de sua organização. E sim, eles realmente devem ser zonas de stub, não locais, se você quiser que a pesquisa de endereço para nome funcione para as concessões distribuídas por seu servidor DHCP/DNS combinado.

    conteúdo bônus

    Eu uso djbdns (conforme corrigido por... bem... eu) no FreeBSD.

    • O subsistema de importação de configuração do conjunto de ferramentas nosh me configura um [email protected]serviço que executa um servidor DNS proxy de resolução local [email protected]e um [email protected]serviço que executa um servidor DNS de conteúdo raiz local com o qual [email protected]se comunica.

      Eu habilito esses serviços com enablediretivas em /etc/system-control/presets/20-djbwares.preset:

      ativar [email protected]
      ativar ciclog@axfrdns
      habilitar [email protected]
      ativar ciclog@tinydns
      habilitar [email protected]
      ativar ciclog@dnscache
    • O servidor DNS de conteúdo raiz local tem em seu banco de dados uma mistura de .dados públicos, extraídos da ICANN a cada ano ou mais usando axfr-get, e dados para nomes internos abaixo dos nomes de domínio que possuo.

      % ls -dl root/{data*,p*,root*,Makefile}
      -rw-r--r-- 1 root wheel 968 16 Set 09:43 root/Makefile
      -rw-r--r-- 1 root wheel 571334 28 Nov 00:33 root/data
      -rw-r--r-- 1 root wheel 1088169 28 Nov 00:33 root/data.cdb
      -rw-r--r-- 1 root wheel 3243 16 Set 09:55 root/private
      -rw-r--r-- 1 root wheel 6962 28 Nov 00:32 root/public
      -rw-r--r-- 1 root wheel 560853 11 de março de 2017 root/root
      -rw-r--r-- 1 root wheel 3668733 11 de março de 2017 root/root.zone
      %

      O root/privatearquivo é onde terei os dados privados como:

      =machine97.jdebp.eu:192.168.100.97:::lo
    • Eu clonei o root/servers/@arquivo [email protected]para os vários pontos de corte de horizonte dividido, de modo que dnscachesaiba substituir qualquer informação de endereço do servidor DNS de conteúdo público para os pontos que podem ser enviados:

      % ls -dli root/servers/{@,CEFip6.arpa,machine97.jdebp.eu}
      352608 -rw-r--r-- 46 root wheel 11 23 de novembro de 2016 root/servers/@
      352608 -rw-r--r-- 46 root wheel 11 23 de novembro de 2016 root/servers/CEFip6.arpa
      352608 -rw-r--r-- 46 root wheel 11 23 de novembro de 2016 root/servers/machine97.jdebp.eu
      %
      (Na verdade, o conjunto de ferramentas nosh configura os endereços IP privados para mim, como padrão. Há um capítulo inteiro sobre o que é fornecido e as várias maneiras de usá-lo, no Guia nosh .)

    Esta é uma configuração raiz privada . É uma das outras maneiras (existem várias) de fornecer serviço DNS split-horizon com dois servidores DNS de conteúdo. (Na unboundconfiguração acima, você também tem um arranjo de servidor DNS de conteúdo múltiplo; seus servidores DNS de conteúdo local são os que estão em 10.0.0.10e 192.168.1.1em outras máquinas em sua LAN, em vez de um privado na 127.53.0.1própria máquina.)

    Uma raiz privada também me dá o benefício do tráfego de consulta DNS duff para coisas inexistentes, desde as sondagens do Google Chrome até coisas que estão tentando mapear de forma reversa endereços IPv6 fec0::/12e endereços IPv4 em 192.168.0.0/16, não escapando para a Internet em geral.

    Você pode fazer uma raiz privada com unboundtambém. No entanto, é mais complexo do que as zonas de stub. Deixo isso como um exercício para o leitor, pois está além do escopo desta resposta.

    Leitura adicional

    • Jonathan de Boyne Pollard (2004). O que é resolução de consulta de DNS . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2002). Fornecendo serviço DNS "split horizon". . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2003). Seus servidores DNS de proxy de fallback devem fornecer a mesma visão do namespace DNS que o servidor principal. . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2012). Use nomes de domínio de sua propriedade e não abuse de nomes de domínio que não sejam de sua propriedade. . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2017). Qual é a qualificação de nome DNS . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2000). Servidores DNS de "conteúdo" e "proxy" . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2004). Empregue o serviço DNS split horizon se estiver usando intervalos de endereços IP não públicos. . Respostas Frequentemente Dadas.
    • Jonathan de Boyne Pollard (2003). Você esqueceu de preencher seu banco de dados DNS "interno" com dados. . Respostas Frequentemente Dadas.
    • Mike West (2012-02-18). O Chrome se conecta a três domínios aleatórios na inicialização. . mikewest.org.
    • Jonathan de Boyne Pollard (2016). "Os dnscache, tinydnse axfrdnsserviços". guia nosh . Programas.
    • Jonathan de Boyne Pollard (2016). Todos os softwares de Daniel J. Bernstein em um . Programas.
    • " Sistema de nomes de domínio ". Manual do FreeBSD . FreeBSD.
    • 2

relate perguntas

  • Um endereço IP pode terminar em 255 e não ser um endereço IP de transmissão?

  • ps -vxa não classifica em relação à memória

  • Incapaz de identificar qual saída de endereço MAC do comando arp ou comando ip está correta

  • FreeBSD's sh: funções de lista

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve