目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

網路圖表

配置EVN

調整VNET中繼

中繼清單

每個VRF中繼屬性

每鏈路VNET標籤

驗證

疑難排解

相關資訊

簡介

本檔案將說明簡易虛擬網路(EVN)功能，此功能是專為園區網路中提供簡單、易於設定的虛擬化機制而設計的。它利用當前技術，例如虛擬路由和轉發Lite(VRF-Lite)以及dot1q封裝，並且不引入任何新協定。

必要條件

需求

本文件沒有特定需求。

採用元件

本檔案中的資訊是根據以下硬體和軟體版本：

- 執行軟體版本15.0(1)SY1的Cisco Catalyst 6000(Cat6k)系列交換器

- 運行軟體版本3.2s的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中使用單獨的路由協定例項，以便通告字首可達性。

- 允許在VRF之間動態路由洩漏（與靜態路由相反），而不使用邊界網關協定(BGP)。

- IPv4和IPv6支援此功能。

設定

使用本節中介紹的資訊配置EVN功能。

附註：使用命令查詢工具(僅供已註冊客戶使用)可獲取本節中使用的命令的更多資訊。

網路圖表

以下網路設定用於說明EVN配置和show命令：

以下是有關此設定的一些重要說明：

- 定義了兩個VRF(CUST-A和CUST-B)，它們通過VNET中繼從網路核心執行。

- 開放最短路徑優先(OSPF)用於VRF以通告可達性。

- VRF COM承載一個公共伺服器(100.1.1.100)，必須從VRF CUST-A和CUST-B均可訪問。

- 使用的映像是i86bi_linux-adventerprisek9-ms.153-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

!
以下是有關此組態的一些重要說明：

- 思科建議您使用2到1,000範圍內的標籤。請勿使用保留VLAN 1,001到1,005。如果需要，可以使用擴展VLAN 1,006到4,094。

- 當前VLAN不應使用VNET標籤。

- 對於任何給定VRF，所有裝置上的VNET標籤都應相同。

- 應配置地址系列ipv4|ipv6，以便啟用相關AF中的VRF。

- 無需定義路由方向(RD)，因為EVN不使用BGP。

使用此設定，應在所有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命令建立與使用VNET標籤定義的VRF數量相同的dot1q子介面。

- 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中的複製路由帶有[+]標誌的標籤。

- multicast選項允許將來自另一個VRF的路由用於反向路徑轉發(RPF)。

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

- 全部

- 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