都是路由惹的祸
2017-11-07
网络环境
最近,笔者单位网络接入市里协同大平台系统,为避免为每个学校另外拉一根光纤(各学校都已通过裸光纤接入教育城域网),教育局准备将协同平台接入光纤放入教育城域网中心机房,学校统一通过教育城域网中心机房接入协同平台,既节约费用,也便于教育局统一管理。网络结构如图1所示。
各学校通过光纤接入绵竹教育城域网中心机房,再经过思科防火墙ASA5540上因特网(拓扑图左边那条线路)。如果各学校要访问外网,通过华为Eudemon 200访问(拓扑图右边那条线路)。
图1 网络拓扑结构
网络配置
笔者接到任务时,觉得不难,这就是一个双线接入的配置,是很容易实现的。置外网分配的IP地址)
故障现象
配置好核心交换机华为9306和华为Eudemon 200后,却发现10.5.x1.xxx和59.213.x3.xxx这两个IP不能访问,其他4个IP都能够访问。怎么会有两个不能访问呢?要么就是全部可以访问,要么就是都不能访问啊!
难道是这两个IP有问题?马上打电话确认,教育局那边说,就是访问不了这两个地址(注:教育局另外放了一根外网光纤,能够访问外网)。笔者放心了,原来和我的配置没有多大关系,就没有放在心上。第二天到教育局办事,教育局工作人员反映,通过教育城域网不能访问外网。
笔者当时觉得不可思议,马上试验了一下,结果,6个IP地址,只有10.5.x1.xxx不能访问,而这个IP是必须用的(这个IP是政务外网首页)。当时的第一个反应是,这个地址的服务器没有开机,结果用另一根光纤访问,是能够访问的。
教育局的工作人员提醒我说,这些接入政务网的光纤都有固定的IP,对IP都是有限制的。我一听,马上联系放光纤的移动公司,结果移动公司说,没有限制,其他单位也用这种方式接入,没有问题。当听我说用防火墙接入时,移动公司建议我用路由器,说防火墙接入有时就是会出一些问题,还举了一些例子。
下午到教育城域网中心机房,首先梳理了一下故障排除步骤:
1.笔记本单独接光纤能否访问政务外网。
2.笔记本直接接入防火墙能否访问外网(防火墙不接入教育城域网)。
3.换一台路由器试一试。
通过这三步判断故障到底出在哪里。
实验的最终结果是:笔记本单独接光纤一点问题也没 有,10.5.x1.xxx能 够 访问;笔记本接入防火墙也能访问;换了一台路由器(华为2621)故障情况也一样。
这个问题困扰了我好几天,也咨询了很多人。有的说是防火墙软件版本的问题,有的说是机器软硬件配合问题等,我甚至在考虑是否是NAT转换的原因:10.5.x1.xxx是私有地址,教育城域网也是私有地址,防火墙(路由器)就不NAT转换了,所以不能访问。
故障解决
问题的最终解决是在一次无意试验之中。一次,我将防火墙接核心交换机端口的网线拔了,通过Console口登录防火墙,在防火墙上ping 10.5.x1.xxx能 通,但只要一接入核心交换机,ping 10.5.x1.xxx就不通了。我突然反应过来,难道是路由出了问题?
仔细检查防火墙Eudemon 200的 路 由,路由只有两条:默认路由:ip route-static 0.0.0.0 0.0.0.0 10.76.x2.xxx;回指 路 由 :ip route-static 10.0.0.0 255.0.0.0 192.168.200.245。 这 两条路由中,默认路由肯定没有问题,那么就是回指路由错了。马上删除了这条路由,添加新的路由(我所在的网段):ip rout 10.1.11.0 255.255.255.0 192.168.200.245,再ping 10.5.x1.xxx,结果一下就通了,也能访问了,至此,问题得到圆满解决。
故障分析
事后,我分析了一下原因。为什么回指路由ip route-static 10.0.0.0 255.0.0.0 192.168.200.245这条路由不行,而ip rout 10.1.11.0 255.255.255.0 192.168.200.245能 行 呢?原因就在于,当用户访问10.5.x1.xxx时,IP数据经过防火墙Eudemon 200转发,这时防火墙Eudemon 200使用的路由是ip routestatic 10.0.0.0 255.0.0.0 192.168.200.245(此 时10.5.x1.xxx这个IP包含在回指路由中),没有使用默认路由ip route-static 0.0.0.0 0.0.0.0 10.76.x2.xxx,所以导致不能访问10.5.x1.xxx。当把回指路由更改为ip route-static 10.1.11.0 255.255.255.0 192.168.200.245时,由于防火墙Eudemon 200在路由表中无法找到其他路由(此时10.5.x1.xxx这个IP不在回指路由中),这时就走默认路由ip route-static 0.0.0.0 0.0.0.0 10.76.x2.xxx,也就能够访问10.5.x1.xxx了。
这就是出现此类问题的原因所在,也就是说,回指路由中一定不能包含要访问的IP,否则不能访问。那么就有人说,调低回指路由的优先级,如ip route-static 10.0.0.0 255.0.0.0 1 9 2.1 6 8.2 0 0.2 4 5 preference 70,我也试过,不行,只能这样解决。
经验总结
通过此次故障排查,总结如下:
1.首先确保接入的线路能正常使用(单独接电脑确认)。
2.配置好防火墙(路由器),确认能否访问(不接入内部网络)。
3.接入内部网络,再确认能否正常访问。
通过此三步,将有效定位故障位置,快速排除故障。