- SRv6產生的背景
- SDN深入人心:運營商業務管道化,業務驅動網絡,已經成為業界共識。
- 雲網融合帶來新的變化:傳統的MPLS網絡由於部署復雜,消耗的資源較多,數據中心內部對MPLS不完全接受,但是也希望在數據中心內部進行高效的流量調優。
- NFV對網絡帶來新的變化,由於網絡功能虛擬化,虛擬化后的設備可能無法指出MPLS所以就無法部署SR MPLS,但是也希望能否借助SR進行對網絡的編程。
- IPv6的發展正在加速,5G、IoT業務和雲化業務都需要更多的地址,另外,終端/OTT等廠商的IPv6化正在加速,業界運營商希望構建純IPv6的網絡。
- 特性價值
- 智慧:表現在SRv6的網絡路徑可以編程、業務可以編程、轉發行為可以編程。SRv6是完全基於SDN架構,能夠跨越APP和網絡之間的鴻溝,將APP的應用程序信息帶入到網絡中。
- 簡單:SRv6是基於IGP和BGP擴展來實現的,沒有MPLS標簽,另外SRv6也不使用LDP/RSVP-TE協議,在數據中心內部引入SRv6之后,只需要TOR交換機支持SRv6即可,其他交換機僅支持IPv6。在NFV場景引入SRv6之后。可以輕松的實現業務鏈SFC(Service Function Chain)等需求。
- 純IP化:SRv6基於Native IPv6進行轉發,完全融入現有的IPv6網絡,網絡中的中間節點可以不支持SRv6,不需要規模升級就可以部署新業務。
- 實現原理
- 為了實現IPv6,IPv6的報文進行了一種擴展,新增了一種擴展頭,IPv6報文是由IPv6標准頭+擴展頭(0~n個)+負載Payload組成。
在SRv6里面,IPv6目的IP字段是一個不斷變換的字段,他的取值由Segment Left和Segment List字段共同決定,當指針指向一個活躍的段,需要將對應段的IPv6地址復制到IPv6目的地址字段。在轉發層面,如果說一個階段不支持SRv6,那么該節點可以不用處理下層的SR信息,僅依靠IPv6的目的地址字段,查找路由表來完成轉發。如果一個節點支持SRv6,那么需要處理SRH,將Sgement Left進行減一操作,然后將指針偏向新的活躍段,之后將Segment List信息復制到IPv6目的地址字段,然后將報文向下一個節點進行轉發,當Segment Left字段減為0的時候,節點可以彈出SRH報文頭,然后對報文進行下一步處理。
Segment List:段列表,段列表從路徑的最后一段開始編碼。Segment List是IPv6地址形式。
Segments Left:是一個指針,指向當前活躍的Segment List,即到達目的節點前仍然應當訪問的中間節點數。
-
在SRv6里面存在3重可編程空間:
- 由Segment List構成的路徑信息可編程。
- 報文里面新增的可選的TLV字段可以進行編程。
- IPv6地址形式的Segment List(IPv6 SID)可編程。
-
Segment List詳細說明:
- Segment List類似於IPv6地址形式,但是又不同於傳統的IPv6地址,在SRv6中,IPv6地址賦予了新的含義,他由3個部分組成:
- Locator部分:配置之后,會在本機生成一條理由,通過IGP向外擴散,網絡中的其他節點通過這條路由可以定位到配置該Locator的節點,所以Locator具有定位功能,所以一般要在SR域內唯一,但是在一些特殊場景,比如Anycast保護場景,多個設備可能配置相同的Locator。
- Function部分:表示綁定的本機的一個指令。這些指令都由設備預先設定,Function部分用於指示SRv6 SID的生成節點進行相應的功能操作。
- Arguments部分(可選):Arguments占據IPv6地址的低比特位,通過Arguments字段可以定義一些報文的流和服務等信息。當前一個重要應用是EVPN VPLS的CE多歸場景,轉發BUM流量時,利用Arguments實現水平分割。
- IPv6的SID的類型:
- End SID:代表網絡中的一個節點,他給設備的指令是處理SRH,更新IPv6目的地址字段,然后查找IPv6路由表進行報文轉發。
- End.x SID:代表網絡中的一個鄰接,他給設備的一個指令是處理SRH,更新IPv6目的地址字段,然后從該SID指定的一個出接口轉發報文。
- End.DT4 SID:這是一種PE類型的SID,主要用於IPv4 L3VPN場景,他給設備的一個指令是解封報文,去除外層SRH和IPv6報文頭,然后根據剩余報文里面的目的地址查找IPv4 VPN實例路由表進行轉發。
- End.DT6 SID:主要用於IPv6 L3VPN場景,他給設備的一個指令是解封報文,去除外層SRH和IPv6報文頭,然后根據剩余報文里面的目的地址查找IPv6 VPN實例路由表進行轉發。
- End.DX2 SID:這種SID主要用在L2VPN/EVPN VPWS場景,他給設備的一個指令是解封報文,去除外層SRH和IPv6報文頭,然后從該SID綁定的出接口轉發出去。
- 不同SID的轉發行為是不一樣的,這就是我們說的第三重編程空間,也就是轉發行為可編程。
- Segment List類似於IPv6地址形式,但是又不同於傳統的IPv6地址,在SRv6中,IPv6地址賦予了新的含義,他由3個部分組成:
- 為了實現IPv6,IPv6的報文進行了一種擴展,新增了一種擴展頭,IPv6報文是由IPv6標准頭+擴展頭(0~n個)+負載Payload組成。
- 業務應用
- L3VPN(拓撲:CE1--PE1--P--PE2--CE2)
- 路由發布階段PE2(SID:Locator + Function,例如Locator為:A2:1::/64)
- PE2將會把A2:1::/64這個路由通過IGP宣告出去,這樣P和PE1節點將會通過IGP學習到該路由。
- PE2為CE2所在的VPN實例分配SID,假設為A2:1::B100,由於是IPv4 VPN,所以這個SID也是一個End.DT4類型。
- 然后是私網路由發布,現在CE2向PE2發布一條普通的IPv4路由,PE2從指定的接口收到這條路由以后,會轉換為VPNv4路由,然后向PE1發布,發布的過程中,這個VPNv4路由會攜帶VPN SID,也就是A2:1::B100,PE1收到這個VPNv4路由以后會進行路由交叉,交叉到CE1所屬的VPN實例,然后向CE1發布。
- 數據轉發階段
- 跟BGP VPNv4類似。
EVPN VPWS(跟L3VPN類似)
- 路由發布階段PE2(SID:Locator + Function,例如Locator為:A2:1::/64)
- 發布End.DX2類型的SID
- 數據轉發的時候封裝的是個2層報文。為源MAC和目的MAC信息。
- L3VPN(拓撲:CE1--PE1--P--PE2--CE2)
- SRv6跨域,組建大規模網絡
- 可靠性
- SRv6現網演進
- SRv6適用場景
- SRv6 vs SR MPLS