CCNP-ENARSI_MPLS
MPLS-VPN
MPLS-VPNは、ISPが提供するL3VPNサービスの一つで、「VRF」「MPLS」「MP-BGP」といった技術を組み合わせて実現
プロパイダ同士などに利用される大規模なWANのようなネットワーク
MPLS(Multiprotocol Label Switching)
IPアドレスではなく「ラベル」と呼ばれる情報を使用してパケットを転送する技術
ラベルはレイヤ2ヘッダとレイヤ3ヘッダの間に挿入される
MPLSヘッダの構成
- ラベル(20bit):パケットを転送するための情報
- EXP(3bit):IPプレシデンス値
- S(1bit):ラベルの期限
- TTL(8bit):生存時間
MPLSに関する主な用語
MPLSドメイン(MPLS網)
MPLSが稼働しているネットワーク
CE(Customer Edge)
顧客側のルータ
MPLSには関与しない。PEからの情報を受け取るだけ
PE(Provider Edge)
プロパイダ側のルータ
P(Provider)
MPLS網内部のルータ
LSR(Labed Edge Router)とも呼ばれる
PHP(Penultimate Hop Popping)
LERの一つ手前でラベルを外す機能
PHPなしの動作
通常動作の場合、ラベル交換の際に16以上のラベル値を伝えておきます。
LSRは伝えられたラベル値に付け替えてパケットを転送します。
Ping-t_最強WEB問題集 CCNP ENARSI(300-410)より引用
PHPありの動作
Ping-t_最強WEB問題集 CCNP ENARSI(300-410)より引用
PHPを行っている場合、ラベル交換の際にLERはLSRにラベル値3のImplicit Null(特別な意味を持つラベルとして予約されてるうちの1つ)を伝えておきます。
LSRはImplicit Null(imp-null)を伝えてきた相手に転送する場合はラベルを外して転送します。
ラベル値
ラベルで使用される値は0~1048575(20bit)
0~15は特別な意味を持つラベルとして予約されているため、転送で使われるラベルは16~1048575
主な予約ラベル
Explicit Null Label(明示的なNullラベル)
- ラベル値:0
- QoSで使用するEXPビットをLERまで保持するために使用
Implicit Null Label(暗黙のNullラベル)
- ラベル値:3
- LERの一つ手前でラベルを外すために使用
MPLSの動作
- FECごとにラベルを割り当てる(ラインバイディング)
- ラベルの配布(LDPやRSVP-TEなどを使用)
- ラベル情報に従ったパケット転送
FEC(Forwarding Equivalence Class)
パケットのグループ
宛先ネットワークやQoSによってグループ分けされている
LSP(Label Switched Path)
MPLS網におけるラベル付きパケットが通過する経路
なお、片方向のみ
LDPラベルバインディング
LECにどのラベルを付けるか関連付けを表したもの
- 各ルータにローカルで関連付け後、自身のラベルバインディングをネイバーに通知する
- MPLSにおいてラベルの付け替えに利用する
LDP(Label Distribution Protocol)
ラベルを配布するためのプロトコル
ルーティングプロトコルによる最短経路を使う
Distributionとは「流通」の意味
LDPで使用するメッセージ
Discovery
- LDPネイバーを検出するためのメッセージ
- UDP646
- DiscoveryにてLDP_Discovery_Hello_Messageとしてネイバー検出などに利用される
Session
- LDPセッションを確立・維持・終了するためのメッセージ
- TCP646
Advertisement
- Advertisement:広告という意味
- ラベル情報を交換するためのメッセージ
- TCP646
Notification
- Notification:通知という意味
- エラーなどを通知するためのメッセージ
- TCP646
LDP_Discovery_Hello_Message
LDPにおいてLDPネイバー検出に利用されたりする
下記の2種類存在する
LDP Hello Message
ネイバーと直接接続しているLSR(Pルータ)同士でやり取りするメッセージ
LDP Target Hello Message
ネイバーと直接接続していないLSR同士でやり取りするメッセージ
LDPセッションの確立
直接接続している場合
- LDP Hello Message のマルチキャストにてLDPネイバーの検出
- 通称:Basic Discovery
- ルータはアクティブ・パッシブに役割が分けられる
- IPアドレスが高いルータがアクティブに選出され、TCP接続とパラメータのネゴシエーションを担当する
直接接続していない場合
- LDP Target Hello MessageのユニキャストにてLDPネイバーの検出
- 通称:Extend Discovery(拡張ディカバリ)
LDPターゲットセッション
直接接続していないLSR間のセッションをLDPターゲットセッション
MPLS_LDPセッションの保護
タイトルは保護だけど、ニュアンスとしては復旧が近い
LDP Target Hello Messageでバックアップ用のLDPセッションを作成
Hello Messageのプライマリセッションが使用不可でもバックアップですぐ利用できるようになる
基本的にHello MessageでLDPセッションを確立
バックアップ用としてTarget Hello Messageを利用
LDPルータIDの選出方法
- router-idコマンドで設定
- 最大のループバックIPアドレス
- 最大のIPアドレス
OSPFのルータID選出と同じ選出方法
LDPにおけるMD5認証
MD5認証を設定すれば、不正なルータとの接続を拒否できる
LDPにおけるラベルの配布モード
LDPではDU(Downstream Unsolicited)でラベル配布される
→ DUとは一方的にラベル配布するモード
- Downstream:下流という意味
- Unsolicited:未承諾という意味
反対に、DoD(Downstream-on-Demand)モードも存在する
ラベル情報の要求があった場合のみラベルを配布す
- on-Demand:要求があった場合
MPLSで使用するテーブル
RIB(Routing Information Base)
ルーティングプロトコルをもとに生成されるコントロールプレーンのテーブル
FIB(Forwarding Information Base)
RIBをもとに生成されるデータプレーンのテーブル
IPパケットを転送る際に使用される
LIB(Label Information Base)
LDPをもとに生成されるされるコントロールプレーンのテーブル
LFIB(Label Forwarding Information Base)
LIBをもとにして作成されるコントロールプレーンのテーブル
Ping-t_最強WEB問題集 CCNP ENARSI(300-410)より引用
MP-BGP(Multiprotocol BGP)
MP-BGPは、BGPを拡張してIPv4以外に対応できるようにしたプロトコル
VPNv4アドレス、VPN識別ラベル、RT(Route Target)などを伝えられるという特徴を持つため、MPLS-VPNのPE-PE間で使用される