mpls
包交换:依赖报文中的IP地址进行转发
标签交换:基于2.5层标签号进行数据转发
LDP:标签分发机制 udp 646端口 自动建邻
hello包 udp 646
update TCP 646
组播地址 224.0.0.2
标签分发:上游对下游分发标记,即控制层里面的路由通告的方向
LDP分配标签参考的cef表,cef表中所有的路由都分配一个标签,形成一个binding表,binding表中有路由前缀以及本地分配的标签(local binding),还会把从邻居收到的关于该路由的标签也放置进去(remote binfing,中有邻居的id及邻居分配给路由的标签).
这里的路由前缀一定是严格匹配一致性的。比如10.1.1.0/24和10.1.1.1完全不一样,无一点关系。
mpls中路由在传递过程中不能汇总,不能改变其位数(掩码)。如果底层是ospf,那么ospf的回环地址最好写成32位的主机地址。否则会产生标签断裂现象。
若出现负载均衡,会产生两个标签,实际只走一条路,某一个流是一条路。
2.vrf:虚拟路由转发(实质为分割路由表)
名词注解:
标签表LIB
FIB转发信息数据库
参与转发标签的路由器叫做LSR
参与标签交换的LSR 为P设备
既有路由转发又有标签转发 为PE设备
只有路由转发的 为CE设备
FEC等价转发类 LSR为每一个前缀生成一条LSP(标签转发路径),每一个前缀都是一个等价转发类。
LSP:是一种单向隧道,mpls隧道必须要在双向都建立LSP。
3.mpls的控制平面,数据平面:
(数据在转发的时候查转发表,不查路由表,转发表通过路由表生成。
控制平面:路由选择部分也叫控制平面(软件),其核心是路由选择处理机
数据平面:分组转发部分也叫数据平面(硬件),其核心是硬件处理芯片和交换结构)
控制平面:RIB-->CEF NEFIB MIB表
NEFIB表 :下一跳转发表,解决黑洞问题本质上bgp路由表中的下一跳会被分配给更新源的LSP,在通过bgp转发数据时,bgp更新源的下一跳会分配到一个tunnel id,该tunnel id与更新源的LSP tunnel id一致。
数据平面: 标签转发表 ---LFIB LIB
LFIB是执行数据的弹标签(pop),压标签(push)
LIB是执行数据的交换标签(swap)
MPLS中LSP是通过短而定长的字段判断转发,从而实现“快速转发”。
标签的压入可以压入多层,标签可以通过判断栈底位1,0判断是否为栈底,0表示为栈底。标签分配思科默认从16开始,0-15为特殊标签,其中1为隐式空标签。
3标签的下一跳弹出机制:当在本地发现有C(链路层自发发现路由)路由,就会为该路由分配一个固定为1的隐式空标签,当该标签被传递给邻居路由器时,该路由器会为交换到该标签的数据从接口发出时弹出标签3。这个机制打破了为每一个FEC分配一个不同的标签。该机制大大的加快了mpls的转发效率。
VRF 虚拟路由转发
虚拟化路由器的技术,,用vrf分割路由表(RD)
RD:区分不同VRF的路由,本地有效。
2:6 10.1.0.2/24
2:1 10.1.0.2/24
vrf路由会被加上一个rd标识。
一。vrf与全局通信
1.用静态
Vrf-->全局 ip route x.x.x.x x.x.x.x 下一跳 global
全局-->vrf ip route x.x.x.x x.x.x.x 出接口
2.用tunnel
tunnel中可以使用tunnel vrf x 可以使得tunnel的出接口用vrf的接口。
也就是说隧道可以在全局路由表,而出接口可以是使用vrf接口。
作用:例如总部和电信都要下放一条默认,此时可以把电信的默认放在全局里面,总部下放的默认放在vrf里面
RD为本地参数,RT为全局参数
二。远端vrf之间如何通信
控制平面:
1.路由传递
CE-PE 通过路由协议邻居之间传递
PE-VRF内部 IGP重发布到BGP的vrf以及BGP-VRF重发布到IGP-vrf或者BGP-VRF的邻居传递
PE-PE之间 BGP VPNv4邻居关系
2.标签传递
PE-PE之间传递 由LDP分配,ldp邻居传递
PE-vrf--PE-vrf之间 由bgp,vpnv4分配,VPNv4邻居传递
数据层面:
形成mpls转发表双标签转发
内层标签由bgp-vpnv4分配,决定去往那个vrf
外层标签由ldp分配,决定去往哪个PE
bgp的 vpnv4需要传递的必要参数:
1.路由前缀
2.RD
3.route-tagert export
4.lable
来源:https://blog.csdn.net/qq_43803267/article/details/98944824