配置IPv4 MPLS L3VPN基本功能

功能简介

完成此项配置,运营商网络能够提供单个自治域的VPN业务,在单个自治域上建立BGP/MPLS VPN服务。

配置限制与指导

MPLS L3VPN所涉及的接口必须是三层路由接口,否则配置将失败。

LDP Router-ID必须为32位。

BGP Router-ID必须为32位。

PE设备上面向公网的接口需要配置mpls iplabel-switch命令。

配置任务简介

IPv4 MPLS L3VPN基本功能配置任务如下:

配置MPLS网络

配置VPN路由实例

配置PE-PE传递VPN路由信息

配置PE-CE间交互用户私有网络的路由。请选择其中一项进行配置。

PE-CE间运行BGP

PE-CE间运行OSPF

PE-CE间运行RIP

PE-CE间配置静态路由

(可选)配置VPN标签分配方式

(可选)配置VPN路由导入导出策略

(可选)配置静态L3VPN FTN和ILM

配置MPLS网络

功能简介

为了在骨干网中使用MPLS,必须在P和PE上配置MPLS的标签分发协议LDP,才能建立公网隧道。这包括为相应的MPLS设备配置标签分发协议和在每个接口上开启MPLS的转发功能。

配置P和PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

全局开启MPLS转发功能。

mpls ip

缺省情况下,全局MPLS转发功能处于关闭状态。

设备要实现MPLS转发,首先需要在全局开启MPLS转发。

配置LDP,并进入LDP配置模式。

mpls router ldp

缺省情况下,LDP协议处于关闭状态。

配置LDP的Router ID。

ldp router-id { ipv4-address | interface interface-type interface-number [ force ] }

缺省情况下,采用系统的Router ID做为LDP的Router ID。

通常使用Loopback接口的IP地址作为Router ID。如果指定了force关键字则强制让新的Router ID立即生效,否则,新的Router ID不会立即生效。

退出LDP配置模式。

exit

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

进入环回口配置模式。

interface loopback interface-number

配置接口IP地址。

ip address ipv4-address mask-length

缺省情况下,接口未配置IP地址。

开启公网侧接口的MPLS报文转发功能。

label-switching

缺省情况下,接口转发MPLS标签报文能力处于关闭状态。

接口开启LDP。

mpls ip

缺省情况下,接口LDP功能处于关闭状态。

配置VPN路由实例

功能简介

配置VPN路由实例主要包括定义一个VRF,为该VRF配置RD值和RT值,并把该VRF和某个接口关联。

配置限制与指导

PE上需要配置VRF,CE和P上都不需要配置VRF。

如果在PE上定义了某个VRF的RD值或者开启了BGP VRF功能,则无法再修改或者删除VRF的RD值,该情况下只能通过删除VRF再重新创建该VRF来设置正确的RD值。

同一台PE上两个不同的VRF不能定义同一RD值。

对于已配置IP地址的接口,配置ip vrf forwarding vrf-name命令后,会删除在此之前为该接口配置的IP地址,因此需要在该接口模式下再次配置IP地址。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建VRF,并进入VRF配置模式。

ip vrf vrf-name

缺省情况下,未创建VRF。

配置RD值。

rd rd-value

缺省情况下,未配置RD值。

配置RT值。

route-target { both | export | import } rt-value

缺省情况下,未配置RT值。

退出VRF配置模式。

exit

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

进入隧道接口配置模式。

interface tunnel interface-number

进入环回口配置模式。

interface loopback interface-number

VRF和接口关联。

ip vrf forwarding vrf-name

缺省情况下,接口不属于任何VRF。

配置接口IP地址。

ip address ipv4-address mask-length

缺省情况下,接口未配置IP地址。

配置PE-PE传递VPN路由信息

功能简介

PE之间通过BGP协议传递路由信息,由于缺省情况下只允许传递普通的IPv4路由信息,如果需要和另外一台PE传递VPN信息,则需要进入到VPN的地址族模式下开启向对等体PE传递VPN路由信息的能力。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建BGP,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

配置BGP会话。

neighbor ipv4-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

设置建立MP-IBGP会话时使用接口的地址作为源地址,通常使用Loopback接口地址作为源地址。

neighbor ipv4-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

进入VPN地址族。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

激活在BGP会话上交互VPN路由。

neighbor ipv4-address activate

缺省情况下,在地址族IPv4 Unicast下处于开启状态。

PE-CE间运行BGP

功能简介

分别在PE与PE之间、PE与CE之间建立BGP会话,使用BGP连通所有私网CE。在CE上将用户私有网络的路由与BGP之间进行相互的重分布,即可实现用户私有网络的全连通。

配置限制与指导

PE配置并进入BGP VRF地址族配置模式时,如果用户没有为该VRF定义RD值,在配置address-family ipv4 vrf vrf-name命令要进入指定VRF的地址族,系统会提示RD值未配置,同时不允许用户进入该地址族。

用户私有网络内部可能运行任意一种动态路由协议或静态路由。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建BGP,并进入BGP配置模式。

router bgp pe-asn-number

缺省情况下,BGP协议处于关闭状态。

配置关联VRF,并进入BGP VRF地址族配置模式。

address-family ipv4 vrf vrf-name

缺省情况下,未配置IPv4 VRF地址族。

配置和CE建立EBGP会话。

neighbor ipv4-address remote-as ce-asn-num

缺省情况下,BGP对等体处于关闭状态。

配置CE

在CE上配置和PE的BGP会话,并将用户私有网络的路由引入BGP。用户私有网络内部可能运行任意一种动态路由协议或静态路由,此处以OSPF为例。

enable

进入全局配置模式。

configure terminal

创建BGP,并进入BGP配置模式。

router bgp ce-asn-number

缺省情况下,BGP协议处于关闭状态。

配置和PE建立EBGP会话。

neighbor ipv4-address remote-as pe-asn

缺省情况下,BGP对等体处于关闭状态。

BGP重分布OSPF路由。

redistribute ospf ospf-id

缺省情况下,重分发功能处于关闭状态。

退出BGP配置模式。

exit

进入OSPF配置模式。

router ospf process�Cid

缺省情况下,OSPF路由进程处于关闭状态。

OSPF重分布BGP路由。

redistribute bgp subnets

缺省情况下,重分发功能处于关闭状态。

PE-CE间运行OSPF

功能简介

如果用户私有网络内部运行OSPF,则在PE-CE之间继续使用OSPF连通,CE上不需要额外的配置。

在PE上必须为对应的VRF配置一个OSPF实例,并使用该OSPF实例与CE交互路由信息。OSPF通过重分布BGP路由将从其他PE接收的对应VPN路由传递给CE。同时BGP通过重分布OSPF协议的路由将CE端分发给PE的VPN路由信息传递给其他PE对等体。

配置限制与指导

CE上连接PE的接口必须开启OSPF且未设置被动端口或其他路由交互的限制。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置参与OSPF的链路。

network ipv4-address mask-length area area-id

缺省情况下,未配置任何接口IP加入OSPF区域。

OSPF重分布BGP路由。

redistribute bgp subnets

缺省情况下,未配置路由重分布功能。

退出OSPF配置模式。

exit

配置BGP协议,进入BGP配置模式。

router bgp as-number

缺省情况下,BGP协议处于关闭状态。

进入BGP VRF配置模式。

address-family ipv4 vrf vrf-name

缺省情况下,未配置IPv4 VRF地址族。

重分布OSPF路由。

redistribute ospf process-id

缺省情况下,重分发功能处于关闭状态。

PE-CE间运行RIP

功能简介

如果用户私有网络内部运行RIP,则在PE-CE之间继续允许RIP连通,CE上不需要额外的配置。

PE上的VRF通过RIP协议交互PE和CE的路由信息。RIP通过重分布BGP路由将从其他PE接收的对应VPN路由传递给CE,同时BGP通过重分布RIP路由将CE端分发给PE的VPN路由信息传递给其他PE对等体。

配置限制与指导

CE上连接PE的接口必须开启RIP且未限制其路由交互。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建RIP实例,并进入RIP配置模式。

router rip

进入RIP VRF地址族配置模式。

address-family ipv4 vrf vrf-name

缺省情况下,未配置IPv4 VRF地址族。

配置RIP协议的版本号。

version 2

缺省情况下,可以接收RIPv1和RIPv2的路由更新报文,但只发送RIPv1的路由更新报文。

PE上配置和CE的RIP协议。

network network-number [ wildcard ]

缺省情况下,未通告任何本地网络。

RIP重分布BGP路由。

redistribute bgp

缺省情况下,未配置重分发功能。

退出地址族模式。

exit

配置BGP协议,进入BGP配置模式。

router bgp as-number

缺省情况下,BGP协议处于关闭状态。

进入BGP VRF配置模式。

address-family ipv4 vrf vrf-name

缺省情况下,未配置IPv4 VRF地址族。

重分布RIP路由。

redistribute rip

缺省情况下,重分发功能处于关闭状态。

PE-CE间配置静态路由

功能简介

在PE上使用静态路由指向CE,并将静态路由重分布到BGP VRF中。在CE上使用静态路由指向PE,并将静态路由引入到用户私有网络中。通常在比较简单的网络环境下,使用静态路由的方式。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置静态路由。

ip route [ vrf vrf-name ] network mask { ipv4-address | interface [ ipv4-address ] } [ distance ] [ tag tag ] [ permanent | { arp | track object-number } ] [ weight number ] [ description description-text ] [ disabled | enabled ] [ global ]

缺省情况下,未配置任何静态路由。

进入BGP配置模式。

router bgp as-number

缺省情况下,BGP协议处于关闭状态。

进入BGP VRF地址族配置模式。

address-family ipv4 vrf vrf-name

缺省情况下,未配置IPv4 VRF地址族。

重分布静态路由。

redistribute static

缺省情况下,重分发功能处于关闭状态。

配置VPN标签分配方式

功能简介

在L3VPN应用中,有两种标签分配方法:基于每条路由分配标签和基于每个VRF分配标签。前者的优点是转发速度相对较快,只要查询ILM表即可转发到下一跳,其缺点是要求ILM表的容量较大。后者优点是只要为每个VRF分配一个标签,即该VRF内部的所有路由共用该标签,从而减少ILM表的容量。其缺点是转发效率相对基于每条路由分配标签低,因为它需要2次查表。第一次根据ILM表找到该报文所在的VRF,在该VRF中根据目的IP查找路由转发出去。

配置限制与指导

当修改标签分配方式的时候,MP-BGP会撤销该VPN内通告出去的所有路由,并重新进行通告。

在VRF配置模式下可以使用alloc-label命令来修改缺省的标签分配方式,可以对不同的VRF使用不同的分配方式。per-vrf表示为该VRF的所有路由分配一个标签,MP-BGP在分发VPN路由的时候所有的路由都是用同一个标签。per-route表示为该VRF内的每条路由分配一个标签,MP-BGP在分发VPN路由的时候每条路由都用不同的标签。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建VRF并进入VRF配置模式。

ip vrf vrf-name

缺省情况下,未创建VRF。

配置VPN标签分配方式。

alloc-label { per-route | per-vrf }

缺省情况下,L3VPN采用每个VRF分配标签的方式。当修改标签分配方式的时候,MP-BGP会撤销该VPN内通告出去的所有路由,并重新进行通告。

配置VPN路由导入导出策略

功能简介

通常情况下,通过在VRF配置模式下定义导入RT属性决定哪些路由要导入VRF中,通过定义导出RT属性来决定分发的路由需要携带哪些RT,本配置对所有的路由都生效。但是在某些特定的应用场合,需要基于策略来精确控制VPN路由的导入以及导出,即可利用策略来控制。

配置限制与指导

import map定义的规则在VRF中定义的导入扩展团体属性后面生效。也就是从远端接收的VPN路由只有满足了VRF下使用命令route-target import定义的扩展团体属性后才能再进入import map定义的规则再次进行过滤。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建VRF并进入VRF配置模式。

ip vrf vrf-name

缺省情况下,未创建VRF。

根据路由图定义的规则,设置引入远端VPN路由到本地VPN路由的策略。

import map routemap-name

根据路由图定义的规则,设置本地分发给远端的VPN路由的扩展团体属性。

export map routemap-name

配置静态L3VPN FTN和ILM表项

功能简介

通常情况下都是MP-BGP来为私网路由分配标签,公网LSP隧道由公网运行LDP协议生成。也可以通过配置静态的LSP来实现私网路由的标签分配以及私网的LSP隧道建立。

配置限制与指导

对于配置的静态私网FTN和ILM,只有其对应的公网LSP隧道建立后才能生效,建立公网LSP隧道的配置请参见1.3.4  配置MPLS网络,可以使用LDP协议建立公网LSP隧道也可以通过静态配置的方式。

配置PE

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置一条静态的私网FTN。

mpls static l3vpn-ftn vrf-name { ipv4-address/mask-length | ipv6-address/prefix-length } out-label label remote-pe remote-pe-ipv4-addres

缺省情况下,未配置L3VPN FTN表项。

如果FEC的出口在指定PE上,则必须为其指定私网标签及出口PE。出口PE的地址用于匹配公网的LSP隧道。

配置一条静态的私网FTN。

(IPv4网络)

mpls static l3vpn-ftn vrf-name ipv4-address/mask-length local-forward nexthop interface-type interface-number nexthop-ipv4-address

(IPv6网络)

mpls static l3vpn-ftn vrf-name ipv6-address/prefix-length local-forward nexthop interface-type interface-number nexthop-ipv6-address

缺省情况下,未配置L3VPN FTN表项。

如果FEC的出口为自身所在的PE,则需要为其指定本地PE的出口以及下一跳地址(其出接口和下一跳通常在另外一个VRF中)。当本地PE上有多个VRF属于同一个VPN时,可以应用该命令。

配置L3VPN的ILM项,需要指定入标签以及出接口以及下一跳地址。

(IPv4网络)

mpls static ilm in-label in-label forward-action pop-l3vpn-nexthop vrf-name nexthop interface-type interface-number nexthop-ipv4-address fec ipv4-address/mask-length

(IPv6网络)

mpls static ilm in-label in-label forward-action pop-l3vpn-nexthop vrf-name nexthop interface-type interface-number nexthop-ipv6-address fec ipv6-address/prefix-length

缺省情况下,未配置L3VPN ILM表项。

配置跨域VPN-OptionA服务模型

功能简介

在Option A方案中,自治域的ASBR为有跨域需求的VPN各自建立一个VRF,分别为这些VRF绑定接口,ASBR间的VRF利用这些接口互联交互VPN路由。完成本节配置,可以跨越多个自治域建立MPLS L3VPN服务。

配置限制与指导

Option A方案要求在ASBR上为每个跨域的VPN配置一个接口(通常是逻辑子接口)与之绑定,绑定接口的数量至少要和跨域的VPN的数量相当,并在ASBR上需要逐个对VPN进行配置,因而存在可扩展性问题。此外为每个VPN单独创建子接口也提高了对ASBR设备的要求。这种方案一般适用于跨域VPN数量较少的网络中。

LDP Router-ID必须是32位。

BGP Router-ID必须是32位。

ASBR需要为每个VPN配置一个接口与之绑定。

配置步骤

Option A的配置方法与1.3   配置IPv4 MPLS L3VPN基本功能类似,请参照执行。

配置跨域VPN-OptionB服务模型(ASBR不改变VPN路由的下一跳)

功能简介

ASBR在收到其他自治域ASBR发送的VPN路由,向本自治域内的MP-IBGP邻居发送时,不改变VPN路由中的下一跳,称之为“OptionB不改变下一跳方案”。这种实现方案,自治域内的PE和和ASBR间仍然建立MP-IBGP会话,交互VPN路由,在两个ASBR间建立MP-EBGP会话,也可以直接交互VPN路由。由于从MP-EBGP收到的路由向MP-IBGP邻居发送时不改变下一跳,因此要求在该自治域中的PE必须存在到达该下一跳(即另外一个自治域的ASBR)的路由,可以通过在ASBR上将到达另外一端的ASBR的路由重分布到本自治域的IGP协议中,从而使得另外一个自治域的ASBR地址变得可达,并通过LDP建立LSP路径。

配置任务简介

跨域VPN服务模型OptionB(ASBR不改变VPN路由的下一跳)配置任务如下:

配置PE和CE间的路由交互

配置自治域IGP协议和MPLS信令协议

配置ASBR取消缺省RT过滤功能

配置同一个自治域内的PE和ASBR之间传递VPN路由信息

配置ASBR间建立MP-EBGP会话

(可选)配置路由图规则过滤VPN路由

配置IGP协议重分布另外一个自治域的ASBR路由

配置PE和CE间的路由交互

本步骤和1.3   配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。

配置自治域IGP协议和MPLS信令协议

本步骤和1.3.4  配置MPLS网络类似,请参照执行。

配置ASBR取消缺省RT过滤功能

配置限制与指导

缺省情况下,PE收到其他PE(或者ASBR)发送的VPN路由,如果该VPN路由未被本设备上任何一个VRF导入,PE设备就拒绝接收该路由。因此需要在ASBR上关闭该缺省过滤行为,使得ASBR设备会接收其他PE(或ASBR)发送过来的所有VPN路由,不管本地的VRF是否会导入该VPN路由。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP协议,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

关闭RT过滤属性。

no bgp default route-target filter

缺省情况下,route-taeget过滤功能处于开启状态。

配置同一个自治域内的PE和ASBR之间传递VPN路由信息

本步骤和1.3.6  配置PE-PE传递VPN路由信息类似,请参照执行。

配置ASBR间建立MP-EBGP会话

功能简介

在跨域的ASBR之间建立直连的单跳MP-EBGP会话,用来分发VPN路由信息。

配置限制与指导

为保证ASBR之间的链路上能够转发MPLS报文,必须在两个ASBR互联的接口上配置label-switching命令开启接口的MPLS报文转发能力。

如果ASBR之间不是采用直连地址建立MP-EBGP会话,而是使用32位掩码长度的Loopback地址作为源地址建立MP-EBGP会话,则必须使用命令neighbor ebgp-multihop开启多跳EBGP的功能,同时要在ASBR之间配置到达对端Loopback静态路由,并开启LDP或者是配置静态FTN(其静态的FTN的出标签为3,表示本ASBR就是倒数第2跳。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP协议,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

配置ASBR EBGP会话。

neighbor asbr-address remote-as asbr-asn-number

缺省情况下,BGP对等体处于关闭状态。

进入BGP VPN地址族。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

开启同对等体交换VPN路由能力。

neighbor asbr-address activate

缺省情况下,在地址族IPv4 Unicast下处于开启状态。

配置路由图规则过滤VPN路由

功能简介

在实际应用中,出于自治域安全的考虑,通常会在ASBR上配置策略来实现只发送或只接收特定的VPN路由,其可以通过过滤VPN路由的RT扩展团体属性来实现。另外,由于ASBR上关闭了缺省RT过滤功能,因此会保存所有VPN的路由,此时也可以通过配置VPN路由策略,使其只接收域内发过来的属于跨域的VPN的路由,从而减少ASBR的容量压力。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建扩展团体属性列表规则。

ip extcommunity-list standard [ extcommunity-name | extcommunity-number ] { deny | permit } rt rt-value

缺省情况下,未定义标准extcommunity属性列表。

创建路由图规则,并进入路由图配置模式。

route-map route-map-name permit [ number ]

设置路由图的RT匹配规则。

match extcommunity [ extcommunity-name | extcommunity-number ]

缺省情况下,未匹配任何扩展团体属性列表。

退出路由图配置模式。

exit

配置BGP协议,进入BGP配置模式。

router bgp as-number

缺省情况下,BGP协议处于关闭状态。

进入VPN地址族。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

对从另外一个自治域的ASBR接收的VPN路由进行过滤。

neighbor peer-address route-map route-map-name in

对发给另外一个自治域的ASBR的VPN路由进行过滤。

neighbor peer-address route-map route-map-name out

配置IGP协议重分布另外一个自治域的ASBR路由

功能简介

由于ASBR向IBGP对等体分发VPN路由时没有改变下一跳,因此在该自治域的PE上学习到的VPN的路由的下一跳地址是另外一个自治域的ASBR地址。所以必须让PE学习到到达该下一跳的路由。对于开启BGP携带标签能力(IPv4路由携带标签或者VPN路由携带标签的能力)的单跳直连MP-EBGP会话,在ASBR上,MP-BGP协议将会自动生成一条到达对端ASBR的32位掩码长度的直连主机路由和FTN表项(其出标签为3),确保其隧道的出口不会在本ASBR上被终止。因此只要在ASBR上将该直连主机路由重分布到本自治域的IGP中,PE即可学习到到达另外一个自治域的ASBR的路由。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

进入IGP协议,可以是OSPF、RIP、IS-IS等。

router igp

重分布直连网段路由。

redistribute connected subnets

配置跨域VPN-OptionB服务模型(ASBR改变VPN路由的下一跳)

功能简介

当ASBR收到其他自治域ASBR发送的VPN路由要向本自治域的PE发送时,改变VPN路由下一跳为自身,称为Option B改变下一跳方法。这种实现方法中,同一个自治域的PE和ASBR间建立MP-IBGP会话交互VPN路由。两个ASBR间建立MP-EBGP会话交互VPN路由,在收到另外一个ASBR邻居发送的VPN路由,向本自治域的MP-IBGP对等体通告时,改变下一跳为自身。

配置限制与指导

配置任务简介

跨域VPN服务模型OptionB(ASBR改变VPN路由的下一跳)配置任务如下:

配置PE和CE间路由交互

配置各个自治域内IGP协议和MPLS信令协议

配置ASBR取消缺省RT过滤功能

配置ASBR和PE建立MP-IBGP并修改下一跳为自身

配置ASBR间建立MP-EBGP会话

(可选)配置路由图规则过滤VPN路由

配置PE和CE间路由交互

本步骤和1.3   配置IPv4 MPLS L3VPN基本功能中配置PE-CE间路由交换类似,请参照执行。

配置各个自治域内IGP协议和MPLS信令协议

本步骤和1.3.4  配置MPLS网络类似,请参照执行。

配置ASBR取消缺省RT过滤功能

缺省情况下,PE收到其他PE(或者ASBR)发送的VPN路由,如果该VPN路由不会被本设备上任何一个VRF导入,PE设备就拒绝接收该路由。因此需要在ASBR上关闭该缺省过滤行为,使得ASBR设备会接收其他PE(或ASBR)发送过来的所有VPN路由,不管本地的VRF是否会导入该VPN路由。

本步骤和1.5.5  配置ASBR取消缺省RT过滤功能,请参照执行。

配置ASBR和PE建立MP-IBGP并修改下一跳为自身

配置限制与指导

缺省情况下,ASBR从MP-EBGP收到的VPN路由发给MP-IBGP时不会修改下一跳。可以通过配置将VPN路由的下一跳强制修改为本自治域的ASBR地址,这样本自治域的PE就无需知道对端ASBR的地址。和方案一(不改变下一跳的方案)的差别就体现在本配置上。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP路由协议,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

和PE建立IBGP会话。

neighbor pe-address remote-as asn-num

缺省情况下,BGP对等体处于关闭状态。

指定本地Loopback接口作为建立IBGP会话的源地址。

neighbor pe-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入BGP VPN地址族配置模式。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

开启同对等体交换VPN路由能力。

neighbor pe-address activate

设置向该IBGP邻居发送VPN路由时,修改下一跳为自身。

neighbor pe-address next-hop-self

配置ASBR间建立MP-EBGP会话

本步骤和1.5.7  配置ASBR间建立MP-EBGP会话中的相应配置步骤类似,请参照执行。

配置路由图规则过滤VPN路由

本步骤和1.5.8  配置路由图规则过滤VPN路由中的相应配置步骤类似,请参照执行。

配置跨域VPN-OptionC服务模型(仅在EBGP邻居间启用IPv4路由标签交换)

功能简介

在这种实现方案中,需要ASBR设备上运行的IGP协议(如OSPF,RIP等)重分布BGP路由,使得自治域内的每台设备都具有到达另外一个自治域的PE路由。在自治域之内通过LDP为到达另一个自治域的PE路由分配标签建立LSP,而在两个自治域之间直连的ASBR设备上,开启为IPv4路由交换标签的能力,BGP协议担当了“MPLS信令协议”的角色,为到达另一个自治域的PE路由分配标签,从而建立跨域的LSP。

配置任务简介

跨域VPN服务模型OptionC(仅在EBGP邻居间启用IPv4路由标签交换)配置任务如下:

配置各个自治域内PE和CE间的路由交互

配置自治域内IGP协议和MPLS信令协议

配置ASBR间建立EBGP会话为IPv4路由分发标签

配置在ASBR上将EBGP学习的PE路由重分布到IGP中

配置多跳MP-EBGP会话

配置各个自治域内PE和CE间的路由交互

本步骤和1.3   配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。

配置自治域内IGP协议和MPLS信令协议

本步骤和1.3.4  配置MPLS网络类似,请参照执行。

配置ASBR间建立EBGP会话为IPv4路由分发标签

功能简介

在跨域的ASBR之间建立EBGP会话,并且开启为IPv4路由分发标签的能力。要将PE的路由引入到BGP中,可以通过BGP IPv4地址族模式下的network命令,也可以通过重分布IGP的命令来实现。在实际应用中,出于各个自治域的安全考虑,通常在ASBR上还需要配置IPv4路由分发策略,通过定义路由图规则控制分发哪些路由给邻居以及控制这些路由在发送时是否携带标签,同样接收方向上也可以做类似的控制。

配置限制与指导

在两个ASBR互联的接口上必须使用label-switching命令开启接口的MPLS报文转发能力,才能在ASBR之间的链路上转发MPLS报文。

如果ASBR之间不是采用直连地址建立MP-EBGP会话,而是使用32位掩码长度的Loopback地址作为源地址建立MP-EBGP会话,那么必须使用命令neighbor ebgp-multihop开启多跳EBGP的功能,同时要在ASBR之间配置到达对端Loopback静态路由,并开启LDP或者是配置静态FTN(其静态的FTN的出标签为3,表示本ASBR就是倒数第2跳)。

在实际应用中,ASBR通常只要为承载跨域VPN业务的PE路由分发标签,因此可以配置路由图中的set mpls-label命令来达到上述目的。先创建一个路由图规则,在路由图配置模式下配置set mpls-label命令为路由设置标签,使得只有跨域PE的路由才会分发给对端的ASBR。路由策略的相关配置请参见“IP路由配置指南”中的“路由策略”。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP路由协议,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

和ASBR建立EBGP会话。

neighbor asbr-address remote-as asbr-asn-num

缺省情况下,BGP对等体处于关闭状态。

进入BGP IPv4地址族配置模式。

address-family ipv4

配置与另外一个AS的ASBR对等体能够交换带标签的IPv4路由。

neighbor asbr-address send-label

缺省情况下,带上MPLS标签功能处于关闭状态。

(可选)配置本AS内需要注入BGP路由表的各PE设备的地址,即到达本AS内的各个PE的主机路由。

network pe-address mask mask

(可选)配置路由分发策略,可以通过定义路由图规则控制分发指定路由给邻居。

neighbor asbr-address route-map route-map-name out

(可选)配置路由分发策略,可以通过定义路由图规则控制只接收带标签的路由。

neighbor asbr-address route-map route-map-name in

配置在ASBR上将EBGP学习的PE路由重分布到IGP中

功能简介

当ASBR从对端的ASBR学习到到达另外一个自治域的PE路由时,需要通告本自治域的其它PE,并且需要在本自治域建立到达另外一个自治域PE的LSP。这可以通过在ASBR上将EBGP学习到的路由重分布到IGP中,同时开启LDP为BGP路由分发标签的功能来建立到达其它自治域PE的LSP。

配置限制与指导

在IGP协议重分布BGP学习到的路由时,可以通过在IGP协议的配置模式下配置redistribute bgp subnets route-map routemap-name命令控制需要重分布到IGP中的路由。在LDP配置模式下,也可以使用命令advertise-labels for bgp-routes acl acl-name控制为哪些BGP路由分发标签。

配置步骤

  1. 进入特权模式。

enable

进入全局配置模式。

configure terminal

进入IGP配置模式。

router igp

配置重分布BGP路由协议,其中采用路由图规则过滤可选。

redistribute bgp subnets [ route-map routemap-name ]

退出IGP协议配置模式。

exit

进入LDP配置模式。

mpls router ldp

缺省情况下,LDP协议处于关闭状态。

配置LDP的Router ID。

ldp router-id { ipv4-address | interface interface-type interface-number [ force ] }

缺省情况下,采用系统的Router ID做为LDP的Router ID。

通常使用Loopback的地址作为Router ID。如果指定了force关键字,则强制让新的Router ID立即生效,否则新的Router ID不会立即生效。

配置为BGP路由分发标签,其中采用ACL规则过滤是可选项。

advertise-labels for bgp-routes [ acl acl-name ]

缺省情况下,LDP只为IGP路由分发标签,不会为BGP的路由分发标签,要使得LDP为BGP路由分发标签,必须使用advertise-labels for bgp-routes命令开启该功能。

配置多跳MP-EBGP会话

功能简介

在需要开展跨越VPN业务的PE上同另外一个自治域的PE建立多跳MP-EBGP的会话,交互VPN路由信息。

配置限制与指导

在多跳MP-EBGP会话间不需要交互IPv4路由,或者至少要避免交互用来建立BGP会话的两个地址所对应的路由。否则在PE上就会有两条到达另外一个自治域PE的路由,一条是本自治域内的ASBR通告的,另一条是多跳MP-EBGP会话通告的。根据BGP协议的特点,默认情况下EBGP路由的优先级比IBGP路由优先级更高,会导致BGP协议优先选取多跳BGP通告的路由,使得PE到达另外一个自治域PE的路由一直在振荡,导致VPN路由不可达。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP路由协议,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

和另一个自治域的PE建立多跳EBGP会话。

neighbor ebgp-peer-address remote-as ebgp-asn-num

缺省情况下,BGP对等体处于关闭状态。

指定使用Loopback接口和EBGP对等体建立邻居。

neighbor ebgp-peer-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

配置多跳属性。

neighbor ebgp-peer-address ebgp-multihop

进入BGP VPN地址族配置模式。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

开启同对等体交换VPN路由能力。

neighbor ebgp-peer-address activate

退出BGP VPN地址族。

exit

进入BGP IPv4地址族配置模式。

address-family ipv4

关闭IPv4路由交互能力。

no neighbor ebgp-peer-address activate

配置跨域VPN-OptionC服务模型(在EBGP和IBGP邻居间都启用IPv4路由标签交换)

功能简介

跨域VPN-OptionC(只在EBGP间启用IPv4路由标签交换)方案要求其他自治域内的IGP和LDP协议要维护另外一个自治域的PE路由,即跨域PE的路由要扩散给另外一个自治域网络中的每台设备。在实际应用中,出于自治域的安全考虑,通常不希望到达另外一个自治域的PE路由扩散给本自治域的每个设备,只需要BGP协议本身拥有这些路由,从而对自治域内的IGP和LDP透明,这可以通过在EBGP和IBGP间开启为IPv4路由交换标签的方案实现。

该方案和跨域VPN-OptionC(只在EBGP间启用IPv4路由标签交换)实现方案的主要区别:ASBR设备上的IGP协议不需要重分布BGP路由,LDP也无需为BGP路由分配标签,仍然只负责本自治域的LSP建立,但是在IBGP邻居和EBGP邻居之间都要开启为IPv4路由交换标签的能力来完成跨域LSP的建立,并且要求PE设备支持连续压入三层标签。

配置任务简介

跨域VPN服务模型OptionC(在EBGP和IBGP邻居间都启用IPv4路由标签交换)配置任务如下:

配置各个自治域内PE和CE间的路由交互

配置自治域内IGP协议和MPLS信令协议

配置PE和ASBR之间建立IBGP会话为IPv4路由分发标签

配置ASBR间建立EBGP会话为IPv4路由分发标签

配置多跳MP-EBGP会话

配置各个自治域内PE和CE间的路由交互

本步骤和1.3   配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。

配置自治域内IGP协议和MPLS信令协议

本步骤和1.3.4  配置MPLS网络类似,请参照执行。

配置PE和ASBR之间建立IBGP会话为IPv4路由分发标签

功能简介

跨域VPN服务模型OptionC(在EBGP和IBGP邻居间都启用IPv4路由标签交换)和跨域VPN服务模型OptionC(只在EBGP邻居间启用IPv4路由标签交换)的区别主要在本配置步骤,利用ASBR和PE之间的IBGP会话来传递另外一个自治域PE的路由信息,并由BGP来为该路由分配标签。而不是采用将EBGP学习到的另外一个自治域的PE的路由重分布到本自治域的IGP中。

配置限制与指导

同IBGP对等体建立的IBGP会话要开启为IPv4路由交换标签能力前,必须通过neighbor update-source命令指定建立IBGP会话的源地址,且该源地址必须是Loopback接口的地址,否则将无法建立跨域的LSP。

配置步骤

进入特权模式。

enable

进入全局配置模式。

config terminal

配置BGP路由协议,进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

配置同ASBR(PE)建立IBGP会话。

neighbor peer-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

配置在同ASBR(PE)对等体之间建立BGP会话时使用Loopack地址作为会话的源地址。

neighbor peer-adddress update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入IPv4地址族。

address-family ipv4

配置和ASBR(PE)对等体之间能够交换带标签的IPv4路由。

neighbor peer-address send-label

缺省情况下,带上MPLS标签功能处于关闭状态。

配置ASBR间建立EBGP会话为IPv4路由分发标签

本步骤同1.7.5  配置ASBR间建立EBGP会话为IPv4路由分发标签步骤类似,请参照执行。

配置多跳MP-EBGP会话

本步骤和1.7.7  配置多跳MP-EBGP会话步骤类似,请参照执行。

配置跨域VPN-OptionC服务模型(在路由反射器之间建立多跳MP-EBGP)

功能简介

传统的Option C的实现方案要求跨域的VPN站点间是全相连的,每增加一个VPN站点,就需要让该VPN站点和其他自治域的PE建立多跳MP-EBGP连接,不利于VPN站点的扩展。因此,可以通过在每个自治域内部署路由反射器解决该问题,通过在路由反射器之间建立多跳MP-EBGP连接来交互VPN路由。

配置任务简介

跨域VPN服务模型OptionC(在路由反射器之间建立多跳MP-EBGP)配置任务如下:

配置PE和CE间路由交互

配置自治域IGP协议和MPLS信令协议

配置路由反射器和PE间建立MP-IBGP会话,并为IPv4路由交换标签

配置路由反射器和ASBR建立IBGP会话,并为IPv4路由分发标签

配置ASBR间建立EBGP会话为IPv4路由交换标签

配置多跳MP-EBGP会话

配置PE和CE间路由交互

本步骤和1.3   配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。

配置自治域IGP协议和MPLS信令协议

本步骤和1.3.4  配置MPLS网络类似,请参照执行。

配置路由反射器和PE间建立MP-IBGP会话,并为IPv4路由交换标签

功能简介

配置PE同路由反射器建立MP-IBGP会话,传递VPN路由。同时在该会话开启为IPv4路由交换标签的能力。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置BGP协议,进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

建立IBGP会话。

neighbor peer-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

配置IBGP会话使用Loopback接口的地址作为会话的源地址。

neighbor peer-adddress update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入IPv4地址族。

address-family ipv4

开启IPv4路由交换的能力。

neighbor peer-address activate

开启为IPv4路由交换标签的能力。

neighbor peer-address send-label

缺省情况下,带上MPLS标签功能处于关闭状态。

在路由反射器上配置各个PE对等体为IPv4路由反射器客户端。

neighbor peer-address route-reflector-client

退出IPv4地址族。

exit

进入VPN地址族。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

开启同对等体交换VPN路由能力。

neighbor peer-address activate

在路由反射器上配置各个PE对等体为VPN路由反射器客户端。

neighbor peer-adderss route-reflector-client

配置路由反射器和ASBR建立IBGP会话,并为IPv4路由分发标签

功能简介

配置ASBR同路由反射器建立MP-IBGP会话,从路由反射器接收到达本自治域PE的路由,向路由反射器发送到达另外一个自治域的PE的路由。同时在该会话上开启为IPv4路由交换标签的能力。

配置限制与指导

路由反射器和ASBR建立的IBGP会话,通常可以不需要将ASBR作为路由反射器的客户端,除非ASBR本身也是PE角色。

配置步骤

进入全局配置模式。

config terminal

配置BGP协议,进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

建立IBGP会话。

neighbor peer-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

配置IBGP会话使用Loopback接口的地址作为会话的源地址。

neighbor peer-adddress update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入IPv4地址族。

address-family ipv4

开启IPv4路由交换的能力。

neighbor peer-address activate

开启为IPv4路由交换标签的能力。

neighbor peer-address send-label

缺省情况下,带上MPLS标签功能处于关闭状态。

配置ASBR间建立EBGP会话为IPv4路由交换标签

本步骤同1.7.5  配置ASBR间建立EBGP会话为IPv4路由分发标签步骤类似,请参照执行。

配置多跳MP-EBGP会话

功能简介

在两个自治域的路由反射器之间建立多跳MP-EBGP会话,用来传递跨域的VPN路由信息。同时要在该会话上禁止传送IPv4路由信息,到达PE的路由将通过ASBR传递给另外一个自治域。

配置限制与指导

由于默认情况下向EBGP对等体发送时会修改下一跳为自身,这样会导致其他自治域的PE站点最后接收到VPN路由时,认为VPN路由的最终下一跳为路由反射器,这样将造成所有跨域的VPN流量都经过反射器。但是通常这并不是最优的转发路径,同时对反射器的转发性能也提出更高的要求。为了避免上述情况,在路由反射器上建立多跳MP-EBGP连接时,可以在VPNv4地址族模式下,配置neighbor next-hop-unchanged命令发给BGP对等体的VPNv4路由的下一跳不改变。

在多跳MP-EBGP会话间避免交互IPv4路由,或者至少要避免交互用来建立BGP会话的两个地址所对应的路由。否则在PE上就会存在两条到达另外一个自治域PE的路由,一条是本自治域内的ASBR通告的,另一条是通过多跳MP-EBGP会话通告的,根据BGP协议的特点,默认情况下EBGP路由的优先级比IBGP路由优先级更高,会导致BGP协议优先选取多跳BGP通告的路由,这会使得PE到达另外一个自治域PE的路由一直在振荡,导致VPN路由不可达。

配置步骤

进入全局配置模式。

config terminal

配置BGP协议,进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

建立EBGP会话。

neighbor rr-address remote-as ebgp-asn-number

缺省情况下,BGP对等体处于关闭状态。

配置EBGP会话使用Loopback接口的地址作为会话的源地址。

neighbor rr-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

配置多跳EBGP属性。

neighbor rr-address ebgp-multihop

缺省情况下,只允许与直连的EBGP对等体建立BGP连接。

进入IPv4地址族。

address-family ipv4

关闭该会话的IPv4路由交换的能力。

no neighbor rr-address activate

退出IPv4地址族。

exit

进入VPN地址族。

address-family vpnv4

缺省情况下,未定义VPNv4地址族。

开启同另一个自治域的RR交换VPN路由能力。

neighbor rr-address activate

(可选)配置向对等体通告VPN路由时不改变下一跳。

neighbor rr-address next-hop-unchanged

缺省情况下,该功能处于关闭状态。向IBGP对等体通告路由时不修改下一跳。

配置OSPF的VPN扩展特性

功能简介

当VPN用户网络内部运行OSPF时,在PE和CE之间运行OSPF协议,简化CE的配置和管理。

配置限制与指导

LDP的Router ID必须为32位。

配置任务简介

OSPF的VPN扩展特性配置任务如下:

配置域ID

配置VPN路由标记

配置伪链路

配置VRF OSPF实例环路检测

配置VPN路由扩展团体属性

配置禁止使用LSA的DN位检测环路

配置禁止使用LSA的路由标记来检测环路

配置域ID

功能简介

域ID用来表示OSPF实例所属的域信息。一般来说,把属于一个VPN内的所有VRF OSPF实例配置成相同的域ID。

配置限制与指导

VRF OSPF实例可以配置多个域ID,但只有一个主域ID,其余的都是从域ID,唯一的主域ID通过命令domain-id value来配置,多个从域ID通过命令domain-id hex-value secondary配置,且OSPF路由转化为VPN路由对外通告,VPN路由中包含的只有主域ID。

主从域ID可以通过domain-id ipv4-address的方式配置,也可以通过domain-id type { 0005 | 0105 | 0205 | 8005 } value的方式配置。

不同VRF OSPF实例的域ID相互没有影响,允许域ID相同。但是同一VPN内的VRF OSPF实例应配置相同的域ID,以保证路由通告的正确性。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置OSPF实例的域ID。

domain-id { ipv4-address [ secondary ] | null | type { 0005 | 0105 | 0205 | 8005 } value hex-value [ secondary ] }

缺省情况下,OSPF实例的域ID为null,类型值为0x0005。

本命令只对关联VRF的OSPF实例有效。

配置VPN路由标记

功能简介

在L3VPN中,如果一个VPN站点连接多台PE,则从PE上通过MP-BGP学习到的VPN路由,通过5类或者7类LSA通告给VPN站点,又可能被连接该VPN站点的其他PE学习,并发布出去,导致产生环路。为避免环路,需要在PE上连接同一个VPN站点的VRF OSPF实例配置相同的VPN路由标记。当VRF OSPF实例向VPN站点发送5类或者7类LSA时,该LSA中也会附上VPN路由标记信息,其他PE站点在收到含有VPN路由标记的5类或者7类LSA时,如果检测到LSA中的VPN路由标记值和对应OSPF实例的VPN路由标记值一致,该LSA不会参与OSPF计算。

配置限制与指导

一般同属一个VPN的OSPF实例都配置相同的VPN路由标记。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置OSPF实例的VPN路由标记。

domain-tag value

缺省情况下,OSPF实例的VPN路由标记为本地BGP协议的AS号。

本命令只对关联VRF的OSPF实例有效。

配置伪链路

功能简介

伪链路主要用在VPN站点间有后门链路的环境中,如果此时希望VPN数据仍然通过MPLS骨干网传输,则可以在两台PE的VRF OSPF实例间建立伪链路,两台PE的VRF OSPF实例通过伪链路可以建立OSPF邻居,在该伪链路上分发LSA报文。

由于通过伪链路通告的OSPF路由缺少VPN标签,因此该路由并不能用于转发,实际的转发仍然需要通过BGP VPNv4路由。因此实际配置中必须保证通过伪链路学习到的路由也会通过MP-BGP协议学习到。

建立伪链路的源地址必须参与BGP协议VPNv4路由通告,但不能加入VRF OSPF实例的计算。

配置限制与指导

要建立伪链路,需要对建立伪链路的两台PE都进行伪链路配置,只配置一台PE无法建立伪链路。

两台PE间建立伪链路需要满足以下配置条件:

两台PE配置伪链路的Area ID要一致。

一台PE上所配置伪链路的<源地址,目的地址>的组合必须等于另外一台PE所配置伪链路<目的地址,源地址>的组合。

PE上用来建立伪链路的源地址和目的地址必须均是VRF所绑定的32位Loopback地址。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置伪链路sham-link的区域号、源地址和目的地址等。

area area-id sham-link source-address destination-address [ cost number ] [ dead-interval dead-interval ] [ hello-interval hello-interval ] [ retransmit-interval retransmit-interval ] [ transmit-delay transmit-delay ] [ authentication [ key-chain kechain-name | message-digest | null ] ] [ authentication-key [ 0 | 7 ] key | message-digest-key key-id [ hmac-md5 | hmac-sha256 | md5 ] [ 0 | 7 ] key ]

缺省情况下,伪链路处于关闭状态。伪链路缺省无认证。

该命令只对关联VRF的OSPF实例有效。

配置VRF OSPF实例环路检测

功能简介

在某些应用场景中,需要关闭VRF OSPF实例的环路检测功能。比如VPN用户用MCE设备和PE交互VPN路由,如果MCE和PE间运行OSPF协议交互VPN路由,为了VPN站点可以学习到其他VPN站点的路由,需要配置capability vrf-lite命令关闭MCE设备的VRF OSPF实例的环路检测功能。

配置限制与指导

配置VPN特性前,需完成VRF配置。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置VRF关联的OSPF实例的环路检测功能。

capability vrf-lite [ auto ]

缺省情况下,VRF OSPF实例支持PE-CE间OSPF协议的扩展特性(包括根据域ID转化LSA、DN比特位和VPN路由标记三种功能)。如果不希望VRF OSPF实例支持PE-CE间OSPF协议的扩展特性,则可以通过命令capability vrf-lite命令关闭。

该命令只对关联VRF的OSPF实例有效。

配置VPN路由扩展团体属性

功能简介

OSPF路由重分布给BGP形成VPN路由时,也会附上OSPF路由的扩展团体属性,包括Router-ID和Route-Type的扩展团体属性。用户可以通过命令手动配置Router-ID和Route-Type的扩展团体属性类型。

允许配置Router-ID的类型主要是为了兼容不同厂商的实现,比如有些厂商只支持Router-ID的类型为0x0107,那在和这些厂商互联时,需要通过extcommunity-type命令把Router-ID的类型设置为0x0107。

允许配置Router-Type的类型主要是为了兼容不同厂商的实现,比如有些厂商只支持Route-Type的类型为0x8000,那在和这些厂商互联时,需要通过extcommunity-type命令把Route-Type的类型设置为0x8000。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置OSPF Router-ID和Route-Type的扩展团体属性。

extcommunity-type { router-id { 0107 | 8001 } | route-type { 0306 | 8000 } }

缺省情况下,Router-ID的扩展团体属性的类型是0x0107,Route-Type的扩展团体属性是0x0306。

该命令只对关联VRF的OSPF实例有效。

配置禁止使用LSA的DN位检测环路

功能简介

在L3VPN的CE双归场景,PE之间通过抑制DN位的路由计算来避免环路。但在特定场景下,可能允许PE之间互相学习路由,且不会产生环路,此时通过本配置取消DN位的检查。当PE设备连接MCE设备时,MCE设备需要计算PE通告的路由,不会检查DN位。OSPF的3/5/7类LSA都可以携带DN位。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置禁止使用LSA的DN位检测环路。

disable-dn-bit-check [ ase | nssa | summary ]

缺省情况下,LSA的DN位检测环路功能处于开启状态。

该命令只对关联VRF的OSPF实例有效。

配置禁止使用LSA的路由标记来检测环路

功能简介

在L3VPN的CE双归场景,当PE收到的LSA的路由标记与本端相同时,不计算路由,由此避免环路。在特定场景下,允许PE间互相学习路由,且不会产生环路,此时可设置多台PE的路由标记不同,或者设置不检查路由标记。当PE设备连接MCE设备时,MCE设备需要计算PE通告的路由,不会检查路由标记。OSPF的5/7类LSA可携带路由标记。

配置步骤

进入全局配置模式。

configure terminal

创建OSPF实例,并进入OSPF配置模式。

router ospf process-id [ vrf vrf-name ]

缺省情况下,OSPF路由进程处于关闭状态。

配置禁止使用LSA的路由标记来检测环路。

disable-tag-check

缺省情况下,LSA的路由标记检查环路处于开启状态。

该命令只对关联VRF的OSPF实例有效。

IPv6 MPLS L3VPN配置任务概览

IPv6 MPLS L3VPN配置任务如下:

配置6VPE服务模型

配置6PE服务模型

配置6VPE服务模型

功能简介

在IPv4骨干网上,使用IPv4 BGP/MPLS VPN技术,为IPv6用户网络提供VPN服务。

配置任务简介

6VPE服务模型配置任务如下:

开启IPv6转发能力

配置公网隧道

配置6VPE设备的VRF

配置6VPE设备在VRF下的IPv6地址

配置6VPE设备间的BGP会话

配置6VPE设备在VRF下分发IPv6路由

配置CE

开启IPv6转发能力

功能简介

由于6VPE设备要和CE设备在VRF下建立IPv6连接,因此需要开启6VPE设备的IPv6转发能力。

配置步骤

进入全局配置模式。

configure terminal

开启IPv6转发能力。

ipv6 unicast-routing

缺省情况下,IPv6路由处于开启状态。

配置公网隧道

功能简介

在公网上必须建立LSP隧道用来承载用户的业务流量。为了在骨干网上运行MPLS,必须在P和PE上同时运行LDP协议,建立公网隧道。这包括为相应的设备配置标签分发协议和在每个接口上开启MPLS的转发功能。

配置限制与指导

LDP支持IPv4公网和IPv6公网,目前只支持IPv4公网,未支持IPv6公网。

配置步骤

进入全局配置模式。

configure terminal

全局开启MPLS转发功能。

mpls ip

缺省情况下,全局MPLS转发功能处于关闭状态。

设备要实现MPLS转发,首先需要在全局开启MPLS转发。

配置LDP信令,并进入MPLS路由配置模式。

mpls router ldp

缺省情况下,LDP协议处于关闭状态。

配置LDP的Router ID。

ldp router-id { ipv4-address | interface interface-type interface-number [ force ] }

缺省情况下,采用系统的Router ID做为LDP的Router ID。

通常使用Loopback接口的IP地址作为Router ID。如果指定了force关键字则强制让新的Router ID立即生效,否则新的Router ID不会立即生效。

退出MPLS路由配置模式。

exit

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

设置IP地址。

ip address ipv4-address mask-length

缺省情况下,接口未配置IP地址。

开启公网侧接口的MPLS报文转发功能。

label-switching

缺省情况下,接口转发MPLS标签报文能力处于关闭状态。

开启接口LDP功能。

mpls ip

缺省情况下,接口LDP功能处于关闭状态。

配置6VPE设备的VRF

进入全局配置模式。

configure terminal

创建多协议VRF,进入VRF模式。

vrf definition vrf-name

vrf-name不能超过31个字符。

配置RD值。

rd rd-value

开启IPv6地址族,进入VRF地址族子模式。

address-family ipv6

缺省情况下,IPv6地址族处于关闭状态。

配置RT值。

route-target { both | export | import } rt-value

退出VRF地址族配置子模式。

exit-address-family

配置6VPE设备在VRF下的IPv6地址

配置限制与指导

必须在PE的私网接口上使用命令ipv6 enable来启用私网口的IPv6转发功能,PE设备才能正常转发IPv6报文。

对于PE连接CE的接口,为了节省IPv6地址,可以不配置全局的IPv6地址,使用自动生成的Linklocal地址。

配置步骤

configure terminal

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

将接口关联到VRF上。

vrf forwarding vrf_name

开启接口IPv6能力。

ipv6 enable

(可选)配置接口IPv6地址。

ipv6 address ipv6-address/prefix-length

配置6VPE设备间的BGP会话

configure terminal

创建BGP,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

配置BGP会话。

neighbor ipv4-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

设置建立BGP会话时使用接口的地址做为源地址。

neighbor ipv4-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入IPv6地址族。

address-family vpnv6 unicast

激活在BGP会话上交互IPv6路由。

neighbor ipv4-address activate

退出VPNv6单播地址族配置模式。

exit-address-family

配置6VPE设备在VRF下分发IPv6路由

进入全局配置模式。

configure terminal

创建BGP,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

进入VRF下IPv6单播地址族。

address-family ipv6 unicast vrf vrf-name

缺省情况下,采用IPv6单播地址族配置模式。

(可选)配置和CE建立BGP会话。

neighbor ipv6-address remote-as ce-asn-num

缺省情况下,BGP对等体处于关闭状态。

(可选)配置本AS内需要注入BGP路由表的IPv6前缀。

network ipv6-prefix

(可选)将直连或者静态路由中的网络信息注入BGP。

redistribute { connected | static } [ route-map map-tag ]

退出VRF下IPv6单播地址族配置模式。

exit-address-family

进入scope配置模式

scope vrf vrf-name

进入VRF下IPv6单播地址族。

address-family ipv6 unicast

缺省情况下,采用IPv6单播地址族配置模式。

(可选)配置和CE建立BGP会话。

neighbor ipv6-address remote-as ce-asn-num

缺省情况下,BGP对等体处于关闭状态。

(可选)配置本AS内需要注入BGP路由表的IPv6前缀。

network ipv6-prefix

(可选)将直连路由中的网络信息注入BGP。

redistribute { connected | static } [ route-map map-tag ]

配置CE

CE到6VPE之间的路由可以使用IPv6静态路由也可以使用IPv6动态路由,在使用IPv6动态路由的情况下,6VPE的BGP路由和6PE到CE之间的动态路由需要互相引入。

IPv6动态路由协议的配置请参见“IP路由配置指南”中的“RIPng”、“OSPFv3”、“IS-IS”和“BGP”。

配置6PE服务模型

功能简介

网络服务供应商利用已有的IPv4 MPLS骨干网为分散用户的IPv6网络提供接入服务(非VPN服务),适用于为IPv6孤岛提供互联服务(非VPN服务)。

在IPv4骨干网上,使用IPv4 BGP/MPLS VPN技术,为IPv6用户网络提供VPN服务。

配置任务简介

6PE服务模型配置任务如下:

开启6PE设备的IPv6转发能力

配置公网隧道

配置6PE设备的IPv6地址

配置6PE设备的BGP会话

配置CE

开启6PE设备的IPv6转发能力

功能简介

由于6PE设备要和CE设备建立IPv6连接,所以需要开启6PE设备的IPv6转发能力。

配置步骤

configure terminal

ipv6 unicast-routing

缺省情况下,IPv6路由处于开启状态。

配置公网隧道

功能简介

在公网上必须建立LSP隧道用来承载用户的业务流量。为了在骨干网上运行MPLS,必须在P和PE上同时运行LDP协议,建立公网隧道。这包括为相应的设备配置标签分发协议和在每个接口上开启MPLS的转发功能。

配置限制与指导

LDP目前只支持IPv4公网,还未支持IPv6公网。

配置步骤

configure terminal

全局开启MPLS转发功能。

mpls ip

缺省情况下,全局MPLS转发功能处于关闭状态。

设备要实现MPLS转发,首先需要在全局开启MPLS转发。

配置LDP,并进入LDP配置模式。

mpls router ldp

缺省情况下,LDP协议处于关闭状态。

配置LDP的Router ID。

ldp router-id { ipv4-address | interface interface-type interface-number [ force ] }

缺省情况下,采用系统的Router ID做为LDP的Router ID。

通常使用Loopback接口的IP地址作为Router ID。如果指定了force关键字则强制让新的Router ID立即生效,否则,新的Router ID不会立即生效。

退回全局配置模式。

exit

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

配置接口IP地址。

ip address ipv4-address mask-length

缺省情况下,接口未配置IP地址。

开启公网侧接口的MPLS报文转发功能。

label-switching

缺省情况下,接口转发MPLS标签报文能力处于关闭状态。

接口开启LDP。

mpls ip

缺省情况下,接口LDP功能处于关闭状态。

配置6PE设备的IPv6地址

功能简介

配置6PE与CE设备之间接口的IPv6地址。

配置限制与指导

对于PE连接CE的接口,为了节省IPv6地址,可以不配置全局的IPv6地址,使用自动生成的Linklocal地址。

配置步骤

configure terminal

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入三层以太网子接口配置模式。

interface ethernet-type interface-number.subnumber

进入三层聚合子接口配置模式。

interface aggregateport interface-number.subnumber

进入SVI接口配置模式。

interface vlan interface-number

开启接口IPv6能力。

ipv6 enable

设置接口IPv6地址。

ipv6 address ipv6-address/prefix-length

配置6PE设备的BGP会话

configure terminal

创建BGP,并进入BGP配置模式。

router bgp asn-number

缺省情况下,BGP协议处于关闭状态。

配置BGP会话。

neighbor ipv4-address remote-as asn-number

缺省情况下,BGP对等体处于关闭状态。

目前,6PE只支持IPv4地址的BGP会话。

设置建立MP-IBGP会话时使用接口的地址做为源地址。

neighbor ipv4-address update-source interface-type interface-number

缺省情况下,使用最优的本地接口作为输出接口。

通常使用Loopback接口地址做为源地址。

进入IPv6地址族。

address-family ipv6 unicast

缺省情况下,采用IPv6单播地址族配置模式。

激活在BGP会话上交互IPv6路由。

neighbor ipv4-address activate

激活在BGP会话上交互带标签的IPv6路由。

neighbor ipv4-address send-label

缺省情况下,带上MPLS标签功能处于关闭状态。

配置CE

CE到6PE之间的路由可以使用IPv6静态路由也可以使用IPv6动态路由,在使用IPv6动态路由的情况下,6PE的BGP4+路由和6PE到CE之间的动态路由需要互相引入。

IPv6动态路由协议的配置请参见“IP路由配置指南”中的“RIPng”、“OSPFv3”、“IS-IS”和“BGP”。

监视与维护

可以通过执行clear命令来清除各类信息。

注意

在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。

可以通过show命令行查看功能配置后的运行情况以验证配置效果。

可以通过debug命令行列举输出的各种调试信息。

注意

输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。

MPLS L3VPN监视与维护

作用

命令

复位BGP的VPNv4单播地址族

clear bgp vpnv4 unicast { * | as-number | peer-address } [ soft ] [ in | out ]

清除VPNv4路由振荡信息和使被抑制的VPNv4路由解除抑制

clear bgp vpnv4 unicast dampening [ ipv4-address [ mask-length ] ]

复位VPNv4地址族所有的EBGP连接

clear bgp vpnv4 unicast external [ soft ] [ in | out ]

清除VPNv4地址族路由振荡统计信息

clear bgp vpnv4 unicast flap-statistics [ ipv4-address [ mask-length ] ]

复位BGP对等体组中的所有成员的VPNv4地址族

clear bgp vpnv4 unicast peer-group peer-group-name [ soft ] [ in | out ]

复位BGP的VPNv6单播地址族

clear bgp vpnv6 unicast { * | as-number | peer-address } [ soft ] [ in | out ]

清除VPNv6路由振荡信息和使被抑制的VPNv6路由解除抑制

clear bgp vpnv6 unicast dampening

复位VPNv6地址族所有的EBGP连接

clear bgp vpnv6 unicast external [ soft ] [ in | out ]

清除VPNv6地址族路由振荡统计信息

clear bgp vpnv6 unicast flap-statistics

复位BGP对等体组中的所有成员的VPNv6地址族

clear bgp vpnv6 unicast peer-group peer-group-name [ soft ] [ in | out ]

复位在VRF中的BGP会话

clear ip bgp vrf vrf-name { * | address | as-number } [ soft ] [ in | out ]

查看BGP学习和发送的带MPLS标签的IPv4路由信息

show bgp ipv4 unicast labels

查看BGP学习和发送的带MPLS标签的IPv6路由信息

show bgp ipv6 unicast labels

查看BGP学习和发送的所有VPNv4路由信息或邻居信息

show bgp vpnv4 unicast all [ network | label | neighbor [ peer-address ] | summary ]

查看指定VRF下BGP学习和发送的VPNv4路由信息或邻居信息

show bgp vpnv4 unicast vrf vrf-name [ network | label | summary ]

查看指定RD下BGP学习和发送的VPNv4路由信息或邻居信息

show bgp vpnv4 unicast rd rd-value [ network | label | summary ]

查看BGP学习和发送的VPNv6路由信息或邻居信息

show bgp vpnv6 unicast all [ network | label | neighbor [ peer-address ] | summary ]

查看指定VRF下BGP学习和发送的VPNv6路由信息或邻居信息

show bgp vpnv6 unicast vrf vrf-name [ network | label | summary ]

查看BGP学习和发送的指定RD下的VPNv6路由信息或邻居信息

show bgp vpnv6 unicast rd rd-value [ network | label | summary ]

查看扩展团体属性列表的配置信息

show ip extcommunity-list [ extcommunity-list-name | extcommunity-list-num ]

查看OSPF的伪链路信息

show ip ospf [ process-id ] sham-links [ area area-id ]

查看配置的单协议VRF的信息

show ip vrf [ brief | detail | interfaces ] [ vrf-name ]

查看VRF(包括单协议VRF和多协议VRF)的简要信息

show vrf brief [ vrf-name ]

查看VRF(包括单协议VRF和多协议VRF)的IPv4地址族的简要信息

show vrf ipv4 [ vrf-name ]

查看多协议VRF的IPv6地址族的简要信息

show vrf ipv6 [ vrf-name ]

查看VRF(包括单协议VRF和多协议VRF)的详细信息

show vrf detail [ vrf-name ]

查看L3VPN转发表项

show mpls forwarding-table

开启BGP MPLS的调试开关

debug ip bgp mpls

开启MPLS表项内部处理的调试开关

debug mpls

开启MPLS消息的调试开关

debug mpls msg [ recv | send ]

IPv4 MPLS L3VPN典型配置举例

基本IPv4 MPLS L3VPN(Intranet)配置举例

组网需求

有两个VPN用户:VPNA和VPNB。VPNA在SITEA、SITEB和SITEC有用户站点,VPNB在SITEB和SITEC有用户站点,VPNA在SITEA的站点和VPNB在SITEB的站点存在地址重叠。要求:

VPNA内不同SITE的用户可以互访。

VPNB内不同SITE的用户可以互访。

VPNA和VPNB两个VPN之间的用户不能互相访问。

组网图

基本IPv4 MPLS L3VPN(Intranet)配置组网图

image.png

配置要点

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

在各PE上配置VPN路由实例,定义RD值和RT值,并把VRF和对应的接口关联。

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

在各VPN-SITE与PE之间配置EBGP,传递VPN路由信息。

配置步骤

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

# 设备PE1的配置。

PE1> enable

PE1# configure terminal

PE1(config)# interface loopback 0

PE1(config-if-Loopback 0)# ip address 172.168.0.1 255.255.255.255

PE1(config-if-Loopback 0)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# no switchport

PE1(config-if-GigabitEthernet 0/2)# ip address 172.168.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# exit

PE1(config)# router ospf 10

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# exit

# 设备P1的配置。

P1> enable

P1# configure terminal

P1(config)# interface loopback 0

P1(config-if-Loopback 0)# ip address 172.168.0.4 255.255.255.255

P1(config-if-Loopback 0)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# no switchport

P1(config-if-GigabitEthernet 0/1)# ip address 172.168.10.2 255.255.255.0

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# no switchport

P1(config-if-GigabitEthernet 0/2)# ip address 172.168.20.1 255.255.255.0

P1(config-if-GigabitEthernet 0/2)# exit

P1(config)# router ospf 10

P1(config-router)# network 172.168.0.4 0.0.0.0 area 0

P1(config-router)# network 172.168.10.0 0.0.0.255 area 0

P1(config-router)# network 172.168.20.0 0.0.0.255 area 0

P1(config-router)# exit

# 设备P2的配置。

P2> enable

P2# configure terminal

P2(config)# interface loopback 0

P2(config-if-Loopback 0)# ip address 172.168.0.5 255.255.255.255

P2(config-if-Loopback 0)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# no switchport

P2(config-if-GigabitEthernet 0/1)# ip address 172.168.20.2 255.255.255.0

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# no switchport

P2(config-if-GigabitEthernet 0/2)# ip address 172.168.30.1 255.255.255.0

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# no switchport

P2(config-if-GigabitEthernet 0/3)# ip address 172.168.40.1 255.255.255.0

P2(config-if-GigabitEthernet 0/3)# exit

P2(config)# router ospf 10

P2(config-router)# network 172.168.0.5 0.0.0.0 area 0

P2(config-router)# network 172.168.20.0 0.0.0.255 area 0

P2(config-router)# network 172.168.30.0 0.0.0.255 area 0

P2(config-router)# network 172.168.40.0 0.0.0.255 area 0

P2(config-router)# exit

# 设备PE2的配置。

PE2> enable

PE2# configure terminal

PE2(config)# interface loopback 0

PE2(config-if-Loopback 0)# ip address 172.168.0.3 255.255.255.255

PE2(config-if-Loopback 0)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# no switchport

PE2(config-if-GigabitEthernet 0/2)# ip address 172.168.40.2 255.255.255.0

PE2(config-if-GigabitEthernet 0/2)# exit

PE2(config)# router ospf 10

PE2(config-router)# network 172.168.0.3 0.0.0.0 area 0

PE2(config-router)# network 172.168.40.0 0.0.0.255 area 0

PE2(config-router)# exit

# 设备PE3的配置。

PE3> enable

PE3# configure terminal

PE3(config)# interface loopback 0

PE3(config-if-Loopback 0)# ip address 172.168.0.2 255.255.255.255

PE3(config-if-Loopback 0)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# no switchport

PE3(config-if-GigabitEthernet 0/2)# ip address 172.168.30.2 255.255.255.0

PE3(config-if-GigabitEthernet 0/2)# exit

PE3(config)# router ospf 10

PE3(config-router)# network 172.168.0.2 0.0.0.0 area 0

PE3(config-router)# network 172.168.30.0 0.0.0.255 area 0

PE3(config-router)# exit

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

# 设备PE1的配置。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

# 设备P1的配置。

P1(config)# mpls ip

P1(config)# mpls router ldp

P1(config-mpls-router)# ldp router-id interface loopback 0 force

P1(config-mpls-router)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# label-switching

P1(config-if-GigabitEthernet 0/1)# mpls ip

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# label-switching

P1(config-if-GigabitEthernet 0/2)# mpls ip

P1(config-if-GigabitEthernet 0/2)# exit

# 设备P2的配置。

P2(config)# mpls ip

P2(config)# mpls router ldp

P2(config-mpls-router)# ldp router-id interface loopback 0 force

P2(config-mpls-router)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# label-switching

P2(config-if-GigabitEthernet 0/1)# mpls ip

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# label-switching

P2(config-if-GigabitEthernet 0/2)# mpls ip

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# label-switching

P2(config-if-GigabitEthernet 0/3)# mpls ip

P2(config-if-GigabitEthernet 0/3)# exit

# 设备PE2的配置。

PE2(config)# mpls ip

PE2(config)# mpls router ldp

PE2(config-mpls-router)# ldp router-id interface loopback 0 force

PE2(config-mpls-router)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# label-switching

PE2(config-if-GigabitEthernet 0/2)# mpls ip

PE2(config-if-GigabitEthernet 0/2)# exit

# 设备PE3的配置。

PE3(config)# mpls ip

PE3(config)# mpls router ldp

PE3(config-mpls-router)# ldp router-id interface loopback 0 force

PE3(config-mpls-router)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# label-switching

PE3(config-if-GigabitEthernet 0/2)# mpls ip

PE3(config-if-GigabitEthernet 0/2)# exit

在各PE上配置VPN路由实例,定义RD值和RT值,并把VRF和对应的接口关联。

# 设备PE1的配置。

PE1(config)# ip vrf VPNA

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target both 1:100

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# no switchport

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPNA

PE1(config-if-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

# 设备PE2的配置。

PE2(config)# ip vrf VPNA

PE2(config-vrf)# rd 1:100

PE2(config-vrf)# route-target both 1:100

PE2(config-vrf)# exit

PE2(config)# ip vrf VPNB

PE2(config-vrf)# rd 1:200

PE2(config-vrf)# route-target both 1:200

PE2(config-vrf)# exit

PE2(config)# interface gigabitethernet 0/1

PE2(config-if-GigabitEthernet 0/1)# no switchport

PE2(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPNA

PE2(config-if-GigabitEthernet 0/1)# ip address 192.168.40.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/1)# exit

PE2(config)# interface gigabitethernet 0/3

PE2(config-if-GigabitEthernet 0/3)# no switchport

PE2(config-if-GigabitEthernet 0/3)# ip vrf forwarding VPNB

PE2(config-if-GigabitEthernet 0/3)# ip address 192.168.30.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/3)# exit

# 设备PE3的配置。

PE3(config)# ip vrf VPNA

PE3(config-vrf)# rd 1:100

PE3(config-vrf)# route-target both 1:100

PE3(config-vrf)# exit

PE3(config)# ip vrf VPNB

PE3(config-vrf)# rd 1:200

PE3(config-vrf)# route-target both 1:200

PE3(config-vrf)# exit

PE3(config)# interface gigabitethernet 0/1

PE3(config-if-GigabitEthernet 0/1)# no switchport

PE3(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPNB

PE3(config-if-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE3(config-if-GigabitEthernet 0/1)# exit

PE3(config)# interface gigabitethernet 0/3

PE3(config-if-GigabitEthernet 0/3)# no switchport

PE3(config-if-GigabitEthernet 0/3)# ip vrf forwarding VPNA

PE3(config-if-GigabitEthernet 0/3)# ip address 192.168.20.1 255.255.255.0

PE3(config-if-GigabitEthernet 0/3)# exit

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# neighbor 172.168.0.3 remote-as 1

PE1(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# neighbor 172.168.0.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

# 设备PE2的配置。

PE2(config)# router bgp 1

PE2(config-router)# neighbor 172.168.0.1 remote-as 1

PE2(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE2(config-router)# neighbor 172.168.0.2 remote-as 1

PE2(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE2(config-router)# address-family vpnv4

PE2(config-router-af)# neighbor 172.168.0.1 activate

PE2(config-router-af)# neighbor 172.168.0.2 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# exit

# 设备PE3的配置。

PE3(config)# router bgp 1

PE3(config-router)# neighbor 172.168.0.1 remote-as 1

PE3(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE3(config-router)# neighbor 172.168.0.3 remote-as 1

PE3(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE3(config-router)# address-family vpnv4

PE3(config-router-af)# neighbor 172.168.0.1 activate

PE3(config-router-af)# neighbor 172.168.0.3 activate

PE3(config-router-af)# exit-address-family

PE3(config-router)# exit

在各PE与VPN-SITE之间配置EBGP,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf VPNA

PE1(config-router-af)# neighbor 192.168.10.2 remote-as 65001

PE1(config-router-af)# neighbor 192.168.10.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# end

# 设备PE2的配置。

PE2(config)# router bgp 1

PE2(config-router)# address-family ipv4 vrf VPNA

PE2(config-router-af)# neighbor 192.168.40.2 remote-as 65003

PE2(config-router-af)# neighbor 192.168.40.2 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# address-family ipv4 vrf VPNB

PE2(config-router-af)# neighbor 192.168.30.2 remote-as 65005

PE2(config-router-af)# neighbor 192.168.30.2 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# end

# 设备PE3的配置。

PE3(config)# router bgp 1

PE3(config-router)# address-family ipv4 vrf VPNA

PE3(config-router-af)# neighbor 192.168.20.2 remote-as 65002

PE3(config-router-af)# neighbor 192.168.20.2 activate

PE3(config-router-af)# exit-address-family

PE3(config-router)# address-family ipv4 vrf VPNB

PE3(config-router-af)# neighbor 192.168.10.3 remote-as 65004

PE3(config-router-af)# neighbor 192.168.10.3 activate

PE3(config-router-af)# exit-address-family

PE3(config-router)# end

# 设备VPNA-SITEA的配置。

VPNA-SITEA> enable

VPNA-SITEA# configure terminal

VPNA-SITEA(config)# interface gigabitethernet 0/1

VPNA-SITEA(config-if-GigabitEthernet 0/1)# no switchport

VPNA-SITEA(config-if-GigabitEthernet 0/1) ip address 192.168.10.2 255.255.255.0

VPNA-SITEA(config-if-GigabitEthernet 0/1) exit

VPNA-SITEA(config)# router bgp 65001

VPNA-SITEA(config-router)# neighbor 192.168.10.1 remote-as 1

VPNA-SITEA(config-router)# neighbor 192.168.10.1 activate

VPNA-SITEA(config-router)# end

# 设备VPNA-SITEB的配置。

VPNA-SITEB> enable

VPNA-SITEB# configure terminal

VPNA-SITEB(config)# interface gigabitethernet 0/1

VPNA-SITEB(config-if-GigabitEthernet 0/1)# no switchport

VPNA-SITEB(config-if-GigabitEthernet 0/1) ip address 192.168.20.2 255.255.255.0

VPNA-SITEB(config-if-GigabitEthernet 0/1) exit

VPNA-SITEB(config)# router bgp 65002

VPNA-SITEB(config-router)# neighbor 192.168.20.1 remote-as 1

VPNA-SITEB(config-router)# neighbor 192.168.20.1 activate

VPNA-SITEB(config-router)# end

# 设备VPNA-SITEC的配置。

VPNA-SITEC> enable

VPNA-SITEC# configure terminal

VPNA-SITEC(config)# interface gigabitethernet 0/1

VPNA-SITEC(config-if-GigabitEthernet 0/1)# no switchport

VPNA-SITEC(config-if-GigabitEthernet 0/1) ip address 192.168.40.2 255.255.255.0

VPNA-SITEC(config-if-GigabitEthernet 0/1) exit

VPNA-SITEC(config)# router bgp 65003

VPNA-SITEC(config-router)# neighbor 192.168.40.1 remote-as 1

VPNA-SITEC(config-router)# neighbor 192.168.40.1 activate

VPNA-SITEC(config-router)# end

# 设备VPNB-SITEB的配置。

VPNB-SITEB> enable

VPNB-SITEB# configure terminal

VPNB-SITEB(config)# interface gigabitethernet 0/1

VPNB-SITEB(config-if-GigabitEthernet 0/1)# no switchport

VPNB-SITEB(config-if-GigabitEthernet 0/1)# ip address 192.168.10.3 255.255.255.0

VPNB-SITEB(config-if-GigabitEthernet 0/1)# exit

VPNB-SITEB(config)# router bgp 65004

VPNB-SITEB(config-router)# neighbor 192.168.10.1 remote-as 1

VPNB-SITEB(config-router)# neighbor 192.168.10.1 activate

VPNB-SITEB(config-router)# end

# 设备VPNB-SITEC的配置。

VPNB-SITEC> enable

VPNB-SITEC# configure terminal

VPNB-SITEC(config)# interface gigabitethernet 0/1

VPNB-SITEC(config-if-GigabitEthernet 0/1)# no switchport

VPNB-SITEC(config-if-GigabitEthernet 0/1) ip address 192.168.30.2 255.255.255.0

VPNB-SITEC(config-if-GigabitEthernet 0/1) exit

VPNB-SITEC(config)# router bgp 65005

VPNB-SITEC(config-router)# neighbor 192.168.30.1 remote-as 1

VPNB-SITEC(config-router)# neighbor 192.168.30.1 activate

VPNB-SITEC(config-router)# end

验证配置结果

配置完成后,使用Ping命令检测与其他站点的连通性。

PE1能Ping通PE2、PE3、P1、P2和VPNA-SITEA站点。

PE2能Ping通PE1、PE3、P1、P2、VPNA-SITEC和VPNB-SITEC站点。

PE3能Ping通PE1、PE2、P1、P2、VPNA-SITEB和VPNB-SITEB站点。

VPNA-SITEA能Ping通VPNA-SITEB和VPNA-SITEC站点,不能Ping通VPNB-SITEB和VPNB-SITEC站点。

VPNA-SITEB能Ping通VPNA-SITEA和VPNA-SITEC站点,不能Ping通VPNB-SITEB和VPNB-SITEC站点。

VPNA-SITEC能Ping通VPNA-SITEA和VPNA-SITEB站点,不能Ping通VPNB-SITEB和VPNB-SITEC站点。

VPNB-SITEB能Ping通VPNB-SITEC站点,不能Ping通VPNA-SITEA、VPNA-SITEB和VPNA-SITEC站点。

VPNB-SITEC能Ping通VPNB-SITEB站点,不能Ping通VPNA-SITEA、VPNA-SITEB和VPNA-SITEC站点。

P1能Ping通PE1、PE2、PE3和P2,不能Ping通各个VPN站点。

P2能Ping通PE1、PE2、PE3和P1,不能Ping通各个VPN站点。

配置文件

PE1的配置文件

hostname PE1

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.10.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf VPNA

neighbor 192.168.10.2 remote-as 65001

neighbor 192.168.10.2 activate

exit-address-family

!

router ospf 10

network 172.168.0.1 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P1的配置文件

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.4 255.255.255.255

!

router ospf 10

network 172.168.0.4 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P2的配置文件

hostname P2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.20.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.30.1 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip address 172.168.40.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.5 255.255.255.255

!

router ospf 10

network 172.168.0.5 0.0.0.0 area 0

network 172.168.20.0 0.0.0.255 area 0

network 172.168.30.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE2的配置文件

hostname PE2

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

ip vrf VPNB

rd 1:200

route-target both 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.40.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip vrf forwarding VPNB

ip address 172.168.30.1 255.255.255.0

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.2 activate

exit-address-family

!

address-family ipv4 vrf VPNA

neighbor 192.168.40.2 remote-as 65003

neighbor 192.168.40.2 activate

exit-address-family

!

address-family ipv4 vrf VPNB

neighbor 192.168.30.2 remote-as 65005

neighbor 192.168.30.2 activate

exit-address-family

!

router ospf 10

network 172.168.0.3 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE3的配置文件

hostname PE3

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

ip vrf VPNB

rd 1:200

route-target both 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNB

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.30.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip vrf forwarding VPNA

ip address 192.168.20.1 255.255.255.0

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf VPNA

neighbor 192.168.20.2 remote-as 65002

neighbor 192.168.20.2 activate

exit-address-family

!

address-family ipv4 vrf VPNB

neighbor 192.168.10.3 remote-as 65004

neighbor 192.168.10.3 activate

exit-address-family

!

router ospf 10

network 172.168.0.2 0.0.0.0 area 0

network 172.168.30.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

VPNA-SITEA的配置文件

hostname VPNA-SITEA

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.10.2 255.255.255.0

!

router bgp 65001

neighbor 192.168.10.1 remote-as 1

neighbor 192.168.10.1 activate

!

VPNA-SITEB的配置文件

hostname VPNA-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.20.2 255.255.255.0

!

router bgp 65002

neighbor 192.168.20.1 remote-as 1

neighbor 192.168.20.1 activate

!

VPNA-SITEC的配置文件

hostname VPNA-SITEC

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.40.2 255.255.255.0

!

router bgp 65003

neighbor 192.168.40.1 remote-as 1

neighbor 192.168.40.1 activate

!

VPNB-SITEB的配置文件

hostname VPNB-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.10.3 255.255.255.0

!

router bgp 65004

neighbor 192.168.10.1 remote-as 1

neighbor 192.168.10.1 activate

!

VPNB-SITEC的配置文件

hostname VPNB-SITEC

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.30.2 255.255.255.0

!

router bgp 65005

neighbor 192.168.30.1 remote-as 1

neighbor 192.168.30.1 activate

!

常见错误

Router-ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(Extranet)配置举例

组网需求

有两个VPN用户,VPNA和VPNB。要求VPN内部可以实现互相访问,这两个VPN之间不能互相访问,但是这两个VPN可以访问一部分共享的资源。如图1-16所示,VPNA和VPNB的站点都要访问VPN-SITEA的资源。

组网图

基本IPv4 MPLS L3VPN(Extranet)配置组网图

image.png

配置要点

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

在各PE上配置VPN路由实例,定义RD值和RT值,并把VRF和对应的接口关联。

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

在各VPN-SITE与PE之间配置OSPF路由协议,传递VPN路由信息。

配置步骤

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

# 设备PE1的配置。

PE1> enable

PE1# configure terminal

PE1(config)# interface loopback 0

PE1(config-if-Loopback 0)# ip address 172.168.0.1 255.255.255.255

PE1(config-if-Loopback 0)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# no switchport

PE1(config-if-GigabitEthernet 0/2)# ip address 172.168.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# exit

PE1(config)# router ospf 1

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# exit

# 设备P1的配置。

P1> enable

P1# configure terminal

P1(config)# interface loopback 0

P1(config-if-Loopback 0)# ip address 172.168.0.4 255.255.255.255

P1(config-if-Loopback 0)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# no switchport

P1(config-if-GigabitEthernet 0/1)# ip address 172.168.10.2 255.255.255.0

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# no switchport

P1(config-if-GigabitEthernet 0/2)# ip address 172.168.20.1 255.255.255.0

P1(config-if-GigabitEthernet 0/2)# exit

P1(config)# router ospf 1

P1(config-router)# network 172.168.0.4 0.0.0.0 area 0

P1(config-router)# network 172.168.10.0 0.0.0.255 area 0

P1(config-router)# network 172.168.20.0 0.0.0.255 area 0

P1(config-router)# exit

# 设备P2的配置。

P2> enable

P2# configure terminal

P2(config)# interface loopback 0

P2(config-if-Loopback 0)# ip address 172.168.0.5 255.255.255.255

P2(config-if-Loopback 0)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# no switchport

P2(config-if-GigabitEthernet 0/1)# ip address 172.168.30.1 255.255.255.0

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# no switchport

P2(config-if-GigabitEthernet 0/2)# ip address 172.168.20.2 255.255.255.0

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# no switchport

P2(config-if-GigabitEthernet 0/3)# ip address 172.168.40.1 255.255.255.0

P2(config-if-GigabitEthernet 0/3)# exit

P2(config)# router ospf 1

P2(config-router)# network 172.168.0.5 0.0.0.0 area 0

P2(config-router)# network 172.168.20.0 0.0.0.255 area 0

P2(config-router)# network 172.168.30.0 0.0.0.255 area 0

P2(config-router)# network 172.168.40.0 0.0.0.255 area 0

P2(config-router)# exit

# 设备PE2的配置。

PE2> enable

PE2# configure terminal

PE2(config)# interface loopback 0

PE2(config-if-Loopback 0)# ip address 172.168.0.2 255.255.255.255

PE2(config-if-Loopback 0)# exit

PE2(config)# interface gigabitethernet 0/1

PE2(config-if-GigabitEthernet 0/1)# no switchport

PE2(config-if-GigabitEthernet 0/1)# ip address 172.168.40.2 255.255.255.0

PE2(config-if-GigabitEthernet 0/1)# exit

PE2(config)# router ospf 1

PE2(config-router)# network 172.168.0.2 0.0.0.0 area 0

PE2(config-router)# network 172.168.40.0 0.0.0.255 area 0

PE2(config-router)# exit

# 设备PE3的配置。

PE3> enable

PE3# configure terminal

PE3(config)# interface loopback 0

PE3(config-if-Loopback 0)# ip address 172.168.0.3 255.255.255.255

PE3(config-if-Loopback 0)# exit

PE3(config)# interface gigabitethernet 0/3

PE3(config-if-GigabitEthernet 0/3)# no switchport

PE3(config-if-GigabitEthernet 0/3)# ip address 172.168.30.2 255.255.255.0

PE3(config-if-GigabitEthernet 0/3)# exit

PE3(config)# router ospf 1

PE3(config-router)# network 172.168.0.3 0.0.0.0 area 0

PE3(config-router)# network 172.168.30.0 0.0.0.255 area 0

PE3(config-router)# exit

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

# 设备PE1的配置。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

# 设备P1的配置。

P1(config)# mpls ip

P1(config)# mpls router ldp

P1(config-mpls-router)# ldp router-id interface loopback 0 force

P1(config-mpls-router)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# label-switching

P1(config-if-GigabitEthernet 0/1)# mpls ip

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# label-switching

P1(config-if-GigabitEthernet 0/2)# mpls ip

P1(config-if-GigabitEthernet 0/2)# exit

# 设备P2的配置。

P2(config)# mpls ip

P2(config)# mpls router ldp

P2(config-mpls-router)# ldp router-id interface loopback 0 force

P2(config-mpls-router)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# label-switching

P2(config-if-GigabitEthernet 0/1)# mpls ip

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# label-switching

P2(config-if-GigabitEthernet 0/2)# mpls ip

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# label-switching

P2(config-if-GigabitEthernet 0/3)# mpls ip

P2(config-if-GigabitEthernet 0/3)# exit

# 设备PE2的配置。

PE2(config)# mpls ip

PE2(config)# mpls router ldp

PE2(config-mpls-router)# ldp router-id interface loopback 0 force

PE2(config-mpls-router)# exit

PE2(config)# interface gigabitethernet 0/1

PE2(config-if-GigabitEthernet 0/1)# label-switching

PE2(config-if-GigabitEthernet 0/1)# mpls ip

PE2(config-if-GigabitEthernet 0/1)# exit

# 设备PE3的配置。

PE3(config)# mpls ip

PE3(config)# mpls router ldp

PE3(config-mpls-router)# ldp router-id interface loopback 0 force

PE3(config-mpls-router)# exit

PE3(config)# interface gigabitethernet 0/3

PE3(config-if-GigabitEthernet 0/3)# label-switching

PE3(config-if-GigabitEthernet 0/3)# mpls ip

PE3(config-if-GigabitEthernet 0/3)# exit

在各PE上配置VPN路由实例,定义RD值和RT值,并把VRF和对应的接口关联。

# 设备PE1的配置。

PE1(config)# ip vrf VPN_EXTRA

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target both 1:100

PE1(config-vrf)# route-target both 1:200

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# no switchport

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN_EXTRA

PE1(config-if-GigabitEthernet 0/1)# ip address 192.168.100.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

# 设备PE2的配置。

PE2(config)# ip vrf VPNA

PE2(config-vrf)# rd 1:100

PE2(config-vrf)# route-target both 1:100

PE2(config-vrf)# exit

PE2(config)# ip vrf VPNB

PE2(config-vrf)# rd 1:200

PE2(config-vrf)# route-target both 1:200

PE2(config-vrf)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# no switchport

PE2(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPNA

PE2(config-if-GigabitEthernet 0/2)# ip address 192.168.40.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/2)# exit

PE2(config)# interface gigabitethernet 0/3

PE2(config-if-GigabitEthernet 0/3)# no switchport

PE2(config-if-GigabitEthernet 0/3)# ip vrf forwarding VPNB

PE2(config-if-GigabitEthernet 0/3)# ip address 192.168.30.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/3)# exit

# 设备PE3的配置。

PE3(config)# ip vrf VPNA

PE3(config-vrf)# rd 1:100

PE3(config-vrf)# route-target both 1:100

PE3(config-vrf)# exit

PE3(config)# ip vrf VPNB

PE3(config-vrf)# rd 1:200

PE3(config-vrf)# route-target both 1:200

PE3(config-vrf)# exit

PE3(config)# interface gigabitethernet 0/1

PE3(config-if-GigabitEthernet 0/1)# no switchport

PE3(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPNB

PE3(config-if-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE3(config-if-GigabitEthernet 0/1)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPNA

PE3(config-if-GigabitEthernet 0/2)# ip address 192.168.20.1 255.255.255.0

PE3(config-if-GigabitEthernet 0/2)# exit

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# neighbor 172.168.0.3 remote-as 1

PE1(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# neighbor 172.168.0.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

# 设备PE2的配置。

PE2(config)# router bgp 1

PE2(config-router)# neighbor 172.168.0.1 remote-as 1

PE2(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE2(config-router)# neighbor 172.168.0.3 remote-as 1

PE2(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE2(config-router)# address-family vpnv4

PE2(config-router-af)# neighbor 172.168.0.1 activate

PE2(config-router-af)# neighbor 172.168.0.3 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# exit

# 设备PE3的配置。

PE3(config)# router bgp 1

PE3(config-router)# neighbor 172.168.0.1 remote-as 1

PE3(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE3(config-router)# neighbor 172.168.0.2 remote-as 1

PE3(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE3(config-router)# address-family vpnv4

PE3(config-router-af)# neighbor 172.168.0.1 activate

PE3(config-router-af)# neighbor 172.168.0.2 activate

PE3(config-router-af)# exit-address-family

PE3(config-router)# exit

在各PE与VPN-SITE之间配置OSPF路由协议,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router ospf 10 vrf VPN_EXTRA

PE1(config-router)# network 192.168.100.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf VPN_EXTRA

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# exit-address-family

PE1(config-router)# end

# 设备PE2的配置。

PE2(config)# router ospf 10 vrf VPNA

PE2(config-router)# network 192.168.40.0 0.0.0.255 area 0

PE2(config-router)# redistribute bgp subnets

PE2(config-router)# exit

PE2(config)# router ospf 20 vrf VPNB

PE2(config-router)# network 192.168.30.0 0.0.0.255 area 0

PE2(config-router)# redistribute bgp subnets

PE2(config-router)# exit

PE2(config)# router bgp 1

PE2(config-router)# address-family ipv4 vrf VPNA

PE2(config-router-af)# redistribute ospf 10

PE2(config-router-af)# exit-address-family

PE2(config-router)# address-family ipv4 vrf VPNB

PE2(config-router-af)# redistribute ospf 20

PE2(config-router-af)# exit-address-family

PE2(config-router)# end

# 设备PE3的配置。

PE3(config)# router ospf 10 vrf VPNA

PE3(config-router)# network 192.168.20.0 0.0.0.255 area 0

PE3(config-router)# redistribute bgp subnets

PE3(config-router)# exit

PE3(config)# router ospf 20 vrf VPNB

PE3(config-router)# network 192.168.10.0 0.0.0.255 area 0

PE3(config-router)# redistribute bgp subnets

PE3(config-router)# exit

PE3(config)# router bgp 1

PE3(config-router)# address-family ipv4 vrf VPNA

PE3(config-router-af)# redistribute ospf 10

PE3(config-router-af)# exit

PE3(config-router)# address-family ipv4 vrf VPNB

PE3(config-router-af)# redistribute ospf 20

PE3(config-router-af)# exit-address-family

PE3(config-router)# end

# 设备VPN-SITEA的配置。

VPN-SITEA> enable

VPN-SITEA# configure terminal

VPN-SITEA(config)# interface gigabitethernet 0/1

VPN-SITEA(config-if-GigabitEthernet 0/1)# no switchport

VPN-SITEA(config-if-GigabitEthernet 0/1)# ip address 192.168.100.2 255.255.255.0

VPN-SITEA(config-if-GigabitEthernet 0/1)# exit

VPN-SITEA(config)# router ospf 10

VPN-SITEA(config-router)# network 192.168.100.0 0.0.0.255 area 0

VPN-SITEA(config-router)# end

# 设备VPNA-SITEB的配置。

VPNA-SITEB> enable

VPNA-SITEB# configure terminal

VPNA-SITEB(config)# interface gigabitethernet 0/1

VPNA-SITEA(config-if-GigabitEthernet 0/1)# no switchport

VPNA-SITEB(config-if-GigabitEthernet 0/1)# ip address 192.168.20.2 255.255.255.0

VPNA-SITEB(config-if-GigabitEthernet 0/1)# exit

VPNA-SITEB(config)# router ospf 10

VPNA-SITEB(config-router)# network 192.168.20.0 0.0.0.255 area 0

VPNA-SITEB(config-router)# end

# 设备VPNB-SITEB的配置。

VPNB-SITEB> enable

VPNB-SITEB# configure terminal

VPNB-SITEB(config)# interface gigabitethernet 0/1

VPNB-SITEA(config-if-GigabitEthernet 0/1)# no switchport

VPNB-SITEB(config-if-GigabitEthernet 0/1)# ip address 192.168.10.2 255.255.255.0

VPNB-SITEB(config-if-GigabitEthernet 0/1)# exit

VPNB-SITEB(config)# router ospf 10

VPNB-SITEB(config-router)# network 192.168.10.0 0.0.0.255 area 0

VPNB-SITEB(config-router)# end

# 设备VPNA-SITEC的配置。

VPNA-SITEC> enable

VPNA-SITEC# configure terminal

VPNA-SITEC(config)# interface gigabitethernet 0/1

VPNA-SITEC(config-if-GigabitEthernet 0/1)# no switchport

VPNA-SITEC(config-if-GigabitEthernet 0/1)# ip address 192.168.40.2 255.255.255.0

VPNA-SITEC(config-if-GigabitEthernet 0/1)# exit

VPNA-SITEC(config)# router ospf 10

VPNA-SITEC(config-router)# network 192.168.40.0 0.0.0.255 area 0

VPNA-SITEC(config-router)# end

# 设备VPNB-SITEC的配置。

VPNB-SITEC> enable

VPNB-SITEC# configure terminal

VPNB-SITEC(config)# interface gigabitethernet 0/1

VPNB-SITEC(config-if-GigabitEthernet 0/1)# no switchport

VPNB-SITEC(config-if-GigabitEthernet 0/1)# ip address 192.168.30.2 255.255.255.0

VPNB-SITEC(config-if-GigabitEthernet 0/1)# exit

VPNB-SITEC(config)# router ospf 10

VPNB-SITEC(config-router)# network 192.168.30.0 0.0.0.255 area 0

VPNB-SITEC(config-router)# end

验证配置结果

配置完成后,使用Ping命令检测与其他相关站点的连通性。

PE1能Ping通PE2、PE3、P1、P2和VPN-SITEA站点。

PE2能Ping通PE1、PE3、P1、P2、VPNA-SITEC和VPNB-SITEC站点。

PE3能Ping通PE1、PE2、P1、P2、VPNA-SITEB和VPNB-SITEB站点。

P1能Ping通PE1、PE2、PE3和P2。

P2能Ping通PE1、PE2、PE3和P1。

VPN-SITEA能Ping通VPNA-SITEB、VPNA-SITEC、VPNB-SITEB和VPNB-SITEC站点。

VPNA-SITEB能Ping通VPN-SITEA和VPNA-SITEC站点,不能Ping通VPNB-SITEB和VPNB-SITEC站点。

VPNA-SITEC能Ping通VPN-SITEA和VPNA-SITEB站点,不能Ping通VPNB-SITEB和VPNB-SITEC站点。

VPNB-SITEB能Ping通VPN-SITEA和VPNB-SITEC站定,不能Ping通VPNA-SITEB和VPNA-SITEC站点。

VPNB-SITEC能Ping通VPN-SITEA和VPNB-SITEB站定,不能Ping通VPNA-SITEB和VPNA-SITEC站点。

配置文件

PE1的配置文件

hostname PE1

!

ip vrf VPN_EXTRA

rd 1:100

route-target both 1:100

route-target both 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN_EXTRA

ip address 192.168.100.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.10.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf VPN_EXTRA

redistribute ospf 10

exit-address-family

!

router ospf 1

network 172.168.0.1 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN_EXTRA

redistribute bgp subnets

network 192.168.100.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P1的配置文件

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.4 255.255.255.255

!

router ospf 1

network 172.168.0.4 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P2的配置文件

hostname P2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.30.1 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip address 172.168.40.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.5 255.255.255.255

!

router ospf 1

network 172.168.0.5 0.0.0.0 area 0

network 172.168.20.0 0.0.0.255 area 0

network 172.168.30.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE2的配置文件

hostname PE2

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

ip vrf VPNB

rd 1:200

route-target both 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.40.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPNA

ip address 192.168.40.1 255.255.255.0

!

interface GigabitEthernet 0/3

no switchport

ip vrf forwarding VPNB

ip address 192.168.30.1 255.255.255.0

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute ospf 10

exit-address-family

!

address-family ipv4 vrf VPNB

redistribute ospf 20

exit-address-family

!

router ospf 1

network 172.168.0.2 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

redistribute bgp subnets

network 192.168.40.0 0.0.0.255 area 0

!

router ospf 20 vrf VPNB

redistribute bgp subnets

network 192.168.30.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE3的配置文件

hostname PE3

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

ip vrf VPNB

rd 1:200

route-target both 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNB

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPNA

ip address 192.168.20.1 255.255.255.0

!

interface GigabitEthernet 0/3

no switchport

ip address 172.168.30.2 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.2 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute ospf 10

exit-address-family

!

address-family ipv4 vrf VPNB

redistribute ospf 20

exit-address-family

!

router ospf 1

network 172.168.0.3 0.0.0.0 area 0

network 172.168.30.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

redistribute bgp subnets

network 192.168.20.0 0.0.0.255 area 0

!

router ospf 20 vrf VPNB

redistribute bgp subnets

network 192.168.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

VPN-SITEA的配置文件

hostname VPN-SITEA

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.100.2 255.255.255.0

!

router ospf 10

network 192.168.100.0 0.0.0.255 area 0

!

VPNA-SITEB的配置文件

hostname VPNA-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.20.2 255.255.255.0

!

router ospf 10

network 192.168.20.0 0.0.0.255 area 0

!

VPNB-SITEB的配置文件

hostname VPNB-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.10.2 255.255.255.0

!

router ospf 10

network 192.168.10.0 0.0.0.255 area 0

!

VPNA-SITEC的配置文件

hostname VPNA-SITEC

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.40.2 255.255.255.0

!

router ospf 10

network 192.168.40.0 0.0.0.255 area 0

!

VPNB-SITEC的配置文件

hostname VPNB-SITEC

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.30.2 255.255.255.0

!

router ospf 10

network 192.168.30.0 0.0.0.255 area 0

!

常见错误

Router-ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(Hub-and-Spoke)配置举例

组网需求

VPN内部数据的交换不能直接交换,必须经过统一的控制中心才能进行交互,且只有该控制中心了解VPN内部的全部信息资源,其他属于该VPN的用户要获得VPN内的资源必须由控制中心告知。如图1-17所示,VPNA-SITEA要访问VPNA-SITEB的资源必须通过控制中心VPNA-SITEC才可以访问,无法直接访问。

组网图

Hub-and-Spoke配置组网图

image.png

配置要点

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

在PE1配置VPN路由实例spoke1、在PE2配置VPN路由实例from-spoke和from-hub、在PE3配置VPN路由实例spoke2,分别定义RD值和RT值,并把VRF和对应的接口关联。

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

在各VPN-SITE与PE之间建立EBGP会话,传递VPN路由信息。

配置步骤

在MPLS骨干网各节点上配置接口IP地址和OSPF路由协议,实现骨干网各节点之间的互通。

# 设备PE1的配置。

PE1> enable

PE1# configure terminal

PE1(config)# interface loopback 0

PE1(config-if-Loopback 0)# ip address 172.168.0.1 255.255.255.255

PE1(config-if-Loopback 0)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# no switchport

PE1(config-if-GigabitEthernet 0/2)# ip address 172.168.10.1 255.255.255.0

PE1(config)# router ospf 10

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# exit

# 设备P1的配置。

P1> enable

P1# configure terminal

P1(config)# interface loopback 0

P1(config-if-Loopback 0)# ip address 172.168.0.4 255.255.255.255

P1(config-if-Loopback 0)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# no switchport

P1(config-if-GigabitEthernet 0/1)# ip address 172.168.10.2 255.255.255.0

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# no switchport

P1(config-if-GigabitEthernet 0/2)# ip address 172.168.20.1 255.255.255.0

P1(config-if-GigabitEthernet 0/2)# exit

P1(config)# router ospf 1

P1(config-router)# network 172.168.0.4 0.0.0.0 area 0

P1(config-router)# network 172.168.10.0 0.0.0.255 area 0

P1(config-router)# network 172.168.20.0 0.0.0.255 area 0

P1(config-router)# exit

# 设备P2的配置。

P2> enable

P2# configure terminal

P2(config)# interface loopback 0

P2(config-if-Loopback 0)# ip address 172.168.0.5 255.255.255.255

P2(config-if-Loopback 0)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# no switchport

P2(config-if-GigabitEthernet 0/1)# ip address 172.168.20.2 255.255.255.0

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# no switchport

P2(config-if-GigabitEthernet 0/2)# ip address 172.168.30.1 255.255.255.0

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# no switchport

P2(config-if-GigabitEthernet 0/3)# ip address 172.168.40.1 255.255.255.0

P2(config-if-GigabitEthernet 0/3)# exit

P2(config)# router ospf 1

P2(config-router)# network 172.168.0.5 0.0.0.0 area 0

P2(config-router)# network 172.168.20.0 0.0.0.255 area 0

P2(config-router)# network 172.168.30.0 0.0.0.255 area 0

P2(config-router)# network 172.168.40.0 0.0.0.255 area 0

P2(config-router)# exit

# 设备PE2的配置。

PE2> enable

PE2# configure terminal

PE2(config)# interface loopback 0

PE2(config-if-Loopback 0)# ip address 172.168.0.2 255.255.255.255

PE2(config-if-Loopback 0)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# no switchport

PE2(config-if-GigabitEthernet 0/2)# ip address 172.168.40.2 255.255.255.0

PE2(config-if-GigabitEthernet 0/2)# exit

PE2(config)# router ospf 10

PE2(config-router)# network 172.168.0.2 0.0.0.0 area 0

PE2(config-router)# network 172.168.40.0 0.0.0.255 area 0

PE2(config-router)# exit

# 设备PE3的配置。

PE3> enable

PE3# configure terminal

PE3(config)# interface loopback 0

PE3(config-if-Loopback 0)# ip address 172.168.0.3 255.255.255.255

PE3(config-if-Loopback 0)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# no switchport

PE3(config-if-GigabitEthernet 0/2)# ip address 172.168.30.2 255.255.255.0

PE3(config-if-GigabitEthernet 0/2)# exit

PE3(config)# router ospf 10

PE3(config-router)# network 172.168.0.3 0.0.0.0 area 0

PE3(config-router)# network 172.168.30.0 0.0.0.255 area 0

PE3(config-router)# exit

在MPLS骨干网各节点上配置MPLS转发能力和LDP协议,建立LDP LSP。

# 设备PE1的配置。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

# 设备P1的配置。

P1(config)# mpls ip

P1(config)# mpls router ldp

P1(config-mpls-router)# ldp router-id interface loopback 0 force

P1(config-mpls-router)# exit

P1(config)# interface gigabitethernet 0/1

P1(config-if-GigabitEthernet 0/1)# label-switching

P1(config-if-GigabitEthernet 0/1)# mpls ip

P1(config-if-GigabitEthernet 0/1)# exit

P1(config)# interface gigabitethernet 0/2

P1(config-if-GigabitEthernet 0/2)# label-switching

P1(config-if-GigabitEthernet 0/2)# mpls ip

P1(config-if-GigabitEthernet 0/2)# exit

# 设备P2的配置。

P2(config)# mpls ip

P2(config)# mpls router ldp

P2(config-mpls-router)# ldp router-id interface loopback 0 force

P2(config-mpls-router)# exit

P2(config)# interface gigabitethernet 0/1

P2(config-if-GigabitEthernet 0/1)# label-switching

P2(config-if-GigabitEthernet 0/1)# mpls ip

P2(config-if-GigabitEthernet 0/1)# exit

P2(config)# interface gigabitethernet 0/2

P2(config-if-GigabitEthernet 0/2)# label-switching

P2(config-if-GigabitEthernet 0/2)# mpls ip

P2(config-if-GigabitEthernet 0/2)# exit

P2(config)# interface gigabitethernet 0/3

P2(config-if-GigabitEthernet 0/3)# label-switching

P2(config-if-GigabitEthernet 0/3)# mpls ip

P2(config-if-GigabitEthernet 0/3)# exit

# 设备PE2的配置。

PE2(config)# mpls ip

PE2(config)# mpls router ldp

PE2(config-mpls-router)# ldp router-id interface loopback 0 force

PE2(config-mpls-router)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# label-switching

PE2(config-if-GigabitEthernet 0/2)# mpls ip

PE2(config-if-GigabitEthernet 0/2)# exit

# 设备PE3的配置。

PE3(config)# mpls ip

PE3(config)# mpls router ldp

PE3(config-mpls-router)# ldp router-id interface loopback 0 force

PE3(config-mpls-router)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# label-switching

PE3(config-if-GigabitEthernet 0/2)# mpls ip

PE3(config-if-GigabitEthernet 0/2)# exit

在各PE上配置VPN路由实例,定义RD值和RT值,并把VRF和对应的接口关联。

# 设备PE1的配置。

PE1(config)# ip vrf spoke1

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target export 1:200

PE1(config-vrf)# route-target import 1:100

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# no switchport

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding spoke1

PE1(config-if-GigabitEthernet 0/1)# ip address 192.168.100.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

# 设备PE2的配置。

PE2(config)# ip vrf from-spoke

PE2(config-vrf)# rd 1:100

PE2(config-vrf)# route-target import 1:300

PE2(config-vrf)# route-target import 1:200

PE2(config-vrf)# exit

PE2(config)# ip vrf from-hub

PE2(config-vrf)# rd 1:200

PE2(config-vrf)# route-target export 1:100

PE2(config-vrf)# exit

PE2(config)# interface gigabitethernet 0/1

PE2(config-if-GigabitEthernet 0/1)# no switchport

PE2(config-if-GigabitEthernet 0/1)# ip vrf forwarding from-hub

PE2(config-if-GigabitEthernet 0/1)# ip address 192.168.40.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/1)# exit

PE2(config)# interface gigabitethernet 0/3

PE2(config-if-GigabitEthernet 0/3)# no switchport

PE2(config-if-GigabitEthernet 0/3)# ip vrf forwarding from-spoke

PE2(config-if-GigabitEthernet 0/3)# ip address 192.168.30.1 255.255.255.0

PE2(config-if-GigabitEthernet 0/3)# exit

# 设备PE3的配置。

PE3(config)# ip vrf spoke2

PE3(config-vrf)# rd 1:100

PE3(config-vrf)# route-target export 1:300

PE3(config-vrf)# route-target import 1:100

PE3(config-vrf)# exit

PE3(config)# interface gigabitethernet 0/1

PE3(config-if-GigabitEthernet 0/1)# no switchport

PE3(config-if-GigabitEthernet 0/1)# ip vrf forwarding spoke2

PE3(config-if-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE3(config-if-GigabitEthernet 0/1)# exit

在各PE之间配置MP-IBGP邻居,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# neighbor 172.168.0.3 remote-as 1

PE1(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# neighbor 172.168.0.2 allowas-in

PE1(config-router-af)# neighbor 172.168.0.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

# 设备PE2的配置。

PE2(config)# router bgp 1

PE2(config-router)# neighbor 172.168.0.1 remote-as 1

PE2(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE2(config-router)# neighbor 172.168.0.3 remote-as 1

PE2(config-router)# neighbor 172.168.0.3 update-source loopback 0

PE2(config-router)# address-family vpnv4

PE2(config-router-af)# neighbor 172.168.0.1 activate

PE2(config-router-af)# neighbor 172.168.0.3 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# exit

# 设备PE3的配置。

PE3(config)# router bgp 1

PE3(config-router)# neighbor 172.168.0.1 remote-as 1

PE3(config-router)# neighbor 172.168.0.1 update-source loopback 0

PE3(config-router)# neighbor 172.168.0.2 remote-as 1

PE3(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE3(config-router)# address-family vpnv4

PE3(config-router-af)# neighbor 172.168.0.1 activate

PE3(config-router-af)# neighbor 172.168.0.2 activate

PE3(config-router-af)# neighbor 172.168.0.2 allowas-in

PE3(config-router-af)# exit-address-family

PE3(config-router)# exit

在各VPN-SITE与PE之间建立EBGP会话,传递VPN路由信息。

# 设备PE1的配置。

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf spoke1

PE1(config-router-af)# neighbor 192.168.100.2 remote-as 65004

PE1(config-router-af)# neighbor 192.168.100.2 activate

PE1(config-router-af)# neighbor 192.168.100.2 as-override

PE1(config-router-af)# exit-address-family

PE1(config-router)# end

# 设备PE2的配置。

PE2(config)# router bgp 1

PE2(config-router)# address-family ipv4 vrf from-spoke

PE2(config-router-af)# neighbor 192.168.30.2 remote-as 65004

PE2(config-router-af)# neighbor 192.168.30.2 activate

PE2(config-router-af)# neighbor 192.168.30.2 as-override

PE2(config-router-af)# exit-address-family

PE2(config-router)# address-family ipv4 vrf from-hub

PE2(config-router-af)# neighbor 192.168.40.2 remote-as 65004

PE2(config-router-af)# neighbor 192.168.40.2 activate

PE2(config-router-af)# neighbor 192.168.40.2 allows-in

PE2(config-router-af)# exit-address-family

PE2(config-router)# end

# 设备PE3的配置。

PE3(config)# router bgp 1

PE3(config-router)# address-family ipv4 vrf spoke2

PE3(config-router-af)# neighbor 192.168.10.2 remote-as 65004

PE3(config-router-af)# neighbor 192.168.10.2 activate

PE3(config-router-af)# neighbor 192.168.10.2 as-override

PE3(config-router-af)# exit-address-family

PE3(config-router)# end

# 设备VPNA-SITEA的配置。

VPNA-SITEA> enable

VPNA-SITEA# configure terminal

VPNA-SITEA(config)# interface gigabitethernet 0/1

VPNA-SITEA(config-if-GigabitEthernet 0/1)# ip address 192.168.100.2 255.255.255.0

VPNA-SITEA(config-if-GigabitEthernet 0/1)# exit

VPNA-SITEA(config)# router bgp 65004

VPNA-SITEA(config-router)# neighbor 192.168.100.1 remote-as 1

VPNA-SITEA(config-router)# neighbor 192.168.100.1 activate

VPNA-SITEA(config-router)# end

# 设备VPNA-SITEB的配置。

VPNA-SITEB> enable

VPNA-SITEB# configure terminal

VPNA-SITEB(config)# interface gigabitethernet 0/1

VPNA-SITEB(config-if-GigabitEthernet 0/1)# ip address 192.168.10.2 255.255.255.0

VPNA-SITEB(config-if-GigabitEthernet 0/1)# exit

VPNA-SITEB(config)# router bgp 65004

VPNA-SITEB(config-router)# neighbor 192.168.10.1 remote-as 1

VPNA-SITEB(config-router)# neighbor 192.168.10.1 activate

VPNA-SITEB(config-router)# end

# 设备VPNA-SITEC的配置。

VPNA-SITEC> enable

VPNA-SITEC# configure terminal

VPNA-SITEC(config)# interface gigabitethernet 0/1

VPNA-SITEC(config-if-GigabitEthernet 0/1)# ip address 192.168.40.2 255.255.255.0

VPNA-SITEC(config-if-GigabitEthernet 0/1)# exit

VPNA-SITEC(config)# interface gigabitethernet 0/2

VPNA-SITEC(config-if-GigabitEthernet 0/2)# ip address 192.168.30.2 255.255.255.0

VPNA-SITEC(config-if-GigabitEthernet 0/2)# exit

VPNA-SITEC(config)# router bgp 65004

VPNA-SITEC(config-router)# neighbor 192.168.30.1 remote-as 1

VPNA-SITEC(config-router)# neighbor 192.168.30.1 activate

VPNA-SITEC(config-router)# neighbor 192.168.40.1 remote-as 1

VPNA-SITEC(config-router)# neighbor 192.168.40.1 activate

VPNA-SITEC(config-router)# end

验证配置结果

配置完成后,使用Ping命令检测与其他站点的连通性,使用traceroute命令逐跳跟踪经过的设备。

PE1能Ping通PE2和PE3。

PE2能Ping通PE1和PE3。

PE3能Ping通PE1和PE2。

VPNA-SITEA能Ping通VPNA-SITEB站点,traceroute跟踪到VPNA-STIEB的流量经过VPNA-SITEC。

VPNA-SITEB能Ping通VPNA-SITEA站点,traceroute跟踪到VPNA-STIEA的流量经过VPNA-SITEC。

VPNA-SITEC能Ping通VPNA-SITEA和VPNA-SITEB站点。

配置文件

PE1的配置文件

hostname PE1

!

ip vrf spoke1

rd 1:100

route-target export 1:200

route-target import 1:100

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding spoke1

ip address 192.168.100.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.10.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

neighbor 172.168.0.2 allowas-in

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf spoke1

neighbor 192.168.100.2 remote-as 65004

neighbor 192.168.100.2 activate

neighbor 192.168.100.2 as-override

exit-address-family

!

router ospf 10

network 172.168.0.1 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P1的配置文件

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.4 255.255.255.255

!

router ospf 1

network 172.168.0.4 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

P2的配置文件

hostname P2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.20.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.30.1 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip address 172.168.40.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.5 255.255.255.255

!

router ospf 1

network 172.168.0.5 0.0.0.0 area 0

network 172.168.20.0 0.0.0.255 area 0

network 172.168.30.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE2的配置文件

hostname PE2

!

ip vrf from-hub

rd 1:200

route-target export 1:100

!

ip vrf from-spoke

rd 1:100

route-target import 1:300

route-target import 1:200

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding from-hub

ip address 192.168.40.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/3

no switchport

ip vrf forwarding from-spoke

ip address 192.168.30.1 255.255.255.0

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.3 remote-as 1

neighbor 172.168.0.3 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.3 activate

exit-address-family

!

address-family ipv4 vrf from-spoke

neighbor 192.168.30.2 remote-as 65004

neighbor 192.168.30.2 activate

neighbor 192.168.30.2 as-override

exit-address-family

!

address-family ipv4 vrf from-hub

neighbor 192.168.40.2 remote-as 65004

neighbor 192.168.40.2 activate

neighbor 192.168.40.2 allowas-in

exit-address-family

!

router ospf 10

network 172.168.0.2 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE3的配置文件

hostname PE3

!

ip vrf spoke2

rd 1:100

route-target export 1:300

route-target import 1:100

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding spoke2

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.30.2 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

neighbor 172.168.0.2 activate

neighbor 172.168.0.2 allowas-in

exit-address-family

!

address-family ipv4 vrf spoke2

neighbor 192.168.10.2 remote-as 65004

neighbor 192.168.10.2 activate

neighbor 192.168.10.2 as-override

exit-address-family

!

router ospf 10

network 172.168.0.3 0.0.0.0 area 0

network 172.168.30.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

VPN-SITEA的配置文件

hostname VPN-SITEA

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.100.2 255.255.255.0

!

router bgp 65004

neighbor 192.168.100.1 remote-as 1

address-family ipv4

neighbor 192.168.100.1 activate

exit-address-family

!

VPNA-SITEB的配置文件

hostname VPNA-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.10.2 255.255.255.0

!

router bgp 65004

neighbor 192.168.10.1 remote-as 1

address-family ipv4

neighbor 192.168.10.1 activate

exit-address-family

!

VPNA-SITEC的配置文件

hostname VPNA-SITEC

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.40.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.30.2 255.255.255.0

!

router bgp 65004

neighbor 192.168.30.1 remote-as 1

neighbor 192.168.40.1 remote-as 1

address-family ipv4

neighbor 192.168.30.1 activate

neighbor 192.168.40.1 activate

exit-address-family

!

常见错误

Router-ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(Internet统一出口集中控制隔离方式)配置举例

组网需求

要求:多个VPN之间不能互访,但是这些VPN需要通过一台统一的设备上Internet。VPN1和VPN2都需要通过PE1访问internet,但是VPN1和VPN2之间不允许互访。

当采用集中方式控制隔离时,对于后续新增VPN站点需要通过统一出口访问internet时,只需在出口CE处新增过滤规则,其它VPN站点不需要更改配置,也即可扩展性好。缺点就是需要隔离的流量只有到达出口CE时才能丢弃,浪费了网络带宽。

组网图

Internet统一出口集中控制隔离方式配置组网图

image.png

配置要点

在PE2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置和CE2使用OSPF交互路由,配置和PE1建立IBGP邻居,分发IP路由。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在CE2上配置和PE2相连接口IP地址,配置和PE2使用OSPF交互路由。

在PE3上配置Loopback接口,创建VRF VPN2,指定VPN2的export和import rt为1:200,定义RD值和RT值,并把VRF和对应的接口关联。配置和CE3使用OSPF交互路由,配置和PE1建立IBGP邻居,分发IP路由。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE1上配置Loopback接口,创建Trunk接口,创建VRF vrf_out,定义RD值和RT值,并把VRF和对应的接口关联。配置默认路由通往Internet,创建VRF vrf_in,定义RD值和RT值,并把VRF和对应的接口关联。配置使用EBGP和CE1交互路由,配置和PE2、PE3建立IBGP邻居,配置VRF vrf_out路由交互功能。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在CE1上创建三层以太网子接口,配置和PE1建立EBGP邻居,创建ACL规则,在三层以太网子接口GigabitEthernet0/1.1配置ACl规则。

注意

在连接PE1和CE1时,本例使用了SVI接口和802.1Q子接口的配置,有些设备可能不支持。实际上,只要PE1与CE1能够形成两个路由邻接,PE1与CE1之间可以通过任意两条链路相连,既可以是物理链路,也可以是逻辑链路。因此,用户可以根据实际情况选择合适的连接方式。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE和CE设备配置类似,以下以PE1设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 59.10.11.0 0.0.0.255 area 0

PE1(config-router)# network 59.10.10.0 0.0.0.255 area 0

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1(config-router)# exit

配置MPLS基本功能。

# PE设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config-router)# exit

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/3

PE1(config-if-GigabitEthernet 0/3)# ip address 59.10.11.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/3)# label-switching

PE1(config-if-GigabitEthernet 0/3)# mpls ip

PE1(config-if-GigabitEthernet 0/3)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# ip address 59.10.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

创建VRF与VLAN,并进行关联。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf vrf_in

PE1(config-vrf)# rd 1:400

PE1(config-vrf)# route-target import 1:100

PE1(config-vrf)# route-target import 1:200

PE1(config-vrf)# exit

PE1(config)# ip vrf vrf_out

PE1(config-vrf)# rd 1:300

PE1(config-vrf)# route-target export 1:100

PE1(config-vrf)# route-target export 1:200

PE1(config-vrf)# exit

PE1(config)# interface vlan 10

PE1(config-if-Vlan 10)# ip vrf forwarding vrf_in

PE1(config-if-Vlan 10)# ip address 30.10.10.1 255.255.255.0

PE1(config-if-Vlan 10)# exit

PE1(config)# interface vlan 20

PE1(config-if-Vlan 20)# ip vrf forwarding vrf_out

PE1(config-if-Vlan 20)# ip address 20.10.10.1 255.255.255.0

PE1(config-if-Vlan 20)# exit

建立BGP邻居,发布VPN路由。

# PE1和CE1建立EBGP邻居。

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf vrf_in

PE1(config-router-af)# neighbor 30.10.10.2 remote-as 100

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

# CE1和PE1建立EBGP邻居。

CE1(config)# router bgp 100

CE1(config-router)# neighbor 30.10.10.1 remote-as 1

CE1(config-router)# exit

# PE1和PE2、PE3建立IBGP邻居,发布VPN路由。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 2.2.2.2 remote-as 1

PE1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 2.2.2.2 activate

PE1(config-router-af)# neighbor 3.3.3.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf vrf_out

PE1(config-router-af)# default-information originate

PE1(config-router-af)# redistribute static

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

验证配置结果

配置完成后,使用show ip route命令查看存在路由。

# 设备PE1的验证结果。

PE1# show ip route vrf vrf_out

Routing Table: vrf_out

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 20.10.10.2 to network 0.0.0.0

S*   0.0.0.0/0 [1/0] via 20.10.10.2, VLAN 20

C    20.10.10.0/24 is directly connected, VLAN 20

C    20.10.10.1/32 is local host.

PE1# show ip route vrf vrf_in

Routing Table: vrf_in

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 20.10.10.2 to network 0.0.0.0

B*   0.0.0.0/0 [20/0] via 20.10.10.2, 01:12:21

B    17.10.0.1/32 [200/1] via 3.3.3.3, 00:04:26

B    17.11.0.1/32 [200/1] via 2.2.2.2, 00:26:00

C    30.10.10.0/24 is directly connected, VLAN 10

C    30.10.10.1/32 is local host.

B    191.10.10.0/24 [200/1] via 2.2.2.2, 00:26:00

B    192.10.10.0/24 [200/1] via 3.3.3.3, 00:36:05

# 设备CE1的验证结果。

CE1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 30.10.10.1 to network 0.0.0.0

B*   0.0.0.0/0 [20/0] via 30.10.10.1, 01:07:22

B    17.10.0.1/32 [20/0] via 30.10.10.1, 00:01:33

B    17.11.0.1/32 [20/0] via 30.10.10.1, 00:23:14

C    20.10.10.0/24 is directly connected, GigabitEthernet 0/1.2

C    20.10.10.2/32 is local host.

C    30.10.10.0/24 is directly connected, GigabitEthernet 0/1.1

C    30.10.10.2/32 is local host.

B    191.10.10.0/24 [20/0] via 30.10.10.1, 00:23:14

B    192.10.10.0/24 [20/0] via 30.10.10.1, 00:33:19

# 设备CE2的验证结果。

CE2# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 191.10.10.2 to network 0.0.0.0

O*E2 0.0.0.0/0 [110/1] via 191.10.10.2, 00:08:11, GigabitEthernet 0/2

C    17.11.0.0/24 is directly connected, Loopback 0

C    17.11.0.1/32 is local host.

C    191.10.10.0/24 is directly connected, GigabitEthernet 0/2

C    191.10.10.1/32 is local host.

# 设备CE3的验证结果。

CE3# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 192.10.10.2 to network 0.0.0.0

O*E2 0.0.0.0/0 [110/1] via 192.10.10.2, 00:31:48, GigabitEthernet 0/2

C    17.10.0.0/24 is directly connected, Loopback 0

C    17.10.0.1/32 is local host.

C    192.10.10.0/24 is directly connected, GigabitEthernet 0/2

C    192.10.10.1/32 is local host.

配置完成后,使用Ping命令检测与其他站点的连通性。

# PE2能Ping通PE1和PE3。

# CE2能Ping通CE1,但不能Ping通CE3。

# PE3能Ping通PE1和PE2。

# CE3能Ping通CE1,但不能Ping通CE2。

# PE1能Ping通PE2和PE3。

# CE1能Ping通CE2和CE3。

配置文件

CE1的配置文件

hostname CE1

!

ip access-list standard 1

10 deny 17.0.0.0 0.255.255.255

20 permit any

!

interface GigabitEthernet 0/1.1

encapsulation dot1Q 10

ip access-group 1 out

ip address 30.10.10.2 255.255.255.0

!

interface GigabitEthernet 0/1.2

encapsulation dot1Q 20

ip address 20.10.10.2 255.255.255.0

!

router bgp 100

neighbor 30.10.10.1 remote-as 1

!

address-family ipv4

neighbor 30.10.10.1 activate

exit-address-family

!

PE1的配置文件

hostname PE1

!

mpls ip

!

ip vrf vrf_in

rd 1:400

route-target import 1:200

route-target import 1:100

!

ip vrf vrf_out

rd 1:300

route-target export 1:200

route-target export 1:100

!

vlan 10

!

vlan 20

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 59.10.11.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/4

switchport mode trunk

switchport trunk allowed vlan remove 1-9,11-19,21-4094

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

interface VLAN 10

ip vrf forwarding vrf_in

ip address 30.10.10.1 255.255.255.0

!

interface VLAN 20

ip vrf forwarding vrf_out

ip address 20.10.10.1 255.255.255.0

!

router bgp 1

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 update-source Loopback 0

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 2.2.2.2 activate

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf vrf_out

default-information originate

redistribute static

exit-address-family

!

address-family ipv4 vrf vrf_in

neighbor 30.10.10.2 remote-as 100

neighbor 30.10.10.2 activate

exit-address-family

!

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 59.10.10.0 0.0.0.255 area 0

network 59.10.11.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ip route vrf vrf_out 0.0.0.0 0.0.0.0 VLAN 20 20.10.10.2

!

PE2的配置文件

hostname PE2

!

mpls ip

!

ip vrf VPN2

rd 1:200

route-target both 1:200

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.11.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

ip vrf forwarding VPN2

ip address 191.10.10.2 255.255.255.0

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 59.10.11.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN2

redistribute bgp subnets

network 191.10.10.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE3的配置文件

hostname PE3

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

ip vrf forwarding VPN1

ip address 192.10.10.2 255.255.255.0

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 3.3.3.3 0.0.0.0 area 0

network 59.10.10.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN2

redistribute bgp subnets

network 192.10.10.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

CE2的配置文件

hostname CE2

!

interface GigabitEthernet 0/2

no switchport

ip address 191.10.10.1 255.255.255.0

!

interface Loopback 0

ip address 17.11.0.1 255.255.255.0

!

router ospf 1

network 17.11.0.0 0.0.0.255 area 0

network 191.10.10.0 0.0.0.255 area 0

!

CE3的配置文件

hostname CE3

!

interface GigabitEthernet 0/2

no switchport

ip address 192.10.10.1 255.255.255.0

!

interface Loopback 0

ip address 17.10.0.1 255.255.255.0

!

router ospf 1

network 17.10.0.0 0.0.0.255 area 0

network 192.10.10.0 0.0.0.255 area 0

!

常见错误

Router ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(Internet统一出口分布式控制隔离方式)配置举例

组网需求

多个VPN之间不能互访,但是这些VPN需要通过一台统一的设备上Internet。VPN1和VPN2都需要通过PE1访问Internet,但是VPN1和VPN2之间不允许互访。

当采用分布式控制隔离时,后续新增VPN站点需要通过统一出口访问Internet时,原有通过统一出口访问Internet的每个VPN站点的CE都需要增加过滤规则,也即可扩展性差。优点是需要隔离的流量在VPN站点的CE处即可完成丢弃,节省网络带宽。

组网图

Internet统一出口分布式控制隔离方式配置组网图

image.png

配置要点

在PE1上配置Loopback接口,创建VRF vrf_net,定义RD值和RT值,并把VRF和对应的接口关联。配置默认路由通往Internet,配置使用EBGP和CE1交互,配置和PE2、PE3建立IBGP邻居,配置VRF vrf_net路由交互功能。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在CE1上配置和PE1建立EBGP邻居。

在PE2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置和CE2使用OSPF交互路由,配置和PE1建立IBGP邻居,分发IP路由。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在CE2上创建ACL规则,在三层以太网子接口上配置ACl规则应用。配置和PE2路由交互,配置静态默认路由。

在PE3上配置Loopback接口,创建VRF VPN2,指定VPN2的导出和导入属性值为1:200,定义RD值和RT值,并把VRF和对应的接口关联。配置和CE3使用OSPF交互路由,配置和PE1建立IBGP邻居,分发IP路由。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在CE3上创建ACL规则,在三层以太网子接口上配置ACl规则应用。配置和PE3路由交互,配置静态默认路由。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE和CE设备配置类似,以下以PE1设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 59.10.11.0 0.0.0.255 area 0

PE1(config-router)# network 59.10.10.0 0.0.0.255 area 0

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

配置MPLS基本功能。

# PE设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/3

PE1(config-if-GigabitEthernet 0/3)# ip address 59.10.11.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/3)# label-switching

PE1(config-if-GigabitEthernet 0/3)# mpls ip

PE1(config-if-GigabitEthernet 0/3)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# ip address 59.10.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf vrf_net

PE1(config-vrf)# rd 1:300

PE1(config-vrf)# route-target import 1:100

PE1(config-vrf)# route-target import 1:200

PE1(config-vrf)# route-target export 1:100

PE1(config-vrf)# route-target export 1:200

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/4

PE1(config-if-GigabitEthernet 0/4)# no switchport

PE1(config-if-GigabitEthernet 0/4)# ip vrf forwarding vrf_net

PE1(config-if-GigabitEthernet 0/4)# ip address 20.10.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/4)# exit

建立BGP邻居,发布VPN路由。

# PE1和CE1建立EBGP邻居,发布VPN路由。

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf vrf_net

PE1(config-router-af)# neighbor 20.10.10.2 remote-as 100

PE1(config-router-af)# default-information originate

PE1(config-router-af)# redistribute static

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

# CE1和PE1建立EBGP邻居。

CE1(config)# router bgp 100

CE1(config-router)# neighbor 20.10.10.1 remote-as 1

CE1(config-router)# exit

# PE1和PE2、PE3建立IBGP邻居。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 2.2.2.2 remote-as 1

PE1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 2.2.2.2 activate

PE1(config-router-af)# neighbor 3.3.3.3 activate

# 设备CE1的配置。

CE1> enable

CE1(config)# interface gigabitethernet 0/1

CE1(config-if-GigabitEthernet 0/1)# ip address 20.10.10.2 255.255.255.0

CE1(config-if-GigabitEthernet 0/1)# exit

CE1(config)# router bgp 100

CE1(config-router)# neighbor 20.10.10.1 remote-as 1

# 设备PE1的配置。

PE1> enable

PE1# configure terminal

PE1(config)# interface loopback 0

PE1(config-if-Loopback 0)# ip address 1.1.1.1 255.255.255.255

PE1(config-if-Loopback 0)# exit

PE1(config)# ip vrf vrf_net

PE1(config-vrf)# rd 1:300

PE1(config-vrf)# route-target import 1:100

PE1(config-vrf)# route-target import 1:200

PE1(config-vrf)# route-target export 1:100

PE1(config-vrf)# route-target export 1:200

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/4

PE1(config-if-GigabitEthernet 0/4)# no switchport

PE1(config-if-GigabitEthernet 0/4)# ip vrf forwarding vrf_net

PE1(config-if-GigabitEthernet 0/4)# ip address 20.10.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/4)# exit

PE1(config)# ip route vrf vrf_net 0.0.0.0 0.0.0.0 GigabitEthernet 0/4 20.10.10.2

PE1(config)# router bgp 1

PE1(config-router)# address-family ipv4 vrf vrf_net

PE1(config-router-af)# neighbor 20.10.10.2 remote-as 100

PE1(config-router-af)# exit-address-family

PE1(config-router)# neighbor 2.2.2.2 remote-as 1

PE1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 2.2.2.2 activate

PE1(config-router-af)# neighbor 3.3.3.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf vrf_net

PE1(config-router-af)# default-information originate

PE1(config-router-af)# redistribute static

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/3

PE1(config-if-GigabitEthernet 0/3)# ip address 59.10.11.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/3)# label-switching

PE1(config-if-GigabitEthernet 0/3)# mpls ip

PE1(config-if-GigabitEthernet 0/3)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# ip address 59.10.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# exit

PE1(config)# router ospf 1

PE1(config-router)# network 59.10.11.0 0.0.0.255 area 0

PE1(config-router)# network 59.10.10.0 0.0.0.255 area 0

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

# 设备PE2的配置。

PE2> enable

PE2# configure terminal

PE2(config)# interface loopback 0

PE2(config-if-Loopback 0)# ip address 2.2.2.2 255.255.255.255

PE2(config-if-Loopback 0)# exit

PE2(config)# ip vrf VPN1

PE2(config-vrf)# rd 1:100

PE2(config-vrf)# route-target both 1:100

PE2(config-vrf)# exit

PE2(config)# interface gigabitethernet 0/3

PE2(config-if-GigabitEthernet 0/3)# ip vrf forwarding VPN1

PE2(config-if-GigabitEthernet 0/3)# ip address 191.10.10.2 255.255.255.0

PE2(config-if-GigabitEthernet 0/3)# exit

PE2(config)# router ospf 10 vrf VPN1

PE2(config-router)# network 191.10.10.0 0.0.0.255 area 0

PE2(config-router)# default-information originate

PE2(config-router)# redistribute bgp subnets

PE2(config-router)# exit

PE2(config)# router bgp 1

PE2(config-router)# neighbor 1.1.1.1 remote-as 1

PE2(config-router)# neighbor 1.1.1.1 update-source loopback 0

PE2(config-router)# address-family vpnv4

PE2(config-router-af)# neighbor 1.1.1.1 activate

PE2(config-router-af)# exit-address-family

PE2(config-router)# address-family ipv4 vrf VPN1

PE2(config-router-af)# redistribute ospf 10

PE2(config-router-af)# exit-address-family

PE2(config-router)# exit

PE2(config)# mpls ip

PE2(config)# mpls router ldp

PE2(config-mpls-router)# ldp router-id interface loopback 0 force

PE2(config-mpls-router)# exit

PE2(config)# interface gigabitethernet 0/2

PE2(config-if-GigabitEthernet 0/2)# ip address 59.10.11.2 255.255.255.0

PE2(config-if-GigabitEthernet 0/2)# label-switching

PE2(config-if-GigabitEthernet 0/2)# mpls ip

PE2(config-if-GigabitEthernet 0/2)# exit

PE2(config)# router ospf 1

PE2(config-router)# network 59.10.11.0 0.0.0.255 area 0

PE2(config-router)# network 2.2.2.2 0.0.0.0 area 0

# 设备PE3的配置。

PE3> enable

PE3# configure terminal

PE3(config)# interface loopback 0

PE3(config-if-Loopback 0)# ip address 3.3.3.3 255.255.255.255

PE3(config-if-Loopback 0)# exit

PE3(config)# ip vrf VPN1

PE3(config-vrf)# rd 1:200

PE3(config-vrf)# route-target both 1:200

PE3(config-vrf)# exit

PE3(config)# interface gigabitethernet 0/3

PE3(config-if-GigabitEthernet 0/3)# ip vrf forwarding VPN1

PE3(config-if-GigabitEthernet 0/3)# ip address 192.10.10.2 255.255.255.0

PE3(config-if-GigabitEthernet 0/3)# exit

PE3(config)# router ospf 10 vrf VPN1

PE3(config-router)# network 192.10.10.0 0.0.0.255 area 0

PE3(config-router)# default-information originate

PE3(config-router)# redistribute bgp subnets

PE3(config-router)# exit

PE3(config)# router bgp 1

PE3(config-router)# neighbor 1.1.1.1 remote-as 1

PE3(config-router)# neighbor 1.1.1.1 update-source loopback 0

PE3(config-router)# address-family vpnv4

PE3(config-router-af)# neighbor 1.1.1.1 activate

PE3(config-router-af)# exit-address-family

PE3(config-router)# address-family ipv4 vrf VPN1

PE3(config-router-af)# redistribute ospf 10

PE3(config-router-af)# exit-address-family

PE3(config-router)# exit

PE3(config)# mpls ip

PE3(config)# mpls router ldp

PE3(config-mpls-router)# ldp router-id interface loopback 0 force

PE3(config-mpls-router)# exit

PE3(config)# interface gigabitethernet 0/2

PE3(config-if-GigabitEthernet 0/2)# ip address 59.10.10.2 255.255.255.0

PE3(config-if-GigabitEthernet 0/2)# label-switching

PE3(config-if-GigabitEthernet 0/2)# mpls ip

PE3(config-if-GigabitEthernet 0/2)# exit

PE3(config)# router ospf 1

PE3(config-router)# network 59.10.10.0 0.0.0.255 area 0

PE3(config-router)# network 3.3.3.3 0.0.0.0 area 0

# 设备CE2的配置。

CE2> enable

CE2# configure terminal

CE2(config)# access-list 2000 deny ip any 17.11.0.0 0.0.255.255

CE2(config)# access-list 2000 permit ip any any

CE2(config)# interface gigabitethernet 0/1

CE2(config-if-GigabitEthernet 0/1)# ip access-group 2000 out

CE2(config-if-GigabitEthernet 0/1)# exit

CE2(config)# router ospf 1

CE2(config-router)# network 191.10.10.0 0.0.0.255 area 0

CE2(config-router)# network 17.11.0.0 0.0.0.255 area 0

设备CE3的配置。

CE3> enable

CE3# configure terminal

CE3(config)# access-list 2000 deny ip any 17.10.0.0 0.0.255.255

CE3(config)# access-list 2000 permit ip any any

CE3(config)# interface gigabitethernet 0/1

CE3(config-if-GigabitEthernet 0/1)# ip access-group 2000 out

CE3(config-if-GigabitEthernet 0/1)# exit

CE3(config)# router ospf 1

CE3(config-router)# network 192.10.10.0 0.0.0.255 area 0

CE3(config-router)# network 17.10.0.0 0.0.0.255 area 0

验证配置结果

配置完成后,使用show ip route命令查看存在路由。

# 设备CE1的验证结果。

CE1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 20.10.10.1 to network 0.0.0.0

B*   0.0.0.0/0 [20/0] via 20.10.10.1, 00:01:14

B    17.10.0.1/32 [20/0] via 20.10.10.1, 00:01:46

B    17.11.0.1/32 [20/0] via 20.10.10.1, 00:02:10

C    20.10.10.0/24 is directly connected, GigabitEthernet 0/1

C    20.10.10.2/32 is local host.

B    191.10.10.0/24 [20/0] via 20.10.10.1, 00:02:10

B    192.10.10.0/24 [20/0] via 20.10.10.1, 00:01:46

# 设备PE1的验证结果。

PE1# show ip route vrf vrf_net

Routing Table: vrf_net

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 20.10.10.2 to network 0.0.0.0

S*   0.0.0.0/0 [1/0] via 20.10.10.2, GigabitEthernet 0/4

B    17.10.0.1/32 [200/1] via 3.3.3.3, 00:01:42

B    17.11.0.1/32 [200/1] via 2.2.2.2, 00:01:47

C    20.10.10.0/24 is directly connected, GigabitEthernet 0/4

C    20.10.10.1/32 is local host.

B    191.10.10.0/24 [200/1] via 2.2.2.2, 00:01:47

B    192.10.10.0/24 [200/1] via 3.3.3.3, 00:01:42

PE1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 59.10.11.2, 03:59:18, GigabitEthernet 0/3

O    3.3.3.3/32 [110/1] via 59.10.10.2, 03:46:02, GigabitEthernet 0/2

C    59.10.10.0/24 is directly connected, GigabitEthernet 0/3

C    59.10.10.1/32 is local host.

C    59.10.11.0/24 is directly connected, GigabitEthernet 0/2

C    59.10.11.1/32 is local host.

配置完成后,使用Ping命令检验是否与其他站点的连通性。

# PE1能Ping通PE2和PE3。

# CE1能Ping通CE2和CE3。

# PE2能Ping通PE1和PE3。

# CE2能Ping通CE1,但不能Ping通CE3。

# PE3能Ping通PE1和PE2。

# CE3能Ping通CE1,但不能Ping通CE2。

配置文件

CE1的配置文件

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ip address 20.10.10.2 255.255.255.0

!

router bgp 100

neighbor 20.10.10.1 remote-as 1

!

address-family ipv4

neighbor 20.10.10.1 activate

exit-address-family

!

PE1的配置文件

hostname PE1

!

mpls ip

!

ip vrf vrf_net

rd 1:300

route-target both 1:100

route-target both 1:200

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 59.10.11.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/4

no switchport

ip vrf forwarding vrf_net

ip address 20.10.10.1 255.255.255.0

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 update-source Loopback 0

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 2.2.2.2 activate

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf vrf_net

default-information originate

redistribute static

neighbor 20.10.10.2 remote-as 100

neighbor 20.10.10.2 activate

exit-address-family

!

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 59.10.10.0 0.0.0.255 area 0

network 59.10.11.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ip route vrf vrf_net 0.0.0.0 0.0.0.0 GigabitEthernet 0/4 20.10.10.2

!

PE2的配置文件

hostname PE2

!

mpls ip

!

ip vrf VPN2

rd 1:200

route-target both 1:200

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.11.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

ip vrf forwarding VPN2

ip address 191.10.10.2 255.255.255.0

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 59.10.11.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN2

redistribute bgp subnets

network 191.10.10.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

PE3的配置文件

hostname PE3

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/2

no switchport

ip address 59.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

ip vrf forwarding VPN1

ip address 192.10.10.2 255.255.255.0

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 3.3.3.3 0.0.0.0 area 0

network 59.10.10.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN2

redistribute bgp subnets

network 192.10.10.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

CE2的配置文件

hostname CE2

!

access-list 2000 deny ip any 17.11.0.0 0.0.255.255

access-list 2000 permit ip any any

!

interface GigabitEthernet 0/1

no switchport

ip access-group 2000 out

ip address 191.10.10.1 255.255.255.0

!

interface Loopback 0

ip address 17.11.0.1 255.255.255.0

!

router ospf 1

network 17.11.0.0 0.0.0.255 area 0

network 191.10.10.0 0.0.0.255 area 0

!

CE3的配置文件

hostname CE3

!

access-list 2000 deny ip any 17.10.0.0 0.0.255.255

access-list 2000 permit ip any any

!

interface GigabitEthernet 0/1

no switchport

ip access-group 2000 out

ip address 192.10.10.1 255.255.255.0

!

interface Loopback 0

ip address 17.10.0.1 255.255.255.0

!

router ospf 1

network 17.10.0.0 0.0.0.255 area 0

network 192.10.10.0 0.0.0.255 area 0

!

常见错误

Router ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(多角色主机)配置举例

组网需求

一般而言,某一VPN站点的主机只能访问同一VPN的其他主机,但对于某些主机来说,需要能够访问多个VPN,此类型主机称为多角色主机。如图1-20所示,PC1和PC2属于VPN1下某一站点的主机,但PC2是作为一个多角色主机,它需要能够访问VPN1和VPN2站点的主机,而PC1只能访问VPN1站点的主机。

组网图

多角色主机配置组网图

image.png

配置要点

配置MPLS骨干网络。

配置MPLS L3VPN网络。

配置一个多角色主机访问VPN(VPN1和VPN2)的VRF VPN_MR,并公告多角色主机的路由给其他VPN。

配置策略路由将多角色主机的访问报文重定位到VPN_MR的VRF中。

在CE1上配置一条默认路由。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# 所有设备配置类似,以下以PE1设备为例建立OSPF邻居。

PE1(config)# router ospf 1

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0

PE1(config-router)# exit

配置MPLS基本功能。

# PE设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# exit

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPN1

PE1(config-vrf)# rd 100:1

PE1(config-vrf)# route-target both 100:1

PE1(config-vrf)# exit

PE1(config)# ip vrf VPN_MR

PE1(config-vrf)# rd 200:1

PE1(config-vrf)# route-target export 100:2

PE1(config-vrf)# route-target import 100:1

PE1(config-vrf)# route-target import 100:2

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN1

PE1(config-if-GigabitEthernet 0/1)# ip address 10.1.1.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

配置VPN路由。

# PE1和PE2设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPN1

PE1(config-router)# network 10.1.1.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

PE1(config)# ip route vrf VPN_MR 100.1.1.3 255.255.255.255 gigabitethernet 0/1

建立IBGP邻居,发布VPN路由。

# PE1和PE2设备配置类似,以下以PE1设备为例建立IBGP邻居。

PE1(config)# router bgp 100

PE1(config-router)# neighbor 2.2.2.2 remote-as 100

PE1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 2.2.2.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN1

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN_MR

PE1(config-router-af)# redistribute static

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

配置策略路由。

# PE1配置策略路由。

PE1(config)# ip access-list standard VRF_ACL

PE1(config-std-nacl)# permit host 100.1.1.3

PE1(config-std-nacl)# deny any

PE1(config-std-nacl)# exit

PE1(config)# route-map VRF_MAP permit 10

PE1(config-route-map)# match ip address VRF_ACL

PE1(config-route-map)# set vrf VPN_MR

PE1(config-route-map)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# ip policy route-map VRF_MAP

验证配置结果

配置完成后,使用show ip route命令查看VPN路由。

# 设备CE1的验证结果。

CE1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 10.1.1.1 to network 0.0.0.0

S*   0.0.0.0/0 [1/0] via 10.1.1.1, GigabitEthernet 0/1

C    10.1.1.0/24 is directly connected, GigabitEthernet 0/1

C    10.1.1.2/32 is local host.

O IA 10.1.2.0/24 [110/2] via 10.1.1.1, 00:08:59, GigabitEthernet 0/1

C    10.10.10.10/32 is local host.

O IA 20.20.20.20/32 [110/2] via 10.1.1.1, 00:08:59, GigabitEthernet 0/1

C    100.1.1.0/24 is directly connected, GigabitEthernet 0/2

C    100.1.1.1/32 is local host.

# 设备PE1的验证结果。

PE1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 192.168.1.2, 00:59:23, GigabitEthernet 0/2

C    192.168.1.0/24 is directly connected, GigabitEthernet 0/2

C    192.168.1.1/32 is local host.

PE1# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    10.1.1.0/24 is directly connected, GigabitEthernet 0/1

C    10.1.1.1/32 is local host.

B    10.1.2.0/24 [200/1] via 2.2.2.2, 00:43:04

O    10.10.10.10/32 [110/1] via 10.1.1.2, 00:07:53, GigabitEthernet 0/1

B    20.20.20.20/32 [200/1] via 2.2.2.2, 00:43:04

O    100.1.1.0/24 [110/2] via 10.1.1.2, 00:06:04, GigabitEthernet 0/1

PE1# show ip route vrf VPN_MR

Routing Table: VPN_MR

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B    10.1.1.0/24 [20/1] via 0.0.0.0, 00:09:02, GigabitEthernet 0/1

B    10.1.2.0/24 [200/1] via 2.2.2.2, 00:38:34

B    10.1.3.0/24 [200/1] via 2.2.2.2, 00:38:34

B    10.10.10.10/32 [20/1] via 10.1.1.2, 00:08:05

B    20.20.20.20/32 [200/1] via 2.2.2.2, 00:38:34

B    30.30.30.30/32 [200/1] via 2.2.2.2, 00:38:34

B    100.1.1.0/24 [20/2] via 10.1.1.2, 00:06:16

S    100.1.1.3/32 [1/0] via 10.1.1.2, GigabitEthernet 0/1

# 设备PE2的验证结果。

PE2# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

O    1.1.1.1/32 [110/1] via 192.168.1.1, 01:05:36, GigabitEthernet 0/3

C    2.2.2.2/32 is local host.

C    192.168.1.0/24 is directly connected, GigabitEthernet 0/3

C    192.168.1.2/32 is local host.

PE2# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B    10.1.1.0/24 [200/1] via 1.1.1.1, 00:09:25

C    10.1.2.0/24 is directly connected, GigabitEthernet 0/1

C    10.1.2.1/32 is local host.

B    10.10.10.10/32 [200/1] via 1.1.1.1, 00:08:28

O    20.20.20.20/32 [110/1] via 10.1.2.2, 00:51:18, GigabitEthernet 0/1

B    100.1.1.0/24 [200/2] via 1.1.1.1, 00:06:39

PE2# show ip route vrf VPN2

Routing Table: VPN2

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    10.1.3.0/24 is directly connected, GigabitEthernet 0/2

C    10.1.3.1/32 is local host.

O    30.30.30.30/32 [110/1] via 10.1.3.2, 00:50:57, GigabitEthernet 0/2

B    100.1.1.3/32 [200/0] via 1.1.1.1, 00:09:28

配置完成后,在PC1和PC2上使用Ping命令检测与其他站点的连通性。

# PC1可以Ping通20.20.20.20,但无法Ping通30.30.30.30。

PC1# ping 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/10 ms

PC1# ping 30.30.30.30

Sending 5, 100-byte ICMP Echoes to 30.30.30.30, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

# PC2可以Ping通20.20.20.20,也可以Ping通30.30.30.30。

PC2# ping 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/10 ms

PC2# ping 30.30.30.30

Sending 5, 100-byte ICMP Echoes to 30.30.30.30, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/10 ms

配置文件

# CE1的配置文件。

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.1.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 100.1.1.1 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router ospf 1

network 10.1.1.0 0.0.0.255 area 0

network 10.10.10.10 0.0.0.0 area 0

network 100.1.1.0 0.0.0.255 area 0

!

ip route 0.0.0.0 0.0.0.0 GigabitEthernet 0/1 10.1.1.1

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

route-map VRF_MAP permit 10

match ip address VRF_ACL

set vrf VPN_MR

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

ip vrf VPN_MR

rd 200:1

route-target both 100:2

route-target import 100:1

!

ip access-list standard VRF_ACL

10 permit host 100.1.1.3

20 deny any

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip policy route-map VRF_MAP

ip address 10.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.1.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 100

neighbor 2.2.2.2 remote-as 100

neighbor 2.2.2.2 update-source Loopback 0

!

address-family ipv4

neighbor 2.2.2.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10

exit-address-family

!

address-family ipv4 vrf VPN_MR

redistribute static

exit-address-family

!

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ip route vrf VPN_MR 100.1.1.3 255.255.255.255 GigabitEthernet 0/1 10.1.1.2

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPN1

rd 101:1

route-target both 100:1

!

ip vrf VPN2

rd 101:2

route-target both 100:2

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.1.2.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN2

ip address 10.1.3.1 255.255.255.0

!

interface GigabitEthernet 0/3

no switchport

ip address 192.168.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 100

neighbor 1.1.1.1 remote-as 100

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10 match internal

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute ospf 20 match internal

exit-address-family

!

router ospf 1

router-id 2.2.2.2

network 2.2.2.2 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.2.0 0.0.0.255 area 0

!

router ospf 20 vrf VPN2

redistribute bgp subnets

network 10.1.3.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2的配置文件。

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.2.2 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router ospf 1

network 10.1.2.0 0.0.0.255 area 0

network 20.20.20.20 0.0.0.0 area 0

!

# CE3的配置文件。

hostname CE3

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.3.2 255.255.255.0

!

interface Loopback 0

ip address 30.30.30.30 255.255.255.255

!

router ospf 1

network 10.1.3.0 0.0.0.255 area 0

network 30.30.30.30 0.0.0.0 area 0

!

常见错误

Router ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(基于MCE的分层VPN)配置举例

组网需求

采用MCE的组网方式将原有平面组网模型的MPLS L3VPN网络改建为分层组网模型。在MCE中保存所连接的VPN站点的路由和PE2所分发的默认路由,但不保存所有VPN站点的路由,因此对于容量及性能要求较低。而PE1和PE2需要保存所有VPN路由,因此对于容量及性能要求较高。

组网图

基于MCE的分层VPN配置组网图

image.png

配置要点

配置MPLS网络:在PE1和PE2上配置接口地址及OSPF协议,配置MPLS功能

配置MPLS L3VPN网络:在PE1、PE2、CE1和CE2上配置CE接入PE,在PE1和PE2上配置MP-IBGP。

配置MCE及其所接入的CE。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# 所有设备配置类似,以下以PE1设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0

PE1(config-router)# exit

配置MPLS基本功能。

# PE设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# interface gigabitethernet 0/3

PE1(config-if-GigabitEthernet 0/3)# mpls ip

PE1(config-if-GigabitEthernet 0/3)# label-switching

PE1(config-if-GigabitEthernet 0/3)# exit

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPN1

PE1(config-vrf)# rd 100:1

PE1(config-vrf)# route-target both 100:1

PE1(config-vrf)# exit

PE1(config)# ip vrf VPN2

PE1(config-vrf)# rd 100:2

PE1(config-vrf)# route-target both 100:2

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN1

PE1(config-if-GigabitEthernet 0/1)# ip address 10.1.1.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPN2

PE1(config-if-GigabitEthernet 0/2)# ip address 10.1.2.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/2)# exit

配置VPN路由。

# PE和MCE设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPN1

PE1(config-router)# network 10.1.1.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

PE1(config)# router ospf 20 vrf VPN2

PE1(config-router)# network 10.1.2.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

建立BGP邻居,发布VPN路由。

# PE1和PE2设备配置类似,以下以PE1设备为例建立IBGP邻居。

PE1(config)# router bgp 100

PE1(config-router)# neighbor 2.2.2.2 remote-as 100

PE1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 2.2.2.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN1

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN2

PE1(config-router-af)# redistribute ospf 20

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

配置默认路由。

# PE2设备配置默认路由。

PE2(config)# ip route vrf VPN1 0.0.0.0 0.0.0.0 null 0

PE2(config)# ip route vrf VPN2 0.0.0.0 0.0.0.0 null 0

验证配置结果

配置完成后,使用show ip route命令查看VPN路由。

# 设备MCE的验证结果。

MCE# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 10.1.3.1 to network 0.0.0.0

O*E2 0.0.0.0/0 [110/1] via 10.1.3.1, 00:38:35, GigabitEthernet 0/3.1

C    10.1.3.0/24 is directly connected, GigabitEthernet 0/3.1

C    10.1.3.2/32 is local host.

C    10.1.5.0/24 is directly connected, GigabitEthernet 0/1

C    10.1.5.0/42 is local host.

O    30.30.30.30/32 [110/1] via 10.1.5.2, 00:40:05, GigabitEthernet 0/1

MCE# show ip route vrf VPN2

Routing Table: VPN2

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 10.1.4.1 to network 0.0.0.0

O*E2 0.0.0.0/0 [110/1] via 10.1.4.1, 00:38:35, GigabitEthernet 0/3.2

C    10.1.4.0/24 is directly connected, GigabitEthernet 0/3.2

C    10.1.4.2/32 is local host.

C    10.1.6.0/24 is directly connected, GigabitEthernet 0/2

C    10.1.6.0/42 is local host.

O    40.40.40.40/32 [110/1] via 10.1.6.2, 00:40:07, GigabitEthernet 0/2

同一VPN站点间能Ping通,不同VPN站点间Ping不通。

# 设备CE3的验证结果。

CE3# ping 10.10.10.10 source 30.30.30.30

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/20/20 ms

CE3# ping 20.20.20.20 source 30.30.30.30

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

# 设备CE4的验证结果。

CE4# ping 20.20.20.20 source 40.40.40.40

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/20/20 ms

CE3# ping 10.10.10.10 source 40.40.40.40

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

配置文件

# CE1的配置文件。

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.1.2 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router ospf 1

network 10.1.1.0 0.0.0.255 area 0

network 10.10.10.10 0.0.0.0 area 0

!

# CE2的配置文件。

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.2.2 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router ospf 1

network 10.1.2.0 0.0.0.255 area 0

network 20.20.20.20 0.0.0.0 area 0

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

ip vrf VPN2

rd 100:2

route-target both 100:2

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN2

ip address 10.1.2.1 255.255.255.0

!

interface GigabitEthernet 0/3

no switchport

ip address 192.168.1.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 100

neighbor 2.2.2.2 remote-as 100

neighbor 2.2.2.2 update-source Loopback 0

!

address-family ipv4

neighbor 2.2.2.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute ospf 20

exit-address-family

!

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.1.0 0.0.0.255 area 0

!

router ospf 20 vrf VPN2

redistribute bgp subnets

network 10.1.2.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

exit

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPN1

rd 101:1

route-target both 100:1

!

ip vrf VPN2

rd 101:2

route-target both 100:2

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.1.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2.1

encapsulation dot1Q 1

ip vrf forwarding VPN1

ip address 10.1.3.1 255.255.255.0

!

interface GigabitEthernet 0/2.2

encapsulation dot1Q 2

ip vrf forwarding VPN2

ip address 10.1.4.1 255.255.255.0

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 100

neighbor 1.1.1.1 remote-as 100

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute ospf 20

exit-address-family

!

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

network 10.1.3.0 0.0.0.255 area 0

default-information originate

!

router ospf 20 vrf VPN2

network 10.1.4.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0

!

ip route vrf VPN1 0.0.0.0 0.0.0.0 Null 0

ip route vrf VPN2 0.0.0.0 0.0.0.0 Null 0

!

# MCE的配置文件。

hostname MCE

!

ip vrf VPN1

rd 102:1

!

ip vrf VPN2

rd 102:2

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN2

ip address 10.1.5.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN2

ip address 10.1.6.1 255.255.255.0

!

interface GigabitEthernet 0/3.1

encapsulation dot1Q 1

ip vrf forwarding VPN1

ip address 10.1.3.2 255.255.255.0

!

interface GigabitEthernet 0/3.2

encapsulation dot1Q 2

ip vrf forwarding VPN2

ip address 10.1.4.2 255.255.255.0

!

router ospf 10 vrf VPN1

network 10.1.3.0 0.0.0.255 area 0

network 10.1.5.0 0.0.0.255 area 0

!

router ospf 20 vrf VPN2

network 10.1.4.0 0.0.0.255 area 0

network 10.1.6.0 0.0.0.255 area 0

!

# CE3的配置文件。

hostname CE3

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.5.2 255.255.255.0

!

interface Loopback 0

ip address 30.30.30.30 255.255.255.255

!

router ospf 1

network 10.1.5.0 0.0.0.255 area 0

network 30.30.30.30 0.0.0.0 area 0

!

# CE4的配置文件。

hostname CE4

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.6.2 255.255.255.0

!

interface Loopback 0

ip address 40.40.40.40 255.255.255.255

!

router ospf 1

network 10.1.6.0 0.0.0.255 area 0

network 40.40.40.40 0.0.0.0 area 0

!

常见错误

Router ID不是32位,导致LDP会话和BGP邻居建立失败。

基本IPv4 MPLS L3VPN(基于BGP路由策略的分层VPN)配置举例

组网需求

采用BGP路由策略将原有平面组网模型的MPLS L3VPN网络改建为分层组网模型。拓扑如图1-22,其中PE1和PE2作为下层PE,不保存VPN的所有路由,只保存所关联VPN站点的路由及上层PE所公告的默认路由。而PE3和PE4作为上层PE,需要保存VPN所有的路由,且PE3为PE1和PE2的上层PE。

组网图

基于BGP路由策略的分层VPN配置组网图

image.png

配置要点

配置MPLS网络:在PE1、PE2、PE3和PE4上配置接口地址及OSPF协议,配置MPLS功能。

配置MPLS L3VPN网络:在路由反射器PE3上配置对应的VRF,在PE1、PE2、PE3和PE4上配置MP-IBGP,配置CE接入PE。

在PE3上配置路由策略,限制将VPN路由公告给PE1和PE2。

在PE3上配置VPN默认路由,将其公告给PE1和PE2,但不公告给PE4。

在PE1和PE2上配置VRF OSPF公告默认路由。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# 所有设备配置类似,以下以PE1设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0

PE1(config-router)# exit

配置MPLS基本功能。

# PE设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# interface gigabitethernet 0/2

PE1(config-if-GigabitEthernet 0/2)# mpls ip

PE1(config-if-GigabitEthernet 0/2)# label-switching

PE1(config-if-GigabitEthernet 0/2)# exit

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPN1

PE1(config-vrf)# rd 100:1

PE1(config-vrf)# route-target both 100:1

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN1

PE1(config-if-GigabitEthernet 0/1)# ip address 10.1.1.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# exit

配置VPN路由。

# PE设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPN1

PE1(config-router)# network 10.1.1.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# default-information originate

PE1(config-router)# exit

建立BGP邻居,发布VPN路由。

# PE1和PE2设备配置类似,以下以PE1设备为例建立IBGP邻居。

PE1(config)# router bgp 100

PE1(config-router)# neighbor 3.3.3.3 remote-as 100

PE1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 3.3.3.3 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN1

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

验证配置结果

配置完成后,使用show ip route命令查看VPN路由表。

# 设备PE1的验证结果。

PE1# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 3.3.3.3 to network 0.0.0.0

B*   0.0.0.0/0 [200/0] via 3.3.3.3, 00:00:09

C    10.1.1.0/24 is directly connected, GigabitEthernet 0/1

C    10.1.1.1/32 is local host.

O    10.10.10.10/32 [110/2] via 10.1.1.2, 01:36:19, GigabitEthernet 0/1

# 设备PE3的验证结果。

PE3# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*   0.0.0.0/0 is directly connected, Null 0

B    10.1.1.0/24 [200/1] via 1.1.1.1, 01:54:23

B    10.1.2.0/24 [200/1] via 2.2.2.2, 01:54:27

B    10.1.3.0/24 [200/1] via 4.4.4.4, 01:54:29

B    10.10.10.10/32 [200/1] via 1.1.1.1, 01:54:23

B    20.20.20.20/32 [200/2] via 2.2.2.2, 01:54:27

B    30.30.30.30/32 [200/1] via 4.4.4.4, 01:54:29

VPN站点之间能够Ping通。

# 设备CE1的验证结果。

CE1# ping 20.20.20.20 source 10.10.10.10

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

CE1# ping 30.30.30.30 source 10.10.10.10

Sending 5, 100-byte ICMP Echoes to 30.30.30.30, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

# 设备CE2的验证结果。

CE2# ping 10.10.10.10 source 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

CE2# ping 30.30.30.30 source 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 30.30.30.30, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

# 设备CE3的验证结果。

CE3# ping 10.10.10.10 source 30.30.30.30

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

CE3# ping 20.20.20.20 source 30.30.30.30.

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/20 ms

配置文件

# CE1的配置文件。

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.1.2 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router ospf 1

network 10.1.1.0 0.0.0.255 area 0

network 10.10.10.10 0.0.0.0 area 0

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.1.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 100

neighbor 3.3.3.3 remote-as 100

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10

exit-address-family

!

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.1.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE3的配置文件。

hostname PE3

!

mpls ip

!

route-map UPE_FILT_RMP permit 10

match ip address UPE_FILT_ACL

!

route-map PE_FILT_RMP permit 10

match ip address PE_FILT_ACL

!

ip vrf VPN1

rd 100:3

route-target both 100:1

!

ip access-list standard PE_FILT_ACL

10 deny host 0.0.0.0

20 permit any

!

ip access-list standard UPE_FITL_ACL

10 permit host 0.0.0.0

20 deny any

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.2.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.3.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 192.168.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 100

neighbor 1.1.1.1 remote-as 100

neighbor 1.1.1.1 update-source Loopback 0

neighbor 2.2.2.2 remote-as 100

neighbor 2.2.2.2 update-source Loopback 0

neighbor 4.4.4.4 remote-as 100

neighbor 4.4.4.4 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 2.2.2.2 activate

neighbor 4.4.4.4 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 route-reflector-client

neighbor 1.1.1.1 route-map UPE_FILT_RMP out

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 route-reflector-client

neighbor 2.2.2.2 route-map UPE_FILT_RMP out

neighbor 4.4.4.4 activate

neighbor 4.4.4.4 route-reflector-client

neighbor 4.4.4.4 route-map PE_FILT_RMP out

exit-address-family

!

address-family ipv4 vrf VPN1

network 0.0.0.0

exit-address-family

!

router ospf 1

network 3.3.3.3 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

network 192.168.2.0 0.0.0.255 area 0

network 192.168.3.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ip route vrf VPN1 0.0.0.0 0.0.0.0 Null 0

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPN1

rd 100:2

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.1.2.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.2.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 100

neighbor 3.3.3.3 remote-as 100

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 192.168.2.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.2.0 0.0.0.255 area 0

default-information originate

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2的配置文件。

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.2.2 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router ospf 1

network 10.1.2.0 0.0.0.255 area 0

network 20.20.20.20 0.0.0.0 area 0

!

# PE4的配置文件。

hostname PE4

!

mpls ip

!

ip vrf VPN1

rd 100:4

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.3.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN1

ip address 10.1.3.1 255.255.255.0

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 100

neighbor 3.3.3.3 remote-as 100

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 4.4.4.4 0.0.0.0 area 0

network 192.168.3.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

redistribute bgp subnets

network 10.1.3.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE4的配置文件。

hostname CE4

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.3.2 255.255.255.0

!

interface Loopback 0

ip address 30.30.30.30 255.255.255.255

!

router ospf 1

network 10.1.3.0 0.0.0.255 area 0

network 30.30.30.30 0.0.0.0 area 0

!

常见错误

Router ID不是32位,导致LDP会话和BGP邻居建立失败。

跨域VPN服务模型OptionA配置举例

组网需求

在跨域VPN数量较少的网络中,通过Option A方案,实现跨域的BGP/MPLS VPN服务。自治域的ASBR为有跨域需求的VPN各自建立一个VRF,分别为这些VRF绑定接口,ASBR间的VRF利用这些接口互联交互VPN路由。

组网图

VRF-to-VRF跨域VPN配置组网图

image.png

配置要点

Option A方案要求在ASBR上为每个跨域的VPN配置一个接口(通常是逻辑子接口)与之绑定,绑定接口的数量至少要和跨域的VPN的数量相当,并在ASBR上逐个对VPN进行配置。

LDP Router-ID必须是32位。

BGP Router-ID必须是32位。

ASBR需要为每个VPN配置一个接口与之绑定。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE-AS和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router ospf 1

PE1-AS1(config-router)# router-id 1.1.1.1

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# network 20.1.1.0 0.0.0.255 area 0

配置MPLS基本功能。

# PE-AS和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/2)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

创建并关联VPN。

# PE和ASBR设备配置类似,以下以PE1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:101

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip address 10.1.1.1 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

建立BGP邻居,发布VPN路由。

# PE和CE建立EBGP邻居配置类似,以下以PE1和CE1为例建立EBGP邻居。

# PE和CE建立EBGP邻居,发布VPN路由。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 10.1.1.2 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# CE和PE建立EBGP邻居,发布VPN路由。

CE1> enable

CE1# configure terminal

CE1(config)# router bgp 65001

CE1(config-router)# neighbor 10.1.1.1 remote-as 1

CE1(config-router)# address-family ipv4

CE1(config-router-af)# neighbor 10.1.1.1 activate

CE1(config-router-af)# network 11.11.11.11 mask 255.255.255.255

CE1(config-router-af)# exit-address-family

CE1(config-router)# exit

# PE和ASBR建立IBGP邻居配置类似,以下以PE1和ASBR1为例建立IBGP邻居。

# PE和ASBR建立IBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 5.5.5.5 remote-as 1

PE1-AS1(config-router)# neighbor 5.5.5.5 update-source Loopback 0

PE1-AS1(config-router)# address-family ipv4

PE1-AS1(config-router-af)# no neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# address-family vpnv4 unicast

PE1-AS1(config-router-af)# neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# ASBR和PE建立IBGP邻居。

ASBR1> enable

ASBR1# configure terminal

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 1.1.1.1 remote-as 1

ASBR1(config-router)# neighbor 1.1.1.1 update-source Loopback 0

ASBR1(config-router)# neighbor 2.2.2.2 remote-as 1

ASBR1(config-router)# neighbor 2.2.2.2 update-source Loopback 0

ASBR1(config-router)# address-family ipv4

ASBR1(config-router-af)# neighbor 1.1.1.1 activate

ASBR1(config-router-af)# neighbor 2.2.2.2 activate

ASBR1(config-router-af)#  exit-address-family

ASBR1(config-router)# address-family vpnv4 unicast

ASBR1(config-router-af)# neighbor 1.1.1.1 activate

ASBR1(config-router-af)# neighbor 2.2.2.2 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# ASBR之间建立EBGP邻居。以下以ASBR1为例建立EBGP邻居。

ASBR1> enable

ASBR1# configure terminal

ASBR1(config)# router bgp 1

ASBR1(config-router)# address-family ipv4 vrf VPN1

ASBR1(config-router-af)# neighbor 172.1.1.2 remote-as 2

ASBR1(config-router-af)# neighbor 172.1.1.2 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# address-family ipv4 vrf VPN2

ASBR1(config-router-af)#  neighbor 173.1.1.2 remote-as 2

ASBR1(config-router-af)#  neighbor 173.1.1.2 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

验证配置结果

# CE1能Ping通CE3,不能Ping通CE2和CE4。

CE1# ping 33.33.33.33 source 11.11.11.11

Sending 5, 100-byte ICMP Echoes to 33.33.33.33, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/10 ms

CE1# ping 22.22.22.22 source 11.11.11.11

Sending 5, 100-byte ICMP Echoes to 22.22.22.22, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

CE1# ping 44.44.44.44 source 11.11.11.11

Sending 5, 100-byte ICMP Echoes to 44.44.44.44, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

配置文件

# CE1的配置文件。

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ip address 10.1.1.2 255.255.255.0

!

interface Loopback 0

ip address 11.11.11.11 255.255.255.255

!

router bgp 65001

neighbor 10.1.1.1 remote-as 1

!

address-family ipv4

network 11.11.11.11 mask 255.255.255.255

neighbor 10.1.1.1 activate

exit-address-family

!

# CE2的配置文件。

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ip address 10.2.1.2 255.255.255.0

!

interface Loopback 0

ip address 22.22.22.22 255.255.255.255

!

router bgp 65002

neighbor 10.2.1.1 remote-as 1

!

address-family ipv4

network 22.22.22.22 mask 255.255.255.255

neighbor 10.2.1.1 activate

exit-address-family

!

# CE3的配置文件。

hostname CE3

!

interface GigabitEthernet 0/1

no switchport

ip address 10.3.1.2 255.255.255.0

!

interface Loopback 0

ip address 33.33.33.33 255.255.255.255

!

router bgp 65003

neighbor 10.3.1.1 remote-as 1

!

address-family ipv4

network 33.33.33.33 mask 255.255.255.255

neighbor 10.3.1.1 activate

exit-address-family

!

# CE4的配置文件。

hostname CE4

!

interface GigabitEthernet 0/1

no switchport

ip address 10.4.1.2 255.255.255.0

!

interface Loopback 0

ip address 44.44.44.44 255.255.255.255

!

router bgp 65004

neighbor 10.4.1.1 remote-as 1

!

address-family ipv4

network 44.44.44.44 mask 255.255.255.255

neighbor 10.4.1.1 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 101:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.1.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 5.5.5.5 remote-as 1

neighbor 5.5.5.5 update-source Loopback 0

!

address-family ipv4

no neighbor 5.5.5.5 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute connected

neighbor 10.1.1.2 remote-as 65001

neighbor 10.1.1.2 activate

exit-address-family

!

router ospf 1

router-id 1.1.1.1

network 1.1.1.1 0.0.0.0 area 0

network 20.1.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 201:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 10.3.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.3.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 2

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 update-source Loopback 0

!

address-family ipv4

no neighbor 6.6.6.6 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 6.6.6.6 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute connected

neighbor 10.3.1.2 remote-as 65003

neighbor 10.3.1.2 activate

exit-address-family

!

router ospf 1

router-id 3.3.3.3

network 3.3.3.3 0.0.0.0 area 0

network 20.3.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE2-AS1的配置文件。

hostname PE2-AS1

!

mpls ip

!

ip vrf VPN2

rd 102:1

route-target both 200:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN2

ip address 10.2.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.2.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 1

neighbor 5.5.5.5 remote-as 1

neighbor 5.5.5.5 update-source Loopback 0

!

address-family ipv4

no neighbor 5.5.5.5 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute connected

neighbor 10.2.1.2 remote-as 65002

neighbor 10.2.1.2 activate

exit-address-family

!

router ospf 1

router-id 2.2.2.2

network 2.2.2.2 0.0.0.0 area 0

network 20.2.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE2-AS2的配置文件。

hostname PE2-AS2

!

mpls ip

!

ip vrf VPN2

rd 202:1

route-target both 200:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN2

ip address 10.4.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.4.1.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 update-source Loopback 0

!

address-family ipv4

no neighbor 6.6.6.6 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 6.6.6.6 activate

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute connected

neighbor 10.4.1.2 remote-as 65004

neighbor 10.4.1.2 activate

exit-address-family

!

router ospf 1

router-id 4.4.4.4

network 4.4.4.4 0.0.0.0 area 0

network 20.4.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

ip vrf VPN1

rd 301:1

route-target both 100:1

!

ip vrf VPN2

rd 401:1

route-target both 200:1

!

interface GigabitEthernet 0/1

!

interface GigabitEthernet 0/1.1

encapsulation dot1Q 1

ip vrf forwarding VPN1

ip address 172.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/1.2

encapsulation dot1Q 2

ip vrf forwarding VPN2

ip address 173.1.1.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.1.1.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 20.2.1.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 2.2.2.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 2.2.2.2 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 172.1.1.2 remote-as 2

neighbor 172.1.1.2 activate

exit-address-family

!

address-family ipv4 vrf VPN2

neighbor 173.1.1.2 remote-as 2

neighbor 173.1.1.2 activate

exit-address-family

!

router ospf 1

router-id 5.5.5.5

network 5.5.5.5 0.0.0.0 area 0

network 20.1.1.0 0.0.0.255 area 0

network 20.2.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

ip vrf VPN1

rd 301:1

route-target both 100:1

!

ip vrf VPN2

rd 401:1

route-target both 200:1

!

interface GigabitEthernet 0/1

!

interface GigabitEthernet 0/1.1

encapsulation dot1Q 1

ip vrf forwarding VPN1

ip address 172.1.1.2 255.255.255.0

!

interface GigabitEthernet 0/1.2

encapsulation dot1Q 2

ip vrf forwarding VPN2

ip address 173.1.1.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 20.3.1.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 20.4.1.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 6.6.6.6 255.255.255.255

!

router bgp 2

neighbor 3.3.3.3 remote-as 2

neighbor 3.3.3.3 update-source Loopback 0

neighbor 4.4.4.4 remote-as 2

neighbor 4.4.4.4 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

neighbor 4.4.4.4 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

neighbor 4.4.4.4 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 172.1.1.1 remote-as 1

neighbor 172.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN2

neighbor 173.1.1.1 remote-as 1

neighbor 173.1.1.1 activate

exit-address-family

!

router ospf 1

router-id 6.6.6.6

network 6.6.6.6 0.0.0.0 area 0

network 20.3.1.0 0.0.0.255 area 0

network 20.4.1.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

常见错误

未使用ip vrf forwarding命令为某个接口绑定VRF,导致PE-CE间没有运行路由协议,从而在PE上使用show ip route vrf命令查找不到任何CE端的路由。

跨域VPN服务模型OptionB(下一跳不变)配置举例

组网需求

VPN用户在两个不同自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。

组网图

跨域VPN OptionB(下一跳不变)配置组网图

image.png

配置要点

在PE1-AS1上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置BGP协议,和ASBR1建立MP-IBGP会话,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE1-AS2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置BGP协议,和ASBR2建立MP-IBGP会话,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在P1-AS1上配置Loopback接口,配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在ASBR1上配置Loopback接口,配置BGP协议,关闭BGP的RT过滤功能,配置同P1-AS1以及ASBR2建立邻居。配置MPLS信令和公网口开启MPLS能力,骨干网运行OSPF传递路由信息,并重分布直连网段路由,配置与ASBR2相连的接口的IP地址,开启接口的标签转发能力。

在ASBR2上配置Loopback接口,配置BGP协议,关闭BGP的RT过滤功能,配置同PE1-AS2以及ASBR1建立邻居。配置MPLS信令和公网口开启MPLS能力,骨干网运行OSPF传递路由信息,并重分布直连网段路由,配置与ASBR1相连的接口的IP地址,开启接口的标签转发能力。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router ospf 10

PE1-AS1(config-router)# network 20.20.20.0 0.0.0.255 area 0

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# end

配置MPLS基本功能。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/1)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1-AS1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:100

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/2)# ip address 192.168.16.2 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

建立BGP邻居,发布VPN路由。

# PE1-AS1和CE1-VPN1建立EBGP邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 192.168.16.1 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# CE1-VPN1和PE1-AS1建立EBGP邻居,发布VPN路由。

CE1-VPN1> enable

CE1-VPN1# configure terminal

CE1-VPN1(config)# router bgp 65001

CE1-VPN1(config-router)# neighbor 192.168.16.2 remote-as 1

CE1-VPN1(config-router)# address-family ipv4

CE1-VPN1(config-router-af)# neighbor 192.168.16.2 activate

CE1-VPN1(config-router-af)# network 10.10.10.10 mask 255.255.255.255

CE1-VPN1(config-router-af)# exit-address-family

CE1-VPN1(config-router)# exit

# PE-AS和ASBR建立IBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1-AS1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1-AS1(config-router)# address-family vpnv4

PE1-AS1(config-router-af)# neighbor 3.3.3.3 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)#exit

# ASBR和PE-AS建立IBGP邻居。

ASBR1> enable

ASBR1# configure terminal

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 1.1.1.1 remote-as 1

ASBR1(config-router)# neighbor 1.1.1.1 update-source loopback 0

ASBR1(config-router)# no bgp default route-target filter

ASBR1(config-router)# address-family vpnv4

ASBR1(config-router-af)# neighbor 1.1.1.1 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# ASBR建立EBGP邻居。以下以ASBR1为例建立EBGP邻居。

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 30.30.30.2 remote-as 2

ASBR1(config-router)# address-family vpnv4 unicast

ASBR1(config-router-af)# neighbor 30.30.30.2 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# ASBR配置为主机路由代理出口。以下以ASBR1为例配置为主机路由代理出口。

ASBR1(config)# mpls router ldp

ASBR1(config-mpls-router)# egress-proxy for host

验证配置结果

配置完成后,同一VPN站点间能互通。不同VPN间不能互通。

# 设备PE1-AS1的验证结果。

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 02:33:49, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 02:31:30, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 02:32:15, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/0

C    20.20.20.1/32 is local host.

O E2 30.30.30.0/24 [110/20] via 20.20.20.2, 00:39:24, GigabitEthernet 0/1

O E2 30.30.30.2/32 [110/20] via 20.20.20.2, 00:39:21, GigabitEthernet 0/1

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

# 设备PE1-AS2的验证结果。

PE1-AS2# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

O    4.4.4.4/32 [110/1] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

C    5.5.5.5/32 is local host.

O E2 30.30.30.0/24 [110/20] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

O E2 30.30.30.1/32 [110/20] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

C    50.50.50.0/24 is directly connected, GigabitEthernet 0/1

C    50.50.50.2/32 is local host.

PE1-AS2# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

PE1-AS2# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/10 ms

# CE1-VPN1的验证结果。

CE1-VPN1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    10.10.10.10/32 is local host.

B    20.20.20.20/32 [20/0] via 192.168.16.2, 00:02:27

C    192.168.16.0/24 is directly connected, GigabitEthernet 0/1

C    192.168.16.1/32 is local host

CE1-VPN1# ping 20.20.20.20 source 10.10.10.10

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

# CE2-VPN1的验证结果。

CE2-VPN1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B    10.10.10.10/32 [20/0] via 192.168.15.2, 00:04:07

C    20.20.20.20/32 is local host.

C    192.168.15.0/24 is directly connected, GigabitEthernet 0/0

C    192.168.15.1/32 is local host.

CE2-VPN1# ping 10.10.10.10 source 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

配置文件

# CE1-VPN1的配置文件。

hostname CE1-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.16.1 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router bgp 65001

neighbor 192.168.16.2 remote-as 1

!

address-family ipv4

network 10.10.10.10 mask 255.255.255.255

neighbor 192.168.16.2 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip address 20.20.20.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN1

ip address 192.168.16.2 255.255.255.0

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.16.1 remote-as 65001

neighbor 192.168.16.1 activate

exit-address-family

!

router ospf 10

network 1.1.1.1 0.0.0.0 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1-AS1的配置文件。

hostname P1-AS1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router ospf 10

network 2.2.2.2 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 30.30.30.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 10.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

no bgp default route-target filter

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

neighbor 30.30.30.2 remote-as 2

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 30.30.30.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 30.30.30.2 activate

exit-address-family

!

router ospf 10

redistribute connected subnets

network 3.3.3.3 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

egress-proxy for host

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 50.50.50.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 30.30.30.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

no bgp default route-target filter

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 update-source Loopback 0

neighbor 30.30.30.1 remote-as 1

!

address-family ipv4

neighbor 5.5.5.5 activate

neighbor 30.30.30.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

neighbor 30.30.30.1 activate

exit-address-family

!

router ospf 10

redistribute connected subnets

network 4.4.4.4 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

egress-proxy for host

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.15.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 50.50.50.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 2

neighbor 4.4.4.4 remote-as 2

neighbor 4.4.4.4 update-source Loopback 0

!

address-family ipv4

neighbor 4.4.4.4 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 4.4.4.4 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.15.1 remote-as 65002

neighbor 192.168.15.1 activate

exit-address-family

!

router ospf 10

network 5.5.5.5 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2-VPN1的配置文件。

hostname CE2-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.15.1 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router bgp 65002

neighbor 192.168.15.2 remote-as 2

!

address-family ipv4

network 20.20.20.20 mask 255.255.255.255

neighbor 192.168.15.2 activate

exit-address-family

!

常见错误

未成功建立LDP会话。

未关闭BGP的RT过滤功能。

未使用redistribute connecter subnets命令重分发直连子网路由到OSPF中,导致CE-VPN1站点间Ping不通。

跨域VPN服务模型OptionB(下一跳改变)配置举例

组网需求

VPN用户在两个自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。

组网图

跨域VPN服务模型OptionB(下一跳改变)配置组网图

image.png

配置要点

在PE1-AS1上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置BGP协议,和ASBR1建立MP-IBGP会话,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE1-AS2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置BGP协议,和ASBR2建立MP-IBGP会话,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在P1-AS1上配置Loopback接口,配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在ASBR1上配置Loopback接口,配置BGP协议,关闭BGP的RT过滤功能,配置同PE1-AS1以及ASBR2建立邻居。配置MPLS信令和公网口开启MPLS能力,骨干网运行OSPF传递路由信息并重分布直连网段路由。配置与ASBR2相连的接口的IP地址,开启接口的标签转发能力。配置向IBGP邻居发送VPN路由时,修改下一跳为自身。

在ASBR2上配置Loopback接口,配置BGP协议,关闭BGP的RT过滤功能。配置同PE1-AS2以及ASBR1建立邻居。配置MPLS信令和公网口开启MPLS能力,骨干网运行OSPF传递路由信息,并重分布直连网段路由,配置与ASBR2相连的接口的IP地址,开启接口的标签转发能力。配置向IBGP邻居发送VPN路由时,修改下一跳为自身。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router ospf 10

PE1-AS1(config-router)# network 20.20.20.0 0.0.0.255 area 0

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# end

配置MPLS基本功能。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip address 20.20.20.1 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/1)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/1)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1-AS1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:100

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/2)# ip address 192.168.16.2 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

建立BGP邻居,发布VPN路由。

# PE1-AS1和CE1-VPN1建立EBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router-af)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 192.168.16.1 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# CE1-VPN1和PE1-AS1建立EBGP邻居,发布VPN路由。

CE1-VPN1> enable

CE1-VPN1# configure terminal

CE1-VPN1(config)# router bgp 65001

CE1-VPN1(config-router)# neighbor 192.168.16.2 remote-as 1

CE1-VPN1(config-router)# address-family ipv4

CE1-VPN1(config-router-af)# neighbor 192.168.16.2 activate

CE1-VPN1(config-router-af)# network 10.10.10.10 mask 255.255.255.255

CE1-VPN1(config-router-af)# exit-address-family

CE1-VPN1(config-router)# exit

# PE-AS和ASBR建立IBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1-AS1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1-AS1(config-router)# address-family vpnv4

PE1-AS1(config-router-af)# neighbor 3.3.3.3 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# ASBR和PE-AS建立IBGP邻居。

ASBR1> enable

ASBR1# configure terminal

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 1.1.1.1 remote-as 1

ASBR1(config-router)# neighbor 1.1.1.1 update-source loopback 0

ASBR1(config-router)# no bgp default route-target filter

ASBR1(config-router)# address-family vpnv4

ASBR1(config-router-af)# neighbor 1.1.1.1 activate

ASBR1(config-router-af)# neighbor 1.1.1.1 next-hop-self

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# ASBR建立EBGP邻居。以下以ASBR1为例建立EBGP邻居。

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 30.30.30.2 remote-as 2

ASBR1(config-router)# address-family vpnv4 unicast

ASBR1(config-router-af)# neighbor 30.30.30.2 activate

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# ASBR配置为主机路由代理出口。以下以ASBR1为例配置为主机路由代理出口。

ASBR1(config)# mpls router ldp

ASBR1(config-mpls-router)# egress-proxy for host

验证配置结果

# 配置完成后,同一VPN站点间能互通,不同VPN间不能互通。设备PE1-AS1的验证结果。

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 02:33:49, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 02:31:30, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 02:32:15, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/0

C    20.20.20.1/32 is local host.

O E2 30.30.30.0/24 [110/20] via 20.20.20.2, 00:39:24, GigabitEthernet 0/1

O E2 30.30.30.2/32 [110/20] via 20.20.20.2, 00:39:21, GigabitEthernet 0/1

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

# 设备PE1-AS2的验证结果。

PE1-AS2# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

O    4.4.4.4/32 [110/1] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

C    5.5.5.5/32 is local host.

O E2 30.30.30.0/24 [110/20] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

O E2 30.30.30.1/32 [110/20] via 50.50.50.1, 00:40:56, GigabitEthernet 0/1

C    50.50.50.0/24 is directly connected, GigabitEthernet 0/1

C    50.50.50.2/32 is local host.

PE1-AS2# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

.....

Success rate is 0 percent (0/5)

PE1-AS2# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/10 ms

# CE1-VPN1的验证结果。

CE1-VPN1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    10.10.10.10/32 is local host.

B    20.20.20.20/32 [20/0] via 192.168.16.2, 00:02:27

C    192.168.16.0/24 is directly connected, GigabitEthernet 0/1

C    192.168.16.1/32 is local host

CE1-VPN1# ping 20.20.20.20 source 10.10.10.10

Sending 5, 100-byte ICMP Echoes to 20.20.20.20, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

# CE2-VPN1的验证结果。

CE2-VPN1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B    10.10.10.10/32 [20/0] via 192.168.15.2, 00:04:07

C    20.20.20.20/32 is local host.

C    192.168.15.0/24 is directly connected, GigabitEthernet 0/0

C    192.168.15.1/32 is local host.

CE2-VPN1# ping 10.10.10.10 source 20.20.20.20

Sending 5, 100-byte ICMP Echoes to 10.10.10.10, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

配置文件

# CE1-VPN1的配置文件。

hostname CE1-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.16.1 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router bgp 65001

neighbor 192.168.16.2 remote-as 1

!

address-family ipv4

network 10.10.10.10 mask 255.255.255.255

neighbor 192.168.16.2 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip address 20.20.20.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN1

ip address 192.168.16.2 255.255.255.0

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 3.3.3.3 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.16.1 remote-as 65001

neighbor 192.168.16.1 activate

exit-address-family

!

router ospf 10

network 1.1.1.1 0.0.0.0 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1-AS1的配置文件。

hostname P1-AS1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router ospf 10

network 2.2.2.2 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 30.30.30.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 10.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

no bgp default route-target filter

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

neighbor 30.30.30.2 remote-as 2

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 30.30.30.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 next-hop-self

neighbor 30.30.30.2 activate

exit-address-family

!

router ospf 10

network 3.3.3.3 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

egress-proxy for host

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 50.50.50.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 30.30.30.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

no bgp default route-target filter

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 update-source Loopback 0

neighbor 30.30.30.1 remote-as 1

!

address-family ipv4

neighbor 5.5.5.5 activate

neighbor 30.30.30.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 next-hop-self

neighbor 30.30.30.1 activate

exit-address-family

!

router ospf 10

network 4.4.4.4 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

egress-proxy for host

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.15.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 50.50.50.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 2

neighbor 4.4.4.4 remote-as 2

neighbor 4.4.4.4 update-source Loopback 0

!

address-family ipv4

neighbor 4.4.4.4 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 4.4.4.4 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.15.1 remote-as 65002

neighbor 192.168.15.1 activate

exit-address-family

!

router ospf 10

network 5.5.5.5 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2-VPN1的配置文件。

hostname CE2-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.15.1 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router bgp 65002

neighbor 192.168.15.2 remote-as 2

!

address-family ipv4

network 20.20.20.20 mask 255.255.255.255

neighbor 192.168.15.2 activate

exit-address-family

!

常见错误

LDP会话建立失败。

未关闭BGP的RT过滤功能。

ASBR把VPN路由发送给IBGP邻居时,未配置下一跳改变为自身,使得CE-VPN1站点间Ping不通。

跨域VPN服务模型OptionC(EBGP间启用IPv4标签交换)配置举例

组网需求

VPN用户在两个不同自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。

组网图

跨域VPN服务模型OptionC(EBGP间启用IPv4标签交换)配置组网图

image.png

配置要点

在PE1-AS1上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置多跳MP-EBGP会话,关闭多跳EBGP的IPv4路由交互能力,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE1-AS2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置多跳MP-EBGP会话,关闭多跳EBGP的IPv4路由交互能力,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在P1-AS1上配置Loopback接口,配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在ASBR1上配置Loopback接口,配置ACL规则和Route-map规则,只为满足特定规则的路由分发标签或者设置标签。建立和ASBR2的EBGP会话,配置Route-map规则为满足条件的PE路由配置标签(该Route-map规则为可选配置,应用Route-map规则可以让BGP只为特定的路由分发标签),并静态配置本自治域PE的路由。配置MPLS,通过ACL为特定的BGP路由分发标签(ACL规则为可选配置,应用ACL规则可以减少不必要的路由条目)。配置骨干网路由协议,并只重分布满足Route-map条件的BGP路由(Route-map规则是可选的,应用route-map规则可以减少不必要的路由条目)。配置与ASBR2相连的接口的IP地址,开启接口的标签交转发能力。

在ASBR2上配置Loopback接口,配置ACL规则和Route-map规则,只为满足特定规则的路由分发标签或者设置标签。建立和ASBR1的EBGP会话,配置Route-map规则为满足条件的PE路由配置标签(该Route-map规则为可选配置,应用Route-map规则可以让BGP只为特定的路由分发标签),并静态配置本自治域PE的路由。配置MPLS,通过ACL为特定的BGP路由分发标签(ACL规则为可选配置,应用ACL规则可以减少不必要的路由条目)。配置骨干网路由协议,并只重分布满足Route-map条件的BGP路由(Route-map规则为可选配置,应用Route-map规则可以减少不必要的路由条目)。配置与ASBR1相连的接口的IP地址,开启接口的标签交转发能力。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1(config)# router ospf 10

PE1-AS1(config-router)# network 20.20.20.0 0.0.0.255 area 0

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# exit

配置MPLS基本功能。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip address 20.20.20.1 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/1)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/1)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1-AS1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:100

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/2)# ip address 192.168.16.2 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

建立BGP邻居,发布VPN路由。

# PE1-AS1和CE1-VPN1建立EBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 192.168.16.1 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# CE1-VPN1和PE1-AS1建立EBGP邻居,发布VPN路由。

CE1-VPN1(config)# router bgp 65001

CE1-VPN1(config-router)# neighbor 192.168.16.2 remote-as 1

CE1-VPN1(config-router)# address-family ipv4

CE1-VPN1(config-router-af)# neighbor 192.168.16.2 activate

CE1-VPN1(config-router-af)# network 10.10.10.10 mask 255.255.255.255

CE1-VPN1(config-router-af)# exit-address-family

CE1-VPN1(config-router)# exit

# PE-AS建立EBGP邻居。以下以PE1-AS1为例建立EBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 5.5.5.5 remote-as 2

PE1-AS1(config-router)# neighbor 5.5.5.5 update-source loopback 0

PE1-AS1(config-router)# neighbor 5.5.5.5 ebgp-multihop

PE1-AS1(config-router)# address-family ipv4

PE1-AS1(config-router-af)# no neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# address-family vpnv4 unicast

PE1-AS1(config-router-af)# neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# ASBR1与ASBR2建立EBGP邻居,并重发布BGP路由。以下以ASBR1为例。

ASBR1(config)# ip access-list extended 101

ASBR1(config-ext-nacl)# permit ip host 1.1.1.1 any

ASBR1(config-ext-nacl)# exit

ASBR1(config)# ip access-list extended 102

ASBR1(config-ext-nacl)# permit ip host 5.5.5.5 any

ASBR1(config-ext-nacl)# exit

ASBR1(config)# route-map set-mpls permit

ASBR1(config-route-map)# match ip address 101

ASBR1(config-route-map)# set mpls-label

ASBR1(config-route-map)# exit

ASBR1(config)# route-map external-pe-route permit

ASBR1(config-route-map)# match ip address 102

ASBR1(config-route-map)# exit

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 30.30.30.2 remote-as 2

ASBR1(config-router)# address-family ipv4

ASBR1(config-router-af)# neighbor 30.30.30.2 activate

ASBR1(config-router-af)# neighbor 30.30.30.2 send-label

ASBR1(config-router-af)# neighbor 30.30.30.2 route-map set-mpls out

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

ASBR1(config)# router ospf 10

ASBR1(config-router)# redistribute bgp route-map external-pe-route subnets

ASBR1(config-router)# network 3.3.3.3 0.0.0.0 area 0

ASBR1(config-router)# network 10.10.10.0 0.0.0.255 area 0

ASBR1(config-router)# exit

验证配置结果

配置完成后,同一VPN不同站点间可以互通。

# 设备PE1-AS1的验证结果。

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 01:04:47, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 01:03:26, GigabitEthernet 0/1

O E2 5.5.5.5/32 [110/1] via 20.20.20.2, 00:50:44, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 01:04:58, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/1

C    20.20.20.1/32 is local host.

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 5.5.5.5 source 1.1.1.1

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 2.2.2.2

Sending 5, 100-byte ICMP Echoes to 2.2.2.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

# 设备PE1-AS2的验证结果。

PE1-AS2# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

O E2 1.1.1.1/32 [110/1] via 50.50.50.1, 00:38:28, GigabitEthernet 0/1

O    4.4.4.4/32 [110/1] via 50.50.50.1, 01:09:52, GigabitEthernet 0/1

C    5.5.5.5/32 is local host.

C    50.50.50.0/24 is directly connected, GigabitEthernet 0/1

C    50.50.50.2/32 is local host.

PE1-AS2# ping 1.1.1.1

Sending 5, 100-byte ICMP Echoes to 1.1.1.1, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS2# ping 1.1.1.1 source 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 1.1.1.1, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS2# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS2# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

.....

配置文件

# CE1-VPN1的配置文件。

hostname CE1-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.16.1 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router bgp 65001

neighbor 192.168.16.2 remote-as 1

!

address-family ipv4

network 10.10.10.10 mask 255.255.255.255

neighbor 192.168.16.2 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip address 20.20.20.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN1

ip address 192.168.16.2 255.255.255.0

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 ebgp-multihop 255

neighbor 5.5.5.5 update-source Loopback 0

!

address-family ipv4

no neighbor 5.5.5.5 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.16.1 remote-as 65001

neighbor 192.168.16.1 activate

exit-address-family

!

router ospf 10

network 1.1.1.1 0.0.0.0 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1-AS1的配置文件。

hostname P1-AS1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router ospf 10

network 2.2.2.2 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

route-map set-mpls permit 10

match ip address 101

set mpls-label

!

route-map external-pe-route permit 10

match ip address 102

!

ip access-list extended 101

10 permit ip host 1.1.1.1 any

!

ip access-list extended 102

10 permit ip host 5.5.5.5 any

!

interface GigabitEthernet 0/1

no switchport

ip address 30.30.30.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 10.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

neighbor 30.30.30.2 remote-as 2

!

address-family ipv4

network 1.1.1.1 mask 255.255.255.255

neighbor 30.30.30.2 activate

neighbor 30.30.30.2 send-label

neighbor 30.30.30.2 route-map set-mpls out

exit-address-family

!

router ospf 10

redistribute bgp route-map external-pe-route subnets

network 3.3.3.3 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

advertise-labels for bgp-routes acl 102

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

route-map set-mpls permit 10

match ip address 101

set mpls-label

!

route-map external-pe-route permit 10

match ip address 102

!

ip access-list extended 101

10 permit ip host 5.5.5.5 any

!

ip access-list extended 102

10 permit ip host 1.1.1.1 any

!

interface GigabitEthernet 0/1

no switchport

ip address 50.50.50.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 30.30.30.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

neighbor 30.30.30.1 remote-as 1

!

address-family ipv4

network 5.5.5.5 mask 255.255.255.255

neighbor 30.30.30.1 activate

neighbor 30.30.30.1 send-label

neighbor 30.30.30.1 route-map set-mpls out

exit-address-family

!

router ospf 10

redistribute bgp route-map external-pe-route subnets

network 4.4.4.4 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

advertise-labels for bgp-routes acl 102

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.15.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 50.50.50.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 2

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 update-source Loopback 0

!

address-family ipv4

no neighbor 1.1.1.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.15.1 remote-as 65002

neighbor 192.168.15.1 activate

exit-address-family

!

router ospf 10

network 5.5.5.5 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2-VPN1的配置文件。

hostname CE2-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.15.1 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router bgp 65002

neighbor 192.168.15.2 remote-as 2

!

address-family ipv4

network 20.20.20.20 mask 255.255.255.255

neighbor 192.168.15.2 activate

exit-address-family

!

常见错误

配置多跳MP-EBGP会话,未关闭多跳EBGP的IPv4路由交互能力。

ASBR设备未配置使用LDP为BGP路由分发标签,导致VPN站点间不能互通。

跨域VPN服务模型OptionC(EBGP和IBGP间都启用IPv4标签交换)配置举例

组网需求

VPN用户在两个不同的自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。

组网图

跨域VPN服务模型OptionC(EBGP和IBGP间都启用IPv4标签交换)配置组网图

image.png

配置要点

在PE1-AS1上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置多跳MP-EBGP会话,关闭多跳EBGP的IPv4路由交互能力。和ASBR1建立IBGP会话,启用IPv4标签交互能力,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE1-AS2上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联;配置多跳MP-EBGP会话,关闭多跳EBGP的IPv4路由交互能力。和ASBR2建立IBGP会话,启用IPv4标签交互能力,通过EBGP配置CE邻居。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在P1-AS1上配置Loopback接口,配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在ASBR1上配置Loopback接口,配置ACL规则和Route-map规则,只为满足特定规则的路由分发标签或者设置标签。建立和ASBR2的EBGP会话,配置Route-map规则为满足条件的PE路由配置标签(该Route-map规则可选,应用Route-map规则可以让BGP只为特定的路由分发标签),并静态配置本自治域PE的路由。配置MPLS信令和接口开启MPLS能力,骨干网运行OSPF传递路由信息。配置与ASBR2相连的接口的IP地址,开启接口的标签交转发能力。

在ASBR2上配置Loopback接口,配置ACL规则和Route-map规则,只为满足特定规则的路由分发标签或者设置标签;建立和ASBR1的EBGP会话,配置Route-map规则为满足条件的PE路由配置标签(该Route-map规则可选,应用Route-map规则可以让BGP只为特定的路由分发标签),并静态配置本自治域PE的路由。配置MPLS信令和接口开启MPLS能力,骨干网运行OSPF传递路由信息。配置与ASBR1相连的接口的IP地址,开启接口的标签交转发能力。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router ospf 10

PE1-AS1(config-router)# network 20.20.20.0 0.0.0.255 area 0

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# end

配置MPLS基本功能。

# PE、P和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip address 20.20.20.1 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/1)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/1)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1-AS1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:100

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/2)# ip address 192.168.16.2 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

建立BGP邻居,发布VPN路由。

# PE1-AS1和CE1-VPN1建立EBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 192.168.16.1 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router-af)# exit

# CE1-VPN1和PE1-AS1建立EBGP邻居,发布VPN路由。

CE1-VPN1(config)# router bgp 65001

CE1-VPN1(config-router)# neighbor 192.168.16.2 remote-as 1

CE1-VPN1(config-router)# address-family ipv4

CE1-VPN1(config-router-af)# neighbor 192.168.16.2 activate

CE1-VPN1(config-router-af)# network 10.10.10.10 mask 255.255.255.255

CE1-VPN1(config-router-af)# exit-address-family

CE1-VPN1(config-router)# exit

# PE1-AS1和ASBR1建立IBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 3.3.3.3 remote-as 1

PE1-AS1(config-router)# neighbor 3.3.3.3 update-source loopback 0

PE1-AS1(config-router)# address-family ipv4

PE1-AS1(config-router-af)# neighbor 3.3.3.3 activate

PE1-AS1(config-router-af)# neighbor 3.3.3.3 send-label

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router-af)# exit

# ASBR1和PE1-AS1建立IBGP邻居。

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 1.1.1.1 remote-as 1

ASBR1(config-router)# neighbor 1.1.1.1 update-source loopback 0

ASBR1(config-router)# address-family ipv4

ASBR1(config-router-af)# neighbor 1.1.1.1 send-label

ASBR1(config-router-af)# neighbor 1.1.1.1 route-map external-mpls-route out

ASBR1(config-router-af)# network 1.1.1.1 mask 255.255.255.255

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

# PE-AS建立EBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 5.5.5.5 remote-as 2

PE1-AS1(config-router)# neighbor 5.5.5.5 update-source loopback 0

PE1-AS1(config-router)# neighbor 5.5.5.5 ebgp-multihop

PE1-AS1(config-router)# address-family ipv4

PE1-AS1(config-router-af)# no neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# address-family vpnv4 unicast

PE1-AS1(config-router-af)# neighbor 5.5.5.5 activate

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

验证配置结果

配置完成后,同一VPN的不同站点间可以互通。

# 设备PE1-AS1的验证结果。

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 01:04:47, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 01:03:26, GigabitEthernet 0/1

O E2 5.5.5.5/32 [110/1] via 20.20.20.2, 00:50:44, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 01:04:58, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/1

C    20.20.20.1/32 is local host.

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 5.5.5.5 source 1.1.1.1

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 2.2.2.2

Sending 5, 100-byte ICMP Echoes to 2.2.2.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

# 设备PE1-AS2的验证结果。

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 01:04:47, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 01:03:26, GigabitEthernet 0/1

O E2 5.5.5.5/32 [110/1] via 20.20.20.2, 00:50:44, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 01:04:58, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/1

C    20.20.20.1/32 is local host.

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 5.5.5.5 source 1.1.1.1

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 2.2.2.2

Sending 5, 100-byte ICMP Echoes to 2.2.2.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    1.1.1.1/32 is local host.

O    2.2.2.2/32 [110/1] via 20.20.20.2, 01:04:47, GigabitEthernet 0/1

O    3.3.3.3/32 [110/2] via 20.20.20.2, 01:03:26, GigabitEthernet 0/1

O E2 5.5.5.5/32 [110/1] via 20.20.20.2, 00:50:44, GigabitEthernet 0/1

O    10.10.10.0/24 [110/2] via 20.20.20.2, 01:04:58, GigabitEthernet 0/1

C    20.20.20.0/24 is directly connected, GigabitEthernet 0/1

C    20.20.20.1/32 is local host.

PE1-AS1# ping 5.5.5.5

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 5.5.5.5 source 1.1.1.1

Sending 5, 100-byte ICMP Echoes to 5.5.5.5, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 4.4.4.4

Sending 5, 100-byte ICMP Echoes to 4.4.4.4, timeout is 2 seconds:

< press Ctrl+C to break >

.....

PE1-AS1# ping 3.3.3.3

Sending 5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

PE1-AS1# ping 2.2.2.2

Sending 5, 100-byte ICMP Echoes to 2.2.2.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

配置文件

# CE1-VPN1的配置文件。

hostname CE1-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.16.1 255.255.255.0

!

interface Loopback 0

ip address 10.10.10.10 255.255.255.255

!

router bgp 65001

neighbor 192.168.16.2 remote-as 1

!

address-family ipv4

network 10.10.10.10 mask 255.255.255.255

neighbor 192.168.16.2 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip address 20.20.20.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip vrf forwarding VPN1

ip address 192.168.16.2 255.255.255.0

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 ebgp-multihop 255

neighbor 5.5.5.5 update-source Loopback 0

!

address-family ipv4

neighbor 3.3.3.3 activate

neighbor 3.3.3.3 send-label

no neighbor 5.5.5.5 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-community extended

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.16.1 remote-as 65002

neighbor 192.168.16.1 activate

exit-address-family

!

router ospf 10

network 1.1.1.1 0.0.0.0 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1-AS1的配置文件。

hostname P1-AS1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router ospf 10

network 2.2.2.2 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

route-map internal-mpls-route permit 10

match ip address 101

set mpls-label

!

route-map external-mpls-route permit 10

match ip address 102

set mpls-label

!

ip access-list extended 101

10 permit ip host 1.1.1.1 any

!

ip access-list extended 102

10 permit ip host 5.5.5.5 any

!

interface GigabitEthernet 0/1

no switchport

ip address 30.30.30.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 10.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

neighbor 30.30.30.2 remote-as 2

!

address-family ipv4

network 1.1.1.1 mask 255.255.255.255

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 send-label

neighbor 1.1.1.1 route-map external-mpls-route out

neighbor 30.30.30.2 activate

neighbor 30.30.30.2 send-label

neighbor 30.30.30.2 route-map internal-mpls-route out

exit-address-family

!

router ospf 10

network 3.3.3.3 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

route-map internal-mpls-route permit 10

match ip address 101

set mpls-label

!

route-map external-mpls-route permit 10

match ip address 102

set mpls-label

!

ip access-list extended 101

10 permit ip host 5.5.5.5 any

!

ip access-list extended 102

10 permit ip host 1.1.1.1 any

!

interface GigabitEthernet 0/1

no switchport

ip address 50.50.50.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 30.30.30.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 update-source Loopback 0

neighbor 30.30.30.1 remote-as 1

!

address-family ipv4

network 5.5.5.5 mask 255.255.255.255

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-label

neighbor 5.5.5.5 route-map external-mpls-route out

neighbor 30.30.30.1 activate

neighbor 30.30.30.1 send-label

neighbor 30.30.30.1 route-map internal-mpls-route out

exit-address-family

!

router ospf 10

network 4.4.4.4 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.15.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 50.50.50.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 2

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 update-source Loopback 0

neighbor 4.4.4.4 remote-as 2

neighbor 4.4.4.4 update-source Loopback 0

!

address-family ipv4

no neighbor 1.1.1.1 activate

neighbor 4.4.4.4 activate

neighbor 4.4.4.4 send-label

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 send-community extended

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.15.1 remote-as 65002

neighbor 192.168.15.1 activate

exit-address-family

!

router ospf 10

network 5.5.5.5 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# CE2-VPN1的配置文件。

hostname CE2-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.15.1 255.255.255.0

!

interface Loopback 0

ip address 20.20.20.20 255.255.255.255

!

router bgp 65002

neighbor 192.168.15.2 remote-as 2

!

address-family ipv4

network 20.20.20.20 mask 255.255.255.255

neighbor 192.168.15.2 activate

exit-address-family

!

常见错误

配置多跳MP-EBGP会话,未关闭多跳EBGP的IPv4路由交互能力。

IBGP间未配置IPV4路由标签交换,导致VPN站点之间不能互通。

跨域VPN服务模型OptionC(路由反射器组网方案)配置举例

组网需求

在Option C的两种实现方式中,如果同一个VPN用户的站点分布在多个不同的自治域系统,如图1-28所示,VPN用户的不同站点分布在三个不同自治域,采用普通的Option C实现方案,为了保证这些VPN站点之间的可达性,需要让跨域的PE间建立全相连的BGP连接。后续每增加一个VPN站点,新增的VPN站点都需要和其他的VPN站点建立BGP连接,因此限制了普通Option C实现方案的应用。为了解决上述扩展性问题,可以在Option C方案中每个自治域上增加路由反射器,在路由反射器之间建立多跳MP-EBGP连接,交互跨域的VPN路由,同时让自治域之内的PE设备和路由反射器建立MP-IBGP会话。

组网图

跨域VPN服务模型OptionC(路由反射器组网方案)配置组网图

image.png

配置要点

在PE1-AS1上配置Loopback接口,创建VRF VPN1,定义RD值和RT值,并把VRF和对应的接口关联。配置和RR建立MP-IBGP会话,并启用IPv4路由标签交互能力,通过EBGP配置CE邻居。PE1-AS2和PE1-AS3的配置与PE1-AS1类似。

在RR-AS1上配置Loopback接口,配置和PE1-AS1建立MP-IBGP会话,指定PE1-AS1为路由反射器客户端,并启用IPv4路由标签交互能力。配置和RR建立多跳MP-EBGP会话,要求和RR交互VPN路由时不改变路由中的下一跳,同时关闭和RR的IPv4路由交互能力,和ASBR1建立IBGP会话。启用IPv4标签交互能力,配置MPLS,骨干网运行OSPF传递路由信息。RR-AS2和RR-AS3的配置与RR-AS1类似。

在ASBR1上配置Loopback接口,配置ACL规则和Route-map规则。建立和ASBR2的EBGP会话,启用IPv4路由标签交互,配置Route-map规则为满足条件的PE路由配置标签(该Route-map规则可选,应用Route-map规则可以让BGP只为特定的路由分发标签)。建立和RR的IBGP会话,启用IPv4路由标签交互,配置Route-map规则为满足条件的跨域PE路由配置标签。静态配置本自治域PE的路由。配置MPLS信令和接口开启MPLS能力,骨干网运行OSPF传递路由信息。配置与其他ASBR相连的接口的IP地址,开启接口的标签交转发能力。ASBR2和ASBR3的配置与ASBR1类似。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE-AS、RR-AS和ASBR设备配置类似,以下以PE1-AS1设备为例建立OSPF邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router ospf 10

PE1-AS1(config-router)# router-id 1.1.1.1

PE1-AS1(config-router)# network 1.1.1.1 0.0.0.0 area 0

PE1-AS1(config-router)# network 10.10.10.0 0.0.0.255 area 0

PE1-AS1(config-router)# exit

配置MPLS基本功能。

# PE-AS、RR-AS和ASBR设备配置类似,以下以PE1-AS1设备为例配置MPLS基本功能。

PE1-AS1(config)# mpls ip

PE1-AS1(config)# mpls router ldp

PE1-AS1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1-AS1(config-mpls-router)# exit

PE1-AS1(config)# interface gigabitethernet 0/2

PE1-AS1(config-if-GigabitEthernet 0/2)# label-switching

PE1-AS1(config-if-GigabitEthernet 0/2)# mpls ip

PE1-AS1(config-if-GigabitEthernet 0/2)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1-AS1设备为例创建VPN。

PE1-AS1(config)# ip vrf VPN1

PE1-AS1(config-vrf)# rd 1:100

PE1-AS1(config-vrf)# route-target both 1:100

PE1-AS1(config-vrf)# exit

PE1-AS1(config)# interface gigabitethernet 0/1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip vrf forwarding VPN1

PE1-AS1(config-if-GigabitEthernet 0/1)# ip address 192.168.16.2 255.255.255.0

PE1-AS1(config-if-GigabitEthernet 0/1)# exit

建立BGP邻居,发布VPN路由。

# PE1-AS1和CE1-VPN1建立EBGP邻居。

PE1-AS1> enable

PE1-AS1# configure terminal

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# address-family ipv4 vrf VPN1

PE1-AS1(config-router-af)# neighbor 192.168.16.1 remote-as 65001

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# PE1-AS1和RR-AS1建立IBGP邻居。

PE1-AS1(config)# router bgp 1

PE1-AS1(config-router)# neighbor 2.2.2.2 remote-as 1

PE1-AS1(config-router)# neighbor 2.2.2.2 update-source loopback 0

PE1-AS1(config-router)# address-family vpnv4 unicast

PE1-AS1(config-router-af)# neighbor 2.2.2.2 activate

PE1-AS1(config-router-af)# exit

PE1-AS1(config-router)# address-family ipv4

PE1-AS1(config-router-af)# neighbor 2.2.2.2 activate

PE1-AS1(config-router-af)# neighbor 2.2.2.2 send-label

PE1-AS1(config-router-af)# exit-address-family

PE1-AS1(config-router)# exit

# RR-AS1和ASBR1建立IBGP邻居。

RR-AS1> enable

RR-AS1# configure terminal

RR-AS1(config)# router bgp 1

RR-AS1(config-router)# neighbor 3.3.3.3 remote-as 1

RR-AS1(config-router)# neighbor 3.3.3.3 update-source loopback 0

RR-AS1(config-router)# address-family ipv4

RR-AS1(config-router-af)# neighbor 3.3.3.3 activate

RR-AS1(config-router-af)# neighbor 3.3.3.3 send-label

RR-AS1(config-router-af)# exit-address-family

RR-AS1(config-router)# exit

# RR-AS之间建立EBGP邻居。

RR-AS1(config)# router bgp 1

RR-AS1(config-router)# neighbor 6.6.6.6 remote-as 2

RR-AS1(config-router)# neighbor 6.6.6.6 update-source loopback 0

RR-AS1(config-router)# neighbor 6.6.6.6 ebgp-multihop

RR-AS1(config-router)# neighbor 8.8.8.8 remote-as 3

RR-AS1(config-router)# neighbor 8.8.8.8 update-source loopback 0

RR-AS1(config-router)# neighbor 8.8.8.8 ebgp-multihop

RR-AS1(config-router)# address-family ipv4

RR-AS1(config-router-af)# no neighbor 6.6.6.6 activate

RR-AS1(config-router-af)# no neighbor 8.8.8.8 activate

RR-AS1(config-router-af)# exit-address-family

RR-AS1(config-router)# address-family vpnv4 unicast

RR-AS1(config-router-af)# neighbor 6.6.6.6 activate

RR-AS1(config-router-af)# neighbor 6.6.6.6 next-hop-unchanged

RR-AS1(config-router-af)# neighbor 8.8.8.8 activate

RR-AS1(config-router-af)# neighbor 8.8.8.8 next-hop-unchanged

RR-AS1(config-router-af)# exit-address-family

RR-AS1(config-router)# exit

# ASBR之间建立EBGP邻居。

ASBR1(config)# router bgp 1

ASBR1(config-router)# neighbor 30.30.30.2 remote-as 2

ASBR1(config-router)# address-family ipv4

ASBR1(config-router-af)# neighbor 30.30.30.2 send-label

ASBR1(config-router-af)# network 1.1.1.1 mask 255.255.255.255

ASBR1(config-router-af)# exit-address-family

ASBR1(config-router)# exit

验证配置结果

在设备RR-AS1、RR-AS2和RR-AS3上通过show bgp vpnv4 unicast all命令查看均存在11.11.11.11、22.22.22.22表项。

RR-AS1# show bgp vpnv4 unicast all

BGP table version is 40, local router ID is 2.2.2.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

S Stale, b - backup entry

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric      LocPrf      Weight Path

Route Distinguisher: 100:1

*>i11.11.11.11/32   1.1.1.1                  0         100           0 65001 i

*> 22.22.22.22/32   5.5.5.5                  0                       0 2 65002 i

Total number of prefixes 2

同一VPN的不同站点间可以互通。

# 设备PE1-AS1的验证结果。

假设对端CE的环回口分别为20.20.20.20和30.30.30.30。

本端CE上Ping 20.20.20.20能通。

本端CE上Ping 30.30.30.30能通。

Ping 5.5.5.5不能通。

Ping 5.5.5.5 source 1.1.1.1能通。

Ping 9.9.9.9不能通。

Ping 9.9.9.9 source 1.1.1.1能通。

# 设备PE1-AS2的验证结果。

假设对端CE的环回口分别为10.10.10.10和30.30.30.30。

本端CE上Ping 10.10.10.10能通。

本端CE上Ping 30.30.30.30能通。

Ping 1.1.1.1不能通。

Ping 1.1.1.1 source 5.5.5.5能通。

Ping 9.9.9.9不能通。

Ping 9.9.9.9 source 5.5.5.5能通。

# 设备PE1-AS3的验证结果。

假设对端CE的环回口分别为10.10.10.10和20.20.20.20。

本端CE上Ping 10.10.10.10能通。

本端CE上Ping 20.20.20.20能通。

Ping 1.1.1.1不能通。

Ping 1.1.1.1 source 9.9.9.9能通。

Ping 5.5.5.5不能通。

Ping 5.5.5.5 source 9.9.9.9能通。

配置文件

# CE1-VPN1的配置文件。

hostname CE1-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.16.1 255.255.255.0

!

interface Loopback 0

ip address 11.11.11.11 255.255.255.255

!

router bgp 65001

neighbor 192.168.16.2 remote-as 1

!

address-family ipv4

network 11.11.11.11 mask 255.255.255.255

neighbor 192.168.16.2 activate

exit-address-family

!

# CE2-VPN1的配置文件。

hostname CE2-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.17.1 255.255.255.0

!

interface Loopback 0

ip address 22.22.22.22 255.255.255.255

!

router bgp 65002

neighbor 192.168.17.2 remote-as 1

!

address-family ipv4

network 22.22.22.22 mask 255.255.255.255

neighbor 192.168.17.2 activate

exit-address-family

!

# CE3-VPN1的配置文件。

hostname CE3-VPN1

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.18.1 255.255.255.0

!

interface Loopback 0

ip address 33.33.33.33 255.255.255.255

!

router bgp 65003

neighbor 192.168.18.2 remote-as 1

!

address-family ipv4

network 33.33.33.33 mask 255.255.255.255

neighbor 192.168.18.2 activate

exit-address-family

!

# PE1-AS1的配置文件。

hostname PE1-AS1

!

mpls ip

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.16.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 10.10.10.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 1.1.1.1 255.255.255.255

!

router bgp 1

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 update-source Loopback 0

!

address-family ipv4

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 send-label

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.16.1 remote-as 65001

neighbor 192.168.16.1 activate

exit-address-family

!

router ospf 10

router-id 1.1.1.1

network 1.1.1.1 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE1-AS2的配置文件。

hostname PE1-AS2

!

mpls ip

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.17.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 50.50.50.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 5.5.5.5 255.255.255.255

!

router bgp 2

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 update-source Loopback 0

!

address-family ipv4

neighbor 6.6.6.6 activate

neighbor 6.6.6.6 send-label

exit-address-family

!

address-family vpnv4 unicast

neighbor 6.6.6.6 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.17.1 remote-as 65002

neighbor 192.168.17.1 activate

exit-address-family

!

router ospf 10

router-id 5.5.5.5

network 5.5.5.5 0.0.0.0 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE1-AS3的配置文件。

hostname PE1-AS3

!

mpls ip

!

ip vrf VPN1

rd 100:1

route-target both 100:1

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPN1

ip address 192.168.18.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 80.80.80.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 9.9.9.9 255.255.255.255

!

router bgp 3

neighbor 8.8.8.8 remote-as 3

neighbor 8.8.8.8 update-source Loopback 0

!

address-family ipv4

neighbor 8.8.8.8 activate

neighbor 8.8.8.8 send-label

exit-address-family

!

address-family vpnv4 unicast

neighbor 8.8.8.8 activate

exit-address-family

!

address-family ipv4 vrf VPN1

neighbor 192.168.18.1 remote-as 65003

neighbor 192.168.18.1 activate

exit-address-family

!

router ospf 10

router-id 9.9.9.9

network 9.9.9.9 0.0.0.0 area 0

network 80.80.80.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# RR-AS1的配置文件。

hostname RR-AS1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.10.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 1

neighbor 1.1.1.1 remote-as 1

neighbor 1.1.1.1 update-source Loopback 0

neighbor 3.3.3.3 remote-as 1

neighbor 3.3.3.3 update-source Loopback 0

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 ebgp-multihop

neighbor 6.6.6.6 update-source Loopback 0

neighbor 8.8.8.8 remote-as 3

neighbor 8.8.8.8 ebgp-multihop

neighbor 8.8.8.8 update-source Loopback 0

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 route-reflector-client

neighbor 1.1.1.1 send-label

neighbor 3.3.3.3 activate

neighbor 3.3.3.3 send-label

no neighbor 6.6.6.6 activate

no neighbor 8.8.8.8 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 route-reflector-client

neighbor 6.6.6.6 activate

neighbor 6.6.6.6 next-hop-unchanged

neighbor 8.8.8.8 activate

neighbor 8.8.8.8 next-hop-unchanged

exit-address-family

!

router ospf 10

router-id 2.2.2.2

network 2.2.2.2 0.0.0.0 area 0

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# RR-AS2的配置文件。

hostname RR-AS2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 50.50.50.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 40.40.40.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 6.6.6.6 255.255.255.255

!

router bgp 2

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 ebgp-multihop

neighbor 2.2.2.2 update-source Loopback 0

neighbor 4.4.4.4 remote-as 2

neighbor 4.4.4.4 update-source Loopback 0

neighbor 5.5.5.5 remote-as 2

neighbor 5.5.5.5 update-source Loopback 0

neighbor 8.8.8.8 remote-as 3

neighbor 8.8.8.8 ebgp-multihop

neighbor 8.8.8.8 update-source Loopback 0

!

address-family ipv4

no neighbor 2.2.2.2 activate

neighbor 4.4.4.4 activate

neighbor 4.4.4.4 send-label

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 route-reflector-client

neighbor 5.5.5.5 send-label

no neighbor 8.8.8.8 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 next-hop-unchanged

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 route-reflector-client

neighbor 8.8.8.8 activate

neighbor 8.8.8.8 next-hop-unchanged

exit-address-family

!

router ospf 10

router-id 6.6.6.6

network 6.6.6.6 0.0.0.0 area 0

network 40.40.40.0 0.0.0.255 area 0

network 50.50.50.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# RR-AS3的配置文件。

hostname RR-AS3

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 80.80.80.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 70.70.70.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 8.8.8.8 255.255.255.255

!

router bgp 3

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 ebgp-multihop

neighbor 2.2.2.2 update-source Loopback 0

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 ebgp-multihop

neighbor 6.6.6.6 update-source Loopback 0

neighbor 7.7.7.7 remote-as 3

neighbor 7.7.7.7 update-source Loopback 0

neighbor 9.9.9.9 remote-as 3

neighbor 9.9.9.9 update-source Loopback 0

!

address-family ipv4

no neighbor 2.2.2.2 activate

no neighbor 6.6.6.6 activate

neighbor 7.7.7.7 activate

neighbor 7.7.7.7 send-label

neighbor 9.9.9.9 activate

neighbor 9.9.9.9 route-reflector-client

neighbor 9.9.9.9 send-label

exit-address-family

!

address-family vpnv4 unicast

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 next-hop-unchanged

neighbor 6.6.6.6 activate

neighbor 6.6.6.6 next-hop-unchanged

neighbor 9.9.9.9 activate

neighbor 9.9.9.9 route-reflector-client

exit-address-family

!

router ospf 10

router-id 8.8.8.8

network 8.8.8.8 0.0.0.0 area 0

network 70.70.70.0 0.0.0.255 area 0

network 80.80.80.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR1的配置文件。

hostname ASBR1

!

mpls ip

!

route-map internal-mpls-route permit 10

match ip address 101

set mpls-label

!

route-map external-mpls-route permit 10

match ip address 102

set mpls-label

!

ip access-list extended 101

10 permit ip host 1.1.1.1 any

!

!

ip access-list extended 102

10 permit ip host 5.5.5.5 any

20 permit ip host 9.9.9.9 any

!

!

interface GigabitEthernet 0/1

no switchport

ip address 30.30.30.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 20.20.20.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 1

neighbor 2.2.2.2 remote-as 1

neighbor 2.2.2.2 update-source Loopback 0

neighbor 30.30.30.2 remote-as 2

!

address-family ipv4

network 1.1.1.1 mask 255.255.255.255

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 send-label

neighbor 2.2.2.2 route-map external-mpls-route out

neighbor 30.30.30.2 activate

neighbor 30.30.30.2 send-label

neighbor 30.30.30.2 route-map internal-mpls-route out

exit-address-family

!

router ospf 10

router-id 3.3.3.3

redistribute connected

network 3.3.3.3 0.0.0.0 area 0

network 20.20.20.0 0.0.0.255 area 0

network 30.30.30.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0

!

# ASBR2的配置文件。

hostname ASBR2

!

mpls ip

!

route-map internal-mpls-route permit 10

match ip address 101

set mpls-label

!

route-map external-mpls-route permit 10

match ip address 102

set mpls-label

!

ip access-list extended 101

10 permit ip host 5.5.5.5 any

!

!

ip access-list extended 102

10 permit ip host 1.1.1.1 any

20 permit ip host 9.9.9.9 any

!

interface GigabitEthernet 0/1

no switchport

ip address 40.40.40.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 30.30.30.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/3

no switchport

ip address 60.60.60.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 4.4.4.4 255.255.255.255

!

router bgp 2

bgp log-neighbor-changes

neighbor 6.6.6.6 remote-as 2

neighbor 6.6.6.6 update-source Loopback 0

neighbor 30.30.30.1 remote-as 1

neighbor 60.60.60.2 remote-as 3

!

address-family ipv4

network 5.5.5.5 mask 255.255.255.255

neighbor 6.6.6.6 activate

neighbor 6.6.6.6 send-label

neighbor 6.6.6.6 route-map external-mpls-route out

neighbor 30.30.30.1 activate

neighbor 30.30.30.1 send-label

neighbor 30.30.30.1 route-map internal-mpls-route out

neighbor 60.60.60.2 activate

neighbor 60.60.60.2 send-label

neighbor 60.60.60.2 route-map internal-mpls-route out

exit-address-family

!

router ospf 10

router-id 4.4.4.4

network 4.4.4.4 0.0.0.0 area 0

network 30.30.30.0 0.0.0.255 area 0

network 40.40.40.0 0.0.0.255 area 0

network 60.60.60.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# ASBR3的配置文件。

hostname ASBR3

!

mpls ip

!

route-map internal-mpls-route permit 10

match ip address 101

set mpls-label

!

route-map external-mpls-route permit 10

match ip address 102

set mpls-label

!

ip access-list extended 101

10 permit ip host 9.9.9.9 any

!

!

ip access-list extended 102

10 permit ip host 1.1.1.1 any

20 permit ip host 5.5.5.5 any

!

!

interface GigabitEthernet 0/1

no switchport

ip address 70.70.70.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 60.60.60.2 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 7.7.7.7 255.255.255.255

!

router bgp 3

neighbor 8.8.8.8 remote-as 3

neighbor 8.8.8.8 update-source Loopback 0

neighbor 60.60.60.1 remote-as 2

!

address-family ipv4

network 9.9.9.9 mask 255.255.255.255

neighbor 8.8.8.8 activate

neighbor 8.8.8.8 send-label

neighbor 8.8.8.8 route-map external-mpls-route out

neighbor 60.60.60.1 activate

neighbor 60.60.60.1 send-label

neighbor 60.60.60.1 route-map internal-mpls-route out

exit-address-family

!

router ospf 10

router-id 7.7.7.7

redistribute connected

network 7.7.7.7 0.0.0.0 area 0

network 60.60.60.0 0.0.0.255 area 0

network 70.70.70.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0

!

常见错误

RR间配置多跳MP-EBGP时,未关闭IPV4路由交互能力。

多跳MP-EBGP会话交互VPN路由时,未配置不改变下一跳,导致VPN站点间不能互通。

OSPF的VPN扩展特性(Domain-ID)配置举例

组网需求

客户的两个不同站点通过MPLS骨干网交互VPN路由,客户站点通过OSPF协议接入PE,要求客户的OSPF路由信息通过MPLS骨干网交互后,可以最大程度还原为原始站点的OSPF路由。

组网图

OSPF的VPN扩展特性(Domain-ID)配置组网图

image.png

配置要点

在SITEA和SITEB上配置PE-CE间OSPF协议。

在PE1上配置Loopback接口,创建VRF VPNA,定义RD值和RT值,并把VRF和连接CE1的接口关联。配置BGP协议,和PE2建立MP-IBGP会话,通过OSPF协议和CE交互路由,配置OSPF实例的域ID为10。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。PE2的配置与PE1类似。

在P1和P2上配置骨干网MPLS信令,开启接口MPLS能力,配置骨干网路由协议。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# 所有设备配置类似,以下以PE设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

PE1(config-router)# exit

配置MPLS基本功能。

# PE和P设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-GigabitEthernet 0/2)# ip address 172.168.10.1 255.255.255.0

PE1(config-GigabitEthernet 0/2)# label-switching

PE1(config-GigabitEthernet 0/2)# mpls ip

PE1(config-GigabitEthernet 0/2)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPNA

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target both 1:100

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-GigabitEthernet 0/1)# ip vrf forwarding VPNA

PE1(config-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE1(config-GigabitEthernet 0/1)# exit

配置VPN路由。

# PE1和PE2设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPNA

PE1(config-router)# network 192.168.10.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# domain-id 10.10.10.10

PE1(config-router)# exit

建立BGP邻居,发布VPN路由。

# PE建立IBGP邻居,发布VPN路由。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPNA

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

验证配置结果

配置完成后,使用show ip route命令查看存在VPNA-SITEA和VPNA-SITEB的路由。

# 设备VPNA-SITEB的验证结果。

VPNA-SITEB# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

O IA    192.168.10.0/24 [110/2] via 192.168.30.1, 00:00:36, GigabitEthernet 0/1

C       192.168.30.0/24 is directly connected, GigabitEthernet 0/1

# 设备PE2的验证结果。

PE2# show ip route vrf VPNA

Routing Table: VPNA

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B       192.168.10.0/24 [110/2] via 172.168.0.1, 00:00:36

C       192.168.30.0/24 is directly connected, GigabitEthernet 0/3

# 设备PE1的验证结果。

PE1# show ip route vrf VPNA

Routing Table: VPNA

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.10.0/24 is directly connected, GigabitEthernet 0/1

B       192.168.30.0/24 [110/2] via 172.168.0.2, 00:00:36

# 设备VPNA-SITEA的验证结果。

VPNA-SITEA# show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.10.0/24 is directly connected, GigabitEthernet 0/1

O IA    192.168.30.0/24 [110/2] via 192.168.10.1, 00:00:36, GigabitEthernet 0/1

配置文件

# VPNA-SITEA的配置文件。

hostname VPNA-SITEA

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.10.2 255.255.255.0

!

router ospf 10

network 192.168.10.0 0.0.0.255 area 0

!

# VPNA-SITEB的配置文件。

hostname VPNA-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.30.2 255.255.255.0

!

router ospf 10

network 192.168.30.0 0.0.0.255 area 0

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.10.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 172.168.0.1 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

domain-id 10.10.10.10

redistribute bgp subnets

network 192.168.10.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.30.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 172.168.0.2 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

domain-id 10.10.10.10

redistribute bgp subnets

network 192.168.30.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1的配置文件。

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router ospf 1

network 172.168.0.3 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P2的配置文件。

hostname P2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.20.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.4 255.255.255.255

!

router ospf 1

network 172.168.0.4 0.0.0.0 area 0

network 172.168.20.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

常见错误

Router ID不是32位,导致LDP会话建立失败。

OSPF的VPN扩展特性(Sham-link)配置举例

组网需求

客户的两个不同站点通过MPLS骨干网交互VPN路由,同时在两个站点间又建立一条“后门链路”,确保当MPLS骨干网发生故障时,两个站点之间仍然可以通过备份链路正常交互信息。

组网图

OSPF的VPN扩展特性(Sham-link)配置组网图

image.png

配置要点

在VPNA-SITEA上分别配置和PE1、VPNA-SITEB之间的OSPF协议,其中它和VPNA-SITEB站点是通过后门链路运行OSPF协议,配置接口OSPF的Cost值。

在VPNA-SITEB上分别配置和PE2、VPNA-SITEA之间的OSPF协议,其中它和VPNA-SITEA站点是通过后门链路运行OSPF协议,配置接口OSPF的Cost值。

在PE1上配置Loopback接口,创建VRF VPNA,定义RD值和RT值,并把VRF和对应的接口关联。配置VRF的环回口,用来建立Sham-link。配置BGP协议,和PE2建立MP-IBGP会话,通过OSPF协议和VPNA-SITEA交互路由,和PE2上的OSPF实例建立Sham-link。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在PE2上配置Loopback接口,创建VRF VPNA,定义RD值和RT值,并把VRF和对应的接口关联。配置VRF的环回口,用来建立Sham-link。配置BGP协议,和PE1建立MP-IBGP会话,通过OSPF协议和VPNA-SITEB交互VPN路由,配置和PE1上的OSPF实例建立Sham-link。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。

在P1上配置骨干网MPLS信令,开启接口MPLS能力,配置骨干网路由协议。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE和P设备配置类似,以下以PE设备为例建立OSPF邻居。

PE1> enable

PE1# configure terminal

PE1(config)# router ospf 1

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

PE1(config-router)# end

# VPNA-SITEA和VPNA-SITEB设备配置类似,以下以VPNA-SITEA设备为例建立OSPF邻居。

VPNA-SITEA> enable

VPNA-SITEA# configure terminal

VPNA-SITEA(config)# router ospf 10

VPNA-SITEA(config-router)# network 192.168.10.0 255.255.255.0 area 0

VPNA-SITEA(config-router)# network 192.168.20.0 255.255.255.0 area 0

VPNA-SITEA(config-router)# exit

VPNA-SITEA(config)# interface gigabitethernet 0/1

VPNA-SITEA(config-GigabitEthernet 0/1)# ip address 192.168.10.2 255.255.255.0

VPNA-SITEA(config-GigabitEthernet 0/1)# ip ospf cost 1

VPNA-SITEA(config)# interface gigabitethernet 0/2

VPNA-SITEA(config-GigabitEthernet 0/2)# ip address 192.168.20.1 255.255.255.0

VPNA-SITEA(config-GigabitEthernet 0/2)# ip ospf cost 200

配置MPLS基本功能。

# PE和P设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/2

PE1(config-GigabitEthernet 0/2)# ip address 172.168.10.1 255.255.255.0

PE1(config-GigabitEthernet 0/2)# label-switching

PE1(config-GigabitEthernet 0/2)# mpls ip

PE1(config-GigabitEthernet 0/2)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPNA

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target both 1:100

PE1(config-vrf)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-GigabitEthernet 0/1)# ip vrf forwarding VPNA

PE1(config-GigabitEthernet 0/1)# ip address 192.168.10.1 255.255.255.0

PE1(config-GigabitEthernet 0/1)# exit

PE1(config)# interface loopback 10

PE1(config-Loopback 10)# ip vrf forwarding VPNA

PE1(config-Loopback 10)# ip address 192.168.0.1 255.255.255.255

PE1(config-Loopback 10)# exit

配置VPN路由。

# PE设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPNA

PE1(config-router)# network 192.168.10.0 255.255.255.0 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# area 0 sham-link 192.168.0.1 192.168.0.2

PE1(config-router)# exit

建立BGP邻居,发布VPN路由。

# PE建立IBGP邻居,发布VPN路由。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPNA

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# redistribute connected

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

验证配置结果

配置完成后,在PE设备上查看存在OSPF Sham-link路由。

# 设备PE1的验证结果。

PE1# show ip ospf 10 sham-links

Sham Link SLINK0 to address 192.168.0.2 is up

Area 0.0.0.0 source address 192.168.0.1, Cost: 1

Output interface is GigabitEthernet 0/2

Nexthop address 172.16.40.2

Transmit Delay is 1 sec, State Point-To-Point,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Hello due in 00:00:01

Adjacency state Full

PE1# show ip ospf 10 neighbor

OSPF process 10, 1 Neighbors, 1 is Full:

Neighbor ID     Pri   State                BFD State  Dead Time   Address         Interface

192.168.0.2        1   Full/ -              -          00:00:34    192.168.0.2         SLINK0

PE1# show ip route vrf VPNA

Routing Table: VPNA

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C    192.168.0.1/32 is local host.

B    192.168.0.2/32 [200/0] via 172.168.0.2, 00:11:31

C    192.168.10.0/24 is directly connected, GigabitEthernet 0/1

C    192.168.10.1/32 is local host.

O    192.168.20.0/24 [110/201] via 192.168.10.2, 00:16:23, GigabitEthernet 0/1

O    192.168.30.0/24 [110/2] via 172.168.0.2, 00:11:15

# 设备PE2的验证结果。

PE2# show ip ospf 10 sham-links

Sham Link SLINK0 to address 192.168.0.1 is up

Area 0.0.0.0 source address 192.168.0.2, Cost: 1

Output interface is GigabitEthernet 0/2

Nexthop address 172.16.10.1

Transmit Delay is 1 sec, State Point-To-Point,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Hello due in 00:00:01

Adjacency state Full

PE2# show ip ospf 10 neighbor

OSPF process 10, 1 Neighbors, 1 is Full:

Neighbor ID     Pri   State                BFD State  Dead Time   Address         Interface

192.168.0.1        1   Full/ -              -          00:00:34    192.168.0.1         SLINK0

PE2# show ip route vrf VPNA

Routing Table: VPNA

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

B    192.168.0.1/32 [200/0] via 172.168.0.1, 00:14:47

C    192.168.0.2/32 is local host.

O    192.168.10.0/24 [110/2] via 172.168.0.1, 00:14:35

O    192.168.20.0/24 [110/201] via 192.168.30.2, 00:44:05, GigabitEthernet 0/1

C    192.168.30.0/24 is directly connected, GigabitEthernet 0/1

C    192.168.30.1/32 is local host.

配置文件

# VPNA-SITEA的配置文件。

hostname VPNA-SITEA

!

interface GigabitEthernet 0/1

no switchport

ip ospf cost 1

ip address 192.168.10.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip ospf cost 200

ip address 192.168.20.1 255.255.255.0

!

router ospf 10

network 192.168.10.0 0.0.0.255 area 0

network 192.168.20.0 0.0.0.255 area 0

!

# VPNA-SITEB的配置文件。

hostname VPNA-SITEB

!

interface GigabitEthernet 0/1

no switchport

ip ospf cost 1

ip address 192.168.30.2 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip ospf cost 200

ip address 192.168.20.2 255.255.255.0

!

router ospf 10

network 192.168.30.0 0.0.0.255 area 0

network 192.168.20.0 0.0.0.255 area 0

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.10.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.10.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

interface Loopback 10

ip vrf forwarding VPNA

ip address 192.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute connected

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 172.168.0.1 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

domain-id 10.10.10.10

redistribute bgp subnets

network 192.168.10.0 0.0.0.255 area 0

area 0 sham-link 192.168.0.1 192.168.0.2

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPNA

rd 1:100

route-target both 1:100

!

interface GigabitEthernet 0/1

no switchport

ip vrf forwarding VPNA

ip address 192.168.30.1 255.255.255.0

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

interface Loopback 10

ip vrf forwarding VPNA

ip address 192.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

exit-address-family

!

address-family ipv4 vrf VPNA

redistribute connected

redistribute ospf 10 match internal

exit-address-family

!

router ospf 1

network 172.168.0.2 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

router ospf 10 vrf VPNA

domain-id 10.10.10.10

redistribute bgp subnets

network 192.168.30.0 0.0.0.255 area 0

area 0 sham-link 192.168.0.2 192.168.0.1

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1的配置文件。

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.20.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router ospf 1

network 172.168.0.3 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.20.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P2的配置文件。

hostname P2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.20.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.4 255.255.255.255

!

router ospf 1

network 172.168.0.4 0.0.0.0 area 0

network 172.168.20.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

常见错误

Router-ID不是32位,导致LDP会话建立失败。

OSPF的VPN扩展特性(MCE配置OSPF多实例)配置举例

组网需求

客户站点有多个不同的业务,同一业务能够跨越MPLS骨干网进行交互,不同业务之间互相隔离。

组网图

OSPF的VPN扩展特性(MCE配置OSPF多实例)配置组网图

image.png

配置要点

在MCE-A上配置PE1和CE1间的Trunk链路,配置两个代表不同业务的VRF,并绑定各自的接口,同时配置OSPF协议。MCE-B的配置与MCE-A类似。

在PE1上配置Loopback接口,配置PE1和CE1间的Trunk链路,创建两个VRF VPN1和VPN2,分别对应不同的业务,并把VRF和对应的接口关联,连接CE1的接口关联VRF。配置BGP协议,和PE2建立MP-IBGP会话,通过OSPF协议和CE1交互路由。配置骨干网MPLS信令,开启公网口的MPLS能力,配置骨干网路由协议。PE2的配置与PE1类似。

在P1上配置骨干网MPLS信令,开启接口MPLS转发能力,配置骨干网路由协议。

说明

在连接PE1和CE1时,本例使用SVI接口和802.1Q子接口的配置,有些设备可能不支持。实际上,只要PE1与CE1能够形成两个路由邻接,PE1与CE1之间可以通过任意两条链路相连,既可以是物理链路,也可以是逻辑链路。因此,用户可以根据实际情况选择合适的连接方式。

配置步骤

配置所有设备接口的IP地址(略)。

建立OSPF邻居,使接口单播路由可达。

# PE设备配置类似,以下以PE设备为例建立OSPF邻居。

PE1(config)# router ospf 1

PE1(config-router)# network 172.168.10.0 0.0.0.255 area 0

PE1(config-router)# network 172.168.0.1 0.0.0.0 area 0

配置MPLS基本功能。

# PE和P设备配置类似,以下以PE1设备为例配置MPLS基本功能。

PE1(config)# mpls ip

PE1(config)# mpls router ldp

PE1(config-mpls-router)# ldp router-id interface loopback 0 force

PE1(config-mpls-router)# exit

PE1(config)# interface gigabitethernet 0/1

PE1(config-if-GigabitEthernet 0/1)# ip address 172.168.10.1 255.255.255.0

PE1(config-if-GigabitEthernet 0/1)# label-switching

PE1(config-if-GigabitEthernet 0/1)# mpls ip

PE1(config-if-GigabitEthernet 0/1)# exit

创建并关联VPN。

# PE设备配置类似,以下以PE1设备为例创建VPN。

PE1(config)# ip vrf VPN1

PE1(config-vrf)# rd 1:100

PE1(config-vrf)# route-target both 1:100

PE1(config-vrf)# exit

PE1(config)# ip vrf VPN2

PE1(config-vrf)# rd 1:200

PE1(config-vrf)# route-target both 1:200

PE1(config-vrf)# exit

PE1(config)# vlan 10

PE1(config)# interface vlan 10

PE1(config-if-Vlan 10)# ip vrf forwarding VPN1

PE1(config-if-Vlan 10)# ip address 192.168.10.1 255.255.255.0

PE1(config-if-Vlan 10)# exit

PE1(config)# vlan 20

PE1(config)# interface vlan 20

PE1(config-if-Vlan 20)# ip vrf forwarding VPN1

PE1(config-if-Vlan 20)# ip address 192.168.20.1 255.255.255.0

# MCE设备配置类似,以下以MCE-A设备为例创建VPN。

MCE-A> enable

MCE-A# configure terminal

MCE-A(config)# ip vrf VPN1

MCE-A(config-vrf)# exit

MCE-A(config)# ip vrf VPN2

MCE-A(config-vrf)# exit

MCE-A(config)# vlan 10

MCE-A(config)# interface vlan 10

MCE-A(config-if-Vlan 10)# ip vrf forwarding VPN1

MCE-A(config-if-Vlan 10)# ip address 192.168.10.2 255.255.255.0

MCE-A(config-if-Vlan 10)# exit

MCE-A(config)# vlan 20

MCE-A(config)# interface vlan 20

MCE-A(config-if-Vlan 20)# ip vrf forwarding VPN2

MCE-A(config-if-Vlan 20)# ip address 192.168.20.2 255.255.255.0

MCE-A(config-if-Vlan 20)# exit

配置VPN路由。

# PE设备配置类似,以下以PE1设备为例配置VPN路由。

PE1(config)# router ospf 10 vrf VPN1

PE1(config-router)# network 192.168.10.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

PE1(config)# router ospf 20 vrf VPN2

PE1(config-router)# network 192.168.20.0 0.0.0.255 area 0

PE1(config-router)# redistribute bgp subnets

PE1(config-router)# exit

# MCE设备配置类似,以下以MCE-A设备为例配置VPN路由。

MCE-A(config)# router ospf 10 vrf VPN1

MCE-A(config-router)# network 192.168.10.0 0.0.0.255 area 0

MCE-A(config-router)# capability vrf-lite

MCE-A(config-router)# exit

MCE-A(config)# router ospf 20 vrf VPN2

MCE-A(config-router)# network 192.168.20.0 0.0.0.255 area 0

MCE-A(config-router)# capability vrf-lite

建立BGP邻居,发布VPN路由。

# PE建立IBGP邻居,发布VPN路由。

PE1(config)# router bgp 1

PE1(config-router)# neighbor 172.168.0.2 remote-as 1

PE1(config-router)# neighbor 172.168.0.2 update-source loopback 0

PE1(config-router)# address-family vpnv4

PE1(config-router-af)# neighbor 172.168.0.2 activate

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN1

PE1(config-router-af)# redistribute ospf 10

PE1(config-router-af)# redistribute connected

PE1(config-router-af)# exit-address-family

PE1(config-router)# address-family ipv4 vrf VPN2

PE1(config-router-af)# redistribute ospf 20

PE1(config-router-af)# redistribute connected

PE1(config-router-af)# exit-address-family

PE1(config-router)# exit

验证配置结果

配置完成后,在MCE-A和MCE-B上通过show ip route vrf命令查看私网路由表。

# 设备MCE-A的验证结果。

MCE-A# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.10.0/24 is directly connected, VLAN 10

O       192.168.110.0/24 [110/101] via 192.168.21.2, 00:56:23, GigabitEthernet 0/2

O IA    192.168.130.0/24 [110/2] via 192.168.10.1, 00:00:36, VLAN 10

MCE-A# show ip route vrf VPN2

Routing Table: VPN2

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.20.0/24 is directly connected, VLAN 20

O       192.168.120.0/24 [110/101] via 192.168.22.2, 00:56:23, GigabitEthernet 0/3

O IA    192.168.140.0/24 [110/2] via 192.168.20.1, 00:00:36, VLAN 20

# 设备MCE-B的验证结果。

MCE-B# show ip route vrf VPN1

Routing Table: VPN1

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.30.0/24 is directly connected, VLAN 30

O       192.168.130.0/24 [110/101] via 192.168.23.2, 00:56:23, GigabitEthernet 0/2

O IA    192.168.110.0/24 [110/2] via 192.168.30.1, 00:00:36, VLAN 30

MCE-B# show ip route vrf VPN2

Routing Table: VPN2

Codes:  C - connected, S - static, R - RIP, B - BGP

O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default

Gateway of last resort is no set

C       192.168.40.0/24 is directly connected, VLAN 40

O       192.168.140.0/24 [110/101] via 192.168.24.2, 00:56:23, GigabitEthernet 0/3

O IA    192.168.140.0/24 [110/2] via 192.168.40.1, 00:00:36, VLAN 40

配置文件

# MCE-A的配置文件。

hostname MCE-A

!

ip vrf VPN1

!

ip vrf VPN2

!

vlan 10

!

vlan 20

!

interface GigabitEthernet 0/1

switchport mode trunk

!

interface vlan 10

ip vrf forwarding VPN1

ip address 192.168.10.2 255.255.255.0

!

interface vlan 20

ip vrf forwarding VPN2

ip address 192.168.20.2 255.255.255.0

!

router ospf 10 vrf VPN1

network 192.168.10.0 0.0.0.255 area 0

capability vrf-lite

!

router ospf 20 vrf VPN2

network 192.168.20.0 0.0.0.255 area 0

capability vrf-lite

!

# MCE-B的配置文件。

hostname MCE-B

!

ip vrf VPN1

!

ip vrf VPN2

!

vlan 30

!

vlan 40

!

interface GigabitEthernet 0/1

switchport mode trunk

!

interface vlan 30

ip vrf forwarding VPN1

ip address 192.168.30.2 255.255.255.0

!

interface vlan 40

ip vrf forwarding VPN2

ip address 192.168.40.2 255.255.255.0

!

router ospf 10 vrf VPN1

network 192.168.30.0 0.0.0.255 area 0

capability vrf-lite

!

router ospf 20 vrf VPN2

network 192.168.40.0 0.0.0.255 area 0

capability vrf-lite

!

# PE1的配置文件。

hostname PE1

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

ip vrf VPN2

rd 1:200

route-target both 1:200

!

vlan 10

!

vlan 20

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

switchport mode trunk

!

interface vlan 10

ip vrf forwarding VPN1

ip address 192.168.10.1 255.255.255.0

!

interface vlan 20

ip vrf forwarding VPN2

ip address 192.168.20.1 255.255.255.0

!

interface Loopback 0

ip address 172.168.0.1 255.255.255.255

!

router bgp 1

neighbor 172.168.0.2 remote-as 1

neighbor 172.168.0.2 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.2 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.2 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute connected

redistribute ospf 10 match internal

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute connected

redistribute ospf 20 match internal

exit-address-family

!

router ospf 10 vrf VPN1

network 192.168.10.0 255.255.255.0 area 0

redistribute bgp subnets

!

router ospf 10 vrf VPN2

network 192.168.20.0 255.255.255.0 area 0

redistribute bgp subnets

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# PE2的配置文件。

hostname PE2

!

mpls ip

!

ip vrf VPN1

rd 1:100

route-target both 1:100

!

ip vrf VPN2

rd 1:200

route-target both 1:200

!

vlan 30

!

vlan 40

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

switchport mode trunk

!

interface Loopback 0

ip address 172.168.0.2 255.255.255.255

!

router bgp 1

neighbor 172.168.0.1 remote-as 1

neighbor 172.168.0.1 update-source Loopback 0

!

address-family ipv4

neighbor 172.168.0.1 activate

exit-address-family

!

address-family vpnv4 unicast

neighbor 172.168.0.1 activate

exit-address-family

!

address-family ipv4 vrf VPN1

redistribute connected

redistribute ospf 10 match internal

exit-address-family

!

address-family ipv4 vrf VPN2

redistribute connected

redistribute ospf 20 match internal

exit-address-family

!

router ospf 1

network 172.168.0.2 0.0.0.0 area 0

network 172.168.40.0 0.0.0.255 area 0

!

router ospf 10 vrf VPN1

network 192.168.30.0 255.255.255.0 area 0

redistribute bgp subnets

!

router ospf 10 vrf VPN2

network 192.168.40.0 255.255.255.0 area 0

redistribute bgp subnets

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

# P1的配置文件。

hostname P1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 172.168.10.2 255.255.255.0

label-switching

mpls ip

!

interface GigabitEthernet 0/2

no switchport

ip address 172.168.40.1 255.255.255.0

label-switching

mpls ip

!

interface Loopback 0

ip address 172.168.0.3 255.255.255.255

!

router ospf 1

network 172.168.0.3 0.0.0.0 area 0

network 172.168.10.0 0.0.0.255 area 0

network 172.168.40.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

常见错误

Router ID不是32位,导致LDP会话建立失败。

IPv6 MPLS L3VPN典型配置举例

6VPE服务模型配置举例

组网需求

某全国性公司分别在福州和北京建立分支机构,通过接入ISP实现通信。两个分支机构内部均采用IPv6通信,而ISP是IPv4 MPLS网络。该公司希望分支机构之间能够正常通信,而机构内部使用VPN连接,不与外部的ISP进行通信。

组网图

6VPE服务模型配置组网图

image.png

配置要点

在6VPE1和6VPE2设备上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达,并开启IPv6转发能力。

在6VPE1和6VPE2上配置公网隧道。

在6VPE1和6VPE2上创建VRF。

分别配置6VPE1和6VPE2设备在VRF下的IPv6地址和路由。

配置6VPE1和6VPE2之间的BGP会话。

分别配置6VPE1和6VPE2设备在VRF下重分发和CE1、CE2的IPv6路由。

在CE1和CE2上开启IPv6转发能力,配置IPv6地址和IPv6静态路由。

配置步骤

在6VPE1和6VPE2上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达,并开启IPv6转发能力。

# 设备6VPE1的配置。

6VPE1> enable

6VPE1# configure terminal

6VPE1(config)# interface gigabitethernet 0/1

6VPE1(config-if-GigabitEthernet 0/1)# no switchport

6VPE1(config-if-GigabitEthernet 0/1)# ip address 10.0.34.3 255.255.255.0

6VPE1(config-if-GigabitEthernet 0/1)# exit

6VPE1(config)# interface loopback 0

6VPE1(config-if-Loopback 0)# ip address 10.0.0.3 255.255.255.255

6VPE1(config-if-Loopback 0)# exit

6VPE1(config)# router ospf 1

6VPE1(config-router)# network 10.0.0.3 0.0.0.0 area 0

6VPE1(config-router)# network 10.0.34.0 0.0.0.255 area 0

6VPE1(config-router)# exit

6VPE1(config)# ipv6 unicast-routing

# 设备6VPE2的配置。

6VPE2> enable

6VPE2# configure terminal

6VPE2(config)# interface gigabitethernet 0/1

6VPE2(config-if-GigabitEthernet 0/1)# no switchport

6VPE2(config-if-GigabitEthernet 0/1)# ip address 10.0.34.4 255.255.255.0

6VPE2(config-if-GigabitEthernet 0/1)# exit

6VPE2(config)# interface loopback 0

6VPE2(config-if-Loopback 0)# ip address 10.0.0.4 255.255.255.255

6VPE2(config-if-Loopback 0)# exit

6VPE2(config)# router ospf 1

6VPE2(config-router)# network 10.0.0.4 0.0.0.0 area 0

6VPE2(config-router)# network 10.0.34.0 0.0.0.255 area 0

6VPE2(config-router)# exit

6VPE2(config)# ipv6 unicast-routing

在6VPE1和6VPE2上配置公网隧道。

# 设备6VPE1的配置。

6VPE1(config)# mpls ip

6VPE1(config)# mpls router ldp

6VPE1(config-mpls-router)# ldp router-id interface loopback 0 force

6VPE1(config-mpls-router)# exit

6VPE1(config)# interface gigabitethernet 0/1

6VPE1(config-if-GigabitEthernet 0/1)# label-switching

6VPE1(config-if-GigabitEthernet 0/1)# mpls ip

6VPE1(config-if-GigabitEthernet 0/1)# exit

# 设备6VPE2的配置。

6VPE2(config)# mpls ip

6VPE2(config)# mpls router ldp

6VPE2(config-mpls-router)# ldp router-id interface loopback 0 force

6VPE2(config-mpls-router)# exit

6VPE2(config)# interface gigabitethernet 0/1

6VPE2(config-if-GigabitEthernet 0/1)# label-switching

6VPE2(config-if-GigabitEthernet 0/1)# mpls ip

6VPE2(config-if-GigabitEthernet 0/1)# exit

在6VPE1和6VPE2上创建VRF。

# 设备6VPE1的配置。

6VPE1(config)# vrf definition vrf1

6VPE1(config-vrf)# rd 34:34

6VPE1(config-vrf)# address-family ipv6

6VPE1(config-vrf-af)# route-target export 34:34

6VPE1(config-vrf-af)# route-target import 34:34

6VPE1(config-vrf-af)# exit-address-family

6VPE1(config-vrf)# exit

# 设备6VPE2的配置。

6VPE2(config)# vrf definition vrf1

6VPE2(config-vrf)# rd 34:34

6VPE2(config-vrf)# address-family ipv6

6VPE2(config-vrf-af)# route-target export 34:34

6VPE2(config-vrf-af)# route-target import 34:34

6VPE2(config-vrf-af)# exit-address-family

6VPE2(config-vrf-af)# exit

分别配置6VPE1和6VPE2设备在VRF下的IPv6地址和路由。

# 设备6VPE1的配置。

6VPE1(config)# interface gigabitethernet 0/2

6VPE1(config-if-GigabitEthernet 0/2)# vrf forwarding vrf1

6VPE1(config-if-GigabitEthernet 0/2)# ipv6 enable

6VPE1(config-if-GigabitEthernet 0/2)# ipv6 address 13::3/64

6VPE1(config-if-GigabitEthernet 0/2)# exit

6VPE1(config)# ipv6 route vrf vrf1 10::1/128 13::1

# 设备6VPE2的配置。

6VPE2(config)# interface gigabitethernet 0/2

6VPE2(config-if-GigabitEthernet 0/2)# vrf forwarding vrf1

6VPE2(config-if-GigabitEthernet 0/2)# ipv6 enable

6VPE2(config-if-GigabitEthernet 0/2)# ipv6 address 24::4/64

6VPE2(config-if-GigabitEthernet 0/2)# exit

6VPE2(config)# ipv6 route vrf vrf1 10::2/128 24::2

配置6VPE1和6VPE2之间的BGP会话。

# 设备6VPE1的配置。

6VPE1(config)# router bgp 34

6VPE1(config-router)# neighbor 10.0.0.4 remote-as 34

6VPE1(config-router)# neighbor 10.0.0.4 update-source loopback 0

6VPE1(config-router)# address-family vpnv6 unicast

6VPE1(config-router-af)# neighbor 10.0.0.4 activate

6VPE1(config-router-af)# exit-address-family

# 设备6VPE2的配置。

6VPE2(config)# router bgp 34

6VPE2(config-router)# neighbor 10.0.0.3 remote-as 34

6VPE2(config-router)# neighbor 10.0.0.3 update-source loopback 0

6VPE2(config-router)# address-family vpnv6 unicast

6VPE2(config-router-af)# neighbor 10.0.0.3 activate

6VPE2(config-router-af)# exit-address-family

分别配置6VPE1和6VPE2设备在VRF下分发IPv6路由。

# 设备6VPE1的配置。

6VPE1(config-router)# address-family ipv6 unicast vrf vrf1

6VPE1(config-router-af)# redistribute static

# 设备6VPE2的配置。

6VPE2(config-router)# address-family ipv6 vrf vrf1

6VPE2(config-router-af)# redistribute static

在CE1和CE2上开启IPv6转发能力,配置IPv6地址和IPv6静态路由。

# 设备CE1的配置。

CE1> enable

CE1# configure terminal

CE1(config)# ipv6 unicast-routing

CE1(config)# interface loopback 0

CE1(config-if-Loopback 0)# ipv6 enable

CE1(config-if-Loopback 0)# ipv6 address 10::1/128

CE1(config-if-Loopback 0)# exit

CE1(config)# interface gigabitethernet 0/1

CE1(config-if-GigabitEthernet 0/1)# ipv6 enable

CE1(config-if-GigabitEthernet 0/1)# ipv6 address 13::1/64

CE1(config-if-GigabitEthernet 0/1)# exit

CE1(config)# ipv6 route ::/0 13::3

CE1(config)# exit

# 设备CE2的配置。

CE2> enable

CE2# configure terminal

CE2(config)# ipv6 unicast-routing

CE2(config)# interface loopback 0

CE2(config-if-Loopback 0)# ipv6 enable

CE2(config-if-Loopback 0)# ipv6 address 10::2/128

CE2(config-if-Loopback 0)# exit

CE2(config)# interface gigabitethernet 0/1

CE2(config-if-GigabitEthernet 0/1)# ipv6 enable

CE2(config-if-GigabitEthernet 0/1)# ipv6 address 24::2/64

CE2(config-if-GigabitEthernet 0/1)# exit

CE2(config)# ipv6 route ::/0 24::4

CE2(config)# exit

验证配置结果

# 在CE1上通过show ipv6 route命令查看路由表。

CE1# show ipv6 route

IPv6 routing table name - Default - 9 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

S      ::/0 [1/0] via 13::3

(recursive via 13::3, GigabitEthernet 0/1)

LC     10::1/128 via Loopback 0, local host

C      13::/64 via GigabitEthernet 0/1, directly connected

L      13::1/128 via GigabitEthernet 0/1, local host

C      FE80::/10 via ::1, Null0

C      FE80::/64 via Loopback 0, directly connected

L      FE80::274:9CFF:FEEE:53CB/128 via Loopback 0, local host

C      FE80::/64 via GigabitEthernet 0/1, directly connected

L      FE80::274:9CFF:FEEE:53CB/128 via GigabitEthernet 0/1, local host

# 在CE2上通过show ipv6 route命令查看路由表。

CE2# show ipv6 route

IPv6 routing table name - Default - 9 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

S      ::/0 [1/0] via 24::4

(recursive via 24::4, GigabitEthernet 0/1)

LC     10::2/128 via Loopback 0, local host

C      24::/64 via GigabitEthernet 0/1, directly connected

L      24::2/128 via GigabitEthernet 0/1, local host

C      FE80::/10 via ::1, Null0

C      FE80::/64 via GigabitEthernet 0/1, directly connected

L      FE80::274:9CFF:FEC8:E27B/128 via GigabitEthernet 0/1, local host

C      FE80::/64 via Loopback 0, directly connected

L      FE80::274:9CFF:FEC8:E27B/128 via Loopback 0, local host

# 在6VPE1上通过show ipv6 route vrf vrf1命令查看私网路由表。

6VPE1# show ipv6 route vrf vrf1

IPv6 routing table name - vrf1 - 7 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

S      10::1/128 [1/0] via 13::1

(recursive via 13::1, GigabitEthernet 0/2)

B      10::2/128 [200/0] via ::FFFF:10.0.0.4, IPv6-mpls

C      13::/64 via GigabitEthernet 0/2, directly connected

L      13::3/128 via GigabitEthernet 0/2, local host

C      FE80::/10 via ::1, Null0

C      FE80::/64 via GigabitEthernet 0/2, directly connected

L      FE80::274:9CFF:FEEE:F49F/128 via GigabitEthernet 0/2, local host

# 在6VPE2上通过show ipv6 route vrf vrf1命令查看私网路由表。

6VPE2# show ipv6 route vrf vrf1

IPv6 routing table name - vrf1 - 7 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

B      10::1/128 [200/0] via ::FFFF:10.0.0.3, IPv6-mpls

S      10::2/128 [1/0] via 24::2

(recursive via 24::2, GigabitEthernet 0/2)

C      24::/64 via GigabitEthernet 0/2, directly connected

L      24::4/128 via GigabitEthernet 0/2, local host

C      FE80::/10 via ::1, Null0

C      FE80::/64 via GigabitEthernet 0/2, directly connected

L      FE80::2D0:F8FF:FEEE:8C1F/128 via GigabitEthernet 0/2, local host

# 在CE1上可以Ping通10::2。

CE1# ping 10::2 source 10::1

Sending 5, 100-byte ICMP Echoes to 10::2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 9/9/10 ms.

# 在CE2上可以Ping通10::1。

CE2# ping 10::1 source 10::2

Sending 5, 100-byte ICMP Echoes to 10::1, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/9/12 ms.

配置文件

6VPE1的配置文件

hostname 6VPE1

!

vrf definition vrf1

rd 34:34

address-family ipv6

route-target both 34:34

exit-address-family

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.0.34.3 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

vrf forwarding vrf1

ipv6 address 13::3/64

ipv6 enable

!

interface Loopback 0

ip address 10.0.0.3 255.255.255.255

!

router bgp 34

neighbor 10.0.0.4 remote-as 34

neighbor 10.0.0.4 update-source Loopback 0

address-family vpnv6 unicast

neighbor 10.0.0.4 activate

exit-address-family

!

address-family ipv6 vrf vrf1

redistribute static

exit-address-family

!

router ospf 1

network 10.0.0.3 0.0.0.0 area 0

network 10.0.34.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ipv6 route vrf vrf1 10::1/128 13::1

!

6VPE2的配置文件

hostname 6VPE2

!

vrf definition vrf1

rd 34:34

address-family ipv6

route-target both 34:34

exit-address-family

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 10.0.34.4 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

vrf forwarding vrf1

ipv6 address 24::4/64

ipv6 enable

!

interface Loopback 0

ip address 10.0.0.4 255.255.255.255

!

router bgp 34

neighbor 10.0.0.3 remote-as 34

neighbor 10.0.0.3 update-source Loopback 0

address-family vpnv6 unicast

neighbor 10.0.0.3 activate

exit-address-family

!

address-family ipv6 vrf vrf1

redistribute static

exit-address-family

!

router ospf 1

network 10.0.0.4 0.0.0.0 area 0

network 10.0.34.0 0.0.0.255 area 0

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

ipv6 route vrf vrf1 10::2/128 24::2

CE1的配置文件

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ipv6 address 13::1/64

ipv6 enable

!

interface Loopback 0

ipv6 address 10::1/128

ipv6 enable

!

ipv6 route ::/0 13::3

!

CE2的配置文件

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ipv6 address 24::2/64

ipv6 enable

!

interface Loopback 0

ipv6 address 10::2/128

ipv6 enable

!

ipv6 route ::/0 24::4

!

常见错误

未开启IPv6转发能力,导致IPv6 VPN转发不通。

6PE服务模型配置举例

组网需求

某全国性公司分别在福州和北京建立分支机构,通过接入ISP实现通信。两个分支机构内部均采用IPv6通信,而ISP是IPv4 MPLS网络。该公司希望不修改机构内部的IPv6协议即可实现以IPv6方式接入ISP。

组网图

6PE服务模型配置组网图

image.png

配置要点

在6PE1和6PE2设备上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达。

在6PE1和6PE2之间配置公网隧道。

分别在6PE1和6PE2上开启IPv6转发能力,配置IPv6地址和OSPFv3路由协议。

配置6PE1和6PE2之间的BGP会话,并重分发6PE1和CE1、6PE2和CE2的IPv6路由。

在CE1和CE2上开启IPv6转发能力,配置IPv6地址和OSPFv3路由。

配置步骤

在6PE1和6PE2上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达。

# 设备6PE1的配置。

6PE1> enable

6PE1# configure terminal

6PE1(config)# interface loopback 0

6PE1(config-if-Loopback 0)# ip address 2.2.2.2 255.255.255.255

6PE1(config-if-Loopback 0)# exit

6PE1(config)# interface gigabitethernet 0/2

6PE1(config-if-GigabitEthernet 0/2)# no switchport

6PE1(config-if-GigabitEthernet 0/2)# ip address 192.168.1.1 255.255.255.0

6PE1(config-if-GigabitEthernet 0/2)# exit

6PE1(config)# router ospf 1

6PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0

6PE1(config-router)# network 2.2.2.2 0.0.0.0 area 0

6PE1(config-router)# exit

# 设备6PE2的配置。

6PE2> enable

6PE2# configure terminal

6PE2(config)# interface loopback 0

6PE2(config-if-Loopback 0)# ip address 3.3.3.3 255.255.255.255

6PE2(config-if-Loopback 0)# exit

6PE2(config)# interface gigabitethernet 0/1

6PE2(config-if-GigabitEthernet 0/1)# no switchport

6PE2(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0

6PE2(config-if-GigabitEthernet 0/1)# exit

6PE2(config)# router ospf 1

6PE2(config-router)# network 192.168.1.0 0.0.0.255 area 0

6PE2(config-router)# network 3.3.3.3 0.0.0.0 area 0

6PE2(config-router)# exit

在6PE1和6PE2之间配置公网隧道。

# 设备6PE1的配置。

6PE1(config)# mpls ip

6PE1(config)# mpls router ldp

6PE1(config-mpls-router)# ldp router-id interface loopback 0 force

6PE1(config-mpls-router)# exit

6PE1(config)# interface gigabitethernet 0/2

6PE1(config-if-GigabitEthernet 0/2)# label-switching

6PE1(config-if-GigabitEthernet 0/2)# mpls ip

6PE1(config-if-GigabitEthernet 0/2)# exit

# 设备6PE2的配置。

6PE2(config)# mpls ip

6PE2(config)# mpls router ldp

6PE2(config-mpls-router)# ldp router-id interface loopback 0 force

6PE2(config-mpls-router)# exit

6PE2(config)# interface gigabitethernet 0/1

6PE2(config-if-GigabitEthernet 0/1)# label-switching

6PE2(config-if-GigabitEthernet 0/1)# mpls ip

6PE2(config-if-GigabitEthernet 0/1)# exit

分别在6PE1和6PE2上开启IPv6转发能力,配置IPv6地址和OSPFv3路由。

# 设备6PE1的配置。

6PE1(config)# ipv6 unicast-routing

6PE1(config)# ipv6 router ospf 10

6PE1(config-router)# router-id 2.2.2.2

Change router-id and update OSPFv3 process! [yes/no]:yes

6PE1(config-router)# exit

6PE1(config)# interface gigabitethernet 0/1

6PE1(config-if-GigabitEthernet 0/1)# no switchport

6PE1(config-if-GigabitEthernet 0/1)# ipv6 enable

6PE1(config-if-GigabitEthernet 0/1)# ipv6 address 2001::2/64

6PE1(config-if-GigabitEthernet 0/1)# ipv6 ospf 10 area 0

6PE1(config-if-GigabitEthernet 0/1)# exit

# 设备6PE2的配置。

6PE2(config)# ipv6 unicast-routing

6PE2(config)# ipv6 router ospf 10

6PE2(config-router)# router-id 3.3.3.3

Change router-id and update OSPFv3 process! [yes/no]:yes

6PE2(config-router)# exit

6PE2(config)# interface gigabitethernet 0/2

6PE2(config-if-GigabitEthernet 0/2)# no switchport

6PE2(config-if-GigabitEthernet 0/2)# ipv6 enable

6PE2(config-if-GigabitEthernet 0/2)# ipv6 address 2002::1/64

6PE2(config-if-GigabitEthernet 0/2)# ipv6 ospf 10 area 0

6PE2(config-if-GigabitEthernet 0/2)# exit

配置6PE1和6PE2之间的BGP会话,并重分发6PE1和CE1、6PE2和CE2的IPv6路由。

# 设备6PE1的配置。

6PE1(config)# router bgp 100

6PE1(config-router)# neighbor 3.3.3.3 remote-as 100

6PE1(config-router)# neighbor 3.3.3.3 update-source loopback 0

6PE1(config-router)# address-family ipv6 unicast

6PE1(config-router-af)# neighbor 3.3.3.3 activate

6PE1(config-router-af)# neighbor 3.3.3.3 send-label

6PE1(config-router-af)# redistribute ospf 10

6PE1(config-router-af)# exit

6PE1(config-router)# exit

6PE1(config)# ipv6 router ospf 10

6PE1(config-router)# redistribute bgp

6PE1(config-router)# end

# 设备6PE2的配置。

6PE2(config)# router bgp 100

6PE2(config-router)# neighbor 2.2.2.2 remote-as 100

6PE2(config-router)# neighbor 2.2.2.2 update-source loopback 0

6PE2(config-router)# address-family ipv6 unicast

6PE2(config-router-af)# neighbor 2.2.2.2 activate

6PE2(config-router-af)# neighbor 2.2.2.2 send-label

6PE2(config-router-af)# redistribute ospf 10

6PE2(config-router-af)# exit

6PE2(config-router)# exit

6PE2(config)# ipv6 router ospf 10

6PE2(config-router)# redistribute bgp

6PE2(config-router)# end

在CE1和CE2上开启IPv6转发能力,配置IPv6地址和OSPFv3路由。

# 设备CE1的配置。

CE1> enable

CE1# configure terminal

CE1(config)# ipv6 unicast-routing

CE1(config)# ipv6 router ospf 1

CE1(config-router)# router-id 1.1.1.1

Change router-id and update OSPFv3 process! [yes/no]:yes

CE1(config-router)# exit

CE1(config)# interface loopback 0

CE1(config-if-Loopback 0)# ipv6 enable

CE1(config-if-Loopback 0)# ipv6 address 2010::1/128

CE1(config-if-Loopback 0)# ipv6 ospf 1 area 0

CE1(config-if-Loopback 0)# exit

CE1(config)# interface gigabitethernet 0/1

CE1(config-if-GigabitEthernet 0/1)# no switchport

CE1(config-if-GigabitEthernet 0/1)# ipv6 enable

CE1(config-if-GigabitEthernet 0/1)# ipv6 address 2001::1/64

CE1(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0

CE1(config-if-GigabitEthernet 0/1)# end

# 设备CE2的配置。

CE2> enable

CE2# configure terminal

CE2(config)# ipv6 unicast-routing

CE2(config)# ipv6 router ospf 1

CE2(config-router)# router-id 4.4.4.4

Change router-id and update OSPFv3 process! [yes/no]:yes

CE2(config)# interface loopback 0

CE2(config-if-Loopback 0)# ipv6 enable

CE2(config-if-Loopback 0)# ipv6 address 2020::1/128

CE2(config-if-Loopback 0)# ipv6 ospf 1 area 0

CE2(config-if-Loopback 0)# exit

CE2(config)# interface gigabitethernet 0/1

CE2(config-if-GigabitEthernet 0/1)# no switchport

CE2(config-if-GigabitEthernet 0/1)# ipv6 enable

CE2(config-if-GigabitEthernet 0/1)# ipv6 address 2002::2/64

CE2(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0

CE2(config-if-GigabitEthernet 0/1)# end

验证配置结果

配置完成后,在各设备上通过show ipv6 route命令查看IPv6路由表项。

# 设备CE1的验证结果。

CE1# show ipv6 route

IPv6 routing table name - Default - 10 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

C      2001::/64 via GigabitEthernet 0/1, directly connected

L      2001::1/128 via GigabitEthernet 0/1, local host

O  E2  2002::/64 [110/1] via FE80::250:56FF:FEB0:59C, GigabitEthernet 0/1

LC     2010::1/128 via Loopback 0, local host

O  E2  2020::1/128 [110/1] via FE80::250:56FF:FEB0:59C, GigabitEthernet 0/1

C      FE80::/10 via ::1, Null0

C      FE80::/64 via Loopback 0, directly connected

L      FE80::250:56FF:FEB5:E383/128 via Loopback 0, local host

C      FE80::/64 via GigabitEthernet 0/1, directly connected

L      FE80::250:56FF:FEB5:E38A/128 via GigabitEthernet 0/1, local host

# 设备CE2的验证结果。

CE2# show ipv6 route

IPv6 routing table name - Default - 10 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

1L - IS-IS level-1 LOCATOR, 2L - IS-IS level-2 LOCATOR

IA - Inter area, EV - BGP EVPN, N - Nd to host, SR - SRv6

O  E2  2001::/64 [110/1] via FE80::250:56FF:FEB5:F7B6, GigabitEthernet 0/1, 00:10:05

C      2002::/64 via GigabitEthernet 0/1, directly connected, 00:53:53

L      2002::2/128 via GigabitEthernet 0/1, local host, 00:53:53

O  E2  2010::1/128 [110/1] via FE80::250:56FF:FEB5:F7B6, GigabitEthernet 0/1, 00:10:05

LC     2020::1/128 via Loopback 0, local host, 00:53:53

C      FE80::/10 via ::1, Null0, 00:53:53

C      FE80::/64 via GigabitEthernet 0/1, directly connected, 00:53:53

L      FE80::250:56FF:FEB5:7BF2/128 via GigabitEthernet 0/1, local host, 00:53:53

C      FE80::/64 via Loopback 0, directly connected, 00:53:53

L      FE80::250:56FF:FEB5:7BF1/128 via Loopback 0, local host, 00:53:53

# 设备6PE1的验证结果。

6PE1# show ipv6 route

IPv6 routing table name - Default - 8 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

C      2001::/64 via GigabitEthernet 0/1, directly connected

L      2001::2/128 via GigabitEthernet 0/1, local host

B      2002::/64 [200/1] via ::FFFF:3.3.3.3, IPv6-mpls

O      2010::1/128 [110/1] via FE80::250:56FF:FEB5:E38A, GigabitEthernet 0/1

B      2020::1/128 [200/1] via ::FFFF:3.3.3.3, IPv6-mpls

C      FE80::/10 via ::1, Null0

C      FE80::/64 via GigabitEthernet 0/1, directly connected

L      FE80::250:56FF:FEB0:59C/128 via GigabitEthernet 0/1, local host

# 设备6PE2的验证结果。

6PE2# show ipv6 route

IPv6 routing table name - Default - 8 entries

Codes:  C - Connected, L - Local, S - Static

R - RIP, O - OSPF, B - BGP, I - IS-IS, V - Overflow route

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

IA - Inter area, EV - BGP EVPN, N - Nd to host

B      2001::/64 [200/1] via ::FFFF:2.2.2.2, IPv6-mpls

C      2002::/64 via GigabitEthernet 0/2, directly connected

L      2002::1/128 via GigabitEthernet 0/2, local host

B      2010::1/128 [200/1] via ::FFFF:2.2.2.2, IPv6-mpls

O      2020::1/128 [110/1] via FE80::250:56FF:FEB5:7BF2, GigabitEthernet 0/2

C      FE80::/10 via ::1, Null0

C      FE80::/64 via GigabitEthernet 0/2, directly connected

L      FE80::250:56FF:FEB5:F7B6/128 via GigabitEthernet 0/4, local host

# 在CE1上可以Ping通2020::1。

CE1# ping 2020::1 source 2010::1

Sending 5, 100-byte ICMP Echoes to 2020::1, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms.

# 在CE2上可以Ping通10::1。

CE2# ping 2010::1 source 2020::1

Sending 5, 100-byte ICMP Echoes to 2010::1, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/11 ms.

配置文件

6PE1的配置文件

hostname 6PE1

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ipv6 address 2001::2/64

ipv6 enable

ipv6 ospf 10 area 0

!

interface GigabitEthernet 0/2

no switchport

ip address 192.168.1.1 255.255.255.0

mpls ip

label-switching

!

interface Loopback 0

ip address 2.2.2.2 255.255.255.255

!

router bgp 100

neighbor 3.3.3.3 remote-as 100

neighbor 3.3.3.3 update-source Loopback 0

address-family ipv6

redistribute ospf 10

neighbor 3.3.3.3 activate

neighbor 3.3.3.3 send-label

exit-address-family

!

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

ipv6 router ospf 10

router-id 2.2.2.2

redistribute bgp

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

6PE2的配置文件

hostname 6PE2

!

mpls ip

!

interface GigabitEthernet 0/1

no switchport

ip address 192.168.1.2 255.255.255.0

mpls ip

label-switching

!

interface GigabitEthernet 0/2

no switchport

ipv6 address 2002::1/64

ipv6 enable

ipv6 ospf 10 area 0

!

interface Loopback 0

ip address 3.3.3.3 255.255.255.255

!

router bgp 100

neighbor 2.2.2.2 remote-as 100

neighbor 2.2.2.2 update-source Loopback 0

address-family ipv6

redistribute ospf 10

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 send-label

exit-address-family

!

router ospf 1

network 3.3.3.3 0.0.0.0 area 0

network 192.168.1.0 0.0.0.255 area 0

!

ipv6 router ospf 10

router-id 3.3.3.3

redistribute bgp

!

mpls router ldp

ldp router-id interface Loopback 0 force

!

CE1的配置文件

hostname CE1

!

interface GigabitEthernet 0/1

no switchport

ipv6 address 2001::1/64

ipv6 enable

ipv6 ospf 1 area 0

!

interface Loopback 0

ipv6 address 2010::1/128

ipv6 enable

ipv6 ospf 1 area 0

!

ipv6 router ospf 1

router-id 1.1.1.1

!

CE2的配置文件

hostname CE2

!

interface GigabitEthernet 0/1

no switchport

ipv6 address 2002::2/64

ipv6 enable

ipv6 ospf 1 area 0

!

interface Loopback 0

ipv6 address 2020::1/128

ipv6 enable

ipv6 ospf 1 area 0

!

ipv6 router ospf 1

router-id 4.4.4.4

!

常见错误

未开启IPv6转发能力,导致IPv6转发不通。