SRv6网络编程自学系列之二 | SRv6头压缩典型应用场景

书籍来源:《SRv6:可编程网络技术原理与实践》

2022年刚出的书,业界的众多大佬合力,将SRv6最前沿的技术分享了出来。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:SRv6网络编程自学系列之二 | 汇总_COCOgsta的博客-CSDN博客


5.7.1 G-SRv6压缩方案与标准SRv6混合应用场景

G-SID与SRv6 SID混编的场景示例如图5-33所示。

节点N0 ~ N4属于G-SRv6压缩域1,节点N6 ~ N10属于G-SRv6压缩域2。节点N5不具备G-SRv6压缩能力,简称普通SRv6节点。

每个G-SRv6压缩节点都通过路由协议发布两套G-SID信息:一套携带COC Flavor,另一套不携带COC Flavor。

每个G-SRv6压缩节点在发布G-SID信息时还需携带SID Structure Sub-sub-TLV标识G-SID各字段的长度。此处假定各G-SRv6节点所发布的Common Prefix长度为64bit,G-SID长度为32bit,Argument长度为32bit。N1 ~ N10节点所发布SID及其说明见表5-10。

在G-SID与SRv6 SID混编场景下,报文转发流程如下。

  • 节点N0:封装G-SID与SRv6 SID混编报文,源地址为B:1::1,目的地址DA为G-SID Container[5]。G-SID Container[5]= Common Prefix(A::/64) + 节点N1的G-SID(1:1::/16)。N0节点将报文转发到节点N1。
  • 节点N1:收到报文后,查询本地SID表,发现报文目的地址A:1:1::可与本地SID表中的End.X SID匹配;此时由于DA.SI=0,因而将SL减1,DA.SI=3;节点N1将G-SID Container[4].G-SID3字段(2:1::/16)更新到报文DA(更新后的DA为A:2:1::3),并转发到节点N2。
  • 节点N2:收到报文后,查询本地SID表,发现报文目的地址A:2:1::3可与本地SID表中的End.X SID基于LPM原则进行匹配;DA.SI减1;N2节点将G-SID Container[4].G-SID2字段(3:1::/16)更新到报文DA(更新后的DA为A:3:1::2),并转发到节点N3。
  • 节点N3:收到报文后,查询本地SID表,发现报文目的地址A:3:1::2可与本地SID表中的End.X SID基于LPM匹配;此时DA.SI=2,则SL仍指向G-SID Container[4],DA.SI减1;N3节点将G-SID Container[4].G-SID1字段(4:2::/16)更新到报文DA(更新后的DA为A:4:2::1),并转发到节点N4。
  • 节点N4:收到报文后,发现报文目的地址A:4:2::1可与本地SID表中的End.X SID基于LPM匹配;由于该SID不带COC Flavor,所以默认将SL减1,指向G-SID Container[3],将A1::5:1复制到报文DA,并查找FIB表转发到节点N5。
  • 节点N5:作为一个普通SRv6节点,发现报文目的地址A1::5:1与本地SID表中的End.X SID匹配;SL减1,指向G-SID Container[2],将G-SID Container[2]复制到报文DA,并转发到节点N6。
  • 节点N6:收到报文后,发现报文目的地址A:6:1::与本地SID表中的End.X SID匹配;此时DA.SI=0,则SL减1,DA.SI=3;N6节点将G-SID Container[1].G-SID3字段更新到报文DA(更新后的DA为A:7:1::3),并转发到节点N7。
  • 节点N7:收到报文后,发现报文目的地址A:7:1::3可与本地SID表中的End.X SID基于LPM匹配;此时DA.SI=3,则SL仍指向G-SID Container[1],DA.SI减1;N7节点将G-SID Container[1].G-SID2字段更新到报文DA(更新后的DA为A:8:1::2),并转发到节点N8。
  • 节点N8:收到报文后,发现报文目的地址A:8:1::2可与本地SID表中的End.X SID基于LPM匹配;此时DA.SI=2,则SL仍指向G-SID Container[1],DA.SI减1;N8节点将G-SID Container[1].G-SID1字段更新到报文DA(更新后的DA为A:9:2::1),并转发到节点N8。
  • 节点N9:收到报文后,发现报文目的地址A:9:2::1可与本地SID表中的End.X SID基于LPM匹配;由于该SID不带COC Flavor,所以默认将SL减1,指向G-SID Container[0],将A:10:10::复制到报文DA并查找FIB表转发到节点N10。
  • 节点N10:收到报文后,发现报文目的地址A:10:10::与本地SID表中的SID匹配,则按照相应动作进行报文处理。

端到端组网中,SRv6压缩域可部署于运营商网络中,此时节点N0、N10为运营商网络边缘设备PE等;若终端支持SRv6头压缩功能,SRv6压缩域可延伸至接入网或客户网中,此时节点N0、N10可以为家庭接入网关、政企网关等。

5.7.2 G-SRv6压缩方案与uSID、标准SRv6混合应用场景

G-SID与SRv6 SID、uSID混编场景示例如图5-34所示。

图5-34中,节点N0 ~ N4属于G-SRv6压缩域,节点N5属于纯SRv6转发域,节点N6 ~ N10属于uSID压缩域。节点N5不具备SRH压缩能力,简称普通SRv6节点。

为节点N0 ~ N6的各个相连链路分配End.X SID,其中节点N1 ~ N4的End.X SID为G-SID,节点N5、N6发布的为普通End.X SID;为节点N7 ~ N9发布的End SID为uNSID。

每个G-SRv6压缩节点都通过路由协议发布两套G-SID信息:一套携带COC Favor,另一套不携带COC Flavor。

每个SRH压缩节点在发布SID信息时还需携带SID Structure Sub-sub-TLV标识相应SID Container各字段长度。此处假定各G-SRv6节点所发布Common Prefix长度为64bit,G-SID长度为32bit,Argument长度为32bit;假定uSID Block为32bit,uSID长度为32bit。节点N1~N10所发布的SID及其说明见表5-11。

在G-SID与SRv6 SID、uSID混编的场景下,报文转发流程如下。

  • 节点N0:封装G-SID与SRv6混编报文,源地址为B:1::1,目的地址DA为G-SID Container[5]。G-SID Container[5] = Common Prefix(A::/64)+ 节点N1的G-SID (1:1::/16)。节点N0将报文转发到节点N1。
  • 节点N1:收到报文后,查询本地SID表,发现报文目的地址A:1:1::可与本地SID表中End.X SID匹配;此时DA.SI=0,因而将SL减1,DA.SI=3;节点N1将G-SID Container[4].G-SID3字段(2:1::/16)更新到报文DA(更新后的DA为A:2:1::3),并转发到节点N2。
  • 节点N2:收到报文后,查询本地SID表,发现报文目的地址A:2:1::3可与本地SID表中的End.X SID基于LPM原则匹配;DA.SI减1,节点N2将G-SID Container[4].G-SID2字段(3:1::/16)更新到报文DA(更新后的DA为A:3:1::2),并转发到节点N3。
  • 节点N3:收到报文后,查询本地SID表,发现报文目的地址A:3:1::2可与本地SID表中的End.X SID基于LPM原则匹配;此时DA.SI=2,则SL仍指向G-SID Container[4],DA.SI减1;节点N3将G-SID Container[4].G-SID1字段(4:2::/16)更新到报文DA(更新后的DA为A:4:2::1),并转发到节点N4。
  • 节点N4:收到报文后,发现报文目的地址A:4:2::1可与本地SID表中的End.X SID基于LPM原则匹配;由于该SID不带COC Flavor,所以默认将SL减1,指向G-SID Container[3],将A1::5:1复制到报文DA,并查找FIB表转发到节点N5。
  • 节点N5:作为一个普通SRv6节点,发现报文目的地址A1::5:1与本地SID表中的End.X SID匹配;SL减1,将G-SID Container[2]复制到报文DA(更新后的DA为A:6:1::),并转发到节点N6。
  • 节点N6:收到报文后,发现报文目的地址A:6:1::与本地SID表中的End.X SID匹配;SL减1,并将SID Container[1]更新到报文DA(更新后的DA为F:7:1:8:1:8::1),并查找FIB表转发到节点N7。
  • 节点N7:收到报文后,发现报文目的地址(F:7:1:8:1:9:1)与本地SID表中的End SID匹配,且下一个uSID字段不是EOC标志,则对报文的DA字段进行“移位”操作,“移位”后的DA地址为F:8:1:9:1::。节点N7基于F:8:1:9:1::执行查表转发操作,将报文转发至节点N8。
  • 节点N8:收到报文后,发现报文目的地址(F:8:1:9:1::)与本地SID表中的End SID匹配,且下一个uSID字段不是EOC标志,则对报文的DA字段进行“移位”操作,“移位”后的DA地址为F:9:1::。节点N8基于F:9:1::执行查表转发操作,将报文转发至节点N9。
  • 节点N9:收到报文后,发现报文目的地址(F:9:1::)与本地SID表中的End SID匹配,且下一个uSID字段为EOC标志,所以默认将SL减1,指向SID Container[0],将A:10:10::复制到报文DA并查找FIB表转发到节点N10。
  • 节点N10:收到报文后,发现报文目的地址A:10:10::与本地SID表中的SID实现LPM匹配,则按照相应动作进行报文处理。

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/129981909