E VPN-Server op eng nei ëffentlech IP plënneren: wat fir d'éischt ze kontrolléieren
D'Auswiesselen um selwechte Fleck an de parallele Cutover briechen op verschiddene Plazen. Gitt Konfiguratiounen, NAT an Zertifikater duerch, an da kuckt wéi all Client den Numm opléist.
Eng Adress nei zouzedeelen dauert eng Minutt. D'Woch duerno ass d'Plaz wou de Plënneren bricht, a selten do wou d'Konsole vum Ubieder et suggeréiert. Eng nei ëffentlech IP gëtt op véier Plazen ernimmt: de Socket op deem den Daemon lauschtert, de Vertrauensanker deen d'Clienten iwwerpréiwen, all Regel déi déi al Adress nennt, an den DNS-Record deen se verbënnt. Zwee Plënneren ausgesi vun engem Kontrollpanel identesch, awer behuele sech komplett anescht: d'Adress nei zouzedeelen op der Maschinn déi Dir bedreift, oder en zweeten Endpunkt opzestellen an d'Clienten dohin ze plënneren. D'Kontrollen hei drënner setzen déi bëlleg Feeler fir d'éischt, an all Abschnitt seet fir wéi eng Plënneren et gëllt.
Auswiesselen um selwechte Fleck a parallele Cutover sinn ënnerschiddlech Aarbechten
D'Auswiesselen um selwechte Fleck behält den Host, d'Schlësselen, d'Routentabell an d'Benotzerlëscht; just d'Adress ännert sech. Dat mécht eng Neizoudeelung vun enger schwiewender IP, a bei verschiddenen Ubieder merkt de Gaascht näischt, well d'Iwwersetzung virun der Instanz geschitt. En Neibau oder eng Neizoudeelung duerch den Ubieder ass méi haart: de Gaascht gesäit d'Ännerung, an alles wat den ale Wäert am Cache hat, léiert et am selwechte Moment.
En parallelen Endpunkt ass en zweeten Host dee mengselwecht Aarbecht mécht. Baut en, testt en mat engem Profil, a loosst den ale äntweren bis den neien sech op engem richtege Wee bewisen huet. De Präis ass den Zoustand. Ouni gedeelte Peer-Andräg, Widderruffer a Logging hutt Dir zwee Netzer déi zoufälleg en Numm deelen.
| Question | In-place swap | Parallel endpoint |
|---|---|---|
| Rollback in one step? | Only if you can get the old address back | Point DNS back; old host still up |
| Blast radius | Every client at once | Only the clients you moved |
| Best when | The address is yours to reassign | The old address is gone for good |
Fannt all Plaz wou déi al Adress opgeschriwwen ass
Fänkt mat enger Text-Sich un, well Konfiguratiounsdateien sinn déi einfach Halschent. Sicht an der Daemon-Konfiguratioun, an de Firewall-Fragmenter, an den Iwwerwaachungsziler an an all generéierte Client-Bundle op der Disk. Huelt d'IPv6-Adress mat wann Dir eng publizéiert; eng Plënneren déi just dem A-Record follegt, léisst Dual-Stack-Clienten um ale Wee.
OLD=203.0.113.10
grep -RIn -- "$OLD" /etc /root
ss -lunpt | grep -F "$OLD"
nft list ruleset | grep -F "$OLD"
iptables-save | grep -F "$OLD"
wg show all endpoints
Da gitt de Kernel duerch, well en lafende System hält d'Adress op Plazen déi keen Datei nennt. Eng statesch Quell-NAT-Regel, en ipset-Andrag, eng Bind-Adress an en conntrack-Andrag iwwerliewen d'Konfiguratiounsännerung déi se ewechgeholl huet, an etlech iwwerliewen och en Neistart well se aus engem gespäicherte Reegelset zeréckkomm sinn. Eng Schicht héich erop sinn d'Sécherheetsgruppe vum Ubieder, d'Ziler vum Laaschtverdeeler an d'Iwwerwaachungskontrollen guer net op Ärem Dateiesystem.
Schreift d'Inventar op ier Dir eppes ännert; et déngt och als Rollback-Skript.
Hostname-Clienten erholen sech; Literal-IP-Clienten a stëll
Wann d'Clienten de Server iwwer den Hostname erreechen, ass de Cutover haaptsächlech en DNS-Problem, an den TTL deen Dir gëschter gesat hutt entscheet wéi schlëmm et gëtt. Resolveren cacheen, Stub-Resolveren cacheen nach eng Kéier, a vill Clienten sichen den Numm just bei enger neier Verbindung, dofir hält en etabléierten Tunnel seng Startadress.
Wann den Endpunkt eng literal Adress ass, gëtt näischt nei opgeléist a näischt loggt eng Plainte. De WireGuard späichert eng opgeléist Socket-Adress: Endpoint = vpn.example.net:51820 gëtt eng IP am Moment wou wg-quick up leeft a bleift déi IP bis Dir se ännert. OpenVPN ass méi noloosseg: et léist den remote-Hostname beim Verbannen op a probéiert, mat resolv-retry infinite, den DNS nach eng Kéier beim Neiverbannen. Mat enger literal IP ruffe béid weider eng Maschinn un déi et net méi gëtt.
Wat d'Leit irritéiert ass d'Spigelbild. En Client deen schonn op déi nei Adress weist, während den ale Lauschterer nach äntwert, besteet all Test deen Dir vun Ärem eegenen Dësch aus fuert. Ech gouf och domadder gefoolt: den neien Endpunkt koum op engem Telefon beim éischte Versuch erop, an en Client mat engem veralterten Profil koum eréischt zum Virschein wéi den ale Lauschterer vill méi spéit ausgeschalt gouf.
Vertrauen plënnert net mat der Adress
De WireGuard trennt Identitéit vun Erreechbarkeet, wat eng Adressplënneren bal gratis mécht. Peeren gi mat engem ëffentleche Schlëssel identifizéiert, an den Endpunkt ass just do wou d'Paketen am Moment higinn; en Host aktualiséiert den Endpunkt vun engem Peer aus der Quelladress vum leschte authentifizéierte Paket. En idle Peer brauch awer nach ëmmer e Grond fir mat der neier Plaz ze schwätzen, an en léiert d'Adress eréischt wann seng Sessioun altert an d'Handshake-Reträen op enger siichtbarer Plaz fehlschloen. Den WireGuard-Schnellstart deckt den Endpunkt-Feld of.
TLS-baséiert Serveren sinn de Géigendeel. Den Zertifikat ass un en Numm gebonnen, an en Client deen eng Adress wielt vergläicht wat hie gewielt huet mat den alternativen Nimm vum Sujet. Verbënnt Iech iwwer IP mat engem Zertifikat deen nëmmen en DNS-SAN dréit an d'Iwwerpréiwung schloe fehl: den Numm deen de Client benotzt huet ass net am Zertifikat. Neiausgab mat engem IP-SAN reparéiert dee eenzel Verbindung a mécht déi nächst Plënneren schlëmmer. En Hostname am Profil ze behalen an verify-x509-name op senger Plaz ze loossen hält d'Kontroll strikt während d'Adress drënner sech ännert.
Da kontrolléiert u wiem den Daemon gebonnen ass; e Socket deen op déi al Adress fixéiert ass schloe stëll fehl. En OpenVPN-Server dee mat local 203.0.113.10 gestart gëtt, refuséiert eropzekommen soubal déi Adress fort ass, während en Lauschterer op 0.0.0.0 d'Ännerung gratis suivéiert. NAT deelt sech d'selwecht: MASQUERADE follegt wéi eng Adress d'Maschinn elo huet, an en stateschen SNAT --to-source 203.0.113.10 schreift weider op eng Adress ëm déi Dir net méi besëtzt, dofir verschwënnt de Réckverkéier. Wann déi nei Adress mat engem aneren Upstream-Gateway kënnt, kontrolléiert rp_filter: Reverse-Path-Filterung verwërft Réckverkéier deen op engem Interface ukommt deen de Kernel net erwaart huet.
D'Reiefolleg vum Cutover an d'Beweiser datt et funktionéiert huet
Setzt den TTL en Dag virdrun erof, stellt den neien Lauschterer op, a bewise mat engem Profil deen nëmmen Dir hutt. En Test vun bannen aus dem selwechte Netzwierk beweist bal näischt, also benotzt en Telefon um Mobilnetz a testt eppes wat den Tunnel soll droen amplaz vun engem Ping op den Endpunkt.
Iwwerwaacht béid Adressen duerch d'Fënster. wg show all latest-handshakes um neien Host, oder d'OpenVPN-Statusdatei, seet Iech wéi vill Peeren tatsächlech geplënnert sinn. Wann den neien Endpunkt déi erwaart Peeren huet an den ale just Nokommer, pensionéiert den ale Lauschterer, läscht déi al NAT-Regel a huelt d'Adress aus der Firewall vum Ubieder. Den ale Lauschterer ewechzehuelen ass de Schrëtt deen iwwersprongen gëtt, an en schléisst d'Lück wou en altert Profil nach dat aalt Netzwierk erreecht.
Bestëmmt den Rollback-Trigger schrëftlech ier Dir ufänkt: wann den neien Endpunkt nom ofgemaachte Fënster keen Handshake vun engem eenzegen echte Client huet, restauréiert déi al Adress a stoppt d'Verdeele vu Profilen. Fuert d'Sich duerno nach eng Kéier aus a bestätegt datt keen Lauschterer nach un eng pensionéiert Adress gebonnen ass. Zwee Saachen ginn an déi nächst Plënneren iwwer: en Hostname am Clientprofil sou datt déi nächst Ännerung eng DNS-Editioun ass, an d'Inventar dat nieft den Erhuelungsnotizen vum Server gespäichert ass.