Mengapa route -interface tidak mencapai host di luar tautan
Bendera antarmuka memberi tahu macOS bahwa tujuan ada di kabel. Apa pun di luar tautan lokal membutuhkan gateway yang dapat dijangkau, dan terowongan masih bisa menolaknya.
route menerima nama antarmuka Wi-Fi, keluar tanpa keluhan, dan host tetap tidak terjangkau. Tidak ada yang rusak; hubungan dalam rute memang salah: bendera antarmuka mengatakan di tautan mana sebuah tujuan berada, bukan router mana yang harus menerima lalu lintas untuk tujuan yang berada di tempat lain. Perintah berhasil karena sintaksisnya valid, bukan karena menggambarkan jalur yang berfungsi.
Perbedaan itulah yang menentukan apakah pengecualian rute di samping VPN akan berfungsi atau hanya terlihat masuk akal.
Antarmuka adalah pintu keluar, hop berikutnya adalah penyerahan
Pada Mac dengan alamat 192.168.50.20 dan router di 192.168.50.1, mesin lain pada tautan yang sama dapat dijangkau langsung. Frame dialamatkan ke mesin itu dan diletakkan di kabel. Tidak ada router yang terlibat, dan rute yang dibatasi antarmuka menyatakan persis hal itu. Ubah ujung jauh menjadi host di gedung lain dan perintah yang sama berhenti masuk akal. Mac tidak memiliki alamat lapisan kedua untuk diletakkan di kabel, jadi bendera antarmuka tidak punya apa pun untuk dijelaskan.
Tujuan di luar tautan berbeda. Mac tidak dapat meletakkan frame di kabel yang dialamatkan ke host yang tidak dapat dijangkau pada lapisan kedua; ia menyerahkan paket ke router yang bisa. Karena itu rute membutuhkan gateway, dan gateway itu sendiri harus dapat dijangkau pada tautan yang terpasang.
Menggunakan bendera antarmuka untuk tujuan di luar tautan memberitahu macOS untuk memperlakukan tujuan itu seolah-olah ada di kabel. Kernel lalu gagal menyelesaikan alamat lapisan kedua untuknya, dan paket dibuang tanpa hal berguna dalam galat.
Apa yang sebenarnya dinyatakan bendera antarmuka
Referensi rute Apple mendefinisikan bentuk antarmuka untuk tujuan yang dapat dijangkau langsung tanpa perantara. Ini pernyataan tentang model tautan, bukan preferensi tentang adaptor mana yang dipakai. Mencapai host internet melalui Wi-Fi tetap membutuhkan router pada tautan Wi-Fi itu, dan rute harus menyebutnya.
Cakupan antarmuka adalah atribut terpisah. Ia mengaitkan rute dengan antarmuka tertentu untuk keputusan cakupan seperti alamat sumber mana yang berlaku, tetapi tidak menciptakan keterjangkauan bagi tujuan yang tidak dapat dijangkau antarmuka itu sendiri. Kedua atribut menjawab pertanyaan berbeda.
Itulah sebabnya perintah bisa diterima, muncul di tabel, dan tetap gagal. Kernel tidak memvalidasi niat Anda; ia mencatat apa yang Anda nyatakan, dan pernyataannya adalah bahwa tujuan berada di tautan. Keberhasilan diam-diam diikuti pembuangan diam-diam adalah hasil yang diharapkan, bukan bug. Baca kembali pernyataan itu kepada diri sendiri sebelum menyalahkan jaringan.
Rute yang dibutuhkan tujuan di luar tautan
Untuk jalur yang disetujui ke alamat dokumentasi seperti 198.51.100.25 melalui router LAN, hubungan yang dimaksud adalah tujuan, hop berikutnya 192.168.50.1, dan antarmuka LAN yang mencapai hop berikutnya itu. Antarmuka tersirat oleh pencarian hop berikutnya, bukan dipaksakan oleh perintah rute.
Di macOS, inspeksi hanya-baca adalah route -n get 198.51.100.25. Baca baris gateway dan antarmuka bersama-sama dan periksa bahwa gateway adalah alamat yang benar-benar dapat dijangkau Mac. Gateway di subnet lain, atau yang telah hilang sejak perubahan jaringan terakhir, menghasilkan rute yang terlihat benar dan tidak meneruskan apa pun.
Jangan menulis en0 secara hardcode dalam instruksi permanen. Nama antarmuka berubah dengan adaptor, dock, dan klien VPN, dan rute yang menyebut yang salah gagal dengan cara yang mudah disalahartikan sebagai gangguan jaringan yang lebih luas.
Baca pilihan saat ini sebelum menggantinya
Sebelum menambahkan apa pun, periksa apa yang sudah dipilih sistem dan mengapa. Keluaran itu memberi tahu apakah lalu lintas melewati terowongan, melalui router LAN, atau tidak ke mana-mana, dan memberi Anda garis dasar untuk dibandingkan setelah perubahan. Tanpanya, Anda tidak dapat mengetahui apakah rute baru berlaku.
Lalu periksa keluarga alamat. Rute yang ditambahkan untuk IPv4 tidak melakukan apa pun untuk tujuan IPv6, dan layanan yang diselesaikan ke kedua keluarga dapat tampak terjangkau sesekali. Tabel rute dan resolver menjawab pertanyaan berbeda, dan keduanya harus sesuai dengan jalur yang dimaksud.
Terakhir, ingatlah bahwa rute adalah pilihan, bukan izin. Profil VPN terkelola atau filter klien masih dapat melarang jalur langsung meskipun tabel menunjuk ke sana, jadi ujilah dengan aplikasi yang sebenarnya alih-alih menganggap entri tabel yang berhasil mengakhiri penyelidikan.
Terowongan dan kebijakan mengubah bentuk
Antarmuka titik-ke-titik adalah kasus tersendiri. Terowongan dapat membawa rute tanpa alamat gateway bergaya Ethernet, dan itu tidak otomatis salah. Terapkan model tautan nyata antarmuka alih-alih memperluas contoh Wi-Fi ke setiap entri tabel yang Anda lihat.
Untuk permintaan perubahan, catat tujuan, jalur jaringan yang disetujui, gateway dan antarmuka saat ini, dan siapa yang diharapkan memelihara pengecualian itu. Pemilik penting karena rute sekali pakai yang diketik di prompt bukan kebijakan, dan penyambungan ulang berikutnya akan menghapusnya.
Jika persyaratannya adalah menjangkau host ini saat VPN aktif, jawaban jujurnya biasanya rute host spesifik melalui router lokal, dipasang oleh manajer jaringan yang memiliki antarmuka. Jika persyaratannya adalah menjangkau apa pun secara langsung, persyaratannya sendiri perlu tinjauan kebijakan sebelum perlu perintah rute.