从上表中,我们可以看到除了有两条直联路由外,配置了两条默认路由,到达未知IP可通过E1或E3到达,而且访问回来的路由没有,看来问题应当出在这个地方了。
让我们来假设一下数据报的流向:
1、访问目标为路由已知的地址
采用此路由表,我们在内网中能访问到的最远的地址为该企业专线在电信端的地址,即216.X.X.241/28。其流向为工作站―――工作站网关(vlan地址)―――所在vlan网关(交换机同防火墙直联端口地址172.16.0.254)―――防火墙内网口地址(172.16.0.250),防火墙通过路由表查询,发现到达216.X.X.241的地址为自己的直联路由,将该数据报交给E3,这样我们访问的数据报能到达该地址。
2、访问目标为路由未知的地址
在访问目标为路由未知的地址时,数据报到达E1后,E1发现有两条默认路由,因此将数据重新转发到交换机(为什么不选用另一默认路由未知?难道是针对E1口而言这条默认路由的优先级高一些?寻求答案!),交换机根据自己的路由表又发到防火墙,而防火墙根据路由表又发回。。。。。。,最终导致路由环路。
后经了解,负责防火墙的管理人员为了让返回的数据包到达目的,将原有的路由表进行勒修改,增加了这条造成环路的路由。
原路由设置为:
set route 0.0.0.0/0 interface ethernet3 gateway 216.x.x.241 set route 172.15.13.0/24 interface ethernet1 gateway 172.16.101.254 set route 172.15.3.0/24 interface ethernet1 gateway 172.16.101.254 (原来只允许13和3两个VLAN访问互联网) |
错误的路由设置为:
set route 0.0.0.0/0 interface ethernet3 gateway 216.x.x.241 set route 0.0.0.0/0 interface ethernet1 gateway 172.16.101.254 |
四、故障处理
将路由 0.0.0.0/0 eth1 172.16.0.254 S 20 1 Root删除;
重新添加新的路由条目:
* 4 100.0.0.0/8 eth1 172.16.0.254 S 20 1 Root
(回应包路由,到达100.0.0.0网段的数据报将交给Eeh1处理,下一跳的地址为交换机到防火墙的级联口)
* 5 172.15.0.0/16 eth1 172.16.0.254 S 20 1 Root
(回应包路由,到达172.15.0.0/16的任一网段的数据将转发到eth1,下一跳地址为交换机端口地址。)
set route 0.0.0.0/0 interface ethernet3 gateway 216.x.x.241 set route 100.100.10.0/8 interface ethernet1 gateway 172.16.101.254 set route 172.15.0.0/16 interface ethernet1 gateway 172.16.101.254 |
查询路由
yty-> get route
untrust-vr (0 entries)
--------------------------------------------------------------------------------
C - Connected, S - Static, A - Auto-Exported, I - Imported, R - RIP
trust-vr (5 entries)
ID IP-Prefix Interface Gateway P Pref Mtr Vsys
--------------------------------------------------------------------------------
* 3 0.0.0.0/0 eth3 216.X.X.241 S 20 1 Root
* 1 172.16.0.0/24 eth1 0.0.0.0 C 0 0 Root
* 2 216.X.X.240/28 eth3 0.0.0.0 C 0 0 Root
* 4 100.0.0.0/8 eth1 172.16.0.254 S 20 1 Root
* 5 172.15.0.0/16 eth1 172.16.0.254 S 20 1 Root
五、结果测试
Tracing route to www.netexpert.cn [61.172.255.19]
over a maximum of 30 hops:
1 3 ms <1 ms <1 ms 172.15.0.254 (本机网关)
2 6 ms 99 ms 102 ms 172.16.0.250 (防火墙内网口)
3 257 ms 300 ms 317 ms 216.X.X.241 (防火墙外网口网关,电信)
4 298 ms 141 ms 128 ms 221.232.254.1
5 188 ms 265 ms 387 ms 202.97.37.149
6 270 ms 130 ms 79 ms 202.97.35.77
7 490 ms 372 ms 495 ms 61.152.86.13
8 102 ms 91 ms 87 ms 61.152.87.134
9 41 ms 46 ms 95 ms 61.152.83.38
10 89 ms 252 ms 81 ms 61.152.83.162
11 304 ms 333 ms 439 ms 218.78.213.102
12 448 ms 463 ms 173 ms 61.172.255.19
至此问题解决,将工作站划分到不同vlan上网都正常。
总结
对故障的排除并不一定需要专业的网络分析软件,很多系统自带的工具能很方便的反映问题所在,定义问题点,此次能找到问题点就是因为使用tracert进行路由跟踪,确定了故障的原因是环路路由造成的;
网络出现故障时一定要对网络的架构有所了解,根据问题表现按照网络连接的顺序进行正向、反向的验证、分析,找出故障所在。
对于问题出在三层交换、网关位置时,问题一般是数据报路由的问题,因此出现故障首先检查路由表,这样会省很多事情;
对于故障现象应当进行验证操作,以免出现实际和描述不一致的地方,影响故障诊断。
后语
每次处理问题后,总有种冲动,想写些东西,不为别的,只是想将该处理方法回味一下,确认自己确实是了解该故障原因和处理方法是否正确。不想做那种知道处理方法而不知道原因的操作工。由于一直做防毒方面的工作,考试结束后就没有接触什么路由交换的东东,因此这次的冲动更强烈些,就乱七八糟的写了一通,也不知对否,望论坛中的XDJM们拍砖,俺挺得住的!
这次的处理问题时还有很多地方自己没有弄清楚,所以没有写得很详细。比如数据报在访问过程中的数据格式、到达目的地址后的回应包的格式、在设置两条默认路由情况下数据报会如何选择等问题。希望各位兄弟姐妹们多多指教!