Αλλαγή δημόσιας IP πύλης VPN Azure και μεταφορά συνδρομής
Οδηγός για την αλλαγή της δημόσιας IP μιας πύλης VPN και τη μεταφορά της μεταξύ συνδρομών, με απογραφή, επαναφορά και ελέγχους περιβάλλοντος που κρατούν τις σήραγγες σε λειτουργία.
Στο Azure τρία διαφορετικά αντικείμενα ονομάζονται διεύθυνση πύλης. Η ιδιωτική διεύθυνση εκχωρείται από το GatewaySubnet. Η δημόσια διεύθυνση είναι ξεχωριστός πόρος δημόσιας IP προς τον οποίο δείχνει η διαμόρφωση IP της πύλης. Η συνδρομή και το περιβάλλον cloud είναι το πλαίσιο με το οποίο το κέλυφός σας βρίσκει το ένα ή το άλλο. Αλλάξτε το ένα και τα άλλα δύο μένουν στη θέση τους, γι' αυτό η δουλειά με διευθύνσεις σταματά τόσο συχνά στη μέση.
Κάνω αυτές τις αλλαγές σε τέσσερα στάδια: απογραφή των αντικειμένων, απόφαση αν η δημόσια IP μεταφέρεται στην υπάρχουσα πύλη ή αν η πύλη ξαναχτίζεται, εφαρμογή της αλλαγής όσο η παλιά διεύθυνση είναι ακόμη διαθέσιμη, και μετά επαλήθευση κάθε σήραγγας από τα δύο άκρα πριν διαγραφεί οτιδήποτε. Το στάδιο που παραλείπεται είναι η απογραφή.
Ποιο από τα τρία αντικείμενα αλλάζετε πραγματικά
Ονομάστε το αντικείμενο πριν ανοίξετε την πύλη διαχείρισης. Μια πύλη VPN παίρνει την ιδιωτική της διεύθυνση από ένα υποδίκτυο που πρέπει να ονομάζεται ακριβώς GatewaySubnet, και το Azure την εκχωρεί από αυτό το πρόθεμα· δεν υπάρχει γενικό πεδίο για να καρφιτσωθεί. Η διεύθυνση φαίνεται σταθερή μόνο επειδή το υποδίκτυο είναι σταθερό. Αλλάξτε διευθύνσεις στο υποδίκτυο ή ξαναχτίστε την πύλη και μετακινείται μαζί τους.
Η δημόσια διεύθυνση είναι επεξεργάσιμη, αλλά οι κανόνες SKU αποφασίζουν αν η αλλαγή είναι νόμιμη. Μια πύλη Basic ταιριάζει με δυναμική δημόσια IP Basic, τα SKU VpnGw χρειάζονται στατική Standard, και μια πύλη με πλεονασμό ζώνης χρειάζεται δημόσια IP Standard με τις ίδιες ζώνες. Το λάθος SKU απορρίπτεται πριν πέσει σήραγγα.
| Object | Where it lives | What a change forces |
|---|---|---|
| Private address | GatewaySubnet prefix, assigned at deployment | Subnet resize or rebuild, then routes, NSGs and peer review |
| Public address | Public IP resource referenced by the IP configuration | Gateway reprovision, peer and allowlist edits, new client profiles |
| Subscription context | Your PowerShell or CLI session | Nothing in Azure, and it clears most not-found errors |
Απογραφή πριν κινηθεί οτιδήποτε
Αποδείξτε πρώτα τη συνδρομή, γιατί χωρίς αυτή η υπόλοιπη απογραφή είναι άχρηστη. Καταγράψτε την πύλη, τις διαμορφώσεις IP και κάθε σύνδεση που τερματίζει σε αυτήν, και κρατήστε την έξοδο δίπλα στο αρχείο αλλαγής.
Get-AzContext | Select-Object Subscription, Tenant, Environment
Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub |
Select-Object Name, Sku, EnableActiveActive, IpConfigurations
Get-AzVirtualNetworkGatewayConnection -ResourceGroupName rg-hub |
Select-Object Name, ConnectionStatus, ConnectionType
Τα ID πόρων μετρούν περισσότερο από τα ονόματα. Μια σύνδεση κρατά αναφορές στην πύλη και σε μια τοπική πύλη δικτύου, και αυτά τα ID εμφανίζονται σε σενάρια, ειδοποιήσεις και αναθέσεις πολιτικής που κανείς δεν θυμάται. Καταγράψτε και ό,τι βρίσκεται έξω από το Azure: το όνομα DNS που οδηγεί στη διεύθυνση, τη λίστα αδειών του συνεργάτη, το τείχος του υποκαταστήματος που καρφιτσώνει την παλιά IP.
Αλλαγή της δημόσιας IP στην πύλη που λειτουργεί
Δημιουργήστε πρώτα τη διεύθυνση αντικατάστασης, στην ίδια περιοχή και με το σύνολο ζωνών που ταιριάζει στην πύλη, και αφήστε τον παλιό πόρο στη θέση του. Έπειτα ξαναχτίστε τη διαμόρφωση IP και στείλτε την ενημέρωση με μία κλήση. Η κλήση αντικαθιστά ολόκληρη τη συλλογή διαμορφώσεων, άρα μια ενεργή-ενεργή πύλη χρειάζεται και τις δύο, αλλιώς κρατάτε μία σήραγγα και χάνετε την άλλη.
$gw = Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub
$pip = New-AzPublicIpAddress -Name pip-gw-hub-2 -ResourceGroupName rg-hub `
-Location westeurope -AllocationMethod Static -Sku Standard
$conf = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 `
-SubnetId $gw.IpConfigurations[0].Subnet.Id -PublicIpAddressId $pip.Id
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -IpConfigurations $conf
Οι σήραγγες πέφτουν όσο η πύλη επαναπρομηθεύεται. Η απομακρυσμένη πλευρά χρειάζεται τον προγραμματισμό: ένα τείχος του συνεργάτη συνεχίζει να προσφέρει την παλιά διεύθυνση μέχρι να το επεξεργαστεί κάποιος, και μια σύνδεση της οποίας το απομακρυσμένο άκρο περιμένει την προηγούμενη IP μένει κάτω όσο υγιές κι αν φαίνεται το Azure. Χαμηλώστε το TTL του DNS πριν το παράθυρο.
Οι πελάτες σημείου-σε-τοποθεσία χρειάζονται νέο προφίλ, γιατί το πακέτο που κατεβάζεται μεταφέρει το τελικό σημείο. Ένα προσαρμοσμένο όνομα DNS μπροστά από την πύλη σας γλιτώνει από την αναδιανομή: κρατήστε το όνομα, αλλάξτε την εγγραφή.
Μεταφορά της πύλης σε άλλη συνδρομή
Η μεταφορά πόρων μετακινεί ένα σύνολο, και η πύλη μόνη της είναι το λιγότερο χρήσιμο μέλος του. Το εικονικό δίκτυο, οι πόροι δημόσιας IP, οι τοπικές πύλες δικτύου και οι συνδέσεις ταξιδεύουν μαζί επειδή το καθένα κρατά αναφορά σε άλλο. Η συνδρομή προορισμού πρέπει να βρίσκεται στον ίδιο μισθωτή, το Microsoft.Network πρέπει να είναι καταχωρισμένο εκεί, και χρειάζεστε δικαίωμα εγγραφής και στις δύο πλευρές.
Η επικύρωση τρέχει πριν αλλάξει οτιδήποτε, άρα μια απορριφθείσα μεταφορά αφήνει τους πόρους στη θέση τους. Γι' αυτό η μεταφορά αξίζει μια προσπάθεια πριν από το ξαναχτίσιμο: μια επιτυχημένη μεταφορά παίρνει μαζί τη δημόσια IP, ώστε οι ομότιμοι και οι λίστες αδειών να συνεχίζουν να δουλεύουν, ενώ μια ξαναχτισμένη πύλη σπάνια επιστρέφει την ίδια διεύθυνση.
az resource move --destination-group rg-hub `
--destination-subscription-id 00000000-0000-0000-0000-000000000000 `
--ids /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub
Διαβάστε μια αποτυχία επικύρωσης αντί να την επαναλάβετε. Συνήθεις αιτίες είναι μια εξάρτηση που έμεινε πίσω, τύπος πόρου που δεν μεταφέρεται ή κλείδωμα σε μία από τις ομάδες πόρων. Αν η μεταφορά είναι αδύνατη, ξαναχτίστε στον προορισμό και αλλάξτε: επιβεβαιώστε δρομολόγηση και έλεγχο ταυτότητας από δοκιμαστικό υποδίκτυο, σταματήστε τις παλιές συνδέσεις αντί να τις διαγράψετε, μετά αφαιρέστε την παλιά διαδρομή σε επόμενο παράθυρο.
Όταν η πύλη φαίνεται χαμένη, ελέγξτε το πλαίσιο
Το σφάλμα δεν βρέθηκε είναι συνήθως σφάλμα εμβέλειας. Λογαριασμός με πολλές συνδρομές στρέφει ένα cmdlet στη λάθος, και το μήνυμα κατηγορεί τον πόρο. Αναζητήστε το αντικείμενο με το πλήρες ID πόρου: το ID κουβαλά τη δική του συνδρομή, οπότε αν επιλυθεί, δεν λείπει τίποτα και το προεπιλεγμένο πλαίσιό σας είναι λάθος.
Δύο ακόμη αναντιστοιχίες διαβάζονται το ίδιο. Μια πύλη εμπορικού cloud δεν υπάρχει σε συνεδρία που στοχεύει κυβερνητικό ή κινεζικό περιβάλλον, και παλαιότερες εκδόσεις μονάδων χάνουν σχήματα πόρων που το API επιστρέφει ήδη. Καρφιτσώστε τη συνδρομή, ταιριάξτε το περιβάλλον, μετά ανοίξτε υπόθεση.
Set-AzContext -SubscriptionId 11111111-1111-1111-1111-111111111111
Get-AzResource -ResourceId /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub
Επαληθεύστε από τα δύο άκρα πριν τον καθαρισμό
Το συνδεδεμένο είναι κατάσταση, όχι απόδειξη. Ελέγξτε την κατάσταση σήραγγας ανά σύνδεση, την κατάσταση ομότιμου BGP αν χρησιμοποιείτε δυναμική δρομολόγηση, και τις ενεργές διαδρομές σε υποδίκτυο φόρτου. Έπειτα περάστε ένα πραγματικό αίτημα μέσα από εφαρμογή που εξαρτάται από τη σήραγγα. Μια σύνδεση μπορεί να δηλώνει συνδεδεμένη ενώ το πρόθεμα που χρειάζεστε λείπει από τον πίνακα διαδρομών.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Κρατήστε την παλιά δημόσια IP αποσυνδεδεμένη αντί διαγραμμένη μέχρι να κλείσει το παράθυρο επιστροφής, και γράψτε τις αλλαγές σε ομότιμο και τείχος ώστε να αντιστραφούν με σειρά.
- Πλαίσιο καρφιτσωμένο στη συνδρομή που κατέχει την πύλη
- Παλιά δημόσια IP διατηρημένη, οι εξαρτήσεις της καταγεγραμμένες
- Κάθε σύνδεση πράσινη και ένα πραγματικό αίτημα μέσα από αυτήν
- Χρήστες σημείου-σε-τοποθεσία μεταφέρθηκαν στο ανανεωμένο προφίλ
- Εγγραφή DNS άλλαξε και η προηγούμενη τιμή της καταγράφηκε