Servidor DHCP e DND dnsmasq
Dnsmasq é un unha alternativa lixeira e sinxela de configurar que integra, servidor DNS e DHCP. Básicamente está deseñado para prover as funcións de servidor DNS caché, e opcionalmente DHCP, para redes pequenas. Pode servir nomes as máquinas locais que non están no DNS global. O servidor DHCP intégrase co servidor DNS e permite que as máquinas que reciben concesións vía DHCP aparezan con nomes configurados no DNS. Dnsmasq soporta concesións estáticas e dinámicas e tamén BOOTP/TFTP para o arranque de máquinas por rede.
dnsmasq como servidor caché
O primeiro é instalar o paquete dnsmasq
sudo apt-get install dnsmasq
A partires deste momento, o servidor xa funciona coma servidor DNS caché. Pódese comprobar, que o servidor DNS que había configurado no ficheiro /etc/resolv.conf antes de instalar ou iniciar o servizo dnsmasq foi substituido por 127.0.0.1. Dnamasq reenviará todas as consultas ao servidor que estaba definido en /etc/resolv.conf antes de iniciar o servizo.
O servizo pode iniciarse, pararse e reiniciarse con ...
sudo service dnsmasq start
sudo service dnsmasq stop
sudo service dnsmasq restart
Tamén podemos reenviar as consultas dun determinado dominio a outro servidor diferente ao que había en /etc/resolv.conf
server=/exemplo.org/192.168.0.1
... pero tamén é posible facelo, por exemplo para as consultas inversas (cando preguntamos por enderezos en vez de nomes)
server=/3.168.192.in-addr.arpa/10.1.2.3
Configuración básica
O ficheiro de configuración principal é /etc/dnsmasq.conf[1]
Por defecto, escoita todas as peticións DNS e DHCP en todas as interfaces. Se queremos restrinxilas, introducimos unha liña coma a seguinte por cada interface.
interface=eth0
Todo o contido que hai no ficheiro /etc/hosts vai poder ser resolto polo servidor DNS dnsmasq. Tamén se pode facer que non se lea o ficheiro /etc/hosts ou que se lea a maiores outro diferente
no-hosts # para deshabilitar a lectura do ficheiro /etc/hosts
addn-hosts=/ruta/ao/ficheiro/de/hosts # para que se cargue outro ficheiro hosts
dnsmasq como servidor DNS
Este servidor non emprega o concepto de zonas coma calquera outro servidor. Aquí especifícanse os nomes completos no ficheiro /etc/hosts
Tamén podemos especificar os rexistros tipo A da seguinte maneira:
address=/eq2.home.lan/192.168.0.2
e os PTR desta outra:
ptr-record=2.0.168.192.in-addr.arpa.,"eq2.home.lan"
e os mx desta outra
mx-host=maildomain.com,servermachine.maildomain.com,50
e os TXT
txt-record=texto.sitio.lan,"Aqui vai o texto"
txt-record=sitio.lan,"v=spf1 a mx ip4:10.23.5.0/24 ~all"
dnsmasq como servidor DHCP
Engadir rangos para o DHCP é bastante sinxelo. Basta indicar os enderezos inicial e final, e tamén o tempo de concesión.
dhcp-range=192.168.1.201,192.168.1.230,24h
Non é necesario realizar máis configuracións porque dnsmasq proporcionará, además do enderezo IP, a mesma máscara co servidor, a mesma porta de enlace co servidor e como servidor DNS, enviará o enderezo IP do servidor xa que o servidor dnsmasq é tamén servidor DNS. Cando os PCs clientes pidan enderezo IP ao servidor DHCP, normalmente o cliente subministrará o seu nome de PC. Dito nome será utilizado por dnsmasq para asocialo ao enderezo IP que que lle foi asignado al PC e así resolver correctamente cualquera consulta DNS a ese nome.
Tamén podemos forzar a que un determinado rango teña unha máscara determinada. Isto pode ser útil se hai axentes relay na rede da organización
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
A medida que o servidor DHCP vai concedendo enderezos IPs a todos os PCs que lla solicitan, este vainas almacenando no arquivo de concesións /var/lib/misc/dnsmasq.leases onde garda a data e a hora da cesión.
Para facer reservas estáticas ...
dhcp-host=11:22:33:44:55:66,192.168.0.60
Tamén podemos facer que en vez de empregar o hostname desa reserva no DNS se empregue outro asignado no servdor
dhcp-host=11:22:33:44:55:66,aula1pc1,192.168.0.60,45m
Para establecer opcións adicionais, como router, nome de dominio, servidor ntp ... debemos especificar o número de opción ou o seu nome:
dhcp-option=3,1.2.3.4
dhcp-option=option:router,1.2.3.4
Os números e opcións soportados pódense ver executando o comando dnsmasq --help dhcp
Opciones DHCP conocidas:
1 netmask
2 time-offset
3 router
6 dns-server
7 log-server
9 lpr-server
13 boot-file-size
15 domain-name
16 swap-server
17 root-path
18 extension-path
19 ip-forward-enable
20 non-local-source-routing
21 policy-filter
22 max-datagram-reassembly
23 default-ttl
26 mtu
27 all-subnets-local
31 router-discovery
32 router-solicitation
33 static-route
34 trailer-encapsulation
35 arp-timeout
36 ethernet-encap
37 tcp-ttl
38 tcp-keepalive
40 nis-domain
41 nis-server
42 ntp-server
44 netbios-ns
45 netbios-dd
46 netbios-nodetype
47 netbios-scope
48 x-windows-fs
49 x-windows-dm
60 vendor-class
64 nis+-domain
65 nis+-server
66 tftp-server
67 bootfile-name
68 mobile-ip-home
69 smtp-server
70 pop3-server
71 nntp-server
74 irc-server
77 user-class
93 client-arch
94 client-interface-id
97 client-machine-id
119 domain-search
120 sip-server
121 classless-static-route
125 vendor-id-encap
255 server-ip-address