首先准备两台centos机器
如下图
左边的机器当作客户机,使用仅主机模式
右边的机器当作路由器 路由器这个机器设置两个网卡,一个网卡用仅主机与另一台虚拟机通信
一个网卡用桥接,与外网通信


(最好准备两台新的虚拟机,如果使用旧的有可能连接不上,可能原因是主机名虽未变,但网段号变了,去虚拟机网卡配置文件里修改主机ip为正确的网段号,网关也改为正确的网段号即可)
修改完ip地址后,刷新网络服务:service network restart
vmnet1对应的是电脑主机的网卡
vmnet8对应的是连接虚拟机的网卡

修改主机名的命令
hostname set-hostname +主机名
可以将其中一个修改为client(客户机)
一个修改为router(路由器)
方便记
在route机器上有两个网卡,一个桥接一个仅主机,我们输入ip route后如果出现了两个默认路由,会导致通信异常,尽管仅主机模式的网卡它的网段号为192.168.100.2,但是由于是仅主机模式,会连接主机,,到时候显示默认路由会是电脑主机的网关地址ip,如下图
192.168.158.126是主机网关ip

所以需要打开ens33的网卡配置文件,注释掉其网关那一行,保证机器只要一条默认路由

另一台虚拟机的网卡配置无需多言
到此配置过程完毕
==============================================
SNAT技术原理:

客户机上需要做的工作
局域网各主机正确设置ip地址/子网掩码
局域网各主机正确设置默认网关地址/dns服务器地址
网络服务器/路由器
推荐实现步骤:
1.开启网关主机的路由转发功能
临时开启:

永久开启(修改配置文件):

2.添加使用SNAT策略的防火墙规则


目标主机是不变的,修改的是源ip地址,这里不清楚的话可以看上面的拓扑图,网关服务器激素第二个机器(route),两个网卡,我们要修改的是将源ip地址修改为wan口也就是ens36的ip地址

这样一来,所有数据送出去后源ip地址都会由原来的内网ip变为wan口的公网ip,但这个公网ip不是真正意义上的公网ip(结合上面的拓扑图去理解)因为这只是相对意义上的公网ip,一共需要进行两次SNAT转换,这才第一次
其实可以再弄一台机器作为web服务器,我电脑内存不够了,省去了没弄
弄好了之后设置好ip地址,可以用客户机ping它,验证snat策略是否设置成功
用客户机ping主机的话,可以用科莱抓包
用客户机ping web服务器的话,即这个新的虚拟机,可以用tcpdump抓包(下载yum install tcpdump -y)

如果ping不通,可能是防火墙的问题
关闭防火墙----在路由器上
service firewalld stop 关闭防火墙
service distable firewalld 设置firewalld开机不启动
来编写一个snat的启动脚本
#!/bin/bash
#清除规则
iptables -F
iptables -t nat -F
#开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
#开启snat功能
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens36 -j SNAT --to-source 192.168.100.176
================
bash一下,再测试是否成功

成功
记得是在路由器上面开启snat策略,在客户机上开启没啥用,刚刚没注意,在客户机上面开了。。。。
记得删除客户机上面的snat策略
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens36 -j SNAT --to-source 192.168.100.176
================
排错
分段法
替换法
问题:
client 访问www.baidu.com访问不了?进行排错
分段法
1.检查client本身的ip地址的配置问题,ip,网关,dns服务器
2.ping一下网关
3.ping wan口地址
4.ping www.baidu.com
===================================================
DNAT
原理:

服务器
局域网的web服务器正确设置了ip地址/子网掩码
局域网的web服务器正确设置了默认网关地址和dns
Linux 网关服务器
推荐实现步骤
1.确认已开启网关的路由转发功能
2.添加使用DNAT策略的防护墙规则



完善shell脚本:
#!/bin/bash
#清除规则
iptables -F
iptables -t nat -F
#开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
#开启snat功能
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens36 -j SNAT --to-source 192.168.100.176
#开启DNAT功能
iptables -t nat -A POSTROUTING -d 192.168.100.0/24 -i ens36 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.175
================
用第三台虚拟机(web服务器,还是不能省第三台机器)
打开后安装nginx,yum install nginx -y 如果下载不了可能是repo源的问题
可以按以下步骤操作,自己手动配置源

安装好了之后记得要打开nginx服务,可以使用命令查看是否打开成功

接着理清DNAT的过程之后,可以在浏览器输入对应web服务器的ip地址,可以看到如下信息

这样就成功完成了一次DNAT的转换实验