LDP --- 标签分发协议 --- 主要服务于MPLS的控制层面
IGP时LDP协议的基础,需要先创造路由环境才行。
LDP ---- 分配标签,传递标签
分配标签:激活LDP后,LDP会在本设备上为FEC分配标签 ---- 注意,并
不是对所有的FEC都分配标签,他只对如果自己是某个FEC的出
站LSR是,才主动为这个FEC分配标签。
分配方式 ---- 有序方式:只有自己是某个FEC的出站LSR时才会主动
分配标签,其他设备分配标签需要先收到FEC和标签的对应关系,之
后进行检查(检查自己路由表中是否存在到达这个FEC的路由,以及
下一跳和通告者是否相同),检查通过后才去分配标签 ----- 华为
设备默认采用的是有序分配方式。
独立方式:设备可以自己自主对FEC分配标签而不需要
等待其他设备的通告。
传递标签
R4将标签和FEC的映射关系传递给R3的前提条件是 ---- R4和R3
必须是LDP对等体关系,而建立对等体关系的前提是R3和R4之间
必须建立LDP会话。
LDP对等体关系分为两种 ---- 本地LDP会话:直连的两个设备之间
建立LDP会话
远程LDP会话:并不一定是直连设备,可以通过手工指定的方式
去远程建立LDP会话。 ---- 非直连建邻 ---- TCP
LDP在进行本地LDP会话建立时,不需要手工指定。 ---- 本
地LDP会话会周期性的发送组播hello包进行发现邻居。因为
Hello包是组播发送,所以,传输层只能使用UDP协议进行封
装。
1,先在LSR上激活LDP协议,我们LSR的接口将开始周期发送
hello包来发现LDP对等体。
hello包采用UDP的646号端口进行通讯。源和目标都是 646。
Hello包中将携带自己的LDP ID和传输地址等。
传输地址:默认使用的是我们配置的LSR-ID。这个传输
地址在后续将作为TCP会话建立的通讯地址,所以,在配
置LSR-ID时,一定要保证该地址可用,且IGP要保证彼此
地址间可达。
LDP ID:要求,所有激活LDP协议的设备都需要具有一个
LDP ID。由48位二进制构成。一般构成方式LSR-ID:
0 ---- 前32位为LSR ID,后16位位标签空间
2,双方收到彼此交互的hello包之后,获取到对方的传输地
址,之后,基于传输地址,去建立TCP会话。为了避免重复
建立TCP会话,LDP会选择传输地址大的一方作为主动方,主
动发起TCP会话连接请求。
LDP在建立TCP会话连接之前,也会像BGP一样,去检查
传输地址的可达性,如果可达,则建立连接,如果不可达,
则不建立连接。
3,完成TCP会话建立之后,传输地址更大的一方将优先发送
初始化报文,中将携带LDP相关的参数,对端收到后,将对
这些参数进行检查,如果认可,则将发送自己的初始话报
文,同时还会发送一个keeplive报文,代表确认收到的参
数。对端收到初始化报文后,如果认可其中的参数,则也将
反馈一个keeplive报文作为确认。双方都收到对端的
keeplive报文后,则将代表LDP会话建立完成。
搭建一条指向4.0网段的LSP,则数据层流量将从R1指向R4,
则R1称为R2的上游,R2称为R1的下游。而标签传递是控制层流
量,则其传递方向是从下游传递给上游。
标签传递的方式:DU模式(下游自主模式) ---- 下游设备主动
发送标签 ---- 华为设备默认使用DU模式。
DoD模式(下游按需模式) ---- 下游设备只有在收到上游设备发
送的请求报文之后,才会发送标签。
只有上游设备会去收集下游设备的标签。
PHP ---- 次末跳弹出机制 --- 需要利用特殊标签号 ---
3(隐式空标签)---- 其作用是如果一个LSR看到一个数据的出站标
签为3是,则将直接把该标签弹出。 ---- 华为设备默认开启PHP优化
机制。
LDP动态搭建LSP配置
[r1]mpls lsr-id 1.1.1.1
[r1]mpls --- 全局激活MPLS
[r1]mpls ldp --- 全局激活MPLS LDP
[r1-GigabitEthernet0/0/0]mpls --- 接口激活MPLS
[r1-GigabitEthernet0/0/0]mpls ldp --- 接口激活MPLS LDP
[r1]display mpls ldp peer --- 查看LDP对等体
[r1]display mpls ldp session --- 查看LDP会话建立情况
[r1]display mpls ldp lsp --- 查看LDP搭建的LSP信息 --- LIB
[r1]display mpls lsp --- 查看所有LSP信息 --- LFIB
因为华为设备的LDP默认只给32位主机路由分配标签,主要是为
了防止路由条目过多时导致LSP数量太大,造成设备负担。
[r4-mpls]lsp-trigger all ---- 执行该命令后,会给路由表中所有的路由条目分配标签
在数据转发时,没有标签的数据回去根据IP报文匹配FIB表,如果FIB
表中的tunnelID为非0值,则代表需要走标签交换。
MPLS解决路由黑洞问题
[r2]route recursive-lookup tunnel ---- 在递归查找时,如果有
隧道则递归到隧道中
MPLS VPN
MPLS VPN不仅仅是单一VPN技术,是一种由多种技术结合的综合解决方案。
PE ---- 服务提供商边界设备
CE ---- 客户边界设备
为了保证不同客户的CE设备传递的路由信息可以隔离开,需要使用 ---- VRF技术 ---- 虚拟路由转发 --- VPN instance ---- 创建多个VRF相当 于创建多个虚拟设备,每台设备有独立的路由表,FIB表,动态路由协议,及接口等
RD --- 路由区分码 --- 64位二进制构成的数值。AS:NN(AS号:自定义
数值) ---- 将64位的RD值放在32位的IP路由前缀前面,形成96位的路由
前缀。形成VPNV4路由条目。
MP-BGP --- BGP V4的拓展版,支持多种地址族,包括IPV4,VPNV4,
IPV6…. RT --- 路由目标值 ---- 也称为VPN Target。 ---- 32位二进制构成,
一个VPNV4路由中可以携带一个或多个RT值。 ---- 通过BGP的社团属性来
携带。
RT ---- 出站RT:PE1为不同的VRF空间定义的发出路由时社团属性中
携带RT值
入站RT:PE2为不同VRF空间定义的比对值。
控制层面可达后,为保证数据层面正常传递,我们在通过MPLS域时需要打
双层标签。外层标签被称为公网标签,内层标签被称为私网标签。
公网标签 --- 由LDP协议分配,目的是为了让数据可以通过MPLS域
私网标签 --- 由MP-BGP协议分配,目的是为了区分不同的vrf空间,通过
BGP的社团属性携带。