分享配置underlay网络时碰到的一个防火墙问题

举报
Harvey_Zhao 发表于 2018/07/20 11:41:55 2018/07/20
【摘要】 这段时间碰到了几个网络问题,引发了一次关于来回路径不一致问题的讨论。大概整理了一下,供大家参考。1、概念解释所谓来回路径不一致,就是网络访问报文和回包报文经过的路径不同,或者说上行流量和下行流量所经过的设备和路径不一致。如下图所示:服务器A访问服务器B的时候,是通过防火墙A,服务器B回包的时候经过防火墙-B2、问题描述这一次我们碰到的问题是在一台防火墙内部的来回不一致,如下图:1、 ...

这段时间碰到了几个网络问题,引发了一次关于来回路径不一致问题的讨论。大概整理了一下,供大家参考。

1、概念解释

所谓来回路径不一致,就是网络访问报文和回包报文经过的路径不同,或者说上行流量和下行流量所经过的设备和路径不一致。如下图所示:

showimage-18795415-159705-312f9055dfcdf14410330a1f42aeaf38.jpg

服务器A访问服务器B的时候,是通过防火墙A,服务器B回包的时候经过防火墙-B

2、问题描述

这一次我们碰到的问题是在一台防火墙内部的来回不一致,如下图:

1、      用户去访问服务器的备份网IP,服务器从业务网回包。用户的访问报文从防火墙的untrust zone进入防火墙,从backup出去,访问到服务器;服务器回包从trust zone进入防火墙,从untrust zone出去。

2、      用户访问服务器,上行流量先经过路由器,然后从防火墙的trust zone进去,从DMZ出来,访问到服务器;服务器回包依然是从 DMZ zone进入防火墙,但是要从untrust zone出去。

showimage-18795417-159705-25d80d241f3fc2d933b6b00ab8a2c87b.jpgshowimage-18795419-159705-30c418921fe346a65d5d6ef21c3576e4.jpg

问题:这样的组网,用户是否可以正常访问到服务?

当然,这里面涉及到的都是需要三次握手的TCP协议,UDP协议并不太在乎来回路径问题

3、知识寻解

这其中涉及到相关的防火墙知识点有三个:

1、 首包检测

2、 反向路由探测

3、 跨安全域转发限制

我们一个一个看一下

 

3.1 首包检测

众所周知,TCP连接要建立三次握手,第一次是发起者发送syn,然后响应者回复syn + ack,最后发起者发送ACK确认。

showimage-18795421-159705-c44fd2d94ead76fb6d5edd6a55217422.jpg

在来回路径一致时,syn包先经过防火墙,触发session建立,后续报文走session通过,不需要查找policy。

防火墙的policy是针对于原地址、目的地址、端口做的一个限制,不管是syn包还是后续的报文,都应该是可以匹配策略的,即来回不一致的组网中,syn+ack的报文从另外一台防火墙经过的时候,虽然没有session,但是应该是可以通过查找policy而通过的。

但是防火墙有一个首包检测规定:只有syn包才能触发查找policy创建session的动作,而syn+ack、ack报文达到防火墙只查找session,若没有查到对应的session,防火墙会直接丢弃该报文。

所以在来回不一致的组网中,若防火墙开启了首包检测功能,TCP肯定是无法建立连接的。在现网的设备中,我们是要求关闭首包检测的。

关闭命令为:

Eudemon

undo firewall session link-state check

hillstone

no tcp-syn-check

 

3.2          反向路由探测

反向路由探测是基于一种防攻击机制而制作的一项功能。若有黑客想要攻击某一台服务器,他知道了这台服务器的IP以后,就伪造这个IP发起访问,后续回包都会直接回给被攻击的服务器。若黑客使用这个IP同时给数以万记的服务器发包,光是回包就能把服务器带宽堵死。

firewall defend ip-spoofing enable

设备对报文的源IP地址进行路由表反查,如果反查下一条最佳出口和报文的入接口不相等,则视为IP欺骗攻击,丢弃该数据包。

在下图的场景中,用户的源地址假设为10.10.10.10,则防火墙上面的路由应该是指向10.10.10.10从untrust出去。当访问的数据包从trust口进来的时候,防火墙识别为,他应该是从untrust口进来,不一致,就会直接丢弃此报文。

showimage-18795423-159705-7db78189ecfd26af01654ee4d0af2d2d.jpg

这个场景在现网的组网中,也会经常出现,故现网是要求关闭的。关闭命令如下:

Eudemon

不开启defend ip-spoofing就是关闭

hillstone

在zone中配置no reverse-route

 

3.3 跨安全域转发限制

访问报文和回包报文经过的zone不一样,正如我们前面描述的问题一样。访问报文从untrust到backup,回包报文从trust到untrust。

showimage-18795417-159705-25d80d241f3fc2d933b6b00ab8a2c87b.jpg

这样的访问是否可以通过?是否有开关控制?

在产品文档里面并没有明确的说法,不过经过我们的测试发现:

1、 Eudemon防火墙是没有限制的,可以正常使用。

2、 Hillstone是不允许这样访问的,并且没有开关可以关闭这种设置。

3、 Juniper防火墙也是不允许如此访问的,是否有开关?还有待供应商答复

 

由于这样的限制,我们前面碰到的问题是否能解决,关键就看什么防火墙了。如果是hillstone的防火墙,那基本是没希望的。解决办法可以调整路由,或者替换成Eudemon。

 

4问题启发

知道了这样的限制以后,我们有哪些地方要注意,以规避此问题?

1、      对于防火墙上的zone 大于等于3 个的网络分区,若使用hillstone防火墙,路由的设置就要注意不能跨zone转发。哪怕不是hillstone防火墙,建议也不要跨安全域,不确定以后替换防火墙,新防火墙就限制转发了。毕竟从安全上来说,限制转发也是一种安全保护措施。

2、      对于业务网和备份网共用防火墙的组网里面,特别是SR,业务量少,特地增加一对备份网防火墙也不必要。那这个时候防火墙就不应该选择hillstone防火墙,不然备份网的IP可能在大网ping不通,回包都走业务网就都被丢了。

3、      后续引进防火墙应该要测试这个功能,是否有这个限制。若有,应提需求设置一个开关,避免潜在的风险。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。