1. SNAT
SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射。
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
2. SNAT转换前提条件
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址。
2.Linux网关开启IP路由转发,linxu系统本身是没有转发功能,只有路由发送数据。
3.开启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 #读取修改后的配置
4. SNAT转换
iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o ens33 -i SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
内网IP 出站 外网网卡 外网或地址池
4.1 实验步骤
网关服务器设置
添加一张外网网卡网段为12.0.0.0/24
真机设置为同一个网段
配置内网网卡ens33
下载httpd
修改网卡,并重启网络。
该文件后重新生效
内网服务器设置
(只要把网关改成网关服务器的ip地址就可以了)
外网服务器设置
5. DNAT 转换
清空iptables规则后在之前的基础上重新添加规则:
使用外网服务器curl
日志显示
6. 总结
从定义上讲,SNAT是原地址转换,DNAT是目标地址转换。区分这两个功能可以简单的由服务的发起者是谁来区分,内部地址要访问公网上的服务时,内部地址会主动发起连接,将内部地址转换成公有ip。