三分钟读懂BGP中RD与RT 转载

JiuShi猪IP属地: 上海
2022.02.06 14:24:26字数 1,579阅读 5,445

Route-Distinguisher(后简称"RD"), Route-Target(后简称"RT")经常出现在EVPN、MPLS VPN中,但它们是完全不同的两个概念,初学者往往难以区分两者的差异。学霸题:区分"RT""RD";有妙招:阅读RFC。两者相关的信息参杂在rfc4364,rfc4760,rfc6074,rfc4761,rfc4271,rfc7432等诸多标准之中。本文将结合具体的示例,简化RFC内容,让你3分钟秒懂"RT""RD"。

RD

如下图所示拓补,用户A(蓝色)和用户B(绿色)在PE-1交换机和PE-2交换机下创建了各自对应的VPN(VRF)。

 

 

用户A在PE-1交换机下连的网段是192.168.1.0/24。用户B在交换机PE-1下连网段同样为192.168.1.0/24。在交换机内部,可以通过VPN(VRF)隔离两个路由域,保证即使不同用户创建了重叠的网段,也不会发生网络冲突。
在传统的BGP-4中并没有字段可以存储路由所处的VPN信息。这对在当前场景下如何存储、传递不同租户的拥有相同IP网段的路由信息,如何保证路由信息的唯一性带来了瓶颈。扩展的MP-BGP协议则引入了"RD",与IPv4地址共同构成VPN-IPv4地址解决该瓶颈。

 

 

若在VPN-A上配置"RD"为1:1,VPN-B上配置"RD"为2:2,则实际PE-1交换机BGP路由表中存储的信息应如下:

1:1:192.168.1.0/24
2:2:192.168.1.0/24

通过在路由条目前添加"RD"前缀,确保BGP 路由表中创建了全局唯一的路由信息,以此实现BGP对等体之间合理地交换路由条目。

RD的编码规范

RD有三种编码方式。

  • 类型一:2字节ASN与4字节自定义数值。若使用的是公开的ASN,建议该ASN已获得授权许可,且自定义的数值应由该ASN的拥有方分配。使用的是私有的ASN,则无特殊限制。
  • 类型二:4字节IP与4字节自定义数值。若使用的是公网IP,建议该IP已获得授权许可,且自定义的数值应由该IP的拥有方分配。若使用的是私网IP,则无特殊限制。
  • 类型三:4字节ASN与2字节自定义数值。限制同类型一。
 

 

RT

接踵而来的问题是: PE-2如何知道哪些路由条目属于用户A,哪些路由条目属于用户B?通过设置RD,仅仅确保了路由条目在BGP VPN-IPv4表中的唯一性。当前BGP表中存在的2条路由,看上去仅仅就是前缀信息。解决之道是:使用RT。RT近似于在路由条目上添加的标签。PE-1 为用户A的VPN-A设置 export RT 100:100;PE-2 为用户A的VPN-A设置 import RT 100:100。当PE-1更新VPN-A的路由信息是,输出的条目便添加RT 100:100标签,当 PE-2检视接收到的BGP VPN-IPv4信息条目时,挑出拥有100:100标签的路由条目,写入用户A的VPN中。


 

 

RT的编码规范

RT的编码规范与RD一致。
不得不说一句,规范是规范,具体取何值似乎也因人而异。虽然IETF一直在教人做事,但人往往又不按套路出牌!


 

小结

  • RD值用于确保路由条目的唯一性。
  • RT值用于决定路由条目的归属,分发路由。
  • 实际使用中,可以设置多个export RT和多个import RT,以实现灵活地路由导出导入的场景。

EVPN下的RD和3类RT值

图示拓补构建的EVPN VxLAN网络环境,Leaf交换机上与"RD""RT"相关的命令如下所示(以H3C为例)。"RD""RT"的配置存在于vsi及vpn-instance之中。

 

 

vsi VSI-A
 vxlan 10
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
ip vpn-instance VPN_A
 route-distinguisher 1000:100
 #
 address-family ipv4
  vpn-target 1000:100 import-extcommunity
  vpn-target 1000:100 export-extcommunity
 #
 address-family evpn
  vpn-target 1000:100 import-extcommunity
  vpn-target 1000:100 export-extcommunity

EVPN地址族是MP-BGP在L2VPN地址族下定义的新的子地址族。新增了5种路由消息。

  • Type 1 Ethernet Auto-discovery Route:以太网自动发现路由
  • Type 2 MAC/IP Advertisement Route:MAC/IP发布路由
  • Type 3 Inclusive Multicast Ethernet Tag Route:IMET路由
  • Type 4 Ethernet Segment Route:以太网段路由
  • Type 5 IP Prefix advertisement route:IP前缀路由

其中最常用的Type 2 用来通告MAC地址和主机路由信息。Type 3 用来通告VTEP及其相关VXLAN信息,用以实现自动发现VTEP、自动建立VXLAN隧道和自动关联VXLAN与VXLAN隧道。Type 5 用来以IP前缀的形式通告BGP IPv4单播路由或BGP IPv6单播路由。配置中的"RD""RT"就用于控制以上类型路由的生成导出与接收导入。

  • 第一个RT:VXLAN RT,VSI视图下的配置,一般使用auto自动生成,由2类和3类路由消息携带用于形成基于VXLAN的MAC地址表、ARP表、ARP抑制表项及隧道建立。Auto填充规则:自动生成的RT取值为“BGP AS:VXLAN ID”;如果是EBGP的话,使用3类消息建隧道需要注意该RT的值要手动配置。

  • 第二个RT:VPN IPv4 RT,VPN下的IPv4地址族RT,用于形成VPN的IPv4路由表,5类路由携带,一般网段路由和外部引入的路由或者向外部引出路由时进行控制。

  • 第三个RT:VPN EVPN RT,由TYPE2路由携带,用于将32位主机路由导入VPN,形成主机路由,在纯二层环境中TYPE2路由中只携带第一类RT,当配置了L3-VNI,TYPE2路由中会同时携带第一个和第三个这两个RT,两个RT均通过import才能学习路由形成主机路由。

posted @ 2023-06-25 10:39  rebeca8  阅读(344)  评论(0编辑  收藏  举报