LDPとは
LDPとは Label Distribution Protocol のことで、MPLS ネットワークで使われる、ラベル交換プロトコルのことです。
MPLS ネットワークでは動的ルーティングによるルート情報交換に加えて、ラベル交換プロトコルによる事前のラベル交換が必要になります。
ラベル交換プロトコルの代表的なものとしてLDPがあります。LDPはRFC3036に定義されています。
LDPでは、メッセージは大きく4つに分類されます。
- Discovery messages (ネットワーク上のLSRが、自分の存在をアナウンス)
- Session messages (LDPピア間のセッションの確立、維持、終了)
- Advertisement messages (FEC毎のラベルマッピング情報の生成、交換、削除)
- Notification messages (アドバイス情報やエラー情報の提供)
LDPのセッション確立、情報交換の様子を以下に示します。
Hello Message
LDPでは定期的(デフォルト5秒)でHelloメッセージを送信します。送信は基本的にはマルチキャスト(224.0.0.2)で、送信先ポートはUDPの646番を利用します。ただし、設定により直結しないルータにもユニキャストでHelloを送ることができます。
Hello Messageには送信元ルータの LDP ID が格納されています。
LDP IDとは、4Byteの"RID"と2Byteの"Label Space"から成る、 LDP利用の識別子です。ここでは[RID]:[Label Space]と表記します。
RIDとは、LSRのユニークな識別子のことで、手動で設定した場合はそれが優先されますが、手動設定がない場合、 Loopback IF のIPアドレスの一番大きいもの、 Loopback IFがない場合は有効な(リンクアップしている) 物理IFのIPアドレスの一番大きいものが利用されます。
ただし、物理IFは状況によって有効無効が変わるので、 Loopback論理IFを選択することが望ましいです。
Label Spaceは、"Per interface label space"と"Per platform label space"の2種類があります。
Per interface label spaceは、インタフェース毎に振る舞いを変える必要のある環境で利用されます。具体的にはLC-ATMの環境で利用されます。
Per platform label spaceは、上記以外の環境で利用されます。具体的にはEthernet環境等で利用されます。フレームモードMPLSにおいては、 必ずPer platform label spaceが使われます。Per platform label spaceでは常に Label Space = Ox0000 となります。
LC-ATMは現在ほとんど使われていませんので、基本的に「Ox0000」と考えてよいでしょう。
Initialization Message
Hello Messageによりお互いのLDP IDを認識し合うと、LDP IDの大きいほうが小さいほうに向けてTCPコネクションを張り、ラベル情報交換の準備をします。その際、宛先IPアドレス、送信元IPアドレスはRIDに利用されているIFのIPアドレスになりますので、 そのIPアドレス間でのIP到達性が必要になります。Loopback IFがLDP IDに使われやすいので、Loopback IFのIP同士での通信になります。
Discoveryフェーズが完了して、ラベル情報が交換できない場合の原因は大抵、このLDP IDのルート情報が無いケースです。スタティックルートなり動的ルーティングなりでLDP IDのIPアドレス(多くの場合はLoopback IFのIPアドレス)への経路情報を確保しましょう。
Address Message
ラベル情報の交換をする前に、IFのIPアドレス情報を交換する必要があります。 このIFのIPアドレス情報は、MPLSを有効化にしていないIF上のIPアドレスも含めて全てです。
この情報は、障害等でルーティングテーブルのNextHopが変わったとき、その新しいNextHopから、LDP IDを検索するために使われます。検索されたLDP IDを元に、LIB(Label Information Base)からラベルを取得します。
Label Mapping Message
ラベル情報を交換します。これにより、「FEC(宛先ネットワークアドレス)」と「LDP ID」、「ラベル」の3つが1レコードとなり、 LIBのエントリとして入ります。
Keepalive Message
Helloメッセージとは別に、Keepalive Messageが定期的(デフォルト60秒)に交換されます。
LDPの経路冗長化
LDPでは、2つ以上のリンクでHello Messageをやり取りすることを許容しています。つまり、LSR間で冗長化のために2つ以上の物理接続が可能です。
Helloメッセージでは直結のリンクが確立されているかを検知しますが、リンクが切れたからといってTCPセッションが切れるとは限りません。 上記のようにリンクが冗長化されている場合は経路が切り替わればそのままLDPを利用することが可能です。
コメント