Linux

IPTables 多 VLAN NAT 到多個 IP

  • August 14, 2017

我的 NAT 設置有一點問題。

我正在嘗試做的事情:

我有 2 個 VLAN(在本例中為 100 和 200),並希望它們可以通過單獨的 IP 訪問網路。這應該通過iptablesNAT 來完成。我用 pf (FreeBSD) 創建了這個設置,但不幸的是我必須使用的硬體不兼容。我很想在我們的主路由器中這樣做,但 CPU 無法處理這樣的負載。使用 IP-Tables 等。我只是一個菜鳥 ;) 架構:

VLAN 100 (10.100.0.0/24) 上的使用者 -> 10.100.0.1 NAT xxx.yyy.zzz.6 -> 網路

VLAN 200 (10.200.0.0/24) 上的使用者 -> 10.200.0.1 NAT xxx.yyy.zzz.7 -> 網路

所有這些都在同一個物理介面上,帶有 VLAN 介面等。

這是我目前的配置:/etc/network/interfaces

它 ....

iface ens2f3 inet 靜態
地址 xxx.yyy.zzz.6
網路遮罩 255.255.252.0

汽車 ens2f3.100
iface ens2f3.100 inet 靜態
地址 10.100.0.1
網路遮罩 255.255.255.0
vlan 原始設備 ens2f3

iface ens2f3 inet 靜態
地址 xxx.yyy.zzz.7
網路遮罩 255.255.252.0

汽車 ens2f3.200
iface ens2f3.200 inet 靜態
地址 10.200.0.1
網路遮罩 255.255.255.0
vlan 原始設備 ens2f3

/etc/iptables/rules.v4(自動載入)

#NAT 表
*nat
:PREROUTING 接受 [0:0]
:輸入接受 [0:0]
:輸出接受 [0:0]
:POSTROUTING 接受 [0:0]
-A POSTROUTING -s 10.100.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.6
-A POSTROUTING -s 10.200.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.7

犯罪

# 總表
*篩選
:輸入接受 [0:0]
: 轉發接受 [0:0]
:輸出接受 [0:0]
犯罪

# 我知道這個設置很不安全!當我讓 NAT 工作時,我鎖定了伺服器

問題是我可以使用 10.100.0.100 連接到 xxx.yyy.zzy.1 並使用這個 IP(10.100.0.100;這應該是不可能的)而不是我應該通過 NAT 獲得的 IP。

我還嘗試在包裹到達介面時對其進行標記,並為它們提供單獨的路由表。上面的問題不存在,但無法連接到任何地方

您能否向我提供有關如何使用基於 Linux 的作業系統來實現這一點的提示。如有必要,我還有另一個 10G 介面可用

我還沒有分析所有內容,但第一步是糾正這個問題:

-o ens2f3

由於您是 postROUTING,因此已做出路由決定,我希望數據包直接通過不同的介面發送到網關 xxx.yyy.zzz.1:

-o enp3s0

引用自:https://serverfault.com/questions/868449