datacom-WAN

WAN

  • 前言
    • WAN网络中的常见的接口、PPP/MP、POS/IP-Trunk以及PPPoE的原理与配置。
  • 目标
    • 描述广域网中常见的Ethernet及POS接口
    • 描述PPP/MP的原理与配置
    • 描述IP-Trunk的原理与配置
    • 描述PPPoE的原理与配置
  • 1、广域网接口
    • 路由器广域网接口演进
      • 路由器物理接口带宽演进
        • 接口的核心要素:带宽、距离、成本、功耗、密度、兼容、演进

 

  • 路由器POS/Ethernet接口演进趋势
    • POS接口现网成熟应用,以太接口持续发展

 

  • Ethernet接口
    • 10M以太网(标准以太网)/100M以太网(快速以太网)
      • 10M/100M以太网物理层按照速率等级和传输介质来划分。
      • 常见的类型:
        • 10BASE-T: 采用电话双绞线;
        • 100BASE-T: 所有的100Mb/s介质的统称;
        • 100BASE-X: 100BASE-TX和100BASE-FX的统称;
        • 100BASE-TX: 采用两对屏蔽双绞线或高质量的5类非屏蔽双绞线;
        • 100BASE-FX: 采用两根光纤,一根用于发送,一根用于接收。
      • 1000M以太网(千兆以太网)
        • 1000BASE-T: IEEE802.3ab,5类非屏蔽双绞线
        • 1000BASE-X: IEEE802.3z,多模光纤、单模光纤和150欧平衡屏蔽式双绞线。
        • 1000BASE-CX: 由于最大长度25米,现在应用已经很少。
        • 1000BASE-SX: 短波850nm,激光范围(770~860nm)只用于多模光纤。
        • 1000BASE-LX: 长波1310nm,激光范围(1270~1355nm)主要用于单模光纤,但也可以用于多模光纤。
      • 10G以太网(万兆以太网)
        • 标准:3ae
        • 10Gbs/s以太网有两类:
          • 串行的10GBase-S/L/E-R/W :
            • 10GBase-S:短距;850nm;多模。
            • 10GBase-L:长距;1310nm;单模。
            • 10GBase-E:超长距;1550nm;单模。
            • W= WAN PHY广域网物理层,9.95328Gb/s 码率,采用SONETSTS-192c及SDHVC-4-64C封装,可以使用DWDM或SDH/SONET光/传输网作传送,使10G以太网无缝接入SDH。
            • R= LAN PHY局域网物理层,10.3125Gb/s码率。
          • 4路并行WDM (波分复用)的10GBase-LX4:
            • 10GBase-LX4:1310nm;多模。
            • 10GBase-LX4:1310nm;单模。
          • 100G以太网(100G以太网)
            • 100G以太网(100GE)标准从开始讨论制订到正式获批发布,经历了长达4年之久:2010年6月,IEEE正式对外宣布IEEE802.3ba标准。
            • 在当前正式发布的3ba标准中,对于100GbpsMAC速率,提供了如下物理层规范:
              • 40km单模光纤(SMF): 对应的PHY为100GBASE-ER4,由4个WDM(1310nm, 800GHz波长间隔)通道组成。
              • 10km单模光纤: 对应的PHY为100GBASE-LR4,由4个WDM(1310nm,800GHz波长间隔)通道组成。
              • 100m OM3多模光纤: 对应的PHY为100GBASE-SR10,由10条独立的多模光纤通道(850nm)组成。
              • 7m铜线: 对应的PHY为100GBASE-CR10,由10条独立的铜缆通道组成。
            • POS接口
              • PacketOver SONET/SDH:在SONET/SDH上承载IP包或其他数据包的传输技术。
              • POS将长度可变的数据包直接映射进SONET同步载荷中,使用SONET物理层传输标准,提供了一种高速、可靠、点到点的数据连接。采用光纤进行传输。
              • OC-n:Optical Carrier level n(光载体等级)是光纤传输的一种单位,最小的单位为OC-1,其传输数据量约为51.84Mbps。
              • POS常用接口速率:
                • OC-3/STM-1: 155.52Mbps
                • OC-12/STM-4: 622.08Mbps
                • OC48/STM-16: 2488.32Mbps
                • OC192/STM-64: 9953.28Mbps
                • OC768/STM-256:39813.12Mbps
              • SONET(SynchronousOptical Network)同步光网络,OC-n/STM-n序列。
              • SDH(SynchronousDigital Hierarchy)同步数字系列,是CCITT定义的,它使用了SONET速率的一个子集,STM-n序列。
              • STM:Synchronous Transport Module,同步传输模块。
            • Ethernet接口与POS接口比较
              • 速率
                • Ethernet接口和POS接口在速率上,都可以达到10G、40G。在100GEthernet标准发布后,速率上Ethernet接口更胜一筹。
              • 报文
                • POS端口里采用PPP或HDLC的二层封装来承载IP,二层报头开销最长9个字节,也可能是7个字节。
                • 而10GLAN和WAN都是以太封装,二层报头开销是18个字节。由此看出,POS接口对IP报文的传输效率更高。
              • 成本
                • 成本上,Ethernet接口/Ethernet单板价格更低。例如10GEEthernet,近似10GPOS价格的一半。
              • 接口LAN/WAN模式
                • 10GXFP多模光收发模块可以工作在LAN或WAN两种模式,需要根据实际的应用来选择合适的模式。
                • 10GLAN/WAN的区别在于封装不同。
                  • 10GLAN是纯Ethernet封装。
                  • 10GWAN接口链路层采用Ethernet封装,但是在物理层把封装好的数据直接映射到SDH的序列中。
                • 无论是LAN或是WAN模式,都可以用来作为WAN口实现广域网长距离传输。在广域网的两端,两台路由设备接口模式必须相同。
                • 在路由器之间存在传输设备的情况下,需要注意与传输设备的配合。一般来说,当传输设备是10GPOS时,路由器可以用10GPOS、10GEWAN来配合;当传输设备是10G以太时,路由器只能用10GELAN来配合。需要注意的是,对于当前较新的传输设备而言,无论路由器侧是10GELAN/WAN还是10GPOS都可以支持,只需要更换单板模块和软件配置即可。
              • 2、PPP原理与配置
                • PPP基本概念
                  • 定义
                    • PPP协议在TCP/IP协议栈中位于数据链路层,是目前应用最广泛的点到点链路层协议。
                    • 数据封装方式定义了如何封装多种类型的上层协议数据包。
                    • 为了能适应多种多样的链路类型,PPP定义了链路控制协议LCP。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。
                    • 与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议并实施认证过程,只有认证成功才会建立连接。这个特点使PPP协议适合运营商用来接入分散的用户。
                    • PPP定义了一组网络层控制协议NCP,每一个协议对应一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP,IPXCP用于协商控制IPX协议等。
                  • 三大组件
                    • 数据封装方式
                      • 定义封装多协议数据包的方法。
                    • 链路控制协议(Link Control Protocol,LCP)
                      • 定义建立、协商和测试数据链路层连接的方法。
                    • 网络层控制协议(Network Control Protocol,NCP)
                      • 包含一组协议,用于对不同的网络层协议进行连接建立和参数协商。
                    • 报文结构

 

  • PPP报文封装格式
    • Flag域
      • Flag域标识一个物理帧的起始和结束,该字节为0x7E。
    • Address域
      • Address域可以唯一标识对端。
      • PPP协议是被运用在点对点的链路上,因此,使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。
      • 按照协议的规定将该字节填充为全1的广播地址,对于PPP协议来说,该字段无实际意义。
    • Control域
      • 该字段默认值为0x03,表明为无序号帧,PPP默认没有采用序列号和确认来实现可靠传输。
      • Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。
    • Protocol域
      • 协议域可用来区分PPP数据帧中信息域所承载的数据报类型。
    • LCP报文封装格式
      • Code域
        • 代码域的长度为一个字节,主要是用来标识LCP数据报文的类型。
      • Identifier域
        • 标识域为1个字节,用来匹配请求和响应,当标识域值为非法时,该报文将被丢弃
        • 通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。
      • Length域
        • 长度域的值就是该LCP报文的总字节数据。它是代码域、标志域、长度域和数据域四个域长度的总和。
        • 长度域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。
      • Data域
        • Type为协商选项类型。
        • Length为协商选项长度,它是指Data域的总长度,也就是包含Type、Length和Data。
        • Data为协商的选项具体内容。
      • 建链过程

 

  • 建链过程
    • Dead
      • 这是PPP工作开始和结束的阶段。当物理层变为可用状态(UP)之后,PPP进入Establish阶段。
    • Establish
      • PPP在此阶段使用LCP协商链路层参数。
      • 如果链路层参数协商不成功(FAIL),则PPP连接建立不成功,PPP退回到Dead阶段。
      • 如果链路层参数协商成功(OPENED),则PPP进入Authenticate阶段。
    • Authenticate
      • PPP在此阶段认证对端,如果认证失败(FAIL),则PPP进入Terminate阶段。
      • 如果认证成功(SUCCESS)或者没配置认证(NONE),则PPP进入Network阶段。
    • Network
      • PPP在此阶段使用NCP进行网络层参数协商,协商成功则PPP连接建立成功,开始传输网络层数据包。
      • 当上层协议认为应当关闭此连接(例如按需电路)或者管理员手工关闭PPP连接(CLOSING),则PPP进入Terminate阶段。
    • Terminate
      • PPP在此阶段使用LCP关闭PPP连接。
      • PPP连接关闭(Down)后,PPP进入Dead阶段。
    • 注意
      • 此处列出的是PPP的工作阶段,并非PPP的协议状态。
      • 由于PPP是由一组协议组成的,因此PPP本身没有协议状态。
      • 只有特定的的协议如LCP和NCP等才有协议状态和状态转换(协议状态机)。
    • LCP协议
      • 报文类型
        • Configure-Request
          • 包含发送者试图使用的、没有使用默认值的参数列表。
        • Configure-Ack
          • 表示完全接受对端发送的Configure-Request的参数取值。
        • Configure-Nak
          • 表示对端发送的Configure-Request中的参数取值在本地不合法。
        • Configure-Reject
          • 表示对端发送的Configure-Request中的参数本地不能识别。
        • LCP协议有3大类报文
          • 链路配置包
            • 用于建立和配置链路。
            • Configure-Request(匹配请求)。
            • Configure-Ack(匹配确认)。
            • Configure-Nak(匹配否认)。
            • 和Configure-Reject(匹配拒绝)。
          • 链路结束包
            • 用于结束一个链路。
            • Terminate-Request(终止请求)。
            • Terminate-Ack(终止确认)。
          • 链路维修包
            • 用于管理和调试一个链路。
            • Code-Reject(代码拒绝)。
            • Protocol-Reject(协议拒绝)。
            • Echo-Request(回波请求)。
            • Echo-Reply(回波应答)。
            • 和 Discard-Request(抛弃请求)。
          • LCP用于协商的参数

 

  • MRU
    • 在VRP平台上,MRU参数使用接口上配置的最大传输单元(MTU)值来表示的。
  • 认证协议
    • 常用的PPP认证协议有PAP和CHAP。
    • 一条PPP链路的两端可以使用不同的认证协议认证对端。
    • 但是被认证方必须支持认证方使用的认证协议并正确配置用户名和密码等认证信息。
  • 魔术字
    • LCP使用魔术字(Magic-Number)检测链路环路和其它异常情况。
    • 魔术字为随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。
    • 收到一个Configure-Request报文之后,其包含的魔术字需要和本地产生的魔术字做比较,
      • 如果收到的Configure-Request报文和自身产生的魔术字不同
        • 表示链路无环路。则使用Confugure-Ack报文确认(其他参数也协商成功),表示魔术字协商成功。
        • 在后续发送的报文中,如果报文含有魔术字字段,则该字段设置为协商成功的魔术字,LCP不再产生新的魔术字。
      • 如果收到的Configure-Request报文和自身产生的魔术字相同
        • 则发送一个Configure-Nak报文,携带一个新的魔术字。
        • 然后,不管新收到的Configure-Nak报文中是否携带相同的魔术字,LCP都发送一个新的Configure-Request报文,携带一个新的魔术字。
        • 如果链路有环路,则这个过程会不停的持续下去,如果链路没有环路,则报文交互会很快恢复正常。
      • LCP链路协商
        • LCP链路协商成功

 

  • 如图所示,R1和R2使用串行链路相连,运行PPP。
  • 当物理层链路变为可用状态之后,R1和R2使用LCP协商链路参数。
  • 本例中,R1首先发送一个LCP报文。
  • R1向R2发送Configure-Request报文,此报文包含在发送者(R1)上配置的链路层参数,每个链路层参数使用“类型,长度,取值”的结构表示。
  • 当R2收到此Configure-Request报文之后,如果R2能识别此报文中的所有链路层参数,并且认为每个参数的取值都是可以接受的,则向R1回应一个Configure-Ack报文。
  • 在没有收到Configure-Ack报文的情况下,每隔3秒重传一次Configure-Request报文,如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文,则认为对端不可用,停止发送Configure-Request报文。
  • 注意
    • 完成上述过程只是表明R2认为R1上的链路参数配置是可接受的。
    • R2也需要向R1发送Configure-Request报文,使R1检测R2上的链路参数配置是不是可接受的。
  • LCP链路协商不成功

 

  • 当R2收到R1发送的Configure-Request报文之后,如果R2能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则R2需要向R1回应一个Configure-Nak报文。
  • 在这个Configure-Nak报文中,只包含不能接受的那部分链路层参数列表,每一个包含在此报文中链路层参数的取值均被修改为此报文的发送者(R2)上可以接受的取值(或取值范围)。
  • 在收到Configure-Nak报文之后,R1需要根据此报文中的链路层参数重新选择本地使用的相关参数,并重新发送一个Configure-Request。
  • 连续五次协商仍然不成功的参数将被禁用,不再继续协商。
  • LCP链路协商不识别

 

  • 当R2收到R1发送的Configure-Request报文之后,如果R2不能识别此报文中携带的部分或全部链路层参数,则R2需要向R1回应一个Configure-Reject报文。
  • 在此Configure-Reject报文中,只包含不被识别的那部分链路层参数列表。
  • 在收到Configure-Reject报文之后,R1需要向R2重新发送一个Configure-Request报文,在新的Configure-Request报文中,不再包含不被对端(R2)识别的参数。
  • 检测链路状态

 

  • LCP建立连接之后,可以使用Echo-Request报文和Echo-Reply报文检测链路状态,收到一个Echo-Request报文之后应当回应一个Echo-Reply报文,表示链路状态正常。
  • VRP平台默认每隔10秒发送一次Echo-Request报文。
  • 连接关闭

 

  • 认证不成功或者管理员手工关闭等原因可以使LCP关闭已经建立的连接。
  • LCP关闭连接使用Terminate-Request报文和Terminate-Ack报文,Terminate-Request报文用于请求对端关闭连接,一旦收到一个Terminate-Request报文,LCP必须回应一个Terminate-Ack报文确认连接关闭。
  • 在没有收到Terminate-Ack报文的情况下,每隔3秒重传一次Terminate-Request报文,连续两次重传没有收到Terminate-Ack报文,则认为对端不可用,连接关闭。
  • PAP认证协议
    • 报文类型
      • Authenticate-Request
        • 用于被验证方发送用户名和密码,Data字段包含明文用户名和密码信息。
      • Authenticate-Ack
        • 用于验证方发送验证成功信息,Data字段可以包含文本提示信息。
      • Authenticate-Nak
        • 用于验证方发送验证失败信息,Data字段可以包含文本提示信息。
      • 工作原理

 

  • PAP工作模式
    • 被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方,本例中,用户名为“huawei”,密码为“hello”;
    • 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否正确匹配,
      • 如果正确,则返回Authenticate-Ack报文,表示认证成功。
      • 如果不能正确匹配,则返回Authenticate-Nak报文,表示认证失败。
    • PAP报文直接封装在PPP报文中。
  • CHAP认证协议
    • 报文类型
      • Challenge
        • 用于验证方向被验证方发送Challenge,发起验证过程,Data字段包含Challenge.
        • 使用Challenge对密码做加密运算的算法为MD5{ Identifier+密码+Challenge },意思是将Identifier、密码和Challenge三部分连成一个字符串整体,然后对此字符串做MD5运算,得到一个16字节长的摘要信息,在Response报文中Data字段包含的加密运算之后的密码信息就是此摘要信息。
      • Response
        • 用于被验证方向验证方返回用户信息,Data字段含有返回的用户名以及加密运算之后的密码信息。
      • Success
        • 用于验证方向被验证方发送认证成功信息,Data字段可以包含文本提示信息。
      • Failure
        • 用于验证方向被验证方发送认证失败信息,Data字段可以包含文本提示信息。
      • 工作原理

 

  • CHAP的认证过程需要三次报文的交互。
  • 为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程所使用的报文均使用相同的Identifier信息。
  • CHAP单向验证过程分为两种情况:验证方配置了用户名和验证方没有配置用户名。
    • 验证方配置了用户名的验证过程
      • 即接口配置命令ppp chap user username
      • 推荐使用验证方配置用户名的方式,这样可以对验证方的用户名进行确认。
      • 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge),并同时将本端的用户名附带上一起发送给被验证方。
      • 被验证方接到验证方的验证请求后,先检查本端接口上是否配置了pppchap password命令
        • 如果配置了该命令,则被验证方将生成的密文((Identifier+密码+随机数)的MD5)和自己的用户名发回验证方(Response)。
        • 如果接口上未配置pppchap password命令,则根据此报文中验证方的用户名在本端的用户表查找该用户对应的密码,将密文((Identifier+密码+随机数)的MD5)和被验证方自己的用户名发回验证方(Response)。
      • 验证方将自己本身保存的密码、Identifier和随机数进行MD5算法,和收到respone中的密文进行比较,以验证认证是否正确。
    • 验证方没有配置用户名
      • 即接口没有配置命令ppp chap user username
      • 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge)。
      • 被验证方接到验证方的验证请求后,利用Identifier、pppchap password命令配置的CHAP密码和随机数进行MD5算法,将生成的密文和自己的用户名发回验证方(Response)。
      • 验证方将自己本身保存的密码、Identifier和随机数进行MD5算法,和收到respone中的密文进行比较,以验证认证是否正确。
    • NCP协议
      • IPCP静态协商IP地址

 

  • IPCP,用于协商控制IP参数,使PPP可用于传输IP数据包。
  • IPCP使用和LCP相同的协商机制、报文类型,但IPCP并非调用LCP,只是工作过程、报文等和LCP相同。
    • 两端配置的IP地址分别为12.1.1.1/24和12.1.1.2/24(两端IP地址即使不在同一网段也会通过IPCP协商)。
    • 两端静态配置IP地址的时候协商过程
      • R1和R2都要发送Configure-Request报文,在此报文中包含本地配置的IP地址。
      • R1和R2接收到对端的Configure-Request报文之后,检查其中的IP地址,如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可以使用该地址,回应一个Configure-Ack报文。
      • 通过IPCP发送的信息,PPP链路的两端都可以知道对端使用的32位IP地址。
    • IPCP动态协商IP地址

 

  • 如图所示,R1配置为请求对端分配IP地址,R2配置静态IP地址12.1.1.2/24,并且启用R2给对端分配IP地址的能力,给R1分配IP地址12.1.1.1。
  • 两端动态协商IP地址的过程
    • R1向R2发送一个Configure-Request报文,此报文中含有IP地址0.0.0.0,一个含有0.0.0.0的IP地址的Configure-Request报文表示向对端请求IP地址;
    • R2收到上述Configure-Request报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址12.1.1.1;
    • R1收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址12.1.1.1;
    • R2收到Configure-Request报文后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack报文;
    • 同时,R2也要向R1发送Configure-Request报文请求使用地址12.1.1.2,R1认为此地址合法,回应Configure-Ack报文。
  • MP基本原理
    • MP基本原理
      • 增加带宽,将多个PPP链路捆绑使用。
      • MultiLink PPP允许将报文分片,分片将从多个点对点链路上送到同一个目的地。
    • MP方式下链路协商过程
      • LCP阶段,也需验证对端接口是否工作在MP方式下。
      • NCP阶段,根据MP-Group接口或指定虚拟接口模板的各项NCP参数(如IP地址等)进行NCP协商。
    • 实现方式
      • 虚拟接口模板方式。
      • MP-Group方式。
    • PPP/MP配置
      • 配置PPP
        • 配置R1和R2的互联接口封装类型为PPP,使用CHAP认证,用户名为Huawei,密码为Hello。

 

  • R1
    • aaa
    • local-user Huawei password cipherHello
    • local-user Huawei service-type ppp
    • #
    • interface Serial1/0/0
    • link-protocol ppp
    • ppp authentication-mode chap //命令用来设置本端PPP协议对对端设备的认证方式,有chap | pap两种
    • ppp chapuser Huawei //命令用来配置CHAP验证的用户名
    • ip address ppp-negotiate //命令用来为本端接口配置IP地址可协商属性,使本端接口接受PPP协商产生的由对端分配的IP地址
  • R2
    • interface Serial1/0/0
    • link-protocol ppp
    • remote address 12.1.1.1
    • ppp chapuser Huawei
    • ppp chappassword cipher Hello //命令用来配置CHAP验证的口令,有cipher(密文显示) | simple(明文显示)
    • ip address 12.1.1.2 255.255.255.0 //命令用来配置为对端分配IP地址或指定地址池
  • 配置MP
    • 为了增加接口带宽,将R1与R2的所有互连PPP接口采用MP-Group进行MP绑定;R1与R2之间PAP认证,R1为认证端,R2为被认证端,且用户名为Huawei,密码为Hello。

 

  • R1
    • aaa
    • local-user Huawei password cipher Hello
    • local-user Huawei service-type ppp
    • #
    • interface Mp-group 0/0/0 //命令用来创建一个MP-Group类型的接口并进入MP-Group接口视图
    • ip address 12.1.1.1 255.255.255.0
    • #
    • interface Serial1/0/0
    • link-protocol ppp
    • ppp authentication-mode pap
    • ppp mp Mp-group0/0/0 //命令用来将接口加入指定的MP-group,使该接口工作在MP方式
    • #
    • interface Serial1/0/1
    • link-protocol ppp
    • ppp authentication-mode pap
    • ppp mp Mp-group0/0/0
  • R2
    • interface Mp-group 0/0/0
    • ip address 12.1.1.2 255.255.255.0
    • #
    • interface Serial1/0/0
    • link-protocol ppp
    • ppp paplocal-user Huawei password simple Hello
    • ppp mp Mp-group0/0/0
    • #
    • interface Serial1/0/1
    • link-protocol ppp
    • ppp paplocal-user Huawei password simple Hello
    • ppp mp Mp-group0/0/0
  • prestart 命令用来重新启动当前接口。
  • 3、IP-Trunk
    • IP-Trunk原理
      • Trunk接口分为Eth-Trunk和IP-Trunk两种。
        • Eth-Trunk只能由以太网链路构成。
        • IP-Trunk一般由POS接口构成。
      • 在一个IP-Trunk内,可以实现流量负载分担。负载分担分为逐流负载分担和逐包负载分担。
        • 逐流负载分担:当报文的源IP地址和目的IP地址都相同时,这些报文从同一个成员链路上通过。
        • 逐包负载分担:以报文为单位分别从不同的成员链路上发送。
      • IP-Trunk的成员接口只能使用HDLC封装形式。
      • IP-Trunk的原理与Eth-Trunk类似。
    • IP-Trunk配置

 

  • 4、PPPoE原理与配置
    • PPPoE原理
      • PPPoE概述
        • PPP应用于以太网以实现广播式的网络中多台主机连接到远端的接入服务器的技术。
        • PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
        • PPPoE组网结构采用Client/Server 模型。

 

  • PPPoE会话建立过程
    • PPPoE可分为三个阶段,即Discovery阶段、Session阶段和Terminate阶段

 

  • Discovery阶段
    • PPPoE Client广播发送一个PADI(PPPoEActive Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
    • 所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。
    • 根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoEClient选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。
    • PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoEClient的这个会话,通过发送一个PADS(PPPoE Active Discovery Session-confirmation)报文把会话ID发送给PPPoE Client,会话建立成功后便进入PPPoE Session阶段。
    • 完成后通信双方都会知道PPPoE的Session_ID及对方MAC,它们共同确定唯一的PPPoE Session。
  • Seesion阶段
    • PPPoE Session上的PPP协商和普通的PPP协商方式一致。
    • PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。
    • 在PPPoE Session阶段所有的以太网数据包都是单播发送的
  • Terminate阶段
    • 进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。
    • PADT数据包可以在会话建立以后的任意时刻单播发送。
    • 在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。
  • PPPoE配置
    • 公司A希望部署PPPoE,现根据需求完成如下配置

 

  • R4为PPPoE Server端,为客户端分配IP地址池范围1.1.1.0/24,使用PAP认证模式;
  • R1为PPPoE Client端,认证用户名/密码为HuaweiR1/R1;
  • R2为PPPoE Client端,认证用户名/密码为HuaweiR2/R2;
  • R3为PPPoE Client端,认证用户名/密码为HuaweiR3/R3。
  • Client R1的配置

 

  • Server R4的配置

 

  • 验证
    • 此例中,R1模拟PPPoE客户机PC进行PPPoE拨号上网,R4作为PPPoE Server对其进行验证和地址分配。
  • 总结
    • 常见的广域网接口
    • Ethernet接口
    • POS接口/IP-Trunk
    • PPP/MP
    • PPPoE

datacom-LAN

LAN

  • 概述
    • 前言
      • 以太网是当今现有局域网LAN(Local Area Network)采用的最通用的通信协议标准。该标准定义了在局域网中采用的电缆类型信号处理方法。以太网作为一种原理简单便于实现同时又价格低廉的局域网技术已经成为业界的主流。而更高性能的千兆以太网和万兆以太网的出现更使其成为最有前途的网络技术。
    • 目标
      • 描述MAC地址表的组成,MAC地址漂移原理
      • 描述免费ARP原理与应用场景
      • 掌握iStack堆叠与CSS集群技术
      • 掌握链路聚合原理与实现方式
      • 掌握MSTP工作原理
    • 1、MAC地址表
      • MAC地址表的组成
        • MAC地址三元素
          • MAC地址
          • 接口
          • VLAN
        • MAC地址表的定义
          • MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。
          • 过程–>设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。
          • 有则转发、无则广播
        • MAC地址表项
          • 动态表项
            • 由接口通过报文中的源MAC地址学习获得,表项可老化,默认老化时间300秒
            • 系统复位接口板热插拔接口板复位后,动态表项会丢失
            • 同一个MAC地址被多个接口学习到,选择后学习到的接口—MAC地址覆盖
            • 可以通过查看动态MAC地址表项,可以判断两台相连设备之间是否有数据转发。
            • 可以通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数。
          • 静态表项
            • 由用户手工配置,并下发到各接口板,表项不可老化。
            • 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
            • 一条静态MAC地址表项,只能绑定一个出接口。
            • 一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。
            • 通过绑定静态MAC地址表项,可以保证合法用户的使用,防止其他用户使用该MAC进行攻击。
          • 黑洞表项
            • 由用户手工配置,并下发到各接口板,表项不可老化。
            • 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
            • 通过配置黑洞MAC地址表项,可以过滤掉非法用户。
            • 配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC的报文将会被丢弃。
          • MAC地址特性
            • 缺省情况下,MAC地址表项的老化时间为300秒。
            • 黑洞表项,无VLAN,无出接口
            • MAC地址表示例

 

  • 通过“display mac-address”命令,可以查看设备的mac表项,如图所示,mac表的组成可以分为动态、静态和黑洞。从表项中也可以看出,mac地址所对应的VLAN以及VSI。
  • MAC地址表配置
    • 配置静态MAC表项
      • [Huawei]mac-address static 0011-2233-4455 GigabitEthernet 0/0/2vlan  1
    • 配置黑洞MAC表项
      • [Huawei]mac-address blackhole 00aa-bbcc-ddee
    • 配置动态MAC表项的老化时间
      • [Huawei]mac-address aging-time 400
    • 端口安全(Port Security)
      • 端口安全定义
        • 端口安全(Port Security)通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC、安全静态MAC和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。
      • 端口安全分类
        • 安全动态MAC地址
          • 使能端口安全而未使能Sticky MAC功能时转换的MAC地址。
        • 安全静态MAC地址
          • 使能端口安全时手工配置的静态MAC地址。
        • Sticky MAC地址(粘性绑定)
          • 使能端口安全后又同时使能Sticky MAC功能后转换到的MAC地址。
        • 端口安全特性
          • 接口使能端口安全功能时,接口上之前学习到的动态MAC地址表项将被删除,之后学习到的MAC地址将变为安全动态MAC地址。
          • 接口去使能端口安全功能时,接口上的安全动态MAC地址将被删除,重新学习动态MAC地址。
          • 接口使能StickyMAC功能时,接口上的安全动态MAC地址表项将转化为StickyMAC地址,之后学习到的MAC地址也变为StickyMAC地址。
          • 接口去使能StickyMAC功能时,接口上的StickyMAC地址,会转换为安全动态MAC地址。
          • 接口使能StickyMAC功能,即使配置了port-securityaging-time,StickyMAC也不会被老化。
          • StickyMAC地址表项,保存后重启设备不丢弃。
        • 端口安全配置
          • 配置安全MAC功能
            • [Huawei-GigabitEthernet0/0/2]port-security enable \\使能端口安全功能
            • [Huawei-GigabitEthernet0/0/2]port-security protect-action shutdown \\配置端口安全保护动作
            • [Huawei-GigabitEthernet0/0/2]port-security max-mac-num 5 \\配置端口安全动态MAC学习限制数量
            • [Huawei-GigabitEthernet0/0/2]port-security aging-time 1000 \\配置接口学习到的安全动态MAC地址的老化时间
          • 配置Sticky MAC功能
            • [Huawei-GigabitEthernet0/0/2]port-security enable
            • [Huawei-GigabitEthernet0/0/2]port-security mac-address sticky \\使能接口StickyMAC功能
          • 端口安全的保护动作
            • Restrict:丢弃源MAC地址不存在的报文并上报告警。推荐使用restrict动作。
            • Protect:只丢弃源MAC地址不存在的报文,不上报告警。
            • Shutdown:接口状态被置为error-down,并上报告警。
          • MAC地址漂移
            • MAC地址漂移定义
              • MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。
              • 举例说明: 如图所示,MAC地址为0011-0022-0034的表项,出接口由GE1/0/1刷新为GE1/0/2,这就是MAC地址漂移。设备出现MAC地址漂移时,设备CPU占用率会有不同程度的升高。正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,可以通过查看告警信息和漂移记录,快速定位和排除环路。

 

  • MAC地址漂移避免机制
    • 提高接口MAC地址学习优先级,当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址在接口间发生漂移。
    • 不允许相同优先级的接口发生MAC地址表项覆盖。当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项。但如果网络设备下电,仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。
  • MAC地址漂移检测
    • MAC地址漂移检测是利用MAC地址出接口跳变的现象,检测MAC地址是否发生漂移的功能。
    • 配置MAC地址漂移检测功能后,在发生MAC地址漂移时,可以上报包括MAC地址、VLAN,以及跳变的接口等信息的告警。其中跳变的接口即为可能出现环路的接口。网络管理员可以根据告警信息,手工排查网络中环路的源头,也可以使用MAC漂移检测提供的后续动作,使跳变的端口down或者VLAN从端口中退出,实现自动破环。
    • 举例说明:如图所示网络中,若SwitchC和SwitchD之间误接网线,则SwitchB、SwitchC、SwitchD之间形成环路。当SwitchA上Port1接口从网络中收到一个广播报文后转发给SwitchB,该报文经过环路,会被SwitchA上Port2接口收到。配置MAC地址漂移检测功能,SwitchA就会感知到MAC地址出接口跳变的现象。若连续出现此现象,SwitchA就会上报MAC漂移告警,提醒管理员进行维护。、

 

  • MAC地址防漂移配置
    • 配置接口MAC地址学习优先级
      • [Huawei-GigabitEthernet0/0/2]mac-learning priority 3 \\配置接口学习MAC地址的优先级,缺省情况下,接口学习MAC地址的优先级为0,数值越大优先级越高
    • 配置不允许相同优先级接口MAC地址漂移
      • [Huawei]undo mac-learning priority 3 allow-flapping \\配置不允许相同优先级的接口发生MAC地址漂移
    • 配置全局MAC地址漂移检测
      • [Huawei]mac-address flapping detection \\配置全局MAC地址漂移检测功能
    • 配置基于VLAN的MAC地址漂移检测
      • [Huawei]vlan 2
      • [Huawei-vlan2]loop-detect eth-loop block-time 100 retry-times 3 \\配置MAC地址漂移检测功能
    • 特性
      • 接口配置不同的MAC地址学习优先级后,如果不同接口学到相同的MAC地址表项,那么高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址发生漂移。
      • 配置不允许相同优先级的接口发生MAC地址表项覆盖,也可以防止MAC地址漂移,提高网络的安全性。
    • 2、免费ARP
      • 免费ARP定义
        • 设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
      • 免费ARP作用
        • IP地址冲突检测
          • 当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。
          • 正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。
          • 如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
        • 用于通告一个新的MAC地址
          • 发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
        • 在VRRP备份组中用来通告主备发生变换
          • 发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换。
        • 举例说明

 

  • 3、iStack
    • 园区典型组网
      • 组网

 

  • 优点
    • 简单
      • 各层设备均使用堆叠技术,逻辑设备少,网络拓扑简单,二层天然无环,无需部署STP破环协议。
    • 高效
      • 各层设备间使用Eth-Trunk链路聚合技术,负载分担算法灵活,链路利用率高。
    • 可靠
      • 服务器和主机可以配置多NIC网卡Teaming负载均衡或主备冗余链路提高服务器接入可靠性。
      • 堆叠技术同链路聚合技术结合使用,各层物理设备形成双归接入组网,提高整网可靠性。
    • 缺点
      • 对设备性能要求较高,盒式设备堆叠台数过多,可能导致堆叠主的主控性能下降。
      • 如果采用业务口堆叠或集群,会占用业务端口数。
    • iStack堆叠原理
      • iStack堆叠定义
        • 智能堆叠iStack (Intelligent Stack),是指将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。
        • 优点:通过交换机堆叠,可以实现网络高可靠性和网络大数据量转发,同时简化网络管理。
          • 高可靠性。堆叠系统多台成员交换机之间冗余备份;堆叠支持跨设备的链路聚合功能,实现跨设备的链路冗余备份。
          • 强大的网络扩展能力。通过增加成员交换机,可以轻松的扩展堆叠系统的端口数、带宽和处理能力;同时支持成员交换机热插拔,新加入的成员交换机自动同步主交换机的配置文件和系统软件版本。
          • 简化配置和管理。一方面,用户可以通过任何一台成员交换机登录堆叠系统,对堆叠系统所有成员交换机进行统一配置和管理;另一方面,堆叠形成后,不需要配置复杂的二层破环协议和三层保护倒换协议,简化了网络配置。
        • 举例说明
          • 如图所示,SwitchA与SwitchB通过堆叠线缆连接后组成堆叠系统,对于上游和下游设备来说,它们就相当于一台交换机Switch。

 

  • iStack堆叠基本概念
    • iStack堆叠角色(堆叠中所有的单台交换机都称为成员交换机,按照功能不同,可以分为三种角色)
      • 主交换机(Master):负责管理整个堆叠。堆叠中只有一台主交换机。
      • 备交换机(Standby):是主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。堆叠中只有一台备交换机。
      • 从交换机(Slave):主要用于业务转发,从交换机数量越多,堆叠系统的转发能力越强。除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。
    • iStack堆叠ID
      • 即成员交换机的槽位号(Slot ID),用来标识和管理成员交换机,堆叠中所有成员交换机的堆叠ID都是唯一的。
    • iStack堆叠优先级
      • 堆叠优先级是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,优先级越高当选为主交换机的可能性越大。
    • iStack堆叠建立方式
      • iStack堆叠建立

 

  • 三步“系统自动完成堆叠”
    • 主交换机选举
      • 运行状态比较,已经运行的交换机比处于启动状态的交换机优先竞争为主交换机。
      • 堆叠优先级高的交换机优先竞争为主交换机。
      • 堆叠优先级相同时,MAC地址小的交换机优先竞争为主交换机。
    • 拓扑收集和备交换机选举
      • 主交换机选举完成后,主交换机会收集所有成员交换机的拓扑信息,根据拓扑信息计算出堆叠转发表项和破环点信息下发给堆叠中的所有成员交换机,并向所有成员交换机分配堆叠ID。之后进行备交换机的选举,作为主交换机的备份交换机。
      • 当除主交换机外其它交换机同时完成启动时:堆叠优先级最高的设备成为备交换机。堆叠优先级相同时,MAC地址最小的成为备交换机。
    • 稳定运行
  • 角色选举、拓扑收集完成之后
    • 角色选举、拓扑收集完成之后,剩下的其他成员交换机作为从交换机加入堆叠,所有成员交换机会自动同步主交换机的系统软件和配置文件:
    • 堆叠具有自动加载系统软件的功能,待组成堆叠的成员交换机不需要具有相同软件版本,只需要版本间兼容即可。当备交换机或从交换机与主交换机的软件版本不一致时,备交换机或从交换机会自动从主交换机下载系统软件,然后使用新系统软件重启,并重新加入堆叠。
    • 堆叠具有配置文件同步机制,备交换机或从交换机会将主交换机的配置文件同步到本设备并执行,以保证堆叠中的多台设备能够像一台设备一样在网络中工作,并且在主交换机出现故障之后,其余交换机仍能够正常执行各项功能。
  • iStack堆叠连接方式
    • 根据堆叠口划分
      • 堆叠卡堆叠(根据堆叠口不同)
        • 交换机之间通过专用的堆叠插卡及专用的堆叠线缆连接。
        • 堆叠卡集成到了交换机后面板上,交换机通过集成的堆叠端口及专用的堆叠线缆连接。
      • 业务口堆叠

 

  • 业务口堆叠指的是交换机之间通过与逻辑堆叠端口绑定的物理成员端口相连,不需要专用的堆叠插卡。
  • 端口说明
    • 物理成员端口
      • 成员交换机之间用于堆叠连接的物理端口。物理成员端口用于转发需要跨成员交换机的业务报文或成员交换机之间的堆叠协议报文。
    • 逻辑堆叠端口
      • 逻辑堆叠端口是专用于堆叠的逻辑端口,需要和物理成员端口绑定。堆叠的每台成员交换机上支持两个逻辑堆叠端口,分别为stack-port n/1和stack-port n/2,其中n为成员交换机的堆叠ID。
    • 根据连接线缆划分
      • 普通线缆堆叠
        • 普通堆叠线缆包括:光线缆、网线和高速电缆。使用普通线缆堆叠时,逻辑堆叠端口需要手动进行配置,否则无法组建堆叠。
      • 专用线缆堆叠
        • 专用堆叠线缆的两端区分主和备,带有Master标签的一端为主端,不带有标签的一端为备端。使用专用线缆堆叠时,专用堆叠线缆按照规则插入端口后,交换机就可以自动组建堆叠。
      • iStack堆叠成员加入

 

  • 堆叠成员加入是指向已经稳定运行的堆叠系统添加一台新的交换机。
  • 使能堆叠并配置好SWD的堆叠参数
    • 如果是业务口堆叠,新加入的交换机需要配置物理成员端口加入逻辑堆叠端口;并且链形连接时,当前堆叠系统链形两端(或一端)的成员交换机也需要配置物理成员端口加入逻辑堆叠口。
    • 如果是堆叠卡堆叠,新加入的成员交换机需要使能堆叠功能。
    • 为了便于管理,建议为新加入的交换机配置堆叠ID。如果不配置,堆叠系统会为其分配一个堆叠ID。
  • 将SWD连接到堆叠系统
    • 如果是链形连接,新加入的交换机建议添加到链形的两端,这样对现有的业务影响最小。
    • 如果是环形连接,需要把当前环形拆成链形,然后在链形的两端添加设备。
  • 系统完成堆叠
    • 新加入的交换机连线上电启动后,进行角色选举,新加入的交换机会选举为从交换机,堆叠系统中原有主备从角色不变。
    • 角色选举结束后,主交换机更新堆叠拓扑信息,同步到其他成员交换机上,并向新加入的交换机分配堆叠ID(新加入的交换机没有配置堆叠ID或配置的堆叠ID与原堆叠系统的冲突时)。
    • 新加入的交换机更新堆叠ID,并同步主交换机的配置文件和系统软件,之后进入稳定运行状态。
  • iStack堆叠合并

 

  • 堆叠合并是指稳定运行的两个堆叠系统合并成一个新的堆叠系统。
  • 图例说明
    • 两个堆叠系统的主交换机SWA和SWD通过竞争,选举出一个更优的作为新堆叠系统的主交换机。
    • 竞争成功的主交换机SWA所在的堆叠系统将保持原有主备从角色和配置不变,业务也不会受到影响。
    • 而另外一个堆叠系统的所有成员交换机SWD和SWE将重新启动,以从交换机的角色加入到新堆叠系统,其堆叠ID将由新主交换机重新分配,并将同步新主交换机的配置文件和系统软件,该堆叠系统的原有业务也将中断。
  • 适用情况
    • 堆叠链路或设备故障导致堆叠分裂,链路或设备故障恢复后,分裂的堆叠系统重新合并。
    • 待加入堆叠系统的交换机配置了堆叠功能,在不下电的情况下,使用堆叠线缆连接到正在运行的堆叠系统。通常情况下,不建议使用该方式形成堆叠,因为在合并前过程中可能会导致正在运行的堆叠系统重启,影响业务运行。
  • iStack堆叠成员退出

 

  • 堆叠成员退出是指成员交换机从堆叠系统中离开。
  • 堆叠成员退出的触发方式
    • 拔出堆叠线缆;
    • 关闭堆叠端口或物理成员端口;
    • 堆叠成员设备重启;
    • 成员设备故障等其它原因。
  • 堆叠成员退出的影响
    • 当主交换机退出,备份交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,指定新的备交换机,之后进入稳定运行状态。
    • 当备交换机退出,主交换机重新指定备交换机,重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
    • 当从交换机退出,主交换机重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
  • 堆叠成员退出的过程(主要就是拆除堆叠线缆和移除交换机的过程)
    • 对于环形堆叠:成员交换机退出后,为保证网络的可靠性还需要把退出交换机连接的两个端口通过堆叠线缆进行连接。
    • 对于链形堆叠:拆除中间交换机会造成堆叠分裂。这时需要在拆除前进行业务分析,尽量减少对业务的影响。
  • iStack堆叠分裂

 

  • 堆叠分裂是指稳定运行的堆叠系统中带电移出部分成员交换机,或者堆叠线缆多点故障导致一个堆叠系统变成多个堆叠系统
  • 堆叠分裂类型
    • 堆叠分裂后,原主备交换机被分裂到同一个堆叠系统中
      • 原主交换机会重新计算堆叠拓扑,将移出的成员交换机的拓扑信息删除,并将新的拓扑信息同步给其他成员交换机;而移出的成员交换机检测到堆叠协议报文超时,将自行复位,重新进行选举。
    • 堆叠分裂后,原主备交换机被分裂到不同的堆叠系统中
      • 原主交换机所在堆叠系统重新指定备交换机,重新计算拓扑信息并同步给其他成员交换机;原备交换机所在堆叠系统将发生备升主,原备交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,并指定新的备交换机。
    • iStack堆叠多主检测
      • 多主检测MAD
        • 多主检测定义
          • 多主检测MAD(Multi-Active Detection),是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。
        • 多主检测作用
          • 由于堆叠系统中所有成员交换机都使用同一个IP地址和MAC地址(堆叠系统MAC),一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统。为防止堆叠分裂后,产生多个具有相同IP地址和MAC地址的堆叠系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查。
        • 多主检测方式
          • MAD检测方式有两种:直连检测方式和代理检测方式。在同一个堆叠系统中,两种检测方式互斥,不可以同时配置。
          • 直连检测方式
            • 直连检测定义
              • 直连检测方式是指堆叠成员交换机间通过普通线缆直连的专用链路进行多主检测。
            • 直连检测的连接方式包括通过中间设备直连和堆叠成员交换机Full-mesh方式直连

 

  • 通过中间设备直连
    • 堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。
    • 可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。
  • Full-mesh方式直连
    • 堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。
    • 与通过中间设备直连相比,Full-mesh方式直连可以避免由中间设备故障导致的MAD检测失败,但是每两台成员交换机之间都建立全连接会占用较多的接口,所以该方式适用于成员交换机数目较少的场景。
  • 直连检测特性
    • 在直连检测方式中,堆叠系统正常运行时,不发送MAD报文。
    • 堆叠系统分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文以进行多主冲突处理。
  • 代理检测方式
    • 代理检测定义
      • 代理检测方式是在堆叠系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能。
    • 代理检测方式可分为单机作代理和两套堆叠系统互为代理

 

  • 代理检测特性
    • 要求堆叠系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。
    • 与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。
    • 在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。
    • 堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理。
    • 堆叠分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文以进行多主冲突处理。
  • MAD冲突处理
    • 堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于Detect状态或Recovery状态。
    • Detect状态表示堆叠正常工作状态,Recovery状态表示堆叠禁用状态。
    • MAD冲突处理机制
      • MAD分裂检测机制会检测到网络中存在多个处于Detect状态的堆叠系统,这些堆叠系统之间相互竞争。
      • 竞争成功的堆叠系统保持Detect状态,竞争失败的堆叠系统会转入Recovery状态。
      • 并且在Recovery状态堆叠系统的所有成员交换机上,关闭除保留端口以外的其它所有物理端口,以保证该堆叠系统不再转发业务报文。
    • MAD故障恢复
      • 通过修复故障链路,分裂后的堆叠系统重新合并为一个堆叠系统。
      • MAD故障恢复方式
        • 方式一:堆叠链路修复后,处于Recovery状态的堆叠系统重新启动,与Detect状态的堆叠系统合并,同时将被关闭的业务端口恢复Up,整个堆叠系统恢复。
        • 方式二:如果故障链路修复前,承载业务的Detect状态的堆叠系统也出现了故障。此时,可以先将Detect状态的堆叠系统从网络中移除,再通过命令行启用Recovery状态的堆叠系统,接替原来的业务,然后再修复原Detect状态堆叠系统的故障及链路故障。故障修复后,重新合并堆叠系统。
      • iStack堆叠配置
        • 通过堆叠卡连接方式组建堆叠
          • [SwitchA]stack slot 0 priority 200 \\配置成员交换机的堆叠优先级。缺省情况下,成员交换机的堆叠优先级为100
          • [SwitchB]stack slot 0 renumber 1 \\配置设备的堆叠ID
          • [SwitchC]stack slot 0 renumber 2
        • 通过业务口连接方式组建堆叠
          • [SwitchA]interface stack-port 0/1
          • [SwitchA-stack-port0/1]port interface gigabitethernet0/0/27 enable \\配置业务口为物理成员端口并将其加入到逻辑堆叠端口中。交换机B、C同理。
          • [SwitchA]interface stack-port 0/2
          • [SwitchA-stack-port0/2]port interface gigabitethernet0/0/28 enable
          • [SwitchA]stack slot 0 priority 200 \\ 配置SwitchA的堆叠优先级为200
          • [SwitchB]stack slot 0 renumber 1 \\配置SwitchB的堆叠ID为1
          • [SwitchC]stack slot 0 renumber 2
        • 4、CSS
          • CSS定义
            • 定义
              • 集群交换机系统CSS (Cluster Switch System),又称为集群,是指将两台支持集群特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。
            • 特征
              • 交换机多虚一:堆叠交换机对外表现为一台逻辑交换机,控制平面合一,统一管理。
              • 转发平面合一:堆叠内物理设备转发平面合一,转发信息共享并实时同步。
              • 跨设备链路聚合:跨堆叠内物理设备的链路被聚合成一个Eth-Trunk端口,和下游设备实现互联。
            • CSS基本概念
              • 主交换机
                • 负责管理整个集群。集群中只有一台主交换机。
              • 备交换机
                • 主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。集群中只有一台备交换机。
                • 不同于iStack可以多台设备堆叠,对于CSS集群,集群中只能有一主一备两台交换机。
              • 集群ID
                • 即CSS ID,用来标识和管理成员交换机。集群中成员交换机的集群ID是唯一的。
              • 集群优先级
                • 即Priority,是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,优先级越高当选为主交换机的可能性越大。
              • CSS集群建立
                • 集群建立时,成员交换机间相互发送集群竞争报文,通过竞争,一台成为主交换机,负责管理整个集群系统,另一台则成为备交换机。

 

  • 角色选举
    • 最先完成启动,并进入单框集群运行状态的交换机成为主交换机。
    • 当两台交换机同时启动时,集群优先级高的交换机成为主交换机。
    • 当两台交换机同时启动,且集群优先级又相同时,MAC地址小的交换机成为主交换机。
    • 当两台交换机同时启动,且集群优先级和MAC都相同时,集群ID小的交换机成为主交换机。
  • 版本同步
    • 集群具有自动加载系统软件的功能,待组成集群的成员交换机不需要具有相同的软件版本,只需要版本间兼容即可。
    • 当主交换机选举结束后,如果备交换机与主交换机的软件版本号不一致时,备交换机会自动从主交换机下载系统软件,然后使用新的系统软件重启,并重新加入集群。
  • 配置同步
    • 集群具有严格的配置文件同步机制,来保证集群中的多台交换机能够像一台设备一样在网络中工作。
  • 配置备份
    • 交换机从非集群状态进入集群状态后,会自动将原有的非集群状态下的配置文件加上.bak的扩展名进行备份,以便去使能集群功能后,恢复原有配置。
    • 例如,原配置文件扩展名为.cfg,则备份配置文件扩展名为.cfg.bak。
    • 去使能交换机集群功能时,用户如果希望恢复交换机的原有配置,可以更改备份配置文件名并指定其为下一次启动的配置文件,然后重新启动交换机,恢复原有配置。
  • CSS集群连接方式
    • 集群卡集群
      • 集群成员交换机之间通过主控板上专用的集群卡及专用的集群线缆连接。
    • 业务口集群
      • 集群成员交换机之间通过业务板上的普通业务口连接,不需要专用的集群卡。
      • 同iStack,业务口集群一样涉及两种端口的概念:物理成员端口和逻辑集群端口。
      • 物理成员端口:成员交换机之间用于集群连接的普通业务口。物理成员端口用于转发需要跨成员交换机的业务报文或成员交换机之间的集群协议报文。
      • 逻辑集群端口:逻辑集群端口是专用于集群的逻辑端口,需要和物理成员端口绑定。集群的每台成员交换机上支持两个逻辑集群端口。

 

  • CSS集群成员加入与合并

 

  • CSS集群成员加入
    • 定义
      • 集群成员加入是指向稳定运行的单框集群系统中添加一台新的交换机。
      • 如图1所示,新交换机SwitchB将加入单框集群系统从而形成新的集群系统。原单框集群的交换机成为主交换机,新加入的交换机成为备交换机。
    • 两种情形
      • 在建立集群时,先将一台交换机使能集群功能后重启,重启后这台交换机将进入单框集群状态。然后再使能另外一台交换机的集群功能后重启,则后启动的交换机则按照集群成员加入的流程加入集群系统,成为备交换机。
      • 在稳定运行的两框集群场景中,将其中一台交换机重启,则这台交换机将以集群成员加入的流程重新加入集群系统,并成为备交换机。
    • CSS集群成员合并
      • 定义
        • 集群合并是指稳定运行的两个单框集群系统合并成一个新的集群系统。
        • 如图2所示,两个单框集群系统将自动选出一个更优的作为合并后集群系统的主交换机。被选为主交换机的配置不变,业务也不会受到影响,框内的备用主控板将重启。而备交换机将整框重启,以集群备的角色加入新的集群系统,并将同步主交换机的配置,该交换机原有的业务也将中断。
      • 两种情形
        • 将两台交换机分别使能集群功能后重启(重启后的两台交换机都属于单框集群),再使用集群线缆将两台交换机连接,之后会进入集群合并流程。
        • 集群链路或设备故障导致集群分裂。故障恢复后,分裂后的两个单框集群系统重新合并。
      • CSS集群分裂
        • 集群建立后,系统主用主控板和系统备用主控板定时发送心跳报文来维护集群系统的状态。
        • 集群线缆、集群卡、主控板等发生故障或者是其中一台交换机下电或重启将导致两台交换机之间失去通信。
        • 当两台交换机之间的心跳报文超时(超时时间为8秒)时,集群系统将分裂为两个单框集群系统,如图所示:

 

  • 集群分裂后,由于成员交换机运行着相同的配置文件,就会产生两个具有相同IP和MAC的集群系统。为防止由此引起网络故障,必须进行IP地址和MAC地址的冲突检查。
  • CSS集群多主检测
    • CSS集群直连检测

 

  • 直连检测的连接方式包括通过中间设备直连和集群成员交换机直接直连。
  • 直连检测方式是指集群成员交换机间通过普通线缆直连的专用链路进行多主检测。
  • 在直连检测方式中,集群系统正常运行时,不发送MAD报文。
  • 集群系统分裂后,分裂后的两台交换机周期性地通过检测链路发送MAD报文以进行多主冲突处理。
  • 直连检测的连接方式包括通过中间设备直连和集群成员交换机直接直连:
    • 通过中间设备直连:集群系统的成员交换机之间至少有一条检测链路与中间设备相连。此种方式适用于成员交换机相距较远的场景。
    • 直接直连:集群成员交换机直接直连可以避免由中间设备故障导致MAD检测失败。
  • CSS集群代理检测

 

  • 代理检测方式可分为单机作代理和两套集群系统互为代理。
  • 代理检测方式是在集群系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能。
  • 此种检测方式要求集群系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。
  • 与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。
  • 在代理检测方式中,集群系统正常运行时,集群成员交换机以30s为周期通过检测链路发送MAD报文。
  • 集群成员交换机对在正常工作状态下收到的MAD报文不做任何处理。
  • 集群分裂后,分裂后的两台交换机周期性地通过检测链路发送MAD报文以进行多主冲突处理。
  • MAD冲突处理
    • 集群分裂后,MAD冲突处理机制会使分裂后的单框集群系统处于Detect状态或Recovery状态。Detect状态表示集群正常工作状态,Recovery状态表示集群禁用状态。
    • MAD冲突处理机制如下:MAD分裂检测机制会检测到网络中存在两个处于Detect状态的集群系统即两台交换机,此时会进行集群优先级比较(优先级相同比较MAC地址,MAC地址相同则比较集群ID),优先级高的交换机将成为主交换机继续正常工作,另一台交换机会转入Recovery状态;并且在Recovery状态的交换机上,关闭除保留端口以外的其它所有物理端口,以保证该交换机不再转发业务报文。
  • MAD故障恢复
    • 通过修复故障链路,分裂后的集群系统重新合并为一个集群系统。重新合并的方式有以下两种:
    • 集群链路修复后,处于Recovery状态的集群系统重新启动,与Detect状态的集群系统合并,同时将被关闭的业务端口恢复Up,整个集群系统恢复。
    • 如果故障链路修复前,承载业务的Detect状态的集群系统也出现了故障。此时,可以先将Detect状态的集群系统从网络中移除,再通过命令行启用Recovery状态的集群系统,接替原来的业务,然后再修复原Detect状态集群系统的故障。故障修复后,重新合并集群系统。
  • CSS集群配置
    • 通过集群卡连接方式组建集群
      • [SwitchA] setcss modecss-card      \\配置集群卡连接方式
      • [SwitchA] setcss id1                        \\配置成员交换机的集群ID
      • [SwitchA] setcsspriority 100           \\配置设备的集群优先级
      • [SwitchA] cssenable                        \\使能交换机的集群功能
    • 通过业务口连接方式组建集群
      • [SwitchA] setcss modelpu       \\配置业务口连接方式
      • [SwitchA] setcss id1                  \\配置成员交换机的集群ID
      • [SwitchA] setcsspriority 100    \\配置设备的集群优先级
      • [SwitchA]interface css-port1  \\进入逻辑集群端口视图
      • [SwitchA-css-port1]port interface xgigabitethernet1/0/1 to xgigabitethernet1/0/2 enable \\配置业务口为物理成员端口,并将物理成员端口加入到逻辑集群端口中
      • [SwitchA]interface css-port2
      • [SwitchA-css-port2]port interface xgigabitethernet2/0/1 to xgigabitethernet2/0/2 enable
      • [SwitchA] cssenable                  \\使能交换机的集群功能
    • 5、Eth-Trunk
      • Eth-Trunk原理
        • Eth-Trunk基本原理
          • Eth-Trunk定义
            • 以太网链路聚合Eth-Trunk简称链路聚合。
            • 通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。
            • 同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
          • 实现方式

 

  • Trunk接口连接的链路可以看成是一条点到点的直连链路。
  • 在一个Trunk内,可以实现流量负载分担。
  • 同时也提供了更高的连接可靠性和更大的带宽。
  • 用户通过对逻辑口进行配置,实现各种路由协议以及其它业务部署。
  • 优势
    • 增加带宽
    • 提高可靠性
    • 负载分担
  • 聚合组和成员接口
    • 链路聚合组LAG是指将若干条以太链路捆绑在一起所形成的逻辑链路。
    • 组成Eth-Trunk接口的各个物理接口称为成员接口。
  • 活动接口和非活动接口、活动链路和非活动链路
    • 链路聚合组的成员接口存在活动接口和非活动接口两种。
    • 转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
    • 活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
  • 活动接口数上限阈值
    • 当前活动链路数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目。
    • 超过上限阈值的链路状态将被置为Down,作为备份链路。
  • 活动接口数下限阈值
    • 设置活动接口数下限阈值是为了保证最小带宽。
    • 当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。
  • 设备支持的链路聚合方式
    • 同板:是指链路聚合时,同一聚合组的成员接口分布在同一单板上。
    • 跨板:是指链路聚合时,同一聚合组的成员接口分布在不同的单板上。
    • 跨框:是指在集群场景下,成员接口分布在集群的各个成员设备上。
    • 跨设备:是指E-Trunk基于LACP进行了扩展,能够实现多台设备间的链路聚合。
  • Eth-Trunk转发原理
    • 转发原理
      • Eth-Trunk位于MAC与LLC子层之间,属于数据链路层。

 

  • 转发表
    • Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成。
    • HASH-KEY值:HASH-KEY值是根据数据包的MAC地址或IP地址等,经HASH算法计算得出。
    • 接口号:Eth-Trunk转发表表项分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。
  • 转发过程
    • Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址。
    • 根据HASH算法进行计算,得到HASH-KEY值。
    • Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。
    • 例如 ,某设备每Eth-Trunk支持最大加入接口数为8个,将接口1、2、3、4捆绑为一个Eth-Trunk接口,此时生成的转发表如图2所示。其中HASH-KEY值为0、1、2、3、4、5、6、7,对应的出接口号分别为1、2、3、4、1、2、3、4。
  • 负载分担方式
    • 为了避免数据包乱序情况的发生,Eth-Trunk采用逐流负载分担的机制,其中如何转发数据则由于选择不同的负载分担方式而有所差别。
    • 根据报文的源MAC地址进行负载分担;
    • 根据报文的目的MAC地址进行负载分担;
    • 根据报文的源IP地址进行负载分担;
    • 根据报文的目的IP地址进行负载分担;
    • 根据报文的源MAC地址和目的MAC地址进行负载分担;
    • 根据报文的源IP地址和目的IP地址进行负载分担;
    • 根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。
  • Eth-Trunk实现方式
    • 手工模式链路聚合

 

  • 手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。
  • 如图所示,DeviceA与DeviceB之间创建Eth-Trunk,手工模式下三条活动链路都参与数据转发并分担流量。
  • 当一条链路故障时,故障链路无法转发数据,链路聚合组自动在剩余的两条活动链路中分担流量。
  • LACP模式链路聚合
    • 为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议LACP(Link Aggregation Control Protocol)。
    • 聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合。
    • 作为链路聚合技术,手工模式Eth-Trunk可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽。
    • 同时能够检测到同一聚合组内的成员链路有断路等有线故障。
    • 但是无法检测到链路层故障、链路错连等故障。
    • LACP模式Eth-Trunk建立的过程
      • 两端互相发送LAC PDU报文。在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。

 

  • 确定主动端和活动链路。

 

  • 如图所示,两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,确定MAC地址小的一端为LACP主动端。
  • 选出主动端后,两端都会以主动端的接口优先级来选择活动接口,如果主动端的接口优先级都相同则选择接口编号比较小的为活动接口。两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。
  • 配置链路聚合
    • 配置手工模式链路聚合
      • [SwitchA]interface eth-trunk 1 \\创建Eth-Trunk接口,并进入Eth-Trunk接口视图
      • [SwitchA-Eth-Trunk1]mode manual load-balance \\配置链路聚合模式为手工模式
      • [SwitchA-Eth-Trunk1]trunkport gigabitethernet0/0/1 to 0/0/3 \\将成员接口加入聚合组
    • 配置LACP模式的链路聚合
      • [SwitchA]interface eth-trunk 1
      • [SwitchA-Eth-Trunk1]mode lacp \\配置链路聚合模式为LACP模式
      • [SwitchA-Eth-Trunk1]max active-linknumber2  \\配置活动接口上限阈值为2
      • [SwitchA]interface gigabitethernet0/0/1  \\将成员接口加入聚合组
      • [SwitchA-GigabitEthernet0/0/1]eth-trunk 1
      • [SwitchA]interface gigabitethernet0/0/2
      • [SwitchA-GigabitEthernet0/0/2]eth-trunk 1
      • [SwitchA]interface gigabitethernet0/0/3
      • [SwitchA-GigabitEthernet0/0/3]eth-trunk 1
    • 集群环境下的链路聚合
      • 将集群设备不同设备中的物理接口聚合到一个逻辑接口Eth-Trunk接口中。
      • 当集群设备中某台设备故障或加入Eth-Trunk接口中的物理成员口故障,可通过集群设备间线缆跨框传输数据流量,从而保证了数据流量的可靠传输,同时实现了设备间的备份。
      • 在网络无故障的情况下从DeviceB或DeviceC上来的流量,通过本设备中的成员口优先本地转发,而不是像A图中通过集群设备间线缆跨框转发。

 

  • 在设备集群情况下,为了保证流量的可靠传输,流量的出接口设置为Eth-Trunk接口。那么Eth-Trunk接口中必定存在跨框成员口。当集群设备转发流量时,Eth-Trunk接口通过HASH算法可能会选择跨框的成员口。由于集群设备间线缆带宽有限,跨框转发流量增加了集群设备之间的带宽承载压力,同时也降低了流量转发效率。为了解决这个问题,可以使能Eth-Trunk接口流量本地优先转发。
  • 如上图所示,DeviceB和DeviceC组成集群,集群设备和DeviceA之间用Eth-Trunk连接。通过在集群设备上部署接口流量本地优先转发功能,可实现:
    • 入本设备流量从本设备转发:当Eth-Trunk接口在DeviceB有出接口且出接口无故障时,DeviceB的Eth-Trunk接口转发表中将只包含DeviceB的出接口。这样DeviceB到DeviceA的流量在通过HASH算法选择出接口时只能选中DeviceB的接口,流量从DeviceB本设备转发出去。
    • 入本设备流量跨框转发:当Eth-Trunk接口在DeviceB本设备无出接口或者出接口全部故障时,DeviceB的Eth-Trunk转发表中将包含Eth-Trunk接口中所有可转发的出接口。这样DeviceB到DeviceA的流量在通过HASH算法选择出接口时将选中DeviceC上的出接口,流量将通过DeviceC跨框转发。
  • E-Trunk
    • E-Trunk(Enhanced Trunk)是一种实现跨设备链路聚合的机制,基于LACP(单台设备链路聚合的标准)进行了扩展,能够实现多台设备间的链路聚合,从而把链路可靠性从单板级提高到了设备级。
    • 如图所示,CE双归接入PE1和PE2,通过在PE节点部署E-Trunk,当CE至PE1的链路或PE1节点故障时,流量可以切换到CE至PE2的链路,从而实现设备级保护。

 

  • E-Trunk机制主要应用于CE双归接入VPLS、VLL、PWE3网络时,CE与PE间的链路保护以及对PE设备节点故障的保护。在没有使用E-Trunk前,CE通过Eth-Trunk链路只能单归到一个PE设备。如果Eth-Trunk出现故障或者PE设备故障,CE将无法与PE设备继续进行通信。使用E-Trunk后,CE可以双归到PE上,从而实现设备间保护
  • 如图,CE分别与PE1和PE2直连,PE1和PE2之间运行E-Trunk。PE侧,需要在PE1和PE2设备上分别创建ID相同的E-Trunk和Eth-Trunk,并将Eth-Trunk加入到E-Trunk。CE侧,在CE设备上配置LACP模式的Eth-Trunk,此Eth-Trunk分别与PE1和PE2设备相连。对CE设备而言,E-Trunk不可见。
  • PE1与PE2设备之间通过E-Trunk报文进行主备协商,确定E-Trunk的主备状态。正常情况下两台PE的协商结果是一个为主用一个为备用。PE设备上E-Trunk主备状态是根据报文中所携带的E-Trunk优先级和E-Trunk系统ID确定的。优先级的数值越小,优先级越高,优先级高的为主用。如果E-Trunk优先级相同,那么E-Trunk系统ID小的为主用。PE1为主,PE1的Eth-Trunk10为主,链路状态为Up。PE2为备,PE2的Eth-Trunk10为备,链路状态为Down。
  • 如果CE到PE1间的链路出现故障:PE1会向对端发送E-Trunk报文,报文中携带PE1的Eth-Trunk10故障的信息。PE2收到E-Trunk报文后,发现对端Eth-Trunk10故障,则PE2设备上Eth-Trunk10的状态将变为主。然后经过LACP协商,PE2设备上的Eth-Trunk10的状态变为Up。这样PE2设备的Eth-Trunk状态变为Up,CE的流量会通过PE2转发,以达到对CE的流量进行保护的目的。
  • 如果PE1设备出现故障:如果PE设备上配置了BFD,PE2检测到BFD会话状态为Down后,PE2设备从备用状态变为主用状态,PE2的Eth-Trunk10状态也变为主。如果PE设备上没有配置BFD,PE2设备上的定时器超时后仍然没有收到PE1设备发送的E-Trunk报文,PE2设备从备用状态变为主用状态,PE2的Eth-Trunk10状态也变为主。经过LACP协商,PE2设备上的Eth-Trunk10的状态变为Up。CE的流量会通过PE2转发,以达到对CE的流量进行保护的目的。
  • 6、MSTP
    • STP/RSTP
      • STP和RSTP的缺陷
        • RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
        • 如图所示网络中,生成树结构在图中用虚线表示,S6为根交换设备。S2和S5之间、S1和S4之间的链路被阻塞。HostA和B同属于VLAN2,由于S2和S5之间的链路被阻塞,S3和S6之间的链路又不允许VLAN2的报文通过,因此HostA和HostB之间无法互相通讯。

 

  • 在STP和RSTP的算法中,所有VLAN共享一课生成树,会造成部分VLAN无法通信、次优路径、流量无法负载分担等问题。
  • 为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP。
  • MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
  • MSTP对STP和RSTP的改进
    • MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。
    • 每棵生成树叫做一个多生成树实例MSTI (Multiple Spanning Tree Instance),每个域叫做一个MST域 (MST Region: Multiple Spanning Tree Region)。

 

  • 所谓生成树实例就是多个VLAN的一个集合。通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在端口上的转发状态取决于端口在对应MSTP实例的状态。
  • 如图所示,MSTP通过设置VLAN映射表(即VLAN和MSTI的对应关系表),把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI,即同一VLAN的数据只能在一个MSTI中传输,而一个MSTI可能对应多个VLAN。
  • 经计算,最终生成两棵生成树:MSTI1以S4为根交换设备,转发VLAN2的报文。MSTI2以S6为根交换设备,转发VLAN3的报文。
  • 这样所有VLAN内部可以互通,同时不同VLAN的报文沿不同的路径转发,实现了负载分担。
  • MSTP实现原理
    • MSTP基本概念

 

  • MST由交换网络中的多台交换设备以及它们间的网段所构成。MSTI是MST域下实例,一个MST域下可以有多个MSTI。
  • VLAN映射表描述了VLAN和MSTI之间的映射关系。如图2所示,MST  Region4中,VLAN1映射到MSTI1,VLAN2映射到MSTI2,其余VLAN映射到MSTI3。
  • 公共生成树CST是连接交换网络内所有MST域的一棵生成树。如果把每个MST域看作是一个节点,CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树。
  • 内部生成树IST(InternalSpanning Tree)是各MST域内的一棵生成树。IST是一个特殊的MSTI,MSTI的ID为0,通常称为MSTI0。
  • SST(SingleSpanning Tree):运行STP或RSTP的交换设备只能属于一个生成树;MST域中只有一个交换设备,这个交换设备构成单生成树。
  • 所有MST域的IST加上CST就构成一棵完整的生成树,即CIST。
  • 域根(RegionalRoot)分为IST域根和MSTI域根。
    • IST域根如图所示,在MST域中IST生成树中距离总根最近的交换设备是IST域根。
    • 一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。如图3所示,域中不同的MSTI有各自的域根。
  • 总根是CIST(Commonand Internal Spanning Tree)的根桥。如图1中的S1。
  • 主桥(MasterBridge)也就是ISTMaster,它是域内距离总根最近的交换设备。如图1中的黄色交换机。如果总根在MST域中,则总根为该域的主桥。
  • 端口角色:同RSTP,MSTP中定义了根端口、指定端口、Alternate端口、Backup端口和边缘端口。新增了Master端口和域边缘端口。
  • 端口状态:同RSTP,MSTP定义的端口状态有Forwarding,Learning, Discarding。
  • MSTP拓扑计算
    • CIST的计算
      • 经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为CIST的树根。
      • 在每个MST域内MSTP通过计算生成IST。
      • 同时MSTP将每个MST域作为单台交换设备对待,通过计算在MST域间生成CST。
      • CST和IST构成了整个交换设备网络的CIST。
    • MSTI的计算
      • 在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。
      • 每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似。
    • MSTP对拓扑变化的处理
      • MSTP拓扑变化处理与RSTP拓扑变化处理过程类似。
    • MSTI的特点:
      • 每个MSTI独立计算自己的生成树,互不干扰。
      • 每个MSTI的生成树计算方法与STP基本相同。
      • 每个MSTI的生成树可以有不同的根,不同的拓扑。
      • 每个MSTI在自己的生成树内发送BPDU。
      • 每个MSTI的拓扑通过命令配置决定。
      • 每个端口在不同MSTI上的生成树参数可以不同。
      • 每个端口在不同MSTI上的角色、状态可以不同。
    • 在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发:
      • 在MST域内,沿着其对应的MSTI转发。
      • 在MST域间,沿着CST转发。
    • MSTP快速收敛机制
      • 除支持RSTP所支持的普通P/A (Proposal/Agreement)机制外,MSTP还支持增强方式的P/A机制。
      • 如图所示,在MSTP中,P/A机制工作过程如下:

 

  • 上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
  • 上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding状态。
  • 下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
  • 缺省情况下,华为数据通信设备使用增强的快速迁移机制。
  • 如果华为数据通信设备和其他制造商的设备进行互通,而其他制造商的设备P/A机制使用普通的快速迁移机制,此时,可在华为数据通信设备上通过设置P/A机制为普通的快速迁移机制,从而实现华为数据通信设备和其他制造商的设备进行互通。
  • MSTP配置
    • [SwitchA] stpregion-configuration \\进入MST域视图
    • [SwitchA-mst-region]region-name RG1 \\配置MST域的域名
    • [SwitchA-mst-region]instance 1 vlan 2 to10 \\配置多生成树实例和VLAN的映射关系
    • [SwitchA-mst-region]instance 2 vlan 11to 20
    • [SwitchA-mst-region]active region-configuration \\激活MST域的配置,使域名、VLAN映射表和MSTP修订级别生效
    • [SwitchA] stpinstance 1 root primary \\配置当前设备为根桥设备
    • [SwitchA] stpinstance 2 root secondary \\配置当前交换设备为备份根桥设备
    • [SwitchA] stp pathcost-standardlegacy \\配置SwitchA的端口路径开销值的计算方法为华为计算方法
    • [SwitchA] stpenable \\在SwitchA上启动MSTP
    • 其他注意事项
      • 确认STP模式是否为MSTP
      • 进入MST域视图进行配置
      • Activeregion-configutstion激活MST域配置
      • Displaythis 查看MST域内配置
    • 思考题
      • 如何清除MAC地址表项和ARP表项?
        • 清除所有动态MAC(系统视图):undo mac-address dynamic
        • 清除所有静态MAC(系统视图):undo mac-address static
        • 删除一条静态ARP表项(系统视图):undo arp static
        • 删除多条ARP表项(用户视图):reset arp
      • Eth-Trunk是否支持抢占功能?
        • 只有在LACP模式下,Eth-Trunk才支持优先级抢占功能,可以执行lacp preempt enable命令使能优先级抢占功能。
        • 在LACP模式下,当活动链路中出现故障链路时,系统会从备用链路中选择优先级最高的链路替代故障链路。
        • 如果被替代的故障链路恢复了正常,而且该链路的优先级又高于替代自己的链路,这种情况下,如果使能了LACP优先级抢占功能,高优先级链路会抢占低优先级链路,回切到活动状态。
        • 要求Eth-Trunk两端LACP抢占功能使能情况配置一致,即:统一使能或不使能。
      • MSTP域如何配置?
        • MSTP的域信息在stpregion-configuration视图下配置,同一个域中各台设备的域配置信息必须完全一致。存在任何一点差异,就不在同一个域中。MSTP可以配置的域信息有:
          • Format selector:格式选择符,在命令行不能配置,默认为0;
          • Region name:域名,默认是桥MAC地址;
          • Revision level:修订级别,默认是0;
          • Instance/Vlans Mapped:实例和VLAN映射表,默认全部VLAN映射到实例0。
        • 总结
          • MAC地址表
          • 免费ARP
          • iStack
          • CSS
          • Eth-Trunk
          • MSTP