Files
notes/projects/bvv/bind-manual.md
2025-04-04 10:57:26 +02:00

142 lines
8.2 KiB
Markdown

## Intro
- Ziel: Schreibe eine detailierte Anleitung, welche es moeglich die DNS Eintraege von bind zu aendern ohne den Server kaputt zu machen.
- Motivation: Die bind Konfiguration wurde versehentlich erfolgreich zerstoert, was dazu fuehrte, dass der bind Server nicht mehr funktionierte.
## Receipt
Um Aenderungen am bind9 Server beim BVV durchzufuehren muss der Syntax von bind beachtet werden. Bei Fehlern kann es sein, dass die ganze DNS Aufloesung nicht mehr funktioniert.
### Einfuehrung
Alle Konfigurationsdateien fuer bind liegen im Ordner `/etc/bind/` am ns2 Server. Die Hauptkonfigurationsdatei fuer bind ist hierbei `/etc/bind/named.conf` von der Alles ausgeht. `named` ist herbei der Dienst zu `bind` zugehoerige Dienst, welcher im Hintergrund laueft; der Status der `named`-Dienstes kann geprueft werden mit: `systemctl status named`.
Saemtliche Zonen fuer die von diesem `bind` Server verwalteten Domaenen sind in der Datei `/etc/bind/named.conf.local` hinterlegt; die zugehoerige Datei fuer jede Domaene wo die DNS Eintrage gesetzt werden sind hier in der Datei `/etc/bind/named.conf.local` definiert unter der Variablen `file`. Unter der hier genutzten Strukturierung sind die DNS Eintraege hinterlegt in den Dateien `/etc/bind/db.<tld>.<domain>`. Zum Beispiel die DNS Eintraege fuer die Domaene `vhs-bayern.de` liegt in der Datei `/etc/bind/db.de.vhs-bayern`.
### Aenderungen der DNS Eintraege
Um die DNS Eintraege einer bestimmten Domaene zu aendern, muss die jeweilige Zonen Datei geoeffnet werden; zum Beispiel `/etc/bind/db.de.vhs-bayern.de` fuer die Domaene `vhs-bayern.de`:
```conf
$ORIGIN vhs-bayern.de.
$TTL 60
@ IN SOA ns1.vhs-bayern.de. hostmaster.vhs-bayern.de. (
2024121702 ; serial number (yyyymmddxx)
14400 ; refresh every 4 hours
14400 ; retry after 4 hours
604800 ; expire after 7 days
43200) ; default ttl is 12 hours
IN A 49.13.175.195 ; old: 144.76.93.148
IN NS ns1.vhs-bayern.de.
IN NS ns1.m-online.net.
IN NS ns2.m-online.net.
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Local Host Address ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
localhost IN A 127.0.0.1
;;;;;;;;;;;;;;;;;;;;
;;; NS Eintraege ;;;
;;;;;;;;;;;;;;;;;;;;
newsletter.vhs-bayern.de. 1800 IN NS ns0.isprit2.de.
newsletter.vhs-bayern.de. 1800 IN NS ns1.isprit2.de.
;;;;;;;;;;;;;;;;;;;;
;;; MX Eintraege ;;;
;;;;;;;;;;;;;;;;;;;;
listserver.vhs-bayern.de. IN MX 10 listserver.vhs-bayern.de.
;;;vhs-bayern.de. IN MX 10 mx01.vhs-bayern.de.
ns1.vhs-bayern.de. IN MX 10 mx01.vhs-bayern.de.
intmx IN MX 10 domino
intmx IN MX 20 domino2
mailtest.vhs-bayern.de. 60 IN MX 10 mailtest
vhs-bayern.de. IN MX 0 vhsbayern-de0i.mail.protection.outlook.com.
;;;;;;;;;;;;;;;;;;;;;
;;; TXT Eintraege ;;;
;;;;;;;;;;;;;;;;;;;;;
;;vhs-bayern.de. 60 IN TXT "v=spf1 a mx ip4:62.245.128.64/27 ip4:62.245.128.96/27 include:spf.protection.outlook.com -all"
vhs-bayern.de. 60 IN TXT "v=spf1 a mx ip4:20.50.178.65/32 ip4:62.245.128.64/27 ip4:62.245.128.96/27 include:spf.protection.outlook.com -all"
vhs-bayern.de. 3600 IN TXT "MS=ms64478158"
;_dnsauth.vhs-bayern.de. 300 IN TXT "2024021509350769xvfne3rv45zuft4zpkil5d67tbpvkvnjlfei3862b34yrbsj"
_dnsauth.vhs-bayern.de. 300 IN TXT "202411121019550lyjgntwd5v35uvf533roxftuvkf9hbv20okc4g3xt0umpn6p8"
_dnsauth.www.vhs-bayern.de. 300 IN TXT "202411121019550lyjgntwd5v35uvf533roxftuvkf9hbv20okc4g3xt0umpn6p8"
;;;;;;;;;;;;;;;;;;;;;;;
;;; CNAME Eintraege ;;;
;;;;;;;;;;;;;;;;;;;;;;;
autodiscover CNAME autodiscover.outlook.com.
selector1._domainkey CNAME selector1-vhsbayern-de0i._domainkey.bvv1.onmicrosoft.com.
selector2._domainkey CNAME selector2-vhsbayern-de0i._domainkey.bvv1.onmicrosoft.com.
;;;;;;;;;;;;;;;;;;;
;;; A Eintraege ;;;
;;;;;;;;;;;;;;;;;;;
mx01 IN A 62.245.128.92
rproxy2 IN A 62.245.128.84
mail-gw1 IN A 62.245.128.85
;analytics IN A 62.245.128.69
domino IN A 192.168.1.108
domino2 IN A 192.168.1.109
;2009 IN A 62.245.128.90 deaktiviert 17.12.2024
;rproxy IN A 62.245.128.65
;eportfolio IN A 62.245.128.75
;ksc IN A 62.245.128.71
;ksc2 IN A 62.245.128.71
;portal1 IN A 192.168.1.117
;portal2 IN A 192.168.1.118
;db2portal IN A 192.168.1.119 deaktiviert 17.12.2024
;ntp IN A 192.168.1.110 deaktiviert 17.12.2024
;ntp IN A 192.168.1.130 deaktiviert 17.12.2024
ns1 IN A 62.245.128.66
vpn IN A 62.245.128.125
;ol3 IN A 62.245.128.89 deaktiviert 17.12.2024
;icsdb2 IN A 192.168.1.131 deaktiviert 17.12.2024
;ics1 IN A 192.168.1.132
;ics2 IN A 192.168.1.133
icsweb1 IN A 62.245.128.70 ;Staecker fragen
mailtest 60 IN A 62.245.128.94 ;?
;ttwportal 60 IN A 144.76.93.148 deaktiviert 17.12.2024
;www.ttwportal 60 IN A 144.76.93.148 deaktiviert 17.12.2024
www 60 IN A 49.13.175.195 ;Neuer Provider old: 144.76.93.148
production IN A 49.13.175.195 ;Neuer Provider 4motion
testing IN A 49.13.175.195 ;Neuer provider 4motion
analytics IN A 49.13.175.195 ;Neuer Provider 4motion
```
**Wichtig zu beachten hier ist, dass bei jeder Aenderung einer dieser Zonendateien die Seriennummer (ganz oben in der Datei im ersten DNS Eintrag) *erhoeht* werden muss. Egal um welchen Wert; die Seriennummer muss nur groesser sein, als die vorherige! Uebliches Schema ist das heutige Datum mit einer nachgestellten Zaehlung fuer jede Aenderung des Tages; zum Bespiel: 2025032401. Ohne diesen Schritt wuerde der Dienst Fehlermeldungen ausgeben und nicht mehr funktionieren.**
Sagen wir fuegen der obigen Datei einen DNS-Eintrag: `test IN A <ip-address>` ein. Damit dieser wirksam wird muss die Seriennummer im ersten DNS Eintrag erhoeht werden:
```conf
$ORIGIN vhs-bayern.de.
$TTL 60
@ IN SOA ns1.vhs-bayern.de. hostmaster.vhs-bayern.de. (
--------> 2025032401 ; serial number (yyyymmddxx) <---------------
14400 ; refresh every 4 hours
14400 ; retry after 4 hours
604800 ; expire after 7 days
43200) ; default ttl is 12 hours
IN A 49.13.175.195 ; old: 144.76.93.148
IN NS ns1.vhs-bayern.de.
IN NS ns1.m-online.net.
IN NS ns2.m-online.net.
```
Nachdem die Anpassung durchgefuehrt wurde sollten zu Sicherheit die Konfigurationsdateien auf Richtigkeit geprueft werden:
1. Pruefe die Konfiguration der 'Master'-Datei: `named-checkconf /etc/bind/named.conf`. Keine Ausgabe bedeutet: Alles gut!
2. Pruefe die Zonendatei mit: `named-checkzone vhs-bayern.de /etc/bind/db.de.vhs-bayern`:
```sh
root@ns2:/etc/bind# named-checkzone vhs-bayern.de db.de.vhs-bayern
zone vhs-bayern.de/IN: loaded serial 2024121702
OK
```
Der Befehl zeigt auch die aktuelle Seriennummer der Zone an!
3. Sofern es bei den zwei vorherigen Schritten keine Fehlermeldungen gab, kann der `named`-Dienst neugestartet werden mit: `systemctl restart named`
4. Pruefe noch den Status den `named`-Dienstes mit `systemctl status named`. Wenn es keine Fehler gibt sollte der neu hinzugefuegt Eintrag funktionieren.