linux下如何NAT到不同的介面?

linux下如何NAT到不同的介面?

我有一台帶有 4 個乙太網路介面的 Ubuntu 12.04 伺服器,其中 2 個連接到 eth5 和 eth6 上的不可配置網路設備。每個設備只能透過 telnet 在 192.168.100.1 上存取。我相信 NAT 可以為我提供一種存取這兩個裝置的方法。歡迎其他解決方案。

我想做的是這樣的:telnet 192.168.1.100並將其轉換為 eth5 上的 192.168.100.1。同樣,我希望telnet 192.168.1.101將其轉換為 eth6 上的 192.168.100.1。這樣,我就有了一種使用特定乙太網路介面的 IP 別名。如果沒有這樣的解決方案,我顯然會遇到IP衝突。

我看到的大多數 NAT 教程都與互聯網連接共享有關。我正在嘗試做一些更簡單的事情,但似乎沒有記錄。

有小費嗎?

答案1

NAT(或網路位址解讀)將所有「內向」IP 視為單一「外向」IP(IP 偽裝),以允許多個本地設備連接到相同外向連接(例如,連接到電纜數據機的 wifi 路由器已開啟 NAT(可能還包括 DHCP)允許設備透過ISP 分配給您的單一IP 連接到網際網路)。

你要求的(據我推測)是IP 別名,這允許您擁有一個實體介面(例如eth0)並為其「指派」多個 IP。

例如,假設您有一個/etc/sysconfig/network-scripts/eth0配置文件,其中包含以下內容:

DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
NAME="192.168.1.100 (eth0)"
BOOTPROTO=none
USERCTL=no

該設定檔會將 IP 指派192.168.1.100給設備eth0。因此,您可以從另一台電腦 ping 192.168.1.100,它將轉到您電腦的 eth0 裝置。如果您還想eth0「查看」來自10.0.0.0網路的流量,而不是在混合中添加路由器或 iptables/PF,則可以eth0透過執行以下操作為介面新增 IP 別名:

建立要新增別名的設備的文件,在我們的例子中是eth0配置文件,但添加一個:X(其中X是要分配的別名的編號),例如: /etc/sysconfig/network-scripts/eth0:1.然後,該文件將包含您要新增的別名訊息,例如:

DEVICE=eth0:1
IPADDR=10.0.0.100
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
NAME="10.0.0.100 (eth0:1)"
BOOTPROTO=none
USERCTL=no

新增此設定檔將允許您透過實體設備192.168.1.100與兩者進行通訊。10.0.0.100eth0

另一方面,如果您希望將一個實體介面上的流量轉送到另一個實體接口,則必須考慮使用來iptables執行此操作。

根據您的問題,您詢問的是如何將流量從 2 個不同的 IP (192.168.1.100和) 發送到 2 個似乎共享相同 IP ( )192.168.1.101的獨立 NIC (eth5和) 。我不確定你的和目前是如何配置的,但如果它們處於「共享」相同 IP 的關係,那麼你可能無法透過 IP 別名實現你想要的目標,而應該檢查 iptables。eth6192.168.100.1eth5eth6

我希望這可以增加一些清晰度。

相關內容