Εικονική μηχανή GCP με πολλές NIC: γιατί οι απαντήσεις φεύγουν από τη λάθος διεπαφή
Οι διαδρομές στο cloud και οι διαδρομές στον επισκέπτη είναι δύο αποφάσεις. Περάστε ένα αίτημα υποκαταστήματος και ένα αίτημα διαδικτύου από τις δύο NIC πριν προσθέσετε κανόνες πολιτικής.
Η προσάρτηση δεύτερης διεπαφής σε εικονική μηχανή του Compute Engine της δίνει άλλη μια σύνδεση δικτύου, όχι συμμετρική διαδρομή επιστροφής. Ο επισκέπτης εξακολουθεί να επιλέγει διεπαφή και διεύθυνση πηγής από τις δικές του διαδρομές και κανόνες. Στη συνέχεια το Google Cloud εφαρμόζει δρομολόγηση VPC και πολιτική τείχους προστασίας γύρω από τη διεπαφή από την οποία έφυγε το πακέτο. Όταν αυτές οι δύο αποφάσεις διαφωνούν, τα αιτήματα φτάνουν στη μία NIC και οι απαντήσεις φεύγουν από την άλλη, και το υποκατάστημα βλέπει μια μισάνοιχτη συνομιλία.
Περπατήστε τη διαδρομή σε πέντε βήματα και η ασυμφωνία θα φανεί πριν γράψετε κανόνα πολιτικής.
Βήμα 1: αντιστοιχίστε τις NIC του cloud με τις συσκευές του επισκέπτη
Το cloud ονομάζει τις διεπαφές nic0, nic1 και ούτω καθεξής, ενώ ο επισκέπτης βλέπει ονόματα συσκευών που δεν χρειάζεται να ταιριάζουν. Λύστε την αντιστοίχιση από τα μεταδεδομένα του στιγμιοτύπου ή από τη διεύθυνση της ίδιας της διεπαφής πριν από οτιδήποτε άλλο. Η συνηθισμένη προεπιλεγμένη διαδρομή που παρέχει το DHCP συνδέεται με το nic0, γι’ αυτό η διαδρομή προς το διαδίκτυο κερδίζει τόσο συχνά κατά λάθος. Το να γράφετε πολιτική με βάση ένα μαντεμένο όνομα συσκευής είναι ο τρόπος με τον οποίο ένας σωστός κανόνας καταλήγει στη λάθος διεπαφή.
Καταγράψτε διευθύνσεις, ονόματα συσκευών και το VPC στο οποίο ανήκει καθένα. Αυτός ο χάρτης τριών στηλών είναι η είσοδος για κάθε επόμενο βήμα.
Βήμα 2: ονομάστε τις δύο αποφάσεις δρομολόγησης
Η πρώτη απόφαση ανήκει στον επισκέπτη: ποια διεπαφή και ποια διεύθυνση πηγής για αυτό το πακέτο. Η δεύτερη ανήκει στο cloud: τι επιτρέπουν οι διαδρομές του VPC και η πολιτική τείχους προστασίας γύρω από αυτή τη διεπαφή.
Μια διαδρομή ορατή στο VPC που βλέπει το VPN δεν γίνεται διαδρομή επισκέπτη που επιλέγει αυτή τη NIC. Η διαδρομή του cloud περιγράφει τι μπορεί να παραδώσει το δίκτυο, ενώ η διαδρομή του επισκέπτη αποφασίζει τι κάνει το πακέτο.
Βήμα 3: επιλέξτε πολιτική διαδρομής επιστροφής
Για ένα μικρό, σταθερό σύνολο προθεμάτων υποκαταστήματος, οι ρητές διαδρομές προορισμού στον επισκέπτη είναι η απλούστερη έκφραση: οι απαντήσεις σε αυτά τα προθέματα φεύγουν από τη διεπαφή που βλέπει το VPN. Όταν πολλές υπηρεσίες χρησιμοποιούν σκόπιμα διαφορετικές τοπικές διευθύνσεις πηγής, κανόνες με βάση την πηγή που επιλέγουν πίνακα ανά διεπαφή κρατούν κάθε απάντηση στο σωστό πλαίσιο. Η τεκμηρίωση για πολλαπλές διεπαφές περιγράφει την ονομασία των NIC και τη συμπεριφορά της προεπιλεγμένης διαδρομής στην οποία βασίζονται αυτά τα σχέδια.
Κάθε πίνακας χρειάζεται έγκυρες συνδεδεμένες διαδρομές και επόμενα άλματα, καθώς και τους προορισμούς για τους οποίους θα ερωτηθεί. Ένας κανόνας που δείχνει σε ημιτελή πίνακα δεν είναι σχέδιο διαδρομής επιστροφής. Χρησιμοποιήστε την τεκμηριωμένη πύλη για αυτή τη NIC αντί να επινοήσετε πύλη Ethernet από την όψη του υποδικτύου.
Βήμα 4: ελέγξτε τα φίλτρα του ίδιου του επισκέπτη
Ελέγξτε πού ακούει ο διακομιστής και ποια τοπική πηγή φέρει η απάντηση. Ένας ακροατής που δέχεται όλες τις διευθύνσεις δεν υπερισχύει της πολιτικής δρομολόγησης, οπότε η δέσμευση σε όλες τις διευθύνσεις δεν αλλάζει τίποτα ως προς τη διεπαφή από την οποία φεύγει η απάντηση.
Στο Linux, εξετάστε την επικύρωση αντίστροφης διαδρομής έναντι του προβλεπόμενου σχεδίου. Η καθολική απενεργοποίησή της ως πρώτο βήμα ανταλλάσσει ένα σφάλμα δρομολόγησης με έκθεση σε πλαστογράφηση και κρύβει την ασυμμετρία που προσπαθούσατε να βρείτε.
Βήμα 5: δοκιμάστε μία ροή ανά διαδρομή
Επαληθεύστε χωριστά ένα εγκεκριμένο αίτημα υποκαταστήματος και ένα άσχετο αίτημα διαδικτύου, το καθένα με την πραγματική πηγή και τον προορισμό του. Καταγράψτε και στις δύο διεπαφές όταν μπορείτε, γιατί η χρήσιμη απόδειξη είναι ποια διεπαφή μετέφερε την απάντηση. Στη συνέχεια επιβεβαιώστε ότι η πολιτική στην πλευρά του cloud σεβάστηκε τη διαδρομή που σχεδιάσατε. Ένα επιτυχημένο αίτημα αποδεικνύει μία ροή, όχι ένα συμμετρικό σχέδιο.
Κρατήστε τις δύο δοκιμές χωριστά στις σημειώσεις σας, αφού χρησιμοποιούν διαφορετικές διαδρομές και διαφορετικούς κανόνες τείχους προστασίας.
Τι δεν σας δίνει μια δεύτερη NIC
Μια δεύτερη διεπαφή προσθέτει σύνδεση δικτύου και άλλη μια διεύθυνση. Δεν προσθέτει αυτόματη συμμετρική δρομολόγηση και δεν παρακάμπτει την πολιτική τείχους προστασίας. Το να τη θεωρείτε διόρθωση δρομολόγησης είναι ο λόγος που τα σχέδια με πολλές NIC συσσωρεύουν κανόνες που κανείς δεν μπορεί να εξηγήσει αργότερα.
Αν η εικονική μηχανή πρέπει να προωθεί την κίνηση άλλων μηχανημάτων, σχεδιάστε αυτόν τον ρόλο δρομολογητή ρητά, συμπεριλαμβανομένης της ρύθμισης cloud που επιτρέπει την προώθηση και των φίλτρων επισκέπτη που τη συνοδεύουν.