SNAT DNAT实验

发布于:2025-07-09 ⋅ 阅读:(26) ⋅ 点赞:(0)

首先准备两台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的转换实验


网站公告

今日签到

点亮在社区的每一天
去签到