MPLS-多协议标签交换

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

数据交换方式

包交换:依赖报文中的IP地址进行数据转发。原始的包交换需要路由器基于路由表和ARP表来转发数据。
快速交换:一次路由,多次交换。
CEF:无需路由,直接交换。
标签交换:基于2.5层的标签号进行数据转发;
MPLS—多协议—无论网络层运行何种协议,2.5均可运行标签交换;

mpls当下的主要应用

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的数据包格式

MPLS的数据包
前20位为标签号:存在2^20个号码,其中0-15号保留;
21-23位为8个优先级,用于QOS;
第24位为栈底位—为1标示本信息为最后一层标签信息;最多可以存在3层标签;
一层标签为普通MPLS,主要用于解决BGP的路由黑洞;
二层标签为MPLS VPN使用;
三层标签为MPLS TE使用;
25-32位TTL----当标签号被压入时,将复制3层报头的TTL值,然后每经过一个路由器减1,当标签号弹出时,复制回IP报头中;

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值

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

r1(config)#interface s1/1
r1(config-if)#mpls ip  开启某个接口的MPLS协议

MPLS协议在工作时,存在两种封装:
封装
Cisco ios 版本12.4(3)以下设备默认使用TDP,以上使用LDP;

r1(config)#mpls label protocol ?  修改封装协议
  ldp  Use LDP
  tdp  Use TDP (default)

协议开启后,邻居间使用hello包建立邻居关系,生成邻居表:
r2#show mpls ldp neighbor 存在RID,RID的选举规则同OSPF一致
注:RID同时作为了建立TCP会话的源目ip地址;若存在环回,那么默认使用环回作为RID,此时就必须将环回宣告到路由协议中–必须可达;

r1(config)#mpls ldp router-id serial 1/1 ?  修改RID为S1/1口的地址
  force  Forcibly change the LDP router id   立即生效
  <cr>                                 重启设备后生效

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

r1#show ip cef detail  查看FIB表
r1#show mpls ldp bindings 查看LIB表

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

r2#show mpls forwarding-table 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值