Pi-ni Wi-Fi-dən kabelə keçirmək beş dəqiqəlik iş kimi görünür və köçürməni bir yox, dörd ayrı ayar kimi qəbul etdikdə belə qalır. Müştərilərinizin yığdığı son nöqtə adı altındakı ünvan dəyişdiyi halda tamamilə eyni qala bilər. Əslində sınan şey köhnə ünvana bağlanmış dinləyici, hələ də simsiz lease-ə yönəlmiş port yönləndirməsi və ya işdən çıxardığınızı düşündüyünüz interfeysdən çıxan geri qayıtma marşrutudur. Bu təlimat hər addımda bərpa yolunu açıq saxlayır, buna görə də uğursuz keçid yalnız bir yenidən başlatmaya başa gəlir.

Bir şeyi ayırmadan əvvəl dörd məsulu yazın

Dörd ayar keçidin davam edib-etməyəcəyini həll edir: Pi ünvanı, bağlama ünvanı OpenVPN, marşrutlaşdırıcının yönləndirmə hədəfi və cavabların getdiyi yol. Kabelə toxunmadan əvvəl dördünü də yazın, çünki simsiz lease yox olduqdan sonra köhnə dəyərləri maşından oxuya bilməyəcəksiniz. Kabel interfeysi simsiz profili miras almır və Bookworm-da ünvan NetworkManager-də yaşayır, Bullseye isə onu dhcpcd.conf. Simsiz MAC ünvanını bərkitmiş rezervasiya eth0 haqqında heç nə demir. Yeni ünvana öz sübutuna ehtiyac duyan yeni təyinat kimi yanaşın.

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

Dinləyici ikinci məsuldur. Xidmət konkret bağlama ünvanı ilə başladılıbsa, soket köhnə interfeyslə birlikdə ölür; bütün ünvanları bağlayırsa, soket sağ qalır və marşrutlaşdırıcı qaydası düzəldilməli yeganə şey olur.

Yönləndirmə hədəfi və geri qayıtma yolu insanların atladığı məsullardır. Hələ də 10.42.7.24-ə yönələn yönləndirmə gələn əl sıxmaları Pi-nin artıq sahib olmadığı ünvana göndərir, buna görə müştərilər server tərəfində bir dənə də jurnal sətri olmadan vaxt aşımına düşür. Hər iki əlaqə qısa müddət aktiv olduqda geri qayıtma yolu vacibdir, çünki Pi marşrut cədvəlinin üstün tutduğu interfeysdən cavab verir və bu həmişə paketin gəldiyi interfeys deyil. Aşağıdakı marşrut axtarışı nüvənin hansı mənbəni seçdiyini göstərir.

Yeni ünvana güvənməzdən əvvəl real soketi oxuyun

Konfiqurasiya faylları niyyəti təsvir edir, soket isə reallığı. Yadda saxladığınız konfiqurasiyaya güvənmək əvəzinə işləyən xidmətdən nəyə bağlı olduğunu soruşun. OpenVPN 2.6 təlimatı --local parametrini bir ünvana bağlanma kimi müəyyən edir və onun buraxılmasının hər interfeysi bağladığını qeyd edir.

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

Vəziyyət sütunu yerinə yerli ünvan sütununu oxuyun. 10.42.7.24:1194 göstərən sətir soketin tezliklə siləcəyiniz ünvana bərkidildiyini bildirir, halbuki 0.0.0.0:1194 və ya *:1194 demonun interfeys dəyişikliyini özü izləyəcəyini bildirir. Ünvan bərkidilibsə, canlı soketi əl ilə yenidən yazmaq əvəzinə profili redaktə edin və vahidi yenidən başladın, sonra xidmətin hələ də sertifikat və açar fayllarına çatdığını təsdiqləyin.

Köçürməni sizi əlçatan saxlayan sıra ilə aparın

Burada sıra sürətdən daha vacibdir. Simsiz əlaqə hələ işləyərkən kabel əlaqəsini qaldırın, yeni ünvanı və geri qayıtma yolunu təsdiqləyin, yalnız ondan sonra simsiz profili işdən çıxarın. Bu ardıcıllıq əvəzləyici sübut olunana qədər işlək sessiyanı açıq saxlayır.

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

Birinci əmr eth0 nəzərdə tutduğunuz ünvanı alıb-almadığını cavablandırır, ikincisi isə nüvənin xarici hədəf üçün istifadə edəcəyi mənbə ünvanını çap edir, buna görə onu dəyişiklikdən əvvəl və sonra işə salın. Əgər bu mənbə hələ də simsiz ünvandırsa, kabel əlaqəsi hələ üstün yol deyil və xarici test OpenVPN ilə heç bir əlaqəsi olmayan səbəbdən uğursuz olacaq. Yönləndirməyə toxunmadan əvvəl marşrutlaşdırma üstünlüyünü düzəldin.

Hər iki əlaqə aktiv olduqda Pi simsiz standart marşruta üstünlük verə bilər, çünki o birinci quraşdırılıb və ya kabel əlaqəsi daha yüksək metrik daşıyır. Bookworm-da dəstəklənən ayar bağlantıdakı ipv4.route-metric ayarıdır, Bullseye-də isə ekvivalent interfeysə xas metric sətri dhcpcd.conf faylında yerləşir. Geri qayıtma yolu bir əmr məsafəsində qalsın deyə simsiz əlaqəni söndürmək əvəzinə onun prioritetini aşağı salın.

Tuneli LAN-dan deyil, kənardan sübut edin

Divandan işləyən VPN bağlantısı göründüyündən az sübut edir. LAN daxilindən ictimai ünvana gedən trafik marşrutlaşdırıcıların qeyri-sabit tətbiq etdiyi hairpin və ya əksolunma qaydalarından keçir, buna görə uğurlu LAN testi pozulmuş xarici yolla birgə mövcud ola bilər. Qəbul testi üçün mobil data ilə telefondan və ya şəbəkədən kənar istənilən hostdan istifadə edin. LAN cəhdini ayrıca istəyə bağlı diaqnostika kimi saxlayın.

Sonra jurnalı paketlərin gəldiyi sıra ilə oxuyun. Heç nə yoxdursa, əl sıxma Pi-yə heç vaxt çatmayıb, deməli yönləndirmə hədəfi və ya hostun qoruyucu divarı səhvdir. Başlayıb ilişib qalan əl sıxma açarlara, sertifikatlara və ya MTU-ya işarə edir. Tamamlanıb düşən sessiya adətən geri qayıtma yolunu və ya ikinci standart marşrutu bildirir, müştərinin jurnal sətri isə Initialization Sequence Completed tunelin özünün qalxdığını deyir.

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

Müştəri yenidən cəhd edərkən server jurnalında heç nə görünmürsə, OpenVPN konfiqurasiyasını oxumağı dayandırın və yönləndirmə hədəfinə qayıdın. Tutma gəlmə sualını saniyələr içində cavablandırır, cavabsız gələn paketlər isə problemi marşruta qədər daraldır.

Bir addımlı geri qayıtmanı saxlayın və simsiz profili işdən çıxarın

Simsiz profili kabel quruluşu yenidən başlatmadan keçənə qədər quraşdırılmış saxlayın. nmcli con show ehtiyac duyacağınız profil adlarını sadalayır və silinmiş profil ən pis anda yaddaşdan yenidən qurulmalıdır. İnterfeys adını, ünvanlama metodunu və metriki digər dörd dəyərin yanında yazın. Qeyddən yaza bildiyiniz geri qayıtma yenidən qurmalı olduğunuzdan daha dəyərlidir.

Simsiz asılılığı işdən çıxarmaq silmə deyil, xassə dəyişikliyidir. connection.autoconnect no ayarını etməklə etimad məlumatları və ünvan tarixçəsi toxunulmaz qalır, Pi isə köçdüyünüz şəbəkəyə yenidən qoşulmadan saxlanılır.

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

İşi bitmiş elan etməzdən əvvəl dörd şeyi təsdiqləyin: yönləndirmə hədəfi kabel ünvanına uyğundur, dinləyici yenidən başlatmadan sağ çıxdı, kənardan müştəri əl sıxmanı tamamlayır və Pi yenidən başlatmadan sonra da kabel ünvanında cavab verir. Yenidən başlatma yalnız işləyən nüvədə mövcud olan təyinatı tutmağın ən ucuz yoludur. Dördündən hər hansı biri uğursuz olarsa, simsiz profili sudo nmcli con up ilə geri qaldırın və qeydə alınmış dəyərləri aktiv olanlarla müqayisə edin.

Əlaqəli məqalələr