目錄

簡介

必要條件

需求

採用元件

背景資訊

使用mGRE通道的動態第3層VPN的限制

設定

在僅IP（非MPLS）網路上使用mGRE隧道的動態L3 VPN

網路圖表

組態

驗證

在IP + MPLS網路上使用mGRE隧道的動態L3 VPN

網路圖表

組態

驗證

疑難排解

相關資訊

簡介

本文說明如何使用多點通用路由封裝(mGRE)通道功能設定動態第3層(L3)VPN。

必要條件

需求

在使用mGRE隧道功能配置動態第3層VPN之前，請確保您的多協定標籤交換(MPLS)VPN已配置且工作正常，並且已為IPV4網路建立端到端連線。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco 7206VXR(NPE-G1)系列路由器，帶Cisco IOS®軟體版本15.2(4)S3

- 採用Cisco IOS軟體版本12.2(33)SRE4的Cisco 7609-S系列路由器

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

採用mGRE通道的動態第3層VPN功能提供在IP網路中使用的基於增強型mGRE通道技術的第3層傳輸機制。動態L3隧道傳輸也可用在IP網路內，以便通過服務提供商和企業網路傳輸VPN流量，並為IP和MPLS VPN之間的資料包傳輸提供互操作性。此功能為RFC 2547提供支援，RFC 2547定義了企業網路IP骨幹服務的外包。

使用mGRE通道的動態第3層VPN的限制

以下是適用於使用mGRE通道的動態第3層VPN的限制清單：

- 不支援在單個網路中部署同時具有IP/GRE和MPLS封裝的MPLS VPN。

- 每個提供商邊緣(PE)路由器僅支援一個隧道配置。

- 不支援面向核心的Cisco 7600系列路由器上的VLAN介面，該介面必須輸入隧道標籤流量。它應該是主介面或子介面。

- 使用ES-40線卡和會話初始協定(SIP)400線卡作為面向核心的卡的Cisco 7600系列路由器支援使用mGRE的MPLS VPN。

設定

本節介紹兩種配置：

- 在僅IP網路上使用mGRE隧道的動態L3 VPN

- 在IP + MPLS網路上使用mGRE隧道的動態L3 VPN

在僅IP（非MPLS）網路上使用mGRE隧道的動態L3 VPN

網路圖表

組態

這些是路由器3(R3)和路由器2(R2)上所需的配置。

以下是R3的配置：

l3vpn encapsulation ip MGRE

transport ipv4 source Loopback0

route-map MGRE-NEXT-HOP permit 10

set ip next-hop encapsulate l3vpn MGRE

router bgp 65534

!

address-family vpnv4

neighbor 192.168.2.2 route-map MGRE-NEXT-HOP in

以下是R2的配置：

l3vpn encapsulation ip MGRE

transport ipv4 source Loopback0

route-map MGRE-NEXT-HOP permit 10

set ip next-hop encapsulate l3vpn MGRE

router bgp 65534

!

address-family vpnv4

neighbor 192.168.3.3 route-map MGRE-NEXT-HOP in

驗證

使用本節內容，確認您的組態是否正常運作。

R2#show tunnel endpoints

Tunnel0 running in multi-GRE/IP mode

Endpoint transport 192.168.3.3 Refcount 3 Base 0x1E8E1B74 Create Time 00:47:53

overlay 192.168.3.3 Refcount 2 Parent 0x1E8E1B74 Create Time 00:47:53

R2#show l3vpn encapsulation ip MGRE

Profile: MGRE

transport ipv4 source Loopback0

protocol gre

payload mpls

mtu default

Tunnel Tunnel0 Created [OK]

Tunnel Linestate [OK]

Tunnel Transport Source Loopback0 [OK]

R2#show ip route vrf MGRE 172.16.3.3

Routing Table: MGRE

Routing entry for 172.16.3.3

Known via "bgp 65534", distance 200, metric 0, type internal

Last update from 192.168.3.3 on Tunnel0, 01:03:25 ago

Routing Descriptor Blocks:

* 192.168.3.3 (default), from 172.16.112.1, 01:03:25 ago, via Tunnel0 <points to tunnel

Route metric is 0, traffic share count is 1

AS Hops 0

MPLS label: 17   <BGP vpnv4 label>

MPLS Flags: MPLS Required

附註：在上一個示例中，只有兩個PE。但是，如果您的網路很大，有多台PE路由器，則此動態mGRE非常容易配置和可擴展，因為您必須在所有PE上擁有類似的配置，並且隧道會自動被發現。

在IP + MPLS網路上使用mGRE隧道的動態L3 VPN

網路圖表

如果您有一個雙連線方案，其中一個連線是MPLS，另一個是非MPLS，則必須在所涉及的所有PE路由器上配置mGRE。對於此拓撲，您必須在所有三台PE路由器上配置mGRE。

如果您尚未在R3和R1之間的連線上配置mGRE - MPLS鏈路，則R3後面的子網無法與R2後面的子網通訊。

R1和R2根據L3 VPN配置檔案與R3構建隧道終端。請參閱本文檔中的配置，其中未配置L3 VPN配置檔案，未應用R3上到邊界網關協定(BGP)對等體的路由對映，且未應用R1上R3的L3 VPN的路由對映。

組態

這些是R1、R2和R3上所需的配置。

以下是R1的配置：

l3vpn encapsulation ip MGRE

transport ipv4 source Loopback0

route-map MGRE-NEXT-HOP permit 10

set ip next-hop encapsulate l3vpn MGRE

router bgp 65534

address-family vpnv4

neighbor 192.168.2.2 send-community extended

neighbor 192.168.2.2 route-map MGRE-NEXT-HOP in

neighbor 192.168.3.3 activate

以下是R2的配置：

l3vpn encapsulation ip MGRE

transport ipv4 source Loopback0

route-map MGRE-NEXT-HOP permit 10

set ip next-hop encapsulate l3vpn MGRE

router bgp 65534

address-family vpnv4

neighbor 192.168.1.1 route-map MGRE-NEXT-HOP in

neighbor 192.168.1.1 activate

以下是R3的配置：

router bgp 65534

address-family vpnv4

neighbor 192.168.1.1 activate

驗證

現在，您可以從R2 loopback1 ping R3 loopback1:

R2#ping vrf  MGRE  172.16.3.3 source 172.16.2.2

Type escape sequence to abort.

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

Packet sent with a source address of 172.16.2.2

.....

Success rate is 0 percent (0/5)

R2#show ip route vrf MGRE 172.16.3.3

Routing Table: MGRE

Routing entry for 172.16.3.3/32

Known via "bgp 65534", distance 200, metric 0, type internal

Last update from 192.168.3.3 on Tunnel0, 00:50:23 ago

Routing Descriptor Blocks:

* 192.168.3.3 (default), from 192.168.1.1, 00:50:23 ago, via Tunnel0

pointed towards a tunnel>

Route metric is 0, traffic share count is 1

AS Hops 0

MPLS label: 19

MPLS Flags: MPLS Required

R2#show tunnel endpoints

Tunnel1 running in multi-GRE/IP mode

Tunnel0 running in multi-GRE/IP mode

Endpoint transport 192.168.1.1 Refcount 3 Base 0x507665E4 Create Time 01:24:25

overlay 192.168.1.1 Refcount 2 Parent 0x507665E4 Create Time 01:24:25

Endpoint transport 192.168.3.3 Refcount 3 Base 0x507664D4 Create Time 00:50:51

overlay 192.168.3.3 Refcount 2 Parent 0x507664D4 Create Time 00:50:51

R2基於172.16.3.3路由的BGP下一跳為192.168.3.3建立了動態隧道。

R2#show ip bgp vpnv4 vrf  MGRE 172.16.3.3

BGP routing table entry for 43984:300:172.16.3.3/32, version 29

Paths: (1 available, best #1, table MGRE)

Advertised to update-groups:

1

Local, imported path from 300:300:172.16.3.3/32

192.168.3.3 (metric 3) (via Tunnel0) from 192.168.1.1 (192.168.1.1)

Origin incomplete, metric 0, localpref 100, valid, internal, best

Extended Community: RT:43984:300

Originator: 192.168.3.3, Cluster list: 192.168.1.1

mpls labels in/out nolabel/19

它已在R1上驗證，並且還為兩個PE路由器建立了隧道終端：

R1#show tunnel endpoints

Tunnel1 running in multi-GRE/IP mode

Tunnel0 running in multi-GRE/IP mode

Endpoint transport 192.168.2.2 Refcount 3 Base 0x1E8EE7B0 Create Time 01:36:41

overlay 192.168.2.2 Refcount 2 Parent 0x1E8EE7B0 Create Time 01:36:41

Endpoint transport 192.168.3.3 Refcount 3 Base 0x1E8EE590 Create Time 00:59:34

overlay 192.168.3.3 Refcount 2 Parent 0x1E8EE590 Create Time 00:59:34

在R3上，未建立隧道端點：

R3#show tunnel endpoints

以下是發出ping命令的R2子網的路由：

R3#show ip route vrf  MGRE  172.16.2.2

Routing Table: MGRE

Routing entry for 172.16.2.2/32

Known via "bgp 65534", distance 200, metric 0, type internal

Last update from 192.168.2.2 01:01:57 ago

Routing Descriptor Blocks:

* 192.168.2.2 (default), from 192.168.1.1, 01:01:57 ago

Route metric is 0, traffic share count is 1

AS Hops 0

MPLS label: 17

MPLS Flags: MPLS Required

因此，資料包會以GRE封裝到R3上。由於R3沒有隧道，因此它不接受GRE資料包，並丟棄該資料包。

因此，您必須在路徑上端到端配置mGRE以使其正常工作。以下是R3上的mGRE配置，這是必需的：

l3vpn encapsulation ip MGRE

transport ipv4 source Loopback0

route-map MGRE-NEXT-HOP permit 10

set ip next-hop encapsulate l3vpn MGRE

一旦您建立第3層VPN配置檔案，就會建立隧道終端，並且您會收到之前丟棄的流量。但是，返回流量是MPLS而不是GRE，直到您將配置檔案應用到BGP對等體上。該流量在R1上被丟棄，因為R1沒有任何只運行IP的R2的標籤資訊。

R3#show tunnel endpoints

Tunnel0 running in multi-GRE/IP mode

Endpoint transport 192.168.1.1 Refcount 3 Base 0x2B79FBD4 Create Time 00:00:02

overlay 192.168.1.1 Refcount 2 Parent 0x2B79FBD4 Create Time 00:00:02

Endpoint transport 192.168.2.2 Refcount 3 Base 0x2B79FAC4 Create Time 00:00:02

overlay 192.168.2.2 Refcount 2 Parent 0x2B79FAC4 Create Time 00:00:02

R3#show ip cef vrf  MGRE  172.16.2.2

172.16.2.2/32

nexthop 192.168.13.1 GigabitEthernet0/0.1503 label 21 17

router bgp 65534

address-family vpnv4

neighbor 192.168.1.1 route-map MGRE-NEXT-HOP in

R3#show ip cef vrf  MGRE  172.16.2.2

172.16.2.2/32

nexthop 192.168.2.2 Tunnel0 label 17

R2#ping vrf  MGRE 172.16.3.3 source  172.16.2.2

Type escape sequence to abort.

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

Packet sent with a source address of 172.16.2.2

!!!!!

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

案例 3

假設R5後面的子網需要與R3通訊，因此不希望使用mGRE。然後，您可以使用用於L3 VPN配置檔案的路由對映來設定下一跳並呼叫字首清單，並且僅允許需要mGRE隧道的字首。

以下是R1的配置：

route-map MGRE-NEXT-HOP permit 10

match ip address prefix-list test

set ip next-hop encapsulate l3vpn MGRE

route-map MGRE-NEXT-HOP permit 20

您可以在字首清單測試中允許需要mGRE隧道的字首，而其他所有裝置均沒有隧道作為送出介面並遵循正常路由。此配置工作正常，因為R3和R5具有端到端的MPLS連線。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。

相關資訊

- 採用多點GRE通道的動態第3層VPN

- 技術支援與文件 - Cisco Systems