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/242: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-Avxlan 10evpn encapsulation vxlanroute-distinguisher autovpn-target auto export-extcommunityvpn-target auto import-extcommunityip vpn-instance VPN_Aroute-distinguisher 1000:100#address-family ipv4vpn-target 1000:100 import-extcommunityvpn-target 1000:100 export-extcommunity#address-family evpnvpn-target 1000:100 import-extcommunityvpn-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才能学习路由形成主机路由。

3分钟读懂RD与RT相关推荐

  1. Vue安装与IDE HBuilder安装(一分钟读懂)

    Vue安装与IDE安装(一分钟读懂) 官网下载IDE HBuilder 解压该文件后,打开 官网下载vue.js 创建demo文件夹,把vue.js放进这里面并且创建index.html文件 然后把这 ...

  2. python高阶函数(三分钟读懂)

    python高阶函数(三分钟读懂) 函数式编程 Python中,函数是一等对象 一等对象:具有特点 ① 对象是在运行时创建的 ② 能赋值给变量或作为数据结构中的元素 ③ 能作为参数传递 ④ 能作为返回 ...

  3. 【转】一分钟读懂互联网广告竞价策略GFP+GSP+VCG

    参考这篇文章: http://ju.outofmemory.cn/entry/116780 一分钟读懂互联网广告竞价策略GFP+GSP+VCG 两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价 ...

  4. 三分钟读懂新一代人工智能——ChatGPT

    2022年以来,AI开始在很多贴近消费者的领域发挥越来越大的作用,之前我写过一篇文章<一分钟学会AI绘画和创作>,很多朋友纷纷尝鲜. 最近一个月以来,OpenAI公司推出的智能机器人Cha ...

  5. 【光剑藏书轩2021】5分钟读懂《贫穷的本质》:“穷人通常缺少信息来源”

    5分钟读懂<贫穷的本质> <贫穷的本质:我们为什么摆脱不了贫穷>是2013年中信出版社出版的图书,作者是阿比吉特·班纳吉 (Abhijit V.Banerjee)与埃斯特·迪弗 ...

  6. 一分钟读懂互联网广告竞价策略

    一分钟读懂互联网广告竞价策略GFP+GSP+VCG 两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价策略呢?这是本文即将分享的一个问题. 一.前序知识-传统竞价策略 英式拍卖(English ...

  7. centos 删除文件夹_手机文件夹是英文,占空间还不敢乱删?花一分钟读懂手机语言...

    不少人肯定发现,自己的手机里面有一些莫名其妙的文件夹,占据内存空间.且占据很大,想删除,但全部是由英文标注,不知道从何删起. 今天小兰就来帮助大家决绝这么问题,一分钟教你读懂这些手机语言,快速清理手机 ...

  8. 1分钟读懂 云支付(云收款)交易规则 云支付收费标准

    1分钟读懂 云支付(云收款)交易规则 当前位置:首页 > 官方动态 一.交易即时到账 你的客户通过云支付中任意一种付款方式(支付宝.微信支付.网银等)付款成功后均会时时到账于你的云支付,你可以在 ...

  9. 一分钟读懂低功耗蓝牙连接数据包

    一分钟读懂低功耗蓝牙(BLE)连接数据包 1.概述    BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ.    SCAN_REQ: 扫描请求, ...

最新文章

  1. iOS 线程操作库 PromiseKit
  2. 程序运行时,内存占用查看
  3. pfSense book之 Open***站点到站点连接示例(共享密钥)
  4. Vue.js-Day04-AM【父子组件通信(父传子、子传父)、动态组件、组件的生命周期、动画】
  5. 第三方软件源_最强软件管家!要啥有啥,吊打全网~
  6. Windows下搭建Octopress博客
  7. shell 命令 cmd命令
  8. Silvaco TCAD 2014 Win10下安装说明!
  9. 坐标转换 | 高斯坐标转经纬度坐标
  10. git把一个分支上的某次提交同步到另一个分支上
  11. 2010年最具影响十大技术:移动互联…
  12. Python自动化完成tb喵币任务
  13. Linux开发运维常用命令
  14. 三天流量有效期具体怎么算_飞猪不从APP提取出来流量有效期多久?如何提取?(含与客服对话)...
  15. git学习笔记[idea整合GitHub,Gitee](非常详细)
  16. Win10 更新最新系统 想恢复Win10系统为出厂设置 重置Win10系统时提示“找不到恢复环境”
  17. 2020神舟几号发射_中国宇宙飞船发射到神州几号了
  18. CSS的三种样式——内联、内部、外部
  19. VB源码之友终于开发完毕了
  20. [附源码]计算机毕业设计JAVA大学城二手书交易网站

热门文章

  1. (自己编写函数)Python + Opencv 图像边缘检测(模糊算法【老师给的ppt中原理是这样的,但是还有很多不明白,有很多参数老师没说怎么算,只说了每张图片不一样】)
  2. 生活:你是如何毁掉生活中的情趣的
  3. Pixel 4刷机常见问题指南(Android 11 211001版本可用!)
  4. [bugku]web后面的部分 【脚本,正则 md5 】(疯狂补题qaq) 重点是搞会了 而不是写博客 m...
  5. DNS和Web服务的配置与访问
  6. 电子或通信领域当前的技术及其社会需求调查报告
  7. Go语言if条件判断
  8. 电脑文件定时备份到U盘
  9. 【教程】七天入门C#上位机目录
  10. CIDR地址规划方法