愛情有備胎,數據中心有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工程師工做福利揭祕 一個網工的十年奮鬥史(末篇)

相關文章
相關標籤/搜索