解决路由循环的问题 [转载一个案例教程]
在一台三层交换机上设置了多个VLAN,每个VLAN都分配置了一个网关IP地址,并设置了指向互联网宽带路由的默认路由;在与互联网相联的宽带路由上设置了静态路由,用于将进入局域网的数据转发到三层交换机上。
以前经常出现交换机莫明奇妙的无法转发数据,用PING也没有响应,昨天一个偶然的机会,用PING测试一个VLAN的网关IP:192.168.12.1,收到Replyfrom192.168.8.1:TTLexpiredintransit.这说明发出去的数据包经过了很多过路由器,最终TTL(生存时间)为零了;由于到指定的IP只经过了一个路由器,因此怀疑网络中有循环路由,于是用tracert命令来追踪路由,发现都只在192.168.8.1这个地址传递,于是查看三层交换机的路由表,发现192.168.12.0/24这个网络没有出现在路由表中,原因是这个VLAN所对应的端口linedown(线路关闭)了,也就是对应端的交换机关闭了,导致这个VLAN也关闭,它的路由信息也从路由表中清除了;所以发往这个网络的数据由于不知该向那发,它就发往了三层交换面默认路由所指的互联网宽带路由,而宽带路由看到是内网的目标地址又将数据包送回到三层交换机上,如此循环,就在三层交换机与宽带路由之间形成循环。
当网络中有病毒出现时,向局域网中不存在的地址发包时,就会在交换机与宽带路由这间循环;还有当有人用P2P下载工具进行下载时,如果这时关闭VLAN所对应的交换机,也会造成由互联网上发来的数据,由于到找不到路由而形成循环。
当采用静态路由进行设定时,比较容易出现这种路由循环,可以采用RIPV2或OSPF路由协议,在设备之间传递路由;
由于宽带路由不支持动态路由协议,所以就只有在宽带路由的防火墙上设置,拒绝所有目标地址为内网IP的数据包通过,这样就把循环路由的问题给解决了。