一.简介
- MPLS,称之为多协议标签交换,在九十年代中期被提出来,用于解决传统IP报文依赖查表转发而产生的瓶颈,现多用于VPN技术,MPLS报头封装在数据链路层之上,网络层之下。
- 本文为结合了华为技术和新华三技术的大成,即结合了HCIA,HCIP,HCIE Datacom和H3CNE-RS+,H3CSE-RS+,H3CIE-RS+。本文将主要介绍MPLS VPN的部署与应用,博主将会在MPLS专栏中持续更新关于MPLS的进阶内容。
二.前言
- BGP/MPLS IP VPN因其支持地址空间重叠、组网方式灵活、可扩展性好,并能够方便地支持MPLS TE等一系列优点,已经在广域IP承载网络得到了广泛的应用。
- 针对不同客户的业务需求以及组网情况,MPLS VPN的部署方式不尽相同。
- 本文章将介绍几种常见的MPLS VPN应用场景与这些场景下MPLS VPN的部署方法,此外还将介绍OSPF对MPLS VPN的扩展特性与功能。
三.MPLS VPN应用与组网概述
1.MPLS VPN典型应用
- 目前,MPLS VPN的主要应用包括企业互连和虚拟业务网络。
- 企业互连应用:可通过MPLS VPN将分布在各地的分支机构和合作伙伴的IP网络连接在一起;
- 虚拟业务网络:可在同一物理网络上运行多种业务,如VoIP、IPTV等,为每个业务建立一个VPN,实现业务隔离。
2.MPLS VPN基本组网:Intranet
- 当采用Intranet组网方案时,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信,其站点通常是属于同一个组织。
3.MPLS VPN基本组网:Extranet
- 当采用Extranet组网方案时,VPN用户可将部分站点中的网络资源给其他VPN用户进行访问。
4.MPLS VPN基本组网:Hub&Spoke
- 当采用Hub&Spoke方案时,可以将多个站点中的一个站点设置为Hub站点,其余站点为Spoke站点。站点间的互访必须通过Hub站点,通过Hub站点集中管控站点间的数据传输。
- 从Site1到Site2的路由发布过程如下:
5.MCE组网
- 当一个私网需要根据业务或者网络划分VPN时,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将增加用户的设备开支和维护成本。
- 具有MCE(Multi-VPN-Instance,CE多实例CE)功能的CE设备可以在MPLS VPN组网应用中承担多个VPN实例的CE功能,减少用户网络设备的投入。
6.MPLS VPN跨域组网
- 随着MPLS VPN解决方案的广泛应用,服务的终端用户的规格和范围也在增长,在一个企业内部的站点数目越来越大,某个地理位置与另外一个服务提供商相连的需求变得非常的普遍,例如国内运营商的不同城域网之间,或相互协作的运营商的骨干网之间都存在着跨越不同自治系统(AS,Autonomous System)的情况。
- 一般的MPLS VPN体系结构都是在一个AS内运行,任何VPN的路由信息都是只能在一个AS内按需扩散。AS之间的MPLS VPN部署需要通过跨域(Inter-AS)MPLS VPN解决方案来实现。
- 在BGP/MPLS IP VPN组网中,一个VPN实例仅能与其他VPN-Target相匹配的VPN实例相互通信,但是VPN实例无法与公网或其他VPN-Target不匹配的VPN实例中的用户相互通信。用户可以配置不同实例的路由相互引入功能。配置不同实例的路由相互引入功能可以分为两种类型:
- 公网与私网的路由相互引入功能。
- 不同私网间的路由相互引入功能。
四.MPLS VPN典型场景部署介绍
1.Intranet场景
(1)部署Intranet场景的MPLS VPN
- 如图所示,客户X及Y各自有2个站点,现需要通过MPLS VPN实现站点之间的互联,分别对应VPN X和VPN Y;
- 互联接口、AS号及IP地址信息,CE与PE通过如图的协议或方法交换路由信息;
(2)PE-CE之间部署OSPF1
(3)PE-CE之间部署OSPF2
(4)PE-CE之间部署静态路由
(5)PE-CE之间部署EBGP
(6)特殊场景下的BGP配置:AS号替换
- 在MPLS VPN场景中,若PE与CE之间运行EBGP交互路由信息,则可能会出现两个站点的AS号相同的情况。
- 若CE1通过EBGP向PE1发送一条私网路由,并经过PE2发送到CE2,则CE2会由于AS号重复丢弃这条路由导致属于同一VPN的Site 1和Site 2之间无法连通。
- 可以在PE上执行peer substitute-as命令使能AS号替换功能,即PE用本地AS号替换收到的私网路由中CE所在VPN站点的AS号,这样对端CE就不会因为AS号重复而丢弃路由了。
(7)特殊场景下的BGP配置:SoO
- 在CE多归属场景,若使能了BGP的AS号替换功能,可能会引起路由环路,需要So0(Site ofOrigin)特性来避免环路。
- CE1与CE3处于同一个VPN站点1,CE2位于站点Site2,site1和Site2站点所在的AS号都为65001。PE与CE之间运行的都是EBGP路由协议,为了Site1和Site2之间的路由可以正常学习,需要在PE1和PE2上配置AS号替换功能。
- CE1传递站点内的路由给PE1,PE1传递该路由给CE3,由于配置AS号替换,CE3会接收该路由,可能会导致产生路由环路。
(8)PE-CE之间部署IS-IS
2.Hub&Spoke场景
(1)部署Hub&Spoke场景的MPLS VPN
- Hub&Spoke有以下组网方案:
- 方式-:Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用EBGP。
- 方式二:Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用IGP。
- 方式三:Hub-CE与Hub-PE使用EBGP,Spoke-PE与Spoke-CE使用IGP。
- 无法通过Hub-CE与Hub-PE使用IGP,Spoke-PE与Spoke-CE使用EBGP来部署Hub&Spoke组网的MPLS VPN。
(2)VRF配置
- Spoke-PE上创建一个VPN实例,RT配置如图。
- Hub-PE上创建VPN_in和VPN_out两个VPN实例,分别用于从Spoke-PE接收私网路由或向Spoke-PE发布私网路由,RT配置如图。
(3)方式一:路由发布过程
- Spoke-CE与Spoke-PE之间通过EBGP交互路由信息,建立EBGP连接后,把相关的路由发布到BGP即可。
- Hub-PE与Hub-CE之间建立两条EBGP连接,分别用来发布和接收私网路由。
- 以路由从Spoke-CE1发布到Spoke-CE2为例,大体过程如下:
- Spoke-CE1通过EBGP将路由发布给Spoke-PE1。
- Spoke-PE1通过IBGP将该路由发布给Hub-PE。
- Hub-PE通过VPN实例(VPN in)的lmport Target属性将该路由引入VPN _in路0由表,并通过EBGP发布给Hub-CE。
- Hub-CE通过EBGP连接学习到该路由,并通过另一个EBGP连接将该路由发布给0Hub-PE的VPN实例(VPN out)。
- Hub-PE发布携带VPN_out的Export Target属性的路由给所有Spoke-PE。
- Spoke-PE2通过EBGP将该路由发布给Spoke-CE2。
(4)方式一:Hub-PE与Hub-CE间配置
- Hub-PE通过VPN in对应的EBGP连接将从Spoke站点学习的路由发布到Hub站点。
- Hub-CE通过VPN out对应的EBGP将这些路由发布到Spoke站点。
(5)方式二:路由发布过程
- 以选用OSPF作为IGP协议为例:
- Spoke-CE与Spoke-PE之间通过OSPF(进程100)邻居关系交互路由信息。
- Hub-PE通过两个OSPF进程与Hub-CE建立OSPF邻居,分别负责私网路由的发送和接收。
- 以路由从Spoke-CE1发布到Spoke-CE2为例,大体过程如下:
- Spoke-CE1通过OSPF100将路由发布给Spoke-PE1。
- Spoke-PE1通过IBGP将路由发布给Hub-PE。
- Hub-PE通过VPN实例(VPN in)的lmport Target属性将该路由引入VPN in路0由表;通过将BGP引入OSPF100的配置进而将从Spoke-PE1传递来的路由发布给Hub-CE。
- Hub-CE通过OSPF100接收该路由;并通过配置路由引入将路由发布到OSPF2000OSPF200再将路由发布给Hub-PE。
- Hub-PE的BGP-VPN实例(VPN out)引入OSPF200多实例的路由,将携带Export Target属性的路由发布给所有Spoke-PE。
- Spoke-PE2通过OSPF100将该路由发布给Spoke-CE2。
(6)方式二:Hub-PE与Hub-CE间配置
- Hub-PE通过VPN in对应的OSPF(进程100)将从Spoke站点学习的路由发布到Hub站点。
- Hub-CE通过VPN_out对应的OSPF(进程200)将这些路由发布到Hub-PE,进而发布给所有Spoke站点。
(7)方式三:路由发布过程
- 以选用OSPF作为IGP协议为例,Spoke-CE与Spoke-PE之间通过OSPF(进程100)邻居关系交互路由信息。
- Hub-PE与Hub-CE之间建立两条EBGP连接,分别用来发布和接收私网路由,Hub-PE与Hub-CE的配置与方式一相同。
- 以路由从Spoke-CE1发布到Spoke-CE2为例,大体过程如下:
- Spoke-CE1通过OSPF100将路由发布给Spoke-PE1。
- Spoke-PE1通过IBGP将路由发布给Hub-PE。
- Hub-PE通过VPN实例(VPN in)的lmport Target属性将该路由引入VPN in路0由表,并通过EBGP发布给Hub-CE。
- Hub-CE通过EBGP连接学习到该路由,并通过另一个EBGP连接将该路由发布给Hub-PE的VPN实例(VPN out)。
- Hub-PE发布携带VPN out的Export Target属性的路由给Spoke-PE2。
- Spoke-PE2通过OSPF100将该路由发布给Spoke-CE2。