Å bytte Pi-en frå Wi-Fi til ein kabel ser ut som ein femminuttsjobb, og det blir det berre viss du handsamar flyttinga som fire separate innstillingar i staden for éin. Endepunktnamnet klientane dine ringer kan bli nøyaktig det same medan adressa under det endrar seg. Det som faktisk bryt, er ein lyttar som er bunden til den gamle adressa, ei portvideresending som framleis peikar på den trådlause leasen, eller ein returveg som forlèt gjennom grensesnittet du trudde du hadde pensjonert. Denne gjennomgangen held ein gjenopprettingsveg open ved kvart steg, slik at ein mislukka overgang berre kostar ein omstart.

Skriv ned dei fire ansvarlege før du koplar frå noko

Fire innstillingar avgjer om overgangen overlever: Pi-adressa, OpenVPN-bindeadressa, omdirigeringsmålet til rutaren og vegen svara tek. Skriv ned alle fire før du rører kabelen, for når den trådlause leasen forsvinn, kan du ikkje lese dei gamle verdiane av maskinen. Det kabelbundne grensesnittet arvar ikkje den trådlause profilen, og på Bookworm bur adressa i NetworkManager medan Bullseye held henne i dhcpcd.conf. Ein reservasjon som batt den trådlause MAC-adressa, seier ingenting om eth0. Handsame den nye adressa som ei ny tildeling som treng sitt eige bevis.

Old wireless lease:   10.42.7.24/24 on wlan0
New wired address:    10.42.7.31/24 on eth0
Client endpoint:      vpn.lab.example:1194/udp

Lyttaren er den andre ansvarlege. Vart tenesta starta med ei bestemd bindeadresse, døyr socketen med det gamle grensesnittet; bind han alle adresser, overlever socketen, og ruterregelen blir det einaste som står att å rette.

Omdirigeringsmålet og returvegen er dei ansvarlege folk hoppar over. Ei videresending som framleis peikar på 10.42.7.24, sender ankomande handtrykk til ei adresse Pi-en ikkje lenger har, så klientar timar ut utan noka serverlogglinje i det heile. Returvegen har noko å seie når begge lenkjene er oppe ei kort stund, fordi Pi-en svarar frå grensesnittet rutetabellen føretrekkjer, og det er ikkje alltid det pakken kom inn på. Ruteoppslaget nedanfor viser kva kjelde kjernen vel.

Les den faktiske socketen før du stolar på den nye adressa

Konfigurasjonsfiler skildrar intensjonen, og socketen skildrar røyndomen. Spør den køyrande tenesta kva ho er bunden til i staden for å stole på konfigurasjonen du hugsar. OpenVPN 2.6-handboka definerer --local som binding til éi adresse og nemner at utelatinga bind kvart grensesnitt.

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

Les kolonnen for den lokale adressa i staden for tilstandskolonnen. Ei linje som viser 10.42.7.24:1194 tyder at socketen er bunden til adressa du er i ferd med å fjerne, medan 0.0.0.0:1194 eller *:1194 tyder at daemonen følgjer grensesnittendringa sjølv. Er adressa bunden, rediger profilen og start eininga på nytt i staden for å skrive om den levande socketen for hand, og stadfest deretter at tenesta framleis når sertifikat- og nøkkelfilene sine.

Gå flyttinga i ein rekkjefølgje som held deg nåbar

Rekkjefølgja betyr meir enn hastigheita her. Ta opp den kabelbundne lenkja medan den trådlause framleis verkar, stadfest den nye adressa og returvegen, og pensjoner deretter den trådlause profilen. Den sekvensen held ei fungerande økt open til erstatninga er prova.

ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"

Den første kommandoen svarar på om eth0 fekk adressa du hadde tenkt, og den andre skriv ut kjeldeadressa kjernen ville brukt for ein destinasjon utanfor nettverket, så køyr han før og etter endringa. Er den kjelda framleis den trådlause adressa, er den kabelbundne lenkja enno ikkje den føretrekte vegen, og testen utanfrå vil mislukkast av ein grunn som ikkje har noko med OpenVPN å gjere. Rett rutingpreferansen før du rører videresendinga.

Med begge lenkjene oppe kan Pi-en føretrekkje den trådlause standardruta fordi ho vart installert først, eller fordi den kabelbundne lenkja har ein høgare metrikk. På Bookworm er den støtta knappen ipv4.route-metric på tilkoplinga, og på Bullseye er ekvivalenten ei grensesnittsspesifikk metric-linje i dhcpcd.conf. Degrader den trådlause lenkja i staden for å deaktivere henne, slik at tilbakerullingsvegen blir verande éin kommando unna.

Prov tunnelen utanfrå, ikkje frå LAN-et

Ei VPN-tilkopling som verkar frå sofaen, provar mindre enn det ser ut som. Trafikk frå inne i LAN-et til den offentlege adressa går gjennom hairpin- eller refleksjonsreglar som rutarar implementerer inkonsekvent, så ein bestått LAN-test kan eksistere saman med ein broten veg utanfrå. Bruk ein telefon på mobildata, eller kva som helst vert utanfor nettverket, til aksepttesten. Hald LAN-forsøket som ein separat valfri diagnostikk.

Les deretter loggen i den rekkjefølgja pakkane kjem inn. Ingenting i det heile tyder at handtrykket aldri nådde Pi-en, så omdirigeringsmålet eller vertsbrannmuren er feil. Eit handtrykk som startar og stoppar, peikar på nøklar, sertifikat eller MTU. Ei økt som fullførast og droppar, tyder vanlegvis returvegen eller ei andre standardrute, og logglinja til klienten Initialization Sequence Completed fortel deg at tunnelen sjølv kom opp.

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

Viss ingenting visest i serverloggen medan klienten prøver på nytt, slutt å lese OpenVPN-konfigurasjon og gå tilbake til omdirigeringsmålet. Opptaket svarar på ankomstspørsmålet på sekundar, og innkomande pakkar utan svar snevrar problemet inn til ruta.

Hald ei ett-trinns tilbakerulling og pensjoner den trådlause profilen

Lat den trådlause profilen vere installert til den kabelbundne ordninga har overlevd ein omstart. nmcli con show viser profilnamna du vil trenge, og ein sletta profil må byggjast opp frå minnet i det verste tenkjelege augeblikket. Skriv ned grensesnittnamnet, adressemetoden og metrikken ved sida av dei fire andre verdiane. Ei tilbakerulling du kan skrive frå eit notat, er meir verd enn ei du må rekonstruere.

Å pensjonere den trådlause avhengnaden er ei eigenskapendring i staden for ei sletting. Å setje connection.autoconnect no held påloggingsinformasjonen og adressehistoria intakt medan Pi-en blir hindra i å kople seg til eit nettverk du flytta bort frå.

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

Før du kallar jobben ferdig, stadfest fire ting: omdirigeringsmålet samsvarar med den kabelbundne adressa, lyttaren overlevde ein omstart, ein klient utanfrå fullfører eit handtrykk, og Pi-en svarar framleis på den kabelbundne adressa etter ein omstart. Ein omstart er den billegaste måten å fange ei tildeling som berre fanst i den køyrande kjernen. Viss nokon av dei fire mislukkast, ta den trådlause profilen opp att med sudo nmcli con up og samanlikn dei nedskrivne verdiane med dei levande.

Relaterte artiklar