You are on page 1of 5

30/01/2017 ServidorDNSsencilloenLinuxcondnsmasq|ObservatorioTecnolgico

ServidorDNSsencilloenLinuxcondnsmasq
SOFTWAREGeneral
Mrcores,15Outubro200809:34

Therearenotranslationsavailable.

Alolargodeesteartculoveremostodasestasposibilidadesquenosofrecednsmasq.
Introduccin
El paquete dnsmasq permite poner en marcha un servidor DNS de una forma muy sencilla. Simplemente instalando y
arrancando el servicio dnsmasq, sin realizar ningn tipo de configuracin adicional, nuestro PC se convertir en un servidor
cach DNS y adems, resolver los nombres que tengamos configurados en el archivo /etc/hosts de nuestro servidor. La
resolucin funcionar tanto en sentido directo como en sentido inverso, es decir, resolver la IP dado un nombre de PC y el
nombredelPCdadalaIP.Adicionalmente,dnsmasqdisponedeservidorDHCPypermiteresolverlosnombresdelosPCsalos
que les ha asignado direccin IP dinmica. A lo largo de este captulo veremos todas estas posibilidades que nos ofrece
dnsmasq.

Instalacindelservidordnsmasq
Para instalar la ltima versin de dnsmasq en DebianLinux o en cualquier otra distribucin de Linux basada en Debian como
Ubuntu,Linex,Guadalinex,Molinux,MAX,Lliurex,etc...,podemoshacerloconaptgetdesdeunaconsoladeroot:

//Instalacindelservidordnsmasq
#aptgetinstalldnsmasq

De esta forma instalaramos los programas necesarios para disponer de un sencillo servidor DNS. Tan solo ser necesario
realizarunaconfiguracinmnimayponerloenmarcha.

Arranqueyparadadelservidordnsmasq
Elserviciodnsmasq,aligualquetodoslosserviciosenLinux,disponedescriptsdearranqueyparadaenlacarpeta/etc/init.d.
Debemosejecutarlosdesdeunaconsoladeroot.

//Arrancaroreiniciarelservidordnsmasq
#/etc/init.d/dnsmasqrestart
//Pararelservidordnsmasq
#/etc/init.d/dnsmasqstop

Para un arranque automtico del servicio al iniciar el servidor, debemos crear los enlaces simblicos correspondientes con el
comandoupdaterc.d

Configuracinbsicadednsmasq
ConfiguracincomoCachDNS
ParaquednsmasqpuedaserunservidorcachDNS,esnecesarioquenuestroservidortengaenelarchivode/etc/resolv.conf
configurado al menos un servidor DNS externo. Normalmente los servidores DNS externos nos los proporciona el operador de
telecomunicaciones que nos da servicio de Internet. Por ejemplo, Telefnica tiene unos DNSs, Orange tiene otros, onO tiene
otros, Tele2 otros, etc... Aunque podemos utilizar los de cualquier operador, lo mejor es configurar los del nuestro, porque
respondermsrpido.

http://recursostic.educacion.es/observatorio/web/gl/software/softwaregeneral/638servidordnssencilloenlinuxcondnsmasq 1/5
30/01/2017 ServidorDNSsencilloenLinuxcondnsmasq|ObservatorioTecnolgico

//ServidoresDNSexternosdealgunosoperadores
TelefnicaDNSpreferido:80.58.0.33
TelefnicaDNSalternativo(porsifallaelpreferido):80.58.32.97
OrangeDNSpreferido:62.36.225.150
OrangeDNSalternativo(porsifallaelpreferido):62.37.228.20
OnoDNSpreferido:62.81.31.250

ParaquenuestroservidorutilicelosDNSexternos,debemosaadirlosen/etc/resolv.conf.EnelcasodeTelefnica,deberemos
aadiren/etc/resolv.conflassiguienteslneas:

//Ejemplo:UtilizacindelosDNSexternosdeTelefnica
//Aadiren/etc/resolv.confdelservidor
nameserver80.58.0.33
nameserver80.58.32.97

Una vez introducidos los DNS externos en /etc/resolv.conf, debemos comprobar si dichos DNS externos funcionan
correctamente y responden a las peticiones. Para ello haremos una consulta al DNS mediante el comando nslookup. Tambin
podramosutilizarelcomandohostoelcomandodig:

//ProbarDNSexterno
//Ejecutarenunaconsoladelservidor
$nslookupwww.unican.es

SielDNSfunciona,nosdircualeslaIPdelservidordelaUniversidaddeCantabria,www.unican.es.

En este punto, ya tendremos en nuestro servidor un servidor DNS cach funcionando. Para probar su funcionamiento,
configuraremos el archivo /etc/resolv.conf del resto de los PCs de nuestra red pero en lugar de indicar los DNS de Telefnica,
indicaremoselnuestro.Porejemplo,sinuestroservidortienelaIP192.168.1.2,loaadiremosenelarchivo/etc/resolv.confde
cadaPC

//Aadiren/etc/resolv.confdelosPCsdenuestrared
nameserver192.168.1.2

Al igual que hemos hecho anteriormente, podemos comprobar si nuestro servidor DNS funciona correctamente, haciendo una
consultamedianteelcomandonslookup:

//ProbarnuestroservidorDNS
//IralPCcliente,abrirunaconsoladecomandosyejecutar:
$nslookupwww.unican.es

SinuestroservidorDNSfunciona,nosresponderconlaIPdelservidordelaUniversidaddeCantabria.

Aunque el servidor utilice Linux, los PCs clientes pueden tener Linux o cualquier otro sistema operativo como por ejemplo
"Windows". Para configurar el DNS en un PC con Windows tendremos que hacer Clic derecho en "Mis sitios de red" >
Propiedades > Clic derecho en "Conexin de rea local" > Propiedades > Protocolo internet (TCP/IP) > Propiedades y en la
ventana de la configuracin TCP/IP pondremos nuestro servidor DNS como preferido y el del operador como alternativo por si
fallaelnuestro:
http://recursostic.educacion.es/observatorio/web/gl/software/softwaregeneral/638servidordnssencilloenlinuxcondnsmasq 2/5
30/01/2017 ServidorDNSsencilloenLinuxcondnsmasq|ObservatorioTecnolgico

ConfiguracincomoDNSMaestro
AhoraqueyatenemoselservidorDNScachfuncionando,iremosmsall.Elsiguientepasosereditarelarchivo/etc/hosts
de nuestro servidor, para que nuestro DNS resuelva tambin los nombres y las IPs de nuestra red. Si los PCs de nuestra red
disponendeIPfijayqueremosquednsmasqresuelvasusnombreseIPs,tansolotenemosqueaadirlosnombresylasIPs
enelarchivohostsdelservidoryseracomodisponerdeunDNSmaestroparanuestrared:

//Aadiren/etc/hostsdelservidorlasIPsylosnombresdenuestrosPCs
//Sepuedenaadirvariosnombresenlamismalnea.Separarconuntabulador
192.168.1.2servidorproxywww
192.168.1.3impresora
192.168.1.1router
192.168.1.101a1pc1aula1pc1
192.168.1.102a1pc2aula1pc2
192.168.1.103a1pc3aula1pc3
192.168.1.104a1pc4aula1pc4
192.168.1.105a1pc5aula1pc5
192.168.1.106a1pc6aula1pc6
192.168.1.107a1pc7aula1pc7
192.168.1.108a1pc8aula1pc8
192.168.1.109a1pc9aula1pc9
192.168.1.110a1pc10aula1pc10

SidesdeunPCdenuestraredhacemosunaconsultaalDNSpreguntandoporotroPCdenuestrared,dnsmasqresolverenel
servidorydevolverlaIPconfiguradaenelarchivohostsdelservidor:

//ProbarnuestroservidorDNSconnombresdenuestrared
//EjecutarenunaconsoladelPCcliente(nslookupfuncionaenLinuxyenWindows)
$nslookupaula1pc1

http://recursostic.educacion.es/observatorio/web/gl/software/softwaregeneral/638servidordnssencilloenlinuxcondnsmasq 3/5
30/01/2017 ServidorDNSsencilloenLinuxcondnsmasq|ObservatorioTecnolgico

Cadavezquemodifiquemoselarchivo/etc/hostsdelservidor,deberemosejecutar"/etc/init.d/dnsmasq restart" para reiniciar


elserviciodnsmasqyrecarguelainformacincontenidaendichoarchivo.

De esta manera, tan solo editando el archivo /etc/hosts del servidor, dispondremos de un sencillo servidor DNS maestro para
nuestrared,loquenospermitirreferirnosanuestrosPCsutilizandosusnombresquesonmuchomsfcilesderecordarque
lasdireccionesIP.

ServidorDNSyservidorDHCP
CuandolasIPsdelosPCsdenuestraredsondinmicas,senospresentaunproblemaparautilizarunservidorDNSyaqueel
mismoPC,hoypuedetenerunaIPymaanapuedetenerotraIPdiferente.Dichoproblemasepuederesolverdetresformas:

UtilizandounservidorDNSdinmico:LosPCs,alrecibirlaIPdelservidorDHCP,informarnalservidorDNSdinmicodela
IP que les ha sido asignada de forma dinmica y as poder asociar de forma correcta el nombre con la IP que tiene en un
momento dado. El inconveniente de este mtodo es que nos obliga a instalar en los PCs un servicio que informe al servidor
DNSdinmicodeloscambiosdeIPdecadaPC.EssimilaralsistemautilizadoporlosservidoresDNSdinmicosdeInternet
como www.noip.org o www.dyndns.com. Aqu no hablaremos de servidores DNS dinmicos porque las dos soluciones
siguientessonmssencillas.

UtilizandoreservasdeDHCP:EnelservidorDHCPexistelaposibilidaddeestablecerunaconfiguracinconcretaauncliente
concreto identificndolo por la direccin MAC de su tarjeta de red. Si configuramos tantas reservas de IPs como PCs hay en
nuestra red, podramos configurar a cada PC la IP que deseemos. Esto sera como tener IPs fijas en nuestra red, pero
asignadasporDHCP.EstaideanoesparanadadescabelladaynospermitiracontrolarentodomomentolaIPdecadaPC.

UtilizandoelservidorDHCPdednsmasq:Dnsmasq,ademsdeofrecernosunservidorDNS,nosofrecetambinunservidor
DHCP fcilmente configurable que adems resolver los nombres de los PCs de nuestra red an cuando sus IPs hayan sido
configuradas por DHCP. Para configurar el servidor DHCP de dnsmasq debemos editar el archivo de
configuracin/etc/dnsmasq.confyaadirunalneacomoesta:dhcprange=ipinicial,ipfinal,tiempodecesin. Ejemplo, si
queremos que el DHCP utilice el rango desde 192.168.1.201 hasta 192.168.1.230 y que la cesin dure 24 horas, editaremos
/etc/dnsmasq.confyaadiremoslasiguientelnea:

//Editar/etc/dnsmasq.confparaestablecerelrangoDHCP
//Aadirlasiguientelnea:
dhcprange=192.168.1.201,192.168.1.230,24h

Cuando los PCs clientes pidan una IP al servidor DHCP, normalmente el cliente suministrar su nombre de PC. Dicho nombre
serutilizadopordnsmasqparaasociarloalaIPquelehasidoasignadaalPCyasresolvercorrectamentecualquierconsulta
DNS.

AmedidaqueelservidorDHCPvaconcediendoIPsatodoslosPCsqueselasolicitan,stevaalmacenndolasenelarchivo
deconcesiones/var/lib/misc/dnsmasq.leasesdondeguardalafechaylahoradelacesinenformato%s(ejecute"mandate"
parainformacinsobredichoformato)laMACdelcliente,laIPconcedidaalclienteyelnombredelPCclientesiempreycuando
elclientehayaenviadosunombredePC.

//ArchivodondeaparecenlasIPsasignadasacadaPC
/var/lib/misc/dnsmasq.leases

Paraquednsmasqpuedaconocerelnombredelcliente,stedeberenviarsunombrecuandorealizalapeticinDHCP.Enlos
clientes Linux, el nombre que enva el PC cliente, suele almacenarse en el parmetro send hostname del archivo de
http://recursostic.educacion.es/observatorio/web/gl/software/softwaregeneral/638servidordnssencilloenlinuxcondnsmasq 4/5
30/01/2017 ServidorDNSsencilloenLinuxcondnsmasq|ObservatorioTecnolgico

configuracindelclientedhcp:/etc/dhcp3/dhclient.conf.Ejemplo,sinuestroPCsellamaaula1pc1,deberemosconfigurarloenel
clientedhcp:

//Configuraren/etc/dhcp3/dhclient.confelnombrequeenvaelclientealservidorDHCP:
sendhostnameaula1pc1

LonormalesquedichonombrecoincidaconelnombredelPCalmacenadoenelarchivo/etc/hostname.

En clientes Windows, el nombre del PC se establece haciendo Clic derecho en "Mi PC" > Propiedades > Nombre de equipo >
Cambiar.

Conclusiones
EnesteartculohemosvistoqueinstalarunservidorDNSmaestroennuestrared,esunatarearelativamentesencillagraciasal
paquete dnsmasq. Una vez instalado y puesto en marcha el servidor, podremos referirnos a nuestros PCs utilizando sus
nombresenlugardetenerqueacordarnosdelasIPs,inclusocuandosuIPseadinmica,loquesuponeunagranventajaenla
tareadeadministracindelared.

http://recursostic.educacion.es/observatorio/web/gl/software/softwaregeneral/638servidordnssencilloenlinuxcondnsmasq 5/5