Saya ingin menghubungkan beberapa LAN yang terletak di bangunan terpencil.
Situs "pusat" memiliki komputer Linux yang menjalankan OpenVPN. Setiap situs jarak jauh juga menjalankan OpenVPN.
- situs pusat memiliki nomor 192.168.0.0/24 LAN
- beberapa situs jarak jauh juga diberi nomor 192.168.0.0/24
- Saya tidak bisa / tidak mau / tidak mau / apa pun memodifikasi penomoran LAN
- Saya tidak memiliki kontrol pada OpenVPNs paling terpencil
Saya kemudian perlu:
1. mendefinisikan LAN virtual
2. mengkonfigurasi NAT 1: 1 untuk setiap situs
3. NAT 1: 1 harus dikonfigurasi pada router pusat
.
Jadi setiap situs terlihat memiliki LAN 10.10.x.0 / 24.
Ketika sebuah komputer ingin mencapai, katakanlah, 192.168.0.44 di situs 12, ia hanya perlu mengirim paquet ke 10.10.12.44
Mengoperasikan VPN bukan masalah bagi saya. Saat ini saya menghubungkan 60+ situs. Tapi saya tidak menemukan cara sederhana untuk melakukan NAT 1: 1 ini.
Berikut adalah contoh paket yang dikirim dari situs pusat ke situs jarak jauh, dan paket responsnya:
Saya melakukan beberapa tes dengan iptables NETMAP tapi saya tidak bisa membuatnya bekerja karena saya tidak menemukan cara untuk mengubah sumber + tujuan setelah keputusan routing.
Saya lebih suka menghindari fitur --client-nat
OpenVPN yang baru .
Mungkin saya harus memaksa routing ip route
? Atau untuk mengulang dua kali ke tumpukan jaringan dengan veth
?
Catatan: Saya tidak ingin menggunakan topeng. Hanya 1/1 NAT.
EDIT:
Tidak mungkin dengan pengaturan openVPN biasa. Karena paket dari situs jarak jauh tidak dapat dibedakan dari paket dari situs lain: keduanya memiliki sumber dan alamat tujuan yang sama, dan keduanya berasal dari antarmuka tun (atau ketuk) yang sama. Jadi tidak mungkin untuk sumber-NAT itu.
Solusi 1: lakukan NAT di situs remote. Tidak mungkin dalam kasus saya. Saya harus melakukannya hanya di situs pusat.
Solusi 2: siapkan satu VPN untuk setiap situs jarak jauh. Jadi saya akan memiliki satu lagu untuk masing-masing. Saya pikir ini bisa baik-baik saja. Memori tidak terlalu efisien tapi ok.
Solusi 3: mengatur terowongan (tidak terenkripsi) di dalam VPN untuk setiap situs. Ini akan memberikan satu antarmuka untuk masing-masing. Terowongan sederhana bukanlah platform silang (ke knoledge saya). Misalnya GRE atau ipip atau duduk ok untuk Linux, tetapi beberapa situs yang jauh hanya menjalankan satu komputer Windows, jadi openVPN diinstal di dalamnya. Jadi mustahil untuk memasang terowongan sederhana. Pilihan lain adalah menggunakan terowongan yang lebih rumit (yang?) Tetapi overhead pada sistem dan pada sysadmin mungkin lebih besar daripada memiliki beberapa VPN
Solusi 4: kompilasi openVPN terbaru, karena termasuk fitur NAT 1: 1. Saya menguji ini minggu ini.