無料ブログはココログ

« 【Cisco Tips】 Ciscoのフラッシュメモリ種別 | トップページ | 【GMPLS】 11. JuniperのGMPLSまとめ »

【GMPLS】 10. 再実験

10. 再実験

いろいろと失敗を重ねているうちにだいぶ理解が深まりまってきました。 デバッグ性を重視して無理してイーサで押し通してきましたが、やはり光で攻めた方がいいようです。 改めて実験構成を作ってみました。

コントロールチャネルにはGREトンネル(gre.0)を使用し、192.168.250.0/24を割り当てます。 データチャネルにはso-0/1/1を使用します。

データチャネルの物理インタフェースにはIPアドレスを割り当てません。 不要だからです(もちろん管理用として割り当てることはできます)。 とは言っても、RSVPでLSPを作成するときに「どこを通すのか」指定しなければいけませんから、 LMPのte-linkにアドレスを割り当てます。 ここではR1側に10.1.3.1を、R2側に10.1.3.2を割り当てます。 ネットワークセグメントではないので、飛び飛びのアドレスで構いません。

te-linkの中には複数のリソース(物理ポートやタイムスロット、波長)を含めることができます。 この場合はso-0/1/1です。 te-link中のそれらリソースにもIPアドレスを割り当てる事もできるのですが、 Juniperでは使い方が分からないので、ここでは割り当てません。

順番に設定を見ていきます。最初はR1のインタフェース設定(↓)です。 so-0/1/1にIPアドレスを割り当てていない事に注目してください。

gsi@R1# show interfaces
fe-0/0/0 {
    speed 100m;
    mtu 1500;
    link-mode half-duplex;
    unit 0 {
        family inet {
            address 192.168.1.1/24;
        }
        family mpls;
    }
}
so-0/1/1 {
    description "Data channel";
    clocking internal;
    encapsulation ppp;
    sonet-options {
        rfc-2615;
    }
}
gre {
    unit 0 {
        tunnel {
            source 192.168.1.1;
            destination 192.168.1.2;
        }
        family inet {
            address 192.168.250.1/24;
        }
        family mpls;
    }
}

次にR1のLMPの設定(↓)です。 te-r1-r2という名称でte-linkを作成しました。 R1側は10.1.3.1を、R2側は10.1.3.2を割り当てています。 te-linkの中には物理インタフェースを複数組み込むことができます。 物理インタフェースの中にもlocal-address、remote-address設定がありますが、これは不要です。 remote-idは、show link-managementコマンドで調べた値を設定します。

peerの設定は前回の実験のときと同じです。

link-management {
    te-link te-r1-r2 {
        local-address 10.1.3.1;
        remote-address 10.1.3.2;
        remote-id 45787;
        interface so-0/1/1 {
            remote-id 22276;
        }
    }
    peer r2 {
        address 192.168.254.2;
        control-channel gre.0;
        te-link te-r1-r2;
    }
}

続いてRSVPとOSPFの設定です。 peer-interface設定でLMP情報をプロトコル側に供給するようにしています。 コントロールチャネルのインタフェースgre.0でRSVP、OSPFを動かしてはいけません。

注目はOSPFでtraffic-engineering設定を加えていることです。 マニュアルには書いてありませんが、これがないと動きません。

rsvp {
    interface fxp0.0 {
        disable;
    }
    interface gre.0 {
        disable;
    }
    peer-interface r2;
}
ospf {
    traffic-engineering;
    area 0.0.0.0 {
        interface lo0.0;
        interface fxp0.0 {
            disable;
        }
        interface fe-0/0/0.0;
        peer-interface r2;
    }
}

ここまでの設定で、LMP、OSPF、RSVPが機能します。

show ospf databaseコマンドの結果から、エリアローカルのOpaq LSAが生成されていることが分かります。 show ted databaseコマンドの結果からは、 トラフィックエンジニアリング用のPoint-to-Pointの仮想リンクが確認できます。 te-linkに割り当てたアドレスがキチンとTEDに反映されています。

gsi@R1# run show ospf neighbor
  Address         Interface             State      ID              Pri  Dead
192.168.1.2      fe-0/0/0.0             Full      192.168.254.2    128   34
192.168.250.2    r2                     Full      192.168.254.2    128   39

[edit]
gsi@R1# run show ospf database

    OSPF link state database, area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len
Router  *192.168.254.1    192.168.254.1    0x8000002f   589  0x2  0x8a77  48
Router   192.168.254.2    192.168.254.2    0x8000003e   205  0x2  0x806e  48
Network *192.168.1.1      192.168.254.1    0x80000009     2  0x2  0x6a3f  32
OpaqArea*1.0.0.1          192.168.254.1    0x80000024   589  0x2  0x4811  28
OpaqArea 1.0.0.1          192.168.254.2    0x80000031   805  0x2  0x3218  28
OpaqArea*1.0.0.3          192.168.254.1    0x80000026   589  0x2  0x29f6 164
OpaqArea 1.0.0.3          192.168.254.2    0x8000002e   505  0x2  0xf423 164

[edit]
gsi@R1# run show ted database
TED database: 0 ISIS nodes 3 INET nodes
ID                            Type Age(s) LnkIn LnkOut Protocol
192.168.1.1-1                 Net    7373     0      2 OSPF(0.0.0.0)
    To: 192.168.254.1, Local: 0.0.0.0, Remote: 0.0.0.0
    To: 192.168.254.2, Local: 0.0.0.0, Remote: 0.0.0.0
ID                            Type Age(s) LnkIn LnkOut Protocol
192.168.254.1                 Rtr    5634     2      1 OSPF(0.0.0.0)
    To: 192.168.254.2, Local: 10.1.3.1, Remote: 10.1.3.2
ID                            Type Age(s) LnkIn LnkOut Protocol
192.168.254.2                 Rtr    5444     2      1 OSPF(0.0.0.0)
    To: 192.168.254.1, Local: 10.1.3.2, Remote: 10.1.3.1

[edit]
gsi@R1#

続いて、MPLSの設定です。

mpls {
    no-cspf;
    interface all;
    interface fxp0.0 {
        disable;
    }
}

ずいぶん簡単になってますが、これはLSPの設定をしていないからです。 GMPLSのLSP(TDM、波長、ファイバ)は基本的に双方向です(パケットは唯一、単方向)。 なので、R1とR2のどちらかでLSPを設定すればよいことになります。 ここではR2側からLSPを作成してみます。 R2から見ると、通したい場所はte-linkのR1側の部分、すなわち10.1.3.1です。

mpls {
    no-cspf;
    label-switched-path gmpls-1 {
        from 192.168.254.2;
        to 192.168.254.1;
        lsp-attributes {
            signal-bandwidth stm-1;
            switching-type tdm;
            gpid ppp;
        }
        primary gmpls-path-1;
    }
    path gmpls-path-1 {
        10.1.3.1;
    }
    interface all;
    interface fxp0.0 {
        disable;
    }
}

この設定により、gmpls-1と名付けたLSPがアップします。

gsi@R2# run show mpls lsp
Ingress LSP: 1 sessions
To              From            State Rt ActivePath       P     LSPname
192.168.254.1   192.168.254.2   Up     0 gmpls-path-1     *     gmpls-1 Bidir
Total 1 displayed, Up 1, Down 0

Egress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

Transit LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

[edit]
gsi@R2# run show rsvp session detail
Ingress RSVP: 1 sessions

192.168.254.1
  From: 192.168.254.2, LSPstate: Up, ActiveRoute: 0
  LSPname: gmpls-1, LSPpath: Primary
  Bidirectional, Upstream label in: 0x5706, Upstream label out: -
  Suggested label received: -, Suggested label sent: 0x5706
  Recovery label received: -, Recovery label sent: 0x5706
  Resv style: 1 FF, Label in: -, Label out: 0x5706
  Time left:    -, Since: Wed Oct 13 14:04:14 2004
  Tspec: rate 0bps size 0bps peak 155.52Mbps m 20 M 1500
  Port number: sender 1 receiver 26873 protocol 0
  PATH rcvfrom: localclient
  Adspec: sent MTU 1500
  PATH sentto: 192.168.254.1 (r1) 139 pkts
  RESV rcvfrom: 192.168.254.1 (r1) 139 pkts
  Explct route: 10.1.3.1
  Record route:  10.1.3.1
Total 1 displayed, Up 1, Down 0

Egress RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

Transit RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

[edit]
gsi@R2#
gsi@R2# run show route forwarding-table family mpls
Routing table: mpls
MPLS:
Destination        Type RtRef Next hop           Type Index NhRef Netif
default            perm     0                    dscd    24     1
0                  user     0                    recv    23     3
1                  user     0                    recv    23     3
2                  user     0                    recv    23     3

[edit]
gsi@R2#

このLSPは双方向ですから、R1側からみても、このLSPはアップします。

gsi@R1# run show mpls lsp
Ingress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

Egress LSP: 1 sessions
To              From            State Rt Style Labelin Labelout LSPname
192.168.254.1   192.168.254.2   Up     0 1 FF  0x5706        - gmpls-1 Bidir
Total 1 displayed, Up 1, Down 0

Transit LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

[edit]
gsi@R1#

かなり苦労しましたが、無事にGMPLSのLSPが作られました。

データチャネルの物理リソースを追加してみる

ここまでの設定ですと、GMPLSのLSPを1本張ると終わってしまいます。 せっかくですので、データチャネルを追加してみましょう。 やり方、というか考え方は2通りあります。 一つは、te-linkの中に物理リソースを追加していく方法、 もう一つはte-linkごと新しく用意する方法です。

前者の場合、同じte-linkを使用して何本もLSPを作成できます。 つまり、10.1.3.1というアドレスを通るようにLSPを作成すると、 そのte-linkに含まれる物理リソースの中から空いているものを自動選択してくれるわけです。 実際にどの物理ポートを通るかは、 そのときのタイミング次第になってしまいますが、 管理する側としては、この方が便利だと思います。

後者の場合、どの物理リソースを通すのか人間側できちんと管理したい場合に使用します。

ここでは前者の場合、すなわち既存のte-linkの中に物理リソースを追加する方法をとってみたいと思います。 追加するのはso-0/1/3です。ここでも物理インタフェースにIPアドレスは不要です。

so-0/1/3 {
    description "Data channel";
    clocking internal;
    encapsulation ppp;
    sonet-options {
        rfc-2615;
    }
}

後は、te-linkの中にso-0/1/3を追加するだけです。

link-management {
    te-link te-r1-r2 {
        local-address 10.1.3.1;
        remote-address 10.1.3.2;
        remote-id 45787;
        interface so-0/1/3 {
            remote-id 22278;
        }
        interface so-0/1/1 {
            remote-id 22276;
        }
    }
    peer r2 {
        address 192.168.254.2;
        control-channel gre.0;
        te-link te-r1-r2;
    }
}

R2側からLSPを追加してみたいと思います。ここでは2本追加して、合計3本設定してみます。

mpls {
    no-cspf;
    label-switched-path gmpls-1 {
        from 192.168.254.2;
        to 192.168.254.1;
        lsp-attributes {
            signal-bandwidth stm-1;
            switching-type tdm;
            gpid ppp;
        }
        primary gmpls-path-1;
    }
    label-switched-path gmpls-2 {
        from 192.168.254.2;
        to 192.168.254.1;
        lsp-attributes {
            signal-bandwidth stm-1;
            switching-type tdm;
            gpid ethernet;
        }
        primary gmpls-path-1;
    }
    label-switched-path gmpls-3 {
        from 192.168.254.2;
        to 192.168.254.1;
        lsp-attributes {
            signal-bandwidth stm-1;
            switching-type tdm;
            gpid ethernet;
        }
        primary gmpls-path-1;
    }
    path gmpls-path-1 {
        10.1.3.1;
    }
    interface all;
    interface fxp0.0 {
        disable;
    }
}

すると、次のように最初の2本は作成できますが、3本目は弾かれてます。 リソースが足りないからです。

gsi@R2# run show mpls lsp
Ingress LSP: 3 sessions
To              From            State Rt ActivePath       P     LSPname
192.168.254.1   192.168.254.2   Up     0 gmpls-path-1     *     gmpls-1 Bidir
192.168.254.1   192.168.254.2   Up     0 gmpls-path-1     *     gmpls-2 Bidir
192.168.254.1   192.168.254.2   Dn     0 -                      gmpls-3 Bidir
Total 3 displayed, Up 2, Down 1

Egress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

Transit LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

[edit]
gsi@R2#

以上のように、GMPLSのLSP作成は簡単にできることがわかりました。

最終的な設定 ( R1  R2)

コントロールチャネル上でモニターしたEtherealの データ

このLSPはどうやってつかうの?

それが目下の課題です。CCCを使うにはPSCじゃないとダメなので、このLSPには使えません。 普通にIPパケットをルーティングするしかないのかな?

つづく。

« 【Cisco Tips】 Ciscoのフラッシュメモリ種別 | トップページ | 【GMPLS】 11. JuniperのGMPLSまとめ »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/54859/1674604

この記事へのトラックバック一覧です: 【GMPLS】 10. 再実験:

« 【Cisco Tips】 Ciscoのフラッシュメモリ種別 | トップページ | 【GMPLS】 11. JuniperのGMPLSまとめ »