作者:吃货程序猿 | 来源:互联网 | 2023-09-03 19:33
MPLS解决什么问题: 1.传统IP转发效率问题: 基于软件,逐跳转发,效率慢,需要封装和解封装,现在网络都是基于硬件转发(解决效率问题),封装过程 Bit流 Eth(mac) Ip(协议号区分上层tcp或udp) Tcp/udp Data 2.传统IP转发在流量工程方面的问题 从A网络到C网络传递数据时只走最优路径没有办法实现负载,导致流量都走上行链路,容易造成瓶颈
MPLS技术原理 多协议标签交换技术(MPLS)是一种IP骨干网技术,MPLS在无连接的IP网络上引入面向连接的标签交换概念,将三层路由技术和二层交换技术相结合,充分发挥IP路由的灵活性和二层交换的简洁性 工作在2.5层 MPLS网络基于底层的IP网络建立,也就是说建立MPLS网络必须保证底层IP可以通信 控制平面是无连接的(实现路由传递和标签分发),数据平面是面向连接的(实现报文在lsp上传送)
MPLS优势: 标签转发,转发和控制层面分离,可扩展性强(ipv6,ipx,CLNP等)
MPLS应用场景:
MPLS VPN 2.MPLS TE(流量工程) A网络到C网络,给不同的标签分发不同的资源占比 3.MPLS QOS MPLS EXP字段 MPLS网络模型:
LER:标签边界路由器 连接了IP网络和MPLS网络,负责压入标签和弹出标签 LSR:标签交换路由器 收到带标签的流量,在MPLS域内交换标签 LSP:标签交换路径 标签转发的路径,LSP可以有多个中间节点,但只有一个入节点和出节点 MPLS结构 数据平面的IP forwarding table是根据控制平面的IP routing table得来的 数据平面的label forwarding table是根据控制平面的LDP得来的
标签转发表生成方式 1.手工指定 2.LDP标签分发协议得到 3.MP- BGP(多协议BGP)生成 4.RSVP-TE(资源预约协议)生成
MPLS帧格式: Payload:始数据
MPLS header中有哪些东西 Label:标签值,2的20次方个标签 Exp:可以做流分类,用于QOS ,取值范围0-7 S:栈底位,用来表明是否为最后一个标签,取值0-1 TTL:默认值255 标签分配方式: 1.静态分配: 16-1023 2.动态分配: 1024及以上,标签分发协议有:LDP,RSVP-TE,MP-BGP 特殊标签: 0-15 标签3用于倒数第二跳弹出
MPLS标签转发: 标签分发方向与数据发送方向是相反的
FEC:转发等价类 为目的前缀相等的一组数据分配的标签,对一个转发等价类分配一个唯一的标签 NHLFE:下一跳标签转发表项 进行标签转发时用到,包含了一些基本信息:1.报文的下一跳2.如何进行标签操作(包括压入标签,弹出标签,标签交换等操作),还可以包含一些其他信息,如发送报文使用的链路层封装等
标签动作swap(交换),pop(弹出),push(压入)
LDP基本概念 概念: LDP是用来在LSR之间建立LDP Session并交换label/FEC映射信息的协议 LDP消息类型:
LDP报文封装: 应用层协议
LDP消息作用 LDP的hello消息,源IP是本地,目的地址为224.0.0.2的组播地址(代表链路上的所有路由器),hello消息封装在UDP中 发送完hello消息后建立TCP连接,后边的协商报文通过TCP封装 LDP使用的端口号是646
LDP发现机制: LDP基本发现机制:发现直接连接在同一链路上的LSR邻居 LDP扩展发现机制:发现非直连的LSR邻居 拿回环口建立邻居需要回环口之间可以通信 扩展发现机制中间经过其他设备,这时建立邻居发送的不再是组播消息,而是单播消息 Hello消息发送完以后开始TCP连接,TCP连接发起方为IP地址大的一方
如果SWB发送的协商参数对端不接受,SWA返回一条错误消息,告诉SWB连接不能建立
LSP建立方式: 静态LSP: 用户通过手工方式为各个转发等价类分配标签建立转发隧道,本地概念,不能感知到整个LSP的情况 静态LSP特点:
不使用标签发布协议,不需要交互控制报文,资源消耗比较小 通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预 静态LSP适用于拓扑结构简单并且稳定的网络 动态LSP: 通过标签发布协议动态建立转发隧道 动态LSP通过LDP协议实现对FEC的分类、标签的分配及LSP的建立和维护等操作 动态LSP的特点: 1.组网配置简单,易于管理和维护 2.支持基于路由动态建立LSP,网络拓扑发生变化时,能及时反应网络状况
动态LSP标签发布协议有:
LDP MP-BGP(多协议BGP),是在BGP协议上扩展的协议,支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签 RSVP-TE(资源预约协议) 标签发布方式: DU方式:下游自主方式(默认) 下游设备主动向上游设备通告标签,无论上游是否需要 DoD方式:下游按需方式 下游设备按需通告标签,上游设备向下游设备请求标签,下游设备进行响应
标签的分配控制方式 1.independent(独立标签分配控制方式): 本地LSR可以自主的分配一个标签绑定到某个IP分组,并通告给上游LSR,而无需等待下游的标签 2.ordered(有序标签分配控制方式):默认 只有当该LSR已经具有此IP分组的下一跳的标签,或者该LSR就是该IP分组的出节点时,该LSR才可以向上游发送此IP分组的标签
标签的保持方式: 1.liberal(自由标签保持方式):默认 对于从邻居LSR收到的标签映射,无论邻居LSR是不是下一跳都保留 2.conservative(保守标签保持方式): 当邻居LSR是自己的下一跳时才保留 单域MPLS BGP/MPLS IP VPN 简介 BGP/MPLS VPN是一种L3VPN,它使用BGP在服务提供商骨干网(ISP)上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文,这里的IP指VPN承载的是IP报文。 BGP/MPLS VPN基本模型由三部分组成:CE、PE、P
CE:用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE感知不到VPN的存在,也不需要支持MPLS PE:服务提供商网络的边缘设备,与CE直接相连,在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高 P:服务提供商网络中的骨干设备,不与CE直接相连P设备只需具备基本的MPLS转发能力,不维护VPN信息 PE和P设备由服务提供商管理,CE设备由用户管理,除非用户把管理权委托给服务提供商 一台PE设备可以接入多台CE设备,一台CE设备也可以接入属于相同或不同服务提供商的多台PE设备 在服务提供商网络上基于标签转发 使用BGP/MPLS IP VPN目的: 传统VPN通过在所有站点间建立全连接隧道或者永久虚拟链路PVC的方式实现,不易维护和扩展,尤其是向已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置 BGP/MPLS IP VPN基于对等体模型,这种模型使得服务提供商和用户可以交换各自的路由,服务提供商转发用户站点间的数据而不需要用户的参与相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理,新增一个站点时,只需要修改提供该站点业务的边缘节点的配置 BGP/MPLS IP VPN支持地址空间重叠,支持重叠VPN,组网方式灵活,可扩展性强,能够方便的支持MPLS TE,成为在IP网络运营商提供增值业务的重要手段,因此得到越来越多的应用 Site通过CE连接到运营商网络,一个site可以包含多个CE,但一个CE只属于一个site,对于多个连接到同一运营商网络的site,通过制定策略,可以将它们划分为不同的集合,只有属于相同集合的site之间才能通过运营商网络互访,这种集合就是VPN 地址空间重叠: 以下两种情况允许使用重叠的地址空间:
两个VPN没有相同的site,比如下图就不行
两个VPN有共同的site,但此site(A市)中的设备不与两个VPN中使用重叠地址空间的设备互访,比如B市和C市各有一个设备,都是使用10.1.1.1,但是A市不与其他两市的10.1.1.1互访(如上图)
VPN实例(VRF): 在BGP/MPLS IP VPN中,不同VPN之间的路由隔离通过VPN实例实现。PE为每个直接相连的site建立并维护专门的VPN实例,VPN实例中包含对应SITE的VPN成员关系和路由规则,具体来说,VPN实例中的信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(路由标识符)、路由过滤策略、成员接口列表等
VPN、Site、VPN实例之间的关系:
VPN是多个Site的组合,一个Site可以属于多个VPN 每个Site在PE上都关联一个VPN实例,VPN实例综合了它所关联的site的VPN成员关系和路由规则,多个site根据VPN实例的规则组成一个VPN VPN实例与VPN不是一一对应的关系,VPN实例与site之间存在一一对应的关系 路由表和转发表: PE上存在多个路由转发表(VRF),包括一个公网路由转发表,以及一个或多个VPN路由转发表 公网路由表包括所有PE和P设备的ipv4路由,由骨干网的路由协议或静态路由产生。VPN路由表包括属于该VPN实例的所有site的路由,通过CE与PE之间或者两个PE之间的VPN路由信息交互获得。 公网转发表是根据路由管理策略从公网路由表提取出来的转发信息,而VPN转发表是根据路由管理策略从对应的VPN路由表提出来的转发信息
VPN-IPV4:
VPN-IPV4地址共有12字节,包括8字节的路由标识符RD和4字节的ipv4地址前缀 VPNv4路由是通过BGP的UPDATE报文中的扩展属性通告的
RD: 用于区分使用相同地址空间的ipv4地址前缀,增加了RD的ipv4地址称为VPN-IPV4地址(即VPNv4地址)。PE从CE收到ipv4路由后,转换为全局唯一的VPN-IPV4路由,并在公网上发布 在PE之间传递VPNv4需要使用MP-BGP(多协议BGP),MP-BGP拥有分配标签的功能 RR:路由反射器 RD的结构使得每个服务供应商可以独立的分配RD,但为了在CE双归属的情况下保证路由正常,必须保证PE上的RD全局唯一
VPN Target(RT): 用于对端区分不同的VPN RT配置在VPN实例中 BGP/MPLS IP VPN使用BGP扩展属性VPN Target(也称为Route Target)来控制VPN路由信息的发布
私网路由交叉:
单域MPLS实验 拓扑图:
1.配置IP和动态路由,配置MPLS域的IGP(ospf)路由 AR3: AR4: AR5:
查看ospf邻居已建立
查看路由表,有ospf路由
2.配置MPLS网络AR3:
AR4:
AR5:
查看标签转发表,表明mpls域配置成功
3.PE间建立MP-BGP对等体关系,用于传递VPNv4路由AR3:
AR5:
查看vpnv4对等体建立成功displaybgp vpnv4 all peer
4.PE上配置VPN实例、绑定、做路由AR3:
AR1:
查看bgp对等体建立情况,只能查看bgp对等体,不能查看vpnv4对等体
查看vpnv4对等体
Display bgp vpnv4 vpn-instance VPN1 routing-table查看vpn实例的路由表,这时查看不到路由表信息,因为AR1没有将10.1.1.0通告到bgp内
AR1将10.1.1.0路由通告到bgp内
AR3:这时AR3可以display bgpvpnv4 vpn-instance VPN1 routing-table查看vpn实例的路由表信息,但是AR5收不到AR3传过去的路由信息,因为AR5上没有配置vpn实例
AR5:
AR5与AR6建立对等体AR5:
AR6:
AR6:查看对等体建立情况
AR6有10.1.1.0的路由
将10.1.2.0路由通告到bgp中
AR1有10.1.2.0的路由
AR3:查看vpn实例vpn1的路由表
AR3测试:ping –vpn-instancevpn1 11.1.1.1
AR1:ping –a10.1.1.1 10.1.2.1
数据传输过程(MPLS域内):在AR3上display bgp vpnv4 vpn-instance vpn1 routing-table发现到达10.1.2.0的下一跳是5.5.5.5,AR4上没有运行BGP,这时需要LDP分发标签,借助标签传递路由,在AR3上display bgp vpnv4 vpn-instance vpn1 routing-table label查看AR3到AR5的标签(内层标签1026,由MP-BGP分发),由于AR3不能直接将数据传递给AR5(5.5.5.5),所以在内层标签(1026)外还得在封装一层LDP分发的外层标签(1025),用于将数据先传递给AR4,再通过MP-BGP分发的内层标签传递给AR5内层标签:
外层标签:LDP分发
AR2与AR7:AR2建立实例2
AR5建立实例2
AR2与AR3建立ospf对等体,AR3使用ospf进程2建立,因为进程1已经被使用(MPLS域内的IGP路由)AR2:
AR3:
查看ospf对等体建立成功
Ospf路由表
在AR3上将ospf路由注入到bgp中
AR5学到了vpn实例vpn2的路由
AR5和AR7建立ospf对等体,AR5使用ospf进程2建立,因为进程1已经被使用(MPLS域内的IGP路由)AR5:
AR7:
AR5上将bgp路由注入到ospf内
AR7查看路由表,有10.1.1.1的路由
由于ospf回环口默认通告路由32位,如果想要变成24位,将AR2和AR7的回环口的ospf网络类型改为广播
AR7查看路由表,有10.1.1.0的路由
AR5上将ospf路由通告到bgp中
AR3:将bgp注入到ospf全局;Ospf 2Import-route bgp 测试