Dua tembok api dalaman, satu segmen transit peribadi dan permintaan supaya beberapa hos dalam setiap LAN boleh bercakap dengan hos di LAN yang lain. Refleksnya ialah menaikkan VPN atau menambah lapisan NAT kedua, dan kedua-dua refleks berharga lebih daripada yang patut oleh masalah itu. Penghalaan biasa sudah memadai apabila tiga syarat dipenuhi: julat alamat tidak bertindih, kedua-dua belah boleh menghantar trafik balik ke LAN yang satu lagi, dan segmen transit sudah cukup dipercayai untuk data itu. Semak ketiga-tiganya sebelum merancang apa-apa, kerana setiap satu mengubah jawapannya.

Tiga syarat yang menentukan reka bentuk

Syarat pertama ialah ruang alamat. Jika kedua-dua LAN menggunakan blok RFC 1918 yang sama, penghalaan tidak dapat membezakannya dan penterjemahan menjadi tidak dapat dielakkan, bukan pilihan. Syarat kedua ialah laluan balik: laluan dari A ke B tidak berguna melainkan B juga tahu cara mencapai LAN A, dan pengetahuan tidak simetri ialah sebab paling biasa sesuatu reka bentuk berpenghalaan menggugurkan balasan secara senyap.

Syarat ketiga ialah kepercayaan. Penghalaan menggerakkan paket; ia tidak melindunginya. Segmen transit peribadi di dalam satu bangunan berbeza daripada penyerahan kepada pembekal atau pautan yang melintasi tulang belakang kampus yang dikongsi. Jika segmen itu tidak dipercayai, jawapannya ialah terowong antara dua tembok api, dan pelan penghalaan di bawah masih terpakai di dalamnya.

Hanya apabila ketiga-tiganya menunjuk arah yang sama reka bentuk mudah menang. Apabila salah satunya gagal, betulkan syarat itu secara jelas dan bukannya menutupnya dengan penterjemahan, kerana NAT menyembunyikan kegagalan dan bukannya menyelesaikannya.

Bina pelan laluan pada rangkaian transit

Beri setiap tembok api satu alamat pada segmen kongsi dan tambah satu laluan khusus bagi setiap LAN jauh. Tiada apa-apa lagi dalam konfigurasi sedia ada perlu bergerak, dan terutamanya laluan lalai internet mesti kekal tepat di tempatnya. Menggantikan laluan lalai dengan tembok api rakan akan menghantar setiap destinasi tidak berkaitan melalui transit, yang merupakan perubahan jauh lebih besar daripada yang diminta. Dokumentasi pfSense tentang penghalaan statik menerangkan model laluan-tambah-get laluan yang sama untuk platform itu, dan kawalan setara wujud pada mana-mana tembok api yang anda jalankan sebenarnya.

FirewallRemote LANNext hop on the transit
A10.40.0.0/24192.0.2.20
B10.30.0.0/24192.0.2.10

Tembok api A melayani 10.30.0.0/24 dan tembok api B melayani 10.40.0.0/24, dengan dua alamat transit berada di 192.0.2.0/24. Setiap hos LAN mengekalkan tembok api tempatannya sebagai get laluan, jadi satu-satunya keadaan baharu ialah satu laluan pada setiap sebelah. Pada tembok api berasaskan Linux pelan yang sama kelihatan begini, dan penghantaran ke hadapan mesti diaktifkan atau laluan akan diselesaikan sementara paket digugurkan.

sysctl -w net.ipv4.ip_forward=1
ip route add 10.40.0.0/24 via 192.0.2.20 dev eth1
ip route get 10.40.0.15
traceroute -n 10.40.0.15

Asingkan penapisan daripada penterjemahan

Penghalaan dan dasar ialah kawalan yang berbeza, dan pada yang kedua kebanyakan reka bentuk berpenghalaan sebenarnya gagal. Benarkan sumber, destinasi dan perkhidmatan tertentu pada sempadan masuk yang benar-benar dilalui paket, dan ingat bahawa label antara muka seperti WAN ialah nama, bukan kenyataan tentang kepercayaan. Port transit yang membawa trafik peribadi mungkin masih mempunyai penyekatan alamat peribadi diaktifkan secara lalai.

Kemudian lihat penterjemahan keluar sebelum menyimpulkan tiada NAT berlaku. Peraturan keluar automatik boleh menulis semula trafik yang tidak pernah dimaksudkan untuk diterjemah, dan itu memusnahkan alamat sumber yang diperlukan oleh sebelah sana untuk dasar dan lognya sendiri. Sahkan bahawa aliran yang dipilih mengekalkan alamat asalnya, dan biarkan peraturan penterjemahan internet untuk trafik yang masih memerlukannya.

iptables -t nat -S POSTROUTING
iptables -t nat -L POSTROUTING -n -v
tcpdump -ni eth1 -c 5 host 10.40.0.15

Apabila NAT ialah jawapan yang jujur

Penterjemahan mendapat tempatnya apabila julat alamat benar-benar bertindih dan penomboran semula tidak tersedia, atau apabila dasar memerlukan satu pihak melihat satu alamat dan bukannya satu subrangkaian. Dalam kes itu pemetaan satu-ke-satu atau terhad port yang disengajakan ialah keputusan reka bentuk dengan akibat yang diketahui, bukan jalan pintas.

Akibat yang perlu dinyatakan dengan lantang ialah sebelah sana tidak lagi boleh melihat atau menapis sumber individu. Log menyusut kepada alamat penterjemah, dasar setiap hos berhenti berfungsi, dan penyelesaian masalah menjadi pemburuan hos dalaman mana yang memiliki aliran pada sesuatu masa. Jika tiada satu pun daripada itu penting bagi trafik berkenaan, NAT memadai.

Apabila transit itu sendiri ialah andaian yang salah

Jika segmen kongsi melintasi pembekal, fabrik pensuisan kongsi atau mana-mana laluan di mana pihak lain boleh membaca trafik, penghalaan semata-mata bukan jawapan yang lengkap. Terowong antara dua tembok api memberi anda kerahsiaan dan pengesahan rakan, dan jadual laluan di dalamnya ialah jadual yang sama yang anda akan tulis pada transit.

Putuskan perkara itu daripada soalan kepercayaan di bahagian pertama, bukan daripada tabiat bahawa VPN lebih selamat. Terowong di atas segmen yang sudah peribadi menambah kos operasi dan satu lagi mod kegagalan tanpa keuntungan, manakala penghalaan di atas segmen yang tidak dipercayai menukar kerahsiaan dengan kesederhanaan yang anda tidak mampu. Catat syarat mana antara tiga itu yang mendorong pilihan, dan jurutera seterusnya tidak perlu mempertikaikannya semula.

Artikel berkaitan