【网络实验十一】网络的冗余配置

网络的冗余配置

一、实验介绍

除了在小型网络或者经费不允许的情况下,我们在网络的规划与设计的时候时刻都应该考虑网络的强健壮性,尽可能的避免单点故障的发生,所以在每个网络的关键节点位置我们都会做网络的冗余配置,使得即使某个节点出问题时,用户也感知不到。

1.1 实验涉及的知识点

  • 交换冗余
  • 路由冗余
  • 网关的冗余
    • VRRP
    • HSRP
    • GLBP
  • 链路的冗余
    • Etherchannel
  • STP 的灵活使用

网络的冗余.png

二、交换冗余

在交换网络中我们可以用到的冗余技术,主要分为两大方面:

  • 硬件方面
    • 电源冗余
    • 引擎冗余
    • 模块冗余
    • 设备堆叠
  • 软件方面
    • STP 的使用
    • EtherChannel

为了防止核心层交换机断电导致网络的大规模瘫痪,通常情况下会采取双电源的冗余机制,由芯片控制电源进行负载均衡,在一个电源出故障时可以马上接替,防止出现网络的故障。

引擎的冗余,交换引擎是交换机的核心,所以在核心层中通常也会扩展引擎。

设备的堆叠是一种非常常见的交换机扩展,分清级联与堆叠的差别:

  • 级联:是使用双绞线通过交换机的端口与其他交换机相连,从而实现网络连接距离的增加,但是管理很麻烦,而且容易产生链路瓶颈。
  • 堆叠:是使用专用的堆叠端口与堆叠线,将交换机直接的背板连接在一起,堆叠只能在相同厂家的同类型设备直接进行,几台堆叠的交换机在逻辑上可以看作一台设备来使用,这是电源、引擎、模块的多重冗余。

堆叠

这就是堆叠,在堆叠的时候还需要简单的几条命令配置,配置方式可以参看这篇文章

这是在硬件层次上的冗余,而在软件层次上的冗余便是 STP 的使用与 Etherchannel。

三、路由冗余

静态的路由冗余在我们讲解静态路由时最后一点略有提及,还记得吗?

路由的冗余主要是对于路由条目的冗余配置,在静态路由章节我们所配置的浮动静态路由,因为它存在的作用就是在主静态路由失效的时候能够为设备指出一条可用的备路径。

这就是静态路由中的冗余配置,因为一般在小型网络中才会使用静态路由,所以一般浮动路由用得也不是太广泛。

而在动态路由中如 RIP、OSPF 的冗余是不需要过多的配置的,因为动态路由都是通过端口的活动状态来自动学习、添加路由条目,所以当链路中有冗余的路径可达目的地它们都会自动学习到。

无论是 RIP 与 OSPF 这些动态路由协议都是支持负载均衡的功能,只要存在多条线路便会通过算法为他们实现冗余与负载均衡,所以若是使用动态路由协议我们无需做多余的配置,只要注意在网络规划时为其设计一条备用的线路即可。

四、网关的冗余

4.1 功能简介

还记得网关是什么吗?它是你从该网段与另外一个网段通信的大门,通常来讲网关的配置有两种:

  • 手动的为设备配置网关的 IP 地址;
  • 使用 DHCP 为设备配置网管的 IP 地址。

DHCP是一个应用层的协议,全称是 Dynamic Host Configuration Protocol,动态主机配置协议。网内每新增一台主机、终端设备就去手动配置很麻烦,所以就出现了 DHCP。其主要的功能便是有一台转发的设备作为 DHCP 服务端,他有很多的 IP 地址,网内可用的 IP 地址都让他去管理,每增加一台设备让他们在网内广播发出请求,DHCP 服务端就给他分配一个 IP 地址,主机收到之后,就自动的将收到的 IP 地址与网管配置好。

在终端设备中一旦配置好了网关一般情况下不会变动,如果是这样的话,一旦作为网关的设备若是出现故障了怎么办?网内的主机将无法与外网通信。等我们去修复或者提前配置好备用的网关只要主网关一旦出现问题便替换上,但是中间这等待的时间用户体验是很不好的,而且我们也很难在第一时间便发现问题。

由此出现了这样的解决方案来解决这样的问题:

创建一个虚拟的网关,而在这个虚拟背后有两个真正的网关,平时只有一个在工作,一旦工作的网关倒下了,另一个网关马上就出来接替的工作了,因为大家配置的是虚拟的那个网关所以并不知道谁倒下了,也不会感知到网络出现了问题。

这样的讲解或许有些抽象,我们可以这么来理解:

每个小区的门口都会有一个保安,我们不知道他真正叫什么名字但是他们有一个统称叫做保安,在没有带门卡的时候他会为我们开门。今天保安1值班为我们开门,明天保安1休息或者是病倒了有保安2接替他,做他的工作,为我们开门的这个功能并没有因为保安1的停止工作而断掉,我们也没有感知到保安1出现故障,只知道保安在,有人为我开门。

这里的保安就像网关,对外宣称这里有一个网关,大家来用,至于是谁是哪台设备在提供功能用的人并不会关心只是知道网络一直畅通。这就是网关冗余所带来的功能。

而实现这项功能的主要是这样的一些协议:

  • VRRP:Virtual Router Redundancy Protocol,虚拟路由冗余协议,由 IETF 在颁布的 RFC 5798中有所描述,这是一个标准的开放协议,所有的厂家设备都会支持该协议;
  • HSRP:Hot Standby Router Protocol,热备路由协议,是由思科自主研发的协议,所以该协议是思科的专有协议,在其他厂家的设备上并不支持;
  • GLBP:Gateway Load Balancing Protocol,网关负载均衡协议,这也是由思科自主研发的协议,所以该协议也是思科的专有协议,在其他厂家的设备上不支持该功能。

这三个协议都是为了实现网关的冗余,但是在功能实现上分为两类:

  • VRRP,HSRP 的工作原理相差不大,实现的是一个主网关,一个备用网关。平时只有主网关在工作,备用网关处于休息状态,只有在主网关出现问题时,备用网关才会出来工作。
  • GLBP 重点在于网关的负载均衡,也就是说同一时间两个网关都处于工作状态,并且会自动实现负载均衡,也就是所有到这两个网关的请求不会全部压在同一台设备上,GLBP 会把这些请求平均分摊在两台设备上

这样的协议都有一个统称叫第一跳冗余协议。

因为在主机上所设置的默认网关是通向其他网络的第一步,也是主机离开网络之后的到达的第一个路由设备,所以叫做第一跳,该协议就是为了有一个候补设备能够在出问题的时候接替其工作叫做冗余。所以这样的协议也叫做的第一跳冗余协议(FHRP,First Hop Redundancy Protocol)

4.2 工作流程

VRRP 相对与 HSRP 来说较为简单一点,所以我们从 VRRP 来入手学习 FHRP。

在 VRRP 中有三种状态:

  • Initialize:初始化状态,在该状态的下,VRRP 为不可用,此时的设备处于刚刚启动或者设备检测到了故障。
  • Master:主路由的状态,在该状态下的设备为主要的工作设备。
  • Backup:备路由的状态,在该状态下的设备处于闲置状态,也就是说此时的设备并没有太多的任务需要做。

他们的简单工作过程是这样的:

对终端有一个虚拟网关,终端设置网关时便设置为虚拟网关的 IP 地址,而在虚拟网关后有多台设备,Master 设备作为主要工作者,他会告诉所有设备此时他是领导者,他的 IP 地址、Mac 地址是多少,只要发到虚拟网关的数据包都发送给他,由他转发。一旦 Master 故障了,Backup 马上接替工作告知其他设备,今天它是领导,所有发往虚拟网关的数据包都给他。

VRRP-通信过程.png

具体的工作流程是这样的:

1.开启功能

在设备启动了 VRRP 功能之后,设备进入初始化的状态。当连接其他设备的接口处于 UP 的状态之后,设备会先查看自己的优先级值,若是小于 255 则首先将自己切换到 Backup 的备份状态。

2.切换第一个状态

在启动了 VRRP 之后有一个 Master_Down_Interval 计时器也随之启动开始计时(因为主路由一旦启动便会主动的为备用路由发送消息,告知它还是正常的,若是备用路由有一段时间没有收到这样的消息了,他就会发包去询问主路由的情况如何,而这个计时器便是计算这个时间间隔所用的),在 VRRP 中该时间的默认值为 3 秒,计时器一旦超时了便会认为网络中的 Master 的失效了、不工作了、偷懒了或者是故障了。

所以它很敬业的将自己切换成 Master 状态,并发送通告告诉大家,以前的主路由失效了,以后收到的数据包都转发给我,同时通过 VRRP 的报文信息与其他开启了 VRRP 功能的设备交互来获取其他成员的优先级,由此来选取 Master 看是否有更适合成为 Master 的设备。

所谓的其他成员,是因为在 FHRP 它的功能就是将多台物理设备配置成一台的逻辑设备,让外人感知是一台设备,其实是有一个工作小组,通常将这多台的物理设备称之为工作组

3.选举 Master

同一个工作组的其他设备收到 VRRP 的通告之后就会获取报文中的信息由此来做这样的判断(假设其他设备处于 Backup 的状态,下文讨论 Master 的状态):

  • 收到的报文中设备的优先级高于自己的优先级,并且自己此时本就是 Backup 的状态,便保持状态不变
  • 收到的报文中设备的优先级低于自己的优先级,便去检查自己是否开启了抢占模式:
    • 若是自己开启了抢占模式,那么将自己切换成 Master 的状态
    • 若是自己没有开启抢占模式,并且此时自己又是 Backup 的状态,那么则保持状态

一般在配置时有先后顺序,首先配置的设备按照这样的过程便成为了 Master。但是若是同一个工作组中有多台设备,而设置又是同时配置,那么此时会出现这样的特殊情况,一开始大家都没有收到 Master 的通过(因为大家都处于 Backup 的状态),所以大家都切换成 Master 的状态,然后相互发送通告。

此时一个工作中有多台 Master,他们相互发送通告,其他设备在收到通告之后同样对比自己的优先级:

  • 通告中 Master 设备的优先级高于自身设备的优先级,则将自己修改为 Backup 的状态;
  • 通告中 Master 设备的优先级低于自身设备的优先级,保持状态,不做任何的改变;
  • 通告中 Master 设备的优先级与自身设备的优先级相同,那么便对比 Master 的 IP 地址:
    • 若是对方 IP 地址大于自己的 IP 地址那么将自己切换成 Backup 的状态
    • 若是对方 IP 地址小于自己的 IP 地址那么将保持自己的 Master 状态

当然这里还有这样的一种特殊情况就是虚拟网关的 IP 地址就是他自身的 IP 地址,那么经过初始化状态状态之后直接将自己切换为 Master 状态。

4.发送通告

通过上述的选举过程工作组中选出了唯一的一台 Master 设备。

注意:一个工作组中只能有一台 Master 设备,正所谓一山不容二虎嘛。

作为 Master 的设备会非常的繁忙,他们会做这样的人一些事情:

  • 只要发送向虚拟 IP 地址的 ARP 请求都会转发给他,由他做出响应。
  • 如果发送向虚拟 IP 地址的 IP 数据报文请求,他会直接丢包,因为是虚拟 IP 地址,是逻辑意义上的一台设备,但是若是这个虚拟 IP 地址就是其本身的 IP 地址,他会以自己的身份去响应。
  • 在局域网中是通过数据帧传递消息,通过 MAC 地址找到这台虚拟网关设备,需要通过他转发数据与其他网络通信,Master 负责转发数据

最后 Master 还有意见最重要的事情需要做,就是定时的向其他设备发送通告,在通告中富含有设备的优先级情况以及自己的工作状态,其他的备用设备收到通告之后由此来判断设备能否胜任工作。

其中这个定时的时间间隔叫做 Advertisement_Interva 通告区间。有个 Timer 来计时,一旦超时就发送通告然后重置 Timer,如此反复。其默认值是一秒。

5.Master 的变化

当 Master 因为负载过高或者其他等等的情况会主动放弃 Master 的状态,此时 Master 发送的通告中会将自己的优先级设置为 0。这样备份设备收到数据包之后就会将自己切换成 Master。而通过这样情况来切换成 Master 的时间叫做 Skew time。这个时间的值:Skew time=(256-备份设备的优先级值)/256

还有一种情况也就是 Master 设备真的出故障了,没办法工作了。Backup 设备中的 Master_Down_Interval 计时器超时了,便知道主设备无法工作了,因为他都没有办法给我发送报文了肯定是出事了,所以会将自己切换成 Master。而上文中说它的默认值是 3s,其实是通过这样计算得来的:

 

MasterDownInterval=(3∗AdvertisementInterval)+SkewtimeMaster_Down_Interval = (3 * Advertisement_Interval ) + Skew_time

其中 skew time 值太小,一般情况下忽略不记了。而为什么是 3 个通告时间间隔呢,因为可能出现网络延时的情况,若是直接 1s 就认为主设备无法工作了,就切换状态,过了一会儿有收到了通告看到自己的优先级不够又切换回去,这样频繁的切回状态并不是一个好的现象,使得网络非常的不稳定。所以是三个通告时间的间隔。

这就是 VRRP 运行的整个过程:启动、选举、正常工作、切换状态。

VRRP-具体过程.png

VRRP 支持 255 个虚拟路由分组,通过 224.0.0.18 组播地址发送通告。

HSRP 的通信过程与原理和 VRRP 相差不大,基本相同,但是一些规则、状态、默认值上与 VRRP 有所差别。在通告时间上间隔是 3 秒钟,认为主路由不能工作的时间是 10 秒,同样支持 255 个分组,组播地址是 224.0.0.102(这是Version 2 的地址,Version 1 的地址是 224.0.0.2) ,同时在 HSRP 中虚拟网关的 IP 地址不能是设备中的某一台

在 VRRP 中是 Master 与 Backup 设备的区分,HSRP 中是 Active(相当于 Master) 与 Standby(相当于 Backup)还有候选路由处于 Listen 的状态。

同时 HSRP 不仅仅是 3 个状态,其拥有 6 个状态:

  • Initial:同样是初始化状态,为刚刚启动设备进程时候的状态;
  • Learn:学习状态,路由器还没有确定虚拟IP地址,还没有从活动路由器上看到已验证的消息。在这个状态下,路由器仍然在等待来自活动路由器的消息。
  • Listen:监听状态,此时知道 IP 地址,但是整组中没有主路由与备份路由,只是监听链路中有没有通告消息(一般称之为 Hello 消息,因为都是通知自己的相关信息)
  • Speak:宣告状态,路由器发送定期的消息,只有拥有虚拟 IP 地址的设备可以进入这个状态
  • Standby:备用路由,在主路由故障的时候能够成为主路由的设备
  • Active:活动路由,也就是 VRRP 中的主路由,主要任务的承担着。

这便是 VRRP 与 HSRP 的活动过程,而 GLBP 因为是后期才出现的协议,在很大一部分设备并不能很好的支持,使用的并不是那么的广泛,所以此处不做过多的深入讲解。

4.3 基本配置

知道了 VRRP 的通信原理之后,VRRP 的相关配置其实就很简单了。我们通过这样的一个实验来实际体验 VRRP 的功能。

  • 实验目的:配置实现 VRRP
  • 实验材料:三台路由器以及两台交换机
  • 实验方法:
    • 拖动三台路由器以及两台交换机(其中一台用作模拟 PC,与之前的实验一样),
    • 配置路由器与交换机的名字与连接线路
    • 配置路由器的端口地址
    • 配置未使用 VRRP 的情况
    • 配置 VRRP 路由组,以及 PC 的默认网关
    • 看能否平通其他网络
    • 关闭主路由再次尝试

1.依照惯例,打开终端,使用终端开启 GNS3 并且拖动实验要求的设备与连接线路以此来做好准备工作。

vrrp-topo.png

2.准备好拓扑图之后,我们就按照图中的要求配置好各个端口上的 IP 地址,以及相应的配置。

首先我没配置没有使用 VRRP 的情况,是否在默认网关挂掉之后 PC 便无法与外界的其他网段通信了(后面所使用过的代码在以前的试验中都有使用过所以不再配有注释):

## Router config code
Router1#conf t

#Router 的 IP 地址配置

Router1(config)#int lo 0

Router1(config-if)#ip add 202.203.1.1 255.255.255.0

Router1(config-if)#no sh

Router1(config-if)#exit

Router1(config)#int e0/0

Router1(config-if)#ip add 202.204.1.2 255.255.255.0

Router1(config-if)#no sh

Router1(config-if)#exit

Router1(config)#int e0/1

Router1(config-if)#ip add 202.205.1.2 255.255.255.0

Router1(config-if)#no sh

Router1(config-if)#exit

# Router 的 路由协议配置

Router1(config)#router ospf 10

Router1(config-router)#network 202.203.1.0 255.255.255.0 area 0

Router1(config-router)#network 202.204.1.0 255.255.255.0 area 0

outer1(config-router)#network 202.205.1.0 255.255.255.0 area 0

Router1(config-router)#exit

## Router2 config code

Router2#conf t 

Router2(config)#int e0/0

Router2(config-if)#ip add 202.204.1.1 255.255.255.0

Router2(config-if)#no sh 

Router2(config-if)#exit

Router2(config)#int e0/1

Router2(config-if)#ip add 192.168.1.2 255.255.255.0

Router2(config-if)#no sh 

Router2(config-if)#exit

Router2(config)#router ospf 10

Router2(config-router)#network 202.204.1.0 255.255.255.0 area 0

Router2(config-router)#network 192.168.1.0 255.255.255.0 area 0

Router2(config-router)#exit

Router2(config)#ip routing

Router2(config)#no ip cef


## Router3 config code

Router3#conf t 

Router3(config)#int e0/0

Router3(config-if)#ip add 202.205.1.1 255.255.255.0

Router3(config-if)#no sh 

Router3(config-if)#exit

Router3(config)#int e0/1

Router3(config-if)#ip add 192.168.1.3 255.255.255.0

Router3(config-if)#no sh 

Router3(config-if)#exit

Router3(config)#router ospf 10 

Router3(config-router)#network 202.205.1.0 255.255.255.0 area 0

Router3(config-router)#network 192.168.1.0 255.255.255.0 area 0

Router3(config-router)#exit

Router3(config)#ip routing

Router3(config)#no ip cef


## PC config code

PC#conf t 

PC(config)#int e0/0

PC(config-if)#no switch

PC(config-if)#ip add 192.168.1.4 255.255.255.0

PC(config-if)#no sh

PC(config-if)#exit

PC(config)#no ip routing

PC(config)#ip default-gateway 192.168.1.2

因为 Switch3 的作用是只是那里扩展端口、中继用的,并且默认所有的端口都是打开的,所以并不需要做任何的配置,可以直接使用。

配置好之后,我们可以尝试使用 PC 去 ping 路由的环回端口,这样可以知道目前为止我们的配置都没有问题,同时也能够验证此时的网关在正常的工作:

vrrp-test-gateway-work.png

此时我们若是断掉作为网关的 Router2 的 e0/1 端口

Switch1#conf t
Switch1(config)#int e0/1 
Switch1(config-if)#sh

novrrp-shutdown-gateway.png

此时我们再去使用 PC 尝试 ping 路由器上的环回接口地址。

novrrp-cant-ping.png

这就是单点故障的问题,要从根本上解决这个问题,唯一的办法就是冗余配置,或者机器永远不出故障。永远不出故障谁也不能保证,所以只能冗余配置,又不能去修改终端设备的网管,因为设备一旦多了不可能一台台去修改的。

3.配置 VRRP

此时我们来配置 vrrp 来验证冗余配置所带来的效果:

## Router2 config code for vrrp

#进入全局模式
Router2#conf t

#配置与交换机相连接的端口
Router2(config)#int e0/1

#配置 vrrp 组一,以及虚拟 IP 地址
Router2(config-if)#vrrp 1 ip 192.168.1.1

#配置 vrrp 组一再该设备与改端口的优先级
Router2(config-if)#vrrp 1 priority 100

#开启抢占模式
Router2(config-if)#vrrp 1 preempt

#激活端口
Router2(config-if)#no sh 

Router2(config-if)#exit


## Router3 config code for vrrp

#进入全局模式
Router3#conf t

#配置端口
Router3(config)#int e0/1

#将该端口配置入 vrrp 的第一组,同时配置该组的虚拟 IP 
Router3(config-if)#vrrp 1 ip 192.168.1.1

#配置该组中此设备的该端口的优先级
Router3(config-if)#vrrp 1 priority 80

#同时开启抢占模式
Router3(config-if)#vrrp 1 preempt   

#激活端口
Router3(config-if)#no sh 

Router3(config-if)#exit

开启了抢占模式之后,一旦原 Master 设备回复正常能在第一时间将自己修改为 Master,把当前替补的设备踢回 Backup 的状态。

我们可以通过 show vrrp 命令来查看 vrrp 的相关工作情况。

我们可以看到此时的 Router2 因为优先级为 100 高于 Router3 中的优先级 80。所以 Router2 作为此时 VRRP 第一组的 Master。

vrrp-show-master-backup.png

4.验证 VRRP

此时我们可以看到 PC 去 ping Router1 中的环回接口是可以通信的:

vrrp-test-gateway-work.png

然后我们到 Router2 上停止此时的 Master 端口,同时可以看到 Router3 设备的 VRRP 已经成为 Master,同时 PC 依然可以 ping 通 Router1 中的环回接口:

vrrp-show-test-reault

由此我们便解决了单点故障所带来的问题。这便是网关的冗余配置,VRRP 协议。HSRP 的配置与 VRRP 相差不大,只需要将配置中的 VRRP 命令全部修改为 standby 命令,例如:

Router2(config-if)#standby 1 ip 192.168.1.1

注意:

  1. VRRP 中虚拟路由的 IP 地址可以是端口自己的 IP 地址,但是在 HSRP 中是不支持的。
  2. 按理来说开启了三层路由功能的交换机同样也可以 VRRP 的实验但是我们的 switch IOU 镜像有 BUG,所以本实验使用的是路由来做该实验。

从之前的的 RIP 与 OSPF 中我们可以看到为了网络的安全,以防不知名的恶意设备攻击,可以做认证的配置,VRRP 与 HSRP 同样支持认证,与之前的配置的方法类似,感兴趣的同学可以尝试(提示使用 ? 来获得命令的提示)

五、链路的冗余

5.1 功能的介绍

我们一直在说避免单点故障,但是我们回过头看一下,好像我们的交换机与交换机之间的连接,路由器与路由器直接的连接都是单链路,难道这样就不会发生单点故障吗?

答案是会的,不仅我们想得到这个问题,开发商们也同样想到这样的问题,所以 Cisco 作为带头大哥研发出了 Etherchannel 技术来弥补这样的缺点,解决这样的问题。

所谓了 Etherchannel 到底有什么样的功能?在两台设备之间使用两条链路连接,然后将这两条物理链路使用软件将其捆绑成一条链路,在逻辑上他们作为一条链路来使用,从而在使用的时候就像 1 + 1 = 2 一样的功能增幅,使得带宽增加、可以做到负载均衡,同时若是一条链路出故障了也不会影响链路的使用。

这就是 Etherchannel,通常称之为链路聚合、链路捆绑,使用的协议也有两种:

  • PAgP 协议(Port Aggregation Protocol):这是思科的专有协议
  • LACP 协议(Link Aggregation Control Protocol):链路汇聚控制协议,这是由 IEEE 所出台的协议。

5.2 工作流程

在 Etherchannel 中若是使用 PAgP 协议有三种开启此功能的模式:

  • Auto:被动等待对端发送 PAgP 请求,本端不主动发送请求,如果两端的模式都是 Auto,那么将无法形成 EtherChannel。
  • Desirable:主动向对端发送 PAgP 请求建立 EtherChannel,对端为 Auto 或 Desirable 都等建立 EtherChannel。
  • On:强制跟对端建立EtherChannel,而不用经过PAgP进行协商,注意此模式并不推荐使用。

另外还有一个可选的参数叫做非静默模式(Non-Silent),如果在配置的时候不加Non-Silent,表示当前在运行PAgP的时候是基于静默模式(Silent)。

这并不是一个太难的知识点,主要在于使用哪种协议使得两边相对的端口拥有相同的配置,可以协同工作,因为的 GNS3 的 IOU 问题对该功能的实现有一定的 BUG,在 Auto 与协商模式下可能产生不同的问题,所以我们一般使用 on 模式来强制开启他们的工作,不过在实际的生产环境中并不推荐这样做。

若是有兴趣的同学可以参看异步社区的这篇文章或者这篇博文来快速了解 Etherchannel 相关的理论知识。若是英文还不错的同学看以查看官方的介绍文档,文档中对于 Etherchannel 的介绍与使用还是非常详细的。

5.3 基本配置

我们可以通过这样的实验来配置 Etherchannel,实现在 layer 2 与 layer 3 上的链路冗余:

  • 实验目的:配置实现 etherchannel
  • 实验材料:两台交换机
  • 实验方法:
    • 拖动两台交换机
    • 配置路由器与交换机的名字与连接线路
    • 配置 etherchannel
    • 验证 etherchannel

1.依照惯例,打开终端,使用终端开启 GNS3 并且拖动实验要求的设备与连接线路以此来做好准备工作。

etherchannel-topo1.png

2.准备好拓扑图之后,我们首先来配置 Switch 上的 etherchannel:

## Switch1 config code

#进入全局配置模式
Switch1#conf t

#同时配置 e0/0 与 e0/1 端口
Switch1(config)#int range e0/0-1

#首先关闭端口
Switch1(config-if-range)#sh

#配置端口成 trunk 模式时所使用的封装数据包模式
Switch1(config-if-range)#switch tr en do

#配置端口成 trunk 模式
Switch1(config-if-range)#swit mode tr

#将两个端口强制开启 etherchannel,并划分在第一个通道组,若是之前没有创建通道组,此时会帮你创建
Switch1(config-if-range)#channel-group 1 mode on

#会有这样的提示
Creating a port-channel interface Port-channel 1



Switch1(config-if-range)#ex

#进入该通道组进行配置
Switch1(config)#int port-channel 1

#同样设置成 trunk 模式
Switch1(config-if)#switch tr en do

Switch1(config-if)#swit mode tr

Switch1(config-if)#ex

#同时配置两个端口
Switch1(config)#int range e0/0-1

#此时再将两个端口激活
Switch1(config-if-range)#no sh

Switch1(config-if-range)#ex

Switch1(config)#no ip cef

在 Switch2 中我们做一模一样的配置。

3.验证 etherchannel

我们在特权模式下使用 show etherchannel summary 命令,我们可以看到这样的结果:

etherchannel-show-work.png

这便成功的配置好了二层 Switch 上的 etherchannel,链路捆绑,当然我们也可以做 3 个端口,不要被两个端口所局限了。

4.在 layer3 上的链路聚合与 layer2 上的相差不大,仅仅只是多了一个 IP 地址的配置:

Switch1(config)#int port-channel 1
Switch1(config-if)#ip address 172.16.10.1 255.255.255.252
Switch1(config-if)#no sh
Switch1(config-if)#ex

所以在配置 Layer3 的 Etherchannel 时候,是这样的代码:

## Switch1 config code for Layer 3 

Switch1#conf t

Switch1(config)#int e0/0

Switch1(config-if)#no swit

Switch1(config-if)#no ip add

Switch1(config-if)#sh

Switch1(config-if)#channel-group 1 mode on

Switch1(config-if)#ex

Switch1(config)#int e0/1

Switch1(config-if)#no swit

Switch1(config-if)#no ip add

Switch1(config-if)#sh

Switch1(config-if)#channel-group 1 mode on

Switch1(config-if)#ex

Switch1(config)#int port-channel 1

Switch1(config-if)#no swit

#既然是 Layer3 就需要 IP 地址,所以需要配置 channel 的 IP
Switch1(config-if)#ip address 172.16.10.1 255.255.255.252

Switch1(config-if)#no sh

Switch1(config-if)#ex

Switch1(config)#int range e0/0-1

Switch1(config-if-range)#no sh

Switch1(config-if-range)#ex

Switch1(config)#no ip cef

## Switch2 config code for Layer 3 

Switch2#conf t

Switch2(config)#int range e0/0

Switch2(config-if-range)#no swit

Switch2(config-if-range)#no ip add

Switch2(config-if-range)#sh

Switch2(config-if-range)#channel-group 1 mode on

Switch2(config-if-range)#ex

Switch2(config)#int range e0/1

Switch2(config-if-range)#no swit

Switch2(config-if-range)#no ip add

Switch2(config-if-range)#sh

Switch2(config-if-range)#channel-group 1 mode on

Switch2(config-if-range)#ex

Switch2(config)#int port-channel 1

Switch2(config-if)#no swit

#既然是 Layer3 就需要 IP 地址,所以需要配置 channel 的 IP
Switch2(config-if)#ip address 172.16.10.2 255.255.255.252

Switch2(config-if)#no sh

Switch2(config-if)#ex

Switch2(config)#int range e0/0-1

Switch2(config-if-range)#no sh

Switch2(config-if-range)#ex

Switch2(config)#no ip cef

然后我们通过 show etherchannel summary 命令来查看当前的 Etherchannel 情况:

etherchannel-show-layer3-switch-all.png

这就是链路聚合的配置。

六、实验总结

通过本实验我们了解网络中的各种冗余机制来避免单点故障的发生,从交换机的硬件,到路由器的路由条目冗余,再到网关与链路上的冗余。灵活的应用这样的一些机制可以很高程度上的提升我们网络的健壮性、可靠性。

参考资料

[1] VRRP 的介绍:https://en.wikipedia.org/wiki/Hot_Standby_Router_Protocol
[2] HSRP 的具体内容:http://www.cisco.com/c/en/us/support/docs/ip/hot-standby-router-protocol-hsrp/10583-62.html#topic13
[3] Etherchannel 的工作模式:http://baike.baidu.com/subview/1576529/1576529.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注