目录
一.SNAT:
1、SNAT策略概述
SNAT策略的典型应用环境
局域网主机共享单个公网IP地址接入Internet
SNAT策略的原理
源地址转换,Source Network Address Translation
修改数据包的源地址
2、SNAT工作原理
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
3、SNAT转换前提条件
局域网各主机已正确设置IP地址、子网掩码、默认网关地址
Linux网关开启IP路由转发
4、开启SNAT命令
临时打开
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
sysctl -w net.ipv4.ip_forward=1
永久打开
vim /etc/ sysctl. conf
net. ipv4.ip_ forward=1 #将此行写入配置文件
sysctl -p #读取修改后的配置
5、SNAT转换
iptables -t nat -A POSTROUTING -s 192.168.52.0/24 -o ens33 -i SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.52.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
内网IP 出站 外网网卡 外网IP或地址池
6、SNAT示例
6.1配置网关服务器
1、添加一张外网网卡网段为12.0.0.0/24
查看真机的网段与 虚拟机所设网段是否一致
2、配置内网网卡ens33
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
3、配置外网网卡ens36
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# ifconfig
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
4、重启服务
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
二、DNAT
1、DNAT策略的典型应用环境
- 在lnternet中发布位于企业局域网内的服务器
2、DNAT策略的原理
- 目标地址转换,Destination Network Address Translation
- 修改数据包的目标地址
3、DNAT转换条件
- 局域网的服务器能够访问Internet
- 网关的外网地址有正确的DNS解析记录
- Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysct1 -p
4、DNAT转换
#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.192.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.192.11:8080
表 链 入站网卡 外网来的数据包的自的IP和目的端口 通过DNAT转换为内网的IP和端口
外网2.0.0.1:80 ----DNAT-—->192.168.192.11:8080
5、DNAT示例
三、规则的备份与还原
1、备份
默认备份文件 /etc/sysconfig/iptables
重定向
2、还原
3、设置自己想要的规则
重定向输入到默认配置文件当中
[root@localhost sysconfig]#iptables-save >/etc/sysconfig/iptables
重启防火墙
[root@localhost sysconfig]#systemctl stop iptables
[root@localhost sysconfig]#systemctl start iptables
查看规则
[root@localhost sysconfig]#iptables -nL
[root@localhost sysconfig]#iptables -nL -t nat