97国际

一机领航 ,向光而生 丨 97国际网络一机一网3.0秋季新品宣布会
预约直播
以AI为焦点 ,让资产可管可控 ,数据鲜活有用 丨 企业智能运维实践宣布会
预约直播
97国际·(中国区)集团官方网站
产品
< 返回主菜单
产品中心
产品
解决计划
< 返回主菜单
解决计划中心
行业
合作伙伴
返回主菜单
选择区域/语言
97国际·(中国区)集团官方网站
97国际·(中国区)集团官方网站

202697国际官网
用户体验调研

马上加入
97国际·(中国区)集团官方网站

您订阅的产品有更新 ,请实时查阅

审查详情

这些防火墙下令都爱说大真话 ,让排障少走弯路 |运维实战家

97国际·(中国区)集团官方网站 宣布时间:2020-11-02
97国际·(中国区)集团官方网站

 

 

本文作者:阿昌

 

小锐经常接到客户的反响是 ,防火墙安排好了可是营业照旧欠亨 ,往往一筹莫展。今天小锐 ,不藏着掖着了 ,把收藏多年的佳酿 ,故障小窍门拿出来让喜欢小锐的各人细品细品。

 

防火墙的清静检查特征

 

网络源于生涯却又高于生涯 ,作为网络天下大门的鼎鼎台甫的“清静检查官“下一代防火墙 ,有他自己特有的“清静属性” ,遵守网络天下的“清静规则” ,我们就能更好的在防火墙的故障排查历程中游刃有余。这些“清静属性”倒成了我们在实验防火墙历程中的“绊脚石” ,虽然排查故障历程是痛苦的 ,解决问题后的快乐是永远铭刻值得回味的。

 

防火墙为了相信数据包是可信的 ,在收到数据包的时间设置了两个“清静检查点”:

 

1 反向路径检查Reverse Path Forwarding (RPF)

 

2 异步检查(asymroute ,也就是各人常说的毗连完整性检查)

 

两项检查只有都切合 ,才会继续其他�?榧觳� ,不然直接扬弃数据包 ,那针对这两个检查特征我们睁开聊聊:

 

反向路径检查

 

所谓反向路径检查 ,简朴举例 ,就是若是从内网口port31收到一个数据包 ,反向的回包必需从内网口port31回去 ,也就是要确保源进源出 ,反之以为此数据包为诱骗包执行扬弃行动。假设 ,防火墙收到数据包是src_addr_ip->dst_addr_ip为172.16.1.16->219.222.191.72 ,防火墙不会执行其他�?榧觳椋ㄕ庑┠?榛嵘婕暗皆茨康牡刂纷弧TM等) ,而是先执行反向路径检查 ,凭证反向流量219.222.191.72->172.16.1.16 ,在查找路由表后若是也是从port31出去的 ,说明流量是正常的 ,继续处置惩罚其他�?榧觳�;若是保存另一个路由通路好比从port32出去或者甚至没有查找到响应路由 ,这个将导致反向路径检查失败防火墙执行扬弃行动。

 

使用debug flow抓包下令 ,会发明有个提醒为:reverse path check fail, drop ,特殊显眼 ,这个提醒就是因反向路径检查失败直接执行了扬弃行动了 ,这种情形建议是查一下防火墙上的路由设置问题。

 

 

异步路由检查

 

所谓异步路由检查 ,就是要确保往返路径要一致 ,包管数据毗连的完整性。如:tcp的三次握手的数据包都要过防火墙 ,正常的tcp三次握手交互历程如下:

 

 

若是泛起往返路径纷歧致的情形 ,防火墙以为报文有问题直接扬弃。

 

 

小锐现在就说说这流量转发那里泛起问题了 ,从流量转发来看PC1会见服务器的流量tcp syn报文转发路径是

 

PC1->RouterA->NGFW->RouterB->internet->Server ,回包syn+ack的转发路径是Internet>RouterB>RouterA->PC1 ,未经由防火墙 ,ack报文PC1->RouterA->NGFW(扬弃报文不转发) ,防火墙发明会话状态不完整(我没有看到syn+ack,我不信任你) ,执行扬弃行动。

 

使用debug flow下令对数据流剖析一样平常会提醒为:“org dir, ack in state syn_sent, drop”

 

97国际·(中国区)集团官方网站

 

虽然这里尚有更为奇葩的数据转发路径 ,若是是syn包转发路径不过防火墙 ,syn+ack的回复报文经由防火墙 ,这种情形下防火墙是无法找到对应的会话(我没有看到syn ,我压根就没有你的会话) ,直接扬弃 ,这种也属于异步路由的一种特殊场景。使用debug flow抓包下令 ,会发明有个提醒为:“no session matched”。

 

 

尚有一种就是往返的二层mac纷歧致问题也是异步路由检查的一种特例了 ,一样平常这种场景常见于防火墙透明模式安排的时间。也就是若是过防火墙的数据包是mac1->mac2[pc1->pc2] ,回包的时间是mac3->mac1[pc1->pc2] ,这种数据包也是有问题的防火墙不会允许过的。

 

那可能各人会问小锐 ,异步路由检查可以关闭吗 ,现实营业场景不建议关闭的 ,做法是找到导致往返路径纷歧致的缘故原由 ,将异步问题终结掉 ,由于防火墙关闭异步检查后 ,多链路出口的场景源进源出功效将不生效 ,代理防护类utm功效将无法正常事情。

 

要领是:

 

#config system settings

#set asymroute enable

#end

 

此下令就是允许防火墙保存异步 ,这样防火墙可以不检查数据包的毗连完整性了。

 

#config system settings

#set tcp-session-without-syn enable (默认disable)

#end

 

此下令是告诉防火墙若是不是syn的报文一样也可以建设会话。

 

 

数据包穿越防火墙处置惩罚历程详解

 

 

正常的数据包穿越防火墙 ,需要经由哪些历程呢?可以通过debug flow下令审查整个完整历程。

 

#diagnose debug enable   //开启debug

 

#diagnose debug flow show console enable   //启用debug flow显示打印 ,有些版本不需要敲

 

#diagnose debug flow show function-name enable   //显示debug flow 功效名称 ,便于打印信息输出 ,有些版本可以不必敲

 

#diagnose debug flow filter addr 192.168.1.110  //过滤条件 ,阻止抓包无用信息过多 ,这里过滤地址 ,filter ?可以审查过滤哪些条件

 

 

#diagnose debug flow trace start 100  //最先抓100条数据流

 

下面是数据包穿越防火墙的所有历程 ,我们一起来看看

 

id=36871 trace_id=1 msg="vd-root received a packet(proto=6, 192.168.

1.110:51661->119.253.62.131:80) from internal. "id=36871 trace_id=1 msg="allocate a new session-00016920" //internal口收到数据 ,建设新会话

 

id=36871 trace_id=1 msg="find a route: gw-192.168.118.1 via wan1"  //查找到路由表

 

id=36871  trace_id=1 msg="find SNAT: IP-192.168.118.28, port-43333" //检测保存NAT设置

 

id=36871  trace_id=1 msg="Allowed by Policy-1: SNAT" //匹配战略,ID1

 

id=36871  trace_id=1 msg="SNAT 192.168.1.110->192.168.118.28:43333"//做NAT    

 

id=36871 trace_id=3 msg="vd-root received a packet(proto=6,

 

119.253.62.131:80->192.168.118.28:43333) from wan1."  // Wan1口收到返回数据包

 

id=36871 trace_id=3 msg="Find an existing session, id-00016920, reply     direction" //数据包匹配会话id-0001692

 

id=36871 trace_id=3 msg="DNAT 192.168.118.28:43333->192.168.1.110:51661"  //做反向的DNAT

 

id=36871 trace_id=3 msg="find a route: gw-192.168.1.110 via internal"  //查找路由 ,发送到internal口              

 

id=36871 trace_id=5 msg="vd-root received a packet(proto=6,192.168.1.110:51661->119.253.62.131:80) frominternal." //internal口收到后续数据包

 

id=36871 trace_id=5 msg="Find an existing session, id-00016920, original     direction" //匹配会话id-0001692  

 

id=36871 trace_id=5 msg="enter fast path" //直接转发    

 

id=36871 trace_id=5 msg="SNAT 192.168.1.110->192.168.118.28:43333"  //NAT

 

抓完数据流后可以通过以下下令关闭。

 

#diagnose debug flow trace stop      //阻止

#diagnose debug disable             //关闭

#diagnose debug reset               //重置

#diagnose debug flow filter clear     //可以清空debug的过滤条件设置

 

通过debug flow下令我们可以看到一个数据包流入防火墙后 ,各个�?榈南晗复χ贸头G樾� ,整理成数据包处置惩罚流程图如下:

 

 

下面也一并先容一些小锐经常遇到的debug flow要害信息提醒 ,现总结如下:

 

若是是战略拒绝了数据包会见 ,会看到“Denied by forward policy check” ,需要重点确认是否是清静战略阻挡所致。    

 

97国际·(中国区)集团官方网站

 

若是无法正常管理防火墙的时间 ,debug flow往往会泛起提醒 ,msg="iprope_in_check() check failed, drop" ,一样平常会有下列三种可能缘故原由所致:

 

1、当会见NGFW举行远程管理(ping, telnet, ssh ...)时 ,正在会见的服务未在接口上启用。

2、当会见NGFW举行远程管理时(ping, telnet, ssh ...) ,正在会见的服务在接口上启用 ,可是设置了受信任的主机 ,这些主机与入站数据包的源IP不匹配;

3、当通过统一NGFW的另一个接口会见用于远程管理的NGFW接口(ping ,telnet ,ssh ...)时 ,不保存防火墙战略。

 

战略行动拒绝,或掷中隐含战略, 数据包被拒绝 ,一样平常会提醒:msg="Denied by forward policy check"

 

若是涉及ALG相关会话(这类流量一样平常是动态多通道协议如ftp、sip等 ,此类协议较重大 ,小锐下次再跟各人分享 ,嘻嘻)将送至 session-helper �?榇χ贸头� ,一样平常会提醒:msg="run helper-ftp(dir=original)"    

 

看到这里 ,小锐相信您也和小锐一样get 了不少防火墙的抓包下令了吧?那么接下来我们继续深入看下进阶版案例剖析吧。

 

 

进阶案例展示一下下令有何等神奇^-^

 

现场反响的拓扑简朴形貌如下:

 

 

全新下一代防火墙做端口映射 ,部分ISP专网IP会见端口映射的营业欠亨�;〉纳柚眉觳橐裁挥锌闯鑫侍馑� ,那接下来使用强盛的debug flow对其数据流举行捕获 ,在信息输出中发明防火墙外地回复了RST报文(也就是图中的...from local. flag [R]) ,这点甚是可疑 ,说明问题照旧出在防火墙的哪个�?榇χ贸头;方谏�。

 

 

那我们一起开动头脑思索一下什么情形下防火墙会自动发送RST包?

 

从数据包转发上我们注重到tcp syn将通过防火墙 ,可是当吸收到tcp syn / ack时 ,NGFW会将tcp rst发送回tcp syn / ack的始发者。

 

纵然保存允许流量通过NGFW的战略 ,设置过失的IPpool或VIP[l7] 也会为TCP毗连造成毗连问题。(名词诠释:这里的ippool一样平常是用在上网做源地址转换的时间 ,一个地址不敷用 ,可以把内网的源地址转换成一个地址段规模内的地址 ,VIP是防火墙的端口映射 ,也就是各人常说的目的地址转换关系)

 

一样平常这种问题的可能性是:外地有响应的IP地址(好比是源地址)了 ,由于没有对应的服务在监听 ,会去响应RST报文 ,凭证这种排查思绪去检查设置。

 

那我们把问题点锁定在IPPool或VIP上重点排查 ,通过设置审查找到了这个始作俑者。将对应过失的战略设置删除问题解决。

 

 

经确认现场源地址10.85.40.3也加到了虚拟ip映射里了。关于防火墙设置不太熟悉的往往可能会泛起这种希奇的设置 ,有时间战略一多真的用肉眼很欠悦目出问题出在哪儿。

 

一样平常泛起防火墙回复...from local. flag [R]的情形有如下三种:

 

1、将服务器地址设置到了IPpool里;

2、将客户端IP地址设置到了IPpool里;

3、将客户端IP地址设置到了VIP里。

 

总结

 

Debug flow下令是防火墙实验安排历程中使用频率极高 ,并且故障诊断问题定位率可达80%左右 ,真的是算上是爱说大真话的下令了 ,提醒什么缘故原由一样平常故障就定位出来 了 ,是小锐力荐需掌握的下令 ,学会了就是掌握了上乘武功了哦 ,一起修炼起来吧。

 

关注97国际
关注97国际官网微信
随时相识公司最新动态
97国际·(中国区)集团官方网站

返回顶部

收起
97国际·(中国区)集团官方网站 文档AI助手
97国际·(中国区)集团官方网站 文档评价
资料内容是否对您有资助?
您对目今页面的知足度怎样?
不咋滴
很是好
您知足的缘故原由是(多�。�?
您对文档是否尚有其它的问题或建议?
为尽快解决问题 ,请您留下联系方法以便回复
邮箱
手机号
谢谢您的反�。�
97国际·(中国区)集团官方网站
97国际·(中国区)集团官方网站
97国际·(中国区)集团官方网站
请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反响 意见反响
意见反响
更多联系方法
网站地图