DNS Autoritatiu i delegació inversa
2020-11-18
Índex
- Pre-requisits: Internet, DNS, PTR
- Solucions habituals
- La nostra solució
- Avantatges
Pre-requisits
Internet
Pre-requisits: Internet
Versió curta
Els ordinadors treballen amb adreces IP, fan aquesta pinta:
2a0f:de00:ffff::10 45.150.187.207
Pre-requisits: Internet — Assignació IPs
Cap humà recorda aquestes IPs
Treballem amb "dominis", e.g.: eXO.cat, gufi.net
Pre-requisits
DNS: Servei de Noms de Domini
Pre-requisits: Resolució DNS
Resolució DNS
# Client: Ep! Qui és ns3.exo.cat? > host ns3.exo.cat # Servidor: Aquí tens! # ns3.exo.cat és això: ns3.exo.cat has address 45.150.187.207 ns3.exo.cat has IPv6 address 2a0f:de00:ffff::10
I... Al revés?
Pre-requisits
PTR: Resolució DNS inversa
Pre-requisits: PTR - Resolució DNS inversa
Resolució DNS inversa o "PTR"
# Client: Ep! Qui és 2a0f:de00:ffff::10? > host 2a0f:de00:ffff::10 # Servidor: Aquí tens! # 2a0f:de00:ffff::10 és això: [...].e.d.f.0.a.2.ip6.arpa domain name pointer ns3.exo.cat
Per què ens importen els PTR?
- Si no fem res, fa aquesta pinta un PTR:
0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. 0.f.f.f.f.0.0.e.d.f.0.a.2.ip6.arpa
- Ara, per defecte:
2a0f-de00-ffff-0000-0000- 0000-0000-0010.ipv6.at.exonet.cat
- I per aquesta IP:
ns3.exo.cat
Per què ens importen els PTR?
- Importants per servidors de correu (anti-spam)
- Útils per gestionar la nostra xarxa
- Empatia amb altres persones administradores
- Delegació dels PTR: "tot o res"
Solucions habituals
Solucions habituals
- Servidor basat en Debian
apt install bind9
- Desactivar resolució recursiva (BIND fa moltes coses)
- 4 coses de tallafocs
- ... "ja està" (o no?)
No ens oblidem de l'operació
El més important: manteniment i operació
Solucions habituals
- Configurar fitxers de zona (exemple: exo.cat)
- Fer canvis implica canviar els fitxers de zona
- Cal tenir en compte el
SOA
Solucions habituals
Fitxers de zona: SOA
$TTL 86400 ; TTL o temps validesa: 1 dia $ORIGIN exo.cat. ; Domini ; SOA: Start of Authority (RFC 1035) @ IN SOA ns3.exo.cat. info.exo.cat. ( ; DNS primari, Contacte
2020100100 ; Serial: ; Si no el canvies, males coses passen!
7200 ; Refresh: Estàtic 3600 ; Retry: Estàtic 1209600 ; Expire: Estàtic 3600 ; TTL mínim: Estàtic )
Solucions habituals
Solució estàndard: PTR
- IPv4: una zona per cada
/24
:X.187.150.45.in-addr.arpa
- Necessitem 4 zones per IPv4
- IPv6: una zona per cada "nibble"/límit de 4 bits:
X.0.e.d.f.0.a.2.ip6.arpa
- Necessitem 9 zones per IPv6
- Tenim 4 + 9 zones amb
SOA
s que s'han de mantenir - Si es manté manualment, és
molt fàcil equivocar-se
La nostra solució
Servidor DNS automatitzat, sense estat
Solució eXO
Solució eXO
Sistema Operatiu: FreeBSD
- Sistema base complet (eines d'usuari + kernel)
- Paquets (
ports ) amb versions actuals del programari - DNS canvia ràpid; és infraestructura crítica
- ZFS amb snapshots integrat
Solució eXO
Orquestració: cdist
- Senzill
- "Sense requeriments" a la màquina controlada (POSIX)
- Flexible
- Adaptable a les nostres necessitats
Solució eXO
Programari DNS: Knot DNS
- Alt rendiment
- Sense codi innecessari (no porta un resolver)
- Modern i fàcil d'automatitzar
- Valors raonables per defecte
- Desenvolupat pel cz.nic
Per què tot diferent?
Ara els PTR es configuren així:
# Fitxer CSV en git ns3.exo.cat,45.150.187.207 ns3.exo.cat,2a0f:de00:ffff::10 ns4.exo.cat,45.150.187.208 ns4.exo.cat,2a0f:de00:ffff::11
Solució eXO
- 30 minuts màxim: servidor nou
- ... amb una única comanda, dos servidors configurats
./cdist.sh ns3.exo.cat ns4.exo.cat
Solució eXO
- Hi ha visibilitat i traçabilitat en la configuració
- Els SOA i demés s'administren automàticament
- Les zones també
- Reduïm al màxim les fonts d'error humana
Automatitzar estalvia feina i esforços
... També ens permet dormir millor
Parlem-ne, la eXO està per ajudar
Gràcies!
Aquesta presentació és a internet
https://evilham.com/ca/slides/2020-sax-dns-autoritatiu/
Proveu coses noves!
Fin de la cita
Aquí veńen coses extra si calen
Extra 1: Configurant PTR
# IPv6 PTR-zones __evilham_knot_dns_add_zone \ --module "mod-synthrecord/f_exo_ripe1_ipv6" \ "ipv6.at.exonet.cat" # Setup forward and reverse records for PTR __evilham_knot_dns_ptr \ --subnet "2a0f:de00::/29" \ --ptr-zone "ipv6.at.exonet.cat" \ "exo_ripe1_ipv6"
Extra 2: Configurant Jitsi Meet
# Setup Jitsi Meet __evilham_jitsi_meet \ --turn-server 'turn.exo.cat' \ --turn-secret "$(cat \ "${__secret}/turn/turn.exo.cat.pass")" # Setup main frontend require="__evilham_jitsi_meet" \ __evilham_jitsi_meet_domain \ "${__target_host}" \ --admin-email 'info@exo.cat' \ --turn-server 'turn.exo.cat' \ --notice-message ''