此处的配置主要是以华为USG6000V的配置为主,如有错误的地方请各位纠正。

       在web界面配置源NAT、NAT server时,源地址池(默认不配置)和NAT server(默认配置)配置界面都会提供是否配置黑洞路由的选项;而在命令行配置下,则是默认不配置黑洞路由。黑洞路由到底在什么时候配置?不配置会产生什么后果呢?

       接下来通过实验的方式来验证黑洞路由的功能,实验拓扑如下:

MPLS LDP 路由黑洞 nat黑洞路由_NAT

 

 一、源NAT场景

 1、源NAT地址与防火墙不在同一子网

       由于源NAT主要是用于为内网用户提供访问Internet的公网地址,该NAT地址只用于对外的访问。如果公网用户主动访问该源NAT地址会产生什么现象?以下结果为公网PC1主动访问源NAT地址的结果:

       使用PC1向源NAT地址ping一个包:

MPLS LDP 路由黑洞 nat黑洞路由_MPLS LDP 路由黑洞_02

在防火墙1/0/1口抓包显示如下:

MPLS LDP 路由黑洞 nat黑洞路由_子网_03

 

分析:由抓包现象可以看出明显的环路现象(TTL值递减到1)

 

ping包在防火墙与路由器之间的转发过程:

1、首先公网的PC设备发起访问,目的地址为防火墙的源地址池。

2、路由器接收到报文之后,发现是防火墙的地址,于是将报文转发给防火墙。

3、防火墙收到报文之后,首先检查会话,由于并非内网发起的访问所以没有会话。然后再检查目的IP发现并不是防火墙本地的IP地址(NAT地址与防火墙接口地址不在同一网段;由于防火墙是先匹配安全策略,再匹配NAT策略,所以在开始检查元素时并不知道时NAT地址池的地址)。然后查询路由也没有查到明细,最后通过默认路由发送到路由器。由于,默认路由的转发是在同一个安全区域内进行的,所以不用匹配安全策略就能转发。

4、路由器收到之后再转发回去,周而复始,直到TTL变为0.

 

注意:防火墙的源NAT地址池与防火墙的接口不在同一网段时,必须配置黑洞路由。避免路由环路,造成资源的浪费。

 

配置完黑洞路由之后:

ip route-static 202.1.1.10 32 NULL 0

 

MPLS LDP 路由黑洞 nat黑洞路由_MPLS LDP 路由黑洞_04

 

2、源NAT地址与防火墙接口在同一子网

 

MPLS LDP 路由黑洞 nat黑洞路由_子网_05

PC1 ping 防火墙的NAT地址,也只有一个ICMP报文。

MPLS LDP 路由黑洞 nat黑洞路由_网络_06

 

MPLS LDP 路由黑洞 nat黑洞路由_网络_07

 

        这种情况下,虽然不会产生路由环路的情况,但是如果大量的互联网地址去访问地址池的IP,防火墙会产生大量的ARP报文。导致防火墙的资源被占用。

 

注意:NAT地址与防火墙地址在同一网段时,也建议配置黑洞路由。防止防火墙产生大量的ARP请求占用资源。配置黑洞路由之后就不会向外发送ARP。

 

访问过程:

1、PC访问防火墙的NAT地址,路由发现是自己的直连网段,所以发送ARP直接向对端请求 NAT地址的MAC。由于防火墙也不知道,但是认为是与自己在同一个网段,所以先将自己的接口MAC发送过去让路由器先把报文发过来。

2、路由收到ARP之后,将报文封装完毕再发送给防火墙。

3、防火墙收到报文之后,不知道目的地址是自己的NATIP。认为是自己同网段的IP地址,所以向外发送ARP请求MAC。

3、easy-ip场景

因为easy-ip的NAT地址与接口地址相同,所以公网PC访问时相当直接访问防火墙的本地地址。能否访问通取决于到local区域的安全策略。所以这种情况可以不用配置黑洞路由。

 

二、NAT Server场景

当nat-server配置策略十分宽泛时(放行了所有服务),没有指定提供的服务,是不会产生路由环路的问题的。

如 :nat server  global 202.1.1.1 inside 192.168.1.1

 

如果对外发布的地址限制了服务,且公网地址与防火墙接口地址不在同一个网段时,就会产生路由环路问题问题。

如 :nat server protocol tcp global 202.1.1.1 80 inside 192.168.1.1 80

 

当公网地址访问80 服务时,能够正常访问。但是,公网PC向该地址发起ping访问时,就会产生路由环路问题。

MPLS LDP 路由黑洞 nat黑洞路由_安全策略_08

 访问流程:

1、PC向nat server地址发起非提供服务器的访问,路由器收到之后直接转发到防火墙。

2、防火墙收到报文之后无法查询到会话表、server-map,因为server-map表明确指定了转换的端口。不能进行地址转换进一步匹配安全策略,但是nat ip 不属于任何区域,所以安全策略也无法匹配。只能走默认路由,将流量又转发回路由器。

3、形成环路。

 

注意:

  1. 在模拟实验中,配置nat server场景下安全策略时,匹配的地址是转换后的IP。因为natserver会产生server-map,server-map会优先将地址进行转换。
  2. nat server加上zone参数之后针对区域提供NAT,现象与上边相同。

 

NAT server的现象与源NAT基本相似,只是在在特殊配置场景才会出现(nat server配置了端口限制)。就会出现下面三种情况:

1、限制端口,NAT地址与防火墙地址不在同一网段。  访问非开放端口时会出现环路。

2、限制访问端口,NAT地址与防火墙地址在同一网段,访问非开放端口时防火墙会回复ARP。

3、不限制端口,没有影响。

 

三、总结

总结:

  • 源地址转换,nat地址与防火墙端口不在同一子网时,必须配置黑洞路由。(路由环路)
  • 源地址转换,nat地址与防火墙端口在同一子网时,建议配置黑洞路由。(ARP回复)
  • Nat server 配置了特定协议和端口,global与防火墙接口不在同一子网,必须配置黑洞路由。(路由环路)
  • Nat server 配置了特定协议和端口,global与防火墙接口在同一子网,建议配置黑洞路由。(ARP回复)

 

黑洞路由的应用拓展:

防火墙配置了nat时,对端的防火墙必须配置静态路由指向NAT地址池地址。   如果防火墙与路由器之间想采用OSPF等动态路由的方式时,必须要在防火墙上配置黑洞路由,然后在OSPF中将该黑洞路由发布。(因为防火墙的nat地址不属于某个接口所以没法直接宣告。),路由器就能学习到防火墙NAT地址池的路由。