目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置EVN

调整VNET中继

中继列表

每VRF中继属性

每链路VNET标记

验证

故障排除

相关信息

简介

本文档介绍Easy Virtual Network(EVN)功能，该功能旨在在园区网络中提供易于配置的虚拟化机制。它利用当前技术，如虚拟路由和转发Lite(VRF-Lite)和dot1q封装，并且不引入任何新协议。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于下列硬件和软件版本：

- 运行软件版本15.0(1)SY1的Cisco Catalyst 6000(Cat6k)系列交换机

- 运行软件版本3.2的Cisco 1000系列聚合服务路由器(ASR1000)

- 运行Cisco IOS® 15.3(2)T及更高版本的Cisco 3925和3945系列集成多业务路由器

- 运行软件版本15.1(1)SG的Cisco Catalyst 4500(Cat4500)和4900(Cat4900)系列交换机

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

以下是EVN功能的概述：

- EVN功能使用VRF-Lite来创建多个（最多32个）路由环境。

- 通过虚拟网络(VNET)中继确保第3层设备之间虚拟路由和转发(VRF)内的连接。

- VNET中继是常规dot1q中继。

- 必须通过VNET中继传输的每个VRF都应配置VNET标记。

- 每个VNET标记等于一个dot1q标记。

- 会自动创建和隐藏dot1q子接口。

- 主接口的配置由所有（隐藏）子接口继承。

- 在VNET中继上的每个VRF中应使用单独的路由协议实例，以通告前缀可达性。

- 不使用边界网关协议(BGP),VRF之间（与静态路由相反）允许动态路由泄漏。

- IPv4和IPv6支持此功能。

配置

使用本节中介绍的信息配置EVN功能。

注意：使用命令查找工具（仅限注册用户）可获取有关本部分所使用命令的详细信息。

网络图

此网络设置用于说明EVN配置和show命令：

以下是有关此设置的一些重要说明：

- 定义了两个VRF(CUST-A和CUST-B)，它们通过VNET中继从网络核心执行。

- VRF中使用开放最短路径优先(OSPF)来通告可达性。

- VRF COM托管必须可从VRF CUST-A和CUST-B访问的公共服务器(100.1.1.100)。

- 使用的映像是i86bi_linux-adventerprisek9-ms153-1.S。

提示：此处提供所使用的Cisco IOS on Linux(IOL)设置。

配置EVN

要配置EVN功能，请完成以下步骤：

1. 配置VRF定义：

vrf definition [name]

vnet tag [2-4094]

!

address-family ipv4|ipv6

exit-address-family

!
以下是有关此配置的一些重要说明：

- Cisco建议您使用2到1,000范围内的标记。请勿使用保留的VLAN 1,001到1,005。如果需要，可以使用扩展的VLAN 1,006到4,094。

- 当前VLAN不应使用VNET标记。

- 任何给定VRF的所有设备上的VNET标记应相同。

- 应配置地址系列ipv4|ipv6，以激活相关AF中的VRF。

- 由于EVN不使用BGP，因此无需定义路由方向(RD)。

通过此设置，应在所有4x核心路由器上定义VRF。例如，在CORE-1上：

vrf definition CUST-A

vnet tag 100

!

address-family ipv4

exit-address-family

vrf definition CUST-B

vnet tag 200

!

address-family ipv4

exit-address-family
对于这些VRF，在所有路由器上使用相同的VNET标记。在CORE-4上，VRF COM不需要VNET标记。目标是使该VRF保持在CORE-4的本地，并配置泄漏和重分发，以便从CUST-A和CUST-B访问通用服务器。

输入以下命令以检查各种VNET计数器：

CORE-1#show vnet counters

Maximum number of VNETs supported: 32

Current number of VNETs configured: 2

Current number of VNET trunk interfaces: 2

Current number of VNET subinterfaces: 4

Current number of VNET forwarding interfaces: 6

CORE-1#

2. 配置VNET中继：

interface GigabitEthernetx/x

vnet trunk

ip address x.x.x.x y.y.y.y

...
以下是有关此配置的一些重要说明：

- vnet trunk 命令创建的dot1q子接口数与使用VNET标记定义的VRF数相同。

- vnet trunk命令不能与同一物理接口上的某些手动配置的子接口共存。

- 路由接口（而非交换机端口）、物理和端口通道上允许此配置。

- 应用于物理接口的IP地址（和其他命令）由子接口继承。

- 所有VRF的子接口使用相同的IP地址。

通过此设置，有两个VNET VRF，因此两个子接口会在配置为VNET中继的接口上自动创建。可以输入show derived-config命令以查看自动创建的隐藏配置：

以下是当前运行的配置：

CORE-1#show run | s Ethernet0/0

interface Ethernet0/0

vnet trunk

ip address 192.168.1.1 255.255.255.252

!

CORE-1#
以下是派生的配置：

CORE-1#show derived-config | s Ethernet0/0

interface Ethernet0/0

vnet trunk

ip address 192.168.1.1 255.255.255.252

Interface Ethernet0/0.100

description Subinterface for VNET CUST-A

encapsulation dot1Q 100

vrf forwarding CUST-A

ip address 192.168.1.1 255.255.255.252

interface Ethernet0/0.200

description Subinterface for VNET CUST-B

encapsulation dot1Q 200

vrf forwarding CUST-B

ip address 192.168.1.1 255.255.255.252

CORE-1#
如图所示，所有子接口都继承主接口的IP地址。

3. 为VRF分配边缘（子）接口。要将接口或子接口分配给VNET VRF，请使用与正常分配VRF所使用的相同步骤：

interface GigabitEthernet x/x.y

vrf forwarding [name]

ip address x.x.x.x y.y.y.y

...
通过此设置，配置应用于CORE-1和CORE-4。以下是CORE-4的示例：

interface Ethernet2/0

vrf forwarding CUST-A

ip address 10.1.2.1 255.255.255.0

!

interface Ethernet3/0

vrf forwarding CUST-B

ip address 10.2.2.1 255.255.255.0

!

interface Ethernet4/0

vrf forwarding COM

ip address 100.1.1.1 255.255.255.0

4. 为每个VRF配置路由协议（这不特定于EVN或VNET）：

router ospf x vrf [name]

network x.x.x.x y.y.y.y area x

...

注意：此配置应包括VNET中继地址和边缘接口地址。
通过此设置，定义了两个OSPF进程，每个VRF一个：

CORE-1#show run | s router os

router ospf 1 vrf CUST-A

network 10.1.1.0 0.0.0.255 area 0

network 192.168.1.0 0.0.0.255 area 0

router ospf 2 vrf CUST-B

network 10.2.1.0 0.0.0.255 area 0

network 192.168.1.0 0.0.0.255 area 0

CORE-1#
您可以进入路由情景模式，以查看与特定VRF相关的信息，而无需在每个命令中输入VRF规范：

CORE-1#routing-context vrf CUST-A

CORE-1%CUST-A#

CORE-1%CUST-A#show ip protocols

*** IP Routing is NSF aware ***

Routing Protocol is "ospf 1"

Outgoing update filter list for all interfaces is not set

Incoming update filter list for all interfaces is not set

Router ID 192.168.1.13

It is an area border router

Number of areas in this router is 1. 1 normal 0 stub 0 nssa

Maximum path: 4

Routing for Networks:

10.1.1.0 0.0.0.255 area 0

192.168.1.0 0.0.0.255 area 0

Routing Information Sources:

Gateway         Distance      Last Update

192.168.1.9          110      1d00h

192.168.1.14         110      1d00h

Distance: (default is 110)

CORE-1%CUST-A#

CORE-1%CUST-A#show ip os neighbor

Neighbor ID     Pri   State         Dead Time   Address         Interface

192.168.1.14      1   FULL/DR       00:00:30    192.168.1.14    Ethernet1/0.100

192.168.1.5       1   FULL/BDR      00:00:37    192.168.1.2     Ethernet0/0.100

10.1.1.2          1   FULL/BDR      00:00:33    10.1.1.2        Ethernet2/0

CORE-1%CUST-A#

注意：show ip protocols命令输出仅显示与所选VRF相关的信息。
当您查看两个VRF的路由信息库(RIB)时，可以通过两个VNET中继验证远程子网：

CORE-1%CUST-A#show ip route 10.1.2.0

Routing Table: CUST-A

Routing entry for 10.1.2.0/24

Known via "ospf 1", distance 110, metric 30, type intra area

Last update from 192.168.1.2 on Ethernet0/0.100, 1d00h ago

Routing Descriptor Blocks:

* 192.168.1.14, from 192.168.1.9, 1d00h ago, via Ethernet1/0.100

Route metric is 30, traffic share count is 1

192.168.1.2, from 192.168.1.9, 1d00h ago, via Ethernet0/0.100

Route metric is 30, traffic share count is 1

CORE-1%CUST-A#

CORE-1%CUST-A#routing-context vrf CUST-B

CORE-1%CUST-B#

CORE-1%CUST-B#show ip route 10.2.2.0

Routing Table: CUST-B

Routing entry for 10.2.2.0/24

Known via "ospf 2", distance 110, metric 30, type intra area

Last update from 192.168.1.2 on Ethernet0/0.200, 1d00h ago

Routing Descriptor Blocks:

* 192.168.1.14, from 192.168.1.6, 1d00h ago, via Ethernet1/0.200

Route metric is 30, traffic share count is 1

192.168.1.2, from 192.168.1.6, 1d00h ago, via Ethernet0/0.200

Route metric is 30, traffic share count is 1

CORE-1%CUST-B#

CORE-1%CUST-B#exit

CORE-1#

CORE-1#

5. 确定VRF之间的路由泄漏。路由泄漏通过路由复制执行。例如，VRF中的某些路由可能可供另一个VRF使用：

vrf definition VRF-X

address-family ipv4|ipv6

route-replicate from vrf VRF-Y unicast|multicast

[route-origin] [route-map [name]]
以下是有关此配置的一些重要说明：

- VRF-X的RIB根据来自VRF-Y的命令参数有权访问所选路由。

- VRF-X中的复制路由标有[+]标志。

- 组播选项允许使用来自另一个VRF的路由进行反向路径转发(RPF)。

- route-origin可以具有以下值之一：

- all

- 调试输出中显示“bgp

- 连接

- eigrp

- ISIS

- 移动

- ODR

- ospf

- rip

- 静态

与名称不同，路由不会复制或复制；这是通过BGP公用RT正常泄漏的情况，不会消耗额外内存。

在此设置中，CORE-4上使用路由泄漏，以便提供从CUST-A和CUST-B到COM的访问（反之亦然）：

vrf definition CUST-A

address-family ipv4

route-replicate from vrf COM unicast connected

!

vrf definition CUST-B

address-family ipv4

route-replicate from vrf COM unicast connected

!

vrf definition COM

address-family ipv4

route-replicate from vrf CUST-A unicast ospf 1 route-map USERS

route-replicate from vrf CUST-B unicast ospf 2 route-map USERS

!

route-map USERS permit 10

match ip address prefix-list USER-SUBNETS

!

ip prefix-list USER-SUBNETS seq 5 permit 10.0.0.0/8 le 32

CORE-4#show ip route vrf CUST-A

Routing Table: COM

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, 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, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override

...

10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

O        10.1.1.0/24 [110/30] via 192.168.1.10, 3d19h, Ethernet1/0.100

[110/30] via 192.168.1.5, 3d19h, Ethernet0/0.100

100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C   +    100.1.1.0/24 is directly connected (COM), Ethernet4/0

CORE-4#show ip route vrf CUST-B

...       10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

O        10.2.1.0/24 [110/30] via 192.168.1.10, 1d00h, Ethernet1/0.200

[110/30] via 192.168.1.5, 1d00h, Ethernet0/0.200

100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C   +    100.1.1.0/24 is directly connected (COM), Ethernet4/0

CORE-4#show ip route vrf COM

...

10.0.0.0/24 is subnetted, 2 subnets

O   +    10.1.1.0 [110/30] via 192.168.1.10 (CUST-A), 3d19h, Ethernet1/0.100

[110/30] via 192.168.1.5 (CUST-A), 3d19h, Ethernet0/0.100

O   +    10.2.1.0 [110/30] via 192.168.1.10 (CUST-B), 1d00h, Ethernet1/0.200

[110/30] via 192.168.1.5 (CUST-B), 1d00h, Ethernet0/0.200

100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        100.1.1.0/24 is directly connected, Ethernet4/0
此时，复制的路由不会在内部网关协议(IGP)中传播，因此只有CE-A-2和CE-B-2有权访问COM服务(100.1.1.100)，而不能访问CE-A-1和CE-B-1。

您还可以使用从全局表或到全局表的路由泄漏：

vrf definition VRF-X

address-family ipv4

route-replicate from vrf >global unicast|multicast [route-origin]

[route-map [name]]

exit-address-family

!

exit

!

global-address-family ipv4 unicast

route-replicate from vrf [vrf-name] unicast|multicast [route-origin]

[route-map [name]]

6. 定义路由泄漏传播。泄漏的路由在目标VRF RIB中不重复。换句话说，它们不是目标VRF RIB的一部分。路由器进程之间的正常重分发不起作用，因此，您必须明确定义路由所属RIB的VRF连接：

router ospf x vrf VRF-X

redistribute vrf VRF-Y [route-origin] [route-map [name]]
从VRF-Y泄漏的路由在VRF-X中运行的OSPF进程中重分发。以下是CORE-4的示例：

router ospf 1 vrf CUST-A

redistribute vrf COM connected subnets route-map CON-2-OSPF

!

route-map CON-2-OSPF permit 10

match ip address prefix-list COM

!

ip prefix-list COM seq 5 permit 100.1.1.0/24
在这种情况下不需要路由映射，因为VRF COM中只有一条连接的路由。现在可以从CE-A-1和CE-B-1访问COM服务(100.1.1.100):

CE-A-1#ping 100.1.1.100

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 100.1.1.100, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

CE-A-1#

CE-B-1#ping 100.1.1.100

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 100.1.1.100, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

CE-B-1#

调整VNET中继

本节提供可用于调整VNET中继的信息。

中继列表

默认情况下，所有VNET中继上都允许配置有VNET标记的所有VRF。中继列表允许您指定VNET中继上的授权VRF列表：

vrf list [list-name]

member [vrf-name]

!

interface GigabitEthernetx/x

vnet trunk list [list-name]

注意：每个允许的VRF应有一条线路。

例如，CORE-1在CORE-1和CORE-2之间的VNET中继上针对VRF CUST-B进行了调整：

vrf list TEST

member CUST-A

!

interface ethernet0/0

vnet trunk list TEST

如图所示，VRF CUST-B跨中继的OSPF对等断开：

%OSPF-5-ADJCHG: Process 2, Nbr 192.168.1.2 on Ethernet0/0.200 from FULL to DOWN,

Neighbor Down: Interface down or detached

VRF CUST-B的子接口被删除：

CORE-1#show derived-config | b Ethernet0/0

interface Ethernet0/0

vnet trunk list TEST

ip address 192.168.1.1 255.255.255.252

!

interface Ethernet0/0.100

description Subinterface for VNET CUST-A

encapsulation dot1Q 100

vrf forwarding CUST-A

ip address 192.168.1.1 255.255.255.252

!

每VRF中继属性

默认情况下，dot1q子接口继承物理接口的参数，以便所有VRF的子接口具有相同的属性（如开销和身份验证）。 您可以调整每个VNET标记的中继参数：

interface GigaEthernetx/x

vnet trunk

vnet name VRF-X

ip ospf cost 100

vnet name VRF-Y

ip ospf cost 15

您可以调整以下参数：

CORE-1(config-if-vnet)#?

Interface VNET instance override configuration commands:

bandwidth     Set bandwidth informational parameter

default       Set a command to its defaults

delay         Specify interface throughput delay

exit-if-vnet  Exit from VNET submode

ip            Interface VNET submode Internet Protocol config commands

no            Negate a command or set its defaults

vnet          Configure protocol-independent VNET interface options

CORE-1(config-if-vnet)#

CORE-1(config-if-vnet)#ip ?

authentication      authentication subcommands

bandwidth-percent   Set EIGRP bandwidth limit

dampening-change    Percent interface metric must change to cause update

dampening-interval  Time in seconds to check interface metrics

hello-interval      Configures EIGRP-IPv4 hello interval

hold-time           Configures EIGRP-IPv4 hold time

igmp                IGMP interface commands

mfib                Interface Specific MFIB Control

multicast           IP multicast interface commands

next-hop-self       Configures EIGRP-IPv4 next-hop-self

ospf                OSPF interface commands

pim                 PIM interface commands

split-horizon       Perform split horizon

summary-address     Perform address summarization

verify              Enable per packet validation

CORE-1(config-if-vnet)#ip

在本示例中，CORE-1的每VRF的OSPF开销已更改，因此CORE-2路径用于CUST-A，CORE-3路径用于CUST-B(默认开销为10):

interface Ethernet0/0

vnet name CUST-A

ip ospf cost 8

!

vnet name CUST-B

ip ospf cost 12

!

CORE-1#show ip route vrf CUST-A 10.1.2.0

Routing Table: CUST-A

Routing entry for 10.1.2.0/24

Known via "ospf 1", distance 110, metric 28, type intra area

Last update from 192.168.1.2 on Ethernet0/0.100, 00:05:42 ago

Routing Descriptor Blocks:

* 192.168.1.2, from 192.168.1.9, 00:05:42 ago, via Ethernet0/0.100

Route metric is 28, traffic share count is 1

CORE-1#

CORE-1#show ip route vrf CUST-B 10.2.2.0

Routing Table: CUST-B

Routing entry for 10.2.2.0/24

Known via "ospf 2", distance 110, metric 30, type intra area

Last update from 192.168.1.14 on Ethernet1/0.200, 00:07:03 ago

Routing Descriptor Blocks:

* 192.168.1.14, from 192.168.1.6, 1d18h ago, via Ethernet1/0.200

Route metric is 30, traffic share count is 1

CORE-1#

每链路VNET标记

默认情况下，在VRF定义中定义的VNET标记用于所有中继。但是，您可以对每个中继使用不同的VNET标记。

本示例描述了连接到非EVN设备，并使用VRF-Lite和手动中继，且全局VNET标记被另一个VLAN使用的场景：

通过此设置，CUST-A的CORE-1和CORE-2之间的中继上使用的VNET标记从100更改为101:

interface Ethernet0/0

vnet name CUST-A

vnet tag 101

在CORE-1上发生此更改后，将创建一个新子接口：

CORE-1#show derived-config | b Ethernet0/0

interface Ethernet0/0

vnet trunk

ip address 192.168.1.1 255.255.255.252

!

interface Ethernet0/0.101

description Subinterface for VNET CUST-A

encapsulation dot1Q 101

vrf forwarding CUST-A

ip address 192.168.1.1 255.255.255.252

!

interface Ethernet0/0.200

description Subinterface for VNET CUST-B

encapsulation dot1Q 200

vrf forwarding CUST-B

ip address 192.168.1.1 255.255.255.252

如果此更改仅在一端发生，则关联的VRF中的连接将丢失，OSPF将断开：

%OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.5 on Ethernet0/0.101 from FULL to DOWN,

Neighbor Down: Dead timer expired

在CORE-2上使用同一VNET标记后，连接将恢复，并且在该中继上使用dot1q标记101，而在CORE-1到CORE-3中继上仍使用100:

%OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.5 on Ethernet0/0.101 from LOADING to

FULL, Loading Done

验证

当前没有可用于此配置的验证过程。

故障排除

目前没有针对此配置的故障排除信息。

相关信息

- 轻松的虚拟网络 — 简化第3层网络虚拟化

- 技术支持和文档 - Cisco Systems