Azure Virtual Network NAT

Για λόγους ασφαλείας και διαχείρισης, συνηθίζουμε κατά τη υλοποίηση μιας υποδομής datacenter στο  Azure Cloud, να  ομαδοποιούμε τους Server  ανάλογα τη χρήση και την προσβασιμότητα . Ο λόγος είναι καθαρά για καλύτερη διαχείριση των κανόνων ασφαλείας σε επίπεδο δικτύου.

Για αυτό λοιπόν ξεχωρίζουμε τους Server, σε αυτούς που έχει πρόσβαση το κοινό μέσο public IP  και σε αυτούς που δουλεύουν από πίσω χωρίς να υπάρχει καμία πρόσβαση από «έξω» για το κοινό. Μία ενδεικτική τέτοια υποδομή είναι η παρακάτω

Υποδομή Azure

Στην προκειμένη περίπτωση όπως αυτή απεικονίζεται στο παραπάνω σχεδιάγραμμά  , οι server  που βρίσκονται στο subnet  του business tier δεν είναι προσβάσιμοι στο κοινό . Παρ’ όλα αυτά, δεν είναι «απομονωμένοι» από το internet  εφόσον είναι σημαντικός παράγοντας, δεδομένου ότι έχουν ανάγκες για επικοινωνία με άλλα συστήματα, πχ update servers  για το λειτουργικό κτλ. Σε αυτή την περίπτωση όλο το «outbound traffic» γίνεται μέσα από τη υποδομή του Azure .
Σε περιβάλλον υψηλής διαθεσιμότητας με τεχνολογίες docker ,auto scale  και τα λοιπά, στο subnet αυτό μπορούμε να έχουμε μεταβλητό πλήθος μηχανών σύμφωνα με τις ανάγκες μας .

Όλα ακούγονται ιδανικά μέχρι στιγμής . Τι γίνεται όταν έχουμε μία εφαρμογή η οποία εγκαθιστάται σε τυχαίο server  εκείνου του υποδικτύου και πρέπει να έρθει σε επικοινωνία με ένα τραπεζικό σύστημα ; Ερχόμαστε αντιμέτωποι με δύο βασικά προβλήματα, που προκύπτουν από το ότι η τράπεζα απαιτεί να της δώσεις την public IP, την οποία βλέπει όταν η εφαρμογή σου κάνει κάποιο αίτημα προς αυτή. Έτσι έχουμε να αντιμετωπίσουμε:

  1. Το outbound traffic, υλοποιείται από τη τρέχουσα υποδομή του Azure  και η IP  είναι «άγνωστη», δεδομένου ότι το πλήθος των διαθέσιμων από το datacenter  IP είναι μεγάλο.
  2. Ακόμα και αν δώσουμε Public IP στα μηχανήματα, δεδομένου ότι αυτά θα δημιουργούνται δυναμικά (autoscale)  ή η εφαρμογή σου μπορεί να τρέχει από οποιοδήποτε μηχάνημα, είναι αδύνατον να γνωρίζεις κάθε φορά τη σωστή IP  και να ενημερώνεις τον τραπεζικό οργανισμό .

Για αυτό το Microsoft Azure  έχει μία λύση, με το να σου προσφέρει Virtual Network NAT.

Με αυτό το εργαλείο μπορείς να ορίσεις σημείο από το οποίο το subnet  σου θα κάνει όλο το outbound traffic και μόνο. Εφαρμόζοντας το, όλα τα μηχανήματα που υπάρχουν στο subnet το οποίο ορίζεις στο Virtual Network NAT που φτιάχνεις, δρομολογούν το outbound traffic  από εκεί.
Επίσης μπορείς να συνδέσεις στο Virtual Network NAT  μία ή παραπάνω IP, καθώς και με μία νέα υπηρεσία του Azure, την public address prefix  να συνδέσει range από IP.
Έτσι η υποδομή μας

  1. αποκτά γνωστές IP για το Outbound traffic
  2. κρατάει τα επίπεδα ασφαλείας, δεδομένου ότι επιτρέπει μόνο outbound traffic

Περισσότερα, στα παρακάτω link

  1. Virtual Network NAT ( https://docs.microsoft.com/en-us/azure/virtual-network/nat-overview )
  2. Public IP address prefix ( https://docs.microsoft.com/en-us/azure/virtual-network/public-ip-address-prefix )