目录
MPLS(多协议标签交换)
包交换
数据组成数据包,在网络中的各个节点传递,最准到达目标,即路由转发的过程。
1、查两张表,即路由表和ARP缓存表。
2、路由表的匹配原则(最长匹配原则)。
3、递归查找。
4、IP包头可变长,即只能通过软件进行处理。
控制层面:路由协议中的数据流的流动方向,目的是为了获取未知网段的路由信息,生成路由表。
数据层面:基于设备已完善的路由表(FIB),来转发具体的数据到达目标网段。其方向正好和控制层面相反。
标签交换
在二层封装和三层封装之间,添加一个和路由条目存在映射关系的标签,之后维护一张记录对应关系和转发接口表,之后携带标签的数据来到设备上,将先看到标签,之后基于维护的表进行转发,二不再看三层发的IP数据。因为标签本身短小且定长,所以转发效率会高于包交换。但是由于标签交换过程需要由压入标签和弹出标签的动作,所以整体对包交换效率的提升并不明显。
控制层面:基于FEC分配标签,并且获取其他LSR对相同FEC分配的标签。记录在本地LIB表中,再结合FIB表生成LFIB表。(控制层面的功能可以通过静态手工配置来完成,也可以通过动态协议来完成 --- LDP协议:标签分发协议。)
数据层面:设备基于LFIB表,根据标签进行转发。
包交换的优化过程
1、进程交换:最早期的包交换,就是每个数据包来到设备都需要去基于目标IP查看路由表及ARP缓存表来进行转发。
2、快速包交换:基于流的包交换,一次路由多次交换 --- 只有第一个数据包需要执行包交换的过程。
3、思科的特快交换(Cisco Express Forwading):即CEF,对路由表和ARP缓存表中的内容进行预读取(路由表中需要递归查找的线递归好)记录在CEF表中。并且这个CEF表可以支持硬件处理。
虽然CEF是思科的私有技术,但是各个厂商结合原理都开发出了自己的特快交换技术。护卫设备在进行数据转发时,就查看的不是路由表,而是FIB表(转发信息数据库),该表支持硬件处理转发。
MPLS其实就是和包交换结合共同发展的标签交换技术。因为标签生成需要识别三层协议,而MPLS称为多协议标签交换,因为他可以识别和兼容多种三层协议。
MPLS主要应用的领域:
1、用来解决BGP的路由黑洞
2、MPLS-VPN
3、MPLS-TE(流量工程),可以简单理解为控制流量转发发路径。
运行MPLS设备组成的网络,我们可以称为是一个MPLS域。域中所有运行MPLS的设备都可以被称为LSR(标签交换路由器)。
这个标签是每台路由器基于自己路由表中的路由条目生成的,是陆运器的个人行为。
在MPLS中,我们把具有相同特征的数据包称为FEC(等价转发类),简单理解为匹配到同一个条路由条目的所有数据报文都属于同一个FEC,一个FEC分配一个标签。
LIB表(标签信息表)
LFIB表(标签信息转发表),是LIB表和FIB表结合的产物,主要记录的就是标签编号和出接口及下一跳的对应关系。
在整个过程中,所有MPLS域中的LSR处理自己针对某个FEC生成的标签外还需要获取其他LSR对相同FEC分配的标签。
结合上面的图来分析:
R1这台设备为进入MPLS域中的数据压入标签,所以这样的设备我们称为:入站LSR(Ingress LSR)
在这个过程中,R2完成了一次标签的置换动作,这样的LSR我们称为:中转LSR(transit LSR)
R4是MPLS域的一个边界,完成的是标签的弹出动作,这样的LSR我们称为:出战LSR(egress LSR)
整个数据层面数据流动的路径为R1-R2-R3-R4,我们把这条路径称为LSP(标签交换路径)
一般一个FEC会对应一条LSP。特别注意:LSP是分方向的,如果需要实现数据的双向互通,则必须搭建两个方向的LSP才行。LSP的搭建方法:静态、动态LDP
LABEL:20位,取值范围为0-2的20次方。我们把标签的取值范围称为标签空间,每台设备的标签空间是独立的。
0-15,特殊标签值,我们在分配时一般不用这些标签,因为他们具有特殊含义
16-1023,一般用于静态LSP搭建使用
1023-2的20次方,LDP等可以动态分配标签的协议使用的标签号的范围
EXP:占3位,主要做策略用的。一般情况下为000,可以理解为优先级,数值越大,优先级越高,可以优先转发。
S:占1位(栈底位),我们把标签头部组成有序序列称为标签栈。该位为1,则代表是最后一个标签,为0,则代表还有后续标签需要处理。
TTL:相当于将TTL值换了个位置进行计数,作用和目的都是一样的。