Yíyan àdírẹ́sì padà ń gba ìṣẹ́jú kan. Ọ̀sẹ̀ tó ń bọ̀ ni ibi tí gbígbé náà ti yẹ̀, kì í sì í ṣe ní ibi tí kọ́nsólì olùpèsè náà dábàá. A ń tọ́ka sí IP gbangba tuntun ní ibi mẹ́rin: sọ́kẹ́tì tí dáémonù ń gbọ́, ìdúró ìgbẹ́kẹ̀lé tí àwọn olùgbà ń ṣàyẹ̀wò, gbogbo òfin tí ń dárúkọ àdírẹ́sì àtijọ́, àti àkọsílẹ̀ DNS tí ń so wọ́n pọ̀. Ìgbé méjì máa ń dà bíi ti ara wọn láti pánẹ́ẹ̀lì ìṣàkóso ṣùgbọ́n wọ́n ń hùwà yàtọ̀ pátápátá: yíyan àdírẹ́sì náà padà lórí ẹ̀rọ tí ìwọ fúnra rẹ ń ṣiṣẹ́, tàbí gbígbé endpoint kejì kalẹ̀ kí o sì gbé àwọn olùgbà lọ sibẹ̀. Àwọn àyẹ̀wò tó wà nísàlẹ̀ ń fi àwọn àìṣeé ṣe tí kò gbówó lórí sí ipò àkọ́kọ́, gbogbo apá sì sọ irú ìgbé tí ó kan.

Ìpàrọ̀ ní ibi kan àti ìrékọjá ẹlẹ́gbẹ́ jẹ́ iṣẹ́ oríṣiríṣi

Ìpàrọ̀ ní ibi kan ń pa aráàlú, àwọn kọ́kọ́rọ́, tábìlì ìtọ́nisọ́nà àti àkọsílẹ̀ olùmúlò mọ́; àdírẹ́sì nìkan ni ó ń yí padà. Ìyẹn ni yíyan IP tí ń léfòó padà ń ṣe, àti ní ọ̀pọ̀ olùpèsè àlejò kò tilẹ̀ ṣàkíyèsí rẹ̀, nítorí ìtumọ̀ ń ṣẹlẹ̀ níwájú ẹ̀dá náà. Kíkọ́ tuntun tàbí yíyan padà látọ̀dọ̀ olùpèsè le jù: àlejò rí ìyípadà, gbogbo ohun tí ó ti fi iye àtijọ́ pamọ́ sì gbọ́ nípa rẹ̀ ní àkókò kan náà.

Endpoint ẹlẹ́gbẹ́ jẹ́ aráàlú kejì tí ń ṣe iṣẹ́ kan náà. Kọ́ ọ, dán an wò pẹ̀lú profáìlì kan, kí o sì jẹ́ kí ti àtijọ́ ń dáhùn títí ti tuntun yóò fi fi ara rẹ̀ hàn ní ojú ọ̀nà gidi. Ìye ni ipò. Láìsí àwọn àkọsílẹ̀ peer tí ó wà ní àjọpín, yíyọkúrò àti gbígbà wọlé, o ní ẹ̀ka méjì tí ó ṣàdédé pín orúkọ kan.

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

Wá gbogbo ibi tí a ti kọ àdírẹ́sì àtijọ́ sí

Bẹ̀rẹ̀ pẹ̀lú àwárí ọ̀rọ̀, nítorí àwọn fáìlì ìṣètò ni ìdajì rírọ̀. Wá nínú ìṣètò dáémonù, àwọn àpẹẹrẹ odi iná, àwọn àfojúsùn àbójútó àti àpò olùgbà èyíkéyìí tí a dá lórí díísìkì. Fi àdírẹ́sì IPv6 kún un bí o bá ń tẹ̀ jáde ọ̀kan; ìgbé tí ó ń tẹ̀lé àkọsílẹ̀ A nìkan yóò fi àwọn olùgbà pátákó méjì sílẹ̀ ní ojú ọ̀nà àtijọ́.

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

Lẹ́yìn náà ṣàyẹ̀wò kẹ́nẹ́lì, nítorí ẹ̀rọ tí ń ṣiṣẹ́ ń pa àdírẹ́sì mọ́ ní àwọn ibi tí kò sí fáìlì tí ó dárúkọ. Òfin NAT orísun tí ó dúró ṣinṣin, àkọsílẹ̀ ipset, àdírẹ́sì bind àti àkọsílẹ̀ conntrack ń gbé pẹ́ jù ìyípadà ìṣètò tí ó yọ wọ́n kúrò, àwọn mìíràn sì ń la àtúnbẹ̀rẹ̀ kọjá nítorí wọ́n padà wá láti inú àkójọ òfin tí a fipamọ́. Ìpele kan lókè, àwọn ẹ̀ka ààbò olùpèsè, àwọn àfojúsùn olùdọ́gba ẹrù àti àwọn àyẹ̀wò àbójútó kò tilẹ̀ sí lórí ẹ̀rọ fáìlì rẹ.

Kọ àkọsílẹ̀ àwọn ohun ìní kí o tó yí ohunkóhun padà; ó tún ń ṣiṣẹ́ gẹ́gẹ́ bí àkọsílẹ̀ ìpadàbọ̀.

Àwọn olùgbà orúkọ aráàlú ń gbádùn; àwọn olùgbà IP gbáàtọ̀ ń dákẹ́

Bí àwọn olùgbà bá ń dé ọ̀dọ̀ sáfà nípasẹ̀ orúkọ aráàlú, ìrékọjá náà jẹ́ ìṣòro DNS ní pàtàkì, TTL tí o gbé kalẹ̀ lánàá sì ń pinnu bí yóò ṣe burú tó. Àwọn olùyanjú ń fi pamọ́, àwọn olùyanjú stub tún ń fi pamọ́, ọ̀pọ̀ olùgbà sì ń wá orúkọ náà níbi ìsopọ̀ tuntun nìkan, nítorí náà ọ̀nà abẹ́lẹ̀ tí ó ti dá ń pa àdírẹ́sì ìbẹ̀rẹ̀ rẹ̀ mọ́.

Bí endpoint bá jẹ́ àdírẹ́sì gbáàtọ̀, kò sí ohun tí yóò tún yanjú, kò sì sí ohun tí yóò kọ ẹ̀dùn sílẹ̀. WireGuard ń pa àdírẹ́sì sọ́kẹ́tì tí a ti yanjú mọ́: Endpoint = vpn.example.net:51820 di IP ní àkókò tí wg-quick up ń ṣiṣẹ́, ó sì dúró gẹ́gẹ́ bí IP yẹn títí tí ìwọ yóò fi yí i padà. OpenVPN ní ọ̀wọ̀ jù: ó ń yanjú orúkọ aráàlú remote ní àkókò ìsopọ̀, pẹ̀lú resolv-retry infinite ó sì tún gbìyànjú DNS nígbà tí ó bá tún sopọ̀. Pẹ̀lú IP gbáàtọ̀, àwọn méjèèjì ń tẹ̀síwájú pípe ẹ̀rọ tí kò sí mọ́.

Ohun tí ń tan àwọn èèyàn jẹ ni àwòrán dígí. Olùgbà tí ó ti ń tọ́ka sí àdírẹ́sì tuntun, nígbà tí olùgbọ́ àtijọ́ ṣì ń dáhùn, yóò ye gbogbo ìdánwò tí o bá ṣe láti orí tábìlì rẹ fúnra rẹ. Èmi náà jẹ́ ẹni tí a tan jẹ pẹ̀lú rẹ̀: endpoint tuntun gbé orí tẹlifóònù ní ìgbìyànjú àkọ́kọ́, olùgbà tí ó ní profáìlì àtijọ́ sì farahàn nígbà tí a pa olùgbọ́ àtijọ́ ní àmúdọ̀ọ́ púpọ̀ lẹ́yìn náà.

Ìgbẹ́kẹ̀lé kò ń gbé pẹ̀lú àdírẹ́sì

WireGuard ń ya ìdánimọ̀ kúrò nínú ríríọ̀nà, èyí tí ń jẹ́ kí gbígbé àdírẹ́sì fẹ́rẹ̀ẹ́ jẹ́ ọ̀fẹ́. A ń dárúkọ àwọn peer pẹ̀lú kọ́kọ́rọ́ gbangba, endpoint sì jẹ́ ibi tí àwọn pákẹ́tì ń lọ báyìí; aráàlú ń ṣe àtúnṣe endpoint peer láti àdírẹ́sì orísun pákẹ́tì tí a jẹ́rìí síjú rẹ̀. Peer tí kò ṣiṣẹ́ ṣì nílò ìdí láti bá ibi tuntun sọ̀rọ̀, yóò sì kọ́ àdírẹ́sì náà nígbà tí àkókò rẹ̀ bá di arúgbó tí àwọn ìgbìyànjú handshake sì kùnà ní ibi tí ó yé. Ìtọ́sọ́nà yára WireGuard ń bo pápá endpoint.

Àwọn sáfà tí ó dá lórí TLS jẹ́ ọ̀rọ̀ ìdàkejì. Ẹ̀rí náà so mọ́ orúkọ, olùgbà tí ó ń pe àdírẹ́sì sì ń fi ohun tí ó pè wé àwọn orúkọ àfidípò ti kókó. Sopọ̀ nípasẹ̀ IP sí ẹ̀rí tí ó kàn ń gbé SAN DNS, ìjẹ́rìí yóò kùnà: orúkọ tí olùgbà lò kò sí nínú ẹ̀rí náà. Títún ẹ̀rí jáde pẹ̀lú SAN IP ń tún ìsopọ̀ kan yẹn ṣe, yóò sì mú ìgbé tó ń bọ̀ burú sí i. Pípa orúkọ aráàlú mọ́ nínú profáìlì àti fífi verify-x509-name sílẹ̀ ní ibi rẹ̀ ń pa àyẹ̀wò náà mọ́ gẹ́gẹ́ bí ó ti le nígbà tí àdírẹ́sì tó wà nísàlẹ̀ ń yí padà.

Lẹ́yìn náà ṣàyẹ̀wò ohun tí dáémonù so mọ́; sọ́kẹ́tì tí a kàn mọ́ àdírẹ́sì àtijọ́ yóò kùnà ní ìdákẹ́jẹ́. Sáfà OpenVPN tí a bẹ̀rẹ̀ pẹ̀lú local 203.0.113.10 kọ̀ láti gbé orí nígbà tí àdírẹ́sì yẹn bá lọ, nígbà tí olùgbọ́ lórí 0.0.0.0 ń tẹ̀lé ìyípadà náà lọ́fẹ̀ẹ́. NAT pẹ̀lú ń pín ní ọ̀nà kan náà: MASQUERADE ń tẹ̀lé àdírẹ́sì èyíkéyìí tí ẹ̀rọ náà ní báyìí, àti SNAT --to-source 203.0.113.10 tí ó dúró ṣinṣin ń tẹ̀síwájú kíkọ padà sí àdírẹ́sì tí ìwọ kò ní mọ́, nítorí náà ìrìnàjò ìpadàbọ̀ ń pòórá. Bí àdírẹ́sì tuntun bá wá pẹ̀lú ẹnubodè upstream mìíràn, ṣàyẹ̀wò rp_filter: àyọ̀nú ọ̀nà yíyí padà ń sọnù ìrìnàjò ìpadàbọ̀ tí ó ń dé lórí àti ẹ̀yà kan tí kẹ́nẹ́lì kò retí.

Ìtò ìrékọjá àti ẹ̀rí pé ó ṣiṣẹ́

Sokè TTL ní ọjọ́ kan ṣáájú, gbé olùgbọ́ tuntun kalẹ̀, kí o sì fi profáìlì tí ìwọ nìkan ní hàn. Ìdánwò láti inú ẹ̀ka kan náà kò fi fẹ́rẹ̀ẹ́ hàn ní ohunkóhun, nítorí náà lo tẹlifóònù lórí nẹ́tíwọ́kì alágbèéká kí o sì dán ohun tí ọ̀nà abẹ́lẹ̀ yẹ kí ó gbé wò dípò ping sí endpoint.

Ṣọ́ra fún àdírẹ́sì méjèèjì jálẹ̀ fèrèsé náà. wg show all latest-handshakes lórí aráàlú tuntun, tàbí fáìlì ipò OpenVPN, yóò sọ fún ọ bí ó ṣe pọ̀ tó peer tí ó ti gbé ní ti gidi. Nígbà tí endpoint tuntun bá ní àwọn peer tí o retí tí ti àtijọ́ sì ní àwọn tí ó kù nìkan, yọ olùgbọ́ àtijọ́ kúrò, yọ òfin NAT àtijọ́ kúrò kí o sì yọ àdírẹ́sì kúrò nínú odi iná olùpèsè. Yíyọ olùgbọ́ àtijọ́ kúrò ni ìgbésẹ̀ tí a ń gbà kọjá, ó sì ń dí àlàfo náà tí profáìlì àtijọ́ ṣì ń dé ẹ̀ka àtijọ́.

Kọ ìdí ìpadàbọ̀ sílẹ̀ kí o tó bẹ̀rẹ̀: bí endpoint tuntun kò bá ní handshake láti ọ̀dọ̀ olùgbà gidi kan pẹ̀lú lẹ́yìn fèrèsé tí a gbà, dá àdírẹ́sì àtijọ́ padà kí o sì dá pípín profáìlì dúró. Tún àwárí náà ṣe lẹ́yìn náà kí o sì jẹ́rìí pé kò sí olùgbọ́ tí ó ṣì so mọ́ àdírẹ́sì tí a ti yọ kúrò. Ohun méjì ń kọjá lọ sí ìgbé tó ń bọ̀: orúkọ aráàlú nínú profáìlì olùgbà kí ìyípadà tó ń bọ̀ lè jẹ́ àtúnṣe DNS, àti àkọsílẹ̀ àwọn ohun ìní tí a fi pamọ́ lẹ́gbẹ̀ẹ́ àwọn àkọsílẹ̀ ìmúpadà sáfà.

Àwọn àpilẹ̀kọ tó jọra