マルチプロトコル ラベル スイッチング(MPLS) : MPLS

ASBR間でのVPNv4 eBGPセッションを使用した Inter-AS MPLS VPNの設定

2003 年 12 月 1 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 8 月 10 日) | フィードバック

目次


概要

この資料では、Autonomous System(AS;自律システム)間Multiprotocol Label Switching(MPLS)Virtual Private Network(VPN)の基本的な設定例を示します。読者にはMPLSおよびMPLS VPNに関する基礎知識があることを前提としています。MPLS VPN関連のその他の資料へのリンクは、後述の関連情報にあります。

設定

ここでは、この資料で説明する機能の設定に必要な情報を示します。

注: この資料で説明するコマンドについて詳細を調べるには、IOS Command Lookupツールをご利用ください。このツールへのリンクは、後述のツール情報にあります。

この設定で使用するコンポーネント

この設定は、次のバージョンのソフトウェアおよびハードウェアを使用して作成と動作確認が行われました。

  • Cisco IOS® ソフトウェア リリース12.2および12.2T

: この設定では各種のコードを使用するので、Label Distribution Protocol(LDP)ではなく、Tag Distribution Protocol(TDP)を使用しています。純粋にLDPだけを使用する設定では、Tag Forwarding Information Base(TFIB)の代わりにLabel Forwarding Information Base(LFIB)を使用し、show tag forwardingコマンドの代わりにshow mpls forwardingコマンドを使用するなどの違いがあります。

この資料に記載されている情報は、ラボ環境の装置から得られたものです。この資料で使用している装置はいずれも、デフォルトの設定からスタートしています。実際のネットワークに応用する場合は、どのコマンドを使用する場合にも、そのコマンドの潜在的な影響をよく理解したうえで使用してください。

ネットワークダイアグラム

設定

上のネットワークダイアグラムに示されている各ルータの設定は、次のとおりです。

Pullignyの設定
version 12.2

 !

 hostname Pulligny

 !

 ip cef

 !--- MPLSを使用するためにCisco Express Forwarding(CEF)をイネーブルにします。

 !

 interface Loopback0

  ip address 10.10.10.2 255.255.255.255

  ip router isis 

 !

 interface Serial0/0

  no ip address

  encapsulation frame-relay

 !

 interface Serial0/0.1 point-to-point

  description to Paulliac

  ip address 10.1.1.2 255.255.255.252

  ip router isis 

  tag-switching ip

 !--- 各ASの内部でTDPまたはLDPをイネーブルにする必要があります。

  frame-relay interface-dlci 913   

 !

 interface Serial0/0.2 point-to-point

  description to Pomerol

  ip address 10.1.1.10 255.255.255.252

  frame-relay interface-dlci 912   

 !--- AS間リンクではTDP/LDPまたはルーティング プロトコルをイネーブルにしません。

 !

 router isis 

  redistribute connected metric 20       

 !--- Border Gateway Protocol(BGP)で作成したホストルートを 

 !--- Interior Gateway Protocol(IGP)に取り込みます。

  net 47.0000.5555.5555.5555.00

  metric-style wide

 !

 router bgp 1

  no bgp default ipv4-unicast

 !--- IPv4ユニキャストにはBGPを使用しません。

  no bgp default route-target filter

 !--- これはVPNv4プレフィクスを受け入れるために必要です。

 neighbor 10.1.1.9 remote-as 2           

 !--- PomerolへのExternal BGP(eBGP)

  neighbor 10.10.10.4 remote-as 1                

  neighbor 10.10.10.4 update-source Loopback0

 !--- PEscaraへのInternal BGP(iBGP) 

  !

  address-family vpnv4

  neighbor 10.1.1.9 activate

  neighbor 10.1.1.9 send-community both

  neighbor 10.10.10.4 activate

  neighbor 10.10.10.4 send-community extended

  exit-address-family

 !--- BGPでVPN-IPv4プロトコルを伝送するためのアドレス ファミリー

 !

 ip classless

 !

 end

 
PEscaraの設定
hostname PEscara

 !

 ip vrf one

  rd 1:1   

  route-target export 1:1

  route-target import 1:1

 

 !--- [one]という名前のVirtual Routing and Forwarding(VRF) 

 !--- インスタンスを、ルート識別子値1:1で作成します。 

 !--- このVRFとの間でルート ターゲット値1:1のルートを

 !--- インポートおよびエクスポートします。

 ip cef

 !--- MPLSを使用するには、CEFをイネーブルにする必要があります。

 !

 interface Loopback0

  ip address 10.10.10.4 255.255.255.255

  ip router isis 

 !

 interface Serial0/1

  no ip address

  encapsulation frame-relay

  frame-relay lmi-type cisco

 !

 interface Serial0/1.1 point-to-point

  description to Pauillac

  ip address 10.1.1.14 255.255.255.252

  ip router isis 

  tag-switching ip

  frame-relay interface-dlci 973   

 !

 interface Serial0/1.2 point-to-point

  description to CEntrum

  ip vrf forwarding one

 !--- インターフェイスをVRF oneに対応づけます。

  ip address 120.0.0.1 255.255.255.0

  frame-relay interface-dlci 979   

 !

 router isis 

  net 47.0000.7777.7777.7777.00

  metric-style wide

 !

 router bgp 1

  no bgp default ipv4-unicast

  bgp log-neighbor-changes

  neighbor 10.10.10.2 remote-as 1

  neighbor 10.10.10.2 update-source Loopback0

 !--- PullignyへのiBGP 

  !

  address-family ipv4 vrf one

  redistribute connected

  no auto-summary

  no synchronization

  exit-address-family

 !--- VRF oneに対する、BGPでIPv4プロトコルを搬送するための  

 !--- アドレス ファミリー(独自のアドレス ファミリーを使用する

 !--- BGPプロセスの制御下で、BGPにルートを投入する各VRFを

 !--- 設定する必要があります)。

  !

  address-family vpnv4

  neighbor 10.10.10.2 activate

  neighbor 10.10.10.2 send-community both

  exit-address-family

 !--- BGPでVPN-IPv4プロトコルを搬送するためのアドレス ファミリー

 !

 ip classless

 !

 end

 
Pauillacの設定

 !--- Pauillacルータはプロバイダー ルータ(p)であり、

 !--- 設定はきわめて単純です。

 !--- IS-IS(Intermediate System-to-Intermediate System)

 !--- およびMPLS/Tagスイッチングを設定します。

 !

 hostname Pauillac

 !

 

 ip cef

 !

 interface Loopback0

  ip address 10.10.10.1 255.255.255.255

  ip router isis 

 !

 interface Serial0/0

  no ip address

  encapsulation frame-relay

 !

 interface Serial0/0.1 point-to-point

  description to Pulligny

  ip address 10.1.1.1 255.255.255.252

  ip router isis 

  tag-switching ip

  frame-relay interface-dlci 931   

 !

 interface Serial0/0.3 point-to-point

  description to PEscara

  ip address 10.1.1.13 255.255.255.252

  ip router isis 

  tag-switching ip

  frame-relay interface-dlci 937   

 !

 router isis 

  net 47.0000.3333.3333.3333.00

  metric-style wide

 !

 ip classless

 !

 end

 
Pomerolの設定
!--- PomerolルータはPullignyと同様に Autonomous System

 !--- Boundary Router(ASBR;自律システム境界ルータ)であり、

 !--- その設定は、Pomerolとほぼ同じです。

 

 hostname Pomerol

 !

 ip cef

 !

 interface Loopback0

  ip address 10.10.10.3 255.255.255.255

  ip router isis 

 !

 interface Serial0/0

  no ip address

  encapsulation frame-relay

 !

 interface Serial0/0.1 point-to-point

  description to Pulligny

  ip address 10.1.1.9 255.255.255.252

  frame-relay interface-dlci 921   

 !

 interface Serial0/0.3 point-to-point

  description to PEsaro

  ip address 10.1.1.21 255.255.255.252

  ip router isis 

  tag-switching ip

  frame-relay interface-dlci 925   

 !

 router isis 

  redistribute connected metric 20

  net 47.0000.2222.2222.2222.00

  metric-style wide

 !

 router bgp 2

  no bgp default ipv4-unicast

  no bgp default route-target filter

  bgp log-neighbor-changes

  neighbor 10.1.1.10 remote-as 1

  neighbor 10.10.10.6 remote-as 2

  neighbor 10.10.10.6 update-source Loopback0

  !

  address-family vpnv4

  neighbor 10.1.1.10 activate

  neighbor 10.1.1.10 send-community both

  neighbor 10.10.10.6 activate

  neighbor 10.10.10.6 send-community extended

  exit-address-family

 !

 ip classless

 !

 end

 
PEsaroの設定
!--- PEsaroルータも、PEscaraルータと同様の

 !--- PEルータです。設定は

 !--- ほとんど同じです。

 

 

 hostname PEsaro

 !

 ip vrf one

  rd 1:1

  route-target export 1:1

  route-target import 1:1

 ip cef    

 !

 interface Loopback0

  ip address 10.10.10.6 255.255.255.255

  ip router isis 

 !

 interface Serial0/1

  no ip address

  encapsulation frame-relay

 !

 interface Serial0/1.1 point-to-point

  description to Pomerol

  ip address 10.1.1.22 255.255.255.252

  ip router isis 

  tag-switching ip

  frame-relay interface-dlci 952   

 !

 interface Serial0/1.2 point-to-point

  description to CErvela

  ip vrf forwarding one

  ip address 220.0.0.1 255.255.255.0

  frame-relay interface-dlci 958   

 !

 router isis 

  net 47.0000.5555.5555.5555.00

  metric-style wide

 !

 router bgp 2

  no synchronization

  no bgp default ipv4-unicast

  bgp log-neighbor-changes

  redistribute connected

  neighbor 10.10.10.3 remote-as 2

  neighbor 10.10.10.3 update-source Loopback0

  no auto-summary

  !

  address-family ipv4 vrf one

  redistribute connected

  no auto-summary

  no synchronization

  exit-address-family

  !

  address-family vpnv4

  neighbor 10.10.10.3 activate

  neighbor 10.10.10.3 send-community both

  no auto-summary

  exit-address-family

 !

 ip classless

 !

 end

 

設定時の注意事項

  • AS間のeBGPは、マルチホップにすることはできません。
  • 2つのAS間にLDP/TDPは不要です。
  • 2つのAS間に共通のInterior Gateway Protocol(IGP)は不要です。ASはそれぞれ独自のIGPを個別に使用できます。
  • 各ASのIGPに投入する必要があるセッションがアップになると、BGPはリモートASのeBGPピア用の接続ホスト ルートを作成します。
  • ASBRが、 交換すべきVRFすべてに対するPEである場合を除き、そのASBRがAS内部の他のPEルータからのBGP VPNv4プレフィクスを確実に受け入れるよう、no bgp default route-target filterコマンドを設定する必要があります。デフォルトの動作では、着信VPNv4プレフィクスは拒否され、ローカルVRFにインポートされません。

Inter-AS MPLS VPNの動作確認

ここでは、設定が正しく動作しているかどうかを確認する方法を説明します。

showコマンド出力の解析結果を表示するOutput Interpreterツールでは、いくつかのshowコマンドがサポートされています。このツールへのリンクは、後述するツール情報にあります。

以下で使用するコマンドについての詳細は、MPLS VPNのトラブルシューティングを参照してください。

以下に示す一連の例は、220.0.0.0/24(PEsaro上で接続されたVRF oneプレフィクス)から120.0.0.0/24(PEscara上で接続されたVRF oneプレフィクス)までのパケット フローを示しています。

PEsaroルータ

PEsaroルータ上のVFR oneのルートは、次のとおりです。

PEsaro#show ip route vrf one  

 Codes: C - connected, S - static, I - IGRP, 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, E - EGP

        i - IS-IS, 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

 

 Gateway of last resort is not set

 

 C    220.0.0.0/24 is directly connected, Serial0/1.2

      120.0.0.0/24 is subnetted, 1 subnets

 B       120.0.0.0 [200/0] via 10.1.1.10, 00:26:49

 

 

 PEsaro#show ip cef vrf one 120.0.0.1

 120.0.0.0/24, version 10, cached adjacency to Serial0/1.1

 0 packets, 0 bytes

   tag information set

     local tag: VPN-route-head

     fast tag rewrite with Se0/1.1, point2point, tags imposed: {17 22}

   via 10.1.1.10, 0 dependencies, recursive

     next hop 10.1.1.21, Serial0/1.1 via 10.1.1.10/32

     valid cached adjacency

     tag rewrite with Se0/1.1, point2point, tags imposed: {17 22}

 PEsaro#
 

上記の出力から、120.0.0.0/24のネクスト ホップは10.1.1.10であることがわかります。さらに、付加されたタグは17および22であることがわかります。それでは、これらのタグはどこから来たのでしょうか? TFIBおよびBGP情報(下記)を見ると、タグの出所がわかります。120.0.0.0/24のBGPルートは22という発信タグを持ち、120.0.0.0/24に対応するネクスト ホップは17という発信タグを持っています。

PEsaro#show ip bgp vpnv4 vrf one tags

    Network          Next Hop      In tag/Out tag

 Route Distinguisher: 1:1 (one)

    120.0.0.0/24     10.1.1.10       notag/22             !--- VPNラベル

    220.0.0.0        0.0.0.0         18/aggregate(one)

 

 PEsaro#show tag forwarding 10.1.1.10

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 17     17          10.1.1.10/32      0          Se0/1.1    point2point  

 

 PEsaro#show ip route 10.1.1.10

 Routing entry for 10.1.1.10/32

   Known via "isis", distance 115, metric 30, type level-2

   Redistributing via isis

   Last update from 10.1.1.21 on Serial0/1.1, 00:30:39 ago

   Routing Descriptor Blocks:

   * 10.1.1.21, from 10.10.10.3, via Serial0/1.1

       Route metric is 30, traffic share count is 1

 

10.1.1.10は、Pomerolによってアドバタイズされます。これはBGPによって作成されたホスト ルートです。上記の出力からわかるように、これはリモートVPNv4プレフィクスのBGPネクスト ホップであるため重要です。PEsaroは2つのラベルの付いたパケットをPomerolに送信します。 [inner/IGP] ラベルは17です。

Pomerolルータ

Pomerol#show tag forwarding

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 16     Pop tag     10.10.10.6/32     0          Se0/0.3    point2point  

 17     Pop tag     10.1.1.10/32      540        Se0/0.1    point2point  

 18     18          1:1:220.0.0.0/24  1704       Se0/0.3    point2point  

 

 

 Pomerol#show ip route 10.1.1.10

 Routing entry for 10.1.1.10/32

   Known via "connected", distance 0, metric 0 (connected, via interface)

   Redistributing via isis

   Advertised by isis metric 20 metric-type internal level-2

   Routing Descriptor Blocks:

   * directly connected, via Serial0/0.1

       Route metric is 0, traffic share count is 1

注: eBGPがアップになると、すぐに10.1.1.10の/32ルートが作成されます。

上記の出力からわかるように、トップ ラベルが17であれば、Pomerolはそのラベルを「ポップ」します。つまり、AS1のPullignyに送信されるパケットに残されるのは、eBGP VPNラベルだけです。

Pullignyルータ

Pulligny#show tag forwarding

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 16     Pop tag     10.1.1.9/32       540        Se0/0.2    point2point  

 17     Pop tag     10.1.1.12/30      0          Se0/0.1    point2point  

 18     Pop tag     10.10.10.1/32     0          Se0/0.1    point2point  

 19     16          10.10.10.4/32     0          Se0/0.1    point2point  

 21     Pop tag     10.1.1.4/30       0          Se0/0.1    point2point  

 22     16          1:1:120.0.0.0/24  1080       Se0/0.1    point2point  

上記の出力では、Pullignyには、120.0.0.0/24のローカル タグおよび発信タグがあります。TFIBエントリを詳しく検証してみましょう。

Pulligny#show tag forwarding detail | begin 22

 22     16          1:1:120.0.0.0/24  1080       Se0/0.1    point2point  

         MAC/Encaps=4/12, MTU=1496, Tag Stack{16 23}

         E4118847 0001000000017000

         No output feature configured

上記の出力からわかるのは、PullignyのTFIBにはVPNv4エントリがあるということです。このエントリが必要な理由は、AS間リンク上ではラベルが1つしか存在しないからです。Pomerolがラベル スタックからラベル17をポップしているので、Pullignyはラベル22の付いたパケットを受信します。Pullignyははラベル22をポップして、ラベル23および16をプッシュします。以下のTFIBおよびBGP情報を見ると、16はPEscaraに到達するためのIGPラベルであり、23はPEscaraが1:1:120.0.0.0/24にアドバタイズするVPNラベルであることがわかります。

Pulligny#show ip bgp vpnv4 all tagging

    Network          Next Hop      In tag/Out tag

 Route Distinguisher: 1:1

    120.0.0.0/24     10.10.10.4      22/23

    220.0.0.0        10.1.1.9        notag/18

 

 Pulligny#show tagging for 10.10.10.4

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 19     16          10.10.10.4/32     0          Se0/0.1    point2point  

Pullignyは、PEscaraから受け取ったVPNラベルを変更し、Pomerolには別のラベルをアドバタイズする点に注意してください。その過程でPullignyは、自身のTFIBに1:1:120.0.0.0/24のエントリを追加します。(2つのAS間におけるeBGPセッションのように)ネクスト ホップが変化するとラベルが変化するのは、デフォルトの動作です。したがってASBRには、ローカルAS内のVPNプレフィクスごとに1つずつのTFIBエントリがあります。次の出力からわかるように、PEはネクスト ホップ(Penultimate Hop Popping [PHP])なので、Pauillacは単純なラベル スワップ/ポップを行います。

Pauillac#show tag forwarding

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 16     Pop tag     10.10.10.4/32     111049     Se0/0.3    point2point  

 17     Pop tag     10.10.10.2/32     94769      Se0/0.1    point2point  

 18     Pop tag     10.1.1.8/30       0          Se0/0.1    point2point  

 19     16          10.1.1.9/32       560        Se0/0.1    point2point

次の出力からわかるように、PEscaraがラベル23を受け取ると、PEscaraはそれがVRF oneの一部分であることを認識し、IPルックアップを実行して正しいインターフェイスに転送します。

PEscara#show tag forwarding

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 16     Pop tag     10.1.1.0/30       0          Se0/1.1    point2point  

 17     Pop tag     10.1.1.4/30       0          Se0/1.1    point2point  

 18     Pop tag     10.10.10.1/32     0          Se0/1.1    point2point  

 19     17          10.10.10.2/32     0          Se0/1.1    point2point  

 21     18          10.1.1.8/30       0          Se0/1.1    point2point  

 22     19          10.1.1.9/32       0          Se0/1.1    point2point 

 23     Aggregate   120.0.0.0/24[V]   1040 

                             

 

 

 PEscara#show tag forwarding detail | begin 23

 23     Aggregate   120.0.0.0/24[V]   1040                               

         MAC/Encaps=0/0, MTU=0, Tag Stack{}

         VPN route: one

         Feature Quick flag set

 

以下に、これまでに説明したパケット フローで送信された1つのパケットの例を示します。

Pomerol#

 *Mar  1 19:49:59.103: TAG: Se0/0.3: recvd: CoS=0, TTL=255, Tag(s)=17/22

 *Mar  1 19:49:59.103: TAG: Se0/0.1: xmit: CoS=0, TTL=254, Tag(s)=22

 

 Pulligny#

 *Mar  1 20:21:35: TAG: Se0/0.2: recvd: CoS=0, TTL=254, Tag(s)=22

 *Mar  1 20:21:35: TAG: Se0/0.1: xmit: CoS=0, TTL=253, Tag(s)=16/23

 

 Pauillac#

 *Mar  1 19:56:39.627: TAG: Se0/0.1: recvd: CoS=0, TTL=253, Tag(s)=16/23

 *Mar  1 19:56:39.627: TAG: Se0/0.3: xmit: CoS=0, TTL=252, Tag(s)=23

 

 PEscara#

 *Mar  1 19:57:00.463: TAG: Se0/1.1: recvd: CoS=0, TTL=252, Tag(s)=23

ASBRでのnext-hop-selfコマンド

ASBR上のiBGPピアにに関してnext-hop-selfコマンドを設定すると、ASBRはiBGPピアに対して異なるラベルをアドバタイズし(ネクスト ホップが変化すると新しいラベルがアドバタイズされるので)、自身のTFIBにリモートAS VPNv4ルートのエントリを追加します。その結果、ASBRに追加のステートが作られます。BGPで作成されたホスト ルートをIGPに再配布する必要はありません。次の出力からわかるように、この時点でASBRには、ローカルおよびリモートVPNプレフィクスの両方のエントリがあります。

Pomerol#show tag forwarding

 Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

 tag    tag or VC   or Tunnel Id      switched   interface              

 16     Pop tag     10.10.10.6/32     0          Se0/0.3    point2point  

 17     Pop tag     10.1.1.10/32      540        Se0/0.1    point2point  

 18     18          1:1:220.0.0.0/24  0          Se0/0.3    point2point  

 19     22          1:1:120.0.0.0/24  0          Se0/0.1    point2point

ツール情報

その他のリソースについては、ツール & リソースを参照してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 5811