Satu NIC atau Dua? Menentukan Tata Letak Antarmuka Server VPN
Satu adapter bisa membawa koneksi terenkripsi dan lalu lintas terowongan. Pilih satu atau dua NIC berdasarkan kebutuhan perutean, bukan aturan perangkat keras.
Satu adapter fisik cukup untuk banyak server VPN, dan itu juga bukan desain universal. Koneksi terenkripsi tiba di adapter itu, proses VPN mendekripsinya, lalu lalu lintas dalam keluar melalui antarmuka virtual sebelum mencapai layanan lokal atau LAN yang dirutekan. Apakah itu berhasil bergantung pada tiga kondisi: di mana tujuan berada, apakah LAN punya jalur balik ke kumpulan klien, dan apakah satu tautan fisik bersama memberi Anda isolasi yang Anda klaim. Jawab ketiganya dan jumlah adapter mengikuti.
Tiga kondisi yang menentukan
Kondisi pertama adalah tujuan. Layanan pada host VPN itu sendiri dicapai hanya melalui antarmuka terowongan, sedangkan host di LAN memerlukan penerusan dan jalur balik. Kondisi kedua adalah jalur balik itu, karena perangkat LAN harus tahu cara mencapai kumpulan klien, baik melalui rute maupun melalui translasi di server.
Kondisi ketiga adalah pemisahan. Satu adapter berarti setiap paket, terenkripsi atau tidak, berbagi satu tautan dan biasanya satu rantai kebijakan, sehingga klaim isolasi yang bergantung pada perangkat keras terpisah tidak dipenuhi oleh satu antarmuka. Itu fakta tentang jalur, bukan tentang bagaimana sistem operasi dikonfigurasi. Anda masih bisa memfilter lalu lintas terowongan, tetapi Anda tidak bisa mengklaim batas yang tidak Anda miliki.
Tidak satu pun dari ketiganya soal jumlah port pada sasis. Ketiganya soal perutean, kepemilikan alamat, dan seberapa besar desain bergantung pada pemisahan fisik.
Dua adapter tetap menjadi pilihan sah ketika zona fisik, uplink terpisah, throughput, atau jalur pemulihan out-of-band membenarkannya. Itu persyaratan konkret, dan layak dinyatakan sebelum siapa pun memesan perangkat keras.
Saat layanan berjalan di host VPN
Kasus paling sederhana tidak memerlukan penerusan sama sekali. Daemon menerima paket klien di antarmuka terowongan dan menyerahkannya ke soket lokal, dan balasannya kembali melalui antarmuka yang sama. Bagi host, alamat kumpulan klien adalah alamat lokal sungguhan.
Dua hal tetap harus benar: layanan harus mendengarkan pada alamat yang bisa dicapai terowongan, dan firewall host harus menerima lalu lintas yang tiba di antarmuka terowongan. Keduanya terlihat pada perintah di bawah.
ss -lntup | grep -E "5432|8080"
ip -brief addr show
ip route get 10.8.0.6 from 10.8.0.1Mengikat layanan hanya ke alamat publik, atau memfilter antarmuka terowongan secara keliru, menghasilkan koneksi yang mencapai host lalu mati. Itu terlihat seperti gangguan VPN dan biasanya merupakan keputusan soket atau firewall.
Saat tujuan berada di LAN
Di sinilah desain satu adapter mendapat reputasi rumit. Server harus meneruskan paket klien menuju LAN, dan perangkat LAN harus mengirim balasan kembali ke kumpulan klien. Entah Anda membawa kumpulan itu sebagai rute di LAN, atau Anda mentranslasikan alamat sumber di server agar balasan kembali ke server itu sendiri.
Kedua jawaban sah dan keduanya gagal dengan cara berbeda. Rute balik membuat alamat klien asli tetap terlihat oleh tujuan, yang baik untuk log dan buruk bagi aturan firewall yang mengasumsikan alamat LAN. Translasi menjaga LAN tetap sederhana dan menyembunyikan identitas klien dari tujuan.
sysctl net.ipv4.ip_forward
nft list ruleset | grep -A4 'chain forward'
ip route show table main | grep 10.8.0Jalur asimetris adalah gejala klasik: permintaan klien tiba, balasan keluar melalui router lain, dan koneksi habis waktu tanpa kesalahan di kedua ujung. Tangkap lalu lintas di kedua sisi sebelum menyimpulkan apa pun tentang terowongan.
Mengapa alias tidak menciptakan zona kedua
Menambahkan alamat kedua ke adapter yang sama, atau membuat antarmuka dummy untuk meniru port kedua, mengubah sangat sedikit. Paket tetap keluar melalui tautan fisik yang sama, port switch yang sama, dan biasanya rantai firewall yang sama, sehingga tidak ada batas baru di antara keduanya. Itu kemudahan konfigurasi, bukan segmentasi. Memperlakukannya sebagai batas zona adalah cara klaim isolasi hanya bertahan di atas kertas.
Zona terpisah membutuhkan pemisahan nyata pada jalur, dan itulah persyaratan yang dipenuhi adapter kedua. Jika sebuah aturan bergantung pada lalu lintas yang menghadap VPN tidak pernah berbagi domain siaran dengan lalu lintas yang menghadap LAN, satu kabel tidak bisa memberikan sifat itu, apa pun pengalamatan host.
Jika suatu produk mendokumentasikan topologi multi-antarmuka untuk mode tertentu, ikuti dokumentasi produk itu alih-alih mengarang akal-akalan. Vendor juga mengubah topologi yang didukung antar rilis, yang merupakan alasan lain untuk membaca panduan terkini alih-alih tangkapan layar wizard lama.
Periksa tata letak terhadap lalu lintas yang Anda izinkan
Daftarkan kelas lalu lintas yang harus dibawa server: klien ke host, klien ke LAN, host ke LAN, dan koneksi luar terenkripsi. Setiap kelas punya sumber, tujuan, dan antarmuka, dan tata letak harus memenuhi keempatnya sekaligus. Desain yang menangani tiga di antaranya biasanya yang menghasilkan tiket.
Lalu pastikan antarmuka sebenarnya dan tangkapan sebenarnya, bukan diagram dalam dokumen desain. Perintah di bawah mencetak kedua tampilan.
ip -brief addr
ip route
tcpdump -ni any udp port 51820 -c 5
tcpdump -ni tun0 -c 5Jika tangkapan luar menunjukkan lalu lintas terenkripsi dan tangkapan dalam menunjukkan lalu lintas yang didekripsi pada antarmuka terowongan sementara adapter fisik membawa keduanya, satu NIC sudah cukup. Jika tangkapan dalam kosong, masalahnya ada pada terowongan atau aturan penerusan, bukan pada jumlah adapter. Tentukan topologi dari kedua tangkapan itu dan tabel rute, dan perubahan berikutnya punya pembanding.