愛伊米

配置BGPMPLS IP VPN採用GRE隧道示例

配置BGP/MPLS IP VPN採用GRE隧道示例

組網需求

說明:

AR150&160&200不支援該場景。

某企業網路如圖1所示:

分支機構1透過CE1連線PE1接入VPN骨幹網。

分支機構2透過CE2連線PE2接入VPN骨幹網。

在骨幹網中,PE裝置具備MPLS能力,P裝置不具備MPLS能力。

企業要求使用GRE隧道建立PE間的直連鏈路,不使用LSP隧道,透過IP協議轉發VPN報文。

圖1 配置BGP/MPLS IP VPN採用GRE隧道組網圖

配置BGPMPLS IP VPN採用GRE隧道示例

拓撲圖

配置思路

本例配置主要思路是:

1。 在P、PE之間配置OSPF,實現骨幹網的IP連通性。

2。 在PE之間建立GRE隧道,使VPN報文透過該隧道進行傳輸。

3。 在PE上配置VPN例項,並與CE相連的介面和相應的VPN例項繫結,以接入VPN使用者。

4。 由於P裝置不支援MPLS功能,所以不能使用LSP隧道傳輸VPN資料,我們可以透過在PE上配置隧道策略,指定VPN流量使用的隧道型別為GRE,在配置VPN例項時,應用該隧道策略。這樣VPN報文就能透過GRE隧道進行傳輸。

在PE與CE之間建立EBGP來交換路由資訊,使CE能學到對端CE的介面路由,實現分支機構CE1和CE2的互通。

操作步驟

配置各介面IP地址

# 配置CE1。

system-view

[Huawei] sysname CE1

[CE1] interface gigabitethernet 1/0/0

[CE1-GigabitEthernet1/0/0] ip address 10。1。1。1 24

[CE1-GigabitEthernet1/0/0] quit

# 配置PE1,需要繫結VPN例項的介面,先不要配置IP地址,繫結時會將介面下所有配置刪除。

system-view

[Huawei] sysname PE1

[PE1] interface gigabitethernet 2/0/0

[PE1-GigabitEthernet2/0/0] ip address 172。1。1。1 24

[PE1-GigabitEthernet2/0/0] quit

[PE1] interface loopback 1

[PE1-LoopBack1] ip address 1。1。1。9 32

[PE1-LoopBack1] quit

# 配置P。

system-view

[Huawei] sysname P          //給路由器命名

[P] interface gigabitethernet 1/0/0        //進入介面模式

[P-GigabitEthernet1/0/0] ip address 172。1。1。2 24    //配置介面的IP地址

[P-GigabitEthernet1/0/0] quit

[P] interface gigabitethernet 2/0/0

[P-GigabitEthernet2/0/0] ip address 172。2。1。1 24

[P-GigabitEthernet2/0/0] quit

# 配置PE2,需要繫結VPN例項的介面,先不要配置IP地址,繫結時會將介面下所有配置刪除。

system-view

[Huawei] sysname PE2                           // 給華為裝置命名

[PE2] interface gigabitethernet 2/0/0   // 進入介面模式

[PE2-GigabitEthernet2/0/0] ip address 172。2。1。2 24    //配置介面IP地址

[PE2-GigabitEthernet2/0/0] quit           //退出介面模式

[PE2] interface loopback 1                   //進入環回口1

[PE2-LoopBack1] ip address 2。2。2。9 32    //給環回口配置Ip地址

[PE2-LoopBack1] quit                          //退出介面模式

# 配置CE2。

system-view

[Huawei] sysname CE2                             //給華為路由器命名

[CE2] interface gigabitethernet 1/0/0      //進入介面模式

[CE2-GigabitEthernet1/0/0] ip address 10。2。1。1 24     //配置介面的IP地址

[CE2-GigabitEthernet1/0/0] quit             //退出介面模式

在骨幹網上配置IGP協議,實現骨幹網PE之間的互通

# 配置PE1。

[PE1] ospf 1

[PE1-ospf-1] area 0

[PE1-ospf-1-area-0。0。0。0] network 1。1。1。9 0。0。0。0

[PE1-ospf-1-area-0。0。0。0] network 172。1。1。0 0。0。0。255

[PE1-ospf-1-area-0。0。0。0] quit

[PE1-ospf-1] quit

# 配置P。

[P] ospf 1                    //開啟OSPF程序1

[P-ospf-1] area 0        //進入OSPF程序1的區域0

[P-ospf-1-area-0。0。0。0] network 172。1。1。0 0。0。0。255      //在區域0下宣告網路

[P-ospf-1-area-0。0。0。0] network 172。2。1。0 0。0。0。255      //在區域0下宣告網路

[P-ospf-1-area-0。0。0。0] quit       //退出OSPF區域0

[P-ospf-1] quit           //退出OSPF程序1

# 配置PE2。

[PE2] ospf 1

[PE2-ospf-1] area 0

[PE2-ospf-1-area-0。0。0。0] network 2。2。2。9 0。0。0。0

[PE2-ospf-1-area-0。0。0。0] network 172。2。1。0 0。0。0。255

[PE2-ospf-1-area-0。0。0。0] quit

[PE2-ospf-1] quit

配置完成後,PE1、P、PE2之間應能建立OSPF鄰居關係,執行display ospf peer命令可以看到鄰居狀態為Full。執行display ip routing-table命令可以看到PE之間互相學習到對方的Loopback1路由。

配置GRE隧道

# 配置PE1。

[PE1] interface tunnel 0/0/1          //進入GRE隧道介面

[PE1-Tunnel0/0/1] tunnel-protocol gre     //該介面下使用GRE協議

[PE1-Tunnel0/0/1] source loopback 1       //指定源埠

[PE1-Tunnel0/0/1] destination 2。2。2。9       //指定目標埠

[PE1-Tunnel0/0/1] ip address 20。1。1。1 24   //配置隧道介面地址

[PE1-Tunnel0/0/1] quit     //退出隧道介面

# 配置PE2。

[PE2] interface tunnel 0/0/1

[PE2-Tunnel0/0/1] tunnel-protocol gre

[PE2-Tunnel0/0/1] source loopback 1

[PE2-Tunnel0/0/1] destination 1。1。1。9

[PE2-Tunnel0/0/1] ip address 20。1。1。2 24

[PE2-Tunnel0/0/1] quit

在PE裝置上使能MPLS基本能力

# 配置PE1。

[PE1] mpls lsr-id 1。1。1。9       //配置MPLS的LSR-ID

[PE1] mpls        //開啟MPLS程序

[PE1-mpls] quit

# 配置PE2。

[PE2] mpls lsr-id 2。2。2。9

[PE2] mpls

[PE2-mpls] quit

在PE裝置上配置VPN例項,將CE接入PE,並在PE上應用隧道策略,指定使用GRE隧道轉發VPN報文

# 配置PE1。

[PE1] tunnel-policy gre1

[PE1-tunnel-policy-gre1] tunnel select-seq gre load-balance-number 1

[PE1-tunnel-policy-gre1] quit

[PE1] ip vpn-instance vpn1

[PE1-vpn-instance-vpn1] ipv4-family

[PE1-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:1

[PE1-vpn-instance-vpn1-af-ipv4] vpn-target 100:1 both

[PE1-vpn-instance-vpn1-af-ipv4] tnl-policy gre1

[PE1-vpn-instance-vpn1-af-ipv4] quit

[PE1-vpn-instance-vpn1] quit

[PE1] interface gigabitethernet 1/0/0

[PE1-GigabitEthernet1/0/0] ip binding vpn-instance vpn1

[PE1-GigabitEthernet1/0/0] ip address 10。1。1。2 24

[PE1-GigabitEthernet1/0/0] quit

# 配置PE2。

[PE2] tunnel-policy gre1        //配置隧道策略

[PE2-tunnel-policy-gre1] tunnel select-seq gre load-balance-number 1

[PE2-tunnel-policy-gre1] quit

[PE2] ip vpn-instance vpn1

[PE2-vpn-instance-vpn1] ipv4-family

[PE2-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:2

[PE2-vpn-instance-vpn1-af-ipv4] vpn-target 100:1 both

[PE2-vpn-instance-vpn1-af-ipv4] tnl-policy gre1

[PE2-vpn-instance-vpn1-af-ipv4] quit

[PE2-vpn-instance-vpn1] quit

[PE2] interface gigabitethernet 1/0/0

[PE2-GigabitEthernet1/0/0] ip binding vpn-instance vpn1

[PE2-GigabitEthernet1/0/0] ip address 10。2。1。2 24

[PE2-GigabitEthernet1/0/0] quit

配置完成後,在PE裝置上執行display ip vpn-instance verbose命令可以看到VPN例項的配置情況。各PE能Ping通相連的CE。

說明:

當PE上有多個綁定了同一個VPN的介面,則使用ping -vpn-instance 命令ping對端PE接入的CE時,要指定源IP地址,即要指定ping -vpn-instance vpn-instance-name -a source-ip-address dest-ip-address命令中的引數-a source-ip-address,否則可能ping不通。

PE與CE之間建立EBGP對等體關係,引入VPN路由

# 配置CE1。

[CE1] bgp 65410

[CE1-bgp] peer 10。1。1。2 as-number 100

[CE1-bgp] import-route direct

[CE1-bgp] quit

# 配置PE1。

[PE1] bgp 100

[PE1-bgp] ipv4-family vpn-instance vpn1

[PE1-bgp-vpn1] peer 10。1。1。1 as-number 65410

[PE1-bgp-vpn1] import-route direct

[PE1-bgp-vpn1] quit

[PE1-bgp] quit

# 配置CE2。

[CE2] bgp 65420           //開啟BGP程序

[CE2-bgp] peer 10。2。1。2 as-number 100     //配置BGP對等體鄰居

[CE2-bgp] import-route direct      //引入直連線口地址

[CE2-bgp] quit

# 配置PE2。

[PE2] bgp 100

[PE2-bgp] ipv4-family vpn-instance vpn1

[PE2-bgp-vpn1] peer 10。2。1。1 as-number 65420

[PE2-bgp-vpn1] quit

[PE2-bgp] quit

配置完成後,在PE裝置上執行display bgp vpnv4 vpn-instance peer命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。

以PE1為例:

[PE1] display bgp vpnv4 vpn-instance vpn1 peer

BGP local router ID : 1。1。1。9

Local AS number : 100

VPN-Instance vpn1, Router ID 1。1。1。9:

Total number of peers : 1                Peers in established state : 1

Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

10。1。1。1        4       65410        6        3     0 00:01:14 Established       3

在PE之間建立MP-IBGP對等體關係

# 配置PE1。

[PE1] bgp 100      //進入BGP 100的程序

[PE1-bgp] peer 2。2。2。9 as-number 100     // 配置BGP對等體鄰居

[PE1-bgp] peer 2。2。2。9 connect-interface loopback 1    //配置BGP更新源

[PE1-bgp] ipv4-family vpnv4                   //配置BGP的Vpnv4路由

[PE1-bgp-af-vpnv4] peer 2。2。2。9 enable   //配置BGP的Vpn4對等體鄰居

[PE1-bgp-af-vpnv4] quit               //退出IPv4的Vpnv4的配置模式

[PE1-bgp] quit

# 配置PE2。

[PE2] bgp 100

[PE2-bgp] peer 1。1。1。9 as-number 100

[PE2-bgp] peer 1。1。1。9 connect-interface loopback 1

[PE2-bgp] ipv4-family vpnv4

[PE2-bgp-af-vpnv4] peer 1。1。1。9 enable

[PE2-bgp-af-vpnv4] quit

[PE2-bgp] quit

配置完成後,在PE裝置上執行display bgp vpnv4 all peer命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。

[PE1] display bgp vpnv4 all peer

BGP local router ID : 1。1。1。9

Local AS number : 100

Total number of peers : 2                Peers in established state : 2

Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

2。2。2。9         4         100        4        7     0 00:02:54 Established       0

Peer of IPv4-family for vpn instance :

VPN-Instance vpn1, Router ID 1。1。1。9:

10。1。1。1        4       65410      122      119     0 01:57:43 Established       3

檢查配置結果

配置完成後,CE能學到對端CE的介面路由,CE間可以互相Ping通。

以CE1為例:

[CE1] display ip routing-table 10。2。1。0

Route Flags: R - relay, D - download to fib

————————————————————————————————————————

Routing Table : Public

Summary Count : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

10。2。1。0/24  EBGP    255  0           D   10。1。1。2        GigabitEthernet1/0/0

[CE1] ping 10。2。1。1

PING 10。2。1。1: 56  data bytes, press CTRL_C to break

Reply from 10。2。1。1: bytes=56 Sequence=1 ttl=253 time=1 ms

Reply from 10。2。1。1: bytes=56 Sequence=2 ttl=253 time=1 ms

Reply from 10。2。1。1: bytes=56 Sequence=3 ttl=253 time=1 ms

Reply from 10。2。1。1: bytes=56 Sequence=4 ttl=253 time=10 ms

Reply from 10。2。1。1: bytes=56 Sequence=5 ttl=253 time=1 ms

——- 10。2。1。1 ping statistics ——-

5 packet(s) transmitted

5 packet(s) received

0。00% packet loss

round-trip min/avg/max = 1/2/10 ms

配置檔案

CE1的配置檔案

#

sysname CE1

#

interface GigabitEthernet1/0/0

ip address 10。1。1。1 255。255。255。0

#

bgp 65410

peer 10。1。1。2 as-number 100

#

ipv4-family unicast

undo synchronization

import-route direct

peer 10。1。1。2 enable

#

return

PE1的配置檔案

#

sysname PE1

#

ip vpn-instance vpn1

ipv4-family

route-distinguisher 100:1

tnl-policy gre1

vpn-target 100:1 export-extcommunity

vpn-target 100:1 import-extcommunity

#

mpls lsr-id 1。1。1。9

mpls

#

interface GigabitEthernet1/0/0

ip binding vpn-instance vpn1

ip address 10。1。1。2 255。255。255。0

#

interface GigabitEthernet2/0/0

ip address 172。1。1。1 255。255。255。0

#

interface LoopBack1

ip address 1。1。1。9 255。255。255。255

#

interface Tunnel0/0/1

ip address 20。1。1。1 255。255。255。0

tunnel-protocol gre

source LoopBack1

destination 2。2。2。9

#

tunnel-policy gre1

tunnel select-seq gre load-balance-number 1

#

bgp 100

peer 2。2。2。9 as-number 100

peer 2。2。2。9 connect-interface LoopBack1

#

ipv4-family unicast

undo synchronization

peer 2。2。2。9 enable

#

ipv4-family vpnv4

policy vpn-target

peer 2。2。2。9 enable

#

ipv4-family vpn-instance vpn1

peer 10。1。1。1 as-number 65410

import-route direct

#

ospf 1

area 0。0。0。0

network 1。1。1。9 0。0。0。0

network 172。1。1。0 0。0。0。255

#

return

P的配置檔案

#

sysname P

#

interface GigabitEthernet1/0/0

ip address 172。1。1。2 255。255。255。0

#

interface GigabitEthernet2/0/0

ip address 172。2。1。1 255。255。255。0

#

ospf 1

area 0。0。0。0

network 172。1。1。0 0。0。0。255

network 172。2。1。0 0。0。0。255

#

return

PE2的配置檔案

#

sysname PE2

#

ip vpn-instance vpn1

ipv4-family

route-distinguisher 100:2

tnl-policy gre1

vpn-target 100:1 export-extcommunity

vpn-target 100:1 import-extcommunity

#

mpls lsr-id 2。2。2。9

mpls

#

interface GigabitEthernet1/0/0

ip binding vpn-instance vpn1

ip address 10。2。1。2 255。255。255。0

#

interface GigabitEthernet2/0/0

ip address 172。2。1。2 255。255。255。0

#

interface LoopBack1

ip address 2。2。2。9 255。255。255。255

#

interface Tunnel0/0/1

ip address 20。1。1。2 255。255。255。0

tunnel-protocol gre

source LoopBack1

destination 1。1。1。9

#

tunnel-policy gre1

tunnel select-seq gre load-balance-number 1

#

bgp 100

peer 1。1。1。9 as-number 100

peer 1。1。1。9 connect-interface LoopBack1

#

ipv4-family unicast

undo synchronization

peer 1。1。1。9 enable

#

ipv4-family vpnv4

policy vpn-target

peer 1。1。1。9 enable

#

ipv4-family vpn-instance vpn1

peer 10。2。1。1 as-number 65420

#

ospf 1

area 0。0。0。0

network 2。2。2。9 0。0。0。0

network 172。2。1。0 0。0。0。255

#

return

CE2的配置檔案

#

sysname CE2

#

interface GigabitEthernet1/0/0

ip address 10。2。1。1 255。255。255。0

#

bgp 65420

peer 10。2。1。2 as-number 100

#

ipv4-family unicast

undo synchronization

import-route direct

peer 10。2。1。2 enable

#

return