Mòdul 3
Serveis de xarxa amb GNU/Linux
Exercici 12345

 
Servei de noms DNS en les xarxes TCP/IP

Introducció

Dins d'aquest apartat veurem com dotar a la nostra xarxa local amb TCP/IP d'un servei de noms imprescindible per al correcte funcionament dels serveis que implementarem més endavant.

El contingut és el següent:

La xarxa TCP/IP sense servei de noms
Cal un servei de noms a la xarxa
Característiques del servei DNS d'una xarxa local 'tancada'
Implementació del servei DNS
Posada en marxa del servei de noms
Configuració dels clients
 

La xarxa TCP/IP sense servei de noms

Una estructura de xarxa està formada bàsicament per elements que es comuniquen entre ells.

En el nivell més baix, els diferents sistemes es reconeixen utilizant l'adreça MAC de la targeta de xarxa, formada per sis parells de dígits hexadecimals, els tres parells inicials poden repetir-se, doncs indiquen el fabricant, i els altres tres són diferents, composant una 'matrícula' única per a cada dispositiu.

Per exemple, podem observar l'adreça MAC de la placa de xarxa del nostre Linux executant:

# ifconfig -a

Figura 1

indicada com a 'HWaddr' i de valor 00:50:56:C2:F4:C5, podem 'descobrir' el fabricant destriant els tres primers parells:

00:50:56 - VMWARE, Inc

Aquests tres primers dígits són 'propietat' de l'empresa VMWARE, i ha d'identificar sempre les seves plaques de xarxa, de manera que comencin per aquestes xifres.

Podeu localitzar el fabricant de qualsevol adreça MAC que vagi a parar a les vostres mans amb l'ajut de la pàgina:

http://www.shmoo.com/tools/mac/

En el cas de les xarxes TCP/IP, tenim uns identificadors de més alt nivell, l'adreça IP, que també ha d'ésser únic per a cada element de la xarxa, i el nom de la màquina (també anomenat nom de host).

Tal com s'ha comentat en el glossari de termes, el tipus d'adreçament utilitzat dins les xarxes 'tancades' amb TCP/IP (altrament dites intranets) està definit per unes normes, per evitar 'trepitjar' adreces utilitzades a Internet. 

10.0.0.0        -   10.255.255.255  ( una xarxa classe A )
172.16.0.0      -   172.31.255.255  ( 16 xarxes classe B )
192.168.0.0     -   192.168.255.255 ( 256 xarxes classe C )

En els centres s'utilitza el rang 192.168.0.x, la primera de les 256 xarxes C disponibles.

Així doncs, si un equip amb l'adreça 192.168.0.20 vol accedir als serveis d'una altra, inicialment ha de conèixer la seva adreça IP i es veu obligat a utilitzar-la per fer-ne referència des de qualsevol aplicació.

Per exemple, si una estació amb l'adreça 192.168.0.20 vol consultar la pàgina web principal del servidor linux, només hi podrà accedir des del navegador indicant la URL:

http://192.168.0.2/

Per defecte no podrem adreçar-nos a les màquines pel seu nom, i això ens obligaria a aprendre de memòria totes les adreces IP de les màquines que ens donen serveis.

Anem a veure com podem preparar un servei de noms per poder dotar els equips de la xarxa de noms més 'amigables' i permetre configurar serveis referint-nos a aquests noms.

<-

Cal un servei de noms a la xarxa

El servei de noms es presenta com a imprescindible bàsicament per dues raons:

1.- Podem accedir als serveis dels equips adreçant-nos a ells amb un nom 'clar' i fàcil de recordar pels usuaris.

2.- Fem les configuracions dels serveis utilitzant aquests noms en comptes de l'adreça IP, aconseguint una flexibilitat molt interessant.

Per exemple, si teniu configurat en els navegadors de les 120 màquines de la xarxa del centre, la URL d'accés al fitxer de configuració automàtica del proxy així:

http://192.168.0.2/proxy.pac

i us arriba un servidor molt més potent amb una nova configuració més recomanable, caldria canviar la configuració de totes les estacions... la nova màquina té la IP 192.168.0.210... i la nova URL seria:

http://192.168.0.210/proxy.pac

quina feinada !

En canvi, si utilitzem el servei de noms, podríem configurar-ho amb un nom, de manera que si ens cal canviar el motor del servei i aquest té una altra IP, només cal modificar la referència amb el mateix nom la nova IP...

Seguint l'exemple, si hi ha servei de noms, la URL que podríem anomenar 'comodí' podria ser:

http://proxy.intracentre/proxy.pac

de manera que només cal canviar dins el servei de noms, la IP que fa referència a 'proxy.intracentre' de la 192.168.0.2 (antiga) a la 192.168.0.210. No caldrà tocar mai més la configuració de les 120 estacions una per una...

Hem vist amb un exemple alguns dels avantatges que ens pot oferir el servei de noms, n'hi ha molts més que ja anireu descobrint amb la pràctica.

<-

Característiques del servei DNS d'una xarxa local 'tancada'
 

El servei de noms dins les xarxes TCP/IP s'anomena DNS (Domain Name System) i pot implementar-se de diferents maneres, depenent del tipus de servei que ha de donar.

Bàsicament hi ha dos tipus de configuració dels serveis de DNS:

1.- El DNS per al treball a Internet, totalment públic. és l'encarregat d'escampar les adreces d'aquest domini (un nom vàlid a Internet assignat per 'Internic', del tipus nom.es per exemple) i resoldre les peticions adreçades a altres dominis.

Dins aquest DNS només hi poden aparèixer les IP totalment vàlides a Internet, i cal una configuració força acurada del refresc de les modificacions que s'hi puguin fer i la transferència d'aquesta informació entre servidors.

2.- El DNS per al treball dins una xarxa local, totalment privat. Serà l'encarregat de resoldre només les peticions de nom-IP / IP-nom de la seva xarxa.

Aquest DNS no pot tenir mai cap relació directa amb Internet, les adreces que ell coneix no poden publicar-se a l'exterior.

El servei que implementarem serà el segon tipus, però amb un petit 'afegit', donat que volem que les màquines de la xarxa interna puguin accedir a Internet.

El nostre DNS intern, que no pot 'publicar' cap de les seves adreces a Internet, serà 'client' mitjançant 'forwarding' del DNS Internet de la XTEC. Així, si el nom demanat no el coneix directament, passarà la petició i emmagatzemarà la resposta dins una petita cache, per servir-la quan faci falta.

<-

Implementació del servei DNS

Requeriments de programari

El servei DNS el fa efectiu el 'paquet' Bind, que podeu trobar dins el CD-ROM del RedHat.

Si en el seu moment vau seguir correctament la guia d'instal·lació, ja teniu en el sistema els components necessaris per posar en marxa el servei, comproveu-ho executant:

# rpm -q -a | grep bind

verificant que apareixen llistats els paquets:

bind-utils-8.2.2
bind-8.2.2

Estructura de fitxers del servidor DNS

Els fitxers que composaran la configuració bàsica del nostre servidor DNS, suposant que treballarem dins la xarxa 192.168.0.x amb el nom intracentre, són:

-> /etc/named.conf -> Conté la configuració bàsica del DNS.

El contingut d'aquest fitxer serà el següent:

named.conf
---------------------------------------
options {
        directory "/etc";
        pid-file "/var/run/named.pid";
        forward only;
        forwarders {
                193.145.88.16;
                193.145.88.18;
                };
        };

zone "intracentre" {
        type master;
        file "/etc/intracentre.hosts";
        };

zone "0.168.192.in-addr.arpa" {
        type master;
        file "/etc/192.168.0.rev";
        };
--------------------------------------

El primer apartat ens marca les opcions generals del servei de DNS, en el qual veiem la configuració dels 'forwarders' que resoldran totes les peticions externes a la xarxa.

Les 'zones' indiquen el camí dels arxius que conformen la base del DNS, en aquest cas tant senzill, només hi ha una zona directa 'definida en el fitxer  intracentre i la seva corresponent inversa al  0.192.168.0.rev

-> /etc/intracentre.hosts -> Zona directa, utilitzada per trobar les IP partint dels noms.

El contingut d'aquest fitxer serà:

intracentre.hosts
------------------------------------------------------
intracentre.    IN      SOA     linux. root (
                        2000231101
                        10800
                        3600
                        432000
                        38400 )
intracentre.            IN      NS      linux.
router.intracentre.     IN      A       192.168.0.1
linux.intracentre.      IN      A       192.168.0.2
proxy                   IN      CNAME   linux
www                     IN      CNAME   linux
estacio100.intracentre. IN      A       192.168.0.100
estacio101.intracentre. IN      A       192.168.0.101
estacio102.intracentre. IN      A       192.168.0.102
-----------------------------------------------

El patró inicial comença per un nº de sèrie format per les xifres 2000231101 que corresponen a "anydiamesversio" seguit dels paràmetres (tots en segons) taxa de refresc, taxa de reintent, caducitat per al secundari i validesa per als clients, opcions necessàries en cas de treballar amb un DNS Internet.

Aquest pot quedar amb els paràmetres per defecte, doncs no es comunicarà amb cap altre DNS.

Els paràmetres mínims que utilitzarem són:

IN  NS         indica l'equip servidor DNS del domini intracentre.
IN  A        defineixen les IP que corresponen a cada nom.
IN  CNAME  defineixen un 'àlies' com a segon nom reconegut d'una IP ja definida anteriorment.

Caldrà doncs completar amb entrades IN  A la definició de totes les màquines de la nostra xarxa, afegint per exemple:

secretaria.intracentre.   IN     A      192.168.0.120
biblio1.intracentre.      IN     A      192.168.0.121
...

Atenció amb la separació entre els ítems, s'ha de fer obligatòriament amb tabulador.

-> /etc/192.168.0.rev-> Zona inversa, utilitzada per trobar els noms partint de l'adreça IP.

El contingut d'aquest fitxer serà:

---------------------------------------------------
0.168.192.in-addr.arpa. IN      SOA     linux. root (
                        2000231101
                        10800
                        3600
                        432000
                        38400 )
0.168.192.in-addr.arpa. IN      NS      linux.
1.0.168.192.in-addr.arpa.       IN      PTR     router.intracentre.
2.0.168.192.in-addr.arpa.       IN      PTR     linux.intracentre.
100.0.168.192.in-addr.arpa.     IN      PTR     estacio100.intracentre.
101.0.168.192.in-addr.arpa.     IN      PTR     estacio101.intracentre.
102.0.168.192.in-addr.arpa.     IN      PTR     estacio102.intracentre.
----------------------------------------------------

Els paràmetres inicials són idèntics al de la zona directa i han de coincidir també exactament totes les entrades IP amb els noms definits.

Si es modifica el directe caldrà mantenir aquest també actualitzat.

Dins el mòdul d'Eines d'administració veurem com mantenir-lo de forma més còmode via Web.

<-

Posada en marxa del servei de noms

En aquests moments només cal assegurar que el servei de noms 'named' es posarà en marxa cada cop que arrenqui el servidor i s'aturarà correctament quan apaguem l'equip. 

Per defecte la instal·lació del paquet fa uns 'links' dins de tots els directoris /etc/rc.d/rc?.d amb el
format d'aturada i el nom K45named. Si el servidor arrenca normalment amb el nivell 3 només cal anar al directori /etc/rc.d/rc3.d i crear el link S55named amb l'ordre: 

# ln -s ../init.d/named S55named 

També podrem posar en marxa o aturar el servei de forma manual, sense haver de reiniciar la màquina executant: 

# /etc/rc.d/init.d/named start  ---> arrencada 
# /etc/rc.d/init.d/named stop  ---> aturada 

Podem verificar que ha arrencat correctament consultant el fitxer de registre 'messages':

# tail /var/log/messages

reflexant a la sortida quelcom com això:

<-

Configuració dels clients

Per defecte, els clients poden 'conèixer' els noms dels seus companys de la xarxa TCP/IP, llegint la informació del fitxer hosts situat a:

/etc/ -> en els UNIX / Linux. 
c:\windows\ o c:\winnt\system32\drivers\etc\ -> en els Windows.

El format d'aquest fitxer és el mateix per a totes les plataformes, un exemple podria ser:

de manera que caldria tenir-lo copiat exactament igual dins totes les màquines de la xarxa...

Per evitar haver de distribuir i mantenir tots aquests fitxers tenim el servei de noms DNS, anem a veure com fer que els clients puguin utilitzar-lo.

- Linux

Hem de fer client del servei DNS al mateix servidor, cal modificar dos fitxers:

/etc/nsswitch.conf 

-> verificant l'existència de la línia 
-> hosts   files dns

/etc/resolv.conf

-> amb el contingut següent

domain intracentre
nameserver  192.168.0.2
nameserver  193.145.88.16
nameserver  193.145.88.18

Comprovem el correcte funcionament com a clients DNS executant:

# nslookup router

obtenint com a resposta:

- Windows 95/98

Modifiquem la configuració del DNS, dins les propietats de la xarxa, com mostra la figura:

Un cop reiniciat el Windows, podeu comprovar la resposta del DNS executant:


 

Ja teniu el servei DNS actiu dins la xarxa del centre, ara caldrà eliminar qualsevol referència dins els fitxers hosts (si els havíeu utilitzat), llevat del propi 'localhost' 127.0.0.1, per evitar definicions incorrectes que passarien pel davant del propi DNS.

<-