Alias para IPs na rede local da LAN

16

É possível atribuir um alias de string legível a um endereço IP como 192.168.1.1? Talvez algo assim:

192.168.1.1 -> router.home

ou

192.168.1.22 -> printer.home

Não há necessidade de router.home ser acessado pela web externa, mas somente na LAN. Na verdade, não deve ser acessível a partir da Web externa.

Eu acho que o objetivo é ter um servidor DNS local, que responde ao endereço router.home. Alguma idéia de como criar um apelido?

EDIT: Resposta do Yamakaja funciona muito bem, mas requer a mudança de arquivo de hosts em todos os computadores na LAN. A pesquisa de DNS local pode ser feita no roteador doméstico? Isso pularia muito trabalho manual.

    
por sanjihan 25.06.2016 / 12:07

3 respostas

12

Além da resposta do Yamakaja , é assim que você configura um servidor DNS local.

Primeiro, você precisa de um computador no qual deseja executar o servidor DNS. Este pode ser um dos seus computadores normais (se eles rodam Linux e estão na maioria das vezes) ou, por exemplo, um Raspberry Pi . As vantagens desse dispositivo são que ele é barato, não precisa de muita energia e é pequeno.

Configurando o servidor DNS

Eu decidi configurar o servidor DNS em um Raspberry Pi usando dnsmasq , que é um pequeno servidor DNS ferramenta, ideal para uso em pequenas redes. Você também pode usar bind , a ferramenta DNS padrão de fato, mas isso provavelmente é um pouco poderoso demais para uma pequena rede doméstica.

Instale dnsmasq usando o gerenciador de pacotes, em sistemas baseados no Debian (por exemplo, Raspbian), o comando seria

sudo apt-get install dnsmasq

Agora, suponho que você já tenha configurado uma alocação de endereço IP estático (ou seja, os endereços IP mencionados em sua pergunta não mudam). Se você não tiver, dnsmasq também pode ser usado como um servidor DHCP, mas ainda não o fiz.

dnsmasq busca os nomes de host de /etc/hosts . Edite este arquivo da seguinte forma:

# IP address    Host name
192.168.1.1     router
192.168.1.22    printer

O nome do host router agora está atribuído a 192.168.1.1 , printer a 192.168.1.22 .

Agora, você configurou seu próprio servidor DNS, mas os computadores da sua rede ainda não o usam. Para fazê-los usar este servidor, você precisa fazer um passo de preparação:

Encontre o endereço IP do seu dispositivo dnsmasq usando ip address (suponhamos que seja 192.168.1.42 ). Abra o /etc/dnsmasq.conf e anexe as seguintes linhas:

listen-address=127.0.0.1
listen-address=192.168.1.42

Isso diz a dnsmasq que deve ouvir as solicitações quando elas forem endereçadas a 127.0.0.1 (ou seja, quando ele quiser usar seu servidor DNS) ou 192.168.1.42 (ou seja, quando outros computadores quiserem usar seu servidor DNS ).

Usando o servidor DNS

Você tem que dizer a cada computador em sua rede que ele deve (também) usar 192.168.1.42 como servidor DNS. A maneira como você faz isso depende do seu sistema operacional. Você pode pesquisar isso facilmente no sistema operacional especificado na Internet (basta pesquisar "Alterar servidor DNS em < SO >" ou algo assim).

Para o Windows 7, você pode seguir este tutorial: link .

No meu sistema (Arch Linux), eu tive que acrescentar a seguinte linha a /etc/resolvconf.conf

name_servers=192.168.1.42

Observe que o arquivo que você precisa usar depende da configuração do seu gerenciador de rede. Adicione o IP do servidor DNS em cada computador que você deseja usar seu DNS.

Você provavelmente terá que reiniciar os dispositivos se não funcionar imediatamente.

É isso aí, está feito. Agora você pode acessar todos os dispositivos que você inseriu em /etc/hosts do servidor dnsmasq simplesmente usando o nome do host que você forneceu.

(Opcional) Verificando a funcionalidade

Se você quiser verificar se a resolução do DNS funciona corretamente, instale dnsutils (Linux) no sistema que deve usar seu servidor. Então execute

$ dig router

Isso deve retornar algo assim

; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router.                        IN      A

;; ANSWER SECTION:
router.                 0       IN      A       192.168.1.1

;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE  rcvd: 50

Ele mostra o nome do host que você deseja resolver, o endereço IP para o qual ele foi resolvido e o servidor DNS usado. Como você vê, está tudo bem.

(Opcional) Especificando um TLD

Se você quiser acessar os dispositivos não apenas com router ou printer , mas com router.home e printer.home , adicione as seguintes linhas ao seu /etc/dnsmasq.conf :

expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD

Você pode precisar reiniciar novamente.

Fontes / leituras adicionais

Sobre dnsmasq :

Sobre bind (se você tiver interesse):

por 26.06.2016 / 10:47
7

Sim, e há duas (ou mais?) opções:

Editando seu arquivo hosts (a maneira preguiçosa)

Dependendo do seu sistema operacional, você terá que adicionar uma entrada ao seu arquivo "hosts". Você pode encontrá-lo em /etc/hosts na maioria dos Unixoids e em C:\Windows\system32\drivers\etc\hosts no Windows.

Para adicionar sua entrada, vá até o final do arquivo e adicione uma linha neste formato:

<IP>       <the hostname to assign>

por exemplo,

192.168.1.1      router

(Note que o espaço entre o ip e o nome do host não importa. Mas parece melhor se corresponder às outras entradas. Você pode usar tabulações ou espaços)

Então você pode acessar seu roteador em um navegador apenas acessando

http://router/

ou

router/

Servidor DNS local

Por favor, veja a resposta do TuringTux para mais informações

    
por 25.06.2016 / 12:38
2

Eu quero atualizar a ótima resposta acima:

Você pode querer olhar para o seu roteador e verificar se ele tem suporte de entrada DNS manual.

Nesse caso, basta adicionar seu endereço 192.168.1.22 local como printer.home . Caso contrário, você está limitado com a edição de arquivos de hosts locais ou com sua própria configuração de servidor DNS, receio.

    
por 30.06.2016 / 14:55