server nat表和会话表的作用及NAT地址转换详细

news2024/11/15 12:44:05

本章节主要讲nat技术的基础

-会话表的建立也是看5元组

-状态检测技术的回包一样也看5元组,但是状态检测技术会看的除开5元组还有更多东西

老哥,你真的应该好好注意一个东西:我们的会话表只是为了后续包的转发,会话表是记录的首包被防火墙怎么处理的一些列操作;所以我们会话表没有什么nat地址转换,没有什么路由信息,只有首包被防火墙怎么处理的记录;

1、防火墙中数据包的转发过程:

开讲之前我们先理清一下包转发的思路:

我们的会话表只是记录我们首包的一些列防火墙对他处理,便于后续的包进行转发;会话表只是为了转发后续数据流的数据包;所以说并不是说产生会话表就一定需要安全按策略;这不一定,他只是记录防火墙对改数据包的一种处理的

2、NAT分类:   (本节都是讲源NAT)

--1、防火墙中NAT分类方式:     

1、源NAT --基于源IP地址进行转换(不管是发送还是接收都是值转换源地址),包含动态NAT以及NAPT,静态NAT(静态NAT不适合私转公,适合公网转私网)

2、目标NAT ---基于目标地址进行转换(不管是发送还是接收都是只对目标进行转换),以前的端口映射

3、双向NAT  ---同时将你的数据包中的源IP和目标IP地址

(服务器端口映射:就是服务器将自己的端口映射到公网之后,当然IP肯定也是映射到了公网;服务器端口映射是为了让其他公网设备在访问我的服务器映射的公网IP和端口时,会直接访问到我的私网里面的服务器的对应端口服务;

端口映射是为了让其他公网设备来访问我的服务器)

--2、防火墙中配置nat时的分类:防火墙中nat只有两种:1、动态nat   ---多对多

                                                                                                2、napt

                                                                                                        --1、多对1napt   ---easy ip

                                                                                                        --2、多对多的napt

  --3、当我们在配置多对多的时候,我们不选择端口地址转换,则表示动态nat;就是单纯的将IP地址进行转换;

  --4、napt网络端口地址转换:当两个数据包的5元组相同时,那么他们转化之后的网络地址和端口地址也是相同;

解释:如果两个相同5元组的数据包转换之后的地址不相同那么:当你从内部去访问外放的网页,首先会建立一个tcp连接,如果客户端发送的第一个SYN请求到nat转换之后的端口地址和客户端发送的第三个ack报文转换之后的端口地址不一样,那么就会让服务器不知道这个ack是哪个客户端发送的,他就会以为这是其他的tcp连接回复的;

--5、动态nat不能匹配具体的协议数据包;就是在配置防火墙的动态NAT时,在写匹配数据包部分的协议部分时只能选择全部any,否者匹配不上数据包;

3、NAPT的三元组使用场合  

p to p模式

A向B通信,会先去跟服务器说一声,让服务器告诉A/B对方的IP,然后进行连接;

如上图:首先这种通信有防火墙时是肯定不能通信的:

--1、策略也不会让2进来,因为出去到达时候找server,回来的时候是2,状态检测技术是不会为其开放隐形通道的;    ---所以要写一条安全策略

--2、nat策略不行,因为出去的时候我帮你转换的公网IP和回来的公网IP不一样;所以nat策略不会帮转换;

当你的nat是三元组时,则当你回来的包是server发的还是2发的,他们的三元组都是一样的:目标IP,目标端口,和协议;所以nat这种看不出什么异样了,就会帮你正常的转换了

---总结:其实所谓的3源组还是5源组其实就是一个更加严格一个更加松弛;5源组源目标都要看所以更加严格,而3源组只看目标,所以更加松弛;

P TO P模式就适合3元组动态NAT转换

4、安全策略的源和目标永远都不是在同一个区域的

因此到底是安全策略先放行还是NAT策略先转换还是要看情况,但是必须要做到的是安全策略在匹配时,匹配的源和目标永远不是在同一个区域的

但是路由匹配这方面:肯定是先进行NAT地址转换再进行路由匹配

---注意:同一个接口进同一个接口出这种是属于同一个区域对数据包的转发;所以不会匹配安全策略;

5、黑洞路由 (空接口)

---日路由器上做汇总路由,防火墙上做缺省;会触环    ---有黑洞路由则不会触环

场景1:

当两个设备的网段是12.1.1.0/24网段时;这边是1.1;右边是1.2;

防火墙内地址池有一个12.1.2.1; //这个地址不属于直连地址

路由器上有汇总路由12.1.0.0/16,防火墙有缺省指向外界公网,即路由器

当我们的路由器访问防火墙地址池内地址12.1.2.1地址会怎样;

首先路由器会讲包发送给防火墙,防火墙一看这个数据包,我应该首先看是否能勇NAT转换;不能转换,那就进行下一步匹配路由表;

发现路由表是对应缺省路由,就这样包又会丢回去;

---产生环路;

解决办法:我们在缺省路由上面设置一条空接口,那么我们的数据包到防火墙就会匹配空接口路由,因为最长匹配嘛;所以就会直接把数据包转发向空接口,即丢包;

场景2:

当两个设备的网段是12.1.1.0/24网段时;这边是1.1;右边是1.2;

防火墙内地址池有一个12.1.1.3   //这个地址是直连地址

路由器上有汇总路由12.1.0.0/16,防火墙有缺省指向外界公网,即路由器

当我们的路由器访问防火墙地址池内地址12.1.1.3地址会怎样;

首先路由器会讲包发送给防火墙,防火墙一看这个数据包,我应该首先看是否能勇NAT转换;不能转换,那就进行下一步匹配路由表;

发现路由表对应下一跳是直连路由,此时我们的路由器肯定就会向直连这里发送ARP请求mac;请求到了MAC才会进行转发;

显然这个1.3是虚拟的;所以不会得到回应;

所以没有arp回应,直接丢包;

总结:我们的路由器进行包转发,都会查询路由表查看路由;查看出路由的下一跳;然后问下一跳要MAC,等到目标IP,目标mac都有了之后才会进行转发;

所以要真真切切知道我们的包转发过程:先查路由,然后根据路由找到下一跳;然后发送arp请求直连下一跳的mac地址;有了目标IP和目标mac再结合自己的源IP和mac才能进行最终的转发!!

---三层设备在封装和解封装的时候会对三层和二层一起封装和解封装;但是二层设备只能对二层进行封装和解封装;

-------------值得认真阅读

----补充点:

5元组nat,就是根据5元组的信息来判断,端口号变还是不变;5元组相同就不变,不相同就变

这里全部是都会数据包的匹配,所以里面的目的类型:当为出接口的时候代表你访问的是防火墙的公网接口;一般这种情况很少用;

6、动态nat

--1、动态nat的其实就是“多对多”;这个多对多是说多个静态1对1,

其实这里的1对1其实是针对会话表,当会话表中的IP 1对1没有消失,那么这个公网的IP就不能使用;必须等会话表中1对1 记录消失才行;

---解释:当数据流没有结束,即会话表肯定也不会老化;所以会话表即代表数据流有没有结束;因为数据的传输是针对数据流来说的;所以一旦一个公网IP和私网IP进行绑定了,那么就必须等这股数据流完全结束才行;又因为我们的数据流和会话表息息相关;

----所以我们的会话表中的公网和私网转换记录个数就是动态nat中公网和私网绑定的个数

--2、动态nat可以指定服务;当然如果有server map表记录了的转换地址的记录,那么即使没有nat也可以通;

就是说:当我们的动态nat第一次选择了动态nat的any服务,然后生成了server map表;此时这个server map表就有了地址转换的记录;

我们在这个server map表老化之前,我们关闭动态nat,且又重新用相同的源IP访问公网,这时也是可以地址转换的;

因为server map记录了nat转换;且这条记录可以拿来防火墙用

---server map表的两个作用:1、为防火墙提供nat地址转换记录;

                                                2、为防火墙提供端口好号

7、空接口和路由匹配是一样的规则;

空接口是设置在缺省路由所在那台设备的上面的

边界防火墙收到数据包首先会看是否做nat,再看路由;‘

----当边界防火墙上面设置了:讲本地接口IP映射成内网服务器IP;

数据包来到边界防火墙后,会先看是否转换,如果不转换就是代表访问自己;如果转换就代表访问的是我端口映射的那个服务器;

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

                                          过程是背,思路是理解;

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

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

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

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

相关文章

C++:哈希表

哈希表概念 哈希表可以简单理解为:把数据转化为数组的下标,然后用数组的下标对应的值来表示这个数据。如果我们想要搜索这个数据,直接计算出这个数据的下标,然后就可以直接访问数组对应的位置,所以可以用O(1)的复杂度…

澳门建筑插画:成都亚恒丰创教育科技有限公司

澳门建筑插画:绘就东方之珠的斑斓画卷 在浩瀚的中华大地上,澳门以其独特的地理位置和丰富的历史文化,如同一颗璀璨的明珠镶嵌在南国海疆。这座城市,不仅是东西方文化交融的典范,更是建筑艺术的宝库。当画笔轻触纸面&a…

能源园区可视化管理系统

利用图扑 HT 可视化打造能源园区管理系统,实时监控和优化能源分配,提升园区运行效率,增强安全管理,推动绿色和可持续发展。

信立方大模型 | 以AI之钥,开拓智能守护新疆界

在当前网络安全形势日益复杂的背景下,技术的进步不仅带来了便利,也使得网络攻击手段更加多样化和隐蔽化。据悉,国外某研究团队已成功利用GPT技术开发出一种黑客智能体框架,该框架能够深入研读CVE(通用漏洞披露&#xf…

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

🎯要点 🎯概率论和图论数学形式和图结构 | 🎯数学形式、图结构和代码验证贝叶斯分类器算法:🖊多类型:朴素贝叶斯,求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素…

Android12 MultiMedia框架之GenericSource extractor

前面两节学习到了各种Source的创建和extractor service的启动,本节将以本地播放为例记录下GenericSource是如何创建一个extractor的。extractor是在PrepareAsync()方法中被创建出来的,为了不过多赘述,我们直接从GenericSource的onPrepareAsyn…

LeetCode刷题笔记第3011题:判断一个数组是否可以变为有序

LeetCode刷题笔记第3011题:判断一个数组是否可以变为有序 题目: 想法: 使用冒泡排序进行排序,在判断大小条件时加入判断二进制下数位为1的数目是否相同,相同则可以进行互换。最后遍历数组,相邻两两之间是…

17集 如何用ESP-IDF编译ESP-DL深度学习工程-《MCU嵌入式AI开发笔记》

17集 如何用ESP-IDF编译ESP-DL深度学习工程-《MCU嵌入式AI开发笔记》 参考文档:ESP-DL 用户指南: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/index.html 和https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/get-s…

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…

Java实现数据结构——双链表

目录 一、前言 二、实现 2.1 类的创建 三、对链表操作实现 3.1 打印链表 3.2 插入数据 3.2.1 申请新节点 3.2.2 头插 ​编辑 3.2.3 尾插 3.2.4 链表长度 3.2.5 任意位置插入 3.3 删除数据 3.3.1 头删 3.3.2 尾删 3.3.3 删除指定位置数据 3.3.4 删除指定数据 3…

王道计算机考研数据结构思维导图笔记(持续更新)

第1章 绪论 1.1 数据结构的基本概念 1.1.1 基本概念和术语 1.1.1 数据结构三要素 1.2 算法和算法评价 1.2.1算法的基本概念 1.2.2 算法效率的度量 第2章 线性表 2.1 线性表的定义和基本操作 2.1.1 线性表的定义 2.1.2 线性表的基本操作 2.2.1 顺序表上的定义 2.2.2 顺序…

Power Apps使用oData访问表数据并赋值前端

在使用OData查询语法通过Xrm.WebApi.retrieveMultipleRecords方法过滤数据时,你可以指定一个OData $filter 参数来限制返回的记录集。 以下是一个使用Xrm.WebApi.retrieveMultipleRecords方法成功的例子,它使用了OData $filter 参数来查询实体的记录&am…

期货交易记录20240714

文章目录 期货交易系统构建步骤一、选品二、心态历练三、何时开仓3.1、开仓纪律3.2、开仓时机3.3、开仓小技巧 四、持仓纪律五、接下来的计划 2024年7月15号,期货交易第6篇记录。这一篇文中主要记录下,根据交易保证金筛选品种。 交易记录:目…

internet download manager(IDM下载器) 6.42.8.2下载安装使用指南

internet download manager(IDM下载器) 6.42.8.2Z是一款功能强大的下载加速工具,能够显著提升您的下载速度,最高可达500%。它不仅能够加速下载,还能对下载任务进行智能调度,并具备恢复中断下载的能力。根据用户评价,无…

6.S081的Lab学习——Lab10: mmap

文章目录 前言mmap(hard)提示:解析 总结 前言 一个本硕双非的小菜鸡,备战24年秋招。打算尝试6.S081,将它的Lab逐一实现,并记录期间心酸历程。 代码下载 官方网站:6.S081官方网站 安装方式: 通过 APT 安装…

Re:从零开始的C++世界——(一)入门基础

文章目录 C发展历史1.命名空间1.1 namespace的价值1.2 namespace的定义1.3 命名空间使⽤ 2.C输⼊&输出3.缺省参数3.1 缺省参数的概念3.2 缺省参数的分类 4.函数重载5.引⽤5.1引⽤的概念和定义5.2 引⽤的特性5.3 const引⽤5.4 使用场景5.5 指针和引⽤的关系 6.内联函数6.1内…

RDNet实战:使用RDNet实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

从零开始做题:迷失幻境

题目 给出一个磁盘虚拟文件 解题 下载附件然后解压,得到一个虚拟机文件,使用的是DiskGenius磁盘工具打开 这样他里面的文件就全部展现出来了 我们可以看到有很多图片,和一个txt文档,还有几个没有后缀的文件,图片这么多,所以我…

自动驾驶中的人机互相接管问题讨论

一、背景 人机接管(human takeover)是指在自动驾驶过程中,当系统遇到超出其处理能力或预设安全阈值的情况时,将控制权交还给驾驶员的过程。这一环节的设计直接关系到自动驾驶技术的实用性与安全性,是目前研究和实践中…

idea启动ssm项目详细教程

前言 今天碰到一个ssm的上古项目,项目没有使用内置的tomcat作为服务器容器,这个时候就需要自己单独设置tomcat容器。这让我想起了我刚入行时被外置tomcat配置支配的恐惧。现在我打算记录一下配置的过程,希望对后面的小伙伴有所帮助吧。 要求…