
期望的場景:Linux 機器的小型子網,所有這些都可以透過另一台 Linux 機器(充當 IP 路由器)存取。這些電腦將預先配置專用網路上的位址(192.168.xx 或 10.xxx)。然而,每一個都可以透過具有公共IP位址的路由機來訪問,每個IP位址一個,在路由機上配置。
這類似於 NAT 或 IP 偽裝,但具有單獨的公共 IP 位址。 (可以假設公共網路有一個網關位址:外部路由器。)
看起來這應該可以透過地址轉換來實現,但我不知道如何配置它。我無法找到任何搜尋內容。
可以配置嗎?
答案1
假設IP_EXT1
和IP_EXT2
分別是機器 #1 和 #2 的外部 IP 位址, 和IP_INT1
是IP_INT2
它們各自的內部 IP 位址。
IP_EXT1
和IP_EXT2
實際上是路由機的位址,可以是同一網路介面的別名,也可以是兩個不同介面的別名。
然後,路由機器上的 iptables 設定應該像這樣簡單(未經測試):
iptables -t nat -A POSTROUTING --destination $IP_EXT1 -j DNAT --to-destination $IP_INT1
iptables -t nat -A POSTROUTING --source $IP_INT1 -j SNAT --to-source $IP_EXT1
iptables -t nat -A POSTROUTING --destination $IP_EXT2 -j DNAT --to-destination $IP_INT2
iptables -t nat -A POSTROUTING --source $IP_INT2 -j SNAT --to-source $IP_EXT2