0:00–0:10
Recap
0:10–0:40
Lecture
0:40–1:50
Lab 3C
1:50–2:00
Debrief
0:00 – 0:10Recap · 10 min

Bridge from DHCP to DNS

0:10 – 0:40Lecture · 30 min

BIND9 config hierarchy, zone file syntax, the trailing dot rule, record types

Part 1 — BIND9 config file hierarchy (8 min)

Part 2 — Zone declaration in named.conf.local (5 min)

Part 3 — Zone database file anatomy (12 min)

Part 4 — Point systemd-resolved at S1 (5 min)

0:40 – 1:50Lab 3C · 70 min

Lab 3C — Install BIND9, configure named.conf.local, build forward zone, verify with dig

Part 1 — Install BIND9 and configure options (15 min)

Part 2 — Add zone declaration (10 min)

Part 3 — Create the zone database file (25 min)

Part 4 — Verify and update DNS resolver (20 min)

Lab 3C complete when: BIND9 running on S1. named.conf.options configured with allow-query and forwarders. Zone declaration in named.conf.local. Zone database file passes named-checkzone. All A records (s1, s2, s3, loghost) and CNAME (www) resolve correctly via dig and nslookup. systemd-resolved updated on S1 and S2.
1:50 – 2:00Debrief · 10 min

Learning outcomes — by end of Day 3, students can…

Describe the BIND9 config hierarchyExplain the role of named.conf, named.conf.options, named.conf.local, and named.conf.default-zones without referring to notes
Write a zone declarationCreate a zone block in named.conf.local with correct type, allow-query, and file path
Build a zone database fileWrite a zone file with correct $TTL, SOA, NS, A, and CNAME records, applying the trailing dot rule correctly
Validate and restart BIND9 safelyUse named-checkconf and named-checkzone before every restart, and interpret the success/error output
Query DNS with dig and nslookupDirect queries at a specific server and interpret all four sections of a dig response

Common issues and fixes

IssueLikely causeFix
named-checkzone reports "not at top of zone" or "not fully qualified"FQDN written without trailing dot in SOA or NS recordAny FQDN in a zone file that contains dots must end with a trailing dot. Short labels (like 's1') should have no dots at all
BIND9 starts but zone doesn't load — no "loaded serial" in lognamed.conf.local not saved, or zone declaration has a syntax errorRun named-checkconf — it will show the line number of any error in named.conf.local
dig returns SERVFAIL instead of NOERRORZone file has errors that prevented loadingCheck journal: sudo journalctl -u named -n 30. The load error will be there with the specific problem
www.yourname.net resolves to "server can't find" or NXDOMAINCNAME target (s1) doesn't have a trailing dot but looks like it might — or the zone wasn't reloaded after adding the CNAMEVerify CNAME: www CNAME s1 (no dot — relative). Reload after change: sudo systemctl reload named
← Day 2 Lab 3C Handout Day 4 →