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

本章节主要讲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.rhkb.cn/news/376386.html

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

相关文章

视频播放器的问题

<template><div class"app-container"><el-form :model"queryParam" ref"queryForm" :inline"true"><el-form-item label"题目ID&#xff1a;"><el-input v-model"queryParam.id" cle…

WEB07Vue+Ajax

1. Vue概述 Vue&#xff08;读音 /vjuː/, 类似于 view&#xff09;&#xff0c;是一款用于构建用户界面的渐进式的JavaScript框架&#xff08;官方网站&#xff1a;https://cn.vuejs.org&#xff09;。 在上面的这句话中呢&#xff0c;出现了三个词&#xff0c;分别是&#x…

在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换

一、首先要先安装一个虚拟的环境 安装Miniconda包 Miniconda的官网链接:Minidonda官网 下载好放在要操作的linux系统,我用的是远程服务器的linux系统,我放在whl这个文件夹里面,这个文件夹是我自己创建的 运行安装 安装的操作都是yes就可以了 检查是否安装成功,输入下面…

Qt开发 | Qt绘图技术 | 常见图像绘制 | Qt移动鼠标绘制任意形状 | Qt绘制带三角形箭头的窗口

文章目录 一、基本绘图技术介绍二、常见的18种图形、路径、文字、图片绘制三、Qt移动鼠标绘制任意形状四、Qt绘制带三角形箭头的窗口 一、基本绘图技术介绍 Qt提供了绘图技术&#xff0c;程序员可以在界面上拖动鼠标&#xff0c;或者在代码里指定参数进行绘图。 Qt绘图技术介绍…

系统架构师考点--软件工程(上)

大家好。今天我来总结一下软件工程的相关考点。这部分是考试的重点。在上午场客观题、下午场案例题以及下午场论文都有可能考到&#xff0c;在上午场客观题中大约占12-15分左右。 一、软件工程概述 软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析过…

单元测试实施最佳方案(背景、实施、覆盖率统计)

1. 什么是单元测试&#xff1f; 对于很多开发人员来说&#xff0c;单元测试一定不陌生 单元测试是白盒测试的一种形式&#xff0c;它的目标是测试软件的最小单元——函数、方法或类。单元测试的主要目的是验证代码的正确性&#xff0c;以确保每个单元按照预期执行。单元测试通…

构建高精度室内定位导航系统,从3DGIS到AI路径规划的全面解析

室内定位导航系统是一种利用多种技术实现室内精准定位和导航的智能系统&#xff0c;即便没有卫星信号&#xff0c;也能实现精准导航。维小帮室内定位导航系统是基于自研的地图引擎与先进定位技术&#xff0c;结合智能路径规划算法&#xff0c;解决了人们在大型复杂室内场所最后…

【Linux】多线程_3

文章目录 九、多线程3. C11中的多线程4. 线程的简单封装 未完待续 九、多线程 3. C11中的多线程 Linux中是根据多线程库来实现多线程的&#xff0c;C11也有自己的多线程&#xff0c;那它的多线程又是怎样的&#xff1f;我们来使用一些C11的多线程。 Makefile&#xff1a; te…

Unity基础调色

叭叭叭 最近&#xff08;*这两天&#xff09;因为想做一些Unity的调色问题&#xff0c;尝试原文翻译一下&#xff0c;其实直接原文更好&#xff01;&#xff01; Color Grading 参考了&#xff0c;某大牛的翻译&#xff0c;实在忍不住了&#xff0c;我是不知道为什么能翻译成…

Vivado 2020.1 HLS IP在BD模式无法生成问题

折腾了一周整整&#xff0c;记录一下&#xff0c;希望对大家有用。 各种找、各种操作&#xff0c;也问了FAE&#xff0c;都没搞定。 最后看到如下博文的方法3&#xff0c;管用。 vivado综合hls类ip核报错问题解决方案_vivado ip synth checkpoint mode-CSDN博客 报错描述 m…

论文翻译:Large Language Models for Education: A Survey and Outlook

https://arxiv.org/abs/2403.18105 目录 教育领域的大型语言模型&#xff1a;一项调查和展望摘要1. 引言2. 教育应用中的LLM2.1 概述2.2 学习辅助2.2.1 问题解决&#xff08;QS&#xff09; 2.2.2 错误纠正&#xff08;EC&#xff09;2.2.3 困惑助手&#xff08;CH&#xff09;…

Jenkins中Node节点与构建任务

目录 节点在 Jenkins 中的主要作用 1. 分布式构建 分布式处理 负载均衡 2. 提供不同的运行环境 多平台支持 特殊环境需求 3. 提高资源利用率 动态资源管理 云端集成 4. 提供隔离和安全性 任务隔离 权限控制 5. 提高可扩展性 横向扩展 高可用性 Jenkins 主服务…

【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】

文章目录 0. 前言1. 安装前准备工作1.1 创建weihu用户1.2 安装依赖包1.2.1 安装 GMP1.2.2 安装MPFR1.2.3 安装MPC 2. gcc10.0.1版本安装3. 报错解决3. 1. wget下载报错 4. 参考文档 0. 前言 gcc&#xff08;GNU Compiler Collection&#xff09;是GNU项目的一部分&#xff0c;…

excel 百分位函数 学习

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、函数说明PERCENTILE 函数PERCENTILE.inc 函数PERCENTILE.exc 函数QUARTILE.EXC 函数 二、使用步骤总结 前言 excel 百分位函数 Excel提供了几个函数用于…

ctfshow-web入门-php特性(web100-web103)is_numeric 函数绕过

目录 1、web100 2、web101 3、web102 4、web103 1、web100 提示&#xff1a;flag in class ctfshow&#xff0c;我们只需要构造输出 ctfshow 这个类即可。 代码分析&#xff1a; $v0is_numeric($v1) and is_numeric($v2) and is_numeric($v3); if($v0){ 虽然逻辑运算符的…

Spring Boot整合Druid:轻松实现SQL监控和数据库密码加密

文章目录 1 引言1.1 简介1.2 Druid的功能1.3 竞品对比 2 准备工作2.1 项目环境 3 集成Druid3.1 添加依赖3.2 配置Druid3.3 编写测试类测试3.4 访问控制台3.5 测试SQL监控3.6 数据库密码加密3.6.1 执行命令加密数据库密码3.6.2 配置参数3.6.3 测试 4 总结 1 引言 1.1 简介 Dru…

gfast前端UI:基于Vue3与vue-next-admin适配手机、平板、pc 的后台开源模板

摘要 随着现代软件开发的高效化需求&#xff0c;一个能够快速适应不同设备、简化开发过程的前端模板变得至关重要。gfast前端UI&#xff0c;基于Vue3.x和vue-next-admin&#xff0c;致力于提供这样一个解决方案。本文将深入探讨gfast前端UI的技术栈、设计原则以及它如何适配手机…

Neo4j:图数据库的革命性力量

Neo4j 首席技术官 prathle 撰写了一篇出色的博文&#xff0c;总结最近围绕 GraphRAG 的热议、我们从一年来帮助用户使用知识图谱 LLM 构建系统中学到的东西&#xff0c;以及我们认为该领域的发展方向。Neo4j一时间又大火起来&#xff0c;本文将带你快速入门这神奇的数据库。 前…

sentinel源码分析: dashboard与微服务的交互、pull模式持久化

文章目录 原始方式微服务端规则如何保存规则如何加载进内存微服务端接收控制台请求控制台推送规则总结 pull拉模式官方demo如何整合Spring Cloud整合Spring Cloud 前置知识 SentinelResource的实现原理、SphU.entry()方法中ProcessorSlotChain链、entry.exit() 建议先会使用se…

秋招Java后端开发冲刺——MyBatisPlus总结

一、 基本知识 1. 介绍 yBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上增加了大量功能和简化操作&#xff0c;以提高开发效率。 2. 特点 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有项目产生影响。依赖少&#xff1a;仅仅依赖 …