用户组网
用户F100-S-G作为网络出口设备,内部有一台服务器需要做地址映射,同时,用户内网终端也需要通过公网地址访问该服务器。目前外网可以正常访问该服务器,内网也可以通过私网地址访问该服务器,但内网通过公网地址访问该服务器失败。
平时类似的问题用户反馈得比较多,一般都是内网口NAT的配置有问题,所以按照惯例和以往经验,开始排查用户内网接口的配置。
#
interface GigabitEthernet0/1
port link-mode route
description ith
nat outbound 3002
nat server protocol tcp global 218.17.233.210 9090 inside 10.10.10.230 9090
ip address 10.10.10.1 255.255.0.0
ip policy-based-route aaa
#
acl number 3002
rule 11 permit source 10.10.0.0 0.0.255.255 destination 10.10.10.230 0
单看NAT Server和NAT Outbound的配置并无问题,但是用户在内网口配置了一条策略路由aaa,怀疑与此有关,遂继续排查策略路由的配置。
#
acl number 3000
rule 5 permit ip source 10.10.10.230 0 destination 10.10.0.0 0.0.255.255
rule 10 permit ip source 10.10.0.0 0.0.255.255 destination 10.10.10.230 0
acl number 3001
rule 0 deny ip source 10.10.0.0 0.0.255.255 destination 10.10.10.230 0
rule 1 deny ip source 10.10.10.230 0 destination 10.10.0.0 0.0.255.255
rule 5 permit ip source 10.10.10.230 0
rule 6 permit ip source 10.10.10.231 0
rule 7 permit ip source 10.10.10.232 0
rule 10 deny ip
#
policy-based-route aaa permit node 4
if-match acl 3000
policy-based-route aaa permit node 5
if-match acl 3001
apply ip-address next-hop 218.17.233.209
排查策略路由的问题时首先需要确定一个问题,那就是报文进入内网口之后,到底是先匹配NAT Server还是先匹配策略路由?答案是先匹配NAT Server。这样的话,那么当报文进入接口先匹配NAT Server之后,报文的目的地址就变成了10.10.10.230,此时这个报文会不会匹配上策略路由引用的ACL呢?首先查看策略路由aaa的节点4,其引用的ACL是3000,不配置apply子句,即不会执行任何动作,且不再继续匹配下一节点,报文按正常转发流程处理。查看ACL 3000,发现数据报文进入内网口经过NAT Server转换之后,正好匹配上ACL 3000的rule 10,报文按正常转发流程处理,所以,防火墙的配置在处理“去”报文时并没有什么问题。接下来排查“回”报文的情况。“回”报文源地址10.10.10.230,目的地址10.10.10.1,继续查看其策略路由匹配情况,发现其还是会匹配上ACL 3000的rule 5,所以报文还是按正常转发流程处理。这样全程分析下来,发现相关配置竟然没有任何问题!
那么问题究竟在哪里呢?就在山穷水复疑无路的时候,突然发现用户的配置里没有interzone policy default by-priority这一条。由于绝大多数用户买到该款设备的第一件事就是配上这条命令,从而实现安全区域之间按照优先级进行转发,即“高优先级安全域可以访问低优先级安全域”、“相同级别安全域之间可以互访”等,以便省去单独配置域间策略的麻烦。查看设备软件版本为R5142P04,由于F100-X-G策略变更起始版本号为R5142,所以在这种情况下,系统默认域间策略转发规则为全部阻断,即任意安全区域之间和相同安全域之内都不允许通信。但是按理来说,这条命令没有配置,其他各种访问情况都应该都会受到影响啊?用户当初反馈的是外网可以正常访问该服务器,内网也可以通过私网地址访问该服务器,但内网通过公网地址访问该服务器失败。那为什么前两者的访问不受影响呢?首先内网可以通过私网地址访问该服务器比较容易解释,因为他们在一个网段,互访不经过防火墙,所以没有问题。那么外网可以正常访问该服务器怎么解释呢?这可以在配置里找到答案。
#
interzone source Untrust destination Trust
rule 0 permit
source-ip any_address
destination-ip any_address
service any_service
rule enable
用户配置了放通从Untrust到Trust的所有服务。那么此时我们需要关注的就是内网通过公网地址访问该服务器失败的具体情况,内网通过公网地址访问该服务器与直接通过私网地址去访问的区别是前者需要经过防火墙转换地址,所以就形成了Trust区域到Trust区域的访问关系,然而用户的配置里并没有配置放通Trust区域到Trust区域的域间策略,所以导致了问题。
配置相应的放通Trust区域到Trust区域的域间策略,其中service根据用户实际情况配置即可。
#
interzone source Trust destination Trust
rule 0 permit
source-ip 10.10.0.0/0.0.255.255
destination-ip 10.10.10.230/0.0.0.0
service any_service
rule enable
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作