HCIP-9

发布时间:2024年01月21日

MPLS:多协议标签交换---ISP应用

包交换:基于数据包中的IP地址进行路由;

标签交换:基于2.5层的标签进行数据转发; 多协议:无论网络层运行什么协议;

当下的主要应用:

  1. 解决BGP路由黑洞???? 2)MPLS VPN????? 3)MPLS TE(流量工程)

使用MPLS首先需要开启CEF:

  1. 启动CEF可以被ASIC(硬件芯片)直接调用转发
  2. CEF解决了递归问题,对应MPLS的标签生成非常重要
  3. CEF生成FIB表,而TDP/LDP只能基于该表进行标签的分发;
  4. 普通的路由表中不允许存在其他协议的参数,只有CEF可以提供MPLS的标签保存

控制层面:交换路由信息;标签的分发(MPLS不为BGP的路由进行标签分发)

数据层面:根据路由转发用户数据;标签的压入和弹出,基于标签号进行数据的转发

控制层面:通过IGP或者EGP交互路由信息,在交互路由信息基础上,通过TDP/LDP为所学习到的路由条目生成标签号,同时将标签告知邻居;

该层面工作完成后------生成:

  1. FIB转发信息数据库??????
  2. LIB标签信息数据库(本地和邻居对各条路由条目生成的标签号)
  3. LFIB标签信息转发数据库--FIB表和LIB进行结合

数据层面:普通的IP数据包,基于FIB表转发;若存在标签号基于LFIB转发流量

MPLS的数据包封装于2层和3层之间,称为2.5层

标签数据格式:32位

前20位为标签号:存在2^20个号码,其中0-15号被保留;故正常分发第一个号码为16号

20-22位:8个优先级,可用于进行QOS

第23位:栈底位,为1,标示本层标签为最后一层;最多可以存在3层标签信息;

TTL:当标签压入时,复制IP报头中的TTL值到标签中,当标签被弹出时复制TTL值到IP包头中;

一层标签:普通的MPLS流量

二层标签:MPLS VPN

三层标签:MPLS TE

使用MPLS后,二层若为以太网,其type 字段:

0X8847 MPLS单播

0X8848 MPLS 多播

名词注解:

  1. mpls domain -----MPLS工作的范围
  2. LSR(P路由器):标签交换路由器 查看数据包中的标签号基于LFIB进行数据转发
  3. Edge LSR(PE路由器):边界标签路由器;在数据层面工作时,第一跳路由器负责标签

? 的压入,最后一跳路由器负责标签的弹出;

  1. CE 客户端路由器,不工作于MPLS域,使用FIB表转发流量
  2. 上游路由器,下游路由器 基于数据层面进行区分

MPLS工作原理:

在控制层面传递路由条目的同时,MPLSTDP/LDP将基于每条条目进行标签号的分发,然后传递给邻居;上游设备传输流量时,压入下游设备分发的标签号

MPLS的优化:PHP次末跳 倒数第二跳;默认执行

最后一跳路由器在默认情况下需要查看LFIB后再查看FIB表,然后转发数据;PHP可以使倒数第二跳路由器在已知出接口等信息时,将标签弹出,就流量转发给最后一跳路由器;使最后一跳仅查看FIB表;

最后一跳,到达某个目标为本地直连时,及视为本地是该目标的最后一跳路由器;基于该网段分配给上游路由器标签号3;来告知对端为倒数第二跳;

注:PHP仅弹出最上层标签;?? pop 标示仅弹最上层标签

???????????????????????????? Untagged MPLS域标记,弹出所有标签;

配置:

  1. 单播路由
  2. CEF
  3. 开启MPLS
  4. (可选,建议配置)? 修改MTU大小,因为标签的压入后将增大数据包,可能由于默认的MTU值,导致数据被重新分割,影响转发速度

r1(config)#int s1/1

r1(config-if)#mtu 1504? 直连两端必须配置为一致

r2(config)#interface s1/1

r2(config-if)#mpls ip 开启某个接口的MPLS

华为

四、MPLS的配置

1、IP可达--- 使用路由协议全网可达

2、配置MPLS – LDP

[r2]mpls lsr-id 2.2.2.2??? 必须先定义mpls的router-id,要为本地设备的真实ip地址,且邻居可达,因为?

????????????????????? 该地址将用于建立TCP会话,建议使用环回地址

[r2]mpls???????????? 再开启mpls协议

[r2-mpls]mpls ldp????? 再激活LDP协议

[r2-mpls-ldp]q

之后需要在所有标签经过的接口上开启协议

[r2]interface GigabitEthernet 0/0/1

[r2-GigabitEthernet0/0/1]mpls??? 先开启MPLS

[r2-GigabitEthernet0/0/1]mpls ldp?? 再激活LDP协议

开启隧道递归[r2]route recursive-lookup tunnel?

当启动配置完成后,邻居间使用UDP报文组播收发hello包;之后基于hello包中的router-id地址进行TCP会话的建立;

[r3]display tcp status

TCPCB??? Tid/Soid Local Add:port??????? Foreign Add:port????? VPNID? State

b4cf3d64 167/6??? 3.3.3.3:646?????????? 4.4.4.4:50858???????? 0????? Established

b4cf3adc 167/3??? 3.3.3.3:50806???????? 2.2.2.2:646?????????? 0????? Established

当tcp会话建立后,邻居间基于TCP会话再建立邻居关系,生成邻居表:

[r3]display? mpls ldp peer

开启[r2]route recursive-lookup tunnel?

再然后基于本地的FIB表,默认华为仅针对32位的主机路由生成标签号;存储于LIB表中,之后邻居间共享LIB表;

[r3]display? fib? 查看FIB表

[r4]display? mpls ldp? lsp??? 查看LIB表,装载本地和邻居为各条路由分配的标签号

最后路由器将LIB和FIB集合,生成最佳路径的标签转发规则—LFIB

[r4]display mpls lsp? 查看LFIB表

注:默认华为仅针对32位主机路由分配标签

[r3]mpls

[r3-mpls]lsp-trigger all?? 开启功能,将针对fib表中所有路由进行标签号的分配

分发的协议存在两种:

  1. TDP? cisco私有??? TCP/UDP 711? hello包基于UDP传输,标签信息传输基于TCP
  2. LDP?????? 公有??? TCP/UDP 646? hello包基于UDP传输,标签信息传输基于TCP

Cisco ios版本12.4(3)以下设备默认使用TDP,以上默认LDP

设置mpls标签范围

R2(config)#mpls label range 200 1044

r2(config)#mpls label protocol ?? 修改工作协议

? ldp? Use LDP

? tdp? Use TDP (default)

协议开启后,邻居间使用hello包建立邻居关系,生成邻居表

r2#show mpls ldp neighbor??? 存在RID,RID的选举规则同OSPF一致;

????????????????????????? 注:RID也是数据包发送的目标ip地址,故若RID不能被访

????????????????????????? 问到,那么邻居关系将不能建立;若配置了环回,那么环回需

????????????????????????? 要宣告到单播路由协议中;

也可以修改RID为本地物理接口;

r2(config)#mpls ldp router-id serial 1/1 ??? 修改该接口ip地址为RID

? force? Forcibly change the LDP router id? 即可生效

? <cr>??????????????????????????????? 重启后生效

当邻居关系建立后,基于FIB表,生成LIB

MPLS将基于本地所有学习到的路由条目分发一个标签号,FIB中基于本地和邻居分配给每条条目的所有编号;

当LIB生成后,将LIB和FIB表进行结合,生成LFIB来转发流量;

r2#show mpls forwarding-table

入标签为本地分配

出标签标签为下游分配

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

MPLS将不为通过BGP学习到的路由条目分发标签号;

但是在访问BGP学习的目标时,封装该目标BGP下一跳地址所在网段的标签号;

使中间未运行BGP协议的路由器,基于标签号将流量转发到BGP的下一跳处,来避免路由黑洞;

MPLS VPN:

通过公网来传递私网的路由条目,由ISP负责;

  1. CE端和PE端的路由传递
  2. 如何区分不同的CE传递过来的相同路由----RD

?? RD---路由区分器----一个64位16进制的数值?? X:X 1:1

  1. ISP路由器不能将CE端的路由装载到本地的普通路由表中,提供VRF空间

?? VRF:虚拟路由转发----在PE上配置,基于不同的CE端生成各种的路由表

  1. VRF中的路由不是普通路由,普通路由协议不能将其进行传递,必须使用MP-BGP来传递

VPNV4路由===IPV4路由+RD+RT值

  1. RT值,用于区分不同的目标接收者?? RT值的格式同RD值,但RD为数值,RT为社团属性
  2. 使用MPLS可以解决路由黑洞,但当数据层面流量到达目标地址所在BGP路由器时,由于数据层面流量不能携带RD/RT值,故在弹出标签后,导致流量无法对应到不同CE端的VRF空间;因此,使用双重标签;外标签用于解决路由黑洞,将流量转发到CE端所连PE,内层标签用于对应不同的VRF空间;

配置:

  1. ISP的部分

[1]单播路由

[2]CEF

[3]MPLS

[4]定义VRF空间,同时关联所连接的CE端接口,再同时定义RD/RT

r2(config)#ip vrf openlabxian??? 创建空间名为openlabxian

r2(config-vrf)#rd 1:1???????????? RD值

r2(config-vrf)#route-target 1:1???? RT值

r2(config-vrf)#exit

r2(config)#interface s1/0?? 进入关联接口

r2(config-if)#no ip address 因为该接口将归属于VRF空间,故原IPV4地址需要排除

r2(config-if)#ip vrf forwarding openlabxian?? 关联空间

r2(config-if)#ip address 12.1.1.2 255.255.255.0? 配置该接口ip地址,该接口所在路由将转移

??????????????????????????????????????? 到VRF空间内

r2#show ip route vrf openlabxian? 查看该空间内的路由条目

r2#ping vrf openlabxian 12.1.1.1?? 使用该空间的路由来进行通信

注:当流量从某VRF空间所关联接口进入,那么将查询该VRF内的路由条目;

非VRF空间所关联接口进入,查看普通IPV4路由表

【5】MP-BGP---两个PE上配置

使用MP-BGP来传递VRF空间内的路由条目

先建立IPV4的BGP邻居关系,再建立MP-BPG关系

r2(config)#router bgp 1

r2(config-router)#b router-id 2.2.2.2

r2(config-router)#neighbor 4.4.4.4 remote-as 1

r2(config-router)#neighbor 4.4.4.4 update-source loopback 0

r2(config-router)#address-family vpnv4?? 进入家族模式

r2(config-router-af)#neighbor 4.4.4.4 activate???? 建立MP-BGP邻居关系

r2(config-router-af)#neighbor 4.4.4.4 send-community? 开启社团属性传递性, 否则RT将不

????????????????????????????????????????????? 能被传递

  1. CE端将私网路由传递给PE端

【1】静态

CE端,配置缺省静态指向ISP即可

PE端配置到CE端私网的静态路由

r2(config)#ip route vrf openlabxian 192.168.1.0 255.255.255.0? serial 1/0 12.1.1.1

出接口和下一跳必须同时存在

r2(config)#router bgp 1? 再将本地VRF空间内的直连和静态路由重发布到BGP协议中

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute static

r2(config-router-af)#redistribute connected

r2#show ip bgp vpnv4 vrf openlabxian

?? Network????????? Next Hop??????????? Metric LocPrf Weight Path

Route Distinguisher: 1:1 (default for vrf openlabxian)

*> 12.1.1.0/24??????? 0.0.0.0????????????????? 0???????? 32768 ?

*> 192.168.1.0??????? 12.1.1.1???????????????? 0???????? 32768 ?

【2】RIPV2

CE端正常启动和配置RIPV2

PE端配置:

r2(config)#router rip

r2(config-router)#version 2

r2(config-router)#no auto-summary

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#network 12.0.0.0

r2(config-router-af)#redistribute bgp 1 metric 1

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute rip

【3】EIGRP

CE端正常配置EIGRP协议

PE端配置:

r4(config)#router eigrp 1?? 启动时,需要使用本地真实的AS号

r4(config-router)#no auto-summary

r4(config-router)#address-family ipv4 vrf openlabwu

r4(config-router-af)#autonomous-system 90 ??在VRF内建邻时告知CE端所使用AS号

r4(config-router-af)#network 45.0.0.0

r4(config-router-af)#redistribute bgp 1 metric 1544 100 255 1 1500

r4(config)#router bgp 1

r4(config-router)#address-family ipv4 vrf openlabwu

r4(config-router-af)#redistribute eigrp 90? 导入时使用私有AS号

【4】OSPF

CE端正常配置

PE端

r2(config)#router ospf 1 vrf openlabxian

r2(config-router)#router-id 2.2.2.2

r2(config-router)#network 12.1.1.2 0.0.0.0 a 0

r2(config-router)#redistribute bgp 1 subnets

r2(config-router)#exit

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute ospf 1

注:若两端的PE上实施不同的OSPF虚拟进程号,那么路由条目显示5类学习;

若两端均为OSPFI协议,且虚拟进程号相同,那么路由条目为1类、3类

Show ip bgp vpnv4 all summaryv展示vpnv4的邻居

先在全局下 MPLS label? rang 100 199 控制标签范围

华为

  1. isp
  1. ip可达
  2. 建立bgp邻居关系
  3. 启用mp-bgp 也就是mpls
  4. bgp传递社团属性

[r2]bgp 100

[r2-bgp]ipv4-family vpnv4

[r2-bgp-af-vpnv4]peer 4.4.4.4 enable

[r2-bgp-af-vpnv4]peer 4.4.4.4 next-hop-local

  1. 在pe上创建虚拟空间

[r2]ip vpn-instance 1

[r2-vpn-instance-1]route-distinguisher 1:1

[r2-vpn-instance-1-af-ipv4]vpn-target 1:1 export-extcommunity

?EVT Assignment result:

Info: VPN-Target assignment is successful.

[r2-vpn-instance-1-af-ipv4]vpn-target 2:2 import-extcommunity

?IVT Assignment result:

Info: VPN-Target assignment is successful.

绑定在连接ce的接口

[r2]interface g0/0/0

[r2-GigabitEthernet0/0/0]undo ip address

[r2-GigabitEthernet0/0/0]ip binding vpn-instance 1

[r2-GigabitEthernet0/0/0]ip address 12.1.1.2 24

pe上进行rip宣告

[r2]rip 1 vpn-instance 1

[r2-rip-1]verify-source 2

[r2-rip-1]version 2

[r2-rip-1]network 12.0.0.0

在ce端正常启动rip

ospf

[r4]ospf 2 vpn-instance 2

[r4-ospf-2]area? 0

[r4-ospf-2-area-0.0.0.0]network 45.1.1.1 0.0.0.0

双向重发布

[r2]bgp 100

[r2-bgp]ipv4-family vpn-instance 1

[r2-bgp-1]import-route rip? 1

[r2]rip 1 vpn-instance 1

[r2-rip-1]version 2

[r2-rip-1]network 12.0.0.0

[r2-rip-1]import-route? bgp

文章来源:https://blog.csdn.net/dgw2648633809/article/details/135731524
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。