Pārslēgt Pi no Wi-Fi uz kabeli izskatās kā piecu minūšu darbs, un tas tā paliek tikai tad, ja pārvietošanu uztverat kā četrus atsevišķus iestatījumus, nevis vienu. Galapunkta nosaukums, uz kuru zvana jūsu klienti, var palikt tieši tāds pats, kamēr adrese zem tā mainās. Patiešām lūzt klausītājs, kas piesaistīts vecajai adresei, porta pāradresācija, kas joprojām vērsta uz bezvadu nomu, vai atgriešanās maršruts, kas iziet caur saskarni, kuru uzskatījāt par izbeigtu. Šī rokasgrāmata katrā solī tur atvērtu atkopšanas ceļu, tāpēc neizdevusies pāreja maksā tikai restartu.

Pierakstiet četrus atbildīgos, pirms ko atvienojat

Četri iestatījumi izlemj, vai pāreja izdzīvos: Pi adrese, piesaistes adrese OpenVPN, maršrutētāja pāradresācijas mērķis un ceļš, pa kuru iet atbildes. Pierakstiet visus četrus, pirms pieskaraties kabelim, jo, kad bezvadu noma pazudīs, vecās vērtības no mašīnas vairs neizlasīsiet. Vadu saskarne nemanto bezvadu profilu, un Bookworm adrese dzīvo NetworkManager, bet Bullseye to glabā dhcpcd.conf. Rezervācija, kas piesprauda bezvadu MAC adresi, neko nepasaka par eth0. Uztveriet jauno adresi kā jaunu piešķīrumu, kuram nepieciešams savs pierādījums.

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

Klausītājs ir otrais atbildīgais. Ja pakalpojums tika palaists ar konkrētu piesaistes adresi, ligzda mirst kopā ar veco saskarni; ja tas piesaista visas adreses, ligzda izdzīvo, un maršrutētāja noteikums kļūst par vienīgo, kas jālabo.

Pāradresācijas mērķis un atgriešanās ceļš ir atbildīgie, kurus cilvēki izlaiž. Pāradresācija, kas joprojām rāda uz 10.42.7.24, sūta ienākošos rokasspiedienus uz adresi, kuras Pi vairs nav, tāpēc klienti beidzas ar taimautu bez nevienas žurnāla rindas servera pusē. Atgriešanās ceļš ir svarīgs, kad abi savienojumi īsu brīdi ir aktīvi, jo Pi atbild caur saskarni, kurai priekšroku dod maršrutu tabula, un tā ne vienmēr ir tā, pa kuru pakete ieradās. Zemāk esošā maršruta meklēšana parāda, kuru avotu izvēlas kodols.

Izlasiet īsto ligzdu, pirms uzticaties jaunajai adresei

Konfigurācijas faili apraksta nodomu, un ligzda apraksta realitāti. Pajautājiet darbojam pakalpojumam, kam tas ir piesaistīts, nevis uzticieties konfigurācijai, kuru atceraties. OpenVPN 2.6 rokasgrāmata definē --local kā piesaisti vienai adresei un atzīmē, ka tā izlaišana piesaista katru saskarni.

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

Lasiet vietējās adreses kolonnu, nevis stāvokļa kolonnu. Rinda, kas rāda 10.42.7.24:1194 nozīmē, ka ligzda ir piesaistīta adresei, kuru tūlīt noņemsiet, bet 0.0.0.0:1194 vai *:1194 nozīmē, ka dēmons pats sekos saskarnes maiņai. Ja adrese ir piesaistīta, rediģējiet profilu un restartējiet vienību, nevis ar roku pārrakstiet dzīvo ligzdu, un pēc tam pārliecinieties, ka pakalpojums joprojām sasniedz savus sertifikāta un atslēgas failus.

Veiciet pārvietošanu tādā secībā, kas jūs notur sasniedzamus

Secība šeit ir svarīgāka par ātrumu. Paceliet vadu savienojumu, kamēr bezvadu vēl darbojas, apstipriniet jauno adresi un atgriešanās ceļu, un tikai tad izbeidziet bezvadu profilu. Šī secība notur darbojošos sesiju atvērtu, līdz aizvietotājs ir pierādīts.

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

Pirmā komanda atbild, vai eth0 saņēma adresi, kuru bijāt iecerējis, un otrā izdrukā avota adresi, kuru kodols izmantotu ārējam galamērķim, tāpēc palaidiet to pirms un pēc izmaiņām. Ja šis avots joprojām ir bezvadu adrese, vadu savienojums vēl nav vēlamais ceļš, un ārējā pārbaude neizdosies tāda iemesla dēļ, kam nav nekāda sakara ar OpenVPN. Izlabojiet maršrutēšanas prioritāti, pirms pieskaraties pāradresācijai.

Kad abi savienojumi ir aktīvi, Pi var dot priekšroku bezvadu noklusējuma maršrutam, jo tas tika instalēts pirmais vai jo vadu savienojumam ir augstāka metrika. Bookworm atbalstītais iestatījums ir ipv4.route-metric savienojumā, un Bullseye ekvivalents ir saskarnei raksturīga metric rinda dhcpcd.conf failā. Samaziniet bezvadu savienojuma prioritāti, nevis izslēdziet to, lai atritināšanas ceļš paliktu vienas komandas attālumā.

Pierādiet tuneli no ārpuses, nevis no LAN

VPN savienojums, kas darbojas no dīvāna, pierāda mazāk, nekā šķiet. Trafiks no LAN iekšpuses uz publisko adresi iet caur hairpin vai atstarošanas noteikumiem, kurus maršrutētāji ievieš nekonsekventi, tāpēc veiksmīgs LAN tests var pastāvēt līdzās salauztam ārējam ceļam. Pieņemšanas testam izmantojiet telefonu ar mobilajiem datiem vai jebkuru resursdatoru ārpus tīkla. LAN mēģinājumu paturiet kā atsevišķu neobligātu diagnostiku.

Pēc tam lasiet žurnālu tādā secībā, kādā ierodas paketes. Pilnīgi nekas nozīmē, ka rokasspiediens nekad nav sasniedzis Pi, tāpēc pāradresācijas mērķis vai resursdatora ugunsmūris ir nepareizs. Rokasspiediens, kas sākas un iestrēgst, norāda uz atslēgām, sertifikātiem vai MTU. Sesija, kas pabeidzas un nokrīt, parasti nozīmē atgriešanās ceļu vai otru noklusējuma maršrutu, un klienta žurnāla rinda Initialization Sequence Completed pasaka, ka pats tunelis ir pacēlies.

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

Ja servera žurnālā nekas neparādās, kamēr klients mēģina vēlreiz, pārtrauciet lasīt OpenVPN konfigurāciju un atgriezieties pie pāradresācijas mērķa. Uztveršana atbild uz ierašanās jautājumu sekundēs, un ienākošās paketes bez atbildes sašaurina problēmu līdz maršrutam.

Saglabājiet viena soļa atritināšanu un izbeidziet bezvadu profilu

Atstājiet bezvadu profilu instalētu, līdz vadu sakārtojums pārdzīvo restartu. nmcli con show uzskaita profila nosaukumus, kas jums būs vajadzīgi, un dzēsts profils ir jāatjauno no atmiņas sliktākajā brīdī. Pierakstiet saskarnes nosaukumu, adresācijas metodi un metriku blakus pārējām četrām vērtībām. Atritināšana, ko varat ierakstīt no piezīmes, ir vērtīgāka par to, kas jārekonstruē.

Bezvadu atkarības izbeigšana ir īpašības maiņa, nevis dzēšana. Iestatot connection.autoconnect no akreditācijas dati un adrešu vēsture paliek neskarti, vienlaikus neļaujot Pi atkal pievienoties tīklam, no kura jūs aizgājāt.

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

Pirms pasludināt darbu pabeigtu, apstipriniet četras lietas: pāradresācijas mērķis atbilst vadu adresei, klausītājs pārdzīvoja restartu, ārējais klients pabeidz rokasspiedienu, un Pi pēc restarta joprojām atbild uz vadu adresi. Restarts ir lētākais veids, kā noķert piešķīrumu, kas pastāvēja tikai darbojošā kodolā. Ja kāda no četrām neizdodas, paceliet bezvadu profilu atpakaļ ar sudo nmcli con up un salīdziniet pierakstītās vērtības ar aktīvajām.

Saistītie raksti