Baris rute Anda kembali ditolak, dan saran yang Anda temukan mengatakan aktifkan penerusan IP. Kedua hal itu berada pada tahap masalah yang berbeda. Penerusan menentukan apakah host boleh memindahkan paket antar antarmuka; ia tidak berpendapat apakah tujuan yang Anda ketik adalah jaringan yang valid. Perbaiki prefiksnya dulu, karena penerusan tidak akan menyelamatkan alamat dan mask yang tidak cocok.

Apa yang sebenarnya dikeluhkan pengurai

Tujuan yang ditulis sebagai alamat plus mask harus mendeskripsikan jaringan, dan jaringan dimulai dengan bit host yang dinolkan. Ketika alamat yang Anda berikan masih membawa nilai di bagian host, pasangan itu tidak konsisten secara internal: 172.20.130.0 tampak rapi karena berakhiran nol, tetapi nol di oktet keempat bukan satu-satunya hal yang penting. Oktet ketiga adalah yang menahan bit tersesat di sini.

Alat menangani ketidakkonsistenan itu secara berbeda. Pengurai ketat menolak baris dan menyebut bit host. Pengurai longgar menutupi alamat dengan mask dan memasang sesuatu yang tidak Anda minta, yang lebih buruk, karena konfigurasi kini merutekan rentang yang tidak pernah Anda maksud. Modul ipaddress Python menawarkan pilihan itu secara langsung: penguraian jaringan ketat memunculkan galat, dan strict=False menutupi bit host. Klien Anda bisa ketat, longgar, atau tidak konsisten antar versi, jadi bacalah pesannya alih-alih memercayai kebiasaan.

Kerjakan contohnya dengan tangan

Ambil terowongan yang perlu mencapai 172.20.130.0 dengan mask /20. /20 meminjam empat bit dari oktet ketiga, jadi oktet itu hanya dihitung dalam langkah 16: 0, 16, 32 dan seterusnya sampai 240. Nilai 130 jatuh antara 128 dan 143, yang berarti jaringan yang mencakupnya mulai di 172.20.128.0, bukan di 172.20.130.0 dengan oktet terakhir dinolkan.

Dituliskan, blok itu membentang dari 172.20.128.0 sampai 172.20.143.255 dan menampung 4,096 alamat. Memberikan nilai yang sama ke pengurai tidak ketat menunjukkan penggantian yang akan ia lakukan atas nama Anda:

$ python3 -c "import ipaddress; n=ipaddress.ip_network('172.20.130.0/20', strict=False); print(n, n.num_addresses)"
172.20.128.0/20 4096

Putuskan tujuan mana yang sebenarnya Anda maksud

Baris yang ditolak biasanya menyembunyikan salah satu dari tiga niat, dan hanya Anda yang bisa memilih. Jika terowongan membutuhkan seluruh blok, tulis 172.20.128.0/20, alamat jaringan kanonis. Jika terowongan hanya membutuhkan segmen 130, mask-nya salah dan 172.20.130.0/24 adalah bentuk jujurnya. Jika sasarannya satu mesin, rute host IPv4 adalah /32 dan tidak ada aritmetika mask yang terlibat.

Masing-masing mengizinkan jumlah lalu lintas yang berbeda, dan itulah alasan sebenarnya untuk tidak melebarkan mask sampai keluhan berhenti. /16 menerima baris hampir di mana saja dan mengirim lalu lintas ke tujuan yang tidak pernah Anda maksud untuk dirutekan lewat terowongan. Tulis prefiks tersempit yang cocok dengan niat, lalu konfirmasikan terhadap hop berikutnya yang Anda harapkan, bukan terhadap kesunyian pengurai.

Mengapa penerusan bukanlah solusinya

Rute yang ditolak tidak pernah mencapai jalur penerusan, jadi mengubah net.ipv4.ip_forward tidak dapat mengubah hasilnya. Pengaturan itu penting nanti, ketika host harus meneruskan paket antar antarmuka, dan menyalakannya sebelum tabel benar hanya mengubah tahap mana yang gagal berikutnya.

Dua hal lain sering disalahkan pada titik yang sama. Rute bisa diterima dan tetap kalah dari rute yang lebih spesifik, dan aturan firewall bisa menjatuhkan lalu lintas setelah pencarian yang benar. Pisahkan tahapnya: sintaksis, pemasangan, pemilihan, penyaringan. Bekerja pada tahap yang salah terasa produktif karena setiap perubahan memulai ulang sesuatu.

Periksa rute yang terpasang dan jalur yang dimenangkannya

Setelah klien menerima baris, lihat apa yang ia pasang dan rute mana yang dipilih kernel untuk alamat perwakilan di dalam blok. Jika prefiks yang terpasang berbeda dari yang Anda tulis, sebuah penormal bertindak atas nama Anda.

Tanyakan alamat anggota serta satu di luar blok, supaya perbandingannya bermakna dan bukan hanya satu baris yang menenangkan:

ip -4 route show 172.20.128.0/20
ip -4 route get 172.20.140.10
ip -4 route get 172.20.200.10

Kueri ketiga seharusnya jatuh di luar terowongan jika prefiks Anda benar, dan bila tidak, rute yang Anda bangun lebih luas dari yang Anda kira. Catat apa yang seharusnya dicakup prefiks sebelum menyentuh pengaturan berikutnya, karena rute yang terurai dan jalur yang bekerja tetap merupakan pengamatan yang terpisah.

Artikel terkait