完成此项配置,运营商网络能够提供单个自治域的VPN业务,在单个自治域上建立BGP/MPLS VPN服务。
MPLS L3VPN所涉及的接口必须是三层路由接口,否则配置将失败。
LDP Router-ID必须为32位。
BGP Router-ID必须为32位。
PE设备上面向公网的接口需要配置mpls ip和label-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,必须在P和PE上配置MPLS的标签分发协议LDP,才能建立公网隧道。这包括为相应的MPLS设备配置标签分发协议和在每个接口上开启MPLS的转发功能。
进入特权模式。
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路由实例主要包括定义一个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地址。
进入特权模式。
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之间通过BGP协议传递路由信息,由于缺省情况下只允许传递普通的IPv4路由信息,如果需要和另外一台PE传递VPN信息,则需要进入到VPN的地址族模式下开启向对等体PE传递VPN路由信息的能力。
进入特权模式。
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与PE之间、PE与CE之间建立BGP会话,使用BGP连通所有私网CE。在CE上将用户私有网络的路由与BGP之间进行相互的重分布,即可实现用户私有网络的全连通。
PE配置并进入BGP VRF地址族配置模式时,如果用户没有为该VRF定义RD值,在配置address-family ipv4 vrf vrf-name命令要进入指定VRF的地址族,系统会提示RD值未配置,同时不允许用户进入该地址族。
用户私有网络内部可能运行任意一种动态路由协议或静态路由。
进入特权模式。
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上配置和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
缺省情况下,重分发功能处于关闭状态。
如果用户私有网络内部运行OSPF,则在PE-CE之间继续使用OSPF连通,CE上不需要额外的配置。
在PE上必须为对应的VRF配置一个OSPF实例,并使用该OSPF实例与CE交互路由信息。OSPF通过重分布BGP路由将从其他PE接收的对应VPN路由传递给CE。同时BGP通过重分布OSPF协议的路由将CE端分发给PE的VPN路由信息传递给其他PE对等体。
CE上连接PE的接口必须开启OSPF且未设置被动端口或其他路由交互的限制。
进入特权模式。
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
缺省情况下,重分发功能处于关闭状态。
如果用户私有网络内部运行RIP,则在PE-CE之间继续允许RIP连通,CE上不需要额外的配置。
PE上的VRF通过RIP协议交互PE和CE的路由信息。RIP通过重分布BGP路由将从其他PE接收的对应VPN路由传递给CE,同时BGP通过重分布RIP路由将CE端分发给PE的VPN路由信息传递给其他PE对等体。
CE上连接PE的接口必须开启RIP且未限制其路由交互。
进入特权模式。
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,并将静态路由重分布到BGP VRF中。在CE上使用静态路由指向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
缺省情况下,重分发功能处于关闭状态。
在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内通告出去的所有路由,并重新进行通告。
通常情况下,通过在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
通常情况下都是MP-BGP来为私网路由分配标签,公网LSP隧道由公网运行LDP协议生成。也可以通过配置静态的LSP来实现私网路由的标签分配以及私网的LSP隧道建立。
对于配置的静态私网FTN和ILM,只有其对应的公网LSP隧道建立后才能生效,建立公网LSP隧道的配置请参见1.3.4 配置MPLS网络,可以使用LDP协议建立公网LSP隧道也可以通过静态配置的方式。
进入特权模式。
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表项。
在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基本功能类似,请参照执行。
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路由
本步骤和1.3 配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。
本步骤和1.3.4 配置MPLS网络类似,请参照执行。
缺省情况下,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过滤功能处于开启状态。
本步骤和1.3.6 配置PE-PE传递VPN路由信息类似,请参照执行。
在跨域的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下处于开启状态。
在实际应用中,出于自治域安全的考虑,通常会在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
由于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
当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路由
本步骤和1.3 配置IPv4 MPLS L3VPN基本功能中配置PE-CE间路由交换类似,请参照执行。
本步骤和1.3.4 配置MPLS网络类似,请参照执行。
缺省情况下,PE收到其他PE(或者ASBR)发送的VPN路由,如果该VPN路由不会被本设备上任何一个VRF导入,PE设备就拒绝接收该路由。因此需要在ASBR上关闭该缺省过滤行为,使得ASBR设备会接收其他PE(或ASBR)发送过来的所有VPN路由,不管本地的VRF是否会导入该VPN路由。
本步骤和1.5.5 配置ASBR取消缺省RT过滤功能,请参照执行。
缺省情况下,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
本步骤和1.5.7 配置ASBR间建立MP-EBGP会话中的相应配置步骤类似,请参照执行。
本步骤和1.5.8 配置路由图规则过滤VPN路由中的相应配置步骤类似,请参照执行。
在这种实现方案中,需要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会话
本步骤和1.3 配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。
本步骤和1.3.4 配置MPLS网络类似,请参照执行。
在跨域的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从对端的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路由分发标签。
进入特权模式。
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命令开启该功能。
在需要开展跨越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间启用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会话
本步骤和1.3 配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。
跨域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标签功能处于关闭状态。
本步骤同1.7.5 配置ASBR间建立EBGP会话为IPv4路由分发标签步骤类似,请参照执行。
本步骤和1.7.7 配置多跳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会话
本步骤和1.3 配置IPv4 MPLS L3VPN基本功能中的配置PE-CE间路由交换类似,请参照执行。
本步骤和1.3.4 配置MPLS网络类似,请参照执行。
配置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同路由反射器建立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标签功能处于关闭状态。
本步骤同1.7.5 配置ASBR间建立EBGP会话为IPv4路由分发标签步骤类似,请参照执行。
在两个自治域的路由反射器之间建立多跳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对等体通告路由时不修改下一跳。
当VPN用户网络内部运行OSPF时,在PE和CE之间运行OSPF协议,简化CE的配置和管理。
LDP的Router ID必须为32位。
OSPF的VPN扩展特性配置任务如下:
配置域ID
配置VPN路由标记
配置伪链路
配置VRF OSPF实例环路检测
配置VPN路由扩展团体属性
配置禁止使用LSA的DN位检测环路
配置禁止使用LSA的路由标记来检测环路
域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实例有效。
在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实例的环路检测功能。比如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实例有效。
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实例有效。
在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实例有效。
在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配置任务如下:
配置6VPE服务模型
配置6PE服务模型
在IPv4骨干网上,使用IPv4 BGP/MPLS VPN技术,为IPv6用户网络提供VPN服务。
6VPE服务模型配置任务如下:
开启IPv6转发能力
配置公网隧道
配置6VPE设备的VRF
配置6VPE设备在VRF下的IPv6地址
配置6VPE设备间的BGP会话
配置6VPE设备在VRF下分发IPv6路由
配置CE
由于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功能处于关闭状态。
进入全局配置模式。
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
必须在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
进入全局配置模式。
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
进入全局配置模式。
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到6VPE之间的路由可以使用IPv6静态路由也可以使用IPv6动态路由,在使用IPv6动态路由的情况下,6VPE的BGP路由和6PE到CE之间的动态路由需要互相引入。
IPv6动态路由协议的配置请参见“IP路由配置指南”中的“RIPng”、“OSPFv3”、“IS-IS”和“BGP”。
网络服务供应商利用已有的IPv4 MPLS骨干网为分散用户的IPv6网络提供接入服务(非VPN服务),适用于为IPv6孤岛提供互联服务(非VPN服务)。
在IPv4骨干网上,使用IPv4 BGP/MPLS VPN技术,为IPv6用户网络提供VPN服务。
6PE服务模型配置任务如下:
开启6PE设备的IPv6转发能力
配置公网隧道
配置6PE设备的IPv6地址
配置6PE设备的BGP会话
配置CE
由于6PE设备要和CE设备建立IPv6连接,所以需要开启6PE设备的IPv6转发能力。
进入全局配置模式。
configure terminal
开启IPv6转发能力。
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与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
进入全局配置模式。
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到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 ] |
有两个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)配置组网图
在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邻居建立失败。
有两个VPN用户,VPNA和VPNB。要求VPN内部可以实现互相访问,这两个VPN之间不能互相访问,但是这两个VPN可以访问一部分共享的资源。如图1-16所示,VPNA和VPNB的站点都要访问VPN-SITEA的资源。
基本IPv4 MPLS L3VPN(Extranet)配置组网图
在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邻居建立失败。
VPN内部数据的交换不能直接交换,必须经过统一的控制中心才能进行交互,且只有该控制中心了解VPN内部的全部信息资源,其他属于该VPN的用户要获得VPN内的资源必须由控制中心告知。如图1-17所示,VPNA-SITEA要访问VPNA-SITEB的资源必须通过控制中心VPNA-SITEC才可以访问,无法直接访问。
在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邻居建立失败。
要求:多个VPN之间不能互访,但是这些VPN需要通过一台统一的设备上Internet。VPN1和VPN2都需要通过PE1访问internet,但是VPN1和VPN2之间不允许互访。
当采用集中方式控制隔离时,对于后续新增VPN站点需要通过统一出口访问internet时,只需在出口CE处新增过滤规则,其它VPN站点不需要更改配置,也即可扩展性好。缺点就是需要隔离的流量只有到达出口CE时才能丢弃,浪费了网络带宽。
Internet统一出口集中控制隔离方式配置组网图
在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邻居建立失败。
多个VPN之间不能互访,但是这些VPN需要通过一台统一的设备上Internet。VPN1和VPN2都需要通过PE1访问Internet,但是VPN1和VPN2之间不允许互访。
当采用分布式控制隔离时,后续新增VPN站点需要通过统一出口访问Internet时,原有通过统一出口访问Internet的每个VPN站点的CE都需要增加过滤规则,也即可扩展性差。优点是需要隔离的流量在VPN站点的CE处即可完成丢弃,节省网络带宽。
Internet统一出口分布式控制隔离方式配置组网图
在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邻居建立失败。
一般而言,某一VPN站点的主机只能访问同一VPN的其他主机,但对于某些主机来说,需要能够访问多个VPN,此类型主机称为多角色主机。如图1-20所示,PC1和PC2属于VPN1下某一站点的主机,但PC2是作为一个多角色主机,它需要能够访问VPN1和VPN2站点的主机,而PC1只能访问VPN1站点的主机。
配置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邻居建立失败。
采用MCE的组网方式将原有平面组网模型的MPLS L3VPN网络改建为分层组网模型。在MCE中保存所连接的VPN站点的路由和PE2所分发的默认路由,但不保存所有VPN站点的路由,因此对于容量及性能要求较低。而PE1和PE2需要保存所有VPN路由,因此对于容量及性能要求较高。
基于MCE的分层VPN配置组网图
配置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邻居建立失败。
采用BGP路由策略将原有平面组网模型的MPLS L3VPN网络改建为分层组网模型。拓扑如图1-22,其中PE1和PE2作为下层PE,不保存VPN的所有路由,只保存所关联VPN站点的路由及上层PE所公告的默认路由。而PE3和PE4作为上层PE,需要保存VPN所有的路由,且PE3为PE1和PE2的上层PE。
配置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数量较少的网络中,通过Option A方案,实现跨域的BGP/MPLS VPN服务。自治域的ASBR为有跨域需求的VPN各自建立一个VRF,分别为这些VRF绑定接口,ASBR间的VRF利用这些接口互联交互VPN路由。
VRF-to-VRF跨域VPN配置组网图
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用户在两个不同自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。
跨域VPN OptionB(下一跳不变)配置组网图
在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用户在两个自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。
跨域VPN服务模型OptionB(下一跳改变)配置组网图
在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用户在两个不同自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。
跨域VPN服务模型OptionC(EBGP间启用IPv4标签交换)配置组网图
在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用户在两个不同的自治域都有站点,要求属于不同自治域的VPN站点可以跨域互访。
跨域VPN服务模型OptionC(EBGP和IBGP间都启用IPv4标签交换)配置组网图
在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站点之间不能互通。
在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(路由反射器组网方案)配置组网图
在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站点间不能互通。
客户的两个不同站点通过MPLS骨干网交互VPN路由,客户站点通过OSPF协议接入PE,要求客户的OSPF路由信息通过MPLS骨干网交互后,可以最大程度还原为原始站点的OSPF路由。
OSPF的VPN扩展特性(Domain-ID)配置组网图
在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会话建立失败。
客户的两个不同站点通过MPLS骨干网交互VPN路由,同时在两个站点间又建立一条“后门链路”,确保当MPLS骨干网发生故障时,两个站点之间仍然可以通过备份链路正常交互信息。
OSPF的VPN扩展特性(Sham-link)配置组网图
在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会话建立失败。
客户站点有多个不同的业务,同一业务能够跨越MPLS骨干网进行交互,不同业务之间互相隔离。
OSPF的VPN扩展特性(MCE配置OSPF多实例)配置组网图
在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会话建立失败。
某全国性公司分别在福州和北京建立分支机构,通过接入ISP实现通信。两个分支机构内部均采用IPv6通信,而ISP是IPv4 MPLS网络。该公司希望分支机构之间能够正常通信,而机构内部使用VPN连接,不与外部的ISP进行通信。
6VPE服务模型配置组网图
在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转发不通。
某全国性公司分别在福州和北京建立分支机构,通过接入ISP实现通信。两个分支机构内部均采用IPv6通信,而ISP是IPv4 MPLS网络。该公司希望不修改机构内部的IPv6协议即可实现以IPv6方式接入ISP。
6PE服务模型配置组网图
在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转发不通。