BGP MPLS VPN

この章では、ボーダー ゲートウェイ プロトコル(BGP)、マルチ プロトコル ラベル スイッチング(MPLS)、バーチャル プライベート ネットワーク(VPN)でサポートされるサービスについて説明します。


重要


MPLS は、別途ライセンスを必要とするライセンス供与されたシスコの機能です。特定のライセンス要件の詳細については、シスコのアカウント担当者にお問い合わせください。ライセンスのインストールと確認の詳細については、「ソフトウェア管理操作」の「ライセンスキーの管理」の項を参照してください。


説明する項目は次のとおりです。

はじめに

サービスプロバイダーは、多数の異なるアドレッシングモデルと要件を持つ多数の企業のアクセスポイント名(APN) をサポートする能力を必要とします。VPC-SI はBGP MPLS レイヤ 3 VPN を使用して、拡張性の高い方法で企業顧客の APN を分離します。このソリューションは、RFC 4364(BGP/MPLS IP のバーチャル プライベート ネットワーク(VPN)に準拠しています。


(注)  


オプション b は、マルチ AS バックボーン間の接続でサポートされています。

BGP/MPLS ソリューションでは、次のシナリオがサポートされています。

また、VPC-SI は RFC 4659(BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN)で説明されているとおり、VPNv6 をサポートします。詳細については、BGP MPLS VPN の IPv6 サポートを参照してください。

PE に接続された MPLS-CE

このシナリオでは、VPC-SI はプロバイダーエッジ(PE)ラベルエッジルータ(LER)に接続されている MPLS-CE(カスタマーエッジ)ネットワーク要素として機能し、これにより MPLS コア(RFC 4364)に接続されます。以下の図を参照してください。

図 1. VPC-SIMPLS-CE から PE

MPLS-CE は、独自の自律システム(AS)内の PE ルータのように機能します。これにより、Virtual Route Forwarding(VRF)ルートが維持され、MP eBGP(マルチプロトコル外部 BGP)セッションを介して、VPN ルート情報が PE と交換されます。

PE も VRF を使用して設定され、MP-iBGP(マルチプロトコル内部 BGP)接続を介して AS 内の他の PE と VPN ルートを交換し、MP-eBGP 接続を介して MPLS-CE を交換します。

EBGP 接続を使用すると、PE は、IBGP ピアから学習したルート内のネクストホップ IP アドレスとラベルを変更してから、MPLS-CE にアドバタイズすることができます。この場合、MPLS-CE は、ルートをアドバタイズして学習するために、MP-eBGP だけを使用します。直接接続 EBGP ピアリングのため、Label Distribution Protocol(LDP)および Resource Reservation Protocol(RSVP)は必要ありません。このシナリオの MPLS-CE は、PE との間で(MP-eBGP 接続を介して学習された)単一のラベルをプッシュ/ポップします。

VPC-SI PE として

概要

このシナリオでは、VPC-SI は MPLS コアのエッジにある PE ルータとして機能します。以下の図を参照してください。

図 2. VPC-SI PE として

VPC-SI では、 最初の 2 つのシナリオに示すように、ASBR または PE の必要性を排除します。このシナリオでは、IBGP 機能と MPLS ラベル配布プロトコルという 2 つの主要な要件が導入されています。

VPC-SI は、次の 2 つのラベルを追加するように設定できます。
  • LDP または RSVP TE から学習した外部ラベル(RSVP トラフィックエンジニアリング)

  • MP-iBGP から学習した内部ラベル

このソリューションは、VPC-SI を介して開始されたトラフィック エンジニアリングと QoS をサポートします。

設定例

この例では、VRF は ASR 5500 PE で設定され、プールは VRF に関連付けられています。VPC-SI は、VPN ルートを IBGP ピア(PE ルータ)と交換し、LDP 経由で PE に到達するための MPLS パスを学習します。VPC-SI は、2 つのラベル(PE から学習した内部ラベルとネクストホップ IBGP ネイバーから学習した外部ラベル)を持つネクストホップにパケットを転送します。

図 3. 設定例
mpls ip 
  protocol ldp 
    enable 
  exit 
exit 
   
ip vrf vrf1 
  mpls traffic-class copy 
exit 
ip vrf vrf2 
  mpls traffic-class value 5 
exit 
   
router bgp 300 
  ip vrf vrf1 
    route-target export 300 1 
      route-target import 300 1 
      route-distinguisher 300 1 
  exit 
    ip vrf vrf2 
      route-target export 300 2 
        route-target import 300 2 
        route-distinguisher 300 2 
  exit 
   
  router-id 2.2.2.2 
  neighbor 192.168.107.20 remote-as 300 
  neighbor 192.168.107.20 update-source node1_loopback 
   
  address-family vpnv4 
    neighbor 192.168.107.20 activate 
      neighbor 192.168.107.20 send-community both 
      neighbor 192.168.107.20 next-hop-self 
  exit 
   
  address-family ipv4 vrf vrf1 
    redistribute connected 
  exit 
   
  address-family ipv4 vrf vrf2 
    redistribute connected 
exit 
   
interface interface_to_internet 
  ip address 192.168.109.65/24  
  mpls ip 
exit 
router ospf  
  network 192.168.109.0/24 area 0.0.0.0 
exit 

BGP MPLS VPN の IPv6 サポート

概要

VPC-SI は RFC 4659(BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN)で説明されているとおり、VPNv6 をサポートします。

IPv6 VPN は、PE ルータを通じ、IPv6 インターフェイスまたはサブインターフェイスを介してサービスプロバイダー(SP)のバックボーンに接続されます。このサイトは IPv4 と IPv6 の両方に対応できます。各 VPNv6 には独自のアドレス空間があります。つまり、特定のアドレスが異なる VPN 内の異なるシステムを示すことになります。これは、ルート識別子(RD)を IP アドレスに付加する VPNv6 アドレスファミリによって実現します。

VPNv6 アドレスのバイト数は 24 で、8 バイトの RD から始まり、16 バイトの IPv6 アドレスで終わります。サイトが IPv4 と IPv6 対応の場合、同じ RD を IPv4 と IPv6 の両方のアドレスのアドバタイズメントに使用できます。

システムは、IPv6 ルートに RD を追加し、VPNv6 アドレスファミリを使用してラベル付けされた IPv6 を交換します。VPNv6 ルートのアドレスファミリ識別子(AFI)と後続のアドレスファミリ識別子(SAFI)の フィールドは、2 と 128 にれぞれ設定されます。

IPv6 VPN トラフィックは、IPv4 トンネリングを介して BGP スピーカーに転送されます。BGP スピーカーは、8 オクテットの RD がゼロに設定され、16 オクテットの IPv6 アドレスがアドバタイズルータの IPv4 アドレスを含む IPv4 マッピング IPv6 アドレス(RFC 4291)としてエンコードされている VPN-IPv6 アドレスを含むネクスト ホップ ネットワーク アドレス フィールドをピアにアドバタイズします。これは、VPNv6 ルートを交換するために EBGP ピアリングのみが使用されることを前提としています。

VPN IPv6 のサポートは、次を前提としています。
  • デュアルスタック(IPv4/IPv6)ルーティング
  • VRF の IPv6 プール
  • 直接接続された IPv4 インターフェイスを介した BGP ピアリング

以下の図を参照してください。

図 4. VPNv6 に対する IPv6-RD サポート

設定例

この例では、3 つの VRF を想定しています。VRF 1 には IPv4 ルートのみがあり、VRF f2 には IPv4 と IPv6 の両方のルートがあり、VRF 3 には IPv6 ルートのみがあります。

図 5. VPNv6 の設定例

VRF を設定します。

  ip vrf vrf1 
  exit 
  ip vrf vrf2 
  exit 
  ip vrf vrf3 
  exit 

MPLS bgp forwarding を有効にします。

  mpls bgp forwarding 

プールを設定します。

  ip pool vrf1-pool 51.52.53.0 255.255.255.0 private 0 vrf vrf1 
  exit 
  ip pool vrf2-pool 51.52.53.0 255.255.255.0 private 0 vrf vrf2 
  exit 
  ipv6 pool vrf2-v6pool prefix 2005:0101::/32 private 0 vrf vrf2 
  exit  
  ipv6 pool vrf3-v6pool prefix 2005:0101::/32 private 0 vrf vrf3 
exit 

インターフェイスを設定します。

  interface ce_interface_to_rtr 
    ip address 192.168.110.90 255.255.255.0 
  exit 
  interface ce_v6_interface 
    ip address 2009:0101:0101:0101::1/96 
  exit 
  interface ce_loopback loopback 
    ip address 52.1.2.3 255.255.255.255 
  exit 
  interface vrf1-loop loopback  
    ip vrf forwarding vrf1 
    ip address 1.52.53.54 255.255.255.255 
  exit 
  interface vrf2-loop loopback 
    ip vrf forwarding vrf2  
    ip address 2.52.53.54 255.255.255.255 
  exit 
  interface vrf2-v6loop loopback 
    ip vrf forwarding vrf2 
    ip address 2005:0202:0101::1/128 
  exit 
  interface vrf3-v6loop loopback 
    ip vrf forwarding vrf3 
    ip address 2005:0303:0101::1/128 
  exit 

アドレスファミリおよび再配布ルールとともに BGP を設定します。

  router bgp 800 
    router-id 1.1.1.1 
  neighbor 192.168.110.20 remote-as 1003 
    neighbor 192.168.110.20 activate 
  address-family vpnv4 
    neighbor 192.168.110.20 activate 
    neighbor 192.168.110.20 send-community both 
  exit 
  address-family vpnv6 
    neighbor 192.168.110.20 activate  
    neighbor 192.168.110.20 send-community both 
  exit 
  ip vrf vrf1 
    route-distinguisher 800 1 
    route-target export 800 1 
    route-target import 800 1 
  exit 
  address-family ipv4 vrf vrf1 
    redistribute connected 
    redistribute static 
  exit  
  ip vrf vrf2 
    route-distinguisher 800 2 
    route-target export 800 2 
    route-target import 800 2 
  exit 
  address-family ipv4 vrf vrf2 
    redistribute connected 
    redistribute static 
  exit 
  address-family ipv6 vrf vrf2 
    redistribute connected 
    redistribute static 
  exit  
  ip vrf vrf3 
    route-distinguisher 800 3 
    route-target export 800 3 
    route-target import 800 3 
  exit  
  address-family ipv6 vrf   vrf3 
    redistribute connected 
    redistribute static  
  exit  

APN を設定します。

  apn walmart51.com  
    selection-mode sent-by-ms 
    accounting-mode none  
    aaa group walmart-group 
    authentication pap 1 chap 2 allow-noauth 
    ip context-name Gi_ce 
    ip address pool name vrf1-pool 
  exit 
  apn amazon51.com 
    selection-mode sent-by-ms 
    accounting-mode none 
    aaa group amazon-group 
    authentication pap 1 chap 2 allow-noauth  
    ip context-name Gi_ce 
    ip address pool name vrf2-pool  
    ipv6 address prefix-pool vrf2-v6pool  
  exit  
  apn apple51.com 
    selection-mode sent-by-ms 
    accounting-mode none  
    aaa group apple-group 
    authentication pap 1 chap 2 allow-noauthip context-name Gi_ce  
    ipv6 address prefix-pool vrf3-v6pool 
  exit  
  aaa-group amazon-group 
    radius ip vrf vrf2 
  aaa group default 
  exit  
  gtpp group default 
  exit  
  ip igmp profile default 
  exit 

物理インターフェイスをポートにバインドします。

VPN 関連の CLI コマンド

VPN 関連の機能は、いくつかの CLI コマンドモードでサポートされています。次の表は、VPN 関連の機能の設定とモニタリングに関連するコマンドを示しています。

次に示すコマンドの使用に関する詳細については、『Command Line Interface Reference』を参照してください。

表 1. VPN 関連の設定コマンド
CLI モード コマンド 説明

BGP アドレスファミリ(IPv4/IPv6)構成モード

neighbor ip_address activate

ピアルータとのルーティング情報の交換を有効にします。

BGP アドレスファミリ(IPv4/IPv6)構成モード

neighbor ip_address send community { both | extended | standard }

ピアルータ(ネイバー)にコミュニティ属性を送信します。

BGP アドレスファミリ(IPv4/IPv6)構成モード

redistribute connected

別のプロトコルから BGP へのルートを BGP ネイバーとして再配布します。

BGP アドレスファミリ(VPNv4)構成モード

neighbor ip_address activate

ピアルータとのルーティング情報の交換を有効にします。

BGP アドレスファミリ(VPNv4)構成モード

neighbor ip_address send community { both | extended | standard }

ピアルータに拡張コミュニティ属性を送信します。VPN では、ルート識別子とルートターゲットは BGP 拡張コミュニティでエンコードされます。このコマンドは、拡張コミュニティを持つ BGP ルートをネイバーに送信できるようにします。

BGP アドレスファミリ(VRF)構成モード

neighbor ip_address activate

ピアルータとのルーティング情報の交換を有効にします。

BGP アドレスファミリ(VRF)構成モード

neighbor ip_address send community { both | extended | standard }

ピアルータに拡張コミュニティ属性を送信します。VPN では、ルート識別子とルートターゲットは BGP 拡張コミュニティでエンコードされます。このコマンドは、拡張コミュニティを持つ BGP ルートをネイバーに送信できるようにします。

BGP アドレスファミリ(VRF)構成モード

redistribute connected

別のプロトコルから BGP へのルートを BGP ネイバーとして再配布します。

BGP 構成モード

address-family { ipv4 vrf vrf_name | vpnv4 }

IPv4 VRF のルーティング情報の交換を有効にします。アドレスファミリごとに異なるモードがあります。

BGP 構成モード

address-family { ipv6 vrf vrf_name | vpnv6 }

BGP で VPNv6 アドレスファミリと IPv6 VRF ルーティングを設定します。

BGP 構成モード

ip vrf vrf_name

BGP に VRF を追加し、VRF 構成モードにスイッチして、VRF の BGP 属性を設定できるようにします。

BGP IP VRF 構成モード

route-distinguisher { as_value | ip_address } rd_value

VRF の ルート識別子(RD)を割り当てます。RD 値は、VRF ごとにルータ上の一意の値にする必要があります。

BGP IP VRF 構成モード

route-target { both | import | export } { as_value | ip_address } rt_value

インポートおよびエクスポートのルートターゲット拡張コミュニティのリストを VRF に追加します。

コンテキスト構成モード

ip pool pool_name addr_range vrf vrf_name [ mpls-label input inlabel1 output outlabel1 outlabel2 ]

指定された VRF にプールを設定します。このパラメータは、Next-Hop パラメータとともに指定する必要があります。inlabel1 は、このプールを宛先とする着信トラフィックを識別する MPLS ラベルです。outlabel1outlabel2 は、このプールからサブスクライバに送信されるパケットに追加する MPLS ラベルを指定します。

コンテキスト構成モード

ip vrf vrf_name

VRF を作成し、VRF-ID を割り当てます。VRF がルータに作成されます。

コンテキスト構成モード

ipv6 pool pool_name vrf vrf_name

プールを VRF に関連付けます。

注:デフォルトでは、設定された ipv6 プールはグローバル ルーティング ドメインに関連付けられます。

コンテキスト構成モード

mpls bgp forwarding

MPLS のボーダー ゲートウェイ プロトコル(BGP)転送をグローバルに有効化します。

コンテキスト構成モード

mpls exp value

3 ビット MPLS EXP ヘッダーのゼロ値を使用して、デフォルトの動作をベストエフォートとして設定します。この値は、コンテキスト内のすべての VRF に適用されます。デフォルトの動作では、DSCP から EXP への明示的な設定がない場合に、モバイルサブスクライバのトラフィックの DSCP 値が EXP ヘッダーにコピーされます ( mpls map-dscp-exp dscp n exp mコマンドを使用)。

mpls exp はデフォルトの動作を無効にし、EXP 値を設定されたに設定します。

コンテキスト構成モード

mpls ip

通常ルーティングされるパスに沿って IPv4 パケットの MPLS 転送がグローバルに行われるようにします。

コンテキスト構成モード

radius change-authorize-nas-ip ip_address ip_address { encrypted | key } value port port_num mpls input inlabel output outlabel1 outlabel2

指定された MPLS ラベルを使用するように COA トラフィックを設定します。inlabel は、着信 COA トラフィックを識別します。outlabel1outlabel2 は、COA 応答に追加する MPLS ラベルを指定します。outlabel1 は内部出力ラベル、outlabel2 は外部出力ラベルです。

イーサネット インターフェイス構成モード

mpls ip

このインターフェイスで IP パケットのダイナミック MPLS 転送を有効にします。

Exec モード

clear ip bgp peer

BGP セッションをクリアします。

Exec モード

lsp-ping ip_prefix_FEC

指定された転送等価クラス(FEC)の MPLS ラベルスイッチドパス(LSP)接続を確認します。その後に IPv4 または IPv6 の FEC プレフィックスが続く必要があります。

Exec モード

lsp-traceroute ip_prefix_FEC

パケットが宛先に転送されるときに実際にたどる MPLS LSP ルートを検出します。その後に IPv4 または IPv6 の FEC プレフィックスが続く必要があります。

IP VRF コンテキスト構成モード

mpls map-dscp-to-exp dscp dscp_bit_value exp exp_bit_value IP パケットヘッダーにおける最終の Differentiated Services Code Point(DSCP; DiffServ コードポイント)ビット値を、着信トラフィックの MPLS ヘッダーにおける最終の Experimental(EXP)ビット値にマッピングします。

IP VRF コンテキスト構成モード

mpls map-exp-to-dscp exp exp_bit_value dscp dscp_bit_value

MPLS ヘッダーの着信 EXP ビット値を発信トラフィックの IP パケットヘッダーの内部 DSCP ビット値にマッピングします。

MPLS-IP 構成モード

protocol ldp

MPLS プロトコルファミリの構成モードを作成するか、または既存のプロトコルを設定して、現在のコンテキストで MPLS-LDP 構成モードを開始します。このコマンドは、MPLS プロトコルファミリのプロトコルパラメータを設定します。

MPLS-LDP 構成モード

advertise-labels { explicit-null | implicit-null }

このコンテキストでシステムによってアドバタイズされたすべてのプレフィックスについて、暗黙的ヌルまたは明示的ヌルラベルのアドバタイズメントを設定します。

MPLS-LDP 構成モード

discovery { hello { hello-interval seconds | hold-interval seconds } | transport-address ip_address }

Label Distribution Protocol(LDP; ラベル配布プロトコル)のネイバー探索パラメータの設定

MPLS-LDP 構成モード

enable

ラベル配布プロトコル(LDP)を有効にします。

MPLS-LDP 構成モード

router-id ip_address

LDP ルータ ID を設定します。

MPLS-LDP 構成モード

session timers { hold-interval seconds | keepalive-interval seconds }

LDP セッションパラメータを設定します。

表 2. VPN 関連のモニタリングコマンド
CLI モード コマンド 説明

Exec モードの show コマンド

show ip bgp neighbors

BGP ネイバーに関する情報を表示します。

Exec モードの show コマンド

show ip bgp vpnv4 { all | route-distinguisher | vrf }

すべての VPNv4 ルーティングデータ、VRF またはルート識別子のルーティングデータを表示します。

Exec モードの show コマンド

show ip bgp vpnv6

VPNv6 ルーティングテーブルの内容を表示します。

Exec モードの show コマンド

show ip bgp vpnv6 { all | route-distinguisher | vrf }

すべての VPNv6 ルーティングデータ、VRF またはルート識別子のルーティングデータを表示します。

Exec モードの show コマンド

show ip pool

設定された VRF を含むプールの詳細を表示します。

Exec モードの show コマンド

show mpls cross-connect

MPLS 相互接続情報を表示します。インターフェイスとラベルスイッチドパス(LSP)間で相互接続する MPLS トンネルは、LSP をコンジットとして使用する MPLS トンネルを介して、同じタイプの 2 つの遠隔インターフェイス回線を接続します。

Exec モードの show コマンド

show mpls ftn [ vrf vrf_name

MPLS FEC-to-NHLFE(FTN)テーブルの情報を表示します。

Exec モードの show コマンド

show mpls ftn [ vrf vrf_name ]

指定された VRF の MPLS FTN テーブルの内容を表示します。

Exec モードの show コマンド

show mpls ilm

MPLS の着信ラベルマップ(ILM)テーブルの情報を表示します。

Exec モードの show コマンド

show mpls ldp

MPLS LDP 情報を表示します。

Exec モードの show コマンド

show mpls nexthop-label-forwarding-entry

MPLS のネクストホップラベル転送エントリ(NHLFE)テーブルの情報を表示します。