一.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地址