一、SNAT
1.SNAT应用环境
局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)
2.SNAT原理
源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
3.SNAT转换地址前提条件
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
2.Linux网关开启IP路由转发(linxu系统本身是没有转发功能 只有路由发送数据)
二、开启SNAT
1.临时打开
echo 7-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和DNAT
1.SNAT
SNAT用于在网络中修改数据包的源IP地址,SNAT是一种单向的地址转换技术,只会修改数据包的源IP地址,不会修改目的IP地址
SNAT转换前提条件:
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
2.Linux网关开启IP路由转发
2.DNAT
DNAT应用环境:在Internet中发布位于局域网内的服务器
DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映射
DNAT转换前提条件:
1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录
3.Linux网关开启IP路由转发
四、SNAT实践内网通过网关SNAT改变内网IP变成外网IP
1.实验环境
关闭防火墙和selinux防护:
内网服务器:
IP地址:192.168.7.10
网关:192.168.7.100
网关服务器:
ens33:
IP地址:192.168.7.100
网关:192.168.7.100
(网关服务器添加网卡选择仅主机模式)ens36:
IP地址:12.0.0.10
网关:12.0.0.10
外网服务器:
IP地址:12.0.0.1
网关:12.0.0.10
内网服务器网关配置:配置完成后重启网卡
外网服务器网关配置:配置完成后重启网卡
网关服务器网关配置:配置完成后重启网卡
2.开启网关服务器的路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #写入配置文件
sysctl -p ##读取修改后的配置文件
3.在网关服务器添加iptables防火墙规则
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.2.0/24 -j SNAT --to 12.0.0.10
4.在内网服务器和外网服务器开启httpd服务
systemctl start httpd
如果未安装用yum安装:yum -y install httpd
5.在内网服务器和外网服务器添加一些网页信息
内网服务器:
外网服务器:
6.使用内网服务器curl外网服务器检测连通性,查看是否能访问到外网
内网服务器访问外网服务器成功
外网服务器访问内网服务器成功
五、使用DNAT,使外网能访问内网
1.同上配置,在网关服务器添加规则
iptables -t nat -A PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.7.100
2. 使用外网服务器curl内网服务器检测连通性,查看是否能访问到内网
外网服务器访问内网服务器成功
内网服务器访问外网服务器成功