到达现场后,对客户描述的现象进行测试:
1、 整个企业内部网网络连通正常;
2、 任何网段中允许上网的工作站无法通过域名访问互联网;
3、 任何网段中允许上网的工作站无法通过已知的IP访问互联网网站及其它服务;
4、 任何网段中允许上网的工作站能ping通到防火墙外网口网关(即电信端);
5、 任何网段中允许上网的工作站无法ping通到电信端以外的地址(此处跟用户最先说的可以ping通外网的ip地址不符合。后经了解,用户当时以为能ping通到电信端就以为是ping通到外网所有的地址,没有进行进一步的测试。)
根据以上的表象,初步认为有两种可能:
1、 电信端出问题,该公司所处的公网网段地址没有发布出去;
2、 本地的防火墙设置有问题。
为了进一步进行查询问题出在什么地方,决定进行一次路由跟踪,看是否是电信端的关于该企业的公网网段发布问题。
tracert 61.172.255.19 (www.netexpert.cn的解析地址,允许ping,实在是测试网络设置效果时的必备之暗器)
1 3 ms <1 ms <1 ms 172.15.0.254(本机网关)
2 6 ms 99 ms 102 ms 172.16.0.250(防火墙内网口)
3 6 ms 99 ms 102 ms 172.16.0.254(交换机联防火墙端口)
4 6 ms 99 ms 102 ms 172.16.0.250(防火墙内网口)
5 6 ms 99 ms 102 ms 172.16.0.254(交换机联防火墙端口)
6 6 ms 99 ms 102 ms 172.16.0.250(防火墙内网口)
7 6 ms 99 ms 102 ms 172.16.0.254(交换机联防火墙端口)
8 6 ms 99 ms 102 ms 172.16.0.250
9 6 ms 99 ms 102 ms 172.16.0.254
10 6 ms 99 ms 102 ms 172.16.0.250
11 6 ms 99 ms 102 ms 172.16.0.254
12 6 ms 99 ms 102 ms 172.16.0.250
13 6 ms 99 ms 102 ms 172.16.0.254
14 6 ms 99 ms 102 ms 172.16.0.250
15 6 ms 99 ms 102 ms 172.16.0.254
16 6 ms 99 ms 102 ms 172.16.0.250
。。。。。。(陷入循环状态直至30跳中止)
从以上结果,我们可以看是防火墙的对目的为61.172.255.19的数据包没有正确的路由,数据在交换机和防火墙之间进行环路传递。
确定是防火墙的路由有问题,登陆到该防火墙,查询路由状态:
Yty-> get route
untrust-vr (0 entries)
--------------------------------------------------------------------------------
C - Connected, S - Static, A - Auto-Exported, I - Imported, R – RIP trust-vr (4 entries)
--------------------------------------------------------------------------------
ID IP-Prefix Interface Gateway P Pref Mtr Vsys
--------------------------------------------------------------------------------
* 5 0.0.0.0/0 eth1 172.16.0.254 S 20 1 Root
* 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
从上表中,我们可以看到除了有两条直联路由外,配置了两条默认路由,到达未知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