
我有一台帶有 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.100
eth0
另一方面,如果您希望將一個實體介面上的流量轉送到另一個實體接口,則必須考慮使用來iptables
執行此操作。
根據您的問題,您詢問的是如何將流量從 2 個不同的 IP (192.168.1.100
和) 發送到 2 個似乎共享相同 IP ( )192.168.1.101
的獨立 NIC (eth5
和) 。我不確定你的和目前是如何配置的,但如果它們處於「共享」相同 IP 的關係,那麼你可能無法透過 IP 別名實現你想要的目標,而應該檢查 iptables。eth6
192.168.100.1
eth5
eth6
我希望這可以增加一些清晰度。