# Creació d'un servidor DNS (bind9) (Pràctica en equips)
> Pràctica feta per:
> - Andy Paredes (cf21andy.paredes@iesjoandaustria.org)
> - Adrián García (cf21adrian.garcia@iesjoandaustria.org)
> - Yeray Reyes (cf21yeray.reyes@iesjoandaustria.org)
> - Sergio Rodriguez (cf20sergio.rodriguez@iesjoandaustria.org)
---
[Teoria de l'activitat](https://hackmd.io/@joaniznardo/dns-smxM7)
:::info
Primer actualitzem el repositori d'Ubuntu amb:
## **sudo apt-get update**
:::
:::info
A continuació instal·larem el "bind9" i "bind9utils" que són eines extres per a *bind9*.
## **sudo apt-get install bind9 bind9utils**

:::
:::info
Seguidament, modificarem el fitxer de configuració de bind9 amb la comanda:
## **sudo vim /etc/bind/named.conf.local**

A continuació haurem d'escriure els següents camps a mà, on indicarem les zones del nostre servidor DNS.
:::
:::success
Per indicar les zones haurem d'escriure a mà el següent:
*Per la primera zona:*
**zone "EL_NOM_DEL_NOSTRE_DOMINI" {
type master;
file "/etc/bind/db.EL_NOM_DEL_NOSTRE_DOMINI";
};**
*Per la segona zona:*
**zone "LA_NOSTRE_IP_INVERTIDA.in-addr.arpa" {
type master;
file "/etc/bind/db.LA_NOSTRE_IP_INVERTIDA.in-addr.arpa";
};**
:warning: Fixeu-vos bé en la IP invertida, ja que no es col·loca tota la IP, només els 3 primers grups de nombres.

:::spoiler :question: **Perquè hi ha dues zones?**
.
Per fer un servidor DNS hem de fer dos arxius, un que converteixi el nostre **URL a IP** i un a la inversa.
Localitza els fitxers:
:one: Com es veu a la imatge de dalt declarem dues zones, la primera amb el nom del nostre domini.
:two: L'altra zona declara el seu nom, el tipus i el fitxer on està la configuració, aquesta zona és la inversa.
:8ball: Com podem veure el allow transfer esta comentat i explicat, ja que no l'utilitzarem
:::
:::warning
Comanda opcional per comprovar si les configuracions estan ben fetes
## **sudo named-checkconf**
Si no ens mostra res és que estarà correcta la configuració
:::
---
## A continuació crearem el fitxer de configuració de la primera zona
Per fer això necessitarem crear un fitxer que hem indicat abans:

:::info
Introduim la comanda:
## **sudo vim /etc/bind/db.yreyes.test**
Aquesta comanda crearà un fitxer nou fitxer, ja que no hi ha ningun fitxer anomenat d'aquesta manera
En aquest document introduirem el següent, **Explicat en el desplegable a baix**

:::spoiler Explicació
:one: Introduïm el nom del nostre servidor de dominis amb un punt al final, en aquest cas -> **srv1.yreyes.test.**
:two: Introduirem el nom del nostre domini acompanya de **root** al començament i un **.** al final.-> **root.yreyes.test.**
:three: On està la IP, hem de col·locar la IP del nostre **client**, en el nostre cas la **10.21.64.31**
:four: Aquí haurem de sustituir la IP per la IP del nostre servidor, en el nostre cas: **10.21.64.30**
:yellow_heart: Les paraules en groc són com el nostre grup ha decidit possarli de nom al servidor i al client, pero es poden canviar per cualsevol altre :yellow_heart:
:8ball: Tota la resta hem de copiar-ho tal com està
:::
---
## Anem a fer el fitxer invers
Per fer la part inversa del nostre servidor DNS creem un fitxer invers que hem declarat abans

:::info
## **sudo vim /etc/bind/EL_ARXIU_MENCIONAT_ABANS**
En aquest fitxer escriurem el següent, tenint en compte el**desplegable a abaix**:

:::spoiler Tingues en compte això
:one: Introduïm el nostre servidor de domini amb un punt al final-> **srv1.yreyes.test.**
:two: Introduirem el nom del nostre domini acompanya de **root** al començament i un **.** al final. -> **root.yreyes.test.**
:three: Recordes els noms que hem assignat abans amb groc :yellow_heart:? Doncs ara hem de declarar-los aquí també amb: el_nom.EL_TEU_DOMINI -> **client01.yreyes.test**
:four: Indiquem el nom de domini que hem donat al nostre servidor amb un punt al final, en el meu cas -> **srv1.yreyes.test.**
:five: & :six: Posem els últims nombres de la IP:
| *IP exeple* | *Resultat* |
| ----------------- |:----------------------- |
| 10.21.64.100 | 100
:8ball: Tota la resta hem de copiar-ho tal com està
:::
:::warning
Per comprovar que les zones estiguin correctament farem servir aquesta comanda **opcional**
## **sudo named-checkzone NOM_DE_LA_ZONA FITXER_DE_LA_ZONA**
Recorda que tens dues zones i, per tant, ho hauràs de comprovar amb les ambdós
:::spoiler Explicació
.
Aquest és el nostre fitxer de zones

Per fer aquesta comanda haurem de substituir el següent de la comanda de dalt (sudo named-checkzone...):
| *Indicat a la comanda* | *Substituir per:* |
| ----------------- |:----------------------- |
| NOM_DE_LA ZONA |  La nostra zona es diu: **yreyes.test**
| FITXER_DE_LA_ZONA |  El nostre fitxer és: **/etc/bind/db.yreyes.test**
`PER FER LA COMANDA DEL FITXER INVERS ÉS EXACTAMENT IGUAL`
:::
:::success
Resultats correctes de la comprovació anterior


Si apareix **OK** es que la zona esta correcte
:::
---
## Ara configurarem el fitxer named.conf.options
:::info
Per configurar aquest fitxer l'obrirem amb el vi amb la següent comanda:
## **sudo vim /etc/bind/named.conf.options**

A l'apartat 'forwarders' el **descomentarem traient les "//"** i el deixarem tal com està en la imatge
:::warning
:warning: Recorda descomentar el ""};"" :warning:
:::
:::success
Reiniciem el sistema amb la comanda:
## **sudo systemctl restart bind9**
Si no ens apareix res, és que s'ha reiniciat correctament
Per mirar l'estat del servei farem servir la comanda:
## **sudo systemctl status bind9**
:::spoiler Resultat correcte

:::
---
# Apartat del client
El client ha de tenir els següents requisits:
- Tenir els dos ordinadors a la mateixa xarxa (mateix rang de IPs)
- Que faci ping amb el servidor via IP ( que tingui connexió amb el servidor)
:::info
El primer que farem és **apagar** l'adaptador de xarxa 1, apareixerà com: **enp1s0**
O si preferiu podeu canviar també el servidor DNS (no recomenat)

A continuació configurarem l'adapatador de xarxa 2 amb els següents passos:
- Has de tenir una IP fixa ( mitjans DHCP o IP estàtica )
- Configurar els DNS com manual i assignar la IP del teu servidor
- Deixar la passarel·la en automàtic

Després de fer les modificacions **apagarem i encendrem** l'adaptador de xarxa 2 ( enp2s0 )

:::
:::success
:::success
Podem comprobar si es conecta al domini utilitzant:
## **nslookup NOM_DEL_DOMINI.test**

:::
---
:::info
## També podem fer ping directament al servidor
Amb el nom que hem definit abans:


**També podem connectarnos via SSH al servidor amb el nom**

:::spoiler **Com podem fer això?**
Quan nosaltres substituïm la IP del nostre servidor per un nom el que realment estem fent és comunicar-nos amb el servidor DNS perquè ens digui la IP del domini.
**Envia:** srv1.yreyes.test
**El server DNS ho procesa**
**Torna:** 10.21.64.30
:::
---
:::warning
## Fonts d'informació
[sysdual.com](https://blog.sysdual.com/instalacion-y-configuracion-del-servicio-dns-en-ubuntu-server-20-04/)
[redeszone.net](https://www.redeszone.net/tutoriales/servidores/configurar-servidor-dns-bind-linux/)
[digitalocean.com](https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-18-04-es)
[zytrax.com](https://www.zytrax.com/books/dns/ch8/)
Informació adicinal de companys
Coneixements previs
:::
> Pràctica feta per:
> - Andy Paredes (cf21andy.paredes@iesjoandaustria.org)
> - Adrián García (cf21adrian.garcia@iesjoandaustria.org)
> - Yeray Reyes (cf21yeray.reyes@iesjoandaustria.org)
> - Sergio Rodriguez (cf20sergio.rodriguez@iesjoandaustria.org)