
## 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.