Γιατί ένα VM με συσκευή VPN στο Azure χάνει τη διαδρομή επιστροφής
Μια συσκευή VPN σε VM του Azure χρειάζεται να συμφωνούν το UDR, η σημαία προώθησης της κάρτας δικτύου και η πολιτική του επισκέπτη. Ακολουθήστε ένα αίτημα υποκαταστήματος μέσα από τα τρία.
Ένα VM του Azure που εκτελεί συσκευή VPN βρίσκεται μέσα σε δύο ανεξάρτητα συστήματα αποφάσεων. Το Azure αποφασίζει από πού φεύγει ένα πακέτο από ένα υποδίκτυο, χρησιμοποιώντας πίνακες δρομολόγησης και τη ρύθμιση προώθησης της κάρτας δικτύου. Το λειτουργικό σύστημα της ίδιας της συσκευής αποφασίζει αν θα προωθήσει το αποκρυπτογραφημένο πακέτο. Μια σήραγγα που ανεβαίνει τέλεια μπορεί να αποτύχει στο δεύτερο σύστημα, και εκεί σταματούν οι περισσότερες από αυτές τις εγκαταστάσεις.
Τρεις ιδιοκτήτες μιας διαδρομής
Πάρτε ένα δίκτυο υποκαταστήματος 192.168.50.0/24 και ένα υποδίκτυο φόρτου εργασίας 10.0.10.0/24, με τη συσκευή στη διεύθυνση 10.0.0.4 στο δικό του υποδίκτυο. Ένα μόνο αίτημα αγγίζει τρεις ξεχωριστές ρυθμίσεις.
| Decision | Configured in | How it fails |
|---|---|---|
| Where the workload subnet sends branch traffic | Azure route table entry | Traffic leaves the subnet and never reaches the appliance |
| Whether a NIC may accept traffic not addressed to it | Azure NIC IP forwarding | Packets arrive and disappear at the interface |
| Whether the guest forwards decrypted traffic | Guest OS or vendor appliance policy | Tunnel is up, workload is unreachable |
| Whether the workload accepts the source | NSG and service policy | Requests delivered, replies refused |
Κάθε γραμμή ανήκει σε διαφορετική ομάδα στις περισσότερες οργανώσεις, γι' αυτό αυτή η βλάβη φτάνει συνήθως ως τρία δελτία αντί για ένα.
Η διαδρομή που δείχνει στη συσκευή
Συνδέστε έναν πίνακα δρομολόγησης με το υποδίκτυο φόρτου εργασίας και δώστε στο πρόθεμα του υποκαταστήματος επόμενο άλμα τύπου Virtual appliance με 10.0.0.4 ως διεύθυνση. Χρησιμοποιήστε την προσβάσιμη ιδιωτική διεύθυνση της συσκευής, ποτέ το δημόσιο σημείο εισόδου VPN της. Το επόμενο άλμα πρέπει να είναι μια διεύθυνση που το υποδίκτυο φόρτου εργασίας μπορεί ήδη να φτάσει. Αφήστε την υπόλοιπη δρομολόγηση του φόρτου εργασίας ως έχει, εκτός αν έχετε αποφασίσει σκόπιμα να αντικαταστήσετε την προεπιλεγμένη διαδρομή.
Κρατήστε τη συσκευή στο δικό της υποδίκτυο και βεβαιωθείτε ότι η διαδρομή που στέλνει την κίνηση του υποκαταστήματος στη συσκευή δεν πιάνει και τη δική της εξερχόμενη διαδρομή. Ένας τέτοιος βρόχος μοιάζει με υγιή σήραγγα με μηδέν απαντήσεις, και είναι πολύ δυσάρεστο να τον αποσφαλματώσεις στις 2 τα ξημερώματα.
Η σημαία της κάρτας δικτύου που όλοι ξεχνούν
Το Azure έχει ρύθμιση προώθησης IP ανά κάρτα δικτύου, και είναι απενεργοποιημένη από προεπιλογή. Υπάρχει επειδή μια κάρτα που προωθεί λαμβάνει πακέτα διευθυνσιοδοτημένα σε κάτι άλλο, και η σιωπηλή απόρριψή τους είναι η ασφαλής προεπιλογή για όλους τους άλλους.
az network nic update --resource-group rg-net --name appliance-nic --ip-forwarding true την ενεργοποιεί για μία διεπαφή. Οι οδηγίες της Microsoft για την προώθηση στην κάρτα δικτύου απαιτούν τη ρύθμιση σε κάθε συνδεδεμένη κάρτα που προωθεί κίνηση, άρα μια συσκευή με μία κάρτα τη χρειάζεται ακόμη σε εκείνη την κάρτα.
Η σημαία δεν είναι διαδρομή και δεν είναι κανόνας τείχους προστασίας. Η ενεργοποίησή της δίνει άδεια και τίποτε άλλο.
Τι κάνει ο επισκέπτης με το αποκρυπτογραφημένο πακέτο
Μόλις τερματιστεί η σήραγγα, η δική της στοίβα της συσκευής παίρνει την επόμενη απόφαση. Σε επισκέπτη Linux, η προώθηση IPv4 είναι ρύθμιση χρόνου εκτέλεσης, και sysctl -w net.ipv4.ip_forward=1 διαρκεί μέχρι την επόμενη εκκίνηση. Αποθηκεύστε την σε ένα αρχείο κάτω από /etc/sysctl.d/ αντί γι' αυτό. Μια συσκευή κατασκευαστή έχει το δικό της ισοδύναμο, και οι οδηγίες Linux που επικολλούνται σε πλατφόρμα κατασκευαστή συνήθως δεν κάνουν απολύτως τίποτα.
Η πολιτική του τείχους προστασίας του επισκέπτη είναι πάλι ξεχωριστή, όπως και η ομάδα ασφαλείας δικτύου του φόρτου εργασίας. Η άδεια UDP 500 και 4500 προς τη δημόσια διεύθυνση του VM προστατεύει τη σήραγγα· δεν λέει τίποτα για το αν ένα αποκρυπτογραφημένο αίτημα υποκαταστήματος μπορεί να φτάσει σε θύρα φόρτου εργασίας.
Ακολουθήστε ένα αίτημα και την απάντησή του
Διαλέξτε μία επιτρεπόμενη ροή και ιχνηλατήστε την από άκρη σε άκρη. Το υποκατάστημα χρειάζεται διαδρομή για 10.0.10.0/24 μέσω της σύνδεσης τοποθεσίας, η συσκευή χρειάζεται μονοπάτι παράδοσης προς το υποδίκτυο φόρτου εργασίας, και το υποδίκτυο φόρτου εργασίας χρειάζεται διαδρομή επιστροφής προς το υποκατάστημα.
Αποφασίστε νωρίς αν το σχέδιο διατηρεί τη διεύθυνση προέλευσης του υποκαταστήματος ή τη μεταφράζει. Το NAT αλλάζει αυτό που βλέπει ο φόρτος εργασίας, οπότε οι κανόνες πρόσβασής του πρέπει να περιγράφουν το μοντέλο που επιλέξατε πραγματικά και όχι μια εικαζόμενη διεύθυνση πύλης.
Μια επιτυχημένη χειραψία αποδεικνύει έναν κρίκο αυτής της αλυσίδας. Η διαδρομή είναι πλήρης όταν η απάντηση επιστρέφει μέσα από την ίδια συσκευή και η πολιτική του ίδιου του φόρτου εργασίας το επιτρέπει.