CCNP-ENARSIのMPLS関連メモ

MPLS-VPN
MPLSはL2ヘッダとL3ヘッダの間に4byteのMPLSラベルヘッダを挿入し、L3ヘッダ(IPヘッダ)を参照せずにMPLSラベルヘッダを参照して高速転送を実現する技術
MPLS-VPNは以下三つの技術を組み合わせて実現するものである
- MPLS
- MP-BGP
- VRF

MPLSの基本概念
MPLS (Multi-Protocol Label Switching) は、パケットフォワーディングの高速化とトラフィックエンジニアリングを可能にするネットワークアーキテクチャです。従来のIP転送と比較して以下の特徴があります。
- レイヤー2.5テクノロジー: OSIモデルのレイヤー2(データリンク層)とレイヤー3(ネットワーク層)の間に位置づけられます
- ラベルベースの転送: IPアドレスベースではなく、短いラベルを使用してパケット転送を行います
- 複数プロトコル対応: IPv4, IPv6, Ethernet, ATMなど複数のプロトコルに対応しています
MPLSの最大の特徴は、パケット転送の判断をラベル(通常20ビット)によって行う点です。これにより、転送処理が単純化され、高速なデータ転送が可能になります。

MPLSの動作原理
MPLSネットワークの基本的な動作は以下のようになります:
- ラベル割り当て: ネットワーク内の各ルーターが宛先プレフィックスに対してラベルを割り当てます
- ラベル配布: Label Distribution Protocol (LDP)やResource Reservation Protocol with Traffic Engineering extensions (RSVP-TE)などのプロトコルによってラベル情報が交換されます
- ラベルの付与: 入口ルーター(Ingress Label Edge Router/LER)がMPLSドメインに入るパケットにラベルを付加します
- ラベルスワッピング: コアルーター(Label Switch Router/LSR)が受信したラベルを新しいラベルに置き換えて転送します
- ラベルの除去: 出口ルーター(Egress LER)がラベルを除去し、IPルーティングに戻します

ラベルスタック
MPLSはラベルスタックを使用して、複数のサービス(VPN、トラフィックエンジニアリングなど)を同時にサポートできます。ラベルスタックは以下の構造を持ちます:
- 最上位ラベル: 転送に使用されるラベル(トランスポートラベル)
- 下位ラベル: サービス識別などに使用されるラベル(例えばVPN識別ラベル)
ラベルスタックはLast-In-First-Out (LIFO)方式で処理され、各ラベルエントリは32ビット(ラベル20ビット、EXP 3ビット、S 1ビット、TTL 8ビット)で構成されます。

MPLSの主要コンポーネント
Label Edge Router (LER)
MPLSドメインの境界に位置するルーターで、以下の機能を持ちます:
- Ingress LERとして、IPパケットをMPLSパケットに変換(ラベルプッシュ操作)
- Egress LERとして、MPLSパケットをIPパケットに戻す(ラベルポップ操作)
- カスタマーネットワークとMPLSバックボーンの接続点
Label Switch Router (LSR)
MPLSドメイン内部のコアルーターで、以下の機能を持ちます:
- 受信したMPLSパケットのラベルを交換(スワップ操作)して転送
- Label Distribution Protocol (LDP)を用いたラベル情報の交換
- 転送テーブル(Label Forwarding Information Base/LFIB)の管理
Label Switched Path (LSP)
MPLSネットワーク内でパケットが通るパスで、以下の特徴があります:
- 入口LERから出口LERまでの一連のLSRによって形成される経路
- 単方向性(双方向通信には2つのLSPが必要)
- トラフィックエンジニアリングによる最適化が可能

コントロールプレーンとデータプレーン
MPLSアーキテクチャは明確に分離された2つのプレーンで構成されます:
- コントロールプレーン: ラベルの配布、経路情報の交換などを担当(LDP, MP-BGP, RSVP-TEなど)
- データプレーン: 実際のパケット転送を担当(LFIBに基づく)

MPLS-VPNの概要
MPLS-VPN(正式にはMPLS Layer 3 VPN)は、MPLSネットワークを使用して複数の分離されたVPNサービスを提供する技術です。主な特徴は以下の通りです:
- サービスプロバイダーの単一のMPLSバックボーン上で複数顧客のVPNをホスト
- 各VPNのトラフィックと経路情報が他のVPNから分離
- 複数サイト間のシームレスな接続
- オーバーラップするIPアドレス空間のサポート(異なるVPN間で同じIPアドレスを使用可能)
MPLS-VPNは、従来のオーバーレイVPNモデルとピアツーピアVPNモデルの利点を組み合わせたハイブリッドVPNモデルと考えることができます。

MPLS-VPNのアーキテクチャ
MPLS-VPNには以下のコンポーネントが含まれます:
Customer Edge (CE) ルーター
顧客のサイトに設置され、以下の特徴があります:
- サービスプロバイダーのネットワークに接続するルーター
- MPLS機能は不要(通常のIPルーターとして動作)
- PEルーターとの間でルーティングプロトコル(BGP, OSPF, RIPなど)やスタティックルートを使用
Provider Edge (PE) ルーター
サービスプロバイダーのネットワークの境界に位置し、以下の機能を持ちます:
- 複数のVRF(VPN Routing and Forwarding)インスタンスをサポート
- MP-BGP(Multiprotocol BGP)を使用してVPN経路情報を他のPEルーターと交換
- VPNラベルとトランスポートラベルの管理
- CEルーターとのルーティングプロトコル境界
Provider (P) ルーター
サービスプロバイダーのコアネットワーク内のルーターで、以下の特徴があります:
- VPN情報を保持せず、トランスポートラベルのみを使用して転送
- LSRとして機能し、スケーラビリティを向上させる
- PEルーター間のトラフィック転送を担当
VRF (Virtual Routing and Forwarding)
PEルーター上の論理的に分離されたルーティング/フォワーディングテーブルで、以下の要素で構成されます:
- VPNごとに独立したルーティングテーブル
- VPNごとに独立したフォワーディングテーブル
- 特定のカスタマーインターフェースに関連付けられる
Route Distinguisher (RD)
VPNルート識別のための64ビットの値で、以下の役割があります:
- 異なるVPN間で重複するIPプレフィックスを一意に識別
- 形式は通常「ASN:nn」または「IP-address:nn」
- IPv4アドレスを96ビットのVPNv4アドレスに拡張
Route Target (RT)
VPNルートのインポート/エクスポート制御のための拡張コミュニティ属性:
- エクスポートRT: あるVRFからのルートに付加されるタグ
- インポートRT: VRFがどのタグ付きルートをインポートするかを指定
- フルメッシュ、ハブアンドスポーク等、様々なVPNトポロジの構築を可能にする

MPLS-VPNの設定例
PEルーターの基本設定(Cisco IOS)
! VRFの定義
ip vrf CUSTOMER_A
rd 65000:100
route-target export 65000:100
route-target import 65000:100
! CEルーターへのインターフェース設定
interface GigabitEthernet0/0
ip vrf forwarding CUSTOMER_A
ip address 192.168.1.1 255.255.255.0
! MPLSの有効化(コアに接続するインターフェース)
interface GigabitEthernet0/1
ip address 10.0.0.1 255.255.255.0
mpls ip
! MP-BGPの設定
router bgp 65000
no bgp default ipv4-unicast
! 対向PEルーターとのiBGPセッション
neighbor 10.0.0.2 remote-as 65000
neighbor 10.0.0.2 update-source Loopback0
! VPNv4アドレスファミリの設定
address-family vpnv4
neighbor 10.0.0.2 activate
neighbor 10.0.0.2 send-community extended
exit-address-family
! CUSTOMER_A用のアドレスファミリ
address-family ipv4 vrf CUSTOMER_A
redistribute connected
redistribute static
! CEルーターとのeBGPセッション(必要に応じて)
neighbor 192.168.1.2 remote-as 65100
neighbor 192.168.1.2 activate
exit-address-family
CEルーターの基本設定(Cisco IOS)
! PEルーターへの接続
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
! (オプション)BGPを使用する場合
router bgp 65100
neighbor 192.168.1.1 remote-as 65000
! ルートの再配布
redistribute connected
redistribute static

MPLS-VPNの動作
- CEからPEへのルート広告: CEルーターは接続されたネットワークの経路情報をPEルーターに伝えます。
- PE内のVRFへの格納: PEルーターは受信した経路情報を適切なVRFテーブルに格納します。
- MP-BGPによるルート交換: PEルーターはVRF内の経路情報をMP-BGPを使用して他のPEルーターと交換します。
- RD/RTによるルート制御: RDによる一意化とRTによるフィルタリングにより、適切なVPN間でのみ経路情報が共有されます。
- VPNラベルの割り当て: 各PEルーターはVPN経路に対してローカルにVPNラベルを割り当てます。
- パケット転送: データパケットは2つのラベル(外側のトランスポートラベルと内側のVPNラベル)を使用して転送されます。

トラブルシューティング
一般的な問題と確認コマンド
1. MPLS基本機能の確認
show mpls interfaces
show mpls ldp neighbor
show mpls ldp bindings
show mpls forwarding-table
2. VRF設定の確認
show ip vrf
show ip vrf interfaces
show ip vrf detail CUSTOMER_A
3. VRFルーティングテーブルの確認
show ip route vrf CUSTOMER_A
show ip bgp vpnv4 vrf CUSTOMER_A
4. ラベル情報の確認
show mpls forwarding-table vrf CUSTOMER_A
traceroute vrf CUSTOMER_A destination
一般的な問題と解決策
-
VRFへのインターフェース割り当て忘れ
- 症状: CEルーターからのルートがVRFに表示されない
- 解決策:
ip vrf forwarding VRF_NAME
コマンドをインターフェースに適用
-
RTの不一致
- 症状: リモートサイトへの接続ができない
- 解決策: エクスポートRTとインポートRTが正しく設定されているか確認
-
LDPの問題
- 症状: MPLSラベルが割り当てられていない
- 解決策: インターフェースでの
mpls ip
有効化とLDPネイバー確認
-
MP-BGPセッションの問題
- 症状: VPNv4ルートの交換ができない
- 解決策: MP-BGPセッション状態の確認と
send-community extended
の設定確認

まとめ
MPLSとMPLS-VPNは、企業ネットワークからサービスプロバイダーまで幅広く採用されている技術です。主なメリットとして以下が挙げられます:
- 高速なパケット転送: ラベルベースの転送により高速化
- トラフィックエンジニアリング: ネットワーク帯域の最適利用
- サービス分離: 複数の独立したVPNサービスを単一インフラ上でホスト
- IP空間の独立性: 顧客間でIPアドレス空間の重複が可能
- スケーラビリティ: P(コア)ルーターはVPN情報を持たないためスケーラブル