爱情有备胎,数据中心有MC-LAG

先谈谈情怀

最近咱51CTO开放了关注功能,很是高兴有这么多的朋友关注姜汁啤酒的 - "新西兰资深网工的平常",在这里先谢谢你们的关心与承认。
郭德纲在德云社曾经说过,台下观众都是衣食父母,惟有尽力演好相声、抖好包袱,让你们开心才是最真诚的回馈方式。而在51cto,对于那些已经关注姜汁啤酒,或即将关注姜汁啤酒的朋友们,我也应该更加努力,给你们贡献更好更有质量的技术文章。
为此,借助2018狗年春节到来之际特定准备了《数据中心网络系列技术》系列教程文章,同你们分享。算法

连载文章技术主题

此数据中心技术连载内容以下:服务器

  1. MC-LAG
  2. Virtual-Chassis 和Virtual-Chassis Fabric
  3. IP Fabric
  4. VXLAN
  5. E***
  6. 数据中心互联技术
  7. 案例:Facebook数据中心架构简介

这些文章会在接下来一段时间为你们一一呈上。今天为第一篇:MC-LAG网络

进入正题。第一篇:MC-LAG架构

引言

不管是传统的企业网,或现在的数据中心。
都有一个共通的需求:高可用性。
同时也存在一个共同的问题:潜在的网络单点故障。负载均衡

常见网络冗余方式以下图:运维

爱情有备胎,数据中心有MC-LAG

大体分析以上各类常见冗余的利弊。ide

图1: 很明显,无冗余,单点链路故障,单点设备故障。风险系数极高。
图2:设备接入交换机到汇聚之间存在捆绑链路。但相对图1,此方案进步了很多,尤为是解决了单点链路故障的问题。
但其余问题依然存在,若接入层交换机或者中间的汇聚交换机由于设备故障挂掉,那有再多的捆绑链路都无济于事。
图3:升级设计,不就是怕交换机设备故障么,我接入交换机上堆叠,上联两个汇聚节点。看似很完美。工具

可仔细分析,图3的设计的确解决了设备单点故障的问题。但观察拓扑图,多链路多设备冗余带来的反作用就是潜在网络环路风险的问题。
即两台汇聚和下联接入之间的三角区存在潜在的环路风险。
总有艺高人胆大的:不怕,我上spanning-tree,再不济我能够用路由协议跑三层。我就不信搞不定这个环路。学习

那请问,不管是用spanning-tree仍是三层路由协议,如何可以充分使用上联的两条链路作到流量的负载均衡呢?STP默认会block掉一个端口,路由协议会参考不一样的metric值选路。测试

开个脑洞,有没有一种网络技术,把原来设备一对一的链路捆绑扩展到一台设备对多台设备的链路捆绑呢?
你们知道,捆绑链路(aggregation link 或 port-channel)自然基于hash算法负载均衡,若是上述假设成立的话,咱们就能够把接入层交换机分别到不一样汇聚的链路,捆起来并造成一个虚拟接口,并且流量还能完美的负载均衡到上联的两台汇聚设备。
答案是必须有,要否则我实在写不下去了。:-p
此技术就是今天咱们要讨论的主角-MC-LAG

MC-LAG闪亮登场

MC-LAG,全名Multi-Chassis Link Aggregation Group,或者在Cisco里面叫作Virtual Port-channel (VPC)。
顾名思义,多设备间的链路聚合组。
部署MC-LAG后,咱们能够实现所谓“脚踩两只船”的效果,即一台接入设备能够同时经过链路捆绑接入上游两台物理设备。

MC-LAG使用场景

那什么状况下使用MC-LAG比较理想呢:
在数据中心机房内,一台服务器多个物理网卡上联机架交换机时,可使用MC-LAG实现服务器到多个交换机的链路二层互联。
在普通企业网络中,接入层交换机到多个上联汇聚交换机的二层互联。或者甚至汇聚交换机到上联核心亦可使用MC-LAG。

爱情有备胎,数据中心有MC-LAG

两台MC-LAG邻居如何一块儿协商链路捆绑

打底:一对一基于LACP协商的普通链路捆绑简介

在开始讨论MC-LAG如何协商以前,让咱们先看看普通的链路聚合协议 - IEEE 802.3ad定义的链路聚合。
普通的链路聚合,例如Cisco的Port-channel或者Juniper的LAG,均是两台设备之间经过LACP协议协商参数并达成一致之后,捆绑链路方才可以使用。
以下图所示:
爱情有备胎,数据中心有MC-LAG
那在普通LACP协商期间,两台设备都协商了什么参数?
让咱们来看看一个Juniper QFX交换机LACP端口输出内容:


LACP info:        Role     System             System       Port     Port    Port 
                         priority         identifier   priority   number     key 

  xe-0/0/0       Actor        127  02:05:86:71:c8:00       127       1     2
  xe-0/0/0     Partner        127  02:05:86:71:94:00       127       1     2
  xe-0/0/1       Actor        127  02:05:86:71:c8:00       127       2     2
  xe-0/0/1     Partner        127  02:05:86:71:94:00       127       2     2

上述输出看出LACP的几个常见参数:
系统优先级(System Priority):默认127,用于肯定LACP协商期间,链路两端的设备谁主导此次协商,越低越好。若是优先级相同,靠MAC地址来肯定。
系统ID(System ID):由系统MAC地址生成。
管理Key(Admin key):同一组LACP链路捆绑端口均要求相同的admin-key。
端口号:系统端口ID。


以上参数你们平时在建立链路聚合的时候,不须要人为配置,由于设备会自动协商。
以Cisco为例,你只须要选择channel-group xxx mode active就好了。
而Juniper也很简单:set interfaces aexxx aggregated-ether-options lacp active
(注:xxx指代你想要的捆绑链路接口号。)
一旦双方都配置完成,链路捆绑就起来了,easy!

MC-LAG协商机制

看完普通的链路两端一对一模式,当切换到链路两端二对一的MC-LAG模式下,状况就比较复杂了。
以下图:
爱情有备胎,数据中心有MC-LAG
首先,一对一的状况下,无论你捆绑多少条链路,链路一端都是在同一台设备内。这一台设备能够知晓全部端口信息并和对端协商。
可是,MC-LAG可不同,它是两台邻居设备尝试和一台远端设备协商链路捆绑。
介于此,就相似于HSRP、VRRP协议,你须要在冗余设备两侧指定相关参数,两端参数一致才能经过最后的协商。

MC-LAG 邻居需手工配置的参数(如下参数MC-LAG邻居之间配置相同):
MC-AE-ID:MC-LAG捆绑号。
MC-AE 模式:有active-standby和active-active模式,通常使用active-active模式。
LACP的状态:与传统基于LACP的链路捆绑方式相同,MC-LAG里面须要指定LACP的状态是Active仍是Passive。Active负责发起协商,Passive被动模式等待协商。
LACP Admin-key:指定管理key,通常能够与链路捆绑的端口号相同,例如接口ae1,那么Admin-key就是1。
LACP system-ID:系统ID,MAC地址格式,也须要手工指定。

MC-LAG 邻居需手工配置的参数(如下参数MC-LAG邻居之间须要单独指定):
MC-AE Status-control:肯定两个MC-LAG邻居谁是主设备,谁是备份设备。主MC-LAG设备主导与链路对端设备的协商过程。
MC-AE Chassis ID:MC-LAG的设备号,分别为0和1。邻居设备两端各配置一个号码。


看完这么多密密麻麻参数,是否是在联想一个问题?参数这么多,两台MC-LAG邻居之间如何沟通呢?
作网络的,都熟悉老套路了,接下来的剧情就会是,出现一个协议,用于二者之间沟通。
没错,套路以下:

设备间控制协议:ICCP (Inter-Chassis Control Protocol)

ICCP,一个基于TCP 端口号33012的协议,用于MC-LAG的两台邻居设备之间沟通并同步例如学习到的ARP信息以及MAC地址信息等。

为了支持ICCP协议的TCP协商,咱们还须要在两台MC-LAG邻居设备上配置一个Keeplive的心跳线IP做为ICCP互联地址。
相似于HSRP或VRRP,ICCP也须要在两台设备之间选择出一个Active活动设备和一个backup,Active活动设备用于整个MC-LAG协商,如何定义Active和backup咱们在后续配置中会介绍到。


咋看之下,ICCP这个协议就如人的左右脑之间的桥梁,负责同步两台设备之间的状态。但若因为某些缘由,例如支持ICCP的IP地址接口down掉了,两台设备岂不是直接如马航的飞机同样,莫名其妙失联了?
其后果可能致使两台邻居设备均宣告本身是Active山寨寨主,并拆掉原来协商的LACP捆绑链路,这势必会致使重大网络故障。
可否在设备其余IP地址的地方再创建一条备用的心跳线链路,当主要的ICCP心跳线切断之后,备用的还能检测到对方状态,岂不是更好?
因此,以Juniper为例的公司,它就利用带外管理接口IP地址为辅助心跳线来做为ICCP的双保险。
以下图所示:
爱情有备胎,数据中心有MC-LAG

备胎中的备胎:设备间备用保护链路 IC-PL(InterChassis-LinkProtection Link )

你们知道,基于LACP的链路捆绑自然就有负载均衡的效果。设备在发送数据包时就会随机选择一条链路。
那假设,其中一条链路断掉了。做为普通的一对一的链路捆绑设备,它很容易就把流量从一条链路切换到另一条,毕竟都在同一个设备内。切换起来毫秒级。
一样的场景,若是放到MC-LAG上会是什么状况呢?
爱情有备胎,数据中心有MC-LAG
看到上面的图示,相信你们就很容易理解为何须要IC-PL链路了。
1.若没有IC-PL链路,当MC-LAG下的一条捆绑链路down掉之后,MC-LAG成员没法找到替换路径把本该发往链路远端设备的流量转发出去。如图左所示。
2.而配置IC-PL链路之后,当一样的状况出现时,MC-LAG成员就会在ICCP的协调下自动转发流量到IC-PL链路上,并经过MC-LAG邻居最终把流量发送到远端设备。

IC-PL限制条件:(很重要,这也是为神马IC-PL不会致使网络环路。)

在ICCP的管制下, IC-PL存在以下限制条件。(很重要哦)
1.在MC-LAG捆绑链路没有任何故障的状况下,IC-PL只传输MC-LAG邻居设备自身产生的广播,组播数据包。
例如两台MC-LAG设备之间的VRRP能够穿透IC-PL。创建在ICCP心跳线网段上的OSPF hello数据包能够穿透,由于是组播包。可是DBD数据包却没法发送给邻居,结果致使OSPF邻居会永远的卡在 Exstart状态上。同理,其余单播报文也没法穿透。

  1. 若MC-LAG的其中一条捆绑链路出现故障时,IC-PL会被开启并用于传输其余数据包。换而言之,IC-PL就是所谓的“备胎中的备胎”,主链路挂了之后,根据ICCP的管控立刻开始转发数据。

配置MC-LAG

讲了这么多理论,让咱们来个实际点的例子看看如何正确配置MC-LAG
此案例采用GNS3模拟器外加3台vQFX Juniper 数据中心交换机搭建而成,拓扑以下:
爱情有备胎,数据中心有MC-LAG

为方便你们入手,先看SWC03这一个单点交换机的配置:

SWC03 接口配置

#全局定义链路捆绑的虚拟接口数(Juniper自身特性)
set chassis aggregated-devices ethernet device-count 5 #能够容许最多5个AE接口

#去往主机的接口和VLAN:
set vlans vlan-10 vlan-id 10
set interfaces xe-0/0/2 unit 0 family ethernet-switching interface-mode access
set interfaces xe-0/0/2 unit 0 family ethernet-switching vlan members 10  #去往主机PC1,端口为access,vlan号为10。

#配置LACP接口成员信息
set interfaces xe-0/0/0 description "To SWC01"
set interfaces xe-0/0/0 ether-options 802.3ad ae0   #指定xe-0/0/0 加入ae0的链路捆绑
set interfaces xe-0/0/1 description "To SWC02"
set interfaces xe-0/0/1 ether-options 802.3ad ae0  #指定xe-0/0/1 加入ae0的链路捆绑
set interfaces xe-0/0/2 description "To PC1"

#设定LACP参数:
set interfaces ae0 aggregated-ether-options lacp active  #主动发起协商
set interfaces ae0 aggregated-ether-options lacp periodic slow #设定hello time 为30秒。
set interfaces ae0 unit 0 family ethernet-switching interface-mode trunk  #trunk 模式,容许PC客户机器VLAN10 穿过。
set interfaces ae0 unit 0 family ethernet-switching vlan members 10

以上配置就是普通基于LACP的链路捆绑,对SWC03而言,它根本不清楚对端是普通链路捆绑仍是MC-LAG。
重点看看SWC01的配置

SWC01配置

#全局定义链路捆绑的虚拟接口数(Juniper自身特性)
set chassis aggregated-devices ethernet device-count 5 #能够容许最多5个AE接口

#去往主机的接口和VLAN:
set vlans VLAN10 vlan-id 10
set interfaces xe-0/0/2 description "To PC2"
set interfaces xe-0/0/2 unit 0 family ethernet-switching interface-mode access
set interfaces xe-0/0/2 unit 0 family ethernet-switching vlan members 10

#配置ICCP协议和对于的VLAN,IP地址接口。
set vlans iccp vlan-id 100
set vlans iccp l3-interface irb.100

set interfaces irb unit 100 family inet address 100.1.1.1/24

set interfaces em0 unit 0 family inet address 192.168.240.2/24
#此为带外管理接口,用于ICCP备份链路

set interfaces xe-0/0/0 description "To SWC02" 
set interfaces xe-0/0/0 unit 0 family ethernet-switching interface-mode trunk
set interfaces xe-0/0/0 unit 0 family ethernet-switching vlan members 10 
set interfaces xe-0/0/0 unit 0 family ethernet-switching vlan members 100
 #此物理接口将会用于ICCP和IP-CL接口。在实际工程中,建议ICCP接口与IP-CL接口分离,并使用一个或者多个万兆链路做为IP-CL,毕竟这是备份数据链路,因此须要高带宽作保证。

set protocols iccp local-ip-addr 100.1.1.1 #指定本地ICCP 地址
set protocols iccp peer 100.1.1.2 redundancy-group-id-list 1 
set protocols iccp peer 100.1.1.2 backup-liveness-detection backup-peer-ip 192.168.240.3
#使用带外管理IP做为ICCP备份链路,192.168.240.3 为SWC02的带外IP地址。
set protocols iccp peer 100.1.1.2 liveness-detection minimum-interval 3000 #配置BFD用于快速检测ICCP链路状态,最短建议8秒以上。
set protocols iccp peer 100.1.1.2 liveness-detection multiplier 3

#配置IC-PL对端IP(SWC02)和IC-PL接口,
set multi-chassis multi-chassis-protection 100.1.1.2 interface xe-0/0/0  #

#配置带外管理接口
#配置MC-LAG接口:
set interfaces xe-0/0/3 description "To SWC03"
set interfaces xe-0/0/3 ether-options 802.3ad ae0

set interfaces ae0 aggregated-ether-options lacp active #指定LACP主动协商模式
set interfaces ae0 aggregated-ether-options lacp periodic slow #与SWC03相同,指定30秒的hello timer。
set interfaces ae0 aggregated-ether-options lacp system-id 01:01:01:01:01:01 #定义系统Id,须要与SWC02的相同,重要!!!
set interfaces ae0 aggregated-ether-options lacp admin-key 1 #定义admin-key,须要与SWC02的相同,重要!!!
set interfaces ae0 aggregated-ether-options mc-ae mc-ae-id 1 #定义MC-LAG号码,须要与SWC02的相同,重要!!!
set interfaces ae0 aggregated-ether-options mc-ae redundancy-group 1  #定义冗余组为1。
set interfaces ae0 aggregated-ether-options mc-ae chassis-id 0 #定义设备号,SWC1=0,SWC2=1
set interfaces ae0 aggregated-ether-options mc-ae mode active-active #定义主动模式
set interfaces ae0 aggregated-ether-options mc-ae status-control active  #定义SWC1为MC-LAG两台设备中的主设备,负责主导协商过程。

set interfaces ae0 unit 0 family ethernet-switching interface-mode trunk
set interfaces ae0 unit 0 family ethernet-switching vlan members 10
#最后,在这个去往SWC03的AE0上,一样放行业务VLAN 10.

SWC02配置

#SWC02的配置除了其中某些参数不一样以外,其余参数与SWC01相似,在这里就不一一赘述了。

set chassis aggregated-devices ethernet device-count 5  

set vlans VLAN10 vlan-id 10
set vlans iccp vlan-id 100
set vlans iccp l3-interface irb.100

set protocols iccp local-ip-addr 100.1.1.2
set protocols iccp peer 100.1.1.1 redundancy-group-id-list 1
set protocols iccp peer 100.1.1.1 backup-liveness-detection backup-peer-ip 192.168.240.2
set protocols iccp peer 100.1.1.1 liveness-detection minimum-interval 3000
set protocols iccp peer 100.1.1.1 liveness-detection multiplier 3

set multi-chassis multi-chassis-protection 100.1.1.1 interface xe-0/0/0

set interfaces xe-0/0/0 description "To SWC01"
set interfaces xe-0/0/0 unit 0 family ethernet-switching interface-mode trunk
set interfaces xe-0/0/0 unit 0 family ethernet-switching vlan members 10
set interfaces xe-0/0/0 unit 0 family ethernet-switching vlan members 100

set interfaces xe-0/0/2 description "To PC3"
set interfaces xe-0/0/2 unit 0 family ethernet-switching interface-mode access
set interfaces xe-0/0/2 unit 0 family ethernet-switching vlan members 10

set interfaces xe-0/0/3 description "To SWC03"
set interfaces xe-0/0/3 ether-options 802.3ad ae0

set interfaces ae0 aggregated-ether-options lacp active
set interfaces ae0 aggregated-ether-options lacp periodic slow
set interfaces ae0 aggregated-ether-options lacp system-id 01:01:01:01:01:01
set interfaces ae0 aggregated-ether-options lacp admin-key 1
set interfaces ae0 aggregated-ether-options mc-ae mc-ae-id 1
set interfaces ae0 aggregated-ether-options mc-ae redundancy-group 1
set interfaces ae0 aggregated-ether-options mc-ae chassis-id 1
set interfaces ae0 aggregated-ether-options mc-ae mode active-active
set interfaces ae0 aggregated-ether-options mc-ae status-control standby
set interfaces ae0 unit 0 family ethernet-switching interface-mode trunk
set interfaces ae0 unit 0 family ethernet-switching vlan members 10

set interfaces em0 unit 0 family inet address 192.168.240.3/24

验证结果

配置完成之后,让咱们先看看从SWC03的角度LACP以下:

SWC03

root@SWC03> show lacp interfaces extensive 
Aggregated interface: ae0
    LACP state:       Role   Exp   Def  Dist  Col  Syn  Aggr  Timeout  Activity
      xe-0/0/0       Actor    No    No   Yes  Yes  Yes   Yes     Slow    Active
      xe-0/0/0     Partner    No    No   Yes  Yes  Yes   Yes     Slow    Active
      xe-0/0/1       Actor    No    No   Yes  Yes  Yes   Yes     Slow    Active
      xe-0/0/1     Partner    No    No   Yes  Yes  Yes   Yes     Slow    Active
    LACP protocol:        Receive State  Transmit State          Mux State 
      xe-0/0/0                  Current   Slow periodic Collecting distributing
      xe-0/0/1                  Current   Slow periodic Collecting distributing
        LACP info:        Role     System             System       Port     Port    Port 
                             priority         identifier   priority   number     key 

      xe-0/0/0       Actor        127  02:05:86:71:33:00       127       1     1
      xe-0/0/0     Partner        127  01:01:01:01:01:01       127       3     1
      xe-0/0/1       Actor        127  02:05:86:71:33:00       127       2     1
      xe-0/0/1     Partner        127  01:01:01:01:01:01       127   32771     1

{master:0}
root@SWC03>

很完美,它的两个接口均参与了LACP链路捆绑,并且你们注意观察,xe-0/0/0和xe-0/0/1的Partner对端部分显示的System-id是配置的1:1:1:1:1:1,Port-key也是上述配置的1。这些参数都是咱们以前预先人为设定好的。

SWC01输出结果

#先看看ICCP的协商结果:
root@SWC01> show iccp 

Redundancy Group Information for peer 100.1.1.2
  TCP Connection       : Established
  Liveliness Detection : Up
##SWC01与SWC02创建了TCP ICCP链接,状态是Established.
Backup liveness peer status: Up
  Redundancy Group ID          Status
    1                           Up   
#SWC01和SWC02经过带外管理网络成功创建备份连接。
Client Application: lacpd
  Redundancy Group IDs Joined: 1 

Client Application: l2ald_iccpd_client
  Redundancy Group IDs Joined: 1 
#阐明了LACP是ICCP的客户端,正在使用ICCP提供的服务。

#MC-LAG 协商状态,并指明了IC-PL接口。
root@SWC01> show interfaces mc-ae 
 Member Link                  : ae0
 Current State Machine's State: mcae active state
 Local Status                 : active
 Local State                  : up
 Peer Status                  : active
 Peer State                   : up
     Logical Interface        : ae0.0
     Topology Type            : bridge
     Local State              : up
     Peer State               : up
     Peer Ip/MCP/State        : 100.1.1.2 xe-0/0/0.0 up #

#LACP协商状态
root@SWC01> show lacp interfaces extensive 
Aggregated interface: ae0
    LACP state:       Role   Exp   Def  Dist  Col  Syn  Aggr  Timeout  Activity
      xe-0/0/3       Actor    No    No   Yes  Yes  Yes   Yes     Slow    Active
      xe-0/0/3     Partner    No    No   Yes  Yes  Yes   Yes     Slow    Active
    LACP protocol:        Receive State  Transmit State          Mux State 
      xe-0/0/3                  Current   Slow periodic Collecting distributing
        LACP info:        Role     System             System       Port     Port    Port 
                             priority         identifier   priority   number     key 

      xe-0/0/3       Actor        127  01:01:01:01:01:01       127       3     1
      xe-0/0/3     Partner        127  02:05:86:71:33:00       127       1     1

#最后,以上输出显示,SWC01的xe-0/0/3成功创建MC-LAG链路捆绑,而且可以看到SWC03的MAC地址组成的System-ID。

SWC02输出结果

root@SWC02> show iccp 

Redundancy Group Information for peer 100.1.1.1
  TCP Connection       : Established
  Liveliness Detection : Up

Backup liveness peer status: Up
  Redundancy Group ID          Status
    1                           Up   

Client Application: lacpd
  Redundancy Group IDs Joined: 1 

Client Application: l2ald_iccpd_client
  Redundancy Group IDs Joined: 1 

{master:0}
root@SWC02> show interfaces mc-ae 
 Member Link                  : ae0
 Current State Machine's State: mcae active state
 Local Status                 : active
 Local State                  : up
 Peer Status                  : active
 Peer State                   : up
     Logical Interface        : ae0.0
     Topology Type            : bridge
     Local State              : up
     Peer State               : up
     Peer Ip/MCP/State        : 100.1.1.1 xe-0/0/0.0 up

{master:0}
root@SWC02> show lacp interfaces 
Aggregated interface: ae0
    LACP state:       Role   Exp   Def  Dist  Col  Syn  Aggr  Timeout  Activity
      xe-0/0/3       Actor    No    No   Yes  Yes  Yes   Yes     Slow    Active
      xe-0/0/3     Partner    No    No   Yes  Yes  Yes   Yes     Slow    Active
    LACP protocol:        Receive State  Transmit State          Mux State 
      xe-0/0/3                  Current   Slow periodic Collecting distributing

{master:0}
root@SWC02>

PC客户端ping 测试

让咱们从PC1 分别ping PC2和PC3

PC1> ping 10.1.1.2
84 bytes from 10.1.1.2 icmp_seq=1 ttl=64 time=160.089 ms
84 bytes from 10.1.1.2 icmp_seq=2 ttl=64 time=74.891 ms

PC1> ping 10.1.1.3
84 bytes from 10.1.1.3 icmp_seq=1 ttl=64 time=159.707 ms

PC1> show arp
00:50:79:66:68:01  10.1.1.2 expires in 2 seconds
00:50:79:66:68:02  10.1.1.3 expires in 115 seconds

mac-addres-table研究

完成ping测试之后,让咱们最后看看三台交换机各自的MAC地址信息:

SWC01

root@SWC01> show ethernet-switching table 

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC)

Ethernet switching table : 3 entries, 3 learned
Routing instance : default-switch
    Vlan                MAC                 MAC         Age    Logical                NH        RTR 
    name                address             flags              interface              Index     ID
    VLAN10              00:50:79:66:68:00   DLR           -   ae0.0                  0         0       
    VLAN10              00:50:79:66:68:01   DL            -   xe-0/0/2.0             0         0       
    VLAN10              00:50:79:66:68:02   DR            -   xe-0/0/0.0             0         0  

#解析:SWC01存在三台PC机器的MAC地址,回味无穷的主要是MAC Flag标志位。
经过上述的MAC Flag解释表,能够看出。DLR意味着:动态学习,本地学习,远端PE同步的MAC地址?
这个远端PE MAC地址有点意思,它实际上是指SWC02也存在这么一个MAC地址,而为何SWC01会知道SWC02也有这么一个MAC呢,那就是ICCP的功效。

ICCP除了同步LACP等状态外,更重要的是它也在两个MC-LAG邻居间同步例如ARP表,MAC地址表等。

SWC02

root@SWC02> show ethernet-switching table 

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC)

Ethernet switching table : 3 entries, 3 learned
Routing instance : default-switch
    Vlan                MAC                 MAC         Age    Logical                NH        RTR 
    name                address             flags              interface              Index     ID
    VLAN10              00:50:79:66:68:00   DLR           -   ae0.0                  0         0       
    VLAN10              00:50:79:66:68:01   DR            -   xe-0/0/0.0             0         0       
    VLAN10              00:50:79:66:68:02   DL            -   xe-0/0/2.0             0         0    '

SWC03

root@SWC03> show ethernet-switching table 

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC)

Ethernet switching table : 3 entries, 3 learned
Routing instance : default-switch
    Vlan                MAC                 MAC         Age    Logical                NH        RTR 
    name                address             flags              interface              Index     ID
    vlan-10             00:50:79:66:68:00   D             -   xe-0/0/2.0             0         0       
    vlan-10             00:50:79:66:68:01   D             -   ae0.0                  0         0       
    vlan-10             00:50:79:66:68:02   D             -   ae0.0                  0         0       

#回到SWC03的MAC地址表,就显得很标准和普通了,它的MACFlag标志位就写着“动态获取”,而不存在L和R的标志。

总结

在这篇文章中,咱们一块儿讨论了何为MC-LAG,以及MC-LAG的组成部分,最后展现了如何配置MC-LAG.
总结以下:
1.MC-LAG是基于两台设备与远端设备同时创建一个捆绑链路。
2.MC-LAG使用ICCP协议保证捆绑链路的协商过程。
3.IC-PL不转发单播数据包,只转发MC-LAG成员产生的组播包和广播包。
4.IC-PL接口为备份数据传输接口,一旦某个捆绑链路挂掉,IC-PL立刻开始转发数据包。
5.配置MC-LAG时,须要在MC-LAG邻居上手工配置LACP协商参数。

留给你们的操做空间:
其实还有其余MC-LAG内容由于篇幅问题没有涉及到,例如:
1) 如何在MC-LAG上开启三层路由。
2) 如何在IC-PL上运行动态路由协议,而不至于遇到OSPF那样卡在Exstart状态。

这些想象空间就留给你去慢慢品玩了,如有问题请随时留言,你们一块儿共同进步。

号外,号外,征集网络运维痛点

爱情有备胎,数据中心有MC-LAG
最近在筹划网络运维中遇到的各类技术问题的相关文章,可是由于我我的想象空间实在有限,没法涵盖全部各类可能遇到的场景。
看在姜汁啤酒码字这么辛苦,没有功劳也有点苦劳的面子上,欢迎你们留言告诉我你在网络运维过程当中,都遇到了哪些技术问题,简单也好,疑难杂症也好,欢迎给我留言。

姜汁啤酒会根据反馈,认真研究,并总结成文,奉送给你们。

谢谢!

 
 

往期文章列表:

网络***肆虐-给你的网络设备来套防弹衣吧!
Facebook Open/R,新一代路由平台与网工的将来
如何借助Anycast技术拯救运维工程师的睡眠?
技术移民直通车要发车了-快来秒杀你的车票
IT设备的救命稻草-如何正确构建OOB带外网络
踢走绊脚石,MTU解析与常见问题汇总-上篇
TCP-MSS, PMTU 详解- MTU工具解析与常见问题汇总-下篇
思路很重要!不一样厂商Spanning-tree对接案例思考
回车恐惧症?13个 JUNOS 技巧助你轻松无忧配置网络
一个网工的十年奋斗史 - 工做篇
一个网工的十年奋斗史 - 移民篇
海外IT工程师工做福利揭秘 一个网工的十年奋斗史(末篇)

相关文章
相关标签/搜索