Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:bind

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:bind [2024/04/17 12:38] – [Vorbereiten] ingo_wichmannlpi2:bind [2026/03/20 15:15] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 8: Zeile 8:
  
 === DNSSEC temporär abschalten === === DNSSEC temporär abschalten ===
-''/etc/named.conf'' : CentOS (ab 6)+''/etc/named.conf'' : CentOS
  
-''/etc/bind/named.conf.options'' : Debian (ab 7)+''/etc/bind/named.conf.options'' : Debian (ab 12)
 <file> <file>
 options { options {
 … …
-        // In der Praxis ist DNSSEC eine gute Sache ... aber zum Lernen erst mal aus: +        // In der Praxis ist DNSSEC eine gute Sache ... aber im Intranet zum Lernen erst mal aus: 
-        dnssec-enable no; +        dnssec-validation no;
-        # dnssec-validation no; # bis Debian 11 +
-        # dnssec-lookaside no; # bis Debian 11+
 … …
 } }
Zeile 33: Zeile 31:
   dig www.posteo.de @1.1.1.1   dig www.posteo.de @1.1.1.1
  
-<file> +-> ''flags: … ad''
-flags: … ad +
-</file>+
  
 Unser Nameserver sollte das ad-Flag nicht setzen. Unser Nameserver sollte das ad-Flag nicht setzen.
Zeile 42: Zeile 38:
 ==== Vorwärts-Zone ==== ==== Vorwärts-Zone ====
 === Zonendatei === === Zonendatei ===
-Unter Debian und CentOS empfehlen wir ein entsprechendes Verzeichnis ''primary'' für die Zonendateien noch anzulegen ((oder man legt die Zonendateien direkt in /var/cache/bind bzw. /var/named ab)): 
  
-Debian : +  * ''/var/named/linuxhotel.de'' : ( CentOS ) 
-  mkdir /var/cache/bind/primary +  * ''/var/lib/named/linuxhotel.de'' : ( SuSE ) 
-CentOS (ab 5) : +  * ''/var/cache/bind/linuxhotel.de'' : ( Debian )
-  mkdir /var/named/primary+
  
-''/var/named/primary/linuxhotel.de'' : ( CentOS ab 5 ) +<file txt linuxhotel.de>
- +
-''/var/lib/named/primary/linuxhotel.de'' : ( SuSE ab 10.0) +
- +
-''/var/cache/bind/primary/linuxhotel.de'' : ( Debian ab 3.1 ) +
-<file>+
 $ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden $ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden
 $TTL 2m   ; time to live: 2 Minuten, default wäre 2 Tage $TTL 2m   ; time to live: 2 Minuten, default wäre 2 Tage
-linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (+linuxhotel.de. SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
         1             ; Seriennummer         1             ; Seriennummer
         1h20m         ; refresh      / 1 Stunde 20 Minuten         1h20m         ; refresh      / 1 Stunde 20 Minuten
Zeile 66: Zeile 55:
  
 ; Nameserver: ; Nameserver:
-linuxhotel.de.                  IN NS notebook20.linuxhotel.de.+linuxhotel.de.                  NS notebook20.linuxhotel.de.
  
 ; kanonische IP-Adressen: ; kanonische IP-Adressen:
-notebook22.linuxhotel.de.       IN A 192.168.1.222 +notebook22.linuxhotel.de.       A 192.168.1.222 
-notebook05.linuxhotel.de.       IN A 192.168.1.205 +notebook05.linuxhotel.de.       A 192.168.1.205 
-notebook20.linuxhotel.de.       IN A 192.168.1.220 +notebook20.linuxhotel.de.       A 192.168.1.220 
-notebook06.linuxhotel.de.       IN A 192.168.1.206 +notebook06.linuxhotel.de.       A 192.168.1.206 
-notebook09.linuxhotel.de.       IN A 192.168.1.209+notebook09.linuxhotel.de.       A 192.168.1.209 
 + 
 +notebook22.linuxhotel.de.       AAAA 2a0f:6480:1:600::222 
 +notebook05.linuxhotel.de.       AAAA 2a0f:6480:1:600::205 
 +notebook20.linuxhotel.de.       AAAA 2a0f:6480:1:600::220 
 +notebook06.linuxhotel.de.       AAAA 2a0f:6480:1:600::206 
 +notebook09.linuxhotel.de.       AAAA 2a0f:6480:1:600::209
  
 ; Aliase: ; Aliase:
-peter.linuxhotel.de.            IN CNAME notebook09.linuxhotel.de. +peter.linuxhotel.de.            CNAME notebook09.linuxhotel.de. 
-lothar.linuxhotel.de.        60 IN CNAME notebook05.linuxhotel.de. +lothar.linuxhotel.de.        60 CNAME notebook05.linuxhotel.de. 
-heribert.linuxhotel.de.      30 IN CNAME notebook06.linuxhotel.de. +heribert.linuxhotel.de.      30 CNAME notebook06.linuxhotel.de. 
-bjoern.linuxhotel.de.           IN CNAME notebook20.linuxhotel.de. +bjoern.linuxhotel.de.           CNAME notebook20.linuxhotel.de. 
-admin.linuxhotel.de.            IN CNAME notebook22.linuxhotel.de.+admin.linuxhotel.de.            CNAME notebook22.linuxhotel.de.
 </file> </file>
  
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
-== CentOS (ab 5) == +== CentOS == 
-  named-checkzone -D linuxhotel.de. /var/named/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/named/linuxhotel.de
  
-== SuSE (ab 10.0) == +== SuSE == 
-  named-checkzone -D linuxhotel.de. /var/lib/named/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/lib/named/linuxhotel.de
  
-== Debian (ab 3.1) == +== Debian == 
-  named-checkzone -D linuxhotel.de. /var/cache/bind/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/cache/bind/linuxhotel.de
  
-==== Konfigurationsdatei ==== +=== Konfigurationsdatei === 
-''/etc/named.conf'' : ( SuSE 10.2 ) +  * ''/etc/named.conf'' : ( SuSE ) 
- +  * ''/etc/named.conf'' : ( CentOS ) 
-''/etc/named.conf'' : ( CentOS ab 5 ) +  * ''/etc/bind/named.conf.local'' : ( Debian )
- +
-''/etc/bind/named.conf.local'' : ( Debian ab 5.0 )+
 <file> <file>
 zone "linuxhotel.de" { zone "linuxhotel.de" {
   type primary;   type primary;
-  file "primary/linuxhotel.de";+  file "linuxhotel.de";
 }; };
 </file> </file>
Zeile 111: Zeile 104:
 === bind die Änderung mitteilen === === bind die Änderung mitteilen ===
   rndc reconfig   rndc reconfig
-oder +((oder 
  
-openSuSE, centos (ab 7)+openSuSE, CentOS
   service named reload   service named reload
  
-Debian (ab 6)+Debian
   service bind9 reload   service bind9 reload
 +))
 === im Log prüfen, ob es Fehler gab === === im Log prüfen, ob es Fehler gab ===
-Debian (ab 11)+Debian
   journalctl -eu named.service   journalctl -eu named.service
  
-==== testen ==== +=== testen === 
-  host peter.linuxhotel.de 127.0.0.1 +  host peter.linuxhotel.de ::1 
-  dig peter.linuxhotel.de @127.0.0.1 any+  dig peter.linuxhotel.de @::1 any
  
-==== Zonendatei (kurze Schreibweise) ==== +=== Zonendatei (kürzere Schreibweise) === 
-Das Format der Zonendatei (([[http://tools.ietf.org/html/rfc1035|rfc1035]])) läßt es auch zu, diese Datei sehr viel kürzer zu schreiben:+Das Format der Zonendatei ((RFC [[rfc>1035]])) läßt es auch zu, diese Datei kürzer zu schreiben:
 <file> <file>
 $TTL 2h $TTL 2h
-@ SOA notebook20 root.notebook20 1999022301 1d 2h 5w 2d+@ SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. 1999022301 1d 2h 5w 2d
  
 ; Nameserver: ; Nameserver:
-                 NS notebook20+                 NS notebook20.linuxhotel.de. 
 + 
 +; kein Mailserver, weder empfangen (RFC 7505), noch senden: 
 +                 MX 0 . 
 +                 TXT "v=spf1 -all"
  
 ; kanonische IP-Adressen: ; kanonische IP-Adressen:
 notebook22       A 192.168.1.222 notebook22       A 192.168.1.222
 +                 AAAA 2a0f:6480:1:600::222
 notebook05       A 192.168.1.205 notebook05       A 192.168.1.205
 +                 AAAA 2a0f:6480:1:600::205
 notebook20       A 192.168.1.220 notebook20       A 192.168.1.220
 +                 AAAA 2a0f:6480:1:600::220
 notebook06       A 192.168.1.206 notebook06       A 192.168.1.206
 +                 AAAA 2a0f:6480:1:600::206
 notebook09       A 192.168.1.209 notebook09       A 192.168.1.209
 +                 AAAA 2a0f:6480:1:600::209
  
 ; Aliase: ; Aliase:
Zeile 167: Zeile 169:
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
 == CentOS == == CentOS ==
-  named-checkzone -D linuxhotel.de. /var/named/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/named/linuxhotel.de
  
 == SuSE == == SuSE ==
-  named-checkzone -D linuxhotel.de. /var/lib/named/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/lib/named/linuxhotel.de
  
 == Debian == == Debian ==
-  named-checkzone -D linuxhotel.de. /var/cache/bind/primary/linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/cache/bind/linuxhotel.de
  
 === bind die Änderung mitteilen === === bind die Änderung mitteilen ===
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
  
-==== Rückwärts-Zone ====+==== Rückwärts-Zone IPv4 ====
 === Zonendatei === === Zonendatei ===
-''/var/named/primary/1.168.192.in-addr.arpa'': ( CentOS ) +  * ''/var/named/1.168.192.in-addr.arpa'': ( CentOS ) 
- +  * ''/var/lib/named/1.168.192.in-addr.arpa'': ( SuSE 10.0 ) 
-''/var/lib/named/primary/1.168.192.in-addr.arpa'': ( SuSE 10.0 ) +  * ''/var/cache/bind/1.168.192.in-addr.arpa'': ( Debian 3.1 )
- +
-''/var/cache/bind/primary/1.168.192.in-addr.arpa'': ( Debian 3.1 )+
  
 <file> <file>
 $TTL 2h $TTL 2h
-1.168.192.in-addr.arpa. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. ( +@ SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. 1999022301 1d 2h 5w 2d 
-    2005082401    ; serial + 
-    3h            ; refresh +; Nameserver: 
-    1h            ; retry +                 NS notebook20.linuxhotel.de.
-    1w            ; expire +
-    1h            ; negative ttl +
-)   +
-; Nameserver +
-1.168.192.in-addr.arpa. IN NS notebook20.linuxhotel.de.+
  
 ; kanonische IP-Adressen ; kanonische IP-Adressen
Zeile 207: Zeile 202:
  
 === testen === === testen ===
-== CentOS (ab 5) == +== CentOS == 
-  named-checkzone -D linuxhotel.de. /var/named/primary/linuxhotel.de +  named-checkzone -D 1.168.192.in-addr.arpa. /var/named/1.168.192.in-addr.arpa
-  named-checkzone -D 1.168.192.in-addr.arpa. /var/named/primary/1.168.192.in-addr.arpa+
  
-== SuSE (ab 10.0) == +== SuSE == 
-  named-checkzone -D linuxhotel.de. /var/lib/named/primary/linuxhotel.de +  named-checkzone -D 1.168.192.in-addr.arpa. /var/lib/named/1.168.192.in-addr.arpa
-  named-checkzone -D 1.168.192.in-addr.arpa. /var/lib/named/primary/1.168.192.in-addr.arpa+
  
-== Debian (ab 3.1) == +== Debian == 
-  named-checkzone -D linuxhotel.de. /var/cache/bind/primary/linuxhotel.de +  named-checkzone -D 1.168.192.in-addr.arpa. /var/cache/bind/1.168.192.in-addr.arpa
-  named-checkzone -D 1.168.192.in-addr.arpa. /var/cache/bind/primary/1.168.192.in-addr.arpa+
  
 === Konfigurationsdatei === === Konfigurationsdatei ===
-''/etc/named.conf'' : ( SuSE 10.2 )+  * ''/etc/named.conf'' : ( SuSE 10.2 ) 
 +  * ''/etc/named.conf'' : ( CentOS ) 
 +  * ''/etc/bind/named.conf.local'' : ( Debian 3.1 ) 
 +<file> 
 +zone "1.168.192.in-addr.arpa" { 
 +      type primary; 
 +      file "1.168.192.in-addr.arpa"; 
 +}; 
 +</file> 
 +==  Syntax der Konfigurationsdatei prüfen == 
 +  named-checkconf -z
  
-''/etc/named.conf'' : ( CentOS )+== bind die Änderung mitteilen == 
 +  rndc reconfig 
 +=== testen ===   
 +  host 192.168.1.222 ::1 
 +  dig -x 192.168.1.222 @::1 
 + 
 +==== Rückwärts-Zone IPv6 ==== 
 +Paket: 
 +  * Debian (12): ''ipv6calc'' 
 +=== Zonendatei === 
 +  ipv6calc --out revnibbles.arpa --in ipv6addr 2a0f:6480:1:600::222 
 +-> ''2.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa.'' 
 +  * ''/var/named/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa'': ( CentOS ) 
 +  * ''/var/lib/named/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa'': ( SuSE ) 
 +  * ''/var/cache/bind/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa'': ( Debian )
  
-''/etc/bind/named.conf.local'' : ( Debian 3.1 ) 
 <file> <file>
-zone "1.168.192.in-addr.arpa" {+$TTL 2h 
 +@ SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. 1999022301 1d 2h 5w 2d 
 + 
 +; Nameserver: 
 +                 NS notebook20.linuxhotel.de. 
 + 
 +; kanonische IP-Adressen 
 +2.0.5.0.0.0.0.0.0.0.0.0.0.0.0.0. IN PTR notebook05.linuxhotel.de. 
 +2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0. IN PTR notebook20.linuxhotel.de. 
 +2.0.6.0.0.0.0.0.0.0.0.0.0.0.0.0. IN PTR notebook06.linuxhotel.de. 
 +2.0.9.0.0.0.0.0.0.0.0.0.0.0.0.0. IN PTR notebook09.linuxhotel.de. 
 +2.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0. IN PTR notebook22.linuxhotel.de. 
 +</file> 
 + 
 +=== testen === 
 +== CentOS == 
 +  named-checkzone -D 0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa. /var/named/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa 
 + 
 +== SuSE == 
 +  named-checkzone -D 0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa. /var/lib/named/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa 
 +== Debian == 
 +  named-checkzone -D 0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa. /var/cache/bind/0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa 
 + 
 +=== Konfigurationsdatei === 
 +  * ''/etc/named.conf'' : ( SuSE ) 
 +  * ''/etc/named.conf'' : ( CentOS ) 
 +  * ''/etc/bind/named.conf.local'' : ( Debian ) 
 +<file> 
 +zone "0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa" {
       type primary;       type primary;
-      file "primary/1.168.192.in-addr.arpa";+      file "0.0.6.0.1.0.0.0.0.8.4.6.f.0.a.2.ip6.arpa";
 }; };
 </file> </file>
Zeile 237: Zeile 280:
   rndc reconfig   rndc reconfig
 === testen ===   === testen ===  
-  host 192.168.1.222 127.0.0.1 +  host 2a0f:6480:1:600::222 ::1 
-  dig -x 192.168.1.222 @127.0.0.1+  dig -x 2a0f:6480:1:600::222 @::1
  
 ===== Zonendateien mit nsupdate bearbeiten ===== ===== Zonendateien mit nsupdate bearbeiten =====
 ==== bind konfigurieren ==== ==== bind konfigurieren ====
-''/etc/named.conf'' : ( SuSE, CentOS ) +  * ''/etc/named.conf'' : ( SuSE, CentOS ) 
- +  * ''/etc/bind/named.conf.local'' : ( Debian )
-''/etc/bind/named.conf.local'' : ( Debian )+
 mit ''allow-update'': mit ''allow-update'':
 <file> <file>
Zeile 254: Zeile 296:
         type primary;         type primary;
         allow-update { "nsupdate"; };         allow-update { "nsupdate"; };
-        file "primary/linuxhotel.de";+        file "linuxhotel.de";
 }; };
  
Zeile 260: Zeile 302:
         type primary;         type primary;
         allow-update { "nsupdate"; };         allow-update { "nsupdate"; };
-        file "primary/1.168.192.in-addr.arpa";+        file "1.168.192.in-addr.arpa";
 }; };
 </file> </file>
Zeile 269: Zeile 311:
         type primary;         type primary;
         update-policy local;         update-policy local;
-        file "primary/linuxhotel.de";+        file "linuxhotel.de";
 }; };
 </file> </file>
Zeile 277: Zeile 319:
 ==== bind Schreibzugriff auf Primary-Zonendateien geben ==== ==== bind Schreibzugriff auf Primary-Zonendateien geben ====
 Debian: Debian:
-  chown -R bind /var/cache/bind/primary+  chown bind /var/cache/bind/linuxhotel.de
  
 ==== Testen: Eintrag hinzufügen ==== ==== Testen: Eintrag hinzufügen ====
Zeile 315: Zeile 357:
 <code bash> <code bash>
 function zvi { function zvi {
-  cd /var/cache/bind/primary+  cd /var/cache/bind
   rndc freeze $1   rndc freeze $1
   vim $1   vim $1
Zeile 345: Zeile 387:
 === testen: funktioniert der Primary? === === testen: funktioniert der Primary? ===
 == openSuSE 12.3 == == openSuSE 12.3 ==
-  named-checkzone -i local -D linuxhotel.de /var/lib/named/primary/linuxhotel.de+  named-checkzone -i local -D linuxhotel.de /var/lib/named/linuxhotel.de
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
   tail /var/log/messages   tail /var/log/messages
-  dig @127.0.0.1 linuxhotel.de NS+  dig @::1 linuxhotel.de NS
  
 == debian 8 == == debian 8 ==
-  named-checkzone -i local -D linuxhotel.de /var/cache/bind/primary/linuxhotel.de+  named-checkzone -i local -D linuxhotel.de /var/cache/bind/linuxhotel.de
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
   journalctl -eu bind9   journalctl -eu bind9
-  dig @127.0.0.1 linuxhotel.de NS+  dig @::1 linuxhotel.de NS
  
 ==== Secondary konfigurieren ==== ==== Secondary konfigurieren ====
Zeile 378: Zeile 420:
 </file> </file>
  
-''/etc/named.conf'' : ( SuSE 10.0 ) +  * ''/etc/named.conf'' : ( SuSE 10.0 ) 
- +  * ''/etc/bind/named.conf.local'' : ( Debian )
-''/etc/bind/named.conf.local'' : ( Debian )+
 <file> <file>
 zone "linuxhotel.de" { zone "linuxhotel.de" {
Zeile 417: Zeile 458:
   journalctl -eu bind9   journalctl -eu bind9
   ls /var/cache/bind/secondary/{linuxhotel.de,1.168.192.in-addr.arpa}   ls /var/cache/bind/secondary/{linuxhotel.de,1.168.192.in-addr.arpa}
-  dig @127.0.0.1 linuxhotel.de AXFR+  dig @::1 linuxhotel.de AXFR
  
 == OpenSuSE 12.3 == == OpenSuSE 12.3 ==
Zeile 424: Zeile 465:
   tail /var/log/messages   tail /var/log/messages
   ls /var/lib/named/secondary/{linuxhotel.de,1.168.192.in-addr.arpa}   ls /var/lib/named/secondary/{linuxhotel.de,1.168.192.in-addr.arpa}
-  dig @127.0.0.1 linuxhotel.de AXFR+  dig @::1 linuxhotel.de AXFR
  
 === testen: funktionieren alle verantwortlichen Nameserver? === === testen: funktionieren alle verantwortlichen Nameserver? ===
Zeile 431: Zeile 472:
 ===== Subdomains delegieren ===== ===== Subdomains delegieren =====
 ==== Übergeordneter DNS ==== ==== Übergeordneter DNS ====
-''/etc/named.conf.local'' : ( Debian ab 5.0 ) +  * ''/etc/named.conf.local'' : ( Debian ab 5.0 ) 
- +  * ''/etc/named.conf'' : ( CentOS ab 5 )
-''/etc/named.conf'' : ( CentOS ab 5 )+
 <file> <file>
 zone "linuxhotel.de" IN { zone "linuxhotel.de" IN {
         type primary;         type primary;
-        file "primary/linuxhotel.de";+        file "linuxhotel.de";
         forwarders      { };         forwarders      { };
 }; };
Zeile 444: Zeile 484:
 :!: Fallstrick: __Unbedingt an **forwarders** denken!__ Und **alle** dnssec Optionen ausschalten :!: :!: Fallstrick: __Unbedingt an **forwarders** denken!__ Und **alle** dnssec Optionen ausschalten :!:
  
-''/var/named/primary'' : ( CentOS 5 )+''/var/named'' : ( CentOS 5 )
 <file> <file>
 sub05.linuxhotel.de.        IN NS ns1.sub05.linuxhotel.de. sub05.linuxhotel.de.        IN NS ns1.sub05.linuxhotel.de.
Zeile 459: Zeile 499:
 Das muss auch auf jedem Delegaten konfiguriert werden :!: Das muss auch auf jedem Delegaten konfiguriert werden :!:
  
-  named-checkzone -i local -D linuxhotel.de /var/named/primary/linuxhotel.de+  named-checkzone -i local -D linuxhotel.de /var/named/linuxhotel.de
 ==== Subdomain DNS ==== ==== Subdomain DNS ====
 Wie oben, unter "eigene Zonen in bind verwalten" Wie oben, unter "eigene Zonen in bind verwalten"
lpi2/bind.1713357489.txt.gz · Zuletzt geändert: 2024/04/17 12:38 von ingo_wichmann