OpenFlow方案
OpenFlow方案主要由OpenFlow交換機、SDN Controller二部分組成。OpenFlow交換機進行數據層的轉發;Controller對網絡進行集中控制,實現控制層的功能。
OpenFlow網絡中轉發層面的核心是由各種支持OpenFlow的軟件和硬件的交換機組成,負責數據報文的轉發。每一個支持OpenFlow的軟件或硬件交換機都擁有一個FlowTable(流表),交換機本身只按照流表的內容對數據報文進行轉發。而SDN Controller負責實現FlowTable的生成、維護和下發。OpenFlow規范定義了從L2~L4在內的十余種關鍵字,並且FlowTable中的每個關鍵字都可以通配。在具體的網絡中用哪種匹配規則,則由不同的使用場景決定,比如在一個純二層的組網環境下,只需要二層的匹配字段就可以,其它字段可以采用通配。
而在OpenFlow網絡中,所有網絡相關的配置下發,都統一由SDN Controller通過下發流表取代,決定了所有數據包流在網絡中傳輸路徑。整個系統如下圖所示。
EVPN
EVPN的IP/MAC學習是在控制平面中完成,控制平面使用MP-BGP協議。其思路和集中式的通過OpenFlow方式下發流表不同,基於原有的VXLAN實現方案沒有控制平面,通過數據平面的流量泛洪進行VTEP發現和MAC地址學習導致泛紅的問題。VXLAN引入了EVPN作為控制平面來解決原有的泛洪問題,通過在各個VTEP之間交換BGP EVPN路由信息實現VTEP的自動發現、主機信息相互通告等特性來解決之前的泛洪問題。
BGP EVPN 可以解決Flood Learn,具備以下這幾個功能:
- 通過MP-BGP宣告主機MAC/IP
- 通過MP-BGP實現VTEP Peer 自動發現和認證
- 分布式網關
- ARP 抑制
- 頭端自動發現的入站復制
EVPN繼承了MP-BGP和VXLAN 兩者的優勢,通常采用GW-Spine-Leaf的分層架構。Leaf層的設備作為VTEP對報文進行EVPN相關處理;Spine層為核心設備,根據報文的目的地址轉發報文;GW作為網關設備,負責南北向出DC流量的轉發與VXLAN隧道的封裝解封裝。
有了EVPN技術作為VXLAN網絡的控制層,數據層面就變得簡單許多,數據平面EVPN通過BGP通告本地學到的信息,對端根據BGP收到的路由,將信息下到遠端VXLAN隧道上,形成單播表項。報文轉發通過查找本地VTEP 表項找到目標的VTEP,再通過VXLAN隧道發送到目標VTEP,目標VTEP將VXLAN隧道解封裝,轉發給目的Server。可以看出,從數據層面角度來看,EVPN只負責VXLAN的控制層面,也就是轉發信息的傳輸,對VXLAN數據層面沒有影響。整個系統如下圖所示。
圖2:EVPN下的網絡拓撲
表1: OpenFlow和EVPN特點對比