本章节主要讲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%理解
祝你年薪百万,成绩辉煌!!!