标记一下,今天想让一台 Red Hat Enterprise Linux 7 开通 iptables 的 nat 转发功能,找了半天。
A服务器:192.168.30.20/24
B服务器:eth0:192.168.30.1/24;eth1:192.168.40.1/24
C服务器:192.168.40.20/24
目标:让 A 可以 ping 和 ssh 到 C 机器。这就需要通过 B 服务器来跳转。
操作过程:
1、在 B 服务器上开启内核路由转发参数
临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward
永久生效的话,需要修改 sysctl.conf:
net.ipv4.ip_forward = 1
执行 sysctl -p 马上生效。
2、B 服务器开启 iptables nat 转发
配置源地址30网段,目标地址40网段的地址转换,从 eth1 网卡出:
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -d 192.168.40.0/24 -o eth1 -j MASQUERADE
配置源地址40网段,目标地址30网段的地址转换,从 eth0 网卡出:
iptables -t nat -A POSTROUTING -s 192.168.40.0/24 -d 192.168.30.0/24 -o eth0 -j MASQUERADE
永久保存:
iptables-save > /etc/sysconfig/iptables
TIP:注意对应网卡。
3、在 A 和 C 服务器上设置路由为 B 服务器 IP
A: route add -net 192.168.40.0 netmask 255.255.255.0 gw 192.168.30.1
C: route add -net 192.168.30.0 netmask 255.255.255.0 gw 192.168.40.1