cisco综合学习资料-08-1-mpls基础_W_第1页
cisco综合学习资料-08-1-mpls基础_W_第2页
cisco综合学习资料-08-1-mpls基础_W_第3页
cisco综合学习资料-08-1-mpls基础_W_第4页
cisco综合学习资料-08-1-mpls基础_W_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 思琦网络科技有限公司 南京思琦网络科技有限公司SIQI 思琦全球 IT 培训基地CISCO(CCNA CCNP CCIE)综合学习资料-08-1-MPLS 基础 、 PROTOTYPE: QI FANDATE: 2020REVIEW: QI FAN、BAERDATE: 2020 2 / 20CONTENTS目录 一、传统 IP 路由转发的特点及缺点4二、MPLS 基本工作原理4三、MPLS 的优势5四、MPLS 包头封装位置和包头格式64.1 MPLS 包头封装位置64.2 MPLS 包头格式7五、MPLS 架构及实现细节85.1 控制层面85.1.1

2、 LDP 和 TDP 的联系95.1.2 mpls ip 命令在接口上运行之后,LDP 的工作过程105.1.3 LDP 邻居的建立过程105.1.4 相关命令115.2 数据层面115.3 MPLS 架构小结125.4 数据包转发时的几种可能性12六、基础实验136.1 MPLS 基本配置及验证命令136.2 扩展内容146.2.1 关闭CEF:no ip cef146.2.2 如果将 R1 的环回口改为 24 位156.2.3 如果MPLS 域中存在路由汇总15 思琦网络科技有限公司 七、帧模式(IP)和信元模式(ATM)的区别167.1 标签的发配1

3、67.2 标签的分发177.3 标签的保留177.4 LFIB 表中是否关联数据包的入向接口17八、MPLS 的现实好处(通过BGP 传递路由)178.1 MPLS 中的 trace 相关命令178.2 通过 BGP 传递路由188.3 扩展内容18九、控制标签的分发19 3 / 20 思琦网络科技有限公司 08-1-MPLS(多协议标签交换) 一、传统 IP 路由转发的特点及缺点 1. 首先使用动态路由协议来传递所需的路由条目 2. 传统 IP 路由只能基于数据包中的目的 IP 来转发数据包 3. 每台路由器都要去查找路由表然后逐跳转发 传统 IP 网络

4、并不是只能基于目的地址转发使用 PBR(策略路由): 但 PBR 不适合在互联网上大规模应用,因为每台路由器上都要去做控制,而不是在入口处控制。使用MPLS 可以只在入口处就完成控制。 二、MPLS 基本工作原理 MPLS:用标签转发,而不是进行 IP 路由表的查找 MPLS 边界路由器:连接了 MPLS 域和一个纯 IP 网络只有边界路由器才会进行路由表查找(针对纯 IP 包) LSP:标签转发/交换路径 LSR:标签转发/交换路由器(MPLS 域中的路由器) 23 / 20MPLS 数据包转发过程的基础理论: 边界路由器为纯 IP 包查路由表,并给数据包压上一个标签(IP 数据包前面加上一

5、个标签 5 发送出去)。第二台的下游路由器不会再去查路由表,只看标签(因为是标签包),只需要做标签的替换 53(标签 3 是下游路由器给它的,下游路由器只认识标签 3)。第三台路由器弹出标签,变成纯 IP 包,并做路由表查找,最后转发给身后的 IP 网络。 三、MPLS 的优势 1. 转发速度不是主要因素 中间的路由器都不需要查路由表,只查标签(标签没有掩码,标签定长) 2. VPN 服务: MPLS 把 IP 的路由和转发给分离了:在数据包入口的地方就可以决定数据包将要走的整条路径(传统的 IP 路由转发不行,因为每一跳都要去查找),它可以为不同入口的 IP 数据包压不同的标签出去MPLS

6、VPN两个不同的 VPN 客户使用相同的私网地址段,MPLS VPN 可以区分这两个不同客户的数据包走向。根据收到的接口不同,压不同的标签转发出去(传统 IP 只能匹配同一条路由条目,故只能按照一种方式做错误的转发) 传统 IP 路由转发:根据数据包要去往的目的 IP 地址,会匹配中同一条路由条目,故只能做一种转发方式 MPLS:根据标签转发,提供了另外一种转发方式 3. MPLS-TE(流量工程) 传统的 IP 转发,例如运行的是 ospf,数据包只会选择走 cost 值小(带宽大)的路径,当这条链路带宽超载时会发生丢包,但流量仍然不会走下面 MPLS TE 却可以在入口处强行指定路径以实现

7、非等价负载均衡 四、MPLS 包头封装位置和包头格式 4.1 MPLS 包头封装位置 MPLS 报头放在二层的帧头和三层的 IP 头之间的位置,所以 MPLS 也叫做 2.5 层的协议 MPLS 标签放在 MPLS 报头中 二层的帧头中的“类型字段”会指明上层是 IPv4 协议(0X0800)还是 MPLS 协议,路由器查看二层的帧头就知道应该使用哪张表来查表转发FIB、LFIBEthernet0x0800 IPv40x8847 MPLS 单播报文 0x8848 MPLS 多播报文 PPP0x8021 IPv40x8281 MPLS 单播报文 0x8283 MPLS 多播报文 所以中间的 MP

8、LS 路由器不会去看 IP 包头转发,只看 MPLS 报头转发 4.2 MPLS 包头格式 MPLS 头部总长为 4 字节(32bits,同 ipv4 地址长度) 1. 标签:20 位(100 多万个:0-220-1),为每一条路由分配一个标签,足够用了其中标签数值 0-15 为保留 2. EXP:做 QOS 用的,3 位 QOS 区分服务模型:分类、标记(着色)字段(值) 三层的 IP 包中的字段:TOS(早期)8 位DSCP(后来)6 位=64 个值二层:802.1q 的 trunk 中的 cos 字段(3 位) 二层交换机的 trunk(二层帧中的字段 COS5)复制到 IP 路由器(T

9、OS5),进 MPLS 域时复制到路由器MPLS 报头中(EXP5) 3. S:占比位,1 位,多层标签嵌套(实际上是有多个 MPLS 的报头),标识我是不是最内层的标签 0:外层标签 1:内层标签 MPLS VPN:2 层标签 CSC(运营商中的次级运营商技术):3 层标签 4. TTL(生存时间): 8 位,256 个数值,0-255,最大值为 255,看是从哪个操作系统发出来的,初始值不一样,每经过一台路由器减 1,防环。把 IP 包头里的 TTL 值复制到 MPLS 报头的 TTL 字段里 五、MPLS 架构及实现细节 5.1 控制层面 如何生成转发层面所需要使用的表 传统 IP 路由

10、是通过动态路由协议的学习最后生成路由表 1. 各种动态路由协议 任何 IGP、BGP 协议目的是传递路由 2. IP 路由表 3. 分配和传递标签的协议 (1) 专门的标签分发协议:LDP、TDPTDP:cisco 的标签交换技术,tag switching 所使用的标签分发协议。它是 LDP 的前身 LDP:被 IETF 公有化后演变了成现在的 MPLS 所使用的标签分发协议 (2) 其他可以分配标签的协议: 1. MP-BGP(多协议 BGP):也可以分配和传递标签,并把标签放在 MP-BGP 路由后面一起传递2. ipv4-BGP:不同的 AS 之间传递标签,用 LDP 传递标签不好3.

11、 RSVP(资源预留协议):出现在 QOS 的集成服务模型里的,用于数据网络,去请求保留带宽,然后可以沿着路径分标签用于 MPLS-TEQOS 的两种模型: 1. 区分服务模型:用的最多对数据包在入口处进行分类(根据重要性),然后打标记(着色,在字段中设置一个值),继续传递,其他路由器只看标记根据 QOS 的队列机制让重要的数据包每次都是优先转发。 但是每台路由器都要去实施。 2. 集成服务模型:类似于传统的电话网络,中间是二层的电话交换机用于语音网络打电话时交换机会发送信令去请求下一台交换机的带宽(需要的带宽),整条链路先预留带宽,保证语音的质量。预留不出来则通话不能建立,保证了服务质量。

12、但是是针对每一个流的,也不便于在互联网上大规模实施 4.通过无序分发(传递)标签,形成每台路由器自身的 LIB 表(标签信息库): LIB 表中只存放 LDP/TDP 协议分配的标签,其他协议(MP-BGP)分配的标签并不存放在LIB 表中,而在另外的表里。 路由条目自己本地分配的标签(local)所有别人给我的标签(remote)5.1.1 LDP 和 TDP 的联系 其实两者可以互相兼容:MPLS 分发标签底层全部使用LDP 或 TDP 都可以,但是两端接口必须保持协议的一致性 可以全局或接口下修改使用的标签分发协议,默认是 LDP: int s0/0mpls label protocal

13、 tdp/ldp全局下的 MPLS 命令: mpls ldp (新命令)等同于 tag-switching tdp(老命令)因为LDP 等同于TDP5.1.2 mpls ip 命令在接口上运行之后,LDP 的工作过程 1. 选举LDP router-id(同 ospf,选举好后即是一个稳定状态) 2. 使用 LDP router-id 的地址路由来建立直连路由器之间的 LDP 邻居关系(要注意底层路由的可达性) 3. 通过 IGP 路由协议学习到路由条目后,每台路由器针对这条路由条目本地分配一个标签 (local) 4. 通过LDP 协议无序分发标签(LDP/TDP 的标签分发是无序的,分发给

14、所有 LDP/TDP 邻居而不区分上下游),从而形成每台路由器自身的 LIB 表(localremote) 5.1.3 LDP 邻居的建立过程 1. LDP 首先使用UDP 源目端都为 646 发送 hello 包(并通过 UDP 协议维持 LDP 的邻居关系) LDP 的hello 消息源 IP 为物理口 IP 地址,目的 IP 地址发往 sh ip int s0/0/查看 mpls 接口的加组信息() 2. 协商相关参数,如LDP router-id 的大小(LDP 的hello 包总会携带) 3. 再使用 TCP 源端口随机,目的端口为 646 来建

15、立 LDP 邻居关系(LDP ID 大的主动去发起 TCP 会话连接小的) 源 IP 为本端的LDP ID,目的 IP 为对方的 LDP ID/因此需要双方环回口的路由可达sh mpls ldp nei/查看 LDP 邻居关系 access-list 100 permit ospf any any/建立 ospf 邻居才能学习到 LDP ID 的路由条目 access-list 100 permit udp host eq 646 host eq 646access-list 100 permit tcp host host

16、 eq 646/ LDP ID 大者向小的一方发起 TCP 连接 access-list 100 permit icmp any any/如果不需要 ping 通,可以不放行 access-list 100 denyip any anyTDP 依靠 TCP 711 端口建立邻居关系,同样是使用UDP 发送 hello 包(维持TDP 的邻居关系) 5.1.4 相关命令 LDP ID:类似于OSPF 的 router ID,选举规则也一样,使用 mpls ldp router-id lo0 force 可立即改变 LDP IDsh mpls ldp discovery/检查本地设备的 LDP R

17、ID在 LDP 邻居发现时,邻居之间的 LDP ID 必须 IGP 可达,否则在 sh mpls ldp discovery 中显示为 no route控制层面小结: 1. 每台路由器通过一种动态路由协议学习到路由条目 2. 每台路由器先本地为这条路由条目本地分配一个标签 3. 通过LDP 协议无序分发标签,形成每台路由器的 LIB 表 5.2 数据层面 如何去查那张表 传统 IP 路由是拿数据包中的目的 IP 地址去查路由表 1. FIB 表(转发信息库,又叫 CEF 表相当于路由表) FIB 表是对路由表的复制,做了一些优化,解决了递归查找问题 为什么要使用FIB 表:因为只有 FIB 表

18、才能关联标签,路由表是无法关联标签的 必须打开CEF 才会有FIB边界路由器要查 CEF 表:三层的表,IP 包是三层的包路由条目下一跳路由器给的标签(out)出接口 2. LFIB 表(标签转发信息库) 由 LIB 生成 中间的路由器只根据LFIB 表做标签的替换:针对的是标签包 本地分配的标签(in)下一跳路由器给的标签(out)路由条目出接口 LFIB 中 out 是 untagged 的情况:弹出所有标签 如果下一跳没有给我任何标签(没有运行 MPLS 的纯 IP 网络,我只能给它转发一个纯 IP 包的情况),则 out 是 untaggedLFIB 中 out 是 pop 的情况:只

19、弹出一层最外层的标签 每台路由器对于本地直连的路由条目本地分配的是一个“隐式空”的空标签(local 值为已经预定义的3),倒数第二跳路由器收到这个分发的空标签,它的LFIB 表中out就为POP。然后转发纯 IP 包给末端路由器,末端路由器一般情况下只需要查 IP 路由表(FIB 表)转发, 所以末端路由器对于直连路由其 LFIB 表中是没有这条路由的相应表项的 数据层面小结: 是什么包就查什么表 5.3 MPLS 架构小结 路由的传递是从下游往上游传 标签的分发是无序的,但只有在转发层面的表中关联下一跳给的标签才有意义数据包的转发是从上游往下游走 5.4 数据包转发时的几种可能性 收到的是

20、纯 IP 包,只查 FIB: 1. 压 out 的标签出去:MPLS 边界路由器从 MPLS 域外收到一个纯 IP 包的情况 2. 不压标签,正常的 IP 包出去:末端路由器的直连路由,从 MPLS 域内收到一个纯 IP 包的情况(已经倒数第二跳弹出了) 收到的是标签包:只查 LFIB: 1. 更换一个标签出去:MPLS 域中间的路由器 2. 弹出标签,变成纯 IP 包出去:倒数第二跳路由器POP六、基础实验 R3:ping /主要关注路由条目 /326.1 MPLS 基本配置及验证命令 1. 应首先保证MPLS 域中的所有路由器CEF 开启(默认开启) 2. 运行

21、一种路由协议,宣告物理口及环回口 因为LDP 会建立邻居关系(默认使用环回口建立邻居,因此必须要环回口路由可达) sh mpls ldp discovery3. 指定标签分配的范围针对所有可以分配标签的协议的标签分配范围 运行 MPLS,同时就默认启动了 LDP 对每条路由条目本地分配一个标签(local)LDP 分配标签从 16 开始,本地有效。最好强制每台路由器分配不同的标签范围(在启用 MPLS 之前就做,因为一旦启用了 MPLS 就启用了LDP,就已经开始分配标签了) 全局配置模式下: mpls label range 16 1004. MPLS 域中的所有物理接口下启用 MPLS(默

22、认就启用了 LDP 并建立LDP 邻居关系) int s0/0mpls ipsh mpls int/查看所有启用了 LDP 的接口 sh mpls ldp nei/查看 LDP 邻居:LDP 的TCP 连接发起方根据源端(随机)和目的端(646)判断 R3:trace /能看到数据包压标签到达目的地址查看控制层面的表: sh mpls ldp bindings/LIB 表:路由条目、标签local、标签 remote对于直连路由,本地分配空标签 对于非直连路由,本地正常分配标签 查看数据层面的表: sh ip cef detail/FIB 表:路由条目、下游路由器给我的标签(ou

23、t)、出接口 sh mpls forwarding-table/LFIB 表:本地分配的标签(in)、下游路由器给我的标签(out)、路由条目、出接口 注意:LFIB 表中不会存放自己的直连路由,因为倒数第二跳弹出后,不可能收到标签包,因此根本查不到LFIB 表 6.2 扩展内容 6.2.1 关闭 CEF:no ip cefLIB 中本地不分标签了 FIB 表空了 LFIB 表也空了 (1) 如果边界路由器关闭 CEF: (2) 如果中间路由器关闭 CEF: 此时完全是按照路由表正常查找转发,脱离了 LSP,此环境没有任何影响可以通,因为路由条目都有学习到,但是 MPLS-VPN 网络中就不通

24、了 不打开 CEF 就没有 FIB 表,路由器要基于 FIB 表本地分配标签和形成 LFIB 表,所以必须 在 MPLS 域中所有路由器上都打开CEF:ip cef6.2.2 如果将 R1 的环回口改为 24 位 需要在 R1 的接口下重启一下 mpls ip 命令 R1 通过 ospf 通告给 R2 的仍是 32 位路由 R2 的 LFIB 中 out 全变成 untagged 了,对于 MPLS VPN 就不正常了 问题原因: 1. R1 上本地会为直连的 24 位这条直连路由分配空标签,也会把这个空标签传递给 R2,但R2 上并没有 24 位的这条路由,因此这条路由不会显示进 LFIB

25、表中 2. R2 收到的路由是 32 位的,但是却收不到关于这条 32 位路由下一跳给它的标签,因为R1 上是直连的是 24 位的路由 3. R2 上只有 32 位的路由加入到LFIB 表中,因为没有收到任何标签,所以 out 是 untagged解决方法: 1. 使分标签的路由和传递的路由掩码一致,环回口网络类型改为点到点,这样宣告给邻居的也是 24 位掩码 2. 将所有路由器环回口掩码都设置为 32 位推荐 注意: LIB 表中仍然会保留失效的路由条目的相关标签表项: 6.2.3 如果 MPLS 域中存在路由汇总 eigrp: 汇总路由在 R2 上产生:/32 汇总为 1.1

26、.0.0/16,R2 会为 /16 这条路由本地分一个空标签,R3 压着空标签转发到 R2(即 R3 到R2 的包实际上是纯 IP 包) 而 R2 本身有明细路由,R1 本地分配的空标签分发过来,R2 又压着空标签转发到R1(等于还是一个纯 IP 包转发给R1)。因为 R2 上同时有汇总路由和明细路由,所以这种情况下不会有问题eigrp、ospf如果R1 和 R2 之间还有一台路由器,则会重新压一次标签过去 关键是看底层使用的是哪种动态路由协议,做汇总时本地会不会自动生成那条指向 null0 的汇总路由 1. eigrp 和ospf 手动汇总后本地都会自动产生一条指向空接口的汇总

27、路由,所以在MPLS-VPN中没有问题 2. rip 本地不会自动产生汇总路由,所以在 MPLS-VPN 中有问题 3. 另:ospf 的汇总只能在ABR 或ASBR 上做 rip 汇总:接口下(同 eigrp,DV 型)untagged,MPLS-VPN 有问题 int s0/1ip sum rip 所以 MPLS 域中的底层路由协议最好不要使用 ripeigrip 汇总:pop R2: 连 R3 的接口int s0/1ip sum eigrp 100 七、帧模式(IP)和信元模式(ATM)的区别 MPLS 的模式取

28、决于二层(数据链路层)的封装方式帧模式:以太网、PPP、HDLC信元模式:ATM7.1 标签的发配 帧模式:只要自己有路由就本地分配标签 信元模式:下游给我标签以后,我本地再开始自己分配标签 7.2 标签的分发 帧模式:分发是主动、无序的,不管对方要不要(好处是优选的下一跳路由器如果 down 机, 三层路由有可能指引我往上游转发数据包,这时因为已经保留了上游给我的标签,因此速度会比较快) 信元模式:按需分发(上游向下游请求) 7.3 标签的保留 帧模式:LDP 邻居传递给我的标签一直保存在我的 LIB 中,不管是不是下一跳或下一跳是否已经 down 掉(对方起来后,不需要重新分发标签进行三层

29、的收敛,速度快) 7.4 LFIB 表中是否关联数据包的入向接口 帧模式:不关联数据包的入向接口基于平台优点:表小,标签交换速度快 缺点:不安全 信元模式:关联数据包的入向接口基于接口 八、MPLS 的现实好处(通过 BGP 传递路由) 8.1 MPLS 中的 trace 相关命令 no mpls ip propagate-ttl/TTL 值在 MPLS 入口处变成 255,并且不递减此时 traceroute 失效,实验结果为只显示第一跳 8.2 通过 BGP 传递路由 R1 和 R3 通过 IBGP 传一条 32 位的环回口路由 纯 IP 网络中,不可能通(因为中间的路由器没有运行 IBG

30、P,没有这条路由),但 MPLS 中可以通 R1:sh mpls ldp bindings本地不会为 3 这条路由分标签(学到的是 B 表项),LDP 只会为 IGP 的路由分标签,不会为BGP 路由分标签。但转发数据包时会压这条BGP 路由的下一跳路由的标签 (通过 学来的)sh ip cef detail sh ip bgp/去往 3 下一跳是 R2 没有运行BGP,也没有 11 和 33 的路由 好处:运营商中间的所有 P 路由器都不用承载BGP 的路由(客户的路由),只需要维护一个标签即可实现客户路由的端到端通信 8.3 扩展内容 添加更大 IP 的环回口: R1 重启 mpls ip 后,LFIB 中的 out 都是 untagged(没有收到下一跳的任何标签),LDP 邻居也建立不起来了 因为LDP 也有 RID,通过 RID 建立邻居,并且 RID 选举好后是非抢占的,除非重启 mpls ip才重新选举(选举RID 的方式同 o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论