1、实现目的
有三台服务器,分别为node1,node2(nat),node3,其中node2做nat转换。在node1不能与node3直接通信的情况下,通过node2 nat地址转换,实现node1能与node3通信。
node1:192.168.0.73
node2:192.168.0.74 【nat机器】
node3:192.168.0.189
2、环境配置
node1不能与node3同学,在node3上开启防火墙,
在node3上操作
# systemctl start firewalld.service
# iptables -A INPUT -s 192.168.0.73 -j REJECT
将所有来自于192.168.0.73的请求拒绝。
3、NAT服务器配置
node2上的操作
首先打开内核ip地址转发功能
# cat /proc/sys/net/ipv4/ip_forward //查看,1为打开,0为关闭
# echo "1" >/proc/sys/net/ipv4/ip_forward
# systemctl start firewalld.service
# iptables -t nat -A PREROUTING -s 192.168.0.73 -j DNAT --to-destination 192.168.0.189 //做目标地址转发,将所有来自node1的请求的目的地址转换成node3,由于在路由器是看不到原地址的,所以只有做目的地址转换。
# iptables -t nat -A POSTROUTING -d 192.168.0.189 -j SNAT --to 192.168.0.74
// 由于PREROUTING链做的目的地址转换,所以在POSTROUTING链看到的就是指向node3的数据包,因此在这里对目的地址为node3的数据包做SNAT(源地址转换),将源地址node1转换成node2的,
经过目的地址转换和源地址转换后,发往node3的数据包就是S:node2,D:node3,因此跳过了node3的防火墙规则。