DNS/DHCP(at)WorkDu bestemmer svarene. Også de gale.
En DNS- og DHCP-server for testnett og lab. Den svarer fra dine egne soner og poster, og gir feil svar når du ber om det: NXDOMAIN, SERVFAIL, ingen svar, trege svar eller avkortede svar. Slik ser du hvordan telefoner, skrivere, servere og programmer tåler det når navneoppslag og adressetildeling svikter.
| Spørsmål | Type | Svar | Tid | Resultat |
|---|---|---|---|---|
| gw.lab.test | A | – | – | venter |
| ntp.lab.test | A | – | – | venter |
| _sip._udp.lab.test | SRV | – | – | venter |
| www.example.com | A | – | – | venter |
DNS-serveren
0.1.0 · utkastDNS over UDP og TCP med egne soner og poster, og regler som gir feil svar med vilje. Alt styres fra et web-GUI på norsk og engelsk, og hver spørring vises i loggen mens den skjer.
- Svarer
- Fra egne soner og poster: A, AAAA, CNAME, MX, TXT, SRV, PTR og NS, med jokertegn (
*.app.lab.test) og automatiske reversoppslag. Navn som ikke finnes i sonen, får NXDOMAIN. - Svarer feil
- Regler per navnemønster, type og klientnett:
NXDOMAIN,SERVFAIL,REFUSED, ikke noe svar, tregt svar, avkortet svar (TC) eller en annen adresse. Første regel som passer, bestemmer. - Videresender
- Navn utenfor sonene kan sendes videre til en annen DNS-server. Uten videresending er testnettet lukket, og serveren svarer REFUSED.
- Viser
- «Spør DNS-serveren» viser svaret en klient ville fått, uten å sende noe. Loggen viser klient, spørsmål, svar, regel og tid for hver spørring.
- Sikrer
- Innlogging, CSRF-vern og streng CSP. Tjenesten kjører som egen bruker, bare med rettighetene den trenger for port 53 og 67 og for å binde DHCP til ett nettkort.
DHCP-serveren
IPv4Deler ut adresser i ett nett, direkte eller via DHCP relay, og kan oppføre seg som en DHCP-server med feil. Den er av etter installasjon og slås på i web-GUI-et.
- Deler ut
- Adresseområde, nettmaske, ruter, DNS, domene og leietid, og opsjon 42 (NTP), 66 (TFTP) og 67 (oppstartsfil) for PXE og IP-telefoner. Faste adresser per MAC-adresse.
- Svarer feil
- Feilmoduser:
stille(svarer aldri),nak(avviser hver forespørsel),forsinkelseogfullt(ingen ledige adresser). - Navngir
- En klient som sier at den heter
laptop-anna, fårlaptop-anna.lab.testi DNS så lenge leien varer. - Viser
- Utleide adresser med tilstand og tid igjen, og hver DISCOVER, OFFER, REQUEST, ACK og NAK i loggen.
Bare på et testnett. En DHCP-server svarer alle som spør på nettsegmentet. Derfor er DHCP av etter installasjon, og web-GUI-et spør en ekstra gang før den slås på.
Testscenarier
Pek testutstyret mot serveren, lag en regel og se hva som skjer. Slik går en test:
- Pek klientene mot serveren
Sett DNS-serveren i utstyret, eller slå på DHCP slik at klientene får adressen automatisk.
- Legg inn postene
Navnene utstyret trenger, for eksempel
sip.lab.test,ntp.lab.testog SRV-poster. - Lag en regel
Velg navn, eventuelt type og klient, og hva som skal skje. «Legg til et eksempel» gir ferdige regler.
- Følg med i loggen
Hver spørring og DHCP-melding vises med svar, regel og tid. Prøver klienten igjen? Over TCP? Gir den opp?
big.lab.test først fikk TC over UDP og så svar over TCP.| Test | Oppsett |
|---|---|
| IP-telefon uten SIP-server | Regel SERVFAIL eller NXDOMAIN på _sip._udp.lab.test. Bytter telefonen til reserveserveren, og hva viser den? |
| DNS som ikke svarer | Regel DROP på *. Hvor lenge venter klienten, og prøver den neste DNS-server? |
| Treg DNS | Regel DELAY med 3000 ms. Finn grensen der programmet gir opp eller blir tregt for brukeren. |
| TCP-fallback | Regel TRUNCATE. Klienten må spørre igjen over TCP – går det gjennom brannmuren? |
| Feil adresse | Regel ANSWER som sender www.example.com til en sinkhole-adresse. |
| Bare én klient feiler | Klientfelt 10.0.0.66. Resten av testnettet får vanlige svar. |
| Ingen IPv6-svar | Regel DROP på type AAAA. Faller klienten raskt tilbake til IPv4? |
| DHCP som ikke svarer | Feilmodus «stille». Klienten ender med 169.254.x.x – hvor lang tid tar det, og hva logger den? |
| NAK-løkke | Feilmodus «nak». Klienten får tilbud, men forespørselen avvises, igjen og igjen. |
| PXE og telefoner | Opsjon 66 og 67 med TFTP-server og oppstartsfil, og en fast adresse per MAC-adresse. |
| DHCP via relé | Ruteren med ip helper-address sender videre; svaret går tilbake via relé-agenten. |
Installasjon
Én offline-pakke uten avhengigheter utenom Python 3, som følger med Rocky Linux 9. Installasjonsprogrammet kontrollerer sjekksummene og at portene er ledige, lager passord, åpner brannmuren og avslutter med en kontroll av web-GUI og DNS.
Rocky Linux 9, fysisk eller VM
$ sha256sum -c DNS-DHCP-Tester-0.1.0-offline.tar.gz.sha256
$ tar xzf DNS-DHCP-Tester-0.1.0-offline.tar.gz
$ cd DNS-DHCP-Tester-0.1.0
$ sudo ./install.sh --lang no
# åpne http://<server>:8053/ – bruker admin, passordet skrives ut
Ingen pip, ingen containere og ingen internett. Kjør install.sh på nytt for å oppgradere; innstillinger, leier, logg og passord beholdes. --admin-net 10.10.0.0/24 åpner web-porten bare for administrasjonsnettet.
VMware og Proxmox VE
# VM med ett nettkort mot testnettet (f.eks. ens224)
$ scp DNS-DHCP-Tester-0.1.0-offline.tar.gz* root@vm:/root/
$ ssh root@vm
# tar xzf DNS-DHCP-Tester-*.tar.gz && cd DNS-DHCP-Tester-0.1.0
# ./install.sh --lang no
# python3 /opt/dns-dhcp-tester/tools/selftest.py
1 vCPU og 1 GB minne holder. Gi VM-en et eget nettkort i testnettets VLAN, og velg det som grensesnitt for DHCP i web-GUI-et. Da svarer DHCP-serveren bare på det nettet.
Port 53 er i bruk? Installasjonen viser hvilken prosess som bruker den (ofte dnsmasq fra libvirt). Stopp den, eller bruk --dns-listen <adresse> eller --dns-port. Portene 8053, 53 og 67 kolliderer ikke med de andre (at)Work-verktøyene, så alle kan kjøre på samme server.
Skjermbilder
Web-GUI-et finnes på norsk og engelsk og fungerer også på mobil. Bildene her er fra den norske utgaven; den engelske siden viser engelske skjermbilder. Klikk for å se bildet i full størrelse.