Configuração do sufixo DNS do Linux

4

Introdução

Eu tenho um Raspberry Pi executando o Rasbian conectado a uma rede baseada no Windows Server. Esta é uma rede corporativa (educacional) que possui sua própria intranet, que consiste em todos os sistemas de computação conectados e também possui um site de acesso público. Para o propósito desta questão, o domínio será nomeado exampledomain.com .

Nesta intranet, os computadores Windows conectados podem anexar um sufixo DNS ao nome do host por meio da configuração no adaptador de rede (etapas listadas aqui ). Isso permitiria que um computador com o nome comp1 fosse endereçável por comp1 ou comp1.ns.exampledomain.com da rede local (ou seja, ipconfig lists ns.exampledomain.com como o sufixo específico da conexão).

O problema

Eu tenho um Raspberry Pi 2 que tem o nome de host comppi que eu preciso estar acessível pelo endereço comppi.ns.exampledomain.com . O Pi é atualmente acessível por seu hostname comppi , usando comppi.local ou por endereço IP.

O acesso via hostname foi obtido instalando-se o samba no RPi usando sudo apt-get -y install samba . Esta foi a maneira mais fácil de configurar avahi no RPi.

Não tenho acesso aos servidores DHCP / DNS envolvidos. Mas eu deveria ser capaz de alcançar esse resultado sem precisar. (Como isso pode ser feito a partir de um computador Windows muito bem sem)

Também observarei que tenho um conhecimento insuficiente do arquivo /etc/dhcp/dhclient.conf mesmo depois de ler as páginas man associadas. Provavelmente estou sentindo falta de algo trivial.

Tentativas atuais

  • Tentei alterar o nome do host diretamente para comppi.ns.exampledomain.com em todos os lugares nos arquivos abaixo.
  • Tentei alterar a linha do nome do host para send host-name = "comppi.ns.exampledomain.com" in /etc/dhcp/dhclient.conf .
  • Tentei adicionar a linha append domain-name = "ns.exampledomain.com" ao /etc/dhcp/dhclient.conf user Jordan no askubuntu.com . No entanto, acho que isso é apenas adicionar ns.exampledomain.com ao nome do host de saída quando eles falharem.

Informações técnicas

  • SO: Raspbian GNU / Linux 8 (jessie) (Nota: esta foi a versão lite)
  • Pi: Raspberry Pi 2
  • Nome do host: comppi

Arquivos

Conteúdo de /etc/network/interfaces inalterado.

Conteúdo de /etc/hostname :

comppi

Conteúdo de /etc/hosts :

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       comppi comppi.ns.exampledomain.com

Conteúdo de /etc/dhcp/dhclient.conf :

# Configuration file for /sbin/dhclient, which is included in Debian's
#       dhcp3-client package.

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#send host-name = gethostname();
send host-name = "comppi"
append domain-name = "ns.exampledomain.com"
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;
    
por samthecodingman 07.06.2016 / 15:23

3 respostas

0

Portanto, para resolver o comppi.ns.exampledomain.com na sua rede, você precisará da ajuda do seu administrador do servidor DHCP e aqui está o porquê. Na parte inferior desta resposta, a opção Linux

Ambiente do Windows

A menos que software adicional esteja instalado, um cliente LINUX não está ciente do AD (Active Directory). Portanto, deve confiar no servidor DHCP para atualizar o servidor DNS em um ambiente Windows corretamente configurado. Para o servidor DHCP registrar um nome de host no servidor DNS local, deve ter atualizações dinâmicas autorizadas. Esta configuração não é configurável pelo usuário, seu administrador de rede deve modificá-la e, sim, você precisará disso para funcionar. JuntamentecomoendereçoIPdoseuservidorDHCP,vocêtambémrecebeosufixodedomínioparaestarede;osufixoéarmazenadopeloseuhosteseráusadoposteriormente.Observeque,amenosqueoservidorDHCPeoservidorDNSestejamnamesmacaixa,asatualizaçõesdinâmicasexigirãoqueoservidorDHCPsejaautenticadocomseuservidorDNS.

Nesteponto,oservidorDHCPdevefazeroregistroderededoDNSparavocê.Nãoestásobocontroledehostdocliente,noentanto,seuhostdevesolicitarisso.Atualmente,oDebiansolicitaoregistroDNSautomaticamente.

Nasjanelas,vocêpodeforçarumnovoregistrocomipconfig/registernds.

Emumaredelocal,umhostpodeencontraroseuusandodoisnomesemétodos'legais':onomedehostsimpleseonomedohostmaisodomínio.Osufixo'.local'geralmenteéignoradoeéusadoparaevitaraadiçãodeoutrosufixo.

1OprimeirométodonãousaoDNS:usandoLANbroadcastsohostpergunta'whoknowthisname',ohostdoassuntoresponderácomumendereçoMACeIP.

Acadapoucossegundos,oshoststransmitemseusnomesparaqueoutrosquecompartilhemaLANaprendamsobresuapresença.Muitasvezesestatransmissãoéfiltradaporswitch/roteadores,então,amenosquevocêestejanomesmoswitch,édifíciltorná-loconfiável.

2OsegundométodoéenviarumasolicitaçãoaoservidorDNSdesignadopelaLAN,comonomedehost'simples'etambémonomedohostcomosufixodaredelocal.

Oroteadordomésticoeasintranetsnãosãopúblicos;portanto,ousodeDNSgenérico(8.8.8.8,8.8.4.4)emseuservidorDNSpadrãonãoresolveráseushostslocais.CadahostlocalcomumendereçoatribuídoporDHCPserá'lembrado'peloseuroteador.

Emseuhost,vocêpodeadicionarumoumaissufixosquedesejaaoresolverumendereçoDNS(usandooLinuxhostoudigenowindowsnslookup)

Recomendareiquevocêconfigureseunomedehostcorretamente.Em/etc/hostnameetambémem/etc/hosts(para::1e127.0.0.1)e,emseguida,execute./etc/init.d/hostname.sh.

AtualizandomanualmenteoservidorDNSdoLinux

Existeoutraopçãoquerequerapenascooperaçãomanualnocliente.Ousodeumutilitáriopoucoconhecido nsupdate . Isso adicionará a funcionalidade necessária para se registrar em um servidor DNS válido. Ele segue os protocolos publicados pela RFC relacionados ao DNS.

Exemplo:

$ nsupdate -v
>delete video.domain.com. a
>delete  git.domain.com. a
>delete  gateway.domain.com. a
>add  video.domain.com. 600 a 192.168.1.111
>add  git.domain.com. 600 a 192.168.7.10
>add  gateway.domain.com. 600 a 192.168.7.10
>send
>quit

Você pode criar um arquivo simples com seus endereços IPV4 ou IPv6 dinamicamente obtidos e executá-lo no script 'post-up' em /etc/network/interfaces

    
por 08.06.2016 / 02:13
2

Os clientes Windows registram automaticamente seus nomes no DNS quando parte do Active Directory (o que parece ser verdade no seu caso). Isso usa um processo chamado DNS dinâmico (DDNS). A maneira mais fácil de registrar máquinas linux com um DDNS do Windows será usar o Samba para unir sua máquina linux ao Domínio do Windows. Isso exigiria os direitos para ingressar no domínio do Windows. Muitos guias na Internet podem fornecer detalhes sobre como ingressar no domínio do Windows a partir do linux, mas aqui estão os passos em resumo:

Primeiro adicione informações de domínio em /etc/krb5.conf

[realms]
    NS.EXAMPLEDOMAIN.COM = {
    }

[domain_realm]
    .ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM
    ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM

Em seguida, configure o smb.conf para entrar no domínio

[global]
workgroup = EXAMPLEDOMAIN
realm = NS.EXAMPLEDOMAIN.COM
security = ADS

Em seguida, execute net ads join -U windowsuser , em que windowsuser é qualquer usuário com direitos para ingressar no domínio.

Isso uniria sua máquina ao domínio do Windows e, ao mesmo tempo, registraria o endereço IP da máquina no DNS do Windows, permitindo que outras pessoas acessassem sua máquina usando os nomes comppi.ns.exampledomain.com e comppi

    
por 08.06.2016 / 02:51
0

Em um Raspberry Pi aqui, também executando Raspbian Jessie, o cliente DHCP é /sbin/dhcpcd . Infelizmente, isso usa um arquivo de configuração diferente que não permite especificar um sufixo DNS.

ps -ef | grep -i [d]hcp
root       720     1  0 10:16 ?        00:00:00 /sbin/dhcpcd -q -w

Felizmente, este sistema veio instalado com resolvconf , que possui um arquivo de configuração /etc/resolvconf.conf que permite a especificação de um sufixo DNS:

search_domains_append=ns.exampledomain.com

Eu não tenho certeza do porque dois Jessie Pis devem ter configurações de instalação diferentes, mas isso é possivelmente uma pergunta para outro dia. Para comparação, aqui está um exemplo diferente do processo do cliente DHCP, como visto em alguns dos meus sistemas Debian Wheezy:

# This uses /etc/dhcp/dhclient.conf and is not what I have on my Pi
ps -ef | grep -i [d]hcp
root      1683     1  0 09:58 ?        00:00:00 dhclient -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
    
por 27.09.2016 / 12:50