VPN antara tapak berasaskan laluan vs. berasaskan dasar: apa bezanya
IPsec berasaskan dasar memilih trafik dengan pemilih; berasaskan laluan menghantarnya melalui antara muka terowong. Kedua-duanya masih perlukan peraturan tembok api dan laluan balasan.
Kedua-dua reka bentuk melindungi trafik yang sama dengan mesin IPsec yang sama, dan ia berbeza pada apa yang memutuskan paket mana masuk ke terowong. Dalam sambungan berasaskan dasar, pemilih trafik yang dirundingkan melakukan kerja itu; dalam sambungan berasaskan laluan, laluan yang menunjuk ke antara muka terowong yang melakukannya. Mengelirukan kedua-duanya menghasilkan urutan sokongan biasa di mana terowong melaporkan dirinya terbentuk sementara aplikasi tidak sampai ke mana-mana. Perbezaannya paling penting apabila anda menambah rangkaian, menjalankan protokol penghalaan atau menyahpepijat laluan yang keluar secara senyap melalui pintu keluar yang salah.
Dua cara untuk memutuskan apa yang masuk ke terowong
VPN berasaskan dasar membina dasar keselamatan yang sepadan dengan awalan sumber dan destinasi, kemudian menyulitkan apa-apa yang padan. Rakan mesti merundingkan pemilih yang serasi, jadi skop berkesan akhirnya menjadi persilangan apa yang dicadangkan oleh kedua-dua pihak. Tiada apa di luar persilangan itu dilindungi, apa pun kata jadual penghalaan.
VPN berasaskan laluan mencipta antara muka yang mewakili terowong dan membenarkan jadual penghalaan menghantar trafik ke dalamnya. Daemon IKE masih memasang keadaan dan dasar bagi setiap antara muka, dan itulah perincian yang orang terlepas apabila membuat keputusan bahawa laluan telah menggantikan penyulitan. Kedua-dua reka bentuk menyulitkan dengan IPsec; hanya mekanisme pemilihan berbeza.
Baca perbandingan di bawah sebagai satu set tanda kegagalan dan bukan papan skor, kerana tiada lajur menang dengan sendirinya.
| Aspect | Policy-based | Route-based |
|---|---|---|
| What selects traffic | Negotiated selectors | A route into the tunnel interface |
| Adding a network | Edit selectors on both peers | Add a route, widen the selector once |
| Dynamic routing | Awkward to run over the tunnel | Runs over the interface directly |
| Typical failure | Tunnel up, host outside the selector | Tunnel up, no route or wrong source |
Berasaskan dasar: pemilih ialah kontrak
Pemilih dirundingkan, bukan sekadar dikonfigurasikan. Cadangkan 10.10.0.0/16 di satu pihak dan 10.10.1.0/24 di pihak yang lain, dan persatuan akan meliputi apa yang diputuskan oleh rundingan sementara setiap hos lain kekal di luar.
Baca keadaan yang dipasang dan bukan fail konfigurasi. Pada rakan Linux, jadual kernel sendiri ialah kebenaran asas, dan ia menunjukkan apa yang terselamat daripada rundingan. Dasar yang menamakan awalan yang betul tanpa keadaan yang sepadan bermakna persatuan itu tidak pernah bangkit. Keadaan yang digandingkan dengan dasar untuk awalan yang salah ialah masalah sebaliknya, dan ia menghasilkan terowong yang kelihatan sihat sementara satu subrangkaian tidak sampai ke mana-mana.
sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas
Bandingkan kedua-dua output dengan awalan yang anda percaya sedang dilindungi. Perbandingan tunggal itu menyelesaikan kebanyakan laporan tentang terowong yang berfungsi dengan pelayan yang tidak dapat dicapai. Ia juga menunjukkan rakan mana yang perlu diubah, kerana ketidakpadanan biasanya hanya kelihatan dalam satu arah.
Berasaskan laluan: antara muka ialah kontrak
Antara muka XFRM memberikan terowong nama dan identiti, dan trafik sampai kepadanya kerana jadual penghalaan berkata begitu. Beberapa awalan jauh kemudian menjadi masalah penghalaan dan bukan masalah pemilih, dan protokol penghalaan boleh mengiklankannya. Itulah keuntungan sebenar, bukan penyulitan.
Antara muka tidak menghapuskan keperluan untuk dasar. Daemon memasang peraturan bagi setiap antara muka yang terikat pada identiti antara muka, jadi paket yang tiba pada antara muka yang salah masih gagal. Alamat sumber yang tidak akan diterima oleh rakan juga gagal, walaupun dengan laluan yang sempurna. Berasaskan laluan bermakna laluan menentukan kemasukan, bukan bahawa dasar telah hilang.
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip route add 10.20.0.0/16 dev xfrm0
ip -s link show xfrm0
ip route get 10.20.5.10
Perhatikan pembilang antara muka setelah laluan berada di tempatnya. Laluan yang wujud sementara pembilang kekal sifar bermakna tiada apa yang dipadankan ke dalam terowong, yang biasanya menunjuk kepada keadaan yang hilang dan bukan laluan yang hilang.
Di mana kedua-dua reka bentuk benar-benar berbeza
Menambah rangkaian ialah ujian paling bersih bagi model mana yang sesuai dengan anda. Reka bentuk berasaskan laluan menambah satu laluan dan paling banyak melebarkan pemilih sekali, manakala reka bentuk berasaskan dasar menyunting pasangan awalan pada kedua-dua rakan dan berunding semula. Dua subrangkaian yang stabil menjadikan suntingan itu remeh, dan dua puluh menjadikannya projek.
Tiada model menggantikan tembok api, dan perbandingan biasanya berhenti sebelum titik ini. Pemilih yang lebar atau laluan yang lebar menentukan apa yang disulitkan, bukan apa yang dibenarkan.
Kelakuan MTU juga berbeza dalam amalan. Enkapsulasi mengurangkan muatan yang boleh digunakan, dan antara muka berasaskan laluan membawa MTU sendiri, jadi mengapit MSS di kedua-dua get laluan mengelakkan gejala lubang hitam di mana balasan kecil tiba dan yang besar hilang. Terowong berasaskan dasar menghadapi dinding yang sama dari sebelah sana, kerana pemilih tidak berkata apa-apa tentang saiz paket. Tetapkan apitan itu dengan sengaja dan bukannya menyalahkan rakan.
Berhijrah tanpa kehilangan laluan balik
Catat pasangan awalan yang sedia ada sebelum mengubah apa-apa, kemudian gerakkan satu laluan aplikasi dan perhatikannya dari hujung ke hujung. Terowong yang terbentuk bukan terowong yang memajukan, dan perbezaannya muncul dalam arah balasan.
Apabila rakan bersambung tetapi hos LAN tidak, periksa laluan balasan dan alamat sumber yang akan digunakan oleh hos jauh. Hos dengan dua antara muka mungkin menjawab dari yang salah, dan tiada perubahan pemilih membaikinya. Tangkap trafik di kedua-dua hujung sebelum menyunting algoritma.
ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns
Kekalkan laluan pengurusan yang tidak bergantung pada terowong semasa anda bekerja. Lebih mudah untuk bergolek balik apabila akses get laluan sendiri tidak menumpang pada sambungan yang anda nyahpepijat.