VM Vagrant hilang apabila VPN bersambung: laluan siapa yang rosak
Mesin yang menjawab seminit lalu hilang pada saat sambungan. Tentukan milik siapa laluan yang rosak sebelum mengubah apa-apa.
Mesin itu menjawab seminit lalu, VPN bersambung, dan kini alamat yang sama tamat masa. Tiga kerosakan menghasilkan gejala itu, dan ketiga-tiganya tinggal pada mesin berbeza. Hos boleh kehilangan laluan ke rangkaian peribadi, julat NAT tetamu boleh bertembung dengan julat yang diumumkan terowong sekarang, atau terowong penuh boleh mengambil alih pemilikan setiap laluan pada hos. Cari yang mana berlaku sebelum mengubah mana-mana konfigurasi, kerana setiap pembaikan tinggal di tempat lain.
Perhatikan laluan, bukan mesin
Lihat keputusan penghalaan hos untuk alamat tetamu semasa terowong hidup. Laluan yang masih menunjuk ke penyesuai hanya hos bukan masalahnya. Laluan yang kini menunjuk ke penyesuai VPN itulah masalahnya, dan klien yang mengubahnya, bukan anda. Penyesuai yang mengekalkan alamatnya memberitahu antara muka terselamat, fakta yang berbeza daripada laluan yang terselamat.
Sesi SSH yang terputus tepat pada saat sambungan ialah tingkah laku yang dijangka. Klien mengitar semula penyesuai dan memasang laluan, jadi sambungan mati beberapa saat. Kerosakan ialah sambungan yang tidak kembali, bukan yang sekadar berkelip.
Tangkap jadual sebelum terowong dan sekali lagi selepasnya, kemudian bandingkan kedua-dua output itu. Perbezaan itulah diagnosis, dan ia juga bukti yang akan diminta pemilik rangkaian.
ip -4 route get 192.168.56.10
ip -brief addr show
ip route show table main | head -20Baca jadual hos sebelum dan selepas
Pada Linux keutamaan antara laluan bertindih datang daripada panjang awalan dan metrik, jadi laluan VPN yang lebih khusus menang walaupun salah. Pada Windows metrik antara muka menentukan seri, dan penyesuai terowong biasanya datang dengan metrik lebih rendah daripada yang maya. Dalam kedua-dua kes gejala yang kelihatan sama: paket keluar melalui penyesuai terowong dan hilang.
Cetak penyesuai dan metriknya di sebelah laluan bagi awalan tetamu. Pasangan output itu menjawab soalan pemilikan dengan satu pandangan.
Get-NetAdapter | Select-Object Name, InterfaceIndex, InterfaceMetric
Get-NetRoute -DestinationPrefix 192.168.56.0/24
route print -4 | Select-String '192.168.56'Jika laluan berubah tetapi metrik penyesuai tidak, klien memasang laluan pesaing. Jika metrik berubah, klien menyusun semula penyesuai. Kedua-duanya boleh dibaiki, dan dibaiki di tempat berbeza.
Apabila julat NAT tetamu itulah pertembungan
VirtualBox NAT menggunakan 10.0.2.0/24 secara lalai, dan terowong yang menolak julat yang sama membuat tetamu menghantar trafik itu ke gateway NATnya dan bukan ke destinasi sebenar. Paket tidak pernah meninggalkan hos, jadi tiada log tembok api di sebelah sana akan menunjukkannya. Docker Machine mempunyai kelas konflik yang sama dalam pelan hanya hosnya, dan mengubah pelan itu mungkin memerlukan mesin dicipta semula bersama sijilnya.
Pilih pengganti dengan menyenaraikan apa yang sudah diumumkan terowong, kemudian apa yang digunakan rangkaian pejabat, kemudian apa yang dituntut setiap penyesuai maya pada hos ini. Pertindihan itulah yang merosakkan penghalaan, dan persamaan tidak relevan. Satu julat boleh duduk sepenuhnya di dalam yang lain sambil kelihatan sama sekali tidak serupa pada pandangan pertama.
Tetapkan julat baharu semasa mesin dicipta, atau ubahnya dan muat semula, kemudian uji semula sambungan yang gagal dari tetamu. Jadual tetamu sendiri ialah paparan yang penting.
VBoxManage modifyvm devbox --natnet1 10.77.0.0/24
vagrant reload devbox --provision
vagrant ssh devbox -c 'ip route get 10.20.0.15'Pulihkan laluan tanpa bergaduh dengan klien
Setiap platform menawarkan cara untuk meletakkan semula awalan hanya hos di hadapan. Pada macOS laluan statik ke antara muka hanya hos berfungsi sehingga sambungan seterusnya. Pada Windows metrik antara muka yang lebih rendah pada penyesuai maya mengekalkannya diutamakan. Pada Linux operasi ganti meliputi satu awalan. Ketiga-tiganya jalan pintas, kerana klien yang menegaskan semula laluannya akan membatalkannya.
Skripkan pemeriksaan itu dan bukan sambungan semula secara buta semasa but. Skrip kecil yang mencetak laluan bagi awalan tetamu selepas setiap sambungan menukar misteri menjadi satu baris dalam log.
Jika profil itu terowong penuh, minta pemilik rangkaian memberikan terowong berpecah atau pengecualian yang didokumenkan. Menambah laluan yang memintas dasar keselamatan secara senyap bukan pembaikan, ia masalah kedua yang tiba kemudian bersama juruaudit.
Periksa pembaikan pada kedua-dua belah
Sahkan tiga laluan selepas perubahan: hos ke tetamu, tetamu ke hos korporat, dan tetamu ke internet. Pembaikan yang memulihkan satu dan merosakkan yang lain ialah perubahan konfigurasi yang menyamar sebagai pembaikan. Tangkap output yang sama seperti yang anda kumpulkan sebelum perubahan supaya perbandingan sama dengan sama.
Catat antara muka, metrik dan laluan yang berubah, bersama masa, supaya kejadian seterusnya menjadi carian dan bukan pembinaan semula. Nota itu lebih bernilai daripada urutan tiket yang panjang.
ip -4 route get 192.168.56.10
traceroute -n -m 4 10.20.0.15
curl -sS -o /dev/null -w '%{http_code}\n' https://example.comApabila hos mencapai tetamu semula dan tetamu mencapai LAN, anda telah memulihkan laluan yang anda mulakan. Apabila hanya satu daripada itu berfungsi, kerosakan yang tinggal berada di wilayah pemilik lain, dan perbezaan memberitahu anda wilayah yang mana.