在MPLS-TE隧道动态建立过程中,可以用于控制隧道路径选择的因素比较多,其中隧道的“亲和属性”和链路的“链路管理组”是两个非常重要的因素。但许多朋友认为这两方面技术的工作原理比较复杂、难懂,故在此以专文进行介绍。

   1.    亲和属性和链路管理组

亲和属性(Affinity attribute)是描述新建的MPLS TE隧道所需链路属性的32位向量,以及一个32位的掩码,与IPv4地址和子网掩码的组合类似。每一位也代表一种属性,在隧道的Ingress节点的Tunnel接口下配置,并会随着RSVP-TE信令中携带,可以影响在当前设备为该隧道已建立的LSP,使得系统可以重新为该隧道计算、选择新的路径。

链路管理组也称链路颜色,或链路属性,是一个表示链路属性的32位向量,是在各链路的物理接口下配置。链路属性中每一位代表一种属性,都可以设置或不设置,也可以将其关联为任何需要的意义。比如用来表示链路带宽、性能或者管理策略。链路属性仅对通过本接口新创建的LSP生效,不影响已建立的LSP。

MPLS TE隧道的建立必须先通过RSVP-TE信令确定好隧道路径,并让路径中各节点设备为该隧道预留一定的带宽资源。在隧道路径选择方面,是隧道入节点发布的RSVP-TE信令随着OSPF TE或者ISIS TE路由信息的泛洪扩散,每经过一个节点都要根据本隧道配置的亲和属性选择一条继续向目的方向传输的适合路径。选择的方法是把信令中携带的隧道亲和属性值与当前节点设备上各条使能了MPLS TE能力的链路上配置的链路属性与进行比较,通过匹配选择的即作为该隧道在本节点所选择的路径。

亲和属性中的掩码用于确定在链路属性与亲和属性比较时需要比较的位:掩码为0时表示不需要比较两者对应的位(链路属性对应位的值可以任意),为1时需要比较两者对应的位(链路属性对应位的值必须与亲和属性对应位的值一致)。类似比较两个IP地址是否要同一IP网段时,仅需要比较子网掩码为1的“网络ID”部分是否相同即可,而对于子网掩码为0的“主机ID”不需要比较一样。

  2. 链路属性与亲和属性的比较规则

我们知道,要比较两个IP地址是否在同一IP网段是通过把两个IP地址与该网段的子网掩码进行逻辑“与”运算,如果结果一样,则在同一IP网段,否则不在同一IP网段。链路属性与亲和属性比较方法也是一样的,也是把它们分别与掩码进行逻辑“与”运算,如果得到的结果相同,则认为这两种属性是匹配的,在该隧道选路时就选择对应路径,否则放弃选择该路径。具体的比较规则如下:

(1)在所有掩码中为1的位(表示对应链路的链路属性必须与隧道亲和属性必须进行匹配比较的位)中,链路属性中至少有1位与亲和属性中的对应位都为1(只有值为1的位才表示对应的位启用了某种链路属性),即两者至少有一种属性相同,不能完全不同

(2)亲和属性为0的位(相当于没有启用对应链路属性)对应的链路属性位不能为1(即也只能为0,也不能启用对应链路属性),否则对应链路的链路属性不符合隧道的链路属性要求。

如亲和属性为0x0000FFFF,掩码为0xFFFFFFFF,则可用链路属性取值如下:

  • 高16位只能取0,因为本示例中亲和属性的高16位全为0,而根据规定,亲和属性为0的位对应的链路属性位不能为1,也只能为0。

  • 低16位至少有1位为1,因为本示例中亲和属性和掩码的低16位都全为1,而根据规定,在所有掩码为1的位中,链路属性中至少有1位与亲和属性中的相应位都为1。

由此可得出本示例中可使用的链路属性取值范围是0x00000001~0x0000FFFF。

(3)对于掩码为0的位,则不对链路属性的相应位进行检查,即对应的链路属性位的值可以任意。

如亲和属性为0xFFFFFFFF,掩码为0xFFFF0000,则可用链路属性取值如下:

  • 高16位至少有1位为1,因为掩码的高16位也全为1,而根据规定,所有掩码为1的位中,链路属性中至少有1位与亲和属性中的相应位都为1。

  • 低16位则可以任意取0或1,因为掩码的低16位全为0,而根据规定,对于掩码为0的位,不对链路属性的相应位进行检查,即可以任意是0或1。

由此可得出本示例中可用链路的管理组属性取值范围是0x00010000~0xFFFFFFFF。

以上内容摘自己华为官方唯一HCIE培训教材《华为MPLS技术学习指南》,配套教材还有《华为MPLS ×××学习指南》和《华为×××学习指南》。


最后给大家出一道同步练习题,现假设某MPLS-TE隧道上配置的亲和属性为0xFFFFFFF0,掩码为0x0000FFFF,请计算在到达目的端的路径上各节点配置的链路属性取值范围。请把自己的答案写在评论中,下周公布答案。

转载于:https://blog.51cto.com/winda/2104389

亲和属性和链路管理组的TE隧道路径控制原理相关推荐

  1. CISCO 组播RPF 逆向路径转发 实验原理

    Technorati 标签: CISCO,组播,multicast,RPF,CCIE RPF,reverse path forwarding. 是组播转发的一个重要基础.只有当RPF检测成功以后,组播 ...

  2. Html5不可见标签,及标签属性(元素对象属性) a href target name id 相对路径

    标签属性分类(元素对象属性) 不可见标签与可见标签: <head></head>        属于不可见标签, 里面的内容一般用于css还有全局的一些变量,声明等. 而且如果 ...

  3. rpf逆向路径转发 linux,组播RPF 逆向路径转发 实验原理

    RPF,reverse path forwarding. 是组播转发的一个重要基础.只有当RPF检测成功以后,组播流量才能正确的在网络中进行转发. 当在baidu或者google里面查询关键字 &qu ...

  4. rpf逆向路径转发 linux,CISCO 组播RPF 逆向路径转发 实验原理

    RPF,reverse path forwarding. 是组播转发的一个重要基础.只有当RPF检测成功以后,组播流量才能正确的在网络中进行转发. 当在baidu或者google里面查询关键字 &qu ...

  5. JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  6. [蓝桥杯][2019年第十届真题c/c++B组]迷宫(寻找路径bfs及文件输入输出)

    试题 E: 迷宫 1.问题描述 2.思路详解 3.AC代码 1.问题描述 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方. 010000 000100 00100 ...

  7. jzoj5234. 【NOIP2017模拟8.7A组】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  8. 2016蓝桥杯国赛 JAVA C组第五题 路径之谜

    蓝桥杯确实很暴力... 路径之谜 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士 ...

  9. MPLS TE技术介绍

    MPLS TE技术介绍 本文转自:http://www.h3c.com/cn/d_200805/606208_30003_0.htm 如有侵权,请联系删除. 注:转载目的只是为了方便保存,为日后查找方 ...

最新文章

  1. ADAS越来越热,这家公司为何能俾睨群雄
  2. 检测网络耗时_无人机替代桥梁检测车检测桥梁的可行性分析
  3. extmail垃圾邮件存放垃圾邮件箱
  4. python安装模块方法_Python安装模块的几种方法
  5. MySQL笔记-简单配置主从库
  6. Spring Boot基础学习笔记:可视化迎新
  7. 嵌入式操作系统内核原理和开发(等值block内存池设计)
  8. kubernetes资源--RC和RS
  9. iOS开发点滴 - 关闭键盘
  10. [codevs 1503]愚蠢的宠物(特殊的LCA)
  11. 沪江swf文件怎么打开_.swf文件的打开方法
  12. Revit二次开发——预制构件自动配筋演示
  13. Win8快捷键的使用
  14. Dim 和 Redim
  15. 怎么把记事本内容导出python_怎么把记事本内容导出python
  16. uniny 物体运动到一个点停止_unity控制运动
  17. (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  18. mybatis配置文件<mapper>飘红
  19. BeautifulSoup 根据输入的公司名称来爬取公司的详细信息(2022-08-24更新版)
  20. C++求N以内所有的质数

热门文章

  1. group by很多字段是不是会很慢_面试官:数据量很大,分页查询很慢,有什么优化方案?...
  2. 在mysql中什么情况下不能指定字符集_如何为Mysql选择合适的字符集?
  3. python获取系统时间函数_Python常用时间操作总结【取得当前时间、时间函数、应用等】...
  4. android imagebutton 按下效果,Android 点击ImageButton时有“按下”的效果的实现
  5. 内存的字符与打印出来的字符集的区别
  6. 焊接件技术要求怎么写_专硕论文写作要求有高么?具体怎么写?
  7. python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
  8. java 虚拟机的原理_java虚拟机的原理
  9. elon函数_Neuroink Elon麝香制造中的灾难
  10. Python中使用httpx模块详解