Ping bukan bukti: uji laluan antara dua tapak
Ping dari gateway tidak memberitahu apa-apa tentang perkhidmatan. Jejaki laluan dari klien sebenar, gunakan protokol aplikasi dan hasilkan semula saiz atau nama yang gagal.
Terowong aktif, gateway saling menjawab, dan pengguna di satu tapak masih tidak dapat membuka perkongsian fail di tapak yang lain. Seseorang melakukan ping dari gateway, mendapat balasan dan mengisytiharkan rangkaian sihat. Balasan itu bergerak antara dua peranti yang tidak pernah menjadi masalah. Ujian yang berguna bermula pada hos yang memerlukan perkhidmatan, menggunakan protokol yang digunakan aplikasi dan menghasilkan semula keadaan yang menyebabkan kegagalan. Segala-galanya ialah lampu hijau untuk laluan yang tiada siapa menjejakinya.
Mulakan pada klien yang memerlukan perkhidmatan
Catat empat perkara sebelum menguji apa-apa: alamat klien, alamat destinasi, nama hos dan port aplikasi. Kemudian sahkan perkhidmatan berfungsi secara setempat di tapaknya sendiri, dari hos di sebelahnya. Tanpa garis dasar itu anda tidak dapat membezakan terowong rosak daripada perkhidmatan rosak, dan separuh tiket ini ialah yang kedua.
Cuba nama hos yang didokumenkan dan, jika perkhidmatan membenarkan, semakan alamat terus bagi port yang sama. Carian nama yang gagal dan alamat yang diselesaikan tetapi tidak dapat dicapai membawa anda ke laluan berbeza. Jika anda menggantikan nama hos dengan IP, jangan matikan semakan identiti HTTPS untuk menjadikannya berfungsi; amaran sijil ialah maklumat, bukan halangan.
Jejaki laluan pada setiap tepi
Baca laluan yang dipilih klien, kemudian laluan yang dipilih gateway untuk destinasi itu, kemudian pembilang atau tangkapan terhad pada setiap tepi. Anda mencari dua fakta: sama ada permintaan tiba di LAN jauh, dan sama ada balasan kembali. Pembilang antara muka merangkumi setiap aliran lain, jadi kaitkan dengan cap masa tepat dan pasangan alamat, bukan bentuk graf. Tangkapan di tepi yang salah lebih buruk daripada tiada, kerana ia kelihatan seperti bukti.
ip route get 10.10.0.5
sudo tcpdump -ni any host 10.10.0.5 and port 445
sudo tcpdump -ni any net 10.10.0.0/24 and net 10.20.0.0/24
Jika permintaan muncul di tepi jauh tanpa balasan di belakangnya, masalahnya di sebelah sana: tembok api, laluan balik yang hilang atau hos yang tidak menerima sumber. Jika permintaan tidak pernah muncul, laluan setempat atau pemilih terowong tidak membawanya, dan sebelah sana belum wajar disiasat.
Gunakan protokol yang digunakan aplikasi
ICMP ialah siasatan yang lemah. Ia boleh ditapis, dihadkan kadar atau dikendalikan oleh dasar berbeza daripada perkhidmatan, yang menjadikan kejayaan dan kegagalannya samar-samar. Uji port sebenar dan, jika boleh, jabat tangan protokol sebenar.
nc -vz 10.10.0.5 445
curl -sv --max-time 5 https://files.corp.internal/ -o /dev/null
openssl s_client -connect 10.10.0.5:443 -servername files.corp.internal
Jabat tangan TCP yang selesai membuktikan ketercapaian dan dasar untuk port itu. Ia tidak membuktikan aplikasi berfungsi: pengesahan, muat naik atau panggilan API tertentu masih boleh gagal. Uji operasi yang benar-benar dilakukan pengguna, dengan setara tidak berbahaya dan bukan menghantar transaksi sebenar berulang kali.
Hasilkan semula keadaan yang gagal
Kegagalan yang muncul hanya dengan pemindahan besar ialah masalah saiz, bukan sambungan. Hantar paket besar dengan bit don't-fragment ditetapkan dan perhatikan di mana ia berhenti. Jika permintaan kecil berjaya dan yang besar tergantung, MTU terowong dan pengendalian MSS di gateway ialah suspek seterusnya.
ping -M do -s 1400 10.10.0.5
ping -M do -s 1472 10.10.0.5
curl -sS --max-time 30 -F file=@./sample.bin https://files.corp.internal/upload
Jika hanya satu subrangkaian gagal, lihat pemilih trafik, pengumuman laluan dan gateway balik subrangkaian itu. Jika hanya nama hos gagal, ikut DNS, termasuk pemutus mana yang digunakan klien dan sama ada paparan jauh kelihatan dari tapak itu. Tiga kegagalan berbeza, tiga pembetulan berbeza, dan ujian ping tidak membezakan satu pun.
Selepas pembetulan, ulangi ujian yang sama
Jalankan semula klien, destinasi, port dan muatan yang sama. Kemudian sambung semula atau uji laluan failover jika reka bentuk mempunyai satu, kerana pembetulan yang hanya berfungsi selagi contoh terowong asal hidup belum diuji. Kekalkan ujian terikat pada sumber sebenar, destinasi sebenar dan operasi sebenar dan bukan satu penunjuk hijau pada papan pemuka.
Rekod empat nilai asas dan hasilnya. Laporan seterusnya tentang simptom yang sama kemudian boleh bermula dengan bukti dan bukan dengan ping.