Kugawa anwani upya huchukua dakika moja. Wiki inayofuata ni mahali ambapo uhamishaji huvunjika, na mara chache mahali ambapo konsoli ya mtoa huduma inapendekeza. IP mpya ya umma inatajwa katika sehemu nne: soketi ambayo daemon husikiliza, nanga ya uaminifu ambayo wateja huhakiki, kila kanuni inayotaja anwani ya zamani, na rekodi ya DNS inayowaunganisha. Uhamishaji mbili huonekana sawa kwenye paneli ya udhibiti lakini hufanya kazi tofauti kabisa: kugawa anwani upya kwenye mashine unayoendesha, au kusimamisha endpoint ya pili na kuhamisha wateja huko. Ukaguzi ulio hapa chini huweka hitilafu za bei nafuu mbele, na kila sehemu inasema uhamishaji gani inahusu.

Ubadilishaji wa mahali pamoja na mpito sambamba ni kazi tofauti

Ubadilishaji wa mahali pamoja huhifadhi mwenyeji, funguo, jedwali la uelekezaji na orodha ya watumiaji; anwani pekee hubadilika. Hivyo ndivyo ugawaji upya wa IP inayoelea hufanya, na kwa watoa huduma kadhaa mgeni haoni kitu, kwa sababu tafsiri hufanyika mbele ya kielelezo. Kujenga upya au ugawaji upya na mtoa huduma ni mkali zaidi: mgeni huona mabadiliko, na kila kitu kilichohifadhi thamani ya zamani kwenye akiba hujifunza hilo katika wakati huohuo.

Endpoint sambamba ni mwenyeji wa pili anayefanya kazi hiyo hiyo. Ijenge, ijaribu kwa wasifu mmoja, na uache wa zamani ukijibu hadi mpya ujithibitishe kwenye njia halisi. Bei ni hali. Bila maingizo ya peer ya pamoja, kufuta na uwekaji kumbukumbu, una mitandao miwili inayoshiriki jina kwa bahati.

QuestionIn-place swapParallel endpoint
Rollback in one step?Only if you can get the old address backPoint DNS back; old host still up
Blast radiusEvery client at onceOnly the clients you moved
Best whenThe address is yours to reassignThe old address is gone for good

Pata kila mahali anwani ya zamani imeandikwa

Anza kwa uchunguzi wa maandishi, kwa sababu faili za usanidi ni nusu rahisi. Tafuta katika usanidi wa daemon, vipande vya ngome, malengo ya ufuatiliaji na kifurushi chochote cha mteja kilichozalishwa kwenye diski. Jumuisha anwani ya IPv6 ikiwa unachapisha moja; uhamishaji unaofuata rekodi A pekee huwaacha wateja wa rafu mbili kwenye njia ya zamani.

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

Kisha chunguza kernel, kwa sababu mfumo unaoendesha hushikilia anwani mahali ambapo hakuna faili inayotaja. Kanuni tuli ya NAT ya chanzo, ingizo la ipset, anwani ya bind na ingizo la conntrack huishi zaidi ya uhariri wa usanidi uliozigeuza, na nyingine huvuka hata kuwasha upya kwa sababu zilirudi kutoka seti ya kanuni iliyohifadhiwa. Tabaka moja juu, vikundi vya usalama vya mtoa huduma, malengo ya kusawazisha mzigo na ukaguzi wa ufuatiliaji havipo kabisa kwenye mfumo wako wa faili.

Andika orodha kabla ya kubadilisha chochote; pia hutumika kama hati ya kurudi nyuma.

Wateja wa jina la mwenyeji hupona; wateja wa IP halisi hunyamaza

Ikiwa wateja wanafikia seva kwa jina la mwenyeji, mpito ni tatizo la DNS hasa, na TTL uliyoweka jana huamua jinsi itakavyokuwa mbaya. Vitatuzi huhifadhi akiba, vivatuzi vya stub huhifadhi tena, na wateja wengi hutafuta jina tu kwenye muunganisho mpya, kwa hiyo handaki iliyoanzishwa huhifadhi anwani yake ya mwanzo.

Ikiwa endpoint ni anwani halisi, hakuna kinachotatuliwa upya na hakuna kinachorekodi malalamiko. WireGuard huhifadhi anwani ya soketi iliyotatuliwa: Endpoint = vpn.example.net:51820 huwa IP wakati wg-quick up inapoendeshwa na hubaki IP hiyo hadi uibadilishe. OpenVPN ni mvumilivu zaidi: hutatua jina la mwenyeji remote wakati wa muunganisho na, pamoja na resolv-retry infinite, hujaribu DNS tena wakati wa kuunganisha upya. Kwa IP halisi, zote mbili zinaendelea kupiga mashine ambayo haipo tena.

Kinachowadanganya watu ni picha ya kioo. Mteja aliyeelekezwa tayari kwenye anwani mpya, wakati msikilizaji wa zamani bado anajibu, hupita kila jaribio unalofanya kutoka dawati lako. Mimi pia nilidanganywa na hilo: endpoint mpya ilipanda kwenye simu kwa jaribio moja, na mteja mwenye wasifu wa zamani alionekana tu wakati msikilizaji wa zamani ulizimwa baadaye sana.

Uaminifu hauhami pamoja na anwani

WireGuard hutenganisha utambulisho na ufikivu, jambo linalofanya uhamishaji wa anwani kuwa karibu bure. Peer hutambuliwa kwa ufunguo wa umma, na endpoint ni pale pakiti zinapokwenda sasa; mwenyeji husasisha endpoint ya peer kutoka anwani chanzo ya pakiti ya mwisho iliyothibitishwa. Peer isiyotumika bado inahitaji sababu ya kuzungumza na mahali mpya, na hujifunza anwani tu wakati kikao chake kinazeeka na majaribio ya handshake yanashindikana mahali panapoonekana. Mwongozo wa haraka wa WireGuard unashughulikia uga wa endpoint.

Seva zinazotegemea TLS ni kisa kinyume. Cheti kimefungwa kwa jina, na mteja anayepiga anwani hulinganisha alichopiga na majina mbadala ya kitu. Unganisha kwa IP kwenye cheti kilicho na SAN ya DNS pekee na uthibitishaji unashindikana: jina alilotumia mteja halipo kwenye cheti. Kutoa upya kwa SAN ya IP hurekebisha muunganisho mmoja huo na hufanya uhamishaji unaofuata kuwa mbaya zaidi. Kuweka jina la mwenyeji kwenye wasifu na kuacha verify-x509-name mahali pake huweka ukaguzi kuwa mkali wakati anwani iliyo chini inabadilika.

Kisha angalia daemon imefungwa kwa nini; soketi iliyobandikwa kwenye anwani ya zamani hushindikana kimya. Seva ya OpenVPN iliyoanzishwa na local 203.0.113.10 hukataa kupanda mara anwani hiyo inapotoweka, wakati msikilizaji kwenye 0.0.0.0 hufuata mabadiliko bure. NAT hugawanyika vivyo hivyo: MASQUERADE hufuata anwani yoyote aliyo nayo mashine sasa, na SNAT --to-source 203.0.113.10 tuli huendelea kuandika upya kwenda anwani usiyoimiliki tena, kwa hiyo trafiki ya kurudi hupotea. Ikiwa anwani mpya inakuja na lango la upstream tofauti, angalia rp_filter: uchujaji wa njia ya nyuma hutupa trafiki ya kurudi inayofika kwenye kiolesura ambacho kernel hakikutarajia.

Mpangilio wa mpito na uthibitisho kwamba ulifanya kazi

Punguza TTL siku moja kabla, simamisha msikilizaji mpya, na uthibitishe kwa wasifu ambao unao peke yako. Jaribio la kutoka ndani ya mtandao huo huo huthibitisha karibu chochote, kwa hiyo tumia simu kwenye mtandao wa selula na ujaribu kitu ambacho handaki inapaswa kubeba badala ya ping kwenda endpoint.

Fuatilia anwani zote mbili katika dirisha lote. wg show all latest-handshakes kwenye mwenyeji mpya, au faili ya hali ya OpenVPN, hukuambia peer ngapi zimehamishwa kweli. Wakati endpoint mpya ina peer unazotarajia na ya zamani ina zilizobaki tu, staafu msikilizaji wa zamani, ondoa kanuni ya zamani ya NAT na uondoe anwani kwenye ngome ya mtoa huduma. Kuondoa msikilizaji wa zamani ni hatua inayorukwa, na hufunga pengo ambapo wasifu wa zamani bado unafikia mtandao wa zamani.

Weka kichocheo cha kurudi nyuma kwa maandishi kabla ya kuanza: ikiwa endpoint mpya haina handshake kutoka kwa mteja yeyote halisi baada ya dirisha lililokubaliwa, rejesha anwani ya zamani na acha kusambaza wasifu. Kisha endesha uchunguzi tena na uthibitishe kuwa hakuna msikilizaji aliyefungwa kwa anwani iliyostaafishwa. Mambo mawili yanapita kwenye uhamishaji unaofuata: jina la mwenyeji kwenye wasifu wa mteja ili mabadiliko yafuatayo yawe uhariri wa DNS, na orodha iliyohifadhiwa kando ya maelezo ya urejeshaji ya seva.

Makala zinazohusiana