概要

MPLSのラベルを配送してLSPを確立するLDPについて設定ミスの切り分けと修正を行います。

ネットワーク構成

下記のネットワーク構成でMPLSによるラベルスイッチングができるようにします。

図 MPLS 設定ミスの切り分けと修正 Part1 ネットワーク構成
図 MPLS 設定ミスの切り分けと修正 Part1 ネットワーク構成

設定概要

R1~R3でMPLSに関連する設定の抜粋は次の通りです。これらの設定には一部設定ミスがあります。

R1

interface Loopback0
 ip address 192.168.0.1 255.255.255.255
!
interface Serial1/0
 ip address 192.168.12.1 255.255.255.0
 encapsulation ppp
 mpls ip
 no peer neighbor-route
!
router ospf 1
 router-id 192.168.0.1
 log-adjacency-changes
 network 192.168.0.1 0.0.0.0 area 0
 network 192.168.12.1 0.0.0.0 area 0

R2

interface Loopback0
 ip address 192.168.0.2 255.255.255.255
!
interface Loopback200
 ip address 200.200.200.200 255.255.255.255
!
interface Serial1/0
 ip address 192.168.12.2 255.255.255.0
 encapsulation ppp
 mpls ip
 no peer neighbor-route
!
interface Serial1/1
 ip address 192.168.23.2 255.255.255.0
 encapsulation ppp
 mpls ip
 no peer neighbor-route
!
router ospf 1
 router-id 192.168.0.2
 log-adjacency-changes
 network 192.168.0.2 0.0.0.0 area 0
 network 192.168.12.2 0.0.0.0 area 0
 network 192.168.23.2 0.0.0.0 area 0

R3

interface Loopback0
 ip address 192.168.0.3 255.255.255.255
!
interface Serial1/0
 ip address 192.168.23.3 255.255.255.0
 encapsulation ppp
 mpls ip
 no peer neighbor-route
!
router ospf 1
 router-id 192.168.0.3
 log-adjacency-changes
 network 192.168.0.3 0.0.0.0 area 0
 network 192.168.23.3 0.0.0.0 area 0

トラブルの症状

次のように各ルータのインタフェースでMPLSを有効化しています。

R1 show mpls interface

R1#show mpls interfaces
Interface              IP            Tunnel   Operational
Serial1/0              Yes (ldp)     No       Yes

R2 show mpls interface

R2#show mpls interfaces
Interface              IP            Tunnel   Operational
Serial1/0              Yes (ldp)     No       Yes
Serial1/1              Yes (ldp)     No       Yes

R3 show mpls interface

R3#show mpls interfaces
Interface              IP            Tunnel   Operational
Serial1/0              Yes (ldp)     No       Yes

ところが、R2との間でLDPネイバーを確立することができていません。R2でshow mpls ldp neighborを見ると、次のようになります。

R2 show mpls ldp neighbor

R2#show mpls ldp neighbor

R2との間でLDPネイバーを確立できないので、ラベル配布ができていません。通信はできるもののラベルスイッチングではなく、通常のIPルーティングになってしまっています。

問題

  • R2との間でLDPネイバーを確立できない原因は何ですか?
  • R2との間でLDPネイバーを確立するためにどのように設定を行えばよいですか?

解答

R2との間でLDPネイバーを確立できない原因は何ですか?

R2の200.200.200.200/32との接続性がないため

R2との間でLDPネイバーを確立するためにどのように設定を行えばよいですか

R2

router ospf 1
 network 200.200.200.200 0.0.0.0 area 0

または

R2

mpls ldp router-id loopback0 force

ワンポイント

  • LDPルータIDに対するIP接続性が必要

解説

MPLSで利用するラベルを配布するための代表的なプロトコルがLDP(Label Distribution Protocol)です。LDPによって、ルータ間でラベルを配布してラベルスイッチングできるようにします。LDPでは、以下のポート番号を利用します。

  • TCPポート646
  • UDPポート646

UDPによって、LDPネイバーを発見します。そしてLDPネイバーとの間でTCPコネクションを確立してラベルの配布を行います。ラベルを配布する対象をFEC(Forwarding Equivalent Class)と呼びます。FECとは、簡単に言えば、同じように転送するパケットの集まりです。同じように転送するパケットには、同じラベルを割り当ててラベルスイッチングを行います。このFECの代表的な例は、ルーティングテーブルのルート情報です。

そして、LDPでもOSPFのようにルータIDを決定します。ルータIDの決定方法は、次のようになります。

  • Loopbackインタフェースの最大IPアドレス
  • アクティブなインタフェースの最大IPアドレス

LDPのルータIDは、単純にルータの識別だけに使うのではなく、TCPコネクションを確立する際のアドレスとして使います。そのため、LDPネイバーを正常に確立するためには、ルータIDのIPアドレスに対しての接続性がなければいけません。今回の構成において、各ルータのLDPルータIDは次のようになっています。

  • R1:192.168.0.1(Loopback0)
  • R2:200.200.200.200(Loopback200)
  • R3:192.168.0.3(Loopback0)

R2のOSPFの設定では、Loopback200をアドバタイズしていません。そのため、R1とR3からは200.200.200.200に対する接続性がありません。これがR2との間で、LDPネイバーを確立できない理由です。

R1のルーティングテーブルは次のようになっています。

R1 show ip route

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.12.0/24 is directly connected, Serial1/0
O    192.168.23.0/24 [110/128] via 192.168.12.2, 00:14:38, Serial1/0
     192.168.0.0/32 is subnetted, 3 subnets
C       192.168.0.1 is directly connected, Loopback0
O       192.168.0.2 [110/65] via 192.168.12.2, 00:14:38, Serial1/0
O       192.168.0.3 [110/129] via 192.168.12.2, 00:14:38, Serial1/0

また、R1でLDPの情報を確認するためにshow mpls ldp discoveryを見ると、次のようになっています。

show mpls ldp discovery

R1#sh mpls ldp discovery
 Local LDP Identifier:
    192.168.0.1:0
    Discovery Sources:
    Interfaces:
        Serial1/0 (ldp): xmit/recv
            LDP Id: 200.200.200.200:0; no route

R1ではSerial1/0上にルータID 200.200.200.200を認識しているのですが、「no route」なのでLDPネイバーを正常に確立することができません。

トラブルの原因が分かったところで、解決方法を考えましょう。R2との間でLDPネイバーを正常に確立するためには、

  • Loopback200をOSPFでアドバタイズする
  • LDPルータIDをLoopback0のIPアドレスに変更する

のどちらかで解決できます。

Loopback200をOSPFでアドバタイズする設定は次の通りです。

R2 Loopback200をOSPFでアドバタイズ

router ospf 1
 network 200.200.200.200 0.0.0.0 area 0

R2 LoopbackをOSPFでアドバタイズした場合、R2でshow mpls ldp neighborは次のような表示になります。

R2 show mpls ldp neighbor

R2#sh mpls ldp neighbor
    Peer LDP Ident: 192.168.0.1:0; Local LDP Ident 200.200.200.200:0
        TCP connection: 192.168.0.1.646 - 200.200.200.200.24393
        State: Oper; Msgs sent/rcvd: 9/9; Downstream
        Up time: 00:00:11
        LDP discovery sources:
          Serial1/0, Src IP addr: 192.168.12.1
        Addresses bound to peer LDP Ident:
          192.168.12.1    192.168.0.1
    Peer LDP Ident: 192.168.0.3:0; Local LDP Ident 200.200.200.200:0
        TCP connection: 192.168.0.3.646 - 200.200.200.200.32858
        State: Oper; Msgs sent/rcvd: 9/9; Downstream
        Up time: 00:00:11
        LDP discovery sources:
          Serial1/1, Src IP addr: 192.168.23.3
        Addresses bound to peer LDP Ident:
          192.168.23.3    192.168.0.3

また、LDPルータIDをLoopback0のIPアドレスに変更するには次のように設定します。

R2 LDPルータIDをLoopback0に変更

mpls ldp router-id loopback0 force

R2でルータIDを変更した場合のshow mpls ldp neighborは次のようになります。

R2 show mpls ldp neighbor

R2#show mpls ldp neighbor
    Peer LDP Ident: 192.168.0.3:0; Local LDP Ident 192.168.0.2:0
        TCP connection: 192.168.0.3.27096 - 192.168.0.2.646
        State: Oper; Msgs sent/rcvd: 9/9; Downstream
        Up time: 00:00:11
        LDP discovery sources:
          Serial1/1, Src IP addr: 192.168.23.3
        Addresses bound to peer LDP Ident:
          192.168.23.3    192.168.0.3
    Peer LDP Ident: 192.168.0.1:0; Local LDP Ident 192.168.0.2:0
        TCP connection: 192.168.0.1.646 - 192.168.0.2.12446
        State: Oper; Msgs sent/rcvd: 9/9; Downstream
        Up time: 00:00:11
        LDP discovery sources:
          Serial1/0, Src IP addr: 192.168.12.1
        Addresses bound to peer LDP Ident:
          192.168.12.1    192.168.0.1

なお、詳細は割愛しますが、R2で次のように設定してもLDPネイバーを確立することができます。TCPコネクションを確立するIPアドレスとして、インタフェースのIPアドレスを利用するという設定です。

R2

interface serial 1/0
 mpls ldp discovery transport-address interface
!
interface serial 1/1
 mpls ldp discovery transport-address interface