Anycast DNS

Από AWMN-WiKi

Μετάβαση σε:πλοήγηση, αναζήτηση
Puzzle Piece
Excelent Work!
Ευχαριστούμε, για
την συνεισφορά σας.
...η ομάδα Mediawiki!


Πίνακας περιεχομένων

Τι είναι το Anycast;

Το Anycast είναι μία μέθοδος διευθυνσιοδότησης και δρομολόγησης όπου τα δεδομένα αποστέλονται στον πλησιέστερο δικτυακά προορισμό. Υλοποιείται χρησιμοποιώντας δυναμικά πρωτόκολλα δρομολόγησης και διαφημίζοντας το ίδιο prefix από διαφορετικά σημεία του δικτύου.

Ρύθμιση BGP

Χρειάζεται να διαφημίσουμε την IP που έχει οριστεί για την υπηρεσία του Anycast DNS. Αυτή είναι για το AWMN η 10.0.0.1.

Παράδειγμα για Quagga:

 ~# telnet localhost bgpd
 
 Entering character mode
 Escape character is '^]'.
 
 
 Hello, this is Quagga (version 0.98.6).
 Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
 
 User Access Verification
 
 Password:
 OpenWrt> enable
 Password:
 OpenWrt# configure terminal
 OpenWrt(config)# router bgp 1979
 OpenWrt(config-router)# network 10.0.0.1/32
 OpenWrt(config-router)# quit
 OpenWrt(config)# quit
 OpenWrt# write
 Configuration saved to /etc/quagga//bgpd.conf
 OpenWrt# quit
 Connection closed by foreign host
 ~#

Προσθήκη Στατικού Route

Με την προσθήκη του network 10.0.0.1/32 στο BGP διαφημίσαμε ότι τρέχουμε Anycast DNS υπηρεσία αλλά τα queries ακόμη φτάνουν μέχρι τον router. Θα πρέπει να προσθέσουμε ένα στατικό route για το 10.0.0.1/32 προς την IP του server ώστε ο router να τα προωθεί στο DNS Server όπου θα εξυπηρετούνται.

Παράδειγμα για Quagga:

 ~# telnet localhost zebra
 
 Entering character mode
 Escape character is '^]'.
 
 
 Hello, this is Quagga (version 0.98.6).
 Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
 
 User Access Verification
 
 Password:
 OpenWrt> enable
 Password:
 Password:
 OpenWrt# configure terminal
 OpenWrt(config)# ip route 10.0.0.1/32 10.2.16.130
 OpenWrt(config)# quit
 OpenWrt# write
 Configuration saved to /etc/quagga//zebra.conf
 OpenWrt# quit
 Connection closed by foreign host
 ~#

Προσθήκη διεύθυνσης Anycast

Σε αυτό το βήμα προσθέτουμε την IP 10.0.0.1/32 στο loopback interface του server ώστε να εξυπηρετεί τα anycast DNS queries.

Παράδειγμα:

 ip addr add 10.0.0.1 dev lo  # Προσθήκη IP 10.0.0.1 στο loopback interface
 rndc reload                  # Επαναφόρτωση bind ώστε να "ακούει" στη νέα IP

Firewall για λοιπές υπηρεσίες και TCP

Οι υπόλοιπες υπηρεσίες που τρέχουν στο server, αλλά και το TCP θα πρέπει να κλείσουν με firewall ώστε να μην εξυπηρετούν στην anycast διεύθυνση:

 iptables -t filter -A INPUT -p udp -d 10.0.0.1/32 --dport domain -j ACCEPT
 iptables -t filter -A INPUT -p tcp -d 10.0.0.1/32 -j REJECT --reject-with tcp-reset
 iptables -t filter -A INPUT -d 10.0.0.1/32 -j REJECT

ΠΡΟΧΟΧΗ! Αυτό θα πρέπει να γίνεται με το REJECT target και όχι με το DROP! Έτσι εξασφαλίζεται ότι θα ενημερωθεί ο client με ICMP και θα κάνει άμεσα προσπάθεια σε πιθανό backup unicast DNS server.

Ομάδα δοκιμών

Οι servers που αυτή τη στιγμή συμμετέχουν δοκιμαστικά την υπηρεσία Anycast DNS είναι οι:

Unicast IP Διαχειριστής Περιοχή Ενεργός
10.2.16.130 Acinonyx Πατήσια ΝΑΙ
10.21.128.14 Nettraptor Βριλήσσια ΝΑΙ
10.14.154.3 acoul Αγ. Παρασκευή ΝΑΙ
10.2.19.1 acoul Κέντρο ΝΑΙ
10.22.11.50 JB172 Βύρωνας ΝΑΙ

Συμμετοχή σε δοκιμές

Αρκεί να ακολουθήσετε τις παραπάνω οδηγίες και να δηλώσετε ως master τον 10.19.143.12.

Παράδειγμα για bind:

/etc/named.conf

zone "awmn" IN {
        type slave;
        file "zones/awmn.zone";
        masters {
                10.19.143.12;
                };
};

zone "10.in-addr.arpa" IN {
        type slave;
        file "zones/10.in-addr.arpa.zone";
        masters {
                10.19.143.12;
                };
};
Ανακτήθηκε από το "http://www.awmn.net/wiki/index.php/Anycast_DNS".