Split tunneling biasanya dijelaskan sebagai cara menjaga lalu lintas korporat di dalam tunnel dan sisa internet di luar firewall. Kedua bagian deskripsi itu salah dengan cara yang sama. Split tunneling adalah keputusan rute yang diambil klien, dan keputusan rute tidak mengatakan apa pun tentang apa yang terjadi pada paket setelah mencapai headend.

Satu layanan mitra pada alamat publik, yang bersikeras melihat alamat kantor pusat Anda, sudah cukup untuk meruntuhkan cerita itu.

Mitos: split tunnel mengeluarkan firewall dari jalur

Keyakinannya adalah bahwa tujuan apa pun di luar rentang privat tetap memakai koneksi internet lokal, sehingga firewall tidak pernah melihatnya dan tidak pernah membutuhkan aturan untuknya. Itu hanya berlaku selama tujuan tersebut tidak ada dalam daftar tunnel. Begitu operator menambahkan host publik ke ACL split-include, klien mengirim lalu lintas itu ke dalam tunnel, dan ASA harus merutekan, memfilter, dan menerjemahkannya seperti aliran terdekripsi lainnya. Tidak ada yang berubah pada klien selain daftar tujuan.

Klien tidak menjadi router. Ia mengikuti kebijakan yang Anda berikan.

Apa yang sebenarnya dilakukan rute split-include

Pada penyiapan akses jarak jauh Cisco ASA, kebijakan grup membawa split-tunnel-policy tunnelspecified dan split-tunnel-network-list yang menamai ACL standar. Setiap baris permit dalam ACL itu adalah tujuan yang harus dikirim klien ke dalam tunnel, dan semua yang lain tetap memakai rute default lokal.

Menambahkan satu host adalah satu baris, dan itulah satu-satunya bagian perubahan yang bisa dilihat klien: access-list RA-SPLIT standard permit host 203.0.113.20.

Sambungkan ulang klien setelahnya. Kebijakan ditukar saat koneksi, jadi sesi yang sudah terbentuk mempertahankan daftar lama dan membuat perubahan tampak tidak melakukan apa pun.

Paket masuk dan keluar melalui antarmuka yang sama

Sekarang telusuri aliran setelah dekripsi. Paket masuk melalui antarmuka luar lewat tunnel VPN, tujuannya adalah alamat publik, dan tabel rute mengirimnya kembali keluar melalui antarmuka luar yang sama menuju internet. Lalu lintas yang masuk dan keluar pada satu antarmuka akan dibuang kecuali ASA diizinkan, dan itulah yang dilakukan same-security-traffic permit intra-interface. Tanpanya, koneksi gagal dengan cara yang tampak seperti masalah rute padahal bukan.

Pengaturan itu bersifat global. Ia mengizinkan hairpinning untuk setiap aliran yang membutuhkannya, bukan hanya untuk host mitra ini, jadi tempatnya di perubahan yang ditinjau, bukan di uji cepat.

Mengapa PAT yang dibatasi tujuan bukan opsional

Alamat sumber pada paket terdekripsi masih alamat VPN klien, biasanya dari pool seperti 10.77.0.0/24. Alamat itu tidak memiliki rute di internet publik, jadi mitra entah tidak pernah menjawab atau menjawab ke tempat yang tidak ada.

Penerjemahan memperbaiki sumber dan membiarkan tujuan utuh. Karena objeknya sudah didefinisikan di tempat lain, aturan manual yang dibatasi ke tujuan ini berbentuk seperti ini:

same-security-traffic permit intra-interface

object network RA_POOL
 subnet 10.77.0.0 255.255.255.0
object network PARTNER_HOST
 host 203.0.113.20

nat (outside,outside) source dynamic RA_POOL interface destination static PARTNER_HOST PARTNER_HOST

Bagian destination static penting. Jika dihilangkan, aturan menjadi penerjemahan luas yang bisa cocok dengan jauh lebih banyak lalu lintas dari yang dimaksud, dan aturan identity luas yang lebih awal dalam urutan bisa mengalahkannya sepenuhnya. Periksa show nat detail dan urutan bagian sebelum menganggap aturan Anda yang cocok.

PAT antarmuka juga berarti mitra melihat alamat antarmuka ASA, yang mungkin diterjemahkan lagi di hulu. Jika kontrak menyebutkan alamat, pastikan dari ujung ke ujung, bukan pada satu lompatan.

Buktikan dengan tujuan uji yang tepat

Gunakan host mitra itu sendiri, bukan halaman what-is-my-ip generik. Halaman itu hampir pasti di luar daftar split, jadi ia melaporkan alamat internet lokal Anda dan tidak mengatakan apa pun tentang jalur ini. Buka koneksi baru ke layanan mitra dan tanyakan sumber apa yang mereka lihat, atau jalankan packet-tracer input outside tcp 10.77.0.10 12345 203.0.113.20 443 detailed dan baca tahap NAT dan rute baris demi baris. Traceroute dari klien adalah pemeriksaan yang lebih lemah, karena menunjukkan jalur yang sudah terjadi, bukan kebijakan yang memilihnya.

Lalu periksa apa yang tidak boleh berubah. Situs web biasa harus tetap keluar dari koneksi lokal, dan sumber daya privat dalam daftar tunnel harus tetap dapat dijangkau. Perubahan yang memperbaiki mitra dan merusak salah satu dari keduanya adalah bug lain.

Versi yang berfungsi dari desain ini singkat: satu host di ACL split, izin hairpin, satu aturan PAT yang dibatasi tujuan. Semua hal lain dalam cerita ini adalah mitos.

Artikel terkait