Ini adalah Pertanyaan Canonical tentang menyelesaikan konflik subnet IPv4 antara jaringan lokal klien VPN dan satu di seluruh tautan VPN darinya.
Setelah tersambung ke lokasi jarak jauh melalui OpenVPN, klien mencoba mengakses server di jaringan yang ada di subnet seperti 192.0.2.0/24. Namun, kadang-kadang, jaringan pada LAN klien memiliki alamat subnet yang sama: 192.0.2.0/24. Klien tidak dapat terhubung ke server jauh melalui pengetikan IP-nya karena konflik ini. Mereka bahkan tidak dapat mengakses internet publik saat terhubung ke VPN.
Masalahnya adalah bahwa subnet 192.0.2.0/24 ini perlu dirutekan oleh VPN, tetapi juga harus dirutekan sebagai LAN klien.
Adakah yang tahu cara mengurangi masalah ini? Saya memiliki akses ke server OpenVPN.
Jawaban:
Dimungkinkan untuk menyelesaikan ini dengan menggunakan NAT; hanya saja tidak terlalu elegan.
Jadi dengan asumsi Anda tidak dapat menyelesaikan ini dengan memiliki jaring internal yang memiliki nomor jaringan yang tidak biasa sehingga tidak pernah benar-benar mengalami konflik, inilah prinsipnya:
Karena subnet lokal dan jarak jauh memiliki nomor jaringan yang sama, lalu lintas dari klien Anda tidak akan pernah menyadari bahwa ia harus melalui gateway terowongan untuk mencapai tujuannya. Dan bahkan jika kita bayangkan itu bisa, situasinya akan sama untuk host jarak jauh karena akan mengirim jawaban.
Jadi tetap dengan saya dan berpura-pura bahwa sampai sekarang, tidak ada masalah samping ketika saya menulis bahwa untuk konektivitas penuh, Anda perlu NAT kedua ujungnya di dalam terowongan untuk membedakan host dan memungkinkan untuk routing.
Membuat beberapa jaring di sini:
Jadi di dalam terowongan VPN, host kantor sekarang 198.51.100.x dan host kantor jarak jauh 203.0.113.x. Lebih jauh lagi kita berpura-pura semua host dipetakan 1: 1 di NAT gateway VPN masing-masing. Sebuah contoh:
Jadi ketika host 192.0.2.5/24 di kantor jauh ingin terhubung ke host dengan ip yang sama di jaringan kantor, perlu melakukannya dengan menggunakan alamat 198.51.100.5/24 sebagai tujuan. Berikut ini terjadi:
Jadi, sementara ada solusinya, ada sejumlah masalah yang harus diatasi agar ini dapat bekerja dalam praktik:
Jadi pemecahan ini perlu desain yang cermat. Jika kantor jauh Anda benar-benar terdiri dari pejuang jalanan, Anda menambahkan lapisan masalah di dalamnya:
Tergantung pada klien VPN Anda, Anda mungkin dapat secara otomatis memilih satu VPN atau yang lain tergantung pada alamat jaringan segmen lokal.
Perhatikan bahwa semua penyebutan NAT dalam konteks ini menunjukkan fungsi NAT yang dapat dikatakan terjadi dalam perspektif terowongan. Secara bertahap, pemetaan NAT statis harus dilakukan sebelum paket "memasuki" terowongan, yaitu sebelum dienkapsulasi dalam paket transportasi yang akan membawanya melintasi internet ke gateway VPN lainnya.
Ini berarti bahwa seseorang tidak boleh membingungkan alamat ip publik gateway VPN (dan yang dalam praktiknya mungkin juga NAT: ed, tetapi kemudian sepenuhnya di luar perspektif transportasi ke situs jarak jauh melalui VPN) dengan alamat pribadi unik yang digunakan sebagai topeng. untuk alamat pribadi duplikat. Jika abstraksi ini sulit untuk digambarkan, ilustrasi tentang bagaimana NAT dapat dipisahkan secara fisik dari gateway VPN untuk tujuan ini dibuat di sini:
Menggunakan NAT dalam Jaringan yang Tumpang Tindih .
Mengondensasi gambar yang sama ke pemisahan logis di dalam satu mesin, yang mampu melakukan fungsi NAT dan gateway VPN, hanya mengambil contoh yang sama satu langkah lebih jauh, tetapi memang lebih menekankan pada kemampuan perangkat lunak yang ada. Meretasnya bersama misalnya dengan OpenVPN dan iptables dan memposting solusinya di sini akan menjadi tantangan yang layak.
Softwarewise tentunya dimungkinkan:
PIX / ASA 7.x dan yang lebih baru: LAN-to-LAN IPsec VPN dengan Contoh Konfigurasi Jaringan yang Tumpang tindih
dan:
Mengkonfigurasi Terowongan IPSec Antar Router dengan Duplikat Subnet LAN
Implementasi yang sebenarnya karena itu tergantung pada banyak faktor, sistem operasi yang terlibat, perangkat lunak terkait dan kemungkinannya tidak sedikit. Tapi itu tentu bisa dilakukan. Anda perlu berpikir dan bereksperimen sedikit.
Saya belajar ini dari Cisco seperti yang terlihat oleh tautan.
sumber
Jika Anda memerlukan solusi kotor sementara untuk satu atau beberapa ips server yang diketahui, solusi paling sederhana adalah opsi perutean sisi klien statis.
Dalam kasus saya, saya menambahkan server tujuan yang saya inginkan (192.168.1.100) ke tabel routing saya di klien linux saya melalui:
Setelah itu, hapus rute statis ini dengan perintah penghapusan rute.
sumber
dev tun0
Anda perlu-interface tun0
ya ini yang terburuk. bagi saya itu terjadi sepanjang waktu dari kamar hotel, sebelum admin VPN menyadari bahwa mereka harus menggunakan rentang ip yang lebih tidak jelas. 10.0.0.0/24 dan 10.1.1.1/24 adalah yang terburuk. jika Anda dapat membantu itu jangan ip jaringan nirkabel seperti itu.
jadi jawabannya adalah "memperbaiki" wap untuk menggunakan jaringan internal yang berbeda (yaitu 10.255.255.0/24) dan kemudian memberi Anda sewa berbeda (yaitu ip dalam rentang yang dapat merutekan kembali ke corp vpn), atau jika Anda tidak memiliki Saya tidak bisa mendapatkan admin di wap, cukup buka starbucks. atau 20 menit memimpin :)
jika ini hanya dalam pengaturan lab, cukup gunakan rentang yang berbeda.
sumber
Saya menggunakan mac menjalankan El Capitan. Sementara saran di atas tidak bekerja untuk saya, mereka membawa saya ke solusi yang berfungsi:
ifconfig
mulai VPN, lakukan
ifconfig
dan catat yang merupakan antarmuka baru. Dalam kasus saya itu adalah ppp0 dengan alamat ip 192.168.42.74ketik:
Saya menguji dulu dengan
ping
dan kemudian saya membuktikannya bekerja dengan mengakses server git.Ketika saya mencoba menggunakan dev ppp0 untuk akhir perintah rute seperti yang disebutkan di atas, ia mengeluh.
sumber
192.168.1.79
datang dari pertukaran ini?Saya punya solusi sederhana yang saya gunakan di ruang kerja bersama yang memiliki rentang IP yang saling bertentangan (10.x)
Saya terhubung ke jaringan dengan ponsel saya, lalu saya berbagi koneksi jaringan via bluetooth dengan laptop saya. Sekarang saya dapat menggunakan VPN untuk perusahaan jarak jauh saya.
Saya yakin ini akan berfungsi sama melalui USB jika Anda membutuhkan koneksi yang lebih cepat.
sumber
Jika Anda hanya perlu menekan satu atau dua alamat ip, tambahkan pernyataan rute ke file konfigurasi ovpn Anda seperti ini:
rute 192.168.1.10 255.255.255.255
rute 192.168.1.11 255.255.255.255
Ini akan menambahkan rute hanya untuk Ip itu ketika Anda menghubungkan vpn Anda dan menghapusnya ketika vpn itu terputus.
Tetap bekerja untuk saya di Windows.
sumber
Jawaban dari Aydin K. adalah untuk linux. Jika Anda menginginkan fungsi yang sama untuk windows, Anda bisa mengetik
atau
Anda bisa mendapatkan antarmuka id dengan perintah:
sumber
Hanya sebagai pengingat: seluruh masalah ini disebabkan oleh kekurangan alamat IPv4 selama bertahun-tahun, dan penggunaan ekstensif rentang IP pribadi di belakang NAT untuk mengatasi kekurangan ini!
Solusi ideal dan definitif untuk masalah ini cukup mudah (meskipun dapat, dan akan, membutuhkan waktu untuk diluncurkan secara global): IPv6 ...
Di dunia IPv6, tidak ada kekurangan IP publik (dan tidak akan ada, acara dalam beberapa dekade). Jadi tidak ada alasan untuk tidak memiliki IP publik di masing-masing dan setiap perangkat di setiap jaringan. Dan jika Anda membutuhkan isolasi jaringan, teruslah memfilter dengan firewall, tetapi tanpa NAT yang jelek ...
sumber