三、防火墙-源NAT

学习防火墙之前,对路由交换应要有一定的认识

  • 源NAT基本原理
    • 1.1.NAT No-PAT
    • 1.2.NAPT
    • 1.3.出接口地址方式(Easy IP)
    • 1.4.Smart NAT
    • 1.5.三元组 NAT
    • 1.6.多出口场景下的源NAT
  • 总结
  • 延伸

——————————————————————————————————————————————————

源NAT基本原理

源NAT技术对IP报文的源地址进行转换,将私网IP转换成公网IP,大大减少了公网IP的消耗。

当私网用户访问Internet报文到达防火墙时,防火墙将报文的源IP地址由私网地址转换为公网地址,当回程报文返回至防火墙,防火墙再将报文的目的地址由公网IP转换为私网地址。

华为防火墙支持的源NAT转换方式:

在这里插入图片描述

每一种NAT转换方式都曾在IP网络中走过秀、亮过相,都有自己的特色,但也有自己的不足。

——————————————————————————————————————————————————

1.1.NAT No-PAT

No-PAT表示不进行端口转换,只转换IP地址,所以也称为:一对一地址转换。

下面介绍No-PAT方式过程,假设防火墙和WEB服务器之间路由可达。。

在这里插入图片描述

配置NAT地址池和NAT策略

配置地址池
nat address-group GW 1mode no-pat global                             local和global参数,global生成的Server-map表项不包含安全域参数,不受域间限制,local包含安全区域参数,受域间限制section 0 210.1.1.5 210.1.1.10                 地址池有5个公网IProute enable                                   用来开启NAT地址池中地址的OPR路由下发功能配置NAT
nat-policy
rule name source_natsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action source-nat address-group GW                 配置NAT策略规则的动作,表示源NAT地址转换,引用地址池

配置完NAT,还需要配置安全策略和黑洞路由。

安全策略和NAT策略二者各司其职,安全策略控制报文是否能通过防火墙,而NAT策略作用是对报文地址进行转换。因此配置NAT的时候需要配置安全策略允许报文通过。

由于防火墙对报文进行安全策略处理发生在进行NAT策略处理之前,所以如果要针对源地址设置安全策略,源地址应该是进行NAT转换之前的私网地址。

security-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action permit

配置黑洞路由,为了避免产生环路,在防火墙上针对地址池中的公网IP地址配置黑洞路由。

有两种方式:
ip route-static方式

ip route-static 210.1.1.5 255.255.255.255 NULL0
ip route-static 210.1.1.6 255.255.255.255 NULL0
ip route-static 210.1.1.7 255.255.255.255 NULL0
ip route-static 210.1.1.8 255.255.255.255 NULL0
ip route-static 210.1.1.9 255.255.255.255 NULL0
ip route-static 210.1.1.10 255.255.255.255 NULL0

route enable 方式

nat address-group GW 1route enable        

当NAT地址池地址与出接口地址不在同一网段时,必须配置黑洞路由;当NAT地址池地址与出接口地址在同一网段时,建议配置黑洞路由。
当地址池地址与出接口地址一致时,不会产生路由环路,不需配置黑洞路由。产生的原因后续会介绍。

在配置策略后,可以访问210.1.1.2。
在这里插入图片描述

查看会话表,会话表中两个私网地址都分别转换了2个不同的公网IP,而端口没有转换,使用随机端口。

在这里插入图片描述
NAT No-PAT方式也会生成Server-map表,而且生成了正向和反向两张表。

在这里插入图片描述

这里生成的正向Server-map表,Type:No-Pat,作用是保证特定私网用户访问Internet快速转换地址。在老化时间范围内,直接命中该表,提高转换效率。同理,Type:No-Pat Reverse,反向主动访问私网用户报文,也命中反向Server-map表直接进行地址转换。

命中server-map表后,还需要检查安全策略是否通过。Server-map表在NAT里叫alg功能。在多通道协议里叫ASPF。

总结:如果私网地址过多大于地址池的话,需要等待地址池地址释放后,其他私网地址用户才可以访问WEB服务器,在No-Pat转换方式中,一个公网IP地址不能同时被大于多个私网用户使用。并没有起到节省IP的作用。

——————————————————————————————————————————————————

1.2.NAPT

NAPT表示网络地址和端口转换,即同时对IP地址和端口进行转换,也可称为 PAT。

NAPT 是一种应用最广泛的地址转换方式,可以利用少量的公网 IP 地址来满足大量私网用户访问Internet的需求。

NAPT方式和NAT No-PAT在配置上区别仅在于:NAPT方式NAT策略在引用NAT地址池时,不配置关键字no-pat。

在这里插入图片描述

和上案例其他配置一样。

配置NAT地址池和NAT策略

配置地址池
nat address-group GW 1mode pat                                              section 0 210.1.1.5 210.1.1.10                 route enable                                 配置NAT
nat-policy
rule name source_natsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action source-nat address-group GW    配置安全策略
security-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action permit 

会话表可以看出,两个私网地址分别转换公网地址,同时端口也转换为新的端口。在地址池选择地址的时候,设备是随机选择。

再次观察,192.168.20.2第一条,转换的IP210.1.1.6,端口为2051。192.168.10.2第六条,转换IP210.1.1.6,端口为2052。
私网用户共用一个公网IP,但是端口不一样。也就不必担心转换冲突的问题。

在这里插入图片描述

NAPT方式不会产生server-map表项,与NAT No-Pat不同。

——————————————————————————————————————————————————

1.3.出接口地址方式(Easy IP)

出接口地址方式Easy-IP:是利用出接口的公网IP地址作为NAT 转换后的地址,也同时转换地址和端口,一个公网IP地址可以同时被多个私网用户使用。

出接口方式比较特殊,如果防火墙公网接口通过动态获取IP时,想用一个公网IP地址来进行转换,不能在地址池中配置固定地址。因为公网IP是可变的,此时使用出接口方式,即使出接口获取IP发生变化,防火墙也只会按照公网IP地址进行转换。

Easy IP,不需要配置NAT地址池,也无需配置路由黑洞。只需要在NAT策略中指定出接口即可。

在这里插入图片描述

为了方便,用210.1.1.2服务器开启DHCP来模拟防火墙G1/0/1端口自动获取地址。

配置防火墙G1/0/1接口为自动获取地址

interface GigabitEthernet1/0/1
ip address dhcp-alloc

服务器上已经看到地址下发了。

在这里插入图片描述
交换机上也看到获取的地址。210.1.1.10/24

在这里插入图片描述

配置NAT策略

nat-policyrule name easynatsource-zone trustsource-zone untrustegress-interface GigabitEthernet1/0/1             出接口方式source-address 192.168.0.0 mask 255.255.0.0action source-nat easy-ipsecurity-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action permit 

两个私网用户IP地址已经转换为接口的公网IP地址,同时端口也转换为新的端口。

和NAPT一样,Easy-IP方式不会生成Server-map表。
在这里插入图片描述

——————————————————————————————————————————————————

1.4.Smart NAT

前面我们介绍过NATNO-PAT方式,一对一地址转换,NAT地址池中的公网IP地址被私网用户占用后,其他私网用户就无法再使用该公网IP地址,在这种情况下如何使其他私网用户也能访问Internet呢?

Smart NAT方式也叫做聪明的NAT,它融合了NAT No-PAT和NAPT方式特点。

其实我们可以把Smart NAT 方式理解成是对NPAT功能的增强,它克服了NO-PAT的缺点:只能让有限的私网用户访问Intermet,当私网用户数量大于地址池中公网IP地址数量时后面的私网用户将无法访问Intermet,只能等待公网IP地址被释放。

使用SmartNAT方式后,即使某一时刻私网用户数量激增Smart NAT也留有后手,即预留一个公网IP地址进行NAPT方式的地址转换这样就可以满足大量新增的私网用户的需求。

在这里插入图片描述

配置NAT地址池
nat address-group GW 1mode no-pat localsmart-nopat 210.1.1.10section 0 210.1.1.5 210.1.1.9route enable配置NAT策略
nat-policyrule name smartsource-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group GW配置安全策略
security-policyrule name smartsource-zone trustdestination-zone trustsource-address 192.168.0.0 mask 255.255.0.0action permit

就不过多演示,明白意思就行。只有公网IP地址被NAT No-pat转换用尽后,才会进行NATP转换。

——————————————————————————————————————————————————

1.5.三元组 NAT

前面介绍了4种源NAT,其中NAPT和Easy-IP应用最广泛,不但解决地址短缺,还隐藏内部IP。但是NAT技术与文件共享、语音通信、视频传输等方面的P2P技术不能很好的共存。当P2P业务遇到NAT的时候,产生的不是完美的NAT-P2P,而是,你可能无法下载最新影视资源,无法视频聊天等。

为了解决共存问题,需要一种新的转换方式,即三元组NAT,先看看P2P业务交互过程。

————————————————————
PC1和PC2是两台运行P2P业务的客户端,运行时首先和P2P服务器进行交互(登录、认证等操作),P2P服务器会记录客户端的地址和端口,如果PC1位于内部网络,防火墙会对PC1访问服务器的报文进行NAPT方式转换,这样P2P服务器记录的是经过转换后的公网地址和端口。当PC2需要下载文件时,服务器会将拥有该文件的客户端地址和端口发送给PC2(如PC1的IP和端口),然后PC2会向PC1发送请求,从PC1上下载文件。

在这里插入图片描述
过程看起来很顺畅,但对于P2P业务来说,存在两个问题。

1、为了保持联系,PC1会定期向P2P服务器发送报文,经过NAPT转换后,端口会动态变化,并不是固定的。这样P2P服务器记录的PC1地址和端口信息也要经常刷新,会影响P2P业务正常运行。

2、更重要的是,根据转发原理,只有P2P服务器返回给PC1的报文命中会话表才能通过防火墙,其他主机如PC2不能通过转换后的地址和端口来主动访问PC1,默认情况,防火墙安全策略不允许这一类访问报文通过。

三元组NAT方式可以完美解决。

1、对外呈现端口一致性

PC1访问P2P服务器后,在一段时间内,PC1再次访问P2P服务器或者访问internet其他主机时,防火墙都会将PC1的端口转换成相同的端口。这样就保证了PC1所呈现的端口一致性,不会动态变化。

2、支持外网主动访问

无论PC1是否访问过PC2,只要PC2获取到PC1经过NAT转换的IP和端口后,就可以主动向该地址和端口发起访问。防火墙及时没有配置相应的安全策略,也允许此类报文通过。

正是由于三元组NAT的这两个特点,使得P2P业务可以正常运行。

对于华为USG6000系列防火墙来说,可以通过配置ASPF来保证P2P业务的正常运行。新式的设备应该支持的越来越多。

在这里插入图片描述

三元组NAT方式配置如下:(三元组NAT不能配置黑洞路由,否则会影响业务)

配置NAT地址池
nat address-group GW 1mode full-cone localsection 0 210.1.1.5 210.1.1.6配置NAT策略
nat-policyrule name NATsource-zone trustsource-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group GW配置安全策略rule name NATsource-zone trustsource-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action permit

连续访问2次服务器,HTTP协议。

在这里插入图片描述

在这里插入图片描述
在一时间内,转换的端口都是固定的。

查看MAP表。由于是闲置了会,抓的,和上面的端口就有差别了。同一时间的通信,端口都是固定的。

在这里插入图片描述

从表中可以看出,三元组NAT生成了两条Server-map表项(FullCone Src),和目的(FullCone Des)。作用如下:

源Server-map表项(FullCone Src):

老化之前,PC1访问Untrust区域内任意主机ANY,NAT转换后的地址和端口都是210.1.1.6:61440,端口不会变化,这样就保证了PC1对外所呈现的端口一致性。

目的(FullCone Des)

表项老化之前,Untrust区域内的任意主机ANY都可以通过210.1.1.6:53248端口来访问PC1的:138端口,这样就保证了Internet上的P2P客户端可以主动访问PC1。

由此可知,三元组NAT方式通过源和目的Server-Map表项解决了P2P业务与NAT地址转换共存的问题。三元组在转换时,仅和源IP地址、源端口和协议类型这个3个元素有关,故称三元组。

————————————————————

大家又可以说,三元组NAT生成的Server-map表项不就是ASPF功能生成的Server-map表项那样,报文命中表项之后就不受安全策略控制了?其实还暗藏玄机,防火墙针对三元组NAT还支持端点无关过滤功能。

命令:firewall endpoint-independent filter enable

命令中: endpoint-independent 原意是:不关心对端地址和端口转换模式。表示一种NAT转换模式,其实可以看成三元组NAT方式另一种叫法。

endpoint-independent 使用此命令代表三元组NAT方式下控制报文是否进行安全策略检查。

开启后,报文只要命中Server-map就可以通过防火墙,不受安全策略控制。关闭后,就要配置相应的策略允许报文通过。默认情况下,防火墙是开启了端点无关过滤功能。所以说internet上的P2P客户端可以主动访问内部网络的PC1。

——————————————————————————————————————————————————

1.6.多出口场景下的源NAT

各种各样的源NAT都见识了吧,看似各种源地址转换问题都能一网打尽了,但实际上吧这些NAT理论应用在现实网络中很快就会出现告急。在多出口网络中,源NAT该何去何从?

首先,我们以防火墙通过两个出口连接Internet为例,探讨源NAT的配置方法,如图:某企业在内部网络的出口处部署了防火墙作为出口网关,通过ISP1和ISP2两条链路连接到Internet,企业内部网络中的PC有访问Internet的需求。

在这里插入图片描述

该场景中,防火墙面临主要问题是在转发内部网络访问Internet报文如何进行出口选路,本应该从ISP1发出的却从ISP2发出,可能会导致报文绕路到达目的地。

选路方式有很多种,如果根据报文目的地址进行选路,可以配置两条缺省路由,如果根据源地址进行选路,还可以配置策略路由。这些都不是目前的重点,后续对出口选路会详细的介绍。对于源NAT来说,无非就是报文从ISP1出去或者从ISP2出去,不管走那条路,只要在发出去之前把报文私网地址转换成相应的公网地址,源NAT作用就完成了。

我们会把防火墙ISP1和ISP2两个接口分别加入到不同的区域,然后基于内部网络所在的安全区配置源NAT策略。

下面给出配置:假设ISP1,给的公网地址是:210.1.1.5·····210.1.1.6。ISP2,给的公网地址是:110.1.1.5·····110.1.1.6。


配置区域加入端口
firewall zone name ISP1 set priority 20add interface GigabitEthernet1/0/1
#
firewall zone name ISP2set priority 21add interface GigabitEthernet1/0/0配置地址池
nat address-group ISP1 2section 0 210.1.1.5 210.1.1.6route enable
nat address-group ISP2 3section 0 110.1.1.5 110.1.1.6route enable基于不同域间关系配置两条NAT策略
nat-policyrule name ISP1source-zone trustdestination-zone ISP1source-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP1rule name ISP2source-zone trustdestination-zone ISP2source-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP2配置安全策略
security-policydefault action permitrule name ISP1source-zone trustdestination-zone ISP1action permitrule name ISP2source-zone trustdestination-zone ISP2action permit配置默认路由
ip route-static 0.0.0.0 0.0.0.0 210.1.1.2
ip route-static 0.0.0.0 0.0.0.0 110.1.1.2 

在这种情况下,分别有两个区域,配置默认路由如果是等价的,防火墙还会选择随机的转换。除非指定默认路由的优先级或在rule Nmae ISP的时候精确匹配网段。

我们把防火墙接口规划成1个区域。

firewall zone untrustadd interface GigabitEthernet1/0/1add interface GigabitEthernet1/0/0nat-policyrule name ISP1source-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP1rule name ISP2source-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP2security-policydefault action permitrule name NATsource-zone trustdestination-zone untrustaction permitip route-static 0.0.0.0 0.0.0.0 210.1.1.2
ip route-static 0.0.0.0 0.0.0.0 110.1.1.2

经过好几次老化,一直会从ISP1走。

如果我们把防火墙与ISP1和ISP2两个接口加入同一安全区域,无论报文走ISP1还是ISP2,安全域间关系都是Trust到Untrust,基于相同安全域间关系配置NAT策略,就无法区分两条链路。由于ruleISP1匹配顺序高于ISP2,此时内部访问外部都匹配ISP1,不会再向下继续匹配ISP2。
在这里插入图片描述

两种配置关系,两种不同的效果。

——————————————————————————————————————————————————

总结

NAT No-PAT:一对一,不转换端口,生成Server-map表,需要配置路由黑洞。
NAPT:多对一,多对多。转换端口,不生成server-map表,需要配置路由黑洞。
Easy-IP:多对一,转换端口,不生成server-map表,无需配置路由黑洞。
Smart NAT:一对一,多对一(针对预留地址),预留地址会转换端口,仅NAT No-PAT方式生成Server-map表,需要配置路由黑洞。
三元组NAT:多对一,多对多,转换端口,生成Server-map表,不必配置路由黑洞。

——————————————————————————————————————————————————

延伸

三元组NAT还有一个学名:Full Cone(全圆锥)。(Full Cone)全圆锥是4种NAT端口映射方式的一种,

其他3种分为:(Restricted Cone)受限圆锥、(Port Restricted Cone)端口受限圆锥和(Symmetric)对称型。

介绍下Full Cone(全圆锥)和(Symmetric)对称型。由于RFC3489已废弃,故不对(Restricted Cone)受限圆锥、(Port Restricted Cone)端口受限圆锥进行介绍。

Full Cone(全圆锥):内网主机进行NAT转换后的地址和端口在一段时间内保持不变,不会因为目的地址不同而不同,所以内网主机可以使用转换后相同三元组访问不同的外网主机,外网主机也都可以通过该三元组访问内网主机。就是前面说的P2P业务。

(Symmetric)对称型:内网主机根据不同的目的地址进行NAT转换,NAT转换后的地址和端口一般是不相同的,由于对不同外网主机呈现不同三元组,所以只有特定的外网主机的特定端口才能进入内网,即需要限定目标主机和端口。对称型NAT也称为五元组NAT,NAPT方式即五元组NAT。

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

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

相关文章

C语言prim算法求最小生成树

Prim算法是一种用于寻找无向带权图的最小生成树的算法。该算法的基本思想是从一个源点开始,逐步向外扩展生成树,每次找到与当前生成树最近的未被访问的顶点,并将其加入到生成树中,直到所有顶点都被加入到生成树中为止。 具体来说…

部署你的第一个应用

🗓️实验环境 OS名称Microsoft Windows 11 家庭中文版系统类型x64-based PCDocker版本Docker version 24.0.6, build ed223bcminikube版本v1.32.0 🤓FastAPI 构建应用 #基于fastapi快速创建一个项目 rkun1LAPTOP-TUS5FU0D MINGW64 / $ mkdir k8s-appr…

1688 API接口测试指南

本文为您提供1688 API接口的测试指南。我们将介绍1688 API的基本概念,详解测试步骤,并为您提供一系列的最佳实践,以确保您在与1688平台进行API交互时能够获得最佳的效果和稳定性。 一、了解1688 API 1688 API是1688平台为开发者提供的一套用…

数学建模之拟合及其代码

发现新天地,欢迎访问Cr不是铬的个人网站 引言 与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合…

基于跳蛛算法优化概率神经网络PNN的分类预测 - 附代码

基于跳蛛算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于跳蛛算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于跳蛛优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

7_画图常用代码

plt.figure(dpi200) # 设置 dpi 为 200(可以根据需要调整这个值)

数据结构学习笔记——多维数组、矩阵与广义表

目录 一、多维数组(一)数组的定义(二)二维数组(三)多维数组的存储(四)多维数组的下标的相关计算 二、矩阵(一)特殊矩阵和稀疏矩阵(二)…

从权限跳转看Activity的data android:scheme

在应用申请悬浮窗权限的时候,可以跳转到相应的设置界面,并且自动切换到应用的条目,高亮显示一下, android悬浮窗权限怎么申请 在Android中,要申请悬浮窗权限,需要以下步骤: 在 AndroidManifes…

hp惠普Victus Gaming Laptop 15-fa1025TX/fa1005tx原装出厂Win11系统ISO镜像

光影精灵9笔记本电脑原厂W11系统22H2恢复出厂时开箱状态一模一样 适用型号:15-fa1003TX,15-fa1005TX,15-fa1007TX,15-fa1025TX 链接:https://pan.baidu.com/s/1fBPjed1bhOS_crGIo2tP1w?pwduzvz 提取码&#xff1a…

每天一道算法题(十一)——滑动窗口最大值_困难(中等)

文章目录 1、问题2、示例3、解决方法(1)方法1——双指针 总结 1、问题 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗…

c++ 函数的申明

1 一个cpp中 两种情况 1.1 定义 使用 1.2 声明 使用 定义 2 按 定义 后 直接使用的顺序 不用 声明 函数 #include <iostream> using namespace std;int max(int a, int b) {int max a>b?a:b;return max; }int main() {int a 1;int b 2;cout << max(a, b…

解决vue中引入天地图显示不全问题,设置setTimeout即可解决!

index.html中引入天地图api <script type"text/javascript" src"https://api.tianditu.gov.cn/api?v4.0&tk你的key"></script>map.vue中初始化天地图 //初始化天地图 initTMap() {const T window.T;// 3.初始化地图对象this.tMap new…

flink1.13.6版本的应用程序(maven版)

问题 想要一个指定flink版本的java计算任务hello world最简工程。 解决 mvn archetype:generate \-DarchetypeGroupIdorg.apache.flink \-DarchetypeArtifactIdflink-quickstart-java \-DarchetypeVersion1.13.6这里直接使用官方mave模版工程&#xff0c;指…

系统架构设计:13 论基于构件的软件开发

论基于构件的软件开发 软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竟争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。 集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于构件的软件开发”应运而生,…

LeetCode 2304. 网格中的最小路径代价:DP

【LetMeFly】2304.网格中的最小路径代价&#xff1a;DP 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-path-cost-in-a-grid/ 给你一个下标从 0 开始的整数矩阵 grid &#xff0c;矩阵大小为 m x n &#xff0c;由从 0 到 m * n - 1 的不同整数组成。你可以…

【python基础(二)】列表详解

文章目录 一. 访问列表元素二. 使用列表中的各个值三. 修改、添加和删除元素1. 修改列表元素2. 在列表中添加元素3. 从列表中删除元素 四.组织列表1. sort()对列表永久排序2. sorted()对列表临时排序3. 倒着打印列表4. 确定列表的长度 列表由一系列按特定顺序排列的元素组成。可…

Django框架之Cookie和Session和CBV加装饰器的三种方法

【一】Cookie与Session Cookie和Session是用来在Web应用程序中跟踪用户会话数据的两种常用技术。 【1】Cookie和Session的发展史 【1】Cookie的发展史&#xff1a; 1994年&#xff0c;网景通信公司推出了第一个浏览器Cookie技术。Cookie是存储在用户计算机上的小型文本文件…

redis五种基本数据类型

redis存储任何类型的数据都是以key-value形式保存&#xff0c;并且所有的key都是字符串&#xff0c;所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是&#xff1a;String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的类型&#xff0c;v…

linux日志不循环问题诊断

有一台Linux虚拟机的messages日志文件自2023年7月下旬开始没有按周为周期重新生成新的日志&#xff0c;一直累积在同一个messages文件中&#xff0c;如下所示&#xff1a; [root logrotate.d]# ls -l /var/log|grep me -rw-r--r-- 1 root root 107170 Nov 15 1…

地图导航测试用例,你get了吗?

地图导航是我们经常使用的工具&#xff0c;能帮助我们指引前进的方向。 接下来&#xff0c;会从功能测试、UI测试、兼容测试、安全测试、网络测试、性能测试、易用性测试、文档和国际化语言测试8个方面来编写地图导航测试用例。 一 功能测试 输入起点和终点&#xff0c;验证…