虛擬化 IPTables 規則

虛擬化 IPTables 規則

到目前為止我還沒有找到解決方案。我在 IPTables 方面經驗不是很豐富,因此我們將不勝感激您提供的任何支援。

我有一台伺服器,上面有一些虛擬機器。主節點有一個遠端IP和一個子網路。每個虛擬機器都是使用 Linux 虛擬化和路由網路創建的,並分配有一個本地 IP。然後,我使用 IP 表透過將所有流量從其專用遠端 IP 轉送到其本機 IP 來為它們分配遠端 IP。這似乎在大多數情況下都有效,但從每個虛擬機器發出的任何流量似乎都來自節點主 IP,而不是我轉送到虛擬機器的遠端 IP。

這是我的 IPTables 規則:

iptables -t nat -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -j MASQUERADE

iptables -A FORWARD -d 192.168.123.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.123.0/24 -i virbr1 -j ACCEPT iptables -A FORWARD -i virbr1 -o virbr1 -j ACCEPT

然後對於每個虛擬機器:

iptables -t nat -A PREROUTING -d {Their-remote-IP} -j DNAT --to-destination 192.168.123.3
iptables -A FORWARD -p tcp -d 192.168.123.3 -m state --state NEW,ESTABLISHED,RELATED -j   ACCEPT
iptables -A FORWARD -m udp -p udp -d 192.168.123.3 -j ACCEPT
iptables -A FORWARD -m icmp -p icmp -d 192.168.123.3 -j ACCEPT

設定範例

Primary Node IP: X.X.X.172
Additional IP X.X.X.173 1 (NATed to VM 1) to local address 192.168.123.2
Additional IP X.X.X.174 1 (NATed to VM 2) to local address 192.168.123.3
Additional IP X.X.X.175 1 (NATed to VM 3) to local address 192.168.123.4

但是,來自虛擬機器的所有出站流量均透過 XXX172 發出

您能提供的任何建議將不勝感激。

答案1

這正是它的MASQUERADE作用:它用資料包即將發出的介面的位址覆蓋原始來源位址。如果您想保留原始地址,請不要使用偽裝。

相關內容