LDP(Label Distribution Protocol)をざっくりと - 超概要と基本設定-
ldp はアプリケーション層のプロトコル。
MPLS網内のLSR間でラベル配布をする際に使う。
TCP/UDP 646port を使用する。
MPLSの前提としてIP到達性が必要なため、OSPFなどのIGPを用いてIPルーティングを確立しておく必要あり。
ldp router-id として、ふつうloopbackを使用するため当然MPLS網内のIGPでloopback addressも広報する必要がある。
a) ldp discover によりネイバー検出
neighbor discover message に (224.0.0.2) を使用する
b) TCPコネクションの確立
source:local ldp router-id , dest:remote ldp router-id
※ldp router間でIP到達性が必要
c) ldpセッションの確立
d) ラベル情報の交換
ラベルは 0 ~ 1048575 まで使用される。 0 ~ 15 は予約済み。16から振られるローカルな値。
★router-id についての補足
明示的に指定しない場合は当該ルータ上の一番大きい物理IFのアドレスがrouter-idとなる。
ただし、loopback IFを設定している場合は loopback IFが優先される。
★configuration
config)# ip cef config)# mpls ldp router-id loopback 0 !! いちお明示的に指定しとく config-if)# mpls ip !! MPLS網に参加するIFで設定する !! loopbackIFでは不要
設定するだけなら超簡単!ヾ( *`ω´)ノヒャッホーイ♪
★おまけ
ラベルプロトコルはデフォルトで ldp が使われる。
変更する場合、IF個別またはグローバル設定が可能。
config)# mpls label protocol [ ldp | tdp ] config-if)# mpls label protocol [ ldp | tdp | both ]
ネイバーup時のコンソールログ
================================================================================ *Jan 10 15:34:07.279: %LDP-5-NBRCHG: LDP Neighbor 10.10.10.1:0 (2) is UP !! ネイバーのroute-idが表示される ================================================================================
ネイバーup時のデバッグ
# debug mpls events ================================================================================ R4(config-if)#int e1/1 R4(config-if)#mpls ip R4(config-if)# *Jan 10 15:33:58.751: mpls: Add mpls app; Ethernet1/1 *Jan 10 15:33:58.751: mpls: Add mpls app; i/f status change; Ethernet1/1 *Jan 10 15:33:58.751: ldp: enabling ldp on Ethernet1/1 *Jan 10 15:33:58.755: ldp: ldp start; tbl 0 *Jan 10 15:33:58.755: ldp: i/f status change: Ethernet1/1; cur/des flags 0x2/0x2mcast 1 *Jan 10 15:33:58.755: ldp: enable lsd i/f Ethernet1/1 *Jan 10 15:33:58.775: tagcon: enable dynamic mpls; tbl 0 ================================================================================
ldpネイバーの確認
# show mpls ldp neighbor allつけても出力かわらんくね?(・∀・)? なんなんなん! ================================================================================ R5#sh mpls ldp nei all Peer LDP Ident: 10.10.10.3:0; Local LDP Ident 10.10.10.6:0 TCP connection: 10.10.10.3.646 - 10.10.10.6.55877 State: Oper; Msgs sent/rcvd: 26/26; Downstream Up time: 00:11:39 LDP discovery sources: Ethernet1/1, Src IP addr: 10.1.1.21 Addresses bound to peer LDP Ident: 10.1.1.21 10.1.1.9 10.1.1.6 10.10.10.3 R5# R5#sh mpls ldp nei Peer LDP Ident: 10.10.10.3:0; Local LDP Ident 10.10.10.6:0 TCP connection: 10.10.10.3.646 - 10.10.10.6.55877 State: Oper; Msgs sent/rcvd: 26/26; Downstream Up time: 00:11:41 LDP discovery sources: Ethernet1/1, Src IP addr: 10.1.1.21 Addresses bound to peer LDP Ident: 10.1.1.21 10.1.1.9 10.1.1.6 10.10.10.3 R5# ================================================================================
LIBテーブルの確認
# show mpls ldp binding ================================================================================ R4#sh mpls ldp bind lib entry: 10.1.1.0/30, rev 2 local binding: label: 16 remote binding: lsr: 10.10.10.2:0, label: imp-null remote binding: lsr: 10.10.10.1:0, label: imp-null remote binding: lsr: 10.10.10.6:0, label: 16 ================================================================================
LFIBテーブルの確認
# show mpls forwarding-table ================================================================================ R1#sh mpls for Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or VC or Tunnel Id Switched interface 16 Pop Label 10.1.1.0/30 0 Et1/0 10.1.1.13 17 Pop Label 10.1.1.4/30 0 Et1/0 10.1.1.13 18 16 10.1.1.8/30 0 Et1/0 10.1.1.13 19 17 10.1.1.20/30 0 Et1/0 10.1.1.13 20 Pop Label 10.10.10.1/32 0 Et1/0 10.1.1.13 21 18 10.10.10.2/32 0 Et1/0 10.1.1.13 22 19 10.10.10.3/32 0 Et1/0 10.1.1.13 23 21 10.10.10.6/32 0 Et1/0 10.1.1.13 ================================================================================