SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)
SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
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 #读取修改后的配置
#配置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或地址池
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 台主机实现上网
在Internet中发布位于局域网内的服务器
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysct1 -p
#把从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
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭shellinux
ip a //查看网卡信息
cd /etc/sysconfig/network-scripts/
//进入到网卡配置信息目录
cp ifcfg-ens33 ifcfg-ens36
//拷贝ens33的配置文件,并命名为ens36
vim ifcfg-ens36 //进入到ens36的配置文件中进行修改
systemctl restart network //重新启动网卡
ping 12.0.0.1 //查看一下网卡是否设置成功
永久打开路由转发功能:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #将此行写入配置文件
sysctl -p #读取修改后的配置
iptables -F //清除链内规则
iptables -t nat -A POSTROUTING -s 192.168.91.0/24 -o ens36 -j SNAT --to 12.0.0.1
//将源地址为192.168.190.0段的私网地址全部 转化为网关地址
PC3
vim /etc/sysconfig/network-scripts/ifcfg-ens33
//进入网卡配置信息文件
ifconfig ens33 12.0.0.10/24 //设置网卡的ip地址
ping 12.0.0.1 //ping一下pc2查看是否连通
yum -y install httpd //yum安装http
systemctl start httpd //启动http
systemctl status httpd //查看http的状态
cd /var/www/html //切换到/var/www/html目录
vim index.html //创建index.html文件,并向其中添加内容“从山峦到海洋”
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭shellinux
curl 192.168.190.101 //请求web服务器,连接pc3
iptables -t nat -A PREROUTING -i ens36 -d 12.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.190.101///将源地址为12.0.0.0段的公网地址全部转化为网关地址
curl 12.0.0.1 //连接PC2的ip地址12.0.0.1