Tmexxi server VPN għal IP pubbliku ġdid: x'għandek tiċċekkja l-ewwel
Is-sostituzzjoni fil-post u l-qbiż parallel jinqasmu f'postijiet differenti. Erġa' ara l-konfigurazzjonijiet, in-NAT u ċ-ċertifikati, imbagħad iċċekkja kif kull klijent isolvi l-isem.
L-assenjazzjoni mill-ġdid ta' indirizz tieħu minuta. Il-ġimgħa ta' wara hija l-post fejn il-moviment jinqasam, u rari fejn tissuġġerixxi l-console tal-fornitur. IP pubbliku ġdid jiġi riferut f'erba' postijiet: is-socket li fuqha jisma' d-daemon, l-ankra tal-fiduċja li jivverifikaw il-klijenti, kull regola li ssemmi l-indirizz il-qadim, u r-rekord DNS li jgħaqqadhom. Żewġ movimenti jidhru identiċi minn pannell ta' kontroll iżda jġibu ruħhom għal kollox differenti: l-assenjazzjoni mill-ġdid tal-indirizz fuq il-magna li tmexxi, jew it-tqegħid ta' tieni endpoint u t-tmexxija tal-klijenti lejh. Il-verifiki hawn taħt iqiegħdu l-ħsarat irħas l-ewwel, u kull taqsima tgħid liema moviment japplika għaliha.
Is-sostituzzjoni fil-post u l-qbiż parallel huma xogħlijiet differenti
Is-sostituzzjoni fil-post iżżomm il-host, iċ-ċwievet, it-tabella tar-routing u l-lista tal-utenti; jinbidel biss l-indirizz. Hekk tagħmel assenjazzjoni mill-ġdid ta' IP għaddej, u f'ħafna fornituri l-mistieden lanqas biss jinduna, għax it-traduzzjoni ssir quddiem l-istanza. Bini mill-ġdid jew assenjazzjoni mill-ġdid mill-fornitur hija iebsa aktar: il-mistieden jara l-bidla, u kull ma kien qed iżomm il-valur il-qadim fil-cache jitgħallimha fl-istess mument.
Endpoint parallel huwa tieni host li jagħmel l-istess xogħol. Ibnieh, ippruvah b'profil wieħed, u ħalli l-qadim iwieġeb sakemm il-ġdid juri ruħu fuq mogħdija reali. Il-prezz huwa l-istat. Mingħajr entrati peer maqsuma, revoki u reġistrazzjoni, għandek żewġ netwerks li jinqasmu isem b'kumbinazzjoni.
| 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 |
Sib kull post fejn huwa miktub l-indirizz il-qadim
Ibda bi skanjar tat-test, għax il-fajls tal-konfigurazzjoni huma n-nofs faċli. Fittex fil-konfigurazzjoni tad-daemon, fil-frammenti tal-firewall, fil-miri tal-monitoraġġ u fi kwalunkwe bundle tal-klijent iġġenerat fuq id-diska. Inkludi l-indirizz IPv6 jekk tippubblika wieħed; moviment li jsegwi biss ir-rekord A iħalli l-klijenti b'doppja stack fuq il-mogħdija l-qadima.
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
Imbagħad skanna l-kernel, għax sistema li taħdem iżżomm l-indirizz f'postijiet li l-ebda fajl ma jsemmihom. Regola NAT tas-sors statika, entrata ipset, indirizz bind u entrata conntrack jgħixu aktar mill-editjar tal-konfigurazzjoni li neħħiehom, u xi wħud jgħixu wkoll wara restart għax ġew lura minn sett ta' regoli salvat. Safa waħda 'l fuq, il-gruppi tas-sigurtà tal-fornitur, il-miri tal-load balancer u l-verifiki tal-monitoraġġ mhumiex affattu fuq is-sistema tal-fajls tiegħek.
Ikteb l-inventarju qabel ma tbiddel xi ħaġa; jaqdi wkoll bħala skript tar-rollback.
Il-klijenti bl-isem tal-host jirkupraw; il-klijenti b'IP litterali jsikktu
Jekk il-klijenti jilħqu s-server bl-isem tal-host, il-qbiż huwa l-aktar problema DNS, u t-TTL li stabbilixxejt ilbieraħ jiddeċiedi kemm se jkun ħażin. Ir-resolvers jaħżnu l-cache, ir-resolvers stub jerġgħu jaħżnu, u ħafna klijenti jfittxu l-isem biss fuq konnessjoni ġdida, għalhekk tunnel stabbilit iżomm l-indirizz tal-bidu tiegħu.
Jekk l-endpoint huwa indirizz litterali, xejn ma jiġi riżolt mill-ġdid u xejn ma jirreġistra lment. WireGuard jaħżen indirizz tas-socket riżolt: Endpoint = vpn.example.net:51820 isir IP fil-mument li jitħaddem wg-quick up u jibqa' dak l-IP sakemm ma tibdilx. OpenVPN huwa aktar tolleranti: jirriżolvi l-isem tal-host remote fil-ħin tal-konnessjoni u, b'resolv-retry infinite, jerġa' jipprova DNS meta jerġa' jgħaqqad. B'IP litterali, it-tnejn ikomplu jċemplu magna li ma għadhiex teżisti.
Dak li jqarraq lin-nies huwa l-immaġni tal-mera. Klijent li diġà qed jipponta lejn l-indirizz il-ġdid, waqt li s-semmiegħ il-qadim għadu jwieġeb, jgħaddi minn kull test li tagħmel mill-iskrivanija tiegħek. Ġejt ivvintat hekk ukoll: l-endpoint il-ġdid tela' fuq telefon mill-ewwel prova, u klijent b'profil qadim deher biss meta s-semmiegħ il-qadim intefa ħafna aktar tard.
Il-fiduċja ma tiċċaqlaqx mal-indirizz
WireGuard jifred l-identità mill-aċċessibilità, u dan jagħmel il-moviment tal-indirizz kważi b'xejn. Il-peers jiġu identifikati b'ċavetta pubblika, u l-endpoint huwa biss fejn il-pakketti jmorru bħalissa; host jaġġorna l-endpoint ta' peer mill-indirizz tas-sors tal-aħħar pakkett awtentikat. Peer inattiv xorta jeħtieġ raġuni biex jitkellem mal-post il-ġdid, u jitgħallem l-indirizz biss meta s-sessjoni tiegħu tixjieħ u l-attenti mill-ġdid ta' handshake ifallu f'post viżibbli. Il-bidu mgħaġġel ta' WireGuard ikopri l-qasam endpoint.
Is-servers ibbażati fuq TLS huma l-każ oppost. Iċ-ċertifikat huwa marbut ma' isem, u klijent li jċempel indirizz iqabbel dak li ċempel man-nomi alternattivi tas-suġġett. Qabbad permezz ta' IP ma' ċertifikat li jġorr biss SAN DNS u l-verifika tfalli: l-isem li uża l-klijent mhuwiex fiċ-ċertifikat. Ħruġ mill-ġdid b'SAN IP jissewwi dik il-konnessjoni waħda u jagħmel il-moviment li jmiss agħar. Iż-żamma ta' isem tal-host fil-profil u t-tħalli ta' verify-x509-name f'postu żżomm il-verifika stretta waqt li l-indirizz taħtu jinbidel.
Imbagħad iċċekkja ma' xiex huwa marbut id-daemon; socket imwaħħal mal-indirizz il-qadim ifalli bil-kwiet. Server OpenVPN li jinbeda b'local 203.0.113.10 jirrifjuta li jitla' hekk kif dak l-indirizz jgħib, waqt li semmiegħ fuq 0.0.0.0 isegwi l-bidla b'xejn. NAT jinqasam bl-istess mod: MASQUERADE isegwi kwalunkwe indirizz li għandha l-magna issa, u SNAT --to-source 203.0.113.10 statiku jibqa' jikteb mill-ġdid lejn indirizz li m'għandekx aktar, u għalhekk it-traffiku tar-ritorn jisparixxi. Jekk l-indirizz il-ġdid jiġi b'gateway upstream differenti, iċċekkja rp_filter: il-filtrazzjoni tal-mogħdija maqluba twarrab traffiku tar-ritorn li jasal fuq interface li l-kernel ma stenna.
L-ordni tal-qbiż u l-evidenza li ħadem
Niżżel it-TTL jum qabel, waqqaf is-semmiegħ il-ġdid, u ppruvah b'profil li għandek biss int. Test minn ġewwa l-istess netwerk kważi ma jipprova xejn, għalhekk uża telefon fuq iċ-ċellulari u pprova xi ħaġa li t-tunnel għandu jġorr minflok ping lejn l-endpoint.
Osserva ż-żewġ indirizzi matul it-tieqa. wg show all latest-handshakes fuq il-host il-ġdid, jew il-fajl tal-istat ta' OpenVPN, jgħidlek kemm-il peer effettivament marru. Meta l-endpoint il-ġdid ikollu l-peers li tistenna u l-qadim ikollu biss dawk li baqgħu lura, irtira s-semmiegħ il-qadim, neħħi r-regola NAT skaduta u neħħi l-indirizz mill-firewall tal-fornitur. It-tneħħija tas-semmiegħ il-qadim hija l-pass li jinqabeż, u tagħlaq il-vojt fejn profil skadut għadu jasal għan-netwerk il-qadim.
Issettja bil-miktub il-trigger tar-rollback qabel tibda: jekk l-endpoint il-ġdid ma jkollux handshake minn ebda klijent reali wara t-tieqa miftiehma, erġa' stabbilixxi l-indirizz il-qadim u waqqaf it-tqassim tal-profiles. Erġa' ħaddem l-iskannjar wara u kkonferma li ebda semmiegħ mhuwa marbut ma' indirizz irtirat. Żewġ affarijiet jgħaddu għall-moviment li jmiss: isem tal-host fil-profil tal-klijent biex il-bidla li jmiss tkun editjar DNS, u l-inventarju maħżun ħdejn in-noti tal-irkupru tas-server.