Linux开启路由转发功能
一、准备
- 需求:两台不同网段的主机通信
- 方案:另外启动一台服务器B,双网卡,一个网卡和服务器A通信,一个网卡和服务器C通信。A和C通信通过服务器B跳转。为什么不用路由器?因为没有(Doge)。
- 环境
3台服务器,A、B、C,
A服务器:192.168.30.20/24
B服务器:192.168.30.1/24,eth0; 192.168.40.1/24,eth1
C服务器:192.168.40.20/24
- 目标:让A可以ping和ssh到C机器
二、操作过程:
- 在B服务器上开启内核路由转发参数
临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward
永久生效的话,需要修改 /etc/sysctl.conf:
net.ipv4.ip_forward = 1
执行sysctl -p马上生效
- B服务器开启iptables nat转发
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -d 192.168.40.0/24 -o eth1 -j MASQUERADE
#配置源地址30网段,目标地址40网段的地址转换,从eth1网卡出。
iptables -t nat -A PREROUTING -s 192.168.40.0/24 -d 192.168.30.0/24 -o eth0 -j MASQUERADE
#配置源地址40网段,目标地址30网段的地址转换,从eth0网卡出。
永久保存:iptables-save > /etc/sysconfig/iptables
- 在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