OpenVPN-Connection sebagai gateway default untuk host lain di subnet yang sama

0

Saya ingin menggunakan koneksi openvpn saya sebagai gateway default untuk host lain di subnet yang sama. Saya memiliki 2 Host di subnet yang sama, keduanya dengan Ubuntu Server 14.04.

Host A menjalankan OpenVPN untuk membuat koneksi ke openvpn-exit-node saya. Tuan rumah ini telah dimodifikasi untuk memungkinkan penerusan ip.

Host B adalah client-app-server dan harus menggunakan koneksi internet melalui koneksi openvn bersama dari Host A. Karena saya sudah mengatur gateway-ip Host B ke IP Host A, lalu lintas dari Host B sekarang disalurkan melalui koneksi openvpn dari Host A.

Masalahnya muncul ketika koneksi openvpn pada Host A turun (setidaknya setiap 24 jam di sini di Jerman) dan menghubungkan kembali; setelah itu Host B menggunakan gw default dari Host A dan memotong koneksi openvpn (kadang-kadang sampai terowongan naik lagi dan setiap kali Host B reboot).

Prestasi tersebut harus, untuk memastikan bahwa Host B mendapatkan internet hanya melalui koneksi openvpn. Apakah ada kemungkinan untuk memastikan, bahwa Host B hanya memiliki akses ke internet selama ia menggunakan terowongan openvn?

Host A (eth0 ip: 10.11.12.6/gw: 10.11.12.1) (tun0 ip: 10.8.0.146/gw: 10.8.0.145):

  • Menginstal OpenVPN dan mengonfigurasi koneksi klien ke openvn-exit-node saya: berfungsi
  • Configured Host A untuk memungkinkan ip-forwarding dan konfigurasi IP Masquerading: berfungsi

Host B (eth0 ip: 10.11.12.9/gw: 10.11.12.6): - Mengubah gateway default ke alamat ip Host A: works - Semua traffic menggunakan openvpn-tunnel pada Host A

Masalah: Setiap kali koneksi openvpn turun dan / atau openvpn terhubung kembali, Host B tampaknya beralih kembali menggunakan gateway default Host A. Host B pada saat seperti itu harus tetap tanpa akses internet tetapi alih-alih menggunakan koneksi yang digunakan Host A untuk terhubung ke gateway openvpn.

Hormat kami, D0C

D0ckW0rka
sumber

Jawaban:

0

Untuk Mencapai ini, Anda harus menggunakan Routing Berbasis Kebijakan; Akan memungkinkan Anda membuat tabel perutean independen yang terpisah, dan mengarahkan lalu lintas ke tabel perutean apa pun berdasarkan properti paket seperti Source-IP.

Buat tabel routing baru sebagai berikut:

echo "200    OpenVPN" >>/etc/iproute2/rt_tables

Tambahkan gateway default ke tabel yang baru dibuat sebagai berikut:

route add default via OpenVPN-GW-IP table OpenVPN

Izinkan Host-B dirutekan menggunakan tabel perutean ini:

ip rule add from Host-B-IP table OpenVPN

Anda juga perlu menambahkan rute berikut ke tabel baru:

ip route add 127.0.0.0/8 dev lo table OpenVPN
ip route add YOUR-Local-Subnet dev DEVICE-NAME table OpenVPN

Pembaruan: Gunakan SNAT, bukan MASQURADE,

iptables -t nat -A POSTROUTING -s 10.11.12.9 -j SNAT --to-source 10.8.0.146
MohyedeenN
sumber
Hai dan terima kasih atas bantuan Anda; karena alamat ip dari koneksi openvpn saya berubah dari waktu ke waktu (dhcp dari penyedia layanan vpn) saya tidak yakin tentang ip mana yang dimaksud dengan "OpenVPN-GW-IP". Terima kasih dan salam hormat, D0C
D0ckW0rka
Saya pikir Anda memiliki server openvpn Anda sendiri, apa pun OpenVPN-GW-IP: ketika Anda terhubung ke VPN, tabel perutean Anda harus diubah dengan entri baru ditambahkan; cari tahu apa itu gateway koneksi VPN, route -n | grep tun dan gunakan ip itu ... ini tidak boleh diubah karena saya tahu IP VPN ditentukan berdasarkan sertifikat dan mereka tidak diubah oleh waktu ...
MohyedeenN
Maaf atas kesalahpahaman - Saya tidak bermaksud bahwa saya adalah pemilik VPN-Exit-Node; pada kenyataannya itu adalah penyedia vpn anonim komersial (sekarang ada sertifikat untuk mengidentifikasi tetapi nama pengguna / kata sandi). Bahkan jika ip-address itu sendiri berubah, openvpn-gw-ip harus selalu tetap sama - saya akan menguji ini dan memberi tahu Anda. Salam, D0C PS: menambahkan alamat yang digunakan dalam pertanyaan
D0ckW0rka
OK, saya sudah melakukan ini sekarang. Lalu lintas dari Host B (setelah reboot baru) melewati koneksi openvpn, tetapi masalahnya masih ada. Jika koneksi openvpn turun (diuji dengan secara manual me-restart layanan openvpn), Host B beralih ke gateway default LAN saya yang harus dihindari. Bahkan setelah re-up dari Host vpn-tunnel B tidak akan mereset ke tunnel-gw. Penyetelan ulang terjadi hanya setelah restart dari Host B. Salam, D0C
D0ckW0rka
Bagaimana, apa hubungan antara HostB dan VPN-Restart, GW HostB harus diatur secara statis ke ip lokal HostA yang merupakan VPN-Client, mengapa memulai ulang VPN mengubah GW HostB ,, ini tidak masuk akal ..
MohyedeenN