LDPのラベル配布モードとラベルスペース
RFC 5036はLDPの動作について3組の選択肢を定義しています。ラベルをいつ配るか、受け取ったラベルをどこまで持っておくか、上流へ配る順序をどうするかの3つです。このうち実装で選べるのは1組だけで、残りは固定されています。本記事では3組の違いとラベルスペースの考え方を解説し、IOS XR(XRd)のラボで確かめます。LDPの基本はLDPとはで解説しています。
3組の選択肢
| 組 | RFC 5036 | 選択肢 | 何が変わるか |
|---|---|---|---|
| ラベル広告 | 2.6.3節 | Downstream Unsolicited / Downstream on Demand | 要求を待ってから配るかどうか |
| ラベル保持 | 2.6.2節 | liberal / conservative | 次ホップ以外から受けたラベルを捨てるかどうか |
| ラベル配布制御 | 2.6.1節 | independent / ordered | 下流からラベルを受け取る前に上流へ配ってよいか |
3組とも下流のLSRがラベルを決めて上流へ渡すという前提は共通です。MPLSではパケットを受け取る側がラベルを決めるため、宛先に近いLSRが「私に送るときはこのラベルを付けてください」と伝える形になります。
ラベル広告:DUとDoD
Downstream Unsolicitedは、セッションが上がったら持っているプレフィックスの分だけLabel Mappingを送ります。相手が使うかどうかは考えません。Downstream on Demandは、上流からLabel Requestを受け取ってから該当するFECのLabel Mappingを返します。
DoDはATMのようにラベル資源が限られる環境のために用意されました。イーサネットが前提の現代のルータではラベルが枯渇しないため、既定はDUです。
IOS XRではmpls ldp配下のsession downstream-on-demand with <ACL>で、DoDにする相手をACLで指定します。両端のルータに設定しないとDoDになりません。片側だけではDUのままです。
ラベル保持:liberalとconservative
LDPはセッションを張った相手全員からLabel Mappingを受け取ります。そのうち実際に使うのは、IGPが選んだ次ホップから受け取った分だけです。
liberalは使わない分も保持します。ラベルを覚えておく分メモリを使いますが、経路が変わって次ホップが入れ替わったとき、すでに持っているラベルをそのまま使えます。conservativeは次ホップの分だけ保持し、経路が変われば改めてラベルを要求します。資源を節約できる代わりに収束が遅くなります。
ラベル配布制御:independentとordered
independentは、下流からラベルを受け取る前でも上流へ自分のラベルを配ってよい方式です。orderedは、下流からラベルを受け取るまで上流へ配りません。出口LSRだけは配る相手が自分なので例外です。
orderedはLSPが端から端までつながってからラベルが配られるため、途中で切れたLSPへパケットが流れ込むことを避けられます。independentはその保証がない代わりに収束が速くなります。
実装ではどれが選べるか
選べるのはラベル広告だけです。残る2組は実装ごとに固定されています。
| 実装 | ラベル広告 | ラベル保持 | ラベル配布制御 |
|---|---|---|---|
| IOS XR | DU / DoDを選択可 | liberal固定 | independent固定 |
| IOS XE | DU / DoDを選択可 | liberal固定 | independent固定 |
| Junos | DU / DoDを選択可 | liberal固定 | ordered固定 |
ラベル保持は3社ともliberalです。ラベル配布制御はCiscoとJuniperで逆になっています。Juniperのドキュメント(Supported LDP Standards)は「Ordered mode is supported, but not Independent mode.」「Liberal mode is supported, but not Conservative mode.」と明記しています。
IOS XEにはmpls ldp atm control-modeがありorderedとindependentを選べますが、これはLC-ATMインタフェース専用です。イーサネットでは使えません。RFCが2択で定義したのはATMを含む幅広い実装を想定していたためで、ルータの実装はliberalとindependent、またはliberalとorderedに収束しています。
混在環境で配布制御が揃わなくても、LDPのメッセージ交換そのものは変わりません。LSPが完成するまでの順序が違うだけです。
本記事のラボで確かめるのはラベル広告とラベル保持だけです。ラベル配布制御は設定できないため、実機では観測していません。
ラベルスペース
ラベルスペースは、LSRがラベルの値を管理する単位です(RFC 5036の2.2.1節)。
| 種類 | 意味 | 使う場面 |
|---|---|---|
| per-platform | 装置全体で1つのラベル空間を持つ | イーサネットなど、ラベルの値に制約がない |
| per-interface | インタフェースごとに別のラベル空間を持つ | ATMのVPI/VCIのように、リンクがラベル資源を握る |
どちらかはLDP識別子の後半2オクテットに現れます(2.2.2節)。per-platformなら常に0です。3.3.3.3:0と表示されていればper-platformです。
per-platformだと、どのリンクから届いたパケットでも同じラベル値で同じ転送先に解決されます。だからこそリンクを複数持っていてもLDPセッションは1本で済みます。
実機での検証
検証環境
CE1 — PE1 — P1 — P2 — PE2 — CE2 を直列につなぎ、P1とPE2の間にP3を通る迂回路を足しています。AS 65001のPE1 / P1 / P2 / P3 / PE2がMPLSネットワークで、OSPF(area 0、全リンクnetwork point-to-point)で経路を、LDPでラベルを配っています。CE1とCE2はPEとeBGPで、PE1とPE2はLoopback0間のiBGP(next-hop-self)でつながります。全台XRdです。
迂回路(P1 - P3 - PE2)はOSPFのコストを50にしてあるため、初期状態の経路はP2経由です。
動的ラベルの範囲を装置ごとに分けています。 既定のままだとP2とP3が同じ値を割り当てることがあり、経路が変わっても「どの装置のラベルを使っているか」が読み取れなくなるためです。
| ルータ | Lo0 | 動的ラベルの範囲 | 役割 |
|---|---|---|---|
| CE1 | 1.1.1.1/32 | — | 顧客側(AS 65101、192.168.1.0/24) |
| PE1 | 2.2.2.2/32 | 30000〜39999 | 入口 / 出口LSR |
| P1 | 3.3.3.3/32 | 40000〜49999 | 観測の中心。3ピアからラベルを受け取る |
| P2 | 4.4.4.4/32 | 50000〜59999 | 中継(初期の最短経路) |
| P3 | 5.5.5.5/32 | 60000〜69999 | 中継(迂回路、コスト50) |
| PE2 | 6.6.6.6/32 | 70000〜79999 | 入口 / 出口LSR |
| CE2 | 7.7.7.7/32 | — | 顧客側(AS 65102、192.168.2.0/24) |
観測の対象はP1から見た6.6.6.6/32(PE2のLoopback0)です。キャプチャーはPE1 - P1、P1 - P2、P1 - P3の3区間をSTEPごとに取得しています。
検証のSTEP
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | 初期状態 | 既定がDUであること。LDP識別子が:0(per-platform)であること。3ピアからラベルを受け取り、使うのは次ホップの分だけであること |
| 1 | P1 - P2のコストを100にする | 経路が迂回路へ移り、保持していたP3のラベルへ切り替わること。LDPのやりとりが起きないこと |
| 2 | コストを戻す | STEP 0と同じに戻ること |
| 3 | PE1にだけDoDを設定 | 片側だけではDUのままであること |
| 4 | P1にも設定 | 両端そろってDoDになり、Label Requestが流れること。P1の他のセッションはDUのままであること |
| 5 | DoDを削除(最終状態) | STEP 0と同じに戻ること |
ラベルはセッションを張った全員に配られる
P1は3つのピアとセッションを持っています。
RP/0/RP0/CPU0:P1#show mpls ldp neighbor brief
Mon Sep 28 05:03:04.612 UTC
Peer GR NSR Up Time Discovery Addresses Labels
ipv4 ipv6 ipv4 ipv6 ipv4 ipv6
----------------- -- --- ---------- ---------- ---------- ------------
2.2.2.2:0 N N 00:07:51 1 0 3 0 11 0
4.4.4.4:0 N N 00:07:40 1 0 3 0 10 0
5.5.5.5:0 N N 00:07:37 1 0 3 0 10 06.6.6.6/32のバインディングには、その3つすべてからのラベルが入っています。装置ごとに範囲を分けているので、どのピアが配った値かが読み取れます。
RP/0/RP0/CPU0:P1#show mpls ldp bindings 6.6.6.6/32
Mon Sep 28 05:03:07.257 UTC
6.6.6.6/32, rev 20
Local binding: label: 40005
Remote bindings: (3 peers)
Peer Label
----------------- ---------
2.2.2.2:0 30006
4.4.4.4:0 50006
5.5.5.5:0 60006Downstream-Unsolicitedなので、相手が使うかどうかに関係なく配られます。PE1(2.2.2.2)はP1から見て上流で、6.6.6.6/32へ向かうときに通る相手ではありませんが、それでもラベルが届いています。
RP/0/RP0/CPU0:P1#show mpls ldp neighbor detail
Mon Sep 28 05:03:04.968 UTC
Peer LDP Identifier: 2.2.2.2:0
TCP connection: 2.2.2.2:646 - 3.3.3.3:34682
Graceful Restart: No
Session Holdtime: 180 sec
State: Oper; Msgs sent/rcvd: 21/23; Downstream-Unsolicited使わないラベルも保持する(liberal)
実際に転送で使うのは、IGPが選んだ次ホップから受け取ったラベルだけです。P1の6.6.6.6/32の次ホップはP2(10.3.4.4)です。
RP/0/RP0/CPU0:P1#show route 6.6.6.6/32
Mon Sep 28 05:03:07.697 UTC
Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 3, type intra area
Installed Sep 28 04:55:32.577 for 00:07:35
Routing Descriptor Blocks
10.3.4.4, from 6.6.6.6, via GigabitEthernet0/0/0/1
Route metric is 3
No advertising protos.転送表には、P2が配った50006だけが出方向のラベルとして入っています。
RP/0/RP0/CPU0:P1#show mpls forwarding prefix 6.6.6.6/32
Mon Sep 28 05:03:09.123 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
40005 50006 6.6.6.6/32 Gi0/0/0/1 10.3.4.4 23798それでもバインディングからPE1とP3のラベルは消えません(前掲のshow mpls ldp bindings)。これがliberalです。conservativeなら、次ホップから受け取った1件だけを残して他は捨てます。
経路が変わると、保持していたラベルへ切り替わる
P1 - P2のコストを100に上げます(両端)。
RP/0/RP0/CPU0:P1#show configuration commit changes last 1
Mon Sep 28 05:05:32.668 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
area 0
interface GigabitEthernet0/0/0/1
cost 100
!
!
!
endRP/0/RP0/CPU0:P2#show configuration commit changes last 1
Mon Sep 28 05:05:39.694 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
area 0
interface GigabitEthernet0/0/0/0
cost 100
!
!
!
end経路が迂回路(P3経由)へ移りました。
RP/0/RP0/CPU0:P1#show route 6.6.6.6/32
Mon Sep 28 05:10:14.118 UTC
Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 101, type intra area
Installed Sep 28 05:05:32.044 for 00:04:42
Routing Descriptor Blocks
10.3.5.5, from 6.6.6.6, via GigabitEthernet0/0/0/2
Route metric is 101
No advertising protos.転送表の出方向のラベルは、P2の50006からP3の60006へ変わります。入方向のラベル(40005)は変わりません。
RP/0/RP0/CPU0:P1#show mpls forwarding prefix 6.6.6.6/32
Mon Sep 28 05:03:09.123 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
40005 50006 6.6.6.6/32 Gi0/0/0/1 10.3.4.4 23798RP/0/RP0/CPU0:P1#show mpls forwarding prefix 6.6.6.6/32
Mon Sep 28 05:10:15.561 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
40005 60006 6.6.6.6/32 Gi0/0/0/2 10.3.5.5 23798RP/0/RP0/CPU0:P1#show mpls forwarding prefix 6.6.6.6/32
Mon Sep 28 05:17:21.757 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
40005 50006 6.6.6.6/32 Gi0/0/0/1 10.3.4.4 23798バインディングはSTEP 0から変わっていません。すでに持っていたラベルを使うだけなので、切り替えのときにLDPは何もしません。迂回路(P1 - P3)のキャプチャーに流れているのはKeepAliveだけです。
$ tshark -r - -Y 'ldp && tcp' -T fields -e frame.number -e frame.time_relative -e _ws.col.info \
< mpls-ldp-modes-step1-p1p3.pcap
7 8.061757000 Keep Alive Message
77 15.590830000 Keep Alive Message
160 57.677007000 Keep Alive Message
169 69.295474000 Keep Alive MessageCE1からのtracerouteでも、2ホップ目以降のラベルが変わります。疎通は50発すべて成功したままです。
RP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1 timeout 1 probe 2 maxttl 7
Mon Sep 28 05:01:09.909 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 7 msec 4 msec
2 10.2.3.3 [MPLS: Label 40005 Exp 0] 11 msec 10 msec
3 10.3.4.4 [MPLS: Label 50006 Exp 0] 10 msec 9 msec
4 10.4.6.6 20 msec 11 msec
5 10.6.7.7 14 msec *RP/0/RP0/CPU0:CE1#traceroute 192.168.2.1 source 192.168.1.1 timeout 1 probe 2 maxttl 7
Mon Sep 28 05:08:16.288 UTC
Type escape sequence to abort.
Tracing the route to 192.168.2.1
1 10.1.2.2 6 msec 5 msec
2 10.2.3.3 [MPLS: Label 40005 Exp 0] 67 msec 12 msec
3 10.3.5.5 [MPLS: Label 60006 Exp 0] 16 msec 13 msec
4 10.5.6.6 17 msec 14 msec
5 10.6.7.7 20 msec *これがliberalの利点です。conservativeなら、経路が変わってから改めてラベルを要求するため、切り替えに時間がかかります。
Downstream on Demand:片側だけでは変わらない
PE1にだけ、相手を指定するACLとsession downstream-on-demandを入れます。
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Mon Sep 28 05:19:45.396 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
ipv4 access-list DOD-PEERS
10 permit ipv4 host 3.3.3.3 any
!
mpls ldp
session downstream-on-demand with DOD-PEERS
!
end設定するとセッションは張り直されますが、モードはDownstream-Unsolicitedのままです。
RP/0/RP0/CPU0:PE1#show mpls ldp neighbor detail
Mon Sep 28 05:23:11.375 UTC
Peer LDP Identifier: 3.3.3.3:0
TCP connection: 3.3.3.3:59177 - 2.2.2.2:646
Graceful Restart: No
Session Holdtime: 180 sec
State: Oper; Msgs sent/rcvd: 17/17; Downstream-Unsolicited両端そろうとLabel Requestが流れる
P1にも同じ設定を入れます。
RP/0/RP0/CPU0:P1#show configuration commit changes last 1
Mon Sep 28 05:26:54.620 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
ipv4 access-list DOD-PEERS
10 permit ipv4 host 2.2.2.2 any
!
mpls ldp
session downstream-on-demand with DOD-PEERS
!
endPE1の表示がDownstream-on-Demandに変わります。
RP/0/RP0/CPU0:PE1#show mpls ldp neighbor detail
Mon Sep 28 05:30:21.354 UTC
Peer LDP Identifier: 3.3.3.3:0
TCP connection: 3.3.3.3:26491 - 2.2.2.2:646
Graceful Restart: No
Session Holdtime: 180 sec
State: Oper; Msgs sent/rcvd: 15/15; Downstream-on-Demand配布モードはセッション単位です。P1はPE1とはDoDですが、P2とP3とはDUのままです。show mpls ldp neighbor briefのLabels欄を見ると、DoDにしたPE1(2.2.2.2)からのラベルだけが減っています。要求したものしか配られないためです。
RP/0/RP0/CPU0:P1#show mpls ldp neighbor brief
Mon Sep 28 05:31:38.657 UTC
Peer GR NSR Up Time Discovery Addresses Labels
ipv4 ipv6 ipv4 ipv6 ipv4 ipv6
----------------- -- --- ---------- ---------- ---------- ------------
4.4.4.4:0 N N 00:36:14 1 0 3 0 10 0
5.5.5.5:0 N N 00:36:11 1 0 3 0 10 0
2.2.2.2:0 N N 00:04:38 1 0 3 0 1 0キャプチャーには、DUでは流れないLabel Requestが現れます。Initialization → KeepAlive → Address のあとにRequestが入り、Label Mappingが返ります。
$ tshark -r - -Y 'ldp && tcp' -T fields -e frame.number -e frame.time_relative -e ip.src -e _ws.col.info \
< mpls-ldp-modes-step4-pe1p1.pcap
1 0.000000000 3.3.3.3 Keep Alive Message
159 11.189700000 3.3.3.3 Initialization Message
171 15.830506000 3.3.3.3 Initialization Message
172 15.850426000 2.2.2.2 Initialization Message Keep Alive Message
173 15.854649000 3.3.3.3 Keep Alive Message
174 15.858092000 2.2.2.2 Address Message
175 15.860655000 3.3.3.3 Address Message
179 16.494015000 3.3.3.3 Label Request Message [Malformed Packet]
180 16.497699000 2.2.2.2 Label Mapping MessageNo.179はP1がPE1へ送ったLabel Requestです。どのFECのラベルが欲しいかをPrefix FECで示します。
Label Distribution Protocol
Version: 1
PDU Length: 26
LSR ID: 3.3.3.3
Label Space ID: 0
Label Request Message
0... .... = U bit: Unknown bit not set
Message Type: Label Request Message (0x401)
Message Length: 16
Message ID: 0x000000a4
FEC
00.. .... = TLV Unknown bits: Known TLV, do not Forward (0x0)
TLV Type: FEC (0x100)
TLV Length: 8tsharkはこのパケットに[Malformed Packet]を付けますが、中身はRFC 5036のとおりで欠けはありません。FEC TLV(0x0100)の長さは8で、続く8バイトがPrefix FEC要素(種別02、アドレスファミリ0001、プレフィックス長20=32、値02 02 02 02=2.2.2.2)です。
0040 04 01 00 10 00 00 00 a4 01 00 00 08 02 00 01 20 ...............
0050 02 02 02 02 ....Wireshark側がLabel Requestを解釈しきれないだけで、ルータは正しく処理してLabel Mappingを返しています(前掲のNo.28)。
ラベルスペースはper-platform
LDP識別子の後半2オクテットが:0であることは、装置全体で1つのラベル空間を使っていることを表します。P1のパラメータにもラベルスペースごとの区別は現れません。
RP/0/RP0/CPU0:P1#show mpls ldp parameters
Mon Sep 28 05:03:03.796 UTC
LDP Parameters:
Role: Active
Protocol Version: 1
Router ID: 3.3.3.3
Null Label:
IPv4: Implicit
Session:per-interfaceを使うのはLC-ATMのようにリンクがラベル資源を握る構成で、イーサネットのラボでは選べません。この検証で見えるのはper-platform側だけです。
疎通
配布モードや経路が変わっても、CE1からCE2への疎通はどのSTEPでも保たれています。
RP/0/RP0/CPU0:CE1#ping 192.168.2.1 source 192.168.1.1 count 50 timeout 1
Mon Sep 28 05:01:08.111 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.2.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 13/16/36 ms切り替えの間に落ちたパケット
上の疎通は、設定を変えて収束したあとに測ったものです。切り替えの最中に何発落ちたかは、設定変更の前に流し始めて変更をまたいだpingで測っています(count 150 interval 100 timeout 1)。
| STEP | 操作 | 切り替えをまたいだping |
|---|---|---|
| 1 | P1 - P2のコストを100にする | 150/150(ロスなし) |
| 2 | コストを戻す | 150/150(ロスなし) |
| 3 | PE1にだけDoDを設定 | 145/150(ロス5発) |
| 4 | P1にも設定 | 143/150(ロス7発) |
| 5 | DoDを削除(最終状態) | 143/150(ロス7発) |
| 経路を切り替えたSTEP 1と、戻したSTEP 2は1発も落ちていません。 Downstream Unsolicitedであらかじめ全ピアからラベルを受け取っているため、経路が変わっても保持しているラベルに差し替えるだけで済み、LDPのやりとりを待つ必要がないからです。配布モードを切り替えるSTEP 3〜5では数発落ちますが、これはセッションを張り直すためです。 |
検証Configおよびshow結果
各STEPで7台すべてから、次の種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 5のもの)。各STEPは「カウンタのクリア → ping → show」の順に採っています。
| ファイル | 内容 |
|---|---|
..._clear.txt | そのSTEPの最初にクリアしたカウンタ(clear counters interfaceとclear mpls forwarding counters) |
..._ping.txt | ping(50発)とtraceroute。CE1 - CE2とPE1 - PE2(Loopback0間) |
..._show.txt | show version / show interface description / show route / OSPF と、LDPの一式(parameters / summary / discovery / neighbor / bindings / forwarding / statistics msg-counters)、MPLS転送、PEはBGP |
..._log.txt | そのSTEPの範囲だけに絞ったshow logging |
..._run.txt | そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._trace.txt | コア5台のみ。show mpls ldp trace peer / bindingとshow mpls lsd trace |
..._commit.cfg | そのSTEPで実際にcommitされた設定(変更したルータのみ) |
STEP 0:初期状態
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | — |
| PE1 | show | ping | clear | log | run | trace | — | — |
| P1 | show | — | clear | log | run | trace | — | — |
| P2 | show | — | clear | log | run | trace | — | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
STEP 1:P1 - P2のコストを100にする
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | outage |
| PE1 | show | ping | clear | log | run | trace | — | — |
| P1 | show | — | clear | log | run | trace | cfg | — |
| P2 | show | — | clear | log | run | trace | cfg | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
STEP 2:コストを戻す
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | outage |
| PE1 | show | ping | clear | log | run | trace | — | — |
| P1 | show | — | clear | log | run | trace | cfg | — |
| P2 | show | — | clear | log | run | trace | cfg | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
STEP 3:PE1にだけDoDを設定
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | outage |
| PE1 | show | ping | clear | log | run | trace | cfg | — |
| P1 | show | — | clear | log | run | trace | — | — |
| P2 | show | — | clear | log | run | trace | — | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
STEP 4:P1にも設定
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | outage |
| PE1 | show | ping | clear | log | run | trace | — | — |
| P1 | show | — | clear | log | run | trace | cfg | — |
| P2 | show | — | clear | log | run | trace | — | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
STEP 5:DoDを削除(最終状態)
| ルータ | show出力 | ping | clear | syslog | running-config | trace | 投入した設定 | 断の測定 |
|---|---|---|---|---|---|---|---|---|
| CE1 | show | ping | clear | log | run | — | — | outage |
| PE1 | show | ping | clear | log | run | trace | cfg | — |
| P1 | show | — | clear | log | run | trace | cfg | — |
| P2 | show | — | clear | log | run | trace | — | — |
| P3 | show | — | clear | log | run | trace | — | — |
| PE2 | show | ping | clear | log | run | trace | — | — |
| CE2 | show | ping | clear | log | run | — | — | — |
パケットキャプチャーはSTEPごとに、3つの区間で取得しています。
| STEP | PE1 - P1間 | P1 - P2間 | P1 - P3間 |
|---|---|---|---|
| 0 | pcap | pcap | pcap |
| 1 | pcap | pcap | pcap |
| 2 | pcap | pcap | pcap |
| 3 | pcap | pcap | pcap |
| 4 | pcap | pcap | pcap |
| 5 | pcap | pcap | pcap |
参考
| RFC | タイトル | 概要 |
|---|---|---|
| RFC 5036 | LDP Specification | ラベル配布制御(2.6.1節 Label Distribution Control Mode)、ラベル保持(2.6.2節 Label Retention Mode)、ラベル広告(2.6.3節 Label Advertisement Mode)、ラベルスペース(2.2.1節)、LDP識別子との関係(2.2.2節)。 |
実装の対応表はSupported LDP Standards(Juniper Networks)を参照しました(2026-09-23に確認)。
書籍: Luc De Ghein『MPLS Fundamentals』(Cisco Press, 2006)Chapter 2, 4
関連記事
- MPLSとは
- MPLSラベルとラベルスタック
- MPLSのラベル操作(push / swap / pop)とPHP
- MPLSのTTL処理とMTU
- LDPとは
- LDPのラベル配布モードとラベルスペース
- LDP-IGPシンクロナイゼーションとLDPセッション保護
- LDPのラベル広告制御(フィルタリング)
- LDPのセッション認証(TCP MD5)
- MPLSのOAM(LSP Ping / LSP Traceroute)
- MPLS TE(RSVP-TE)とは
- MPLS TEのCSPFと経路の制約(帯域 / affinity / TEメトリック)
- MPLS TEトンネルへのトラフィック誘導
- MPLS TEのFRR(リンク保護とノード保護)
- MPLS TEのFRR(auto-tunnel backupとSRLG)
- MPLSのQoS(EXPとuniform / pipe / short-pipe)
- MPLSのQoSの帯域制御とキューイング(policer / shaper / priority)