一.SNAT的原理介绍
1.应用环境
局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)
2.SNAT原理
源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
3.SNAT转换前提条件
局域网各主机已正确设置IP地址、子网掩码、默认网关地址
Linux网关开启IP路由转发
linxu系统本身是没有转发功能,只有路由发送数据
二.开启SNAT
1.临时打开
echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1
2.永久打开
vim /etc/sysctl. conf
net.ipv4.ip_forward = 1 #将此行写入配置文件
sysctl -p #读取修改后的配置
三.SNAT的转换
1.固定的公网IP地址
#配置SNAT策略,实现snat功能,将所有192.168.100.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1
可换成单独IP 出站外网网卡 外网IP
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10
内网IP 出站外网网卡 外网IP或地址池
2.非固定的公网IP地址(共享动态IP地址)
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -d 192.168.100.0/24 -j MASQUERADE
一个IP地址做SNAT转换,一般可以让内网 100到200 台主机实现上网
四.DNAT的原理介绍
1.应用环境
在Internet中发布位于局域网内的服务器
2.DNAT原理
目标地址转换
修改数据包的目标地址
3.DNAT转换前提条件
局域网的服务器能够访问Internet
网关的外网地址有正确的DNS解析记录
Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
五.DNAT的转换
1.发布内网的Web服务
#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80-j DNAT --to-destination 192.168.80.11
入站|外网网卡 | 外网ip 内网服务器ip
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80-j DNAT --to 192.168.80.11-192.168.80.20
2.发布时修改目标端口
#发布局域网内部的OpenSSH服务器, 外网主机需使用250端口进行连接
iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 250-jDNAT --to 192.168.100.102:22
六.实验
1.关闭防火墙及安全防护,下载httpd服务并启动服务(c7-2为内网服务器,ip:172.16.23.11;c7-3为网关服务器,ip:172.16.23.12;c7-4为外网服务器,ip:172.16.23.13)
2.修改网卡并重启服务
网关服务器c7-3
内网服务器c7-2
外网服务器c7-4
c7-4会断开xshell连接
3.打开网关服务器(c7-3)的路由转发功能
4.配置snat,并用内网服务器curl外网服务器,在外网服务器查看日志
配置成功
5.配置dnat,用外网服务器curl内网,并在内网服务器查看日志
配置成功