一、问题背景:
在利用交换机做二层透传,实现小区用户PPPoE拨号接入的实际运行环境中,由于网络环路问题,导致网络中的其他用户上网速度变慢甚至不能上网,对交换机管理也存在问题的一系列情况,针对网络的实际情况和交换机的机理,对网络环路对网络运营的具体影响进行了剖析,并针对不同的情况,具体该如何规避网络环路的影响。
二、网络拓扑结构示意图:
▲图一:典型的组网应用
在该方式的组网中,用户VLAN的ID值都透传到BAS系统,由BAS系统实现PPPoE的终结,使用户接入Internet网络,网络结构为树型结构,BAS系统通过识别用户的VLAN ID值来区分用户,为了实现用户的绑定,其实现的方式是将用户名和VLAN ID值绑定,该VLAN ID值的PPPoE会话连接数只允许1个。
在实际的应运过程中,由于考虑到接入层交换机的成本,在楼道接入的交换机一般都不支持802.1Q的VLAN(设备成本较低),因此,一般给每个楼道交换机分配一个VLAN ID值,楼道的交换机对用户实现端口隔离,在BAS系统上为该VLAN创建多个会话数,以保证该VLAN下的所有用户都可以接入。
小区的汇聚交换机实现对用户数据帧的VLAN 封装和转发,同时对不同的楼道的VLAN进行区分,将多个VLAN透传到上端设备;中心的交换机实现对所有用户VLAN的汇聚。
三、网络环路具体形成的方式:
1. 在不同交换机间互连形成网络环路;
2. 在制作网线时,由于线序中1、2与3、6短路形成网络环路;
3. 在做负载均衡(有的称快速以太网通道FEC或端口聚合或链路捆绑)时,由于配置了一端的交换机,另一端的交换机(或服务器)没有配置,形成网络环路;
4. 在同一台交换机上,直接将网线连接到同一VLAN 的两个端口,形成网络环路;
5. 多种方式混合出现在整个网络中。
四、网络环路对网络的影响:
网络中形成了网络环路,对网络的影响,主要表现如为:
1. 导致交换机MAC地址学习混乱;
2. 形成网络广播风暴;
3. 造成网络拥塞。
对网络中出现环路后,具体的一些用户或故障现象列举如下:
• 影响同一个VLAN的用户上网,出现时通时断的现象;
• 单位内部使用的交换机(无上Internet的需求),相同的VLAN中的用户实现相互通信,如果形成了网络环路,也会出现时通时断的现象;
• 影响网络中其他用户上网,主要表现是网络速度变慢或者就上不了网;
• 正在使用的PPPo拨号连接被断开;
• 未上网的用户能够刷新BAS服务器,但是拨号不成功;
• 对下端交换机的管理出现问题(如有时可以Telnet,有时不能);
五、网络环路的对网络影响的具体分析:
针对网络中形成了网络环路,对整个网络的影响,主要表现的几种方式,下面将对每一种方式做具体的分析:
• 导致交换机MAC地址学习混乱;
例如:网络中的环路存在时,当连接到该VLAN的一台主机往外发送单播帧时,交换机将学习到该MAC地址,并添加到MAC地址表里,从网络中的U24设备来分析网络环路对MAC地址学习的影响:
▲图二:网络环路
说明:二层交换-B的端口24连接到BAS系统(其MAC地址为:00:90:1a:40:37:bc),端口3连接了一个直接用户(其主机的MAC地址为:00:0a:eb:0e:0e:3b),二层交换-C连接在二层交换-B的10口上,下面连接用户。
在二层交换-B上,端口24,3,10三个端口同属于一个VLAN(名称:PPPoE_10 ID值:100),其他的VLAN信息略,当网络正常运行的过程中,查看MAC地址表,其内容如下:
Mac address Port Flags
------------------ ---- --------------------------------------------------
00:0a:eb:0e:0e:3b 3 Aged
00:05:3b:30:20:8b 10 Aged
00:05:3b:00:5b:b0 24 Aged
00:90:1a:40:37:bc 24 Aged
。。。 。。。
------------------ ---- --------------------------------------------------
Total 140 mac address entry showed.
如果在二层交换-C上出现了网络环路(如图二中红线,会导致网络异常,出现上述描绘的网络故障现象,这时再通过配置口检查交换机的MAC地址表项,其内容如下:
Mac address Port Flags
------------------ ---- --------------------------------------------------
00:0a:eb:0e:0e:3b 10 Aged
00:05:3b:30:20:8b 10 Aged
00:05:3b:00:5b:b0 24 Aged
00:90:1a:40:37:bc 24 Aged
。。。 。。。
------------------ ---- --------------------------------------------------
Total 142 mac address entry showed.
这时,我们发现,二层交换-B的MAC地址学习出现了混乱,即该VLAN的主机MAC地址不断地在端口3和端口10之间变换,该现象用交换机的地址学习原理(请参考附件的相关材料)能够很好地解释。具体说明如下:
当3端口的主机网络正常使用时,交换机上MAC地址表中,用户的MAC地址对应在端口3,当二层交换-C上出现了网络环路后,3端口的主机如发单播包,则MAC表项也正常,如果该主机发出广播包(如ARP报文),广播包将向该VLAN的所有的端口,该广播包从10端口到二层交换-C后,又沿环路返回到10端口,由于在线路中数据包发送过程中的时延,因此将端口3的主机MAC地址学习到了10端口,造成交换机转发数据异常。但是MAC地址表是乱而有序(按交换机二层转发原理、MAC更新规律进行)。如果BAS系统也发出了广播包,也会出现BAS的MAC地址学习到其他有环路的端口上,大量的数据包不断的被重新发送,导致网络中断、出现掉包、网络拥塞等网络故障。
• 形成网络广播风暴;
当网络中形成了网络环路,则广播包在该VLAN中就回沿着环路,一直不停地转发,由此不断地积累,从而形成广播风暴。
• 造成网络拥塞。
如图三所示,由于所有的用户通过同一端口上行,对用户即使做了VLAN划分,出现网络环路后,引发的广播风暴(加上部分主机感染病毒发广播包),导致出口链路被广播包占用,出现网络拥塞,使用户上网异常。
六、网络环路的避免:
针对不同方式形成的网络环路,可以采取以下的措施来减少网络环路的影响:
• 如果所有的设备都支持802.1d(spanning tree协议),可以起用spanning tree协议,从而避免网络环路的存在,但802.1d(spanning tree协议本身)对于“单端口”环路(某个端口的下游链路有环路)也是无能为力的。
• 制作网线时,严格按照EIA/TIA 568A、EIA/TIA 568B的标准制作,同时用网线测试仪器进行严格的测试,确保线缆的质量。
• 做负载均衡(有的称快速以太网通道FEC或端口聚合或链路捆绑)时,一定要保证负载均衡互连的设备都是设置正确的。
• 杜绝同一条网线的两个RJ45头直接在同一台交换机上。可以在交换机上将BAS的MAC地址和上行的端口做绑定,避免某个VLAN中出现网络环路后,由于MAC地址学习混乱对其他VLAN的影响。
• 对用户尽量通过VLAN划分,来减少网络环路对用户的影响范围。
• 在交换机上启用环路检测机制,当发现网络设备中存在单端口环路时,会将下端有环路的端口的关闭,从而避免对整个网络的影响,然后再对有网络环路的地方进行排查。(具体指令:config loopback detect enable)
• 对所建的网络要有合理的规划及严格的管理,尽量避免不合理的网络拓朴结构变动。实际工作中,对网络的每一处改动都要事前充分论证,并做好改动记录,以备后患,要保证网络的性能非常好的,应当避免网络出现各种问题,只有搞好网络管理才是其中的关键。
对网络环路故障的排查,可以采取以下的方法进行:
1. 观察法:通过观察交换机的状态指示灯,来初步判断网络中是否存在环路,如果交换机中存在网络环路,将会引起网络广播风暴,导致在该环路中的设备都无法正常使用,交换机的指示灯状态是所有同VLAN的端口的指示灯都一起快速同步的闪烁,这时可以初步判断网络中有环路。需要配合其他一些方法才能具体确定。
2. MAC地址检查法:对怀疑有网络环路的VLAN,可以在其中的一个端口加一台测试的PC主机,连接好后,连续观察交换机的MAC地址,如果发现该测试用的PC主机的网卡的MAC地址在交换机上对应的不是连接本机的端口,而是学习到另外的端口上,则被学习到的另一个端口下面肯定存在网络环路,然后再往连接在下面的设备上继续排插,直到定位具体的环路形成。
3. 端口监视法:如果在交换机上启用了网络环路检测机制,有用户报故障时,可以检查连接该用户的端口的状态是否是关闭的,如没有人为的执行过关闭端口操作,则该接口下面肯定存在网络环路。
4. 用网络工具分析法:利用网络协议分析工具(如Sniffer、NetXray等),对一些反馈有问题的端口进行捕获数据包分析,通过监视端口数据包的流量,数据包的类型的统计信息进行分析,如果监视到端口的数据包的流量过大(超过一般情况下正常业务流量),统计显示广播包占了主要的流量,可以初步判断可能有网络环路存在,再结合其他方法进行排查。
5. 排除法:对初步判断有网络环路的VLAN,对该VLAN的端口连接的网线,先拔掉其中的一条,配合观察法,看其状态指示灯是否停止了一起快速同步闪烁,如没有,将该网线插上,再检查下一条,直到检查到拔掉网线该VLAN的端口的状态指示灯就停止了一起快速同步闪烁为止。如果是单条网线,故障就排除了,如果下面还连接有交换机,则对下面的交换机继续排查。
以上是根据个人收集的一些资料及在处理网络故障时采取的一些方法的基础上完成的,供大家参考。由于时间比较仓促,因此很多地方分析的还不透彻,也希望大家进行补充,以便在网络故障排查和网络维护具有更好的指导意义。
七、附件(相关的技术材料):
所谓交换,就是将分组(或帧)从一个端口移到另一个端口的简单动作。如何作出 移动决定就已经确定了是用交换机还是路由器。如果用的是OSI 模型的第二层,那么 就要用到交换机或网桥,如果是OSI 模型的第三层,那就要用到路由器(或三层交换机)。
MAC地址:
数据链路层包含2个子层:逻辑链路控制( LLC )和介质访问控制( MAC )。MAC 子层决定该层的硬件地址,这个地址是和网络无关的,所以无论将那个硬件插入到网络的何处,它有相同的MAC 地址(也就是MAC地址不随网络的改变而改变),无论网络地址是什么。 供应商通常指定其产品的MAC 地址。在Ethernet 策略中,将一系列的Ethernet MAC 地址分配给供应商, 然后它们将不同的地址分配给生产的每个接口。
Ethernet MAC 地址包含12 位。前面的6 位(组织标识符或OUI )是由IEEE 分配给供应商的特定的编号,剩下的6 位是系列号。这样的结果就是,每个网络接口插件可以在任何给定的局域网或广域网上有不同的MAC 地址。
交换原理:
MAC地址表显示了主机的MAC地址与以太网交换机端口映射关系,指出数据帧去往目的主机的方向。当以太网交换机收到一个数据帧时,将收到数据帧的目的MAC地址与MAC地址表进行查找匹配。如果在MAC地址表中没有相应的匹配项,则向除接收端口外的所有端口广播该数据帧,有人将这种操作翻译为泛洪(Flood,泛洪操作广播的是普通数据帧而不是广播帧)。在我们测试过的交换机中,有的除了能够对广播帧的转发进行限制之外,也能对泛洪这种操作进行限制。
而当MAC地址表中有匹配项时,该匹配项指定的交换机端口与接收端口相同则表明该数据帧的目的主机和源主机在同一广播域中,不通过交换机可以完成通信,交换机将丢弃该数据帧。否则,交换机将把该数据帧转发到相应的端口。
交换机还将检查收到数据帧的源MAC地址,并查找MAC地址表中与之相匹配的项。如果没有,交换机将记录该MAC地址和接收该数据帧的端口,并激活一个定时器。这个过程被称作地址学习。由于有限的物理存储器,所有的交换机只能学习到2的48次幂中的一个很小子集,所以交换机只学习那些活动的MAC地址(不同的厂商的不同设备,其MAC地址的容量也是不相同的,MAC地址的容量也是交换机的一个比较重要的指标),这个定时器一般就是我们在配置交换机时的Age Time选项,一般我们都可以配置这一定时器的时间长度。在定时器到时的时候,该项记录将从MAC地址表中删除,这叫做老化(Aging)。而如果接收的数据帧的源MAC地址在MAC地址表中有匹配项,交换机将复位该地址的定时器。
如果交换机不能够正确的学习MAC地址,则有可能造成数据包丢失还有泛洪现像的发生,特别是大量泛洪现像发生会影响交换机的转发性能,类似广播风暴对交换机的影响。