Segment Routing Chasm を越えてついに実 段階へ そしてこれからの Network Programmability MPLS 編 KDDI 株式会社 宮坂拓也 1
本発表では MPLS-TE を利 したバックボーンネットワークへ Segment Routing() を導 する上での モチベーション : どうして れたいのか? マイグレーション : どうやって れるのか? オペレーション : 運 で気をつけることは? を紹介します 最後に ネットワークアーキテクチャのあるべき姿について思いを馳せたいと思います 2
現在の KDDI バックボーンネットワーク OSPFv2 area 0 FTTH IP 電話 LTE VoLTE RSVP で LSP 確立 法人 IP-VPN 1. 各サービスのエッジルーターが他拠点のエッジルーターへ MPLS-TE LSP を確 し パケットを転送 LSP を確 するため 全ルータは同 の OSPFv2 area 0 に所属 2. コアルータでは全てのサービスのパケットを MPLS ラベルに従って転送する こんな MPLS-TE ネットワークに を れるモチベーションは? https://www.janog.gr.jp/meeting/janog36/program/kddi 3
を導 するモチベーション サービス的観点 ready エッジ側で を利 したサービスをいつでも展開できるように コア側は準備しておく は Source Routing = エッジ側が主導! ネットワーク的観点 ネットワークのシンプル化 RSVP/LDP を使わず IGP(OSPF, IS-IS) だけ ECMP が簡単 ( 詳細は次ページから ) 4
ECMP : MPLS-TE vs MPLS-TE における ECMP における ECMP 10 Node SID=10 MPLS-TE では 複数リンクにトラフィック分散したい場合 全リンクを通るように LSP を確 しないといけない LSP の数が膨 となり 複雑なネットワークとなる 間で LAG をしてしまうと 特定のリンクだけ通したいという要求に応えられない では Node-SID を使うことで勝 に ECMP に従い分散してくれる! 特定リンクに乗せたければ Adj-SID を使えばいい! 5
実際にどれだけ減るのか実機で てみた OSPFv2 area 0 FTTH IP 電話 LTE 系のエッジルーターで てみた LTE VoLTE RSVP で LSP 確立 法人 IP-VPN とあるエッジルーターの MPLS-TE LSP 数 :248 本 ECMP するために同 ノード間でも複数 LSP を確 -TE を使った場合の LSP 数 :60 本 同 ノード間は 1 つの LSP のみで OK 約 1/4 の本数ですむ! 6
( 再 ) を導 するモチベーション サービス的観点 ready エッジ側で を利 したサービスをいつでも展開できるように コア側は準備しておく は Source Routing = エッジ側が主導! ネットワーク的観点 ネットワークのシンプル化 RSVP/LDP を使わず IGP(OSPF, IS-IS) だけ ECMP が簡単 :LSP の本数が激減するみたい! 7
MPLS-TE からのマイグレーション OSPFv2 area 0 FTTH IP 電話 LTE VoLTE RSVP で LSP 確立 法人 IP-VPN 各サービスのエッジルーターが他拠点のエッジルーターへ MPLS-TE LSP を確 し パケットを転送 LSP を確 するため 全ルータは同 の OSPFv2 area 0 に所属 求められることは トラフィックロスなく へマイグレーションすること 8
1. IGP で を動作 OSPFv2 area 0 with FTTH IP 電話 LTE VoLTE RSVP で LSP 確立 法人 IP-VPN 各ルーターの OSPFv2 において Segment Routing を有効化し Node-SID/Adj-SID などを広報する この時点でネットワークとしては を利 可能となる 残っているのは MPLS-TE LSP の移 9
2. -TE LSP を設定する OSPFv2 area 0 FTTH IP 電話 LTE VoLTE RSVP で LSP 確立 法人 IP-VPN 各エッジルーターで -TE パスを設定する 設定 法としては以下 2 つ ルーターにコンフィグとして設定する PCE から -TE パスを設定する この時点では -TE へトラフィックを流さないでおく 10
3. -TE パスへの切り替え OSPFv2 area 0 FTTH IP 電話 LTE VoLTE RSVP で LSP 確立 法人 IP-VPN 各エッジルーターで MPLS-TE パスから -TE パスへ切り替えを う 切り替え後に不要となった MPLS-TE パスは削除する 11
マイグレーションまとめ MPLS-TE から -TE へのマイグレーションは 較的シンプルにいけそう! しかしながら MPLS-TE で帯域確保した運 をしている場合は注意が必要 -TE それ には帯域確保する機能は無いが 時的に MPLS-TE と共存する状態が出てくる 以下の解決策がある 静的に MPLS-TE/-TE で使う帯域を分ける PCE で帯域管理を中央制御する で利 される帯域を IGP で広報する over RSVP-TE で消費されるトラフィック量をTEDへ反映する draft-ietf-teas-sr-rsvp-coexistence-rec 12
運 で気をつけないといけないことは? -MPLS 運 上の注意点 -MPLS は MPLS データプレーンをそのまま使うというが 微妙な違いはある Global SID GB その違いに関して 運 上けっこう気をつけないといけない また v6 と -MPLS の相互接続はできる? 13
SID を被らせちゃダメ! Node-SID index = 1 GB=[1000-2000] Node-SID index = 2 GB=[1000-2000] Node-SID index = 3 GB=[1000-2000] Node-SID index = 1 GB=[1000-2000] R1 R2 R3 R4 Node-SID などはドメイン内で Global な値である必要がある つまり 被っちゃダメ 上の例では R1 と R4 が被ってしまっている 被った場合に どちらを有効化するかという規定はある draft-ietf-spring-conflict-resolution しかしながら コンフィグなどで設定する index 値は ただの整数値 ( 上のように 1 とか ) なので 管理が 変 excel 管理表?( いやだー 何らかの 動プロビジョニングシステムが欲しいよね 14
GB は揃えるべき? Node-SID index = 1 GB=[100-200] Node-SID index = 2 GB=[100-200] Node-SID index = 3 GB=[300-400] Node-SID index = 1 GB=[100-200] R1 R2 R3 R4 R4 宛てパケット 101 301 GB が異なると 実際にパケットに付与される MPLS ラベルがホップによって異なってしまう もちろん これでも問題なく動作する しかし GB を揃えた が運 は楽だし の draft にも推奨されている Using the same GB on all nodes within the domain ease operations and troubleshooting and is expected to be a deployment guideline. draft-ietf-spring-segment-routing ベンダーによって GB のデフォルト値は異なるので マルチベンダー環境で揃えたい場合は 全ルーターで GB の設定が必要 15
ラベルスタック数の増加 Node-SID index = 1 GB=[100-200] Node-SID index = 2 GB=[100-200] Node-SID index = 3 GB=[100-200] Node-SID index = 1 GB=[100-200] R1 R2 R3 R4 104 234 103 123 104 234 では Source 側で何段もラベルスタックできる -TE や Service Function Chaining(SFC) を でやるなど MPLS ラベルスタック数が増 することで以下の問題がある ルーターが対応できる最 ラベルスタック数を超えてしまう IGPなどで最 ラベルスタック数 (MSD) を広報してそれを超えないようにラベルスタックするという提案は有る draft-ietf-ospf-segment-routing-msd インターフェースのMTUを超えてしまい dropする MTU を 分 きくするしかなさそう? 16
v6 -MPLS v6 MP-BGP (6PE) R5 with label 1000 Node-SID index = 1 GB=[100-200] R1 R1 発 v6 Hdr SA=R1, DA=R5 Hdr (R6,R5) SL=1 Payload R2 R2 発 label:101 6PE label:1000 v6 Hdr SA=R1, DA=R5 Hdr (R6,R5) SL=1 Payload R3 R4 R4 発 6PE label:1000 v6 Hdr SA=R1, DA=R5 Hdr (R6,R5) SL=1 Payload R5 R5 発 v6 Hdr SA=R1, DA=R6 Hdr (R6,R5) SL=0 Payload R6 両端のエッジで v6 をおこない コア側は -MPLS のみ動作する場合 6PE などを いて通常通り IPv6 経路情報を広報すれば仕様上は問題なく動作するはず! むしろ -MPLS でなく通常の MPLS ネットワークでも問題なく v6 の 橋渡し ができるはず!( これが v6 のいいところでもある ) 17
オペレーションまとめ -MPLS 運 上の注意点 SIDを被らないようにすること GBはドメインで揃えた がいい ラベルスタッキングの増 への対処を気をつける v6 と -MPLS の相互接続はできそう! 18
最後に : あるべきネットワークアーキテクチャ コアルーター側はなるべくシンプルに そういう観点では Segment Routing は最 だと思います Protocol は IGP だけで OK LFIB は基本的には Network Topology の情報だけで OK MPLS-TE ではエッジから張られる全ての LSP の state を持ってしまう 複雑なことはエッジルーター側で う サービスに特化した TE ポリシーを実施する ルーターだけでは厳しい場合は PCE などを いる (1) VPN のユーザーから遅延 5msec 以内を要求されたよ PCE (2) [R3,R4,R2] がいいよ! R1 R2 102 104 R3 R4 102 おしまい! 19