网络的可用性可以从故障率、可恢复性和鲁棒性三方面来衡量:故障率是指
在给定的时间里,网络故障和维护事件出现的次数;可恢复性是指网络从故障状态
恢复到正常状态的能力;而鲁棒性是指网络检测和处理故障的能力以及在各种故障
情况下仍然具有的工作能力。由于网络是业务系统的承载体,网络的高可用性是为
了保障业务系统的高可用性。所以在网络发生故障的情况下,如何迅速检测到故障
并且让网络尽快恢复传递能力,使得所承载的企业业务系统具有高可用性是网
络高可用性设计的首要目标。网络冗余容错技术可以保持网络在故障情况下的工作
能力也即实现网络的鲁棒性,是网络高可用性的主要技术。具体的来说,可以通过
网络设备、网络链路、路径控制信息的冗余容错,使得网络故障发生时,网络可
以无缝地切换到冗余设备或链路,从而保持网络的传递能力。其中网络的控制平面
要做到平滑的切换,尽可能减少控制信息的丢失;而网络的转发平面要做到快速切
换,尽可能减低切换时延,减少包丢失。可通过以下几种方法实现网络的高可用
性。
一、服务器群集(LB、HA、HP)
(待续。。。)
二、路由设备(HSRP、VRRP)
请参考本人博客:HSRP简介及配置案例http://caoruijun.blog.51cto.com/5544226/964975 和 VRRP简介及配置案例http://caoruijun.blog.51cto.com/5544226/965113。
三、网络接口(bond)
请参考本人博客:Linux下的多网卡Bonding http://caoruijun.blog.51cto.com/5544226/962632。
四、链路备份(LAN、WAN)
1、LAN环境(STP、RSTP、MSTP、端口聚合)
STP(生成树协议,Spanning-tree Protocol)是一个二层管理协议。在一个扩
展的局域网中参与STP的所有交换机之间通过交换桥协议数据单元bpdu(bridge
protocol data unit)来实现;为稳定的生成树拓扑结构选择一个根桥;为每个交换网
段选择一台指定交换机;将冗余路径上的交换机置为blocking,来消除网络中的环
路。
IEEE 802.1d是最早关于STP的标准,它提供了网络的动态冗余切换机制。STP使
您能在网络设计中部署备份线路,并且保证:
* 在主线路正常工作时,备份线路是关闭的。
* 当主线路出现故障时自动使能备份线路,切换数据流。
RSTP(快速生成树协议,rapid spanning Tree Protocol ):802.1w由
802.1d发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。它比802.1d
多了两种端口类型:预备端口类型(alternate port)和备份端口类型。 STP
(Spanning Tree Protocol )是生成树协议的英文缩写。该协议可应用于环路网络,
通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避
免报文在环路网络中的增生和无限循环。
RSTP是从STP发展过来的,其实现基本思想一致,但它更进一步的处理了网络
临时失去连通性的问题。RSTP规定在某些情况下,处于Blocking状态的端口不必经历
2倍的Forward Delay时延而可以直接进入转发状态。如网络边缘端口(即直接与终端
相连的端口),可以直接进入转发状态,不需要任何时延。或者是网桥旧的根端口
已经进入Blocking状态,并且新的根端口所连接的对端网桥的指定端口仍处于
Forwarding状态,那么新的根端口可以立即进入Forwarding状态。即使是非边缘的指定
端口,也可以通过与相连的网桥进行一次握手,等待对端网桥的赞同报文而快速进
入Forwarding状态。当然,这有可能导致进一步的握手,但握手次数会受到网络直径
的限制。
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定
义的一种新型生成树协议。简单说来,STP/RSTP是基于端口的,而MSTP是基于实
例的。与STP/RSTP和PVST+相比,MSTP中引入了“实例”(Instance)和“域”
(Region) “的概念。
所谓“实例”就是多个VLAN的一个集合,这种通过多个VLAN捆绑到一个实例
中去的方法可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算是独立的,
在这些实例上就可以实现负载均衡。使用的时候,可以把多个相同拓扑结构的VLAN
映射到某一个实例中,这些VLAN在端口上的转发状态将取决于对应实例在MSTP里
的转发状态。
所谓“域”,由域名(Configuration Name)、修订级别(Revision Level)、格式
选择器(Configuration Identifier Format Selector)、VLAN与实例的映射关系
(mapping of VIDs to spanning trees),其中域名、格式选择器和修订级别在BPDU报文中
都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息
(Configuration Digest),该摘要是根据映射关系计算得到的一个16字节签名。只有
上述四者都一样且相互连接的交换机才认为在同一个域内。缺省时,域名就是交换
机的桥MAC地址,修订级别等于0,格式选择器等于0,所有的VLAN都映射到实例0
上。
MSTP的实例0具有特殊的作用,称为CIST(Common Internal Spanning
Tree),即公共与内部生成树,其他的实例称为MSTI(Multiple Spanning Tree
Instance),即多生成树实例。CIST由通过STP/RSTP计算得到的单生成树和MSTP
计算得到的域组成,是为了保证在所有桥接的局域网是简单的和全连接的。CST
(Common Spanning Tree)是STP/RSTP也是MSTP计算出的用于连接MST域的单生成
树。IST(Internal Spanning Tree)是在一个给定的MST域内由CIST提供的连通性,是
CIST在MST域内的片段,是一个特殊的多生成树实例。
链路聚合是将两个或更多数据信道结合成一个单个的信道,该信道以一个单个的
更高带宽的逻辑链路出现。链路聚合一般用来连接一个或多个带宽需求大的设备,
例如连接骨干网络的服务器或服务器群。如果聚合的每个链路都遵循不同的物理路
径,则聚合链路也提供冗余和容错。通过聚合调制解调器链路或者数字线路,链路聚
合可用于改善对公共网络的访问。链路聚合也可用于企业网络,以便构建主干链路。
采取链路聚合后,逻辑链路的带宽增加了大约(n-1)倍,这里n为聚合的路数。另
外,聚合后,可靠性大大提高,因为n条链路中只要有一条可以正常工作,则这个链
路就可以工作。除此之外,链路聚合可以实现负载均衡。因为通过链路聚合连接在
一起的两个(或多个)交换机(或其他网络设备),通过内部控制,也可以合理地
将数据分配在被聚合连接的设备上,实现负载分担。
因为通信负载分布在多个链路上,所以链路聚合有时称为负载平衡。但是负载平
衡作为一种数据中心技术,利用该技术可以将来自客户机的请求分布到两个或更多的
服务器上。聚合有时被称为反复用或IMUX。如果多路复用是将多个低速信道合成为
一个单个的高速链路的聚合,那么反复用就是在多个链路上的数据“分散”。它允许
以某种增量尺度配置分数带宽,以满足带宽要求。链路聚合也称为中继。
二、WAN环境
浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大
的静态路由,保证网络中主路由失效的情况下,提供备份路由。但在主路由存在的
情况下它不会出现在路由表中。浮动静态路由主要用于拔号备份。
案例
拓扑图:
配置过程:
R1:
[R1]int e0
[R1-Ethernet0]ip add 192.168.1.1 24
[R1-Ethernet0]int s0
[R1-Serial0]ip add 1.1.1.1 24
[R1-Serial0]int s1
[R1-Serial1]ip add 2.1.1.1 24
[R1-Serial1]quit
[R1]ospf enable
[R1-ospf]quit
[R1]int e0
[R1-Ethernet0]ospf enable area 0
[R1-Ethernet0]int s0
[R1-Serial0]ospf enable area 0
[R1-Serial0]quit
[R1]ip route-static 192.168.2.0 24 2.1.1.2 preference 66
R2:
[R2]int e0
[R2-Ethernet0]ip add 192.168.2.1 24
[R2-Ethernet0]int s0
[R2-Serial0]ip add 1.1.1.2 24
[R2-Serial0]shut
[R2-Serial0]undo shut
[R2-Serial0]int s1
[R2-Serial1]ip add 2.1.1.2 24
[R2-Serial1]shut
[R2-Serial1]undo shut
[R2-Serial1]quit
[R2]ospf enable
[R2-ospf]quit
[R2]int e0
[R2-Ethernet0]ospf enable area 0
[R2-Ethernet0]int s0
[R2-Serial0]ospf enable area 0
[R2-Serial0]quit
[R2]ip route-static 192.168.1.0 24 2.1.1.1 preference 66
测试结果:
路由信息:
为了提高网络的可靠性,VRP 使用备份中心来提供完善的备份功能:可被备份的
接口称为主接口。路由器上的任意一个物理接口或子接口都可以作为主接口,任意一个
接口上的某条逻辑通道如X.25 或帧中继的虚电路也可以作为主接口。为其它接口作备
份的接口称为备用接口。路由器上的任意一个物理接口或接口上的某条逻辑通道都可以
作为其它接口或逻辑通道的备用接口。对一个主接口,可为它提供多个备用接口;当主
接口出现故障时,多个备用接口可以根据优先级来决定接替顺序。
具有多个物理通道的接口(如ISDN BRI 和ISDN PRI 接口)可以通过Dialer
Route 来为多个主接口提供备份。备份中心支持备份负载分担功能。当备份链中所有
活动接口的流量达到设定的门限上限时,路由器启动一个优先级最高的可用备用接口,
同主接口一起进行负载分担;当备份链中所有活动接口的流量小于设定的门限下限时,
路由器关闭一个优先级别最低的备用接口。
案例
拓扑图:
配置过程:
R1:
[R1]int e0
[R1-Ethernet0]ip add 192.168.1.1 24
[R1-Ethernet0]int s0
[R1-Serial0]ip add 1.1.1.1 24
[R1-Serial0]int s1
[R1-Serial1]ip add 2.1.1.1 24
[R1-Serial1]quit
[R1]ip route-static 192.168.2.0 24 1.1.1.2
[R1]ip route-static 192.168.2.0 24 2.1.1.2
[R1]int s0
[R1-Serial0]standby interface s1
[R1-Serial0]standby timer enable-delay 10
[R1-Serial0]standby timer disable-delay 10
[R1-Serial0]quit
R2:
[R2]int e0
[R2-Ethernet0]ip add 192.168.2.1 24
[R2-Ethernet0]quit
[R2]int s0
[R2-Serial0]ip add 1.1.1.2 24
[R2-Serial0]shut
[R2-Serial0]undo shut
[R2-Serial0]int s1
[R2-Serial1]ip add 2.1.1.2 24
[R2-Serial1]shut
[R2-Serial1]undo shut
[R2-Serial1]quit
[R2]ip route-static 192.168.1.0 24 1.1.1.1
[R2]ip route-static 192.168.1.0 24 2.1.1.1
[R2]int s0
[R2-Serial0]standby interface s1
[R2-Serial0]standby timer enable-delay 10
[R2-Serial0]standby timer disable-delay 10
[R2-Serial0]quit
测试结果:
查看路由信息:
测试PC1与PC2通信,并跟踪路由:
关闭S0并测试PC1与PC2的通信,跟踪路由:
PPP Multilink协议(MP)是PPP(点对点协议)的扩展,它具有绑定两条或多条同
步并行连接的能力。所产生的虚拟连接拥有的带宽等于各条独立连接的带宽的总和。在
PPP协议中,可以将多个PPP链路捆绑起来,形成一条宽更大的PPP链路,成为PPP
Multilink,即多链路PPP。
多链路PPP通常应用在用户原有的PPP链路带宽要够,然后又申请看一条新PPP链路
的情况下。为了达到不对原有的配置进行的更改,而且两条PPP链路均能被利用的目
的,可以使用多链路PPP技术。当在路由器上配置了多链路PPP之后,相当于在路由器
上形成了一个新的PPP多链路接口(Multilink-group Interface)。此接口包含其他的
普通PPP接口,关于PPP协议的各种配置。如IP地址等均在此PPP模板接口上配置即可。
这样,对于路由器来说就相当于有一个大带宽的PPP接口。
多链路捆绑具有如下优点:
(1)增加带宽;
(2)负载分担;
(3)利用分片降低时延;
(4)多链路冗余。
案例
拓扑图:
配置过程:
R1:
[R1]int e0
[R1-Ethernet0]ip add 192.168.1.1 24
[R1]interface virtual-template 1
[R1-Virtual-Template1]ip add 12.12.12.1 24
[R1-Virtual-Template1]int s0
[R1-Serial0]ppp mp int vir 1
[R1-Serial0]ppp mp
[R1-Serial0]int s1
[R1-Serial1]ppp mp int vir 1
[R1-Serial1]ppp mp
[R1-Serial1]quit
[R1]ip route-static 192.168.2.0 24 12.12.12.2
R2:
[R2]int e0
[R2-Ethernet0]ip add 192.168.2.1 24
[R2-Ethernet0]quit
[R2]interface virtual-template 1
[R2-Virtual-Template1]ip add 12.12.12.2 24
[R2-Virtual-Template1]int s0
[R2-Serial0]ppp mp int vir 1
[R2-Serial0]ppp mp
[R2-Serial0]int s1
[R2-Serial1]ppp mp int vir 1
[R2-Serial1]ppp mp
[R2-Serial1]quit
[R2]ip route-static 192.168.1.0 24 12.12.12.1
测试结果:
查看路由表:
关闭S0并测试PC1与PC2通信: