我有 2 台服务器,均通过 switch0 连接(无 vlan),server1 有 2 个 NICS
eth0 --> switch0
ppp0 --> modem --> internet
cat /proc/sys/net/ipv4/ip_forward 1
192.168.1.0/24
192.168.1.212 netmask 255.255.255.0
路线:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.10.10.0 10.10.10.1 255.255.255.0 UG 0 0 0 tun0
10.10.10.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
151.7.202.72 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.16.212.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.116.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
server2 是:
192.168.1.0/24
192.168.1.252 netmask 255.255.255.0 --> switch0
具有 3 个 LAN、3 个 NICS:
192.168.1.0/24 netmask 255.255.255.0 --> switch0
192.168.2.0/24 netmask 255.255.255.0 --> switch1
193.168.3.0/24 netmask 255.255.255.0 --> switch2
路线:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.212 UGS 0 168553 bge0
10.10.10.0/24 10.10.10.1 UGS 0 0 tun0
10.10.10.1 link#12 UH 0 0 tun0
10.10.10.2 link#12 UHS 0 0 lo0
127.0.0.1 link#10 UH 0 1897 lo0
192.168.1.0/24 link#1 U 0 42375 bge0
192.168.1.252 link#1 UHS 0 4 lo0
192.168.2.0/24 link#7 U 0 117807 rl0
192.168.2.252 link#7 UHS 0 0 lo0
192.168.3.0/24 link#8 U 0 161828 rl1
192.168.3.252 link#8 UHS 0 0 lo0
我需要创建从 192.168.1.0/24 到所有其他 LAN 的路由。
我应该在 server2 上使用 IP 别名吗?
答案1
这实际上非常简单。
在服务器 2 上:编辑(以 sudo 身份)文件 /etc/sysctl.conf,找到以下行
#net.ipv4.ip_forward=1
并取消注释,
net.ipv4.ip_forward=1
保存文件,发出命令:
sudo sysctl -p
这只是告诉你的内核允许数据包从一个 NIC 传递到另一个 NIC。
另外,我们需要在其上配置 NAT,以便返回数据包可以通过 server2 正确路由。发出以下命令:
sudo iptables -t nat -A POSTROUTING -o rl0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o rl1 -j MASQUERADE
这假设您的默认 iptables 策略全部为“接受”。如果不正确,我们将不得不在您的防火墙上再打几个洞。
现在到服务器 1。发出以下命令:
sudo route add -net 192.168.2.0/24 default gw 192.168.1.252
sudo route add -net 192.168.3.0/24 default gw 192.168.1.252
这两个命令只是指示您的 server1,如果它发现发往 192.168.2.0/24 或 192.168.3.0/24 的数据包,则应将该数据包路由到 server2,由 server2 处理该数据包。
您没有指定是否希望 192.168.2.0/24 或 192.168.3.0/24 上的客户端能够通过 server2 访问 192.168.1.0。如果要,请添加
sudo iptables -t nat -A POSTROUTING -o bge0 -j MASQUERADE
到你的防火墙。
最后,我非常希望子网 192.168.2.0/24 和 192.168.3.0/24不是通过不同的路由连接到 Server1,因为这意味着您的配置中存在闭环,需要一些先进的仪器来正确处理这个问题。