iptables-地址转换【DNAT/SNAT】

iptables-学习目录

1、什么是NAT

网络地址转换 (NAT) ,意思也比较清楚:对(数据包的)网络地址 (IP +Port) 进行转换。
例如,机器自己的 IP 10.1.1.2 是能与外部正常通信的,但 192.168 网段是私有IP 段,无法与外界通信,因此当源地址为 192.168 网段的包要出去时,机器会
先将源 IP 换成机器自己的 10.1.1.2 再发送出去;收到应答包时,再进行相反的转换。这就是 NAT 的基本过程。

2、NAT的几种模式

SNAT :源地址转换
DNAT :目标地址转换
PNAT :端口转换

3、NAT环境搭建图

4、SNAT-示例

4.1、需求

实现内网主机通过防火墙进行上网,需要使用SNAT(源地址转换POSTROUTING)
172.16.1.7 --> 172.16.1.200 -- POSTROUTING --> 10.0.0.200 --> baidu.com

4.2、将172.16.1.7的网关指向172.16.1.200

# web02
echo "GATEWAY=172.16.1.200" >> /etc/sysconfig/network-scripts/ifcfg-eth1
ifdown eth1 && ifup eth1

4.3、开启iptables防火墙的forward转发

# iptables-server
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

4.4、配置iptables的SNAT转发规则

4.4.1、指定从哪个ip地址转换出去(静态公网地址)

iptables -t nat -I POSTROUTING -s 172.16.1.0/24 -j SNAT --to 10.0.0.200
iptables -t nat -L -n

4.4.2、当外网源地址为动态获取的地址时,MASQUERADE可自行判断要转换为的外网地址

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE

5、DNAT-示例

5.1、需求

实现外网主机通过防火墙访问内部主机80端口,需要通过DNAT(目标地址转换PREROUTING)

5.2、端口映射【DNAT】

iptables -t nat -I PREROUTING -d 10.0.0.200 -p tcp --dport 80 -j DNAT --to 172.16.1.7:80
iptables -t nat -L -n

5.3、地址映射【DNAT】

iptables -t nat -I PREROUTING -d 10.0.0.200 -j DNAT --to 172.16.1.7

 

posted @ 2023-05-09 22:44  小粉优化大师  阅读(378)  评论(0编辑  收藏  举报