# asixm8-2025
[TOC]
# formulari benvinguda
https://forms.gle/HL3UQnJYfg5hwDmFA
# meet
## meet grup a
meet.google.com/wai-dwbr-vqs
## meet grup b
meet.google.com/xfi-tmvq-sor
# formularis evidències (treball diari)
## grup a
https://forms.gle/XLuuUZKheSSTL94z8
## grup b
https://forms.gle/MCi594485TTX49cQA
# wifi
w08078385 - gjdgjt7c4h
# normes a classe
- prohibit mòbils
- prohibit menjar
- prohibit auriculars
## recursos
### generals
https://kodekloud.com/free-week - formació gratuïta 13-20 de setembre
https://elmeuescriptori.gestioeducativa.gencat.cat/ - accés IsardVDI
https://isard.gitlab.io/isardvdi-docs/ca/user/viewers/viewers/#descarrega-directa-de-programari - visor spice x windows
[vim-cheatsheet](https://vim.rtorr.com/)
[tutorial vim](https://victorhck.gitbook.io/aprende-vim/)
### docker
https://hackmd.io/@joaniznardo/docker-ubuntu-2204-setup
### RA3 - http/s - Puc gestionar un o múltiples servidors web de manera que sempre puga oferir el contingut (dades) de manera segura i saber qui ho ha demanat?
https://httpd.apache.org/
https://plataforma.josedomingo.org/pledin/cursos/apache24/
https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/
https://www.netguru.com/blog/nginx-tutorial-basics-concepts
https://hpbn.co/
https://www.digitalocean.com/community/tools/nginx
https://nginx-playground.wizardzines.com/
https://knockdata.github.io/Nginx-Tutorial-Step-by-Step-with-Examples/
https://medium.com/@ksaquib/nginx-zero-to-hero-your-ultimate-guide-from-beginner-to-advanced-mastery-57e2dad6a77a
https://www.freecodecamp.org/news/the-nginx-handbook/
https://everything.curl.dev/http/index.html
[codis http](https://http.cat/)
[brutal - nginx i backends](https://itnext.io/how-to-serve-your-backends-with-nginx-a-comprehensive-guide-c8a74955c6ed)
## primer dia
### meet grup a
meet.google.com/wai-dwbr-vqs
### meet grup b
meet.google.com/xfi-tmvq-sor
### alta dominis (un parell per cada)
crear compte a la web i després ja se pot autenticar via google
potser cal connectar les dades del mòbil un cop es pensen que estem fet un "atack"
- dnsexit
- dynu
- duckdns
### adreça xarxa per persona
10.25.X.0/24
### incidències alta isardVDI
email a > joan.iznardo[at]iticbcn.cat <
## resum sessions
### sessio 01 - apache2 via http i https entre client i servidor
- més enllà
- activa el protocol http2
- comprovació via curl / http (ordre http que cal instal·lar)
- multiples webs (per nom) al mateix apache2 (únic servidor)
- personalització de la web retornada (dades)
- accés des del propi ordena via vpn
- qui m'està visitant? (en el server)
- quins protocols intervenen?
### sessió extra - intro a docker - 20250918
Objectius:
- gestionar imatges de docker
- gestionar contenidors de docker
- fer servir docker compose
Més enllà:
- creació d'una imatge a docker hub a partir de la imatge httpd que continga una web que mostre el teu nom ;)
### sessió 02 - servidor, servidor intermediari invers (reverse proxy) i distribuidor de càrrega (load balancer)
Requeriments: instància amb docker instal·lat (m08dockerdesktop)
Objectius:
- descobrir nginx (bàsic)
- descobrir com nginx pot actuar amb els 3 roles: servidor, proxy invers i distribuidor de càrrega
- recuperar les dades d'una web via curl
links:
https://knockdata.github.io/Nginx-Tutorial-Step-by-Step-with-Examples/
https://github.com/rockie-yang/explore-nginx
[nginx bàsic - techworld-with-Nana](https://www.youtube.com/watch?v=iInUBOVeBCc)
[nginx server, reverse proxy, load balancer - tech with nana](https://www.youtube.com/watch?v=q8OleYuqntY)
https://www.youtube.com/watch?v=xo5V9g9joFs
[com funciona internament nginx - bytemonk](https://www.youtube.com/watch?v=I6dpN0geIb4&t)
### sessió 03 - certificats (a desenvolupament), redirecció (80 > 443), mòduls (http2) i logs (access i error)
objectiu: descobrir tots els elements del títol de la sessió.
```
- certificats (a desenvolupament): instal·la mkcert i accedeix a nginx amb https i observa el candall del navegador
- redirecció (80 > 443): configura el fitxer http.conf perque només faça la redirecció al port 443 (i aquí ja configurem tot en el fitxer https)
- mòduls (http2): configura el fitxer https.conf perque permeta les connexions amb la versió http2 del protocol http. Comprova-ho amb curl.
- logs (access i error): configura els fitxers http.conf i https.conf per que guarden els fitxers de logs d'accés i d'error. (docker els envia a pantalla)
```
### sessió 04 - autenticació bàsica i monitoratge
```
autenticació:
1) autenticació bàsica
Fes que calgui posar usuari i contrassenya per accedir a serving i no a searching
monitoratge:
2) https://uptime.kuma.pet/
- com el faries servir?
- pots posar-me un exemple simple (en local/ en públic (aws))
- un de més avançat
- pots comprovar engegant i aturant searching si avisa o no?
3) fluentd (centralització de logs)
https://docs.fluentd.org/container-deployment/docker-compose
link complementari - https://geekyants.com/blog/a-comprehensive-guide-to-efficient-logging-with-efk-and-td-agent
```
### sessió 05 - consolidació i activitats complementàries
objectiu: Revisar les sessions 3 i 4 amb propostes d'ampliació.
```
activitats complementàries M8
- no guiades (en aquelles activitats de docker fes ús de docker compose i allotja el codi al teu github de l'institut):
- desplega un wordpress no escalable (frontal i base de dades a la mateixa instància) en docker: (via docker compose amb un únic contenidor)
- desplega un wordpress que siga potencialment escalable en docker (via docker compose: en 2 contenidors - frontal (nginx+php) i backend (mysql))
- desplega un wordpress que siga potencialment escalable en docker (via docker compose: en 2 contenidors - frontal (apache2+php) i backend (mysql))
- desplega un wordpress que siga molt més escalable: (via docker compose: 1 nginx com a LB - 2 contenidors frontals (nginx+php) i backend (mysql))
- genera la configuració d'nginx amb la utilitat nginxconfig (https://www.digitalocean.com/community/tools/nginx) i aplica-ho a algun dels exemples de step5 o step6 sessió 3
- porta a aws amb certificat pels teus dominis (dnsexit/dynu) amb certificat els step5 i step6 de la sessió 02
- guiades:
- https://sagardash.me/make-your-nginx-api-gateway-with-auth-validation-7efd122a18d3
- propostes:
- fes la teva proposta en l'àmbit de http/https. Valida (amb mi) que la proposta siga ajustada al que hem vist a classe.
```
### sessió 06 - Processament de codi (php) amb nginx
objectiu: comprovar les directives que ens calen per poder generar pàgines dinàmiques
Punt de partida
https://github.com/mjstealey/wordpress-nginx-docker/tree/master
https://github.com/mjstealey/wordpress-nginx-docker.git
https://12factor.net/
<!-- wordpress amb docker i amb certificat: autosignat/desenvolupament(mkcert)/acme.sh/certbot (localhost/jiznardo.test/demoasix2b.freeddns.org)
-->
-(r1) millorar el docker-compose amb volums
-(r2) millorar el certificats amb mkcert (+domini elteudomini.test )
-(r3) millorar el cert amb certificat acme.sh i domini dynu/dnsexit
(atenció a les etapes de la sol·licitud del certificat via dns challenge: https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode)
- millora advanced: que no calga engegar per separat: depends_on advanced
- proposa millores
### sessió 07 - Alta domini .cat i validació reptes sessió 06 (r3/r2)

#### LLEGEIX >>*COMPLETAMENT*<< LES INSTRUCCIONS ABANS DE COMENÇAR!!!!
Nominàlia - alta dominis - (aptes per menors i que no incloguen el teu nom i cognoms!!)
1) crear compte a nominàlia - **AMB EL COMPTE DE L'INS!!!!**
1.1) Amb el compte de l'institut però sense fer l'autenticació google: **CREAR NOU COMPTE!!**
1.2) https://controlpanel.nominalia.com/registration.html
1.3) penja captura de pantalla en pdf al resum m8 (al principi d'aquest document)
1.4) rebràs un email amb el codi de registre únic per fer l'alta al següent pas
2) accedir a https://projectewapps.cat/
3) validar amb l'ordre "whois" que el domini no existeix
3.1) exemple: whois mhoinvente.cat (no hauria d'existir)
3.2) exemple: whois demoasixcloud2025.cat existeix
4) emplenar el formulari amb les teves dades !!!!

6.important) Correu electrònic de contacte: >>> adreça institut <<<
7) emplena el formulari del teu domini quan rebis la confirmació per part de nominàlia
https://forms.gle/4CFEaTobsK5aKBxR9
8) **extra**: incorporació al github de l'institut:
> https://github.com/orgs/iticbcn/sso
### sessió 08 - web amb certificat let's encrypt: ec2 + nginx + dnsexit/dynu + certbot
**Objectiu**: desplegar web simple amb certificat de letsencrypt.
> etapes manuals
1) crear ec2 en subnet pública
2) actualitzar domini amb la ip pública
3) instal·lar nginx
4) instal·lar certbot
5) demanar certificat
Ampliacions:
- automatitzar instal·lació nginx (ec2 - userdata (a.k.a. cloudinit))
- automatitzar sol·licitud actualització de ip del domini dnsexit (via api)
- automatitzar certbot (necessita de les dues etapes anteriors)
- fer còpia de seguretat en local del certificat i la clau (vital per tornar a recrear una vm, posar el certificat al lb...)
referencies:
cloud-init
- https://cloud-init.io/
- https://cloudinit.readthedocs.io/en/latest/
- https://josejuansanchez.org/iaw/taller-cloud-init/
### sessió 09 - Delegació del domini .cat a cloudflare
**objectiu**: assegurar-nos que les propagacions dels registres del nostre domini són ràpides
> etapes
1) alta a cloudflare
2) alta del mateix domini a cloudflare
3) canviar els dns a nominàlia
4) observar la propagació dels canvis (lenta) https://dnschecker.org/#NS/elteudomini.cat
### sessió 10 - Servidor de noms (BIND9 part 01)
Objectiu: configurar un servidor de noms per a un domini (inicial-nom+primer-cognom.test) i un rang de ips (10.X.0.0/24)
recursos:
https://raw.githubusercontent.com/josedom24/presentaciones/main/servicios/bind9.pdf
https://howdns.works
https://bind9.readthedocs.io/en/v9.20.16/
https://zytrax.com/books/dns/
https://www.sysadminok.es/blog/hosting/servidor-dns-con-bind9-configuracion-y-seguridad/
docker-compose inicial
```
services:
# -------------------------------------------------------
# DNS primari (El protagonista dels 3 reptes)
# -------------------------------------------------------
dns-primari:
image: ubuntu/bind9:latest
container_name: dns-primari
hostname: ns1
# Capacitats necessàries per bind en alguns entorns
cap_add:
- NET_ADMIN
ports:
- "5353:53/udp" # Accés des del host real (localhost:5353)
- "5353:53/tcp"
networks:
xarxa_interna:
ipv4_address: 172.20.0.10
xarxa_externa:
ipv4_address: 172.21.0.10
volumes:
# Mapegem la configuració perquè sigui persistent i editable des de fora
- ./primari/conf:/etc/bind
- ./primari/zones:/var/lib/bind
environment:
- BIND9_USER=bind
restart: always
# -------------------------------------------------------
# DNS secundari (Per al Repte 2)
# -------------------------------------------------------
dns-secondary:
image: ubuntu/bind9:latest
container_name: dns-secondari
hostname: ns2
networks:
xarxa_interna:
ipv4_address: 172.20.0.11
volumes:
- ./secondari/conf:/etc/bind
- ./secondari/zones:/var/lib/bind
environment:
- BIND9_USER=bind
depends_on:
- dns-master
# -------------------------------------------------------
# CLIENT INTERN (Per validar reptes 1, 2 i la vista interna del 3)
# -------------------------------------------------------
client-intern:
image: nicolaka/netshoot
container_name: client-intern
networks:
xarxa_interna:
ipv4_address: 172.20.0.100
# Mantenim el contenidor encès
command: tail -f /dev/null
# -------------------------------------------------------
# CLIENT EXTERN (Per validar la vista externa del Repte 3)
# -------------------------------------------------------
client-extern:
image: nicolaka/netshoot
container_name: client-extern
networks:
xarxa_externa:
ipv4_address: 172.21.0.100
command: tail -f /dev/null
# -------------------------------------------------------
# DEFINICIÓ DE XARXES
# -------------------------------------------------------
networks:
xarxa_interna:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24
xarxa_externa:
driver: bridge
ipam:
config:
- subnet: 172.21.0.0/24
```
docker-compose pas a pas
```
services:
# -------------------------------------------------------
# DNS primari (El protagonista dels 3 reptes)
# -------------------------------------------------------
dns-primari:
image: ubuntu/bind9:latest
container_name: dns-primari
hostname: dns1.jiznardo.test
# Capacitats necessàries per bind en alguns entorns
cap_add:
- NET_ADMIN
ports:
- "5353:53/udp" # Accés des del host real (localhost:5353)
- "5353:53/tcp"
networks:
xarxa_interna:
ipv4_address: 172.20.0.10
xarxa_externa:
ipv4_address: 172.21.0.10
environment:
- BIND9_USER=bind
restart: always
# -------------------------------------------------------
# DNS secundari (Per al Repte 2)
# -------------------------------------------------------
dns-secundari:
image: ubuntu/bind9:latest
container_name: dns-secundari
hostname: ns2
networks:
xarxa_interna:
ipv4_address: 172.20.0.11
environment:
- BIND9_USER=bind
depends_on:
- dns-primari
# -------------------------------------------------------
# CLIENT INTERN (Per validar reptes 1, 2 i la vista interna del 3)
# -------------------------------------------------------
client-intern:
#image: alpinelinux/bind-tools
image: nicolaka/netshoot
container_name: client-intern
#volumes:
# - ./client-intern/conf/resolv.conf:/etc/resolv.conf
networks:
xarxa_interna:
ipv4_address: 172.20.0.100
# Mantenim el contenidor encès
#command: tail -f /dev/null
command: sleep infinity
# -------------------------------------------------------
# CLIENT EXTERN (Per validar la vista externa del Repte 3)
# -------------------------------------------------------
client-extern:
image: nicolaka/netshoot
container_name: client-extern
networks:
xarxa_externa:
ipv4_address: 172.21.0.100
command: tail -f /dev/null
# -------------------------------------------------------
# DEFINICIÓ DE XARXES
# -------------------------------------------------------
networks:
xarxa_interna:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24
xarxa_externa:
driver: bridge
ipam:
config:
- subnet: 172.21.0.0/24
```
instal·lar ssh server al client
```
sudo apt update && sudo apt install openssh-server
```
eliminar elements sense ús
```
docker system prune
```
### sessió 11 - Servidor de noms (BIND9 part 02)
Objectiu: configurar servidor de recolzament (secondary)
links:
https://hub.docker.com/r/internetsystemsconsortium/bind9
https://kb.isc.org/
https://github.com/joaniznardo/2018smxm7
### sessió 12 - Servidor de noms (BIND9 part 03)
Objectiu: Configurar "Split-Horizon" a bind9.

Tractem d'aconseguir que en funció d'on ens fan la consulta repondre una ip o una altra.
```
# visió interna
docker compose exec -it client-ext dig www.jiznardo.test
; <<>> DiG 9.20.10 <<>> www.jiznardo.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32915
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 2c7673c895eadd8801000000692f092778db0492488d9427 (good)
;; QUESTION SECTION:
;www.jiznardo.test. IN A
;; ANSWER SECTION:
www.jiznardo.test. 604800 IN A 10.50.0.30
;; Query time: 3 msec
;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
;; WHEN: Tue Dec 02 15:43:35 UTC 2025
;; MSG SIZE rcvd: 90
```
```
# visió externa
docker compose exec -it client-ext dig www.jiznardo.test
; <<>> DiG 9.20.10 <<>> www.jiznardo.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32915
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 2c7673c895eadd8801000000692f092778db0492488d9427 (good)
;; QUESTION SECTION:
;www.jiznardo.test. IN A
;; ANSWER SECTION:
www.jiznardo.test. 604800 IN A 10.50.0.30
;; Query time: 3 msec
;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
;; WHEN: Tue Dec 02 15:43:35 UTC 2025
;; MSG SIZE rcvd: 90
```
```
# transferència de zona
dig axfr @192.168.50.10 jiznardo.test -k /etc/bind/tsig.key
; <<>> DiG 9.20.11-0ubuntu0.2-Ubuntu <<>> axfr @192.168.50.10 jiznardo.test -k /etc/bind/tsig.key
; (1 server found)
;; global options: +cmd
jiznardo.test. 604800 IN SOA ns1.jiznardo.test. root.jiznardo.test. 2 604800 86400 2419200 604800
jiznardo.test. 604800 IN NS ns1.jiznardo.test.
jiznardo.test. 604800 IN NS ns2.jiznardo.test.
jiznardo.test. 604800 IN A 192.168.50.30
ftp.jiznardo.test. 604800 IN A 192.168.50.31
mail.jiznardo.test. 604800 IN A 192.168.50.30
ns1.jiznardo.test. 604800 IN A 192.168.50.10
ns2.jiznardo.test. 604800 IN A 192.168.50.11
www.jiznardo.test. 604800 IN A 192.168.50.30
jiznardo.test. 604800 IN SOA ns1.jiznardo.test. root.jiznardo.test. 2 604800 86400 2419200 604800
tsig-key. 0 ANY TSIG hmac-sha256. 1764691126 300 32 eFQfz7ULfWLytU254+j97kG5fF0yBoDjP7EYXvUujPc= 43760 NOERROR 0
;; Query time: 15 msec
;; SERVER: 192.168.50.10#53(192.168.50.10) (TCP)
;; WHEN: Tue Dec 02 15:58:46 UTC 2025
;; XFR size: 10 records (messages 1, bytes 373)
```
### sessió 13 - Servidor de noms (BIND9 part 04)
**Objectiu**: Gestionar els logs de bind9 i oferir seguretat respecte a les zones (DNSSEC)
repte: (partint del lab18 i modificant up.sh pq no ature el server1)
```
## logs
- com puc separar la gestió dels logs entre consultes i la resta de registres
## seguretat
- com puc assegurar la integritat de la informació de les zones (dominis) amb dnssec
hora final: 19:20
```
### sessió 14 - Servidor de DHCP (ISC-KEA-DHCP part 01)
**objectiu**: Treballar el servei de configuració de paràmetres de xarxa.
Clona el següent repositori a una maquina d'isard ubuntu 24.04
```
https://github.com/joaniznardo/kea-labs.git
```
Instal·la **containerlab** :wink:
```
curl -sL https://containerlab.dev/setup | sudo -E bash -s "all"
```
#### IMPORTANT: elimina qualsevol contenidor que estiga en marxa prèviament !!
```
docker ps | awk '{ print $1 }' | grep -vi containe | xargs docker kill
docker system prune -f
```
(alternativa: gràcies Javi)
```
docker ps -q | xargs docker kill
docker system prune -f
```
***Recomanacions***:
1) conserva les ordres que vas introduint a algun lloc (nou fitxer al lab, per exemple)
2) pots comprovar les modificacions que fas front a l'originat amb ordres de git ;)
Lab01 - bàsic
- [ ] Configura els fitxers de configuració necessaris per repartir ips del rang d'ips assignat a principi de curs 10.25.X.0/24 (on X és el numeret assignat a cada alumne)
- [ ] Comprova que el client demana i rep una ip vàlida
- [ ] Comprova quina és la passarel·la associada al client
- [ ] Comprova en el server quines ips s'han assignat
- [ ] Allibera la ip del client i verifica que no te ip assoclada
Lab01 - Ampliació 01
- [ ] Incorpora un nou client i que reba una altra ip vàlida
- [ ] Mostrar la seqüencia "DORA" al server amb tcpdump!!! :stuck_out_tongue_winking_eye:
- [ ] fes un stress test amb perfdhcp (atenció a la instal·lació sobre linux-alpine)
### sessió 15 - Servidor de DHCP (ISC-KEA-DHCP part 02)
objectiu: demostrar i domininar els apartats 2 i 3 (vlans i HA)
Lab02 - bàsic
- [ ] Configura els fitxers de configuració necessaris per repartir ips del rang d'ips assignat a principi de curs 10.25.X.0/24 (on X és el numeret assignat a cada alumne)
- [ ] Comprova que el client demana i rep una ip vàlida
- [ ] Comprova quina és la passarel·la associada al client
- [ ] Comprova en el server quines ips s'han assignat
- [ ] Allibera la ip del client i verifica que no te ip assoclada
- [ ] afegir una nova xarxa (modificar fitxers de configuració)
- [ ] que cada xarxa reba servidors de noms diferents (1.1.1.1 i 1.0.0.1, 8.8.8.8 i 8.8.4.4, 9.9.9.9 i 149.112.112.112)
- [ ] afegir nous clients (i que reben ips ;)
Lab02 - Ampliació 02
- [ ] Convertir el servidor KEA en un router i que tothom (routers de xarxa i clients) surtin per ell
- [ ] Afegir un nou router (ubuntu linux o alpine linux o ffrouting) al switch inicial i fer que tothom surti a internet per ell
- [ ] fer captures de tcpdump del DORA dels 3 clients inicials
```
# ajuda extra pel tcpdump
ip netns list
ip netns exec clab-kea-lab-vlans-relay-vlan20 tcpdump -nni eth1
# TLDR:
sudo ip netns exec clab-kea-lab-vlans-relay-vlan20 tcpdump -U -nni eth2 -w - | sudo wireshark -k -i -
```
- [ ] fer "stress test" amb dhcperf (des d'algun client)
Lab03 - bàsic
- [ ] Configura els fitxers de configuració necessaris per repartir ips del rang d'ips assignat a principi de curs 10.25.X.0/24 (on X és el numeret assignat a cada alumne)
- [ ] que cada xarxa reba servidors de noms diferents (1.1.1.1 i 1.0.0.1, 8.8.8.8 i 8.8.4.4, 9.9.9.9 i 149.112.112.112)
- [ ] Comprova que el client demana i rep una ip vàlida
- [ ] Comprova quina és la passarel·la associada al client
- [ ] Comprova en el server quines ips s'han assignat
- [ ] Allibera la ip del client i verifica que no te ip assoclada
- [ ] Atura un server i comprova que se continuen repartint les ips
- [ ] Aixeca el server i comprova els logs del server que has aixecat i el que ja estava en marxa
Lab03 - Ampliació 03
- [ ] Canvia l'esquema del server: passa de load balancing a host-standby
- [ ] (difícil) Afegeix un nou server
- [ ] (més difícil) desplaça els servidors de kea a les subxarxes corresponents (esquema a continuació)

### sessió 16 - Servidor de DHCP (ISC-KEA-DHCP part 03)
Objectiu: descobrir i provar les etapes 4 i 5
Lab04 - bàsic
- [ ] Accedeix al tauler de control d'stork i visualitza les ips que s'han repartit.
Lab04 - avançat
- [ ] Fes una reserva d'ip pel client de la vlan20 a través del panell de control d'stork
Lab05 - bàsic
- [ ] Accedeix al tauler de control de grafana i visualitza les ips que s'han repartit.
Lab05 - avançat
- [ ] Modifica el rang d'ips que poden donar els servers per tal que salte una alarma a grafana com a que no queden ips disponibles a una de les subxarxes
### Repte d'avaluació de DNS (fora d'hores de classe)
**Objectiu**: Configurar els servidors de dns i de http/s per mostrar una o dues webs d'un o dos subdominis.
Data màxima:
- grup A > **dimarts 17 de febrer**
- grup B > **dimecres 18 de febrer**
Demostra que domines ***BIND9*** i el protocol ***HTTP/S i NGINX*** per posar una web (algú ha dit currículum? :upside_down_face: ) a una **ec2** de aws (subxarxa pública amb ip fixa) i que l'accés a aquesta se resolgui mitjançant de la delegació del subdomini **m08** del teu domini ***xxxxxxx.cat*** gestionat a **cloudflare**. Els dos servidors de noms estaràn a zones de disponibilitat diferents (volem alta disponibilitat) i també amb **ips fixes**. Un dels servidors actiuarà com a **principal** i l'altre com a ***secundari***. Inclou el ***certificat HTTPS*** a la web (cerbot/acme.sh/...).
Exemple de nom de domini del servidor web: ***www.m08.demoasixcloud.cat***
***Ampliació/Nota màxima***: els teus servidors gestionen 2 subdominis (m08 i m09) i exposes un **proxy invers** (ip fixa) que reenvia a **dos servidors en subxarxes privades** on cadascun d'ells gestiona una de les webs.
**Inclou el certificat** de totes dues webs **al proxy invers**.
Exemple dels noms de dominis: ***www.m08.demoasixcloud.cat / www.m09.demoasixcloud.cat.***
Se demana la **implementació** a aws academy, **screencast (compartit amb mi)** de la demo amb narració explicativa (max 4 min) i **documentació** (captures de pantalla amb breu explicació): **pdf** penjat a **M8-DNS**.
***Diagrama de la solució esperada***

### sessió 17 - Servidor de DHCP (ISC-KEA-DHCP part 04 - troubleshooting)
Objectiu: realitzar un procés sistemàtic en la resolució d'errors sobre dns i dhcp als labs de containerlab
https://hackmd.io/@joaniznardo/containerlab-labs-troubleshooting