Tukar julat IP dari alamat pertama hingga terakhir kepada laluan VPN yang tepat
Julat dari alamat pertama hingga terakhir jarang muat dalam satu awalan. Tukarkannya kepada blok CIDR yang tepat supaya laluan tidak menangkap destinasi di luar selang.
Seseorang memberikan anda alamat pertama dan terakhir lalu meminta laluan VPN. Langkah yang menggiurkan ialah memilih awalan terpendek yang mengandungi kedua-dua hujung, dan langkah itu secara senyap menambah destinasi yang tidak diminta sesiapa. Blok CIDR sentiasa bersaiz kuasa dua dan alamat permulaannya selari dengannya, jadi selang sewenang-wenangnya biasanya memerlukan lebih daripada satu. Telusuri selang, bahagikannya dengan tepat, kemudian periksa alamat tepat di luarnya.
Mulakan dengan selang, bukan awalan
Tuliskan alamat pertama dan alamat terakhir sebelum anda menulis apa-apa lagi. Pasangan itu ialah keperluan; awalan hanyalah satu ungkapan yang mungkin bagi keperluan itu, dan kadangkala ungkapan yang salah. Dua nombor juga jauh lebih mudah diperiksa daripada topeng.
Selang yang selari mengecut menjadi satu blok. Yang tidak selari terurai kepada beberapa, dan penguraiannya tepat dan bukan anggaran. Yang tidak boleh anda lakukan ialah membundarkan ke luar dan menyebutnya cukup hampir, kerana alamat tambahan menerima dasar yang dibawa oleh laluan itu.
Kedua-dua arah kesilapan itu penting. Bagi laluan ke dalam terowong, alamat tambahan ditarik masuk ke VPN. Bagi pengecualian pintasan, alamat tambahan melangkaunya. Tiada satu pun hasilnya kelihatan dalam jadual laluan yang hanya menunjukkan awalan yang anda pasang.
Kes pertama: selang itu kebetulan selari
Ambil 198.51.100.64 hingga 198.51.100.127. Alamat pertamanya selari pada sempadan 64 alamat dan selangnya tepat 64 alamat, jadi satu /26 menggambarkannya tanpa baki.
Itulah kes yang mudah dan wajar dikenali, kerana ia bermakna keperluan itu mungkin ditulis oleh seseorang yang sudah berfikir dalam awalan. Ia juga bermakna pemeriksaannya singkat: pastikan saiznya kuasa dua dan permulaannya gandaan saiz itu.
Julat dokumentasi menjadi contoh yang baik justru kerana tiada siapa yang memilikinya. Jangan pasang alamat ini pada terowong sebenar dan jangan anggap julat yang anda terima ialah ruang dokumentasi hanya kerana ia kelihatan luar biasa.
Kes kedua: ia tidak selari, jadi bahagikannya
Sekarang ambil 198.51.100.100 hingga 198.51.100.107. Itu lapan alamat, iaitu kuasa dua, tetapi 100 bukan gandaan lapan. Satu blok sebesar itu tidak boleh bermula di situ, jadi selang itu mesti dilindungi oleh lebih daripada satu.
Liputan tepatnya ialah dua blok /30: 198.51.100.100/30 meliputi 100 hingga 103, dan 198.51.100.104/30 meliputi 104 hingga 107. Lapan alamat semuanya, tiada apa di luar selang, dan penguraiannya unik bagi selang tertentu.
python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"
Fungsi pustaka standard melakukan aritmetik untuk anda, dan dokumentasi ipaddress menentukan apa yang dikembalikannya. Apa yang tidak dilakukannya ialah memilih get laluan, memutuskan siapa pemilik alamat, atau memberi akses kepada mana-mana perkhidmatan di belakangnya.
Ukur apa yang akan ditangkap oleh awalan yang lebih luas
Sebelum menerima jalan pintas, hitung berapa kosnya. /28 yang bermula di 198.51.100.96 meliputi 96 hingga 111, iaitu enam belas alamat dan bukannya lapan. Lapan tambahan itu ialah 96 hingga 99 dan 108 hingga 111, dan setiap satunya akan mewarisi laluan itu.
python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"
Lapan destinasi tambahan ialah nombor konkrit yang boleh anda masukkan ke dalam permintaan perubahan. Ia juga nombor yang menentukan sama ada jalan pintas itu boleh diterima, dan itu persoalan dasar dan bukan aritmetik.
Asingkan aritmetik dan penemuan. Selang yang diberikan oleh pengendali rangkaian ditukar dengan tepat. Satu jawapan DNS daripada perkhidmatan yang berubah tidak menetapkan julat lengkap atau kekal perkhidmatan itu, dan nama yang tidak berkaitan boleh berkongsi satu alamat.
Pasang set yang tepat dan sahkan tepinya
Serahkan setiap awalan yang terhasil kepada pemilik konfigurasi VPN dan biarkan mereka memasangnya melalui mekanisme yang disokong. Jika keperluan itu memerlukan dua entri, kekalkan dua entri dan bukannya meluaskan satu supaya borang lebih pendek.
sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0 sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0 ip route get 198.51.100.101 ip route get 198.51.100.97
Dua arahan terakhir ialah yang orang langkaui. Alamat dalam yang pertama sepatutnya mengikut laluan baharu, dan alamat tepat di luar selang tidak sepatutnya. Jika kedua-duanya melalui jalan yang sama, selang itu telah diluaskan di suatu tempat antara keperluan dan konfigurasi.
Catat alamat pertama, alamat terakhir dan awalan yang menyatakannya. Orang seterusnya yang menyemak peraturan itu boleh membandingkan keperluan dengan konfigurasi tanpa mengulang aritmetik, dan perbezaan antara laluan yang tepat dan laluan yang mudah kekal kelihatan.