当前位置: 首页 > ai >正文

SNAT DNAT实验

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

http://www.xdnf.cn/news/14826.html

相关文章:

  • 探索实现C++ STL容器适配器:优先队列priority_queue
  • MySQL CDC与Kafka整合指南:构建实时数据管道的完整方案
  • 前端常见 HTTP 状态码
  • DPDK 网卡驱动
  • WPF学习笔记(25)MVVM框架与项目实例
  • Stlink v2调试器采用SWD模式连接stm32f103c8t6核心板的接线方式
  • AI小智项目全解析:软硬件架构与开发环境配置
  • 信号与槽的总结
  • Linux内核深度解析:IPv4策略路由的核心实现与fib_rules.c源码剖析
  • bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
  • 从“电话催维修“到“手机看进度“——售后服务系统开发如何重构客户体验
  • 历史数据分析——中证医药
  • 《数据维度的视觉重构:打造交互式高维数据可视化的黄金法则》
  • 如何解决Spring Boot中@Valid对List校验失效问题
  • Python小工具之PDF合并
  • Linux应用基础
  • [netty5: HttpObjectEncoder HttpObjectDecoder]-源码解析
  • 传输层 udptcp
  • 【力扣 简单 C】746. 使用最小花费爬楼梯
  • 国产 OFD 标准公文软件数科 OFD 阅读器:OFD/PDF 双格式支持,公务办公必备
  • LongT5: 针对长序列的高效文本到文本Transformer
  • Linux NFS终极指南:安装、配置与性能优化
  • 【解决“此扩展可能损坏”】Edge浏览器(chrome系列通杀))扩展损坏?一招保留数据快速修复
  • 【无标题】Go语言中的反射机制 — 元编程技巧与注意事项
  • 简单 Python 爬虫程序设计
  • Vue3-组件化-Vue核心思想之一
  • 物联网数据安全区块链服务
  • 遗传算法的原理与实现示例
  • Android开发前的准备工作
  • 批量PDF转换工具,一键转换Word Excel