發布時間:2020-07-22

前言
隨著互聯網業務的高速增長,為滿足數據中心靈活擴展高帶寬的需求,端口聚合或者是路由ECMP被普遍應用。
目前銳捷數據中心交換產品負載均衡模式基于流模式的負載均衡,實際負載均衡基于IP報文五元組或者增強模式。負載均衡模式因子包括:源/目的MAC、源/目的IP、源/目的L4端口號。增強模式還可以支持數據中心特性字段,例如支持協議類型如MPLS報文、FCOE報文類型等字段。
涉及到負載均衡的場景包括二層AP口、三層AP口、路由ECMP,默認三者共用同一個全局的負載均衡模板。AP可以基于單個端口調整負載均衡模板,路由ECMP只能共享全局定義的負載均衡模板。
普通型的負載均衡,其中二、三層AP口默認基于源/目的MAC;路由ECMP默認基于源/目的IP。以報文匹配負載均衡因子的方式來生效,比如一個報文是IPv4報文,默認負載均衡模式,二、三層AP口都是以源目的MAC進行負載均衡,而ECMP端口則以源/目的IP來進行負載均衡。如果修改了為IP/PORT的負載均衡,則二三層AP/路由ECMP都以IP/PORT的負載均衡為準。
增強型的均衡模式,以報文匹配負載均衡因子的方式來生效。比如一個報文是IP報文,增強型有默認定義IPV4的字段負載均衡以源目的IP為準,如果需要調整ipv4的均衡算法只能調整ipv4 field字段。無論二三層AP/路由ECMP都如此。
負載均衡模式的配置建議
一般情況下,采用普通模式進行負載均衡,采用源目的IP/源目L4port,可以滿足絕大部分的HASH負載均衡模式。
注:全局模式配置,對于二三層AP/路由ECMP公用模板,共同生效。
即:
aggregateport load-balance src-dst-ip-l4port
如果存在負載均衡較差的情況,可以在HASH因子不變的情況下修改為增強型的模式進行使用。
load-balance-profile ecmp
ipv4 field src-ip dst-ip l4-src-port l4-dst-port
aggregateport load-balance enhanced profile ecmp
show aggregatePort load-balance可查詢當前選擇的負載均衡因子,若涉及到增強模式,還需要show load-balance-profile XXXX查詢增強模板,針對不同報文的負載均衡方式。


一般情況下通過上述兩種方案就可達到均衡效果,但在一些特殊場景下又有哪些地方需要注意呢?請看下文講解:
場景一
CDN場景下出口部署PBR多個等價下一跳情況

圖1:CDN場景下出口部署PBR多個等價下一跳
如圖所示,在CDN場景下在出口連接多個運營商時,往往需要匹配IP為某運營商如電信時選擇下一跳為電信的多個互聯端口,互聯端口間要求流量負載均衡。
route-map pbr permit 10
match ip address Telecommunications
set ip next-hop 10.1.1.1
set ip next-hop 10.1.2.1
針對該場景默認情況下多條鏈路為主備模式,要達到負載均衡效果需在全局下配置:
ip policy load-balance
場景二
VSU開啟本地優先轉發時出口負載均衡

圖2:開啟VSU本地轉發,當主備機輸入流量不一致

圖3:開啟VSU本地轉發,當主備機輸出端口數不一致
如圖所示,當使用VSU組網時,由于設備默認開啟了本地轉發,當主備機輸入流量不一致,或輸出端口數不一致時,如果要實現在所有ECMP出口之間負載均衡,可以考慮關閉默認的VSU本地轉發,但此時出向流量會經過VSL鏈路,會給VSL鏈路帶寬帶來壓力
VSU模式下配置
no switch virtual ecmp-lff enable
注意:如果該場景下存在ECMP下一跳出口為AP口,我們的AP/ECMP采用相同的算法,而且根據業務的流量特征選擇相同的因子,就會導致LACP上面的流量會由于HASH極化而集中到其中的一條鏈路上,此時推薦在增強型負載下增加配置擾動因子來解決
load-balance-profile ecmp
ipv4 field src-ip dst-ip l4-src-port l4-dst-port
hash-disturb 5
場景三
LVS負載均衡調度器集群與TOR通過ECMP互連
數據中心LVS集群通常通過ECMP和TOR互聯,如果通過動態路由協議在TOR和LVS集群之間生成ECMP路由,當ECMP某條鏈路因故障失效后,動態路由協議會重新收斂,從TOR到集群的流量會重新均衡,這就打亂了集群成員機上原來維護的會話狀態,整個集群需要重建會話,導致部分會話中斷。
該場景下推薦配置ECMP CLUSTER 特性,使用ECMP CLUSTER后,如果ECMP 路徑數量減少,只會將失效鏈路上承載的流量均衡到活躍鏈路上,活躍鏈路上承載的流量不變,如果ECMP路徑數量增多,會將原先活躍鏈路上的部分流量切到新增鏈路。

圖4:TOR與LVS集群之間通過ECMP互聯

圖5:當TOR與LVS最右側鏈路中斷后流量轉發規則
全局模式下
ecmp cluster enable
注意,開啟該特性前提需要使用增強型負載均衡模式
場景四
多臺同廠商設備級聯且采用聚合或者ECMP等價負載的情況

圖6:多臺同廠商設備級聯且采用聚合或者ECMP等價負載的情況
在數據中心場景里,如果出現圖中LEAF/SPINE交換機都是同型號設備(或者同芯片算法)。對于LEAF交換機來說,有四個不同的流,其中流1,2選擇了左邊的鏈路,到達了SPINE-1設備。由于SPINE-1和LEAF的HASH算法完全相同,所以在做HASH時,SPINE-1將流1,2歸為了同一類,都選擇了左邊的鏈路進行轉發,如此計算SPINE-2將流量3、4選擇右邊鏈路進行轉發。
該場景下建議在配置增強型負載均衡模式后,不同層級設備調整均衡算法,避免極化現象
aggregateport algorithm mode XXX
場景五
對收到經過GRE封裝后的報文要求基于內層報文進行HASH實現負載均衡

圖7:對收到經過GRE封裝后的報文要求基于內層報文進行HASH實現負載均衡拓撲
某數據中心客戶反饋機房一組62H下掛的2個服務器和62H來建立OSPF,并同時發布一個用于建立GRE隧道的地址,比如是10.1.1.1,和遠端的一個在其他節點的路由器上的地址來建立GRE隧道,GRE隧道的源地址是2個服務器發布上來的一個VIP地址,目的地址是遠端路由器地址,源目地址已經通過路由打通了,我們62H相當于是GRE流量的過路設備,目前發現62H下掛的2個服務器只有其中一個有接收到遠端路由器經過GRE封裝發過來的流量。
該場景下,由于我司交換機默認情況下對經過的GRE流量只能基于外層報文進行HASH,無法獲得均衡效果,可以通過以下命令修改對GRE報文支持過路的內層均衡
全局下
aggregateport hash-header inner
注意,開啟該特性前提需要使用增強型負載均衡模式
