概述

bgp路由黑洞如何产生 nat黑洞路由_华为

一般来说FW作为出口的时候,我们会部署NAT,比如部署源地址动态NAT地址池,而且还会创建一条静态路由,下一条是ISP,我们在借助这些外网地址尝试与其他主机进行通信的时候会对地址进行替换,但是我们知道回包如果想要回来就必须依靠状态化表项,如果没有对应的状态化表项的化而且没有安全策略的匹配就会导致数据包被丢弃。因为状态化表项会有固定的老化时间,所以这就导致当状态化表项老化后,如果其他主机还想通过NAT转换后的地址尝试与该主机进行通信的时候,就会出现路由环路。

下面是出现路由环路的原因的分析:

ISP将数据包发送FW后,FW会查询对应的路由表项,发现匹配上的只有缺省路由,于是它就确定了该数据包的目的区域是untrust区域,因为是从untrust区域的接口接受到该数据包的,因为防火墙对同一区域的流量并不进行监管,所以这就FW会重新将这个数据包从公网接口进行转发,且目的地址是ISP的IP地址,但是当ISP接收到该数据包的时候,就会发现其目的IP的下一跳还是FW,所以它又会将数据包进行再次的发送,目的地依然还是FW,这就出现了路由环路。

路由环路产生的情景

产生这个问题的主要原因是客户机的目的IP是FW NAT地址池中公网地址,而且加上FW状态化表项的特性和静态路由的加持,这就使得路由环路的产生。如果是easy ip的话,并不会出现这种情况,这是因为ISP并没有给FW分配其他的IP地址,所以客户机即便想要发送一个目的地址FW不知道的报文,ISP也不会将该报文运输到FW那里,因为ISP作为地址的分配者,它很清楚的知道FW上有的是什么公网IP。所以这种路由环路的产生的主要原因是有动态的NAT地址池。内网主机借助NAT向其他主机通信,主机在获取了内网主机NAT后的公网地址,并将目的地址设置为该公网地址,这就使得路由环路的产生。

路由环路的避免

只要在防火墙为NAT地址池中的每个地址都创建一个对应的黑洞路由即可,比如NAT地址池中的公网地址是211.11.11.1,那么我们就在防火墙中创建一个211.11.11.1 32 null 的黑洞路由,所以目的IP为防火墙地址池的报文,在没有状态化表项的情况下会被黑洞路由吞噬从而解决了这个问题。

ARP的被动生成

现在假设FW中的动态地址池是与公网地址同一网段的IP,那么当其他主机还是将目的地址设置为FW中的地址池的时候,防火墙这时不会进行路由表的查询,它会首先进行ARP的查询,但是毫无疑问,ARP的查询是没有人回应的。如果有人针对这个弱点进行拒绝服务攻击,将会使得FWdown掉。其实我觉得把,只要攻击者的算力足够牛逼,一直向FW发送ICMP报文,或是其他什么报文,防火墙不断地进行安全策略的匹配也够让防火墙吃不消了。