使用两台设备通过 Linux 服务器路由流量

使用两台设备通过 Linux 服务器路由流量

这是我当前的设置(所有服务器都是 Ubuntu Server Edition 12.04):

服务器 0 有两个设备,eth0 和 eth1。eth0 连接到墙(互联网),eth1 连接到交换机。eth1 在 /etc/network/interfaces 中有以下条目:

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

服务器 1-4 各有一个设备 eth0。它们都连接到交换机,并且都从服务器 0 获取 DHCP 信息。eth0 具有以下接口条目(这是因为服务器 1-4 是无盘节点,它们向服务器 0 请求启动所需的一切):

iface eth0 inet manual

使用此配置,服务器 0 是唯一可以访问互联网的服务器。我该如何路由apt-get来自服务器 1-4 的任何 Web 请求(例如或 HTTP)通过服务器 0,以便让服务器 1-4 可以访问互联网?这似乎是一个已经遇到过很多次的问题,但我无论如何也想不出如何正确设置网络。

的输出route -n为:

Destination    Gateway         Genmask         Flags ... Iface
0.0.0.0        123.45.132.254  0.0.0.0         UG    ... eth0
123.45.132.0   0.0.0.0         255.255.255.0   U     ... eth0
192.168.1.0    0.0.0.0         255.255.255.0   U     ... eth1

答案1

您需要做两件事:激活转发(在 /etc/sysctl.conf 中net.ipv4.ip_forward=1)并使用 iptables 激活 NAT(/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE)。NAT 将专用网络转换为外部 IP,因此内部机器可以上网。此行应由您的防火墙应用。我不知道您使用的是哪种防火墙,因此您必须将其集成到您的配置中。

相关内容