SOHO路由器,目前很多单位都在使用,常见的品牌有Cisco、H3C、TP-Link、D-Link等。SOHO路由器具备路由、交换功能,有的还有无线功能。随着SOHO路由器在网络中使用数量的增多,带来的相关故障也越来越多。本文通过一则实例,让大家对SOHO路由器的功能和使用方法了解的更加透彻。
图1 网络结构图
一、公司网络结构
单位网络结构图如图1所示。为了确保重要设备的稳定性和冗余性,核心层交换机使用两台Cisco 4506,通过Trunk线连接。在接入层使用了多台Cisco 3750交换机,图示为了简洁,只画出了两台。在核心交换机上连接有单位重要的服务器,如DHCP、E-MAIL服务器、WEB服务器等。单位IP地址的部署,使用的是B类私有172网段的地址。DHCP服务器的IP地址为172.16.1.1。Cisco 4506和Cisco 3750之间也是Trunk连接。4506通过光纤连接至互联网。
二、故障发生过程
单位新聘用了一名员工,要把他的PC接入到网络中,但接入时总提示“IP地址与网络上的其它系统有冲突”。后来,把电脑网卡上的网线拔掉再插上,让电脑重新从DHCP服务器获取IP地址,但故障依旧。接着又在电脑的“命令行”中用“ipconfig /release”命令释放网卡上的IP地址,然后再执行命令“ipconfig /renew”,让电脑再重新获取一次地址,但系统依旧提示地址冲突。
接着,我们在“命令行”中执行“ipconfig /all”,发现电脑获取到的IP地址是172.16.11.34/24。既然提示说地址冲突,那么在网络中肯定还有一台设备在使用172.16.11.34这个地址。为了验证这种判断,先把新接入网络的电脑关机,然后在网络上,执行“ping 172.16.11.34”命令,结果和预期的一样,可以ping通。这证明了网络中还有一台设备正在使用172.16.11.34。接下来就是找出这台设备。
三、排查故障的步骤
1、按照当初网路的设计,客户端都是自动从DHCP服务器获取IP地址,也就是客户端使用的IP地址不是固定的。当从DHCP服务器获取的IP地址租用期满了之后,若再重新获取的话,IP地址就会有变化。但在网络的同一VLAN中,使用172.16.11.34/24地址,可能有一百多台PC,总不能一台一台去查,效率太低。
2、最终我们把寻找172.16.11.34/24的方法放在了Cisco 4506和Cisco 3750上,因为三层交换机中都保存有ARP表,而在二层和三层交换机中都保存有,主机MAC地址和交换机接口对应的二层CAM表。通过这两张表就很容易找到IP地址对应的设备。首先我们在Cisco 4506上执行如下命令:
Cisco-4506#show arp | include 172.16.11.34
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.16.11.34 8 00d1.8624.1a02 ARPA Vlan11
上面命令显示的结果,只是4506中ARP表内容的一部分。通过它可以找到IP地址172.16.11.34所对应的MAC地址00d1.8624.1a02。
3、因为每一台电脑的MAC地址都是全球唯一的,所以我们再在Cisco 3750上执行如下命令:
Cisco-3750#show mac-address-table dynamic | include 00d1.8624.1a02
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
11 00d1.8624.1a02 DYNAMIC Gi1/0/13
上面命令的显示结果,也只是3750中CAM表内容的一部分。通过显示结果我们找到了IP地址是172.16.11.34的设备是通过3750的Gi1/0/13口连接到网络中的。然后我们再通过连接3750的Gi1/0/13口和机房中配线架的网络跳线,找到与Cisco 3750 Gi1/0/13连接的配线架上端口对应的办公室房间号。结果,我们在那间办公室中找到了一台D-Link路由器。路由器在网络中的连接示意图如图2所示。
图2 引起地址冲突的路由器连接图#p#
4、接着在连接D-Link路由器的PC中的“命令行”中执行“ipconfig /all”命令,查找到D-Link路由器的网关地址是192.168.1.1,然后在PC的浏览器地址栏中输入192.168.1.1,进入D-Link的Web配置管理界面。一般的SOHO路由器的管理配置都是以这种方式进入的。最后,在D-Link的Web页面中找到了引起网络IP地址冲突的错误配置,如图3所示。
图3 D-Link路由器上的错误设置
5、就是因为在此设备上也配置了静态的172.16.11.34/24地址,导致网络故障。要排除冲突故障,只要在Web管理界面中的“因特网连接”—>“因特网连接类型”中,选择“动态”,然后点击保存即可,如图4所示。
图4 排除IP地址冲突的正确设置
案例总结:
1、SOHO路由器中一般都使用了两种重要技术:PAT和DHCP服务器功能。
(1)PAT(端口地址转换)。属于NAT中三大规则中的一种,另外两种是静态NAT(Static NAT)和动态NAT(Dynamic NAT)。PAT有时也称动态复用NAT,它改变了外出数据包的源端口,并进行端口转换,采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,可以最大限度地节约IP地址资源。同时,也可以隐藏网络内部的所有主机,有效避免来自Internet的攻击。因此,目前网络中应用最多的就是PAT规则。
(2)DHCP服务器功能。当一台电脑第一次接入到,配置有DHCP服务器的网络中时,客户机上没有任何的IP数据设定,也就是没有IP地址、DNS和默认网关地址,这时它会向网络中发出一个 DHCP Discover数据包。因为客户端还不知道自己属于哪一个网络,所以数据包的源地址为0.0.0.0,而目的地址则为 255.255.255.255 ,向网络进行广播。当客户端将第一个 DHCP Discover数据包送出去之后,在 一秒之内若没有得到响应的话,就会进行第二次 DHCP Discover数据包的广播。若一直得不到响应的情况下,客户端一共会有四次 DHCP Discover数据包广播。
在DHCP服务器收到DHCP Discover发现报文后会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,并根据DHCP Discover数据包中原来携带的客户机MAC地址,向客户机发送一个包含出租的IP地址、DNS和默认网关地址的DHCP Offer提供报文。
2、对故障的深入分析。通过上面对DHCP工作原理的分析,发现当网络中SOHO路由器上也配置了静态的172.16.11.34地址后,若再有PC接入到网络中,DHCP给PC分配IP地址时,因为它并不知道172.16.11.34已在网络中配置,所以它还是按照IP地址分配的顺序,前面172.16.11.1~33的地址已经分配,自然就把172.16.11.34分配给了新加入网络中的PC,从而造成了冲突故障。
3、CAM表和ARP表。在二层和三层交换机上都会维护一张用于二层交换的地址表,即CAM表。该表是MAC地址与交换机出接口的对应关系。这样当收到一个以太网数据帧时,交换机判断如果该数据帧不是发送给自己的,则根据数据帧的目的MAC地址查询CAM表,如果能在CAM表中找到与该MAC地址对应的转发项,则根据查询的结果,通常是一个出接口列表,在相应的接口上把数据帧转发出去。如果不能找到,则向所有端口广播该数据帧。
在网络中的三层设备上都会维护一张ARP表,用于查找连接到三层设备的客户端或服务器的IP地址和其MAC地址。也就说只要知道MAC地址和IP地址其中的一个就可以知道另外一个。通常在网络中利用这两张表就可以迅速的确定一个设备的具体位置。