AliceArisugawa

Outputしたほうが覚えはいいのか自己検証。 [NW技術|お料理|カメラ] に関するオレオレめも(・∀・)

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
================================================================================

MPLS関連コマンド -超基本確認コマンド4つ-

MPLSで使われる4つのテーブルの状態確認コマンド

★コントロールプレーン

# show ip route
	!! ルーティングテーブル ※ルーティングプロトコルの設定により作成される。
	

# show mpls ldp binding
	!! LIBテーブル ※LDPの設定により作成される。

★データプレーン

# show ip cef
	!! FIBテーブル ※ルーティングテーブルをベースに作成される(IPパケットの転送で使用)

# show mpls forwarding-table
	!! LFIBテーブル ※LIBテーブルをベースに作成される(ラベル付きパケットの転送で使用)

OSPF関連コマンド -超基本確認コマンド4つ-

★ネイバーup時のコンソールログ

================================================================================
%OSPF-5-ADJCHG: Process 2, Nbr 1.1.1.1 on Ethernet0/1 from LOADING to FULL, Loading Done
	!! ネイバーのアドレス on 自分のIF
================================================================================


★ネイバーの確認
# show ip ospf neighbor

================================================================================
R1#sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/BDR        00:00:38    192.168.0.2     Ethernet0/0
R1#

R2#sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         100   FULL/DR         00:00:36    192.168.0.1     Ethernet0/1
R2#
================================================================================


★ネイバーup時のデバッグ
# debug ip ospf events

================================================================================
R2#deb ip ospf ev
OSPF events debugging is on
R2#
*Mar  1 00:03:56.035: OSPF: Rcv hello from 1.1.1.1 area 0 from Ethernet0/1 192.168.0.1
*Mar  1 00:03:56.035: OSPF: End of hello processing
*Mar  1 00:03:56.039: OSPF: Rcv DBD from 1.1.1.1 on Ethernet0/1 seq 0x2077 opt 0x52 flag 0x7 len 32  mtu 1500 state 2WAY
*Mar  1 00:03:56.039: OSPF: Nbr state is 2WAY
*Mar  1 00:03:56.759: OSPF: end of Wait on interface Ethernet0/1
*Mar  1 00:03:56.759: OSPF: DR/BDR election on Ethernet0/1
*Mar  1 00:03:56.759: OSPF: Elect BDR 2.2.2.2
*Mar  1 00:03:56.759: OSPF: Elect DR 2.2.2.2
*Mar  1 00:03:56.759: OSPF: Elect BDR 1.1.1.1
*Mar  1 00:03:56.759: OSPF: Elect DR 2.2.2.2
*Mar  1 00:03:56.759:        DR: 2.2.2.2 (Id)   BDR: 1.1.1.1 (Id)
*Mar  1 00:03:56.763: OSPF: Send DBD to 1.1.1.1 on Ethernet0/1 seq 0x261D opt 0x52 flag 0x7 len 32
*Mar  1 00:03:56.763: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/1 from 192.168.0.2
*Mar  1 00:03:56.795: OSPF: Rcv DBD from 1.1.1.1 on Ethernet0/1 seq 0x261D opt 0x52 flag 0x2 len 52  mtu 1500 state EXSTART
*Mar  1 00:03:56.795: OSPF: NBR Negotiation Done. We are the MASTER
*Mar  1 00:03:56.795: OSPF: Send DBD to 1.1.1.1 on Ethernet0/1 seq 0x261E opt 0x52 flag 0x3 len 52
*Mar  1 00:03:56.799: OSPF: Database request to 1.1.1.1
*Mar  1 00:03:56.799: OSPF: sent LS REQ packet to 192.168.0.1, length 12
*Mar  1 00:03:56.835: OSPF: Rcv DBD from 1.1.1.1 on Ethernet0/1 seq 0x261E opt 0x52 flag 0x0 len 32  mtu 1500 state EXCHANGE
*Mar  1 00:03:56.835: OSPF: Send DBD to 1.1.1.1 on Ethernet0/1 seq 0x261F opt 0x52 flag 0x1 len 32
*Mar  1 00:03:56.859: OSPF: Rcv DBD from 1.1.1.1 on Ethernet0/1 seq 0x261F opt 0x52 flag 0x0 len 32  mtu 1500 state EXCHANGE
*Mar  1 00:03:56.859: OSPF: Exchange Done with 1.1.1.1 on Ethernet0/1
*Mar  1 00:03:56.859: OSPF: Synchronized with 1.1.1.1 on Ethernet0/1, state FULL
*Mar  1 00:03:56.863: %OSPF-5-ADJCHG: Process 2, Nbr 1.1.1.1 on Ethernet0/1 from LOADING to FULL, Loading Done
R2#
R2#
*Mar  1 00:04:06.019: OSPF: Rcv hello from 1.1.1.1 area 0 from Ethernet0/1 192.168.0.1
*Mar  1 00:04:06.019: OSPF: Neighbor change Event on interface Ethernet0/1
*Mar  1 00:04:06.019: OSPF: DR/BDR election on Ethernet0/1
*Mar  1 00:04:06.019: OSPF: Elect BDR 1.1.1.1
*Mar  1 00:04:06.023: OSPF: Elect DR 2.2.2.2
*Mar  1 00:04:06.023:        DR: 2.2.2.2 (Id)   BDR: 1.1.1.1 (Id)
*Mar  1 00:04:06.023: OSPF: End of hello processing
*Mar  1 00:04:06.763: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/1 from 192.168.0.2
R2#
*Mar  1 00:04:16.027: OSPF: Rcv hello from 1.1.1.1 area 0 from Ethernet0/1 192.168.0.1
*Mar  1 00:04:16.027: OSPF: End of hello processing
*Mar  1 00:04:16.763: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/1 from 192.168.0.2
R2#
================================================================================


★OSPF IFの状態確認
# show ip ospf interface
!! OSPFが動いているIFを表示する
!! AddressRange,ProcessID,RouterID,Costなどを見る
!! Costは計算式あるっぽいけど今は Serial=1,Eth=10,Giga=100,Ten=1000 と覚えとく
!! Passive Interfaceは No Hellos とでる

================================================================================
R1#sh ip ospf int
Ethernet0/3 is up, line protocol is up
  Internet Address 172.16.1.254/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State WAITING, Priority 1
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    No Hellos (Passive interface)
    Wait time before Designated router selection 00:00:26
  Supports Link-local Signaling (LLS)
  Index 3/3, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 0, Adjacent neighbor count is 0
  Suppress hello for 0 neighbor(s)
Loopback0 is up, line protocol is up
  Internet Address 1.1.1.1/32, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host
Ethernet0/0 is up, line protocol is up
  Internet Address 192.168.0.1/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 2.2.2.2, Interface address 192.168.0.2
  Backup Designated router (ID) 1.1.1.1, Interface address 192.168.0.1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:07
  Supports Link-local Signaling (LLS)
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 2.2.2.2  (Designated Router)
  Suppress hello for 0 neighbor(s)
R1#
================================================================================