- 编辑 | 排版 | 制图 | 测试 | ©瑞哥
- 此文用时1小时43分钟,原创不易,坚持更不易,希望我的每一份劳动成果都可以得到大家的一个【在看】
MPLS中如何产生标签
1、路由器为每个FEC分配一个标签,在标签转发表中显示in标签
2、路由器通过LDP协议分发标签给邻居,邻居放入到out这一列。
LSR判断MPLS标签报文
根据二层字段
0x8847表示以太网(单播) 0x8848以太网(组播)
0x8281表示ppp MPLSCP,一种新的NCP协议
LDP协议报文除了hello基于udp,其他的报文都是基于TCP,端口号646
通过组播224.0.0.2
transport address为LSR的传输地址 默认和router-id相等
可以通过以下命令来修改
代码语言:javascript复制
R(config-if)# mpls ldp discovery transport-address interface
或者
R(config-if)# mpls ldp discovery transport-address x.x.x.x
当两台mpls路由器的LDP router-id不能通信的时候
解决办法
1、运行路由协议,让transport-address互相通信
2、或者修改transport-address为物理地址
LDP协议建立
发现邻居:show mpls ldp discovery
建立会话:show mpls ldp neighbor
接口启用MPLS:show mpls interface
查看 LDP的参数:show mpls ldp pareameters
- 其中session hold time:180 sec;keep alive interval:60 sec指的是第二阶的时间
- 其中discovery hello:holdtime:15 sec,interval:5 sec指的是第一阶段的时间(通过组播)
- 其中discovery targeted hello:holdtime:90 sec;interval:10 sec 指的是第一阶段通过单播remote建立邻居的时间(远程建立邻居,类似BGP)
mpls ldp router-id interface [force] force强制指定的router-id立刻生效(邻居会重启)
分配好标签通告给邻居是通过label mapping message
在接口上配置mpls ip :目的是从这个接口上发送LDP HELLO报文出去
loopback接口是否需要启用mpls ?答案是不用,因为没有邻居
当运行的IGP是OSPF的时候,可以在ospf进程下配置mpls auto-config:该条命令可以使得所有运行ospf的接口启用mpls
PHP倒数第二跳机制
首先查找mpls转发表,在查找IP路由表,查表两次,导致效率低下
解决办法:在倒数第二跳上弹出标签,使得最后一跳直接基于IP路由表转发。(默认开启)
LDP协议的“标签行为”
分配模式:label allocation
独立控制模式(默认方式):只要学到路由就自动分配标签
有序控制模式:收到邻居发送来对应的路由条目的标签,才分发该路由条目的标签。
分发模式:label distribute
下游主动模式(默认方式):本地将生成的标签信息全部通告给LDP邻居
下游按需模式:只有邻居向本地请求某条浅醉的标签信息时,本地才将相应的信息发给邻居。
保留模式:label retention
自由模式(默认方式):本地将邻居传递过来的所有标签库信息都保存在数据库中
保守模式:本地仅保存最优路由下一跳邻居所通告的路由前缀的标签
标签空间:label space
基于平台(默认方式):本地通告出去的标签信息对全局有意义,从不同接口通告出去的同一FEC所对应的标签相同
基于接口:本地通过出去的标签信息对局部有意义,从不同接口通告出去的同一FEC所对应的标签不同
MPLS防止环路
基于TTL:生成的路由条目没有环路——生成的的FEC没有环路——生成的标签没有环路
no mpls ippropagate-ttl[ forwarded | local](关闭TTL复制功能,默认开启该功能),开启则在mpls域中,使用IP的TTL,如果关闭,则使用255
forwarded:对进入的流量关闭标签复制功能
local:为本地产生的流量关闭标签复制功能
MPLS认证
基于MD5的认证
R(config)# mpls ldp neighbor X.X.X.X password password-txt
MPLS 转发表
MPLS 标签数据库
1、路由器建立LDP的邻居,相互通告标签的映射信息
2、信息同步到MPLS标签数据库
3、再从标签数据库中找到最佳路径的下一跳通告过来的标签信息放入到MPLS转发表
show mpls ldp bindings 查看LDP标签数据库
local binding : taga: 本路由器为该条FEC分配的标签(imp-null=POP)
remote binding: tsr: 邻居为该前缀通告的标签
show mpls forwarding-table 查看MPLS转发表
POP 弹出最顶层的一个标签
untag 弹出所有标签,倒数第一条为直连路由分配的标签
一个接口如果没有启用MPLS 那么从该接口出去的标签都是untag
show ip bgp V**v4 all labels 查看所有vrf的标签
V**
peer-to-peer V**
建立在运营商设备上,在PE设备上建立,客户只需要给钱,所有问题运营商搞定。
MPLS-V**中怎么解决两边客户端使用相同的AS,使用相同的AS不传路由(即,解决AS-PATH防止环路机制导致路由无法学习问题)
1、as-override:把AS-PATH包换的和CE AS好相同的AS号全部替换成自己的AS号(在PE设备上配置)
2、allowas-in:表示允许接收BGP条目中含有几次自己AS-PATH(在CE设备上配置)
排错
1、先查路由——分段式的检查
2、在检查标签
私网标签——只要V**v4路由有,基本都没有问题
公网标签——标签不连续:注意检查路由是否汇总,如果mpls域使用的IGP是OSPF,注意查看loopback接口是否是通告的实际掩码。
3、mpls中LDP的邻居关系——注意检查应该配置的接口是否开启mpls ip
overlay V**