Γιατί η προσθήκη ενός προθέματος Azure VPN κόβει τη σύνδεση
Το απομακρυσμένο πρόθεμα ζει στην τοπική πύλη δικτύου, όχι στο VNet. Η αλλαγή του αφαιρεί τη σύνδεση· η πύλη μένει ανέγγιχτη.
Ένα πρόθεμα που προστίθεται στο λάθος αντικείμενο του Azure παράγει μια σύνδεση που αναφέρει Connected και δεν προωθεί τίποτα, και αυτό είναι το πιο ακριβό είδος λάθους σε αυτή τη στοίβα. Εμπλέκονται τρεις πόροι και μόνο ένας από αυτούς κατέχει τον απομακρυσμένο χώρο διευθύνσεων: η πύλη εικονικού δικτύου, η τοπική πύλη δικτύου που περιγράφει την απέναντι πλευρά και η σύνδεση που τις ενώνει. Το πρόθεμα ανήκει στην τοπική πύλη δικτύου, η σύνδεση πρέπει να ξαναχτιστεί για να τεθεί σε ισχύ η αλλαγή, και η ίδια η πύλη συνήθως μένει ανέγγιχτη. Η σειρά δεν είναι διαπραγματεύσιμη, και η πύλη εμφανίζει μόνο ένα μέρος της.
Τρία αντικείμενα, ένα από τα οποία κρατά το πρόθεμα
Ο χώρος διευθύνσεων του εικονικού δικτύου απαντά σε άλλο ερώτημα: τι ζει μέσα στο Azure. Η προσθήκη ενός απομακρυσμένου προθέματος εκεί δεν δρομολογεί κίνηση προς αυτό, απλώς διευρύνει τον χώρο που η πλατφόρμα πιστεύει ότι κατέχει, κάτι που μπορεί να συγκρουστεί με το πραγματικό απομακρυσμένο εύρος. Η τοπική πύλη δικτύου είναι το αντικείμενο που κρατά τα απομακρυσμένα προθέματα, και η σύνδεση αναφέρεται και στις δύο πύλες συν ένα προ-κοινόχρηστο κλειδί.
Υπάρχει και μια τρίτη επιφύλαξη που πρέπει να κρατήσετε. GatewaySubnet φιλοξενεί τις διαχειριζόμενες παρουσίες πύλης, πρέπει να φέρει ακριβώς αυτό το όνομα, και για SKU που δεν είναι Basic αναμένεται να είναι τουλάχιστον /27.
Τίποτα άλλο δεν ανήκει σε αυτό το υποδίκτυο, και μια αλλαγή προθέματος δεν έχει λόγο να το αγγίξει. Ένα πρόθεμα που λείπει από την τοπική πύλη δικτύου είναι μη προσβάσιμο ό,τι κι αν λέει η κατάσταση της σύνδεσης, επειδή η πύλη προσφέρει μόνο τα προθέματα για τα οποία ενημερώθηκε όταν διαπραγματεύεται τη σήραγγα. Γι' αυτό το σύμπτωμα είναι ασύμμετρο: η σήραγγα είναι ενεργή, ο συσχετισμός ασφαλείας είναι εντάξει, και ένα υποδίκτυο δεν εμφανίζεται ποτέ στους επιλογείς κίνησης. Αν λείπει ένα μόνο απομακρυσμένο εύρος ενώ οι γείτονες δουλεύουν, σταματήστε να κοιτάτε τη σήραγγα και διαβάστε την τοπική πύλη δικτύου.
Γιατί αφαιρείται η σύνδεση
Το αντικείμενο της σύνδεσης καθηλώνει τη διαπραγματευμένη διαμόρφωση για όλη τη διάρκεια ζωής του. Γι' αυτό η τεκμηριωμένη διαδικασία αφαιρεί πρώτα τη σύνδεση, ενημερώνει την τοπική πύλη δικτύου και μετά ξαναδημιουργεί τη σύνδεση με το ίδιο κοινόχρηστο κλειδί. Οι παρουσίες πύλης δεν ξαναχτίζονται για αλλαγή μόνο προθέματος, κάτι που περιορίζει τη διακοπή στην κατεδάφιση της σύνδεσης αντί για νέα ανάπτυξη της πύλης.
Αυτή η διαγραφή είναι η διακοπή, οπότε αντιμετωπίστε την ως προγραμματισμένη αλλαγή με αρχή και αναμενόμενο τέλος αντί για γρήγορη επεξεργασία. Στο PowerShell η ακολουθία είναι σύντομη: Remove-AzVirtualNetworkGatewayConnection -Name Conn1 -ResourceGroupName RG1 -Force, μετά Set-AzLocalNetworkGateway με το νέο -AddressPrefix πίνακα, μετά New-AzVirtualNetworkGatewayConnection με το ίδιο -SharedKey και τις ίδιες πύλες. Η επαναχρησιμοποίηση του κλειδιού έχει σημασία, γιατί η απέναντι πλευρά δεν επαναδιαμορφώνεται και ένα νέο κλειδί σημαίνει συντονισμό με όποιον κατέχει την απομακρυσμένη συσκευή. Αν άλλη ομάδα διαχειρίζεται αυτή τη συσκευή, συμφωνήστε το παράθυρο μαζί της πριν αφαιρέσετε οτιδήποτε.
Πότε πρέπει να ξαναχτιστεί η ίδια η πύλη
Μια δεύτερη απάντηση που κυκλοφορεί γύρω από αυτό το πρόβλημα λέει ότι η πύλη πρέπει να ξαναδημιουργηθεί και το κλειδί να ανταλλαχθεί ξανά. Αυτό είναι σωστό για ένα διαφορετικό σύνολο εργασιών: αλλαγή του τύπου πύλης ή του SKU, μετακίνηση μεταξύ point-to-site και site-to-site ή επισκευή πύλης της οποίας η ίδια η διαμόρφωση είναι λάθος. Αυτές οι αλλαγές όντως μεταβάλλουν τον πόρο της πύλης, οπότε το ξαναχτίσιμο είναι πραγματικά απαραίτητο.
Μια πύλη που δημιουργήθηκε για point-to-site δεν μπορεί απλώς να δεχτεί σύνδεση site-to-site. Η διαμόρφωση point-to-site πρέπει να αφαιρεθεί και η πύλη να ξαναδημιουργηθεί, κάτι που παράγει επίσης νέο κοινόχρηστο κλειδί και νέο πακέτο πελάτη.
Το πακέτο point-to-site αξίζει δική του σημείωση γιατί λήγει. Η πύλη δημιουργεί ένα αρχείο με σύντομη διάρκεια ζωής, οπότε η πρακτική προσέγγιση είναι να το κατεβάσετε μία φορά και να το διανείμετε μαζί με το πιστοποιητικό πελάτη αντί να στέλνετε στους χρήστες έναν σύνδεσμο πύλης που θα είναι νεκρός μέχρι να κάνουν κλικ. Για το ζήτημα του προθέματος, τίποτα από αυτά δεν ισχύει. Το να κρατάτε τις δύο διαδικασίες χωριστά είναι όλη η πειθαρχία: τα προθέματα είναι αλλαγή σε επίπεδο σύνδεσης, και οι ιδιότητες πύλης είναι αλλαγή σε επίπεδο πύλης.
Διαβάστε την κατάσταση, όχι το σήμα της πύλης
Διαβάστε την κατάσταση από τον πόρο αντί από το σήμα στην πύλη. Get-AzVirtualNetworkGatewayConnection -Name Conn1 -ResourceGroupName RG1 επιστρέφει ConnectionStatus μαζί με μετρητές byte εισόδου και εξόδου, και οι μετρητές είναι αυτό που ξεχωρίζει μια σήραγγα που είναι συνδεδεμένη και δεν μεταφέρει τίποτα από μία που δεν εγκαταστάθηκε ποτέ.
Οι μετρητές που σταματούν να αυξάνονται στη μέση μιας μεταφοράς δείχνουν τη διαδρομή και όχι την αυθεντικοποίηση. Οι μετρητές που δεν κινούνται καθόλου δείχνουν το σύνολο προθεμάτων ή το κοινόχρηστο κλειδί.
Οι χρονομετρητές εξηγούν μια κατηγορία αποσυνδέσεων που αποδίδονται λανθασμένα στο VPN. Ο εξισορροπητής φόρτου του Azure κλείνει τις ανενεργές ροές μετά το ρυθμισμένο όριο, τέσσερα λεπτά από προεπιλογή όταν γράφτηκαν αυτές οι σημειώσεις και ρυθμιζόμενο προς τα πάνω, οπότε ένας διακομιστής OpenVPN σε VM χωρίς keepalive μπορεί να πέφτει κάθε λίγα λεπτά ενώ όλα τα άλλα φαίνονται υγιή. Μια πύλη που η πλατφόρμα ανακυκλώνει μπορεί επίσης να διακόψει μια σύνδεση VNet με Web App, και αυτή η αποτυχία βρίσκεται στην πλευρά της πλατφόρμας και όχι σε διαμόρφωση πελάτη. Το σημάδι είναι αν η αποσύνδεση ακολουθεί σταθερό διάστημα ή μια αλλαγή που κάνατε.
Κρατήστε τα τρία αντικείμενα και τις τιμές τους σε ένα αρχείο: τον χώρο διευθύνσεων του εικονικού δικτύου, τη λίστα προθεμάτων της τοπικής πύλης δικτύου και την αναφορά στο κοινόχρηστο κλειδί της σύνδεσης. άρθρο PowerShell για site-to-site τεκμηριώνει τις εντολές της τοπικής πύλης δικτύου και τη σειρά στην οποία ανήκουν. Το να συγκρίνετε μια αλλαγή προθέματος με τη μνήμη είναι ο τρόπος με τον οποίο μια λειτουργική σήραγγα ξαναχτίζεται δύο φορές.
Στη συνέχεια επαληθεύστε με τη σειρά που αλλάξατε: η τοπική πύλη δικτύου εμφανίζει τη νέα λίστα προθεμάτων, η σύνδεση είναι ξανά Connected, και οι μετρητές κινούνται όταν στέλνετε κίνηση σε έναν κεντρικό υπολογιστή στο νέο εύρος. Αν το τρίτο βήμα αποτύχει ενώ τα δύο πρώτα περνούν, η απέναντι πλευρά δεν αποδέχτηκε τον νέο επιλογέα κίνησης και η απομακρυσμένη συσκευή χρειάζεται την αντίστοιχη καταχώριση φάσης 2. Αυτή είναι μια συζήτηση με το άλλο άκρο της σήραγγας, όχι άλλη μια αλλαγή στο Azure.