在Linux下如何对不同的接口进行NAT?

在Linux下如何对不同的接口进行NAT?

我有一台 Ubuntu 12.04 服务器,它有 4 个以太网接口,其中 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

192.168.1.100此配置文件将为设备分配 IP eth0。因此,您可以从另一台机器 ping 192.168.1.100,它将转到您机器的 eth0 设备。如果您还想eth0“查看”来自网络的流量,而无需添加路由器或 iptables/PF,您可以通过执行以下操作10.0.0.0将 IP 别名化为接口:eth0

创建要添加别名的设备的文件,在我们的例子中它是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和)发送到似乎共享同一 IP( )192.168.1.101的 2 个独立 NIC(eth5和) 。我不确定您的和当前是如何配置的,但如果它们绑定在一起以“共享”同一 IP,那么您可能无法通过 IP 别名实现所需的目的,而应该检查 iptables。eth6192.168.100.1eth5eth6

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

相关内容