有问题加微信咨询:zhishidaquan6

大家都在看

首页 > 网络技术 > 网络基础知识 > INTRODUCE

配置NAT后为什么要同时配置黑洞路由(2)

2014-11-20 23:51 作者:电脑知识大全 来源:diannaodiy.net 浏览:

到这里大家可能会问了,没有配置黑洞路由时,报文最终也会被丢弃,没啥问题啊?上面我们只是用了一个ping报文来演示这个过程,试想一下,如果公网上的捣乱分子利用成千上万的PC主动向NAT地址池地址发起大量访问,无数的报文就会在防火墙和路由器之间循环转发,占用链路带宽资源,同时防火墙和路由器将会消耗大量的系统资源来处理这些报文,就可能导致无法处理正常的业务。
所以,当防火墙上NAT地址池地址和公网接口地址不在同一网段时,必须配置黑洞路由,避免在防火墙和路由器之间产生路由环路。
那么如果NAT地址池地址和公网接口地址在同一网段时,还会有这个问题吗?我们再来验证一下。
首先,将防火墙和路由器互联的两个接口的掩码修改为24位,这样接口地址和NAT地址池地址就在同一网段了,然后去掉黑洞路由的配置,接下来在防火墙的GE0/0/1接口抓包,在公网PC执行ping 202.1.1.10 -c 1命令,查看抓包信息: 
 
我们发现,只抓到了三个ARP报文和一个ICMP报文,公网PC访问NAT地址池地址的报文没有在防火墙和路由之间相互转发。梳理整个过程:
1、路由器收到公网PC访问NAT地址池地址的报文后,发现目的地址属于自己的直连网段,发送ARP请求,防火墙会回应这个ARP请求,前两个ARP报文就是来完成了这一交互过程的。然后路由器使用防火墙告知的MAC地址封装报文,发送至防火墙。
2、防火墙收到报文后,发现报文的目的地址和自己的GE0/0/1接口在同一网段,直接发送ARP请求报文(第三个ARP报文),寻找该地址的MAC地址(防火墙依然没有意识到该报文的目的地址是自己的NAT地址池地址)。但是网络中其它设备都没有配置这个地址,肯定就不会回应,最终防火墙将报文丢弃。
所以说,在这种情况下不会产生路由环路。但是如果公网上的捣乱分子发起大量访问时,防火墙将发送大量的ARP请求报文,也会消耗系统资源。所以,当防火墙上NAT地址池地址和公网接口地址在同一网段时,建议也配置黑洞路由,避免防火墙发送ARP请求报文,节省防火墙的系统资源。
下面是配置黑洞路由后的抓包信息,可以看到,防火墙没有再发送ARP请求报文:

 

还有一种极端情况,我们配置源NAT时,可以直接把公网接口地址作为转换后地址(easy-ip方式),也可以把公网接口地址配置成地址池地址。这样,NAT转换使用的地址和公网接口地址就是同一个地址了。在这种情况下,需要配置黑洞路由吗?我们来分析一下整个流程:防火墙收到公网PC的报文后,发现是访问自身的报文,这时候就取决于公网接口所属安全区域和Local安全区域之间的安全策略,安全策略允许通过,就处理;安全策略不允许通过,就丢弃。不会产生路由环路,也不需要配置黑洞路由。
看到这里,聪明的小伙伴肯定会问,NAT Server有没有这个问题啊?强叔告诉大家,NAT Server也存在路由环路的问题,不过发生路由环路的前提条件比较特殊,要看NAT Server是怎样配置的。下面是一个典型的NAT Server组网环境,我们先来看一下NAT Server的Global地址和公网接口地址不在同一网段的情况。

如果我们在防火墙上配置了一条粗犷型的NAT Server,将私网Server全部发布到公网,如:
[FW] nat server global 202.1.1.20 inside 192.168.0.20
公网PC访问202.1.1.20的报文,目的地址都会被转换成192.168.0.20,然后发送给私网Server,这个时候自然不会产生路由环路。
但是如果我们配置了一条精细化的NAT Server,只把特定的端口发布到公网上,如:
[FW] nat server protocol tcp 202.1.1.20 80 inside 192.168.0.20 80
此时如果公网PC不按常理出牌,没有访问202.1.1.20的80端口,而是使用ping命令访问202.1.1.20,防火墙收到该报文后,既无法匹配Server-map表,也无法匹配会话表,就只能查找路由转发,从GE0/0/1接口送出去。而路由器收到报文后,还是要送到防火墙,这样依然会产生路由环路:

 
所以,当防火墙上配置了特定协议和端口的NAT Server并且NAT Server的Global地址和公网接口地址不在同一网段时,必须配置黑洞路由,避免在防火墙和路由器之间产生路由环路。
如果NAT Server的Global地址和公网接口地址在同一网段,防火墙收到公网PC的ping报文后,会发送ARP请求报文,这个过程就和前面讲过的NAT的情况是一样的。同理,当防火墙上配置了特定协议和端口的NAT Server并且NAT Server的Global地址和公网接口地址在同一网段时,建议也配置黑洞路由,避免防火墙发送ARP请求报文,节省防火墙的系统资源。
同样,我们配置NAT Server时,也可以把公网接口地址配置成Global地址。此时,防火墙收到公网PC的报文后,如果能匹配上Server-map表,就转换目的地址,然后转发到私网;如果不能匹配上Server-map表,就会认为是访问自身的报文,由公网接口所属安全区域和Local安全区域之间的安全策略决定如何处理。不会产生路由环路,也不需要配置黑洞路由。
讲到这里,相信大家一定明白了配置黑洞路由的原因,是不是感觉内功又提升了啊~~我们再总结一下,对于源NAT来说:
如果NAT地址池地址与公网接口地址不在同一网段,必须配置黑洞路由;
如果NAT地址池地址与公网接口地址在同一网段,建议也配置黑洞路由。




(责任编辑:电脑知识大全)
------分隔线----------------------------
特别说明

◎ 广告赞助

◎ 阅读说明READ EXPLANATION

⊙电脑知识大全是一个专注电脑知识分享的开放平台!
⊙请记住我们的域名diannaodiy.net
⊙转载请注明出处,电脑知识大全diannaodiy.net
⊙如果遇到什么问题,请到本站留言板留言,我们会及时处理的!