Syzefxis DNS Views per VPN

Το ΣΥΖΕΥΞΙΣ είναι ίσως το μεγαλύτερο δημόσιο έργο δικτύωσης στην Ελλάδα, αφού συνδέει περισσότερους από 2000 δημόσιους φορείς σε όλη τη χώρα. Εκτός από τις 6 γεωγραφικές νησίδες (τηλεπικοινωνιακά διαμερίσματα) , είναι χωρισμένο και λογικά σε 4 MPLS VPNs [VPN-1 Νομαρχίες/Δήμοι/ΚΕΠ, VPN-2 Νοσοκομεία/Κέντρα Υγείας, VPN-3 Διαχειριστικές Αρχές, VPN-4 Στρατολογίες].

Το DNS του ξεκίνησε «κλασικά» όπως το 99.99% των περιπτώσεων που ξέρουμε, με ένα «internal» και ένα «external» view. Αντιγράφω από το http://www.syzefxis.gov.gr/Default.aspx?id=258&nt=18 το αρχικό spec:

Η υλοποίηση της Υπηρεσίας Ονοματολογίας θα πρέπει να γίνει με τέτοιο τρόπο ώστε να υποστηρίζεται η δυνατότητα για διαφορετική απάντηση ανάλογα με το χρήστη που κάνει την αίτηση. Για παράδειγμα, αν ένας χρήστης σε ένα Δήμο θέλει να προσπελάσει τον δικτυακό τόπο ενός άλλου Δήμου και βρίσκονται σε διαφορετικές νησίδες του Έργου «ΣΥΖΕΥΞΙΣ», η πρόσβαση θα πρέπει να γίνει εντός του ιδεατού κλειστού δικτύου που συνδέει τους Φορείς χωρίς να παρεμβάλλεται το Διαδίκτυο (αντιστοίχιση του εξυπηρετητή του δικτυακού τόπου σε private διεύθυνση). Αν τώρα ένας πολίτης θέλει να προσπελάσει το δικτυακό τόπο του εν λόγω Δήμου μέσω του Διαδικτύου, η υπηρεσία ονοματολογίας θα πρέπει να επιστρέψει μια public IP διεύθυνση η οποία να αντιστοιχεί μέσω NAT/PAT/reverse proxy στην private διεύθυνση του εξυπηρετητή του δικτυακού τόπου. Η υλοποίηση μπορεί να γίνει είτε με ρύθμιση του λογισμικού της υπηρεσίας είτε με εγκατάσταση διαφορετικών εξυπηρετητών που θα είναι υπεύθυνοι για την κάθε περίπτωση.

Δηλαδή όλα τα sites εντός ΣΥΖΕΥΞΙΣ πρέπει να κάνουν resolve στις private IPs για όλα τα VPN και τις νησίδες, και στις public IPs για το Internet.

Κάπου στην πορεία όμως (~Μάρτης 2007) τα specs άλλαξαν και ζητήθηκε το παρακάτω:

  • Φορέας που επιθυμεί να δει οποιαδήποτε εφαρμογή άλλου φορέα εντός του ίδιου VPN θα πρέπει να πληροφορείται από τις διατάξεις DNS για την private IP, του host που θέλει να προσπελάσει.
  • Φορέας που ανήκει σε άλλο VPN δεν θα πρέπει να επικοινωνεί δικτυακά με το συγκεκριμένο φορέα παρά μόνο αν η εφαρμογή είναι published στο Internet
    «…Για παράδειγμα αν δεν έχει ζητηθεί ειδικά κάποια «επικάλυψη» των VPNs δεν πρέπει να μπορούν οι Δήμοι να βλέπουν μεσα από το VPN-1 το portal της Στρατολογίας (www.stratologia.gr) (VPN-4) αλλά να το βλέπουν από το διαδίκτυο. …»
    Σε αυτή την περίπτωση η διάταξη DNS θα δίνει την public IP του host.

Με απλά λόγια, όταν κάποιος πχ. από το δήμο Κατερίνης ζητήσει να δεί το site του δήμου Αμαρουσίου, θα πρέπει να πάρει το Internal IP (και ας είναι σε διαφορετική νησίδα, είναι όμως στο ίδιο VPN), αλλά αν ζητήσει να δει το site του Νοσοκομείου Κατερίνης, θα πρέπει να πάρει το public ip (γιατί είναι σε άλλο VPN).

Τα δυο αρχικά Views έγιναν 6 (external, vpn1, vpn2, vpn3, vpn4, vpn-isp) και σήμερα 10 (προστέθηκαν vpn21, vpn22, vpn23, vpn24 λόγω επέκτασης του ΣΥΖΕΥΞΙΣ).

Το setup είναι πιο περίπλοκο από το αρχικό, αλλά με λιγότερες από 100 γραμμές perl που βγάζουν τα κατάλληλα bind config files το αποτέλεσμα είναι φανταστικό και αποτελεί το μοναδικό setup που ξέρω μέχρι σήμερα που ξεφεύγει από το απλό internal/external view!

Advertisements
KατηγορίεςDNSΕτικέτες

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s