NAT地址转换+多出口智能选路,附加实验内容

本章主要讲:基于目标IP、双向地址的转换    

注意:基于目标NAT进行转换  ---基于目标IP进行地址转换一般是应用在服务器端口映射;

NAT的基础知识

1、服务器映射

服务器映射是基于目标端口进行转换,同时端口号也可以进行修改;

服务器映射可能会触环:

条件:

当服务是http时,防火墙上有缺省指向外界,路由器有该接口的IP指向防火墙

我们的服务器映射是做在虚拟IP上的(虚拟接口也可以做端口映射,且这个虚拟IP的网段和边界接口IP不是在同一个网段

情况:

--1、那么当我们从右边路由器访问这个服务时,正常访问80端口完全ok;

--2、当我们从右边外界访问这个服务时,访问的端口不是80端口,就会发生环路;

如:外界数据包发过来,我们的防火墙就会首先尝试进行一个nat地址转换;这里因为端口号不一样,而服务器映射是需要看端口号是否符合要求才会进行转换的;

显然这里端口号不一样就不会进行相应的转换;即使IP一样也不行,需要看端口和IP

而这里转换不了之后,下一步就是匹配路由表;一旦匹配路由表就会匹配上缺省,然后又将数据包丢回路由器了,而路由器匹配上路由发现边界接口的IP是在防火墙上,所以又会丢回来;------触环

解决办法:在缺省路由那个设备上设置空接口,也叫空接口路由;

提问:如果端口映射的接口IP是属于防火墙边界的直连网段的,那么还会不会触环?

不会,因为你看,老样子;

当数据包过来防护墙后,防火墙会先尝试NAT地址转换;显然端口不一样,转换不了;

然后会匹配路由表,因为这边路由表是有缺省和直连路由,这里显然就会匹配上直连路由,而他知道刚刚这个数据包就是从那边直连网段所在接口进来的;

所以他不会再传进去了,那么他会干嘛;当然是最后尝试发送一个ARP,最后再挣扎一下,看是否还有本网段内还有没有漏的;

---空接口也是路由,他叫空接口路由,只是子网掩码比较长

空接口一般是设置在缺省路由所在设备上;

2、NAT和路由谁先谁后

当然是NAT先,进行转换之后再路由;

安全策略的先后:安全策略是必须要一个区域和另一个区域的匹配;所以安全区域的先后取决于数据包刚刚进来的时候源和目标是否是同一个区域;

是同一个区域就需要先NAT转换;

不是同一个区域就先安全策略再nat;

当NAT地址转换设置成出接口转换时,且数据包也是从这个接口出去的,此时其实转换的地址可以是别的边界接口的地址;

我想说的是:nat地址出去的时候怎么转换的,回来的时候肯定也是用相同地址进行转换,即使出去和回来的接口不一样且nat还是出接口转换也不会改变这个规则;

如:

当这里做了一个服务器映射,是21 IP接口上做的

数据包从路由器发向防火墙,且防火墙的两个边界接口都是设置成的出接口地址转换;

当数据包是从21接口进来的,所以数据包在公网的时候,数据包的目标IP肯定就是21;

当数据包又从12接口出去的时候,这时做地址转换其实还是会按着进来的那两个地址进行转换;

所以出去的时候,即使我们是从12接口出去的,但是我们的源地址依然是进来的时候的目标地址21;

nat地址转换规则不会变,即使进来和出去的接口不一致也不会改变

出接口的地址转换可以用其他的出接口地址进行转换

注意:地址转换是首选nat,但是如果没有nat,server map表在老化之前也用来给防火墙用作地址转换;

3、策略路由

抓取目标流量,同时设置路由,然后让抓取的流量往我单独设置的这条路由上走;

---就是修改流量的轨迹,让他按我指定的方向走;

4、双向地址转换:源IP和目标IP都进行转换,端口是否需要转换看需求设置的nat策略

当我们的内部pc想通过公网访问内部服务器时,那么我们的数据包首先从pc来到我们的防洪墙,

--1、如果此时我们的防洪墙做的是基于源IP进行地址转换:显然这样是访问不到内部的服务器的;因为一旦转换,两个都是公网IP,防火墙通过缺省就会丢到路由器,路由器找不到就会直接丢包;

--2、如果我们此时是基于目标进行地址转换:我们的数据包就会把目标修改为内部服务器的真实IP,然后数据包成功来到这个服务器;但是服务器回包的时候,发现目标就是本网段的(因为我们的源IP一直没变,一直是私网的),所以此时我们的服务器就会直接向pc回包,不会去防火墙;

因为前面我的目标IP是服务器公网IP,现在回来的数据包发送者,即源IP不是公网IP,所以这个tcp连接会建立失败,因为前后对不上;这样我们就不能在这个服务器上面进行资源获取;   ---但是ping可以通,因为ping只管发送和回复,所以他才不会管回来的包的源IP是谁,他才不会管回来的包发送者是谁;

--3、如果我们此时是基于双向nat进行地址转换:我们的数据包首先还是会去到防火墙,然后防火墙就会把我的源IP和目标IP进行转换,注意此时的源IP转换之后必须不是在本网段的,不然还是会出现2的问题;当然,为了还满足上网需求,我们应该将源IP转换之后的IP变成公网的IP,所以最后源IP转换成了公网IP,目标IP转换成了私网IP;

发送给服务器后,服务器回包,发现目标IP是不属于本网段的,是公网的,然后也是发送给防火墙,然后防火墙再重新转换回来;服务器发送的源私网IP变成了开始的服务器的公网IP,目标公网IP变成了开始的私网IP;这样回复给了pc,这样pc看是目标发送给我的,就会成功建立tcp连接;

补充:服务器端口映射可以不用真实接口IP,因为数据包进来就会被端口地址映射,所以不是说要必须要外界能和这个IP进行通信,才能用这个IP地址;

5、多出口智能选路:    ---全局选路策略;当边界设备上面有多个出口可以去公网,我们 进行择优选择

--1、基于链路带宽进行负载分担:

如果一条链路超过了过载保护阈值,则该链路不再参加智能选路(如果已经创建了会话

表的流量,则将依然走该链路。),将在剩下链路中继续进行智能选路。

基于源IP的会话保持---来自同一个源IP或者同网段源IP的流量将始终使用同一个出接口转发,适用于对链路切换敏感的场景

基于目的IP的会话保持---访问同一个目标或者相同的目标网段,流量将始终使用同一个出接口转发,适用于对链路切换敏感的场景

--2、基于链路质量进行负载分担

---1,丢包率---防火墙会连续发送若干个(默认5个)探测报文,去计算丢包的比

例。(丢包个数/探测报文个数)---丢包率是最主要的链路质量参数

---2,时延---防火墙会连续发送若干个(默认5个)探测报文,取五次往返时间的平均值

作为时延参数。

---3,延时抖动---防火墙会连续发送若干个(默认5个)探测报文,取两两之间时延差值

的绝对值的平均值。

--3、基于链路权重的负载分担

权重值由网路管理员手工指定

--4根据链路优先级的主备备份

--优先级也是由网络管理员手工指定

--如果没有配置过载保护,则优先级最高的先工作,当该链路故障,则次高的开始工作,其余继续备份,以此类推;

--如果配置了过载保护,则优先级最高的先工作,当超过保护阈值,则次高的开始工作,其余继续备份,相当于此时两条链路同时工作,以此类推。

6、DNS透明代理    ---去的时候修改目标dns,回来的时候又修改回来

举例:百度,其实电信给百度设置的公网IP和移动对百度设置的IP是不一样的;所以一旦选择电信的dns服务器,那么解析出来的IP肯定就是电信对百度设置的IP,那么就会通过电信的线路对百度进行访问;

有时电信的网络链路质量已经很差了,那么我们就应该让后续找想找电信dnf服务器解析的数据包变成去找移动;

---这就是dns透明代理:就是让边界设备,如防火墙修改数据包想访问的dns服务器;

回来的时候又将源IP修改回来;

这样客户端就不会发现;

如:去的时候因为电信的数据链路质量太差了,所以我们的边界就修改了数据包中目标dns的IP,让他去访问移动dns,回来的时候,又将本来源IP是移动dns,修改为电信的dns;提高网络质量的同时不能让客户端知道我修改了他的目标dns

上实验:

前面6题上一个文章见过,我们这次主要讲后面5个;

问题7:办公区可以通过移动和电信进行上网,且是多对多

        在配置时候,我们此时可以直接写一个既不属于电信又不属于移动的地址池的动态nat,这样就可以避免分开写电信和移动的地址此了;减少代码量

问题8:分公司可以访问总公司的服务器

        从题目中我们可以看出,题目是想让公网访问我们内部的服务器,所以我们应当做一个服务器映射,即基于目标的IP的nat;

这里面需要注意的点是:

        1、我们的安全区域是指:哪个区域能访问我们的这个服务器,其实就是用来匹配的源区域;

        2、我们的端口地址转换是可选,这里如果写两个80,那么就代表公网访问80端口,转换之后的端口号还是80,即我的http服务;

其实我们可以看出,既然目标nat可以做,那我们的双向地址转换肯定也可以做

问题9:这里无非就是对链路选路进行一个策略;

        --1、首先在接口里面把接口的带宽配置欧克

        再通过接口创建一个链路接口,链路接口和接口基本一样,只是作用对象不同,链路接口是作用于选路策略的

--2、创建链路接口    ---这里应当选择源进源出,保证网络的稳定性

--3、选择智能选路

这里就是来选择智能选路的方式,同时把接口添加进智能选路机制里面来,让系统进行合理的选路

问题10:翻译一下:分公司内部可以通过公网IP访问内部服务器,公网也可以通过公网IP访问内网服务器;这里后半截问题很简单,公网访问内部服务器,基于目标地址转换即可;

主要是前半截问题:这里只能用双向nat,具体原因请思考包的发送过程!!

选择双向nat转换

配置转换后的源IP、目标IP、源服务、目标端口号(也是目标服务);

注意这里的源服务和目标服务(目标端口号)的个数必须相同

问题11:游客只能通过移动电路访问公网,可以看出这里我们需要写策略路由

策略路由:对抓取到的目标数据包进行一个针对性的转发,就像是为抓取到的数据包专门设置一个针对性的路由

这个出接口:就是针对我们抓取的数据包,我们需要选择哪条路进行一个转发;让你选择是移动这个出口还是电信这个出口

----------------------------------我们只讲思路,不讲详细过程;

                                          过程是背,思路是理解;

                                           想要走多远,10%背+90%理解

祝你年薪百万,成绩辉煌!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

方波的傅里叶变换及方波的MATLAB实现

一、傅里叶变换简介 傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。傅里叶变换是一种线性的积分变换。它的理论依据是:任何连续周期信号都可以由一组适当的正弦曲线组合…

stm32h743 NetXduo 实现http server CubeIDE+CubeMX

在这边要设置mpu的大小,要用到http server,mpu得设置的大一些 我是这么设置的,做一个参考 同样,在FLASH.ld里面也要对应修改,SECTIONS里增加.tcp_sec和 .nx_data两个区,我们用ram_d2区域去做网络,这个就是对应每个数据在d2区域的起点。 在CubeMX里,需要用到filex、dhc…

无损音乐播放器推荐:Audirvana for Mac 中文激活版

udirvana 是一款高品质的音乐播放软件,专为Mac操作系统设计。它被设计来提供音频播放的最高标准,支持多种音频格式,包括高达32位/192kHz的高分辨率音频。Audirvana Plus 是其高级版本,提供了更多的功能和优化,例如音频…

Qt Mqtt客户端 + Emqx

环境 Qt 5.14.2 qtmqtt mqttx 功能 QT Mqtt客户端 qtmqtt 下载 qtmqtt (注意下载与QT版本相符的库)并使用QT 编译 编译完成后需要的文件: emqx 1.虚拟机中安装emqx,并启动 curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash sudo apt-get inst…

前端Vue组件化实践:打造仿京东天猫商品属性选择器组件

在前端开发领域,随着业务需求的日益复杂和技术的不断进步,传统的整体式应用开发模式已逐渐显得捉襟见肘。面对日益庞大的系统,每次微小的功能修改或增加都可能导致整个逻辑结构的重构,形成牵一发而动全身的困境。为了解决这一问题…

树莓派PICO使用INA226测量电流和总线电压(3)

上一篇文章我们讲了如何测试电流,但是INA226有一个非常典型的问题,那就是误差比较大,因为采样电阻非常小,我的开发板用的是100mΩ的采样电阻,在设定中我也用的是这个采样电阻值,但事实上,测试得…

免费开源工具—— Clarity Al:一键图像放大/增强,Magnific平替!

今天给大家推荐一款图像增强工具——Clarity AI ,免费且开源,快来看看吧! 1、效果展示 MagnificAl是一款基于人工智能技术的图像处理工具,主要功能包括图像放大、像素级AI重绘、灵活的设置调整以及多种优化场景。它能够支持最高放大至16倍,甚…

算法力扣刷题记录 四十五【110.平衡二叉树】

前言 二叉树篇继续 记录 四十五【110.平衡二叉树】 一、题目阅读 给定一个二叉树,判断它是否是 平衡二叉树。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:true示例 2: 输入:root [1,2,2,3,3…

电容充放电时间计算

电容充电时间的结论:t充电 R * C 时,Ut2*VCC/3,这是一个不能让我释怀的结论。 1、电池充电 U0表示电容C在充电0时刻的电压值; Ut表示电容C在充电t时刻的电压值; U1表示电容C在充电∝时刻的电压值,就是电源电压; Q C * U ---…

【C/C++积累技巧】实现 连续播放文件图片+逐帧文本显示, 同时 可以按任意键退出(基于easyx小游戏编程)

技巧一、使用 IMAGE数组循环&#xff1a;实现【连续播放图片】 &#xff08;1&#xff09;一张图片如何放映在 图形化窗口上&#xff1a;借用两个函数 #include<graphics.h> // 函数的头文件IMAGE imgMy; // 图形变量 loadimage(&imgMy, "写入你想显示的图片路…

Java高频面试基础知识点整理27

干货分享&#xff0c;感谢您的阅读&#xff01;背景​​​​​​高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09; 最全文章见&#xff1a;Java高频面试基础知识点整理 &#xff08;一&#xff09;Java基础高频知识考点 针对人员&#xff1a; 1.全部人员都…

vs2019 QT无法打开源文件QModbusTcpClient

vs2019无法打开源文件QModbusTcpClient 如果配置的msvc2019,则查找到Include目录 然后包含&#xff1a; #include <QtSerialBus/qmodbustcpclient.h>

STL 提供的容器可以有多快?(下)「榨干最后一滴」

以下内容为本人的烂笔头&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/QWgA97TDMGBnwR4hKA7BwA 查表的消耗 某些场景下需要用到大量的 (string, X) 键值对来存储数据&#xff0c;标准库提供了关联容器 std::map 来解决键…

Python酷库之旅-第三方库Pandas(021)

目录 一、用法精讲 52、pandas.from_dummies函数 52-1、语法 52-2、参数 52-3、功能 52-4、返回值 52-5、说明 52-6、用法 52-6-1、数据准备 52-6-2、代码示例 52-6-3、结果输出 53、pandas.factorize函数 53-1、语法 53-2、参数 53-3、功能 53-4、返回值 53-…

经典卷积网络

放假回家了&#xff0c;感觉快坚持不下去了&#xff0c;目前还没有找到关于无监督学习实现分类的课程&#xff0c;普通数据当然肯定不会给你实现分类的啊 给些建议吧。 LeNet 通过共享卷积核&#xff0c;减少网络参数。 一般只统计卷积计算层和全连接计算层&#xff0c;其余操…

【redis操作语句】

1.数据库操作 redis默认有16个数据库&#xff0c;编号为0~15&#xff0c;且默认访问0号数据库 获取当前键值对数量:先set创建一个键值对,再用dbsize获取&#xff0c;flushdb清空再获取。 127.0.0.1:6379> set k1 v1 OK 127.0.0.1:6379> dbsize (integer) 1 127.0.0.1:…

安卓onNewIntent 什么时候执行

一.详细介绍 onNewIntent 方法 onNewIntent 是 Android 中 Activity 生命周期的一部分。它在特定情况下被调用&#xff0c;主要用于处理新的 Intent&#xff0c;而不是创建新的 Activity 实例。详细介绍如下&#xff1a; 使用场景 singleTop 启动模式&#xff1a; 如果一个 Ac…

UML建模案例分析-需求对类图的影响很大

概要 类图描述系统中类的静态结构。 概念是概念&#xff0c;但类图受需求的影响是非常大的&#xff0c;可以说类图是建模的源头。尽管用例图是源头&#xff0c;但对类图的作用有限。 例子 进销存系统里&#xff0c;产品类中&#xff0c;至少要包括如下属性&#xff1a;名称…

现代动力系统理论导论 第一卷+第二卷 Anatole Katok 金成桴

第0章 引言 0&#xff0e;1&#xff0e; 动力学主要分支 0&#xff0e;2&#xff0e; 流&#xff0c;向量场&#xff0c;微分方程 0&#xff0e;3&#xff0e; 时间1映射&#xff0c;截面&#xff0c;扭扩 0&#xff0e;4&#xff0e; 线性化与局部化 第1部分 例子与基本概念 …

Ubuntu使用K3S一分钟快速搭建K8S集群

快速入门指南 | Rancher文档 准备3台服务器 Master节点安装脚本# K3s 提供了一个安装脚本,可以方便的在 systemd 或 openrc 的系统上将其作为服务安装。这个脚本可以在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行以下命令: curl -sfL https://rancher-mi…