サマリ
前回 Ubuntu DesktopにGNS3 1.3.1を入れてXRvを起動 できることを確認しました。
今回は、比較的新しく実装されたSegment Routingと言う機能を試しに動かしてみます。
Segment Routingが真価を発揮するのはVPNやSDNと絡めた場合だと思いますが、まずはIS-IS Segment Routing単体での動作と、結果的に転送にMPLSラベルが使用されるところまでを見ていきます。
プロプライエタリな実装であっても、こうやって事前にテスト出来ると勉強し易いんだよなぁ。
スーパーざっくりSegment Routing
僕も詳しくは知りませんが、新しいTLVを定義してMPLSラベルを配れるようにしたルーティングプロトコル拡張。おしまい。
と言う理解で今のところは良いでしょう。
draftはこちら: https://tools.ietf.org/html/draft-filsfils-rtgwg-segment-routing-01
ラベル配布機能をIGPが持つようになったことでLDPやRSVPを同時に動かさなくても良くなるかもしれなくて、管理プロトコルやコンフィグ量が減るとしたらそれはとっても嬉しいなって。
実装については Cisco IOS-XR 5.2.0 以降で使えるようになったようなので、何それ超最近じゃんと言う新鮮な気持ちで試すことが出来ます。
前回作成したXRvは5.3.0なので、動いてくれると信じてレッツトライ。
NW構成
HUB1とHUB2は、その地点でキャプチャを取得するために置かれています。
アドレス構成は大体こんな感じ。インタフェースのアドレスは数字の小さいルータから数字を割り当てていきます。
10.1.0.0/30の時、R1は10.1.0.1、R2は10.1.0.2と言う感じ。
初期コンフィグレーション
まずはIS-IS Segment Routingとは無関係のコンフィグレーションを入れます。
整理がてら書いているだけなので、ここは飛ばしても良いでしょう。
R1
|
|
R2
|
|
R3
|
|
R4
|
|
R5
|
|
R6
|
|
IS-IS Segment Routingコンフィグレーション
Segment Routingの設定もさらっと入れてしまいましょう。
私はこのあたりを参考にしましたが、まだコマンド体系が確立されていないのか一部違う部分があるかもしれません。とは言え、基本的にCiscoはドキュメントが揃っている方なので、公式ドキュメントだけでもなんとかなるでしょう。
- http://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k_r5-3/routing/configuration/guide/b_routing_cg53xasr9k/b_routing_cg53xasr9k_chapter_0110.html#task_DF3EF62AD9994D02BF3208A155C3BABD
- http://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-xr-software/products-installation-and-configuration-guides-list.html
- https://mellowd.co.uk/ccie/?p=5437
- http://iamjeffvader.com/2014/07/09/segment-routing-basics-on-ios-xrv/
R1
|
|
R2
|
|
R3
|
|
R4
|
|
R5
|
|
R6
|
|
パケットはどんな風に見えるか。
まずはR5からR6にpingを叩いてキャプチャしてみましょう。キャプチャポイントはHUB1のポート1を使います。
R5
|
|
おー、LDPの設定なんてしてないのにMPLSラベルがついてる!
http://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k_r5-3/routing/command/reference/b-routing-cr53xasr9k/b-routing-cr53xasr9k_chapter_0101.html#wp7857115470
装置ではどんな風に見えるか。
では今度は装置のテーブルではどう見えるかを確認する。
R5のルーティングテーブルはこんな感じ。普通。
|
|
個別の経路を詳細に見るとこう
|
|
Label: 0x55f0 (22000)
と書かれた部分がさっき確認したMPLSラベル。
本当にLDP動いてないの?実は裏で動いてるんじゃないの?みたいな考えがあるものの、出力上はやはり無効なようだ。
|
|
IS-ISのキャプチャを見るとこんな感じに拡張TLVが見えている。ちゃんと0x1770(6000)がヘキサビューワに見えている。
IS-ISのデータベースはこんな感じ
|
|
Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
と書かれている部分が利用可能なラベルの範囲。
16000スタートでprefix-sid index 6000を指定したら、そこは明示的にラベル番号22000になる。
逆に、ここでAdjacency Sidとなっている部分は、MPLSのデータベースを見ると存在を確認できる。
|
|
あとはこれにMPLS L3VPN/L2VPNを組み合わせることで、コンフィグは何やらコンパクトにまとまっているのにラベル配布もできている、と言うことができそうだ。
おしまい
先進的風味なSegment RoutingのIS-IS実装を眺めることが出来た。
設定は確かに簡素だったし、ラベル配布で全部やろうぜ、ってのはロマンティックある。
ラベル配布能力が他のプロトコルとどこまで協調動作するかについては、別途試す必要があると思うし、 ここでSDNとか言い始めたらちょっと収拾つかないんじゃないですかねって感じだけど。
それにしても、IPv6でも動けばいいのにさ。
しゃーなしですかねー。