一.SNAT概述
1.源地址转换,Source Network Address Translation
源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。
简单来说直接的作用就是修改源IP地址
2.SNAT策略的典型应用环境
局域网主机共享单个公网IP地址接入Internet
3.图解
二.SNAT实验测试
①实验环境
两台CentOS8
实验步骤
内网的客户机通过网关服务器SNAT策略连通外网实行通信
首先要确保虚拟机能够上网
①一台虚拟机当做网关服务器,网络适配器一块为桥接(ens38)一块为hostonly(ens37)
②hostonly网卡配置为
[root@localhost network-scripts]# cat ifcfg-ens37
TYPE="Ethernet"
BOOTPROTO="static" 静态配置
NAME="ens37"
DEVICE="ens37"
IPADDR=192.168.52.128 与VMnet1同一网段即可
NETMASK=255.255.255.0
ONBOOT="yes"
③桥接网卡(真实上网)
[root@localhost network-scripts]# cat ifcfg-ens38
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens38"
DEVICE="ens38"
IPADDR=172.20.xx.x与你的真实机器的ip地址在同一网段即可
NETMASK=255.255.255.240
GATEWAY=172.20.xx.x 与真实机器相同
DNS1=172.20.xx.x 与真实机器相同
DNS2=114.114.114.114
ONBOOT="yes"
④另一台当做客户机
网络适配器为hostonly
hostonly配置
BOOTPROTO=static
NAME=ens38
DEVICE=ens38
IPADDR=192.168.52.130 同一网段即可
NETMASK=255.255.255.0
GATEWAY=192.168.52.128 网关服务器的hostonly的IP地址,因为我们需要网关服务器做路由转发
DNS1=114.114.114.114
ONBOOT=yes
⑤网关服务器开启路由转发功能,及iptables配置
1.开启路由功能 --》成为路由器
临时开启
echo 1 >/proc/sys/net/ipv4/ip_forward 1表示开启 0 关闭 默认是0
2. vim /etc/sysctl.conf 永久开启
net.ipv4.ip_forward = 1
[root@sanchuang-linux ~]# sysctl -p 让内核重新读取/etc/sysctl.conf配置文件里的内容,开启路由功能
net.ipv4.ip_forward = 1
3.配置snat策略,开启snat功能
iptables -t nat -A POSTROUTING -s 192.168.52.0/24 -o ens33 -j SNAT --to-source 桥接IP地址
-t nat -A POSTROUTING 在nat表的POSTROUTING链位置
-s 192.168.52.0/24 指定内网的网段 source
-o ens38 从ens38接口出去 out-interface
-j SNAT 告诉内核修改ip包的源ip地址--》采取snat策略
--to-source 桥接ip地址 修改源ip地址为桥接ip地址