Iptables-3·配置SNAT链
2022-12-16 本文已影响0人
技术老男孩
一、实验环境:
拓扑图.png二、需求描述:
- 互联网环境下,运营商不允许私有地址出现在互联网上,发现有这样的数据,就直接丢弃。所以,私有地址发往互联网时,需要用NAT转换成公有地址,也叫合法地址。
- 在实验环境下,在node1上配置NAT,当client1访问server1时,将client1的地址转换成server1的192.168.99.x再发给server1。因为数据包的源地址改变了,所以叫SNAT,S即Source。
- node1作为client1和server1的网关设备,所以目前client1可以访问server1,server1看到的是客户端地址是client1的地址。
# 跟踪httpd日志的尾部
[root@server1 ~]# tail -f /var/log/httpd/access_log
# 在client上访问server1的web服务
[root@client1 ~]# curl http://192.168.99.100/
# 查看服务器终端的日志
# 将会显示client1的地址192.168.88.10访问了它
192.168.88.10 - - [13/Oct/2021:17:31:35 +0800]
"GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"
- 需求:将源地址192.168.88.0/24转换成它外网卡地址。
三、功能实现:
- 向nat表中的POSTROUTING链添加规则。
[root@node1 ~]# iptables -t nat -A POSTROUTING
> -s 192.168.88.0/24 -j MASQUERADE
[root@node1 ~]# iptables -t nat -nL
- 访问验证
# client1再次访问server1时server1上的日志
# 将会显示node1的192.168.99.11访问
[root@server1 ~]# tail -f /var/log/httpd/access_log
192.168.99.11 - - [13/Oct/2021:17:45:07 +0800]
"GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"