MPLS补充

MPLS:多协议标签交换---ISP使用

包交换:依赖报文中的IP地址进行数据转发

标签交换:基于2.5层的标签号进行数据转发;

MPLS---多协议---无论网络层运行何种协议,2.5均可运行标签交换;

 

当下的主要应用:

  1. 解决BGP的路由黑洞问题   2)MPLS VPN   3)MPLS TE(流量工程)

 

 

使用MPLS的前提是设备基于CEF工作:

  1. 启动CEF后,表格可以被ASIC(硬件芯片)直接调用
  2. CEF解决了递归的问题,便于MPLS生成标签转发表格
  3. CEF工作后生成FIB表,只有FIB可以存储标签表;

 

 

控制层面:交互路由信息(路由协议收敛);进行标签号的分发;

数据层面:根据路由表转发用户数据报文;基于标签号进行数据转发,压入标签、弹出标签;

 

 

控制层面:通过IGP或EGP交互路由条目,生成路由表,然后CEF基于路由表生成FIB表;MPLS使用TDP/LDP基于FIB表中的每一条信息(本地所有的路由条目)生成一个标签号,然后告知所有邻居;

该工作完成后路由器上生成:

0)路由表

  1. FIB表---转信息数据库= CEF基于路由表生成
  2. LIB表---标签信息数据库(本地和邻居关于所有学习到的路由条目生成的标签号)
  3. LFIB表--标签转发信息数据库----将FIB表和LIB进行结合

 

数据层面:普通的数据包将基于FIB表转发;若数据包中存在标签号基于LFIB进行转发;标签的压入和弹出也是在数据层面完成的;

 

 

MPLS的数据封装于2层和3层间,故称为2.5层

 

 

 

MPLS的数据包格式:

前20位为标签号:存在2^20个号码,其中0-15保留;

21-23位为8个优先级,用于QOS;

25-32位TTL----当标签号被压入时,将复制3层报头的TTL值,然后每经过一个路由器减1,当标签号弹出时,复制回IP报头中;

 

第24位为栈底位---为1标示本信息为最后一层标签信息;最多可以存在3层标签;

 

一层标签为普通MPLS,主要用于解决BGP的路由黑洞;

二层标签为MPLS VPN使用;

三层标签为MPLS TE使用;

 

使用MPLS后,二层若依然为以太网封装,那么类型号将变化:

0x8847 MPLS单播

0x8848 MPLS 多播

 

 

名词注解:

  1. MPLS domain--MPLS工作的范围
  2. LSR(P路由器):标签交换路由器  查看数据包中的标签号然后基于LFIB表进行转发
  3. Edge LSR(PE路由器):边界标签路由器;在数据层面时,MPLS 域的第一跳路由器负责标签的压入,最后一跳负载弹出;
  4. CE 客户端路由器,不工作于MPLS域,使用FIB表转发流量;

 

 

MPLS的工作过程:

当控制层面使用路由协议传递路由条目后,路由器上使用TDP/LDP为本地FIB表中每一条存在的路由条目均分配一个标签号,装载于LIB表中,同时传递给邻居,LIB中还记录邻居传递到本地标签号;之后路由器基于本地的FIB和LIB表生成LFIB---标签转发表---标签号的最佳路径对应

数据层面工作时,第一跳路由器负责标签的压入,中间路由器基于标签号转发流量,进行标签号的替换,最后一跳路由器负责标签的弹出;

 

注:入标签号为本地分配的标号,出标签为下一跳(下游)分配的标签号;

     存在上下游路由器概念,基于数据层面定义;

 

MPLS的优化: PHP次末跳 -----倒数第二跳;默认执行

最后一跳路由器在默认情况下需要查看LFIB表后再查看FIB表,然后转发数据;PHP可以使倒数第二跳在已知出接口、下一跳等信息时便将标签号弹出,然后基于出接口转发流量;导致最后一跳路由器仅查看FIB表;

 

最后一跳路由器,将本地直连路由传递给邻居时使用标号3来告知对方为倒数第二跳;

非直连路由正常分配标签号;针对域外的非直连路由,域内的最后一跳路由器需要查询两张表;建议PE路由器直接连接用户,不再连接其他路由器;

 

 

注:pop 标示仅弹出最上层标签---仅仅只是倒数第二跳;  untagged 弹出所有标签---意味了离开MPLS domain;

 

 

配置:

  1. 单播路由协议  --路由表
  2. CEF          ---FIB
  3. (可选,建议配置)--修改MTU值;  链路两端一致;

普通MPLS--1504   MPLS VPN--1508  MPLS TE-1512

r1(config)#interface s1/1

r1(config-if)#mtu ?

  <64-17940>  MTU size in bytes  修改接口MTU值

 

  1. 开启MPLS ----在标签号所有需要经过的接口上配置

r2(config)#interface s1/1

r2(config-if)#mpls ip  开启某个接口的MPLS协议

 

 

 

 

MPLS协议在工作时,存在两种封装:

1、TDP  cisco私有      TCP/UDP 711   hello包基于UDP传输,标签信息基于TCP传输

2、LDP  公有          TCP/UDP 646   hello包基于UDP传输,标签信息基于TCP传输

Cisco ios 版本12.4(3)以下设备默认使用TDP,以上使用LDP;

 

r2(config)#mpls label protocol ?  修改封装协议

  ldp  Use LDP

  tdp  Use TDP (default)

 

 

 

 

协议开启后,邻居间使用hello包建立邻居关系,生成邻居表:

r2#show mpls ldp neighbor    存在RID,RID的选举规则同OSPF一致

注:RID同时作为了建立TCP会话的源目ip地址;若存在环回,那么默认使用环回作为RID,此时就必须将环回宣告到路由协议中--必须可达;

r2(config)#mpls ldp router-id serial 1/1 ?  修改RID为S1/1口的地址

  force  Forcibly change the LDP router id   立即生效

  <cr>                                 重启设备后生效

 

 

 

当邻居关系建立后,邻居间会将基于FIB表生成的标签号传递给邻居,保存于LIB表中:

r2#show ip cef detail  查看FIB表

r2#show mpls ldp bindings 查看LIB表

 

之后将LIB表和FIB表进行结合,生成LFIB表,基于该表格进行标签流量转发;

r2#show mpls forwarding-table

 

 

 

 

使用普通的MPLS来解决BGP的路由黑洞问题:

MPLS将为FIB表中的路由条目分配标签号;但通过BGP学习的条目不分配;而是在访问BGP目标时,压入到达下一跳地址的标签号,来通过中间未运行BGP协议的网络到达下一跳处;

 

MPLS VPN:

VPN:虚拟专用网络

MPLS VPN:ISP配置,客户端透明;通过公网来传递私网路由和信息;

 

1、CE端和PE端传递路由

2、如何区分不同CE端相同的路由条目---依赖RD值

   RD--路由区分器---一个64位的16进制数---X:X  ---一个CE端一个RD值对应一个接口

  1. ISP路由器不能将CE端的路由条目装载到本地普通路由表中,存储于VRF空间内

   VRF:虚拟路由转发   基于每个RD和接口一个空间

  1. VRF空间内的路由不是普通的路由条目,必须使用MP-BGP路由协议来传递

   普通的路由协议负责传递公网路由表中条目

   VRF内的路由被称为 VPNV4路由==IPV4路由+RD值+RT值

  1. RT值,用于区分不同目标接收者;RT值和RD值的编写格式一致;

   RD值仅仅是一个参数,RT值是BGP的一种社团属性;

  1. 使用MPLS可以解决BGP的路由黑洞问题;CE1端将流量传递给PE1端口,PE1通过查看该CE1所绑定的VRF空间路由条目将流量转发到PE2,PE2直连CE2,但PE2可能同时连接其他CE端,那么将出现无法定义该查看那张VRF空间路由表;故PE1在将流量传递给PE2时,封装两层标签,外标签用于穿越P路由器;内层标签用于告知PE2所查询的VRP表格;

配置:

  1. ISP的部分

【1】单播路由表

【2】CEF

【3】MPLS,建议同时修改MTU

【4】定义VRF空间,同时关联所连接的CE端接口,再同时定义RD/RT值

r2(config)#ip vrf xian  创建空间,名为xian

r2(config-vrf)#rd 1:1    RD值

r2(config-vrf)#route-target 1:1  RT值

r2(config-vrf)#exit

r2(config)#interface s1/0   进入关联接口

r2(config-if)#no ip address 默认该接口ip地址所在直连路由处于普通路由表中,现需转移到

                       VRF空间内,故先将地址清洗

r2(config-if)#ip vrf forwarding xian  关联空间

r2(config-if)#ip address 12.1.1.2 255.255.255.0  重新定义地址

注:此时普通路由表中将不再存在该接口的直连路由,而是装载到了绑定的VRF空间内

r2#show ip route vrf xian

默认ping时,使用普通路由表,若需要基于VRF空间内的条目通讯

r2# ping vrf xian 12.1.1.1

 

【5】MP-BGP---在两个PE端配置

r2(config)#router bgp 1

r2(config-router)#b router-id 2.2.2.2

r2(config-router)#neighbor 4.4.4.4 remote-as 1

r2(config-router)#neighbor 4.4.4.4 update-source loopback 0   先建立IPV4邻居关系 

r2(config-router)#address-family vpnv4   进入MP-BGP家族模式

r2(config-router-af)#neighbor 4.4.4.4 activate     建立MP-BGP邻居关系

r2(config-router-af)#neighbor 4.4.4.4 send-community  必须开启社团属性的传递性;

 

 

【6】CE端将私网路由传递到PE端

  1. 静态

CE端,正常配置静态路由皆可

PE端配置到CE私网的静态路由,必须配置到VRF空间内

r2(config)#ip route vrf xian 192.168.1.0 255.255.255.0 serial 1/0 12.1.1.1 

出接口下一跳必须同时编写

 

 

 

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf xian  将该空间的静态、直连路由重发布到BGP中

r2(config-router-af)#redistribute static

r2(config-router-af)#redistribute connected

 

 

 

r2#show ip bgp vpnv4 vrf xian

BGP table version is 9, local router ID is 2.2.2.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

              r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

 

   Network          Next Hop            Metric LocPrf Weight Path

Route Distinguisher: 1:1 (default for vrf xian)

*> 12.1.1.0/24      0.0.0.0                  0         32768 ?

*>i45.1.1.0/24      4.4.4.4                  0    100      0 ?

*> 192.168.1.0      12.1.1.1                 0         32768 ?

*>i192.168.2.0      4.4.4.4                  0    100      0 ?

 

 

 

  1. RIP

CE端正常启动和宣告RIP协议即可

PE端配置:启动后进行双向重发布即可

r2(config)#router rip

r2(config-router)#version 2

r2(config-router)#no auto-summary

r2(config-router)#address-family ipv4 vrf xian

r2(config-router-af)#network 12.0.0.0

r2(config-router-af)#redistribute bgp 1 metric 1

 

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf xian

r2(config-router-af)#redistribute rip

 

 

  1. EIGRP

CE端正常启动和宣告即可

PE端配置:启动后进行双向重发布即可

r4(config)#router eigrp 1   启动时必须配置该设备所在真实的AS号

r4(config-router)#no auto-summary

r4(config-router)#address-family ipv4 vrf beijin

r4(config-router-af)#autonomous-system 90   申明邻居使用的AS号

r4(config-router-af)#network 45.0.0.0

r4(config-router-af)#redistribute bgp 1 metric 1544 100 255 1 1500

 

r4(config)#router bgp 1

r4(config-router)#address-family ipv4 vrf beijin

r4(config-router-af)#redistribute eigrp 90  重发布时,使用私有的AS号

 

  1. OSPF

CE端正常配置即可

PE端配置

r2(config)#router ospf 1 vrf xian

r2(config-router)#router-id 2.2.2.2

r2(config-router)#network 12.1.1.2 0.0.0.0 a 0

r2(config-router)#redistribute bgp 1 subnets

 

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf xian

r2(config-router-af)#redistribute ospf 1

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MPLS(Multiprotocol Label Switching)标签是一种用于在数据包转发过程中进行路由和转发的技术。它通过在数据包头部添加一个标签(Label),来标识数据包的转发路径。MPLS标签可以在网络中的各个节点上进行交换和转发,从而实现快速、高效的数据传输。 MPLS标签由20位的标签值组成,用于唯一标识一个特定的转发路径。在数据包进入MPLS网络时,路由器会根据目的IP地址和路由表信息为该数据包分配一个MPLS标签,并将其添加到数据包的头部。在后续的转发过程中,路由器只需根据标签值进行转发,而无需再进行复杂的IP查找和解析操作,从而提高了转发速度和网络性能。 MPLS标签的转发是基于标签交换的,即路由器根据标签值来确定数据包的下一跳路径。当数据包到达下一个节点时,该节点会根据标签值查找相应的转发表,并将数据包转发到正确的出接口。在数据包到达目的地时,最后一个节点会将MPLS标签移除,并将数据包交付给上层协议进行进一步处理。 MPLS标签具有以下几个重要的特点: 1. 快速转发:MPLS标签交换的方式可以提高数据包的转发速度,减少网络延迟。 2. 灵活性:MPLS标签可以根据网络需求进行灵活配置和调整,实现不同的服务质量和路由策略。 3. 路由隔离:MPLS标签可以将不同的流量隔离到不同的转发路径上,提高网络的安全性和可靠性。 4. 多协议支持:MPLS标签可以支持多种网络协议,如IP、以太网等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值