VPN内无法访问某些WEB站点的故障排除
一、网络概述
某地市政务网采用MPLS/VPN技术为各个行政部门构建VPN,与省一级VPN实现互通。原有网络采用CISCO7206作为PE,与省政务网的PE(CISCO GSR12000)建立MP-BGP。 为了提升网络性能同时实现省、地市、县三级MPLS VPN网络,采用BH6808作为地市级PE设备,建立与省PE的MP-BGP邻居关系,同时BH6808作为路由反射器,建立与该地市所辖的各个县的PE的MP-BGP邻居关系
注:以上拓扑仅仅是现实网络环境的一个抽象
二、问题描述
某地区的政务网MPLS/VPN网络经过改造之后, SITE B的用户反映无法访问SITE A内的WWW服务器的主页
三、问题分析及处理过程
1、经过验证,上述现象确实存在
2、在SITE B的PC上PING SITE A内的WWW 服务器,不通,PING SITEA的VPN1的VRF接口地址,可以通
3、将SITEB的CE设备重新连接到CISCO7206,在SITE B的PC上PING SITE A内的WWW 服务器,不通,但是可以访问WWW服务器的主页。可以断定SITE A内部网络中启用了ICMP的过滤功能。问题不一定出在VPN内部的路由上
4、因为无法通过PING来定位问题,因此希望通过抓包来找到一些蛛丝马迹。重新将SITEB的CE设备连接到BH6808上,在SITE B的PC上访问SITE A内的WWW 服务器的同时使用SNIFFER工具抓包
5、从抓包结果来看,从SITE A的WWW 服务器返回了几个报文,证明VPN内部路由没有问题。仔细观察发现IP报文的分片字段一项被设置为不允许分片。由此可以推断该WWW服务器网卡作了报文不分片的设置。正常的HTTP报文最大为1500BYTE,由于在MPLS/VPN传递,封装两层MPLS标签(在倒数第二跳弹出的情况下,外层标签被弹出,只封装一层VPN标签)之后,报文长度超过了默认的MTU,即1500BYTE。如果MPLS网络中的设备不支持超长帧的传递,并且该报文不允许分片的情况下,那么该报文就会被丢弃,并向该报文的源发送一个ICMP报文,指明设备收到的报文超过MTU但是该报文却被设置了不允许分片
6、问题初步定位为MPLS VPN数据转发路径上MTU小于MPLS FRAME的长度所致。那么MTU的瓶颈位于MPLS域内哪个设备上呢?由于BH6808的新的NP芯片支持超长MPLS FRAME转发。因此排除了自身设备出问题的可能。由于CISCO GSR设备也支持超长MPLS FRAME转发,问题最终定位在CISCO7206上。通知代理商修改CISCO7206接口的MTU为1544,问题解决
7、那么如何解释原有网络中SITE B可以访问SITE A的WEB服务器,而改造后却无法访问呢?下面从HTTP访问的流量模型来逐步分析:
A、在原有网络中,从SITE B内PC发送到SITE A内WEB SERVER的HTTP请求报文或者TCP确认报文,正常情况下都是很小的报文,即使封装两层MPLS标签也不会超过1500 BYTE,因此CISCO7206上与CISCO GSR相连的接口即使使用默认MTU也没有问题;
B、从SITE A的WEB SERVER发送到SITE B内PC的HTTP报文通常是1500BYTE,加上两层MPLS标签之后必然超过默认的MTU值,即1500BYTE。CISCO GSR设备也支持超长MPLS FRAME转发。因此问题GSR当CISCO7206收到这个超长MPLS FRAME之后,由于它本身是PE,从VRF接口转发出去的报文就是普通的IP报文,MPLS头部信息已经被剥离,因此不会超过1500BYTE。所以SITE B的PC可以正常SITE A的WEB SERVER
C、改造之后的网络,BH6808作为PE,而CISCO7206作为P设备。从SITE A到SITE B的HTTP报文长度如果为1500 BYTE,那么该报文被转发到CISCO7206时,由于BH6808默认启动PHP(MPLS 标签倒数第二跳弹出)所以CISCO7206继续转发给BH6808的报文需要携带一层MPLS标签,即VPN标签,这样1500BYTE长度的HTTP加上一层标签之后就超过了默认的MTU值,所以就被丢弃了。SITE B的PC无法访问SITE A的WEB SERVER的主页的现象的原因就在于此。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>