18
SDNアプローチ によるBGP経路監視の提案 2015.12.12 @ttsubo

SDNアプローチによるBGP経路監視の提案

Embed Size (px)

Citation preview

SDNアプローチ によるBGP経路監視の提案

2015.12.12 @ttsubo

2

自己紹介

⚫ SDN/NFV技術に興味を持ったNWエンジニア ⚫ SDN時代にふさわしいNWエンジニアを目指して、  Python/Golang等を勉強中 ⚫ Ryu SDN Frameworkの、BGPSpeakerを  使いはじめて、BGPプログラミングの面白さに  目覚めつつあります。

@ttsubo

3

SDNって、流行ってますか?最近のSDN活用事例と言えば、 - OpenStack - OpenDaylight - OpenContrail - Ryu SDN Framework などのオープンソースをイメージするところでしょうか?

ネットワーク運用の自動化を目指す上、監視技術って あまり触れられてこないですよね?

でもチャレンジしてみました。

ネットワーク運用の自動化で目指したい理想像

4IPネットワーク

D-Plane

C-Plane

ネットワーク制御システム

フル自動化(監視・制御)

5LDP(OSPF)面

BGP面

・BGPピア間の通信経路は、OSPFにより解決 ・BGPのNEXTHOPへの到達性がシングルホップで対応できるよう  LDPによるMPLSトンネルを自動生成

RR RR

BGP/LDP面による階層化構造を構成BGP/MPLS-VPNでのC-Planeの特徴

6MPLS面

・BGPパス選定経路に関わるNEXT_HOPへの到達性は、  LDP等により自動生成されたMPLSトンネルにより解決

D-Plane

BGP/MPLS-VPNでのD-Planeの特徴

7

⚫ GRE/MPLS/VxLAN等の通信プロト  コル技術が一般化 ⚫ L2VPN閉域ネットワーク制御として  EVPN/VxLANがHotTopic! ⚫ L3VPN閉域ネットワーク制御として    BGP/MPLS-VPNは、実用化技術として  成熟の域

クラウド基盤でのNW活用事例

今回、BGP/MPLS-VPNに着目

8

BGP面

事業者A 事業者B

最近のクラウド動向として、事業者間NW接続による クラウド間連携のサービス提供が主流になりつつある。

BGP職人BBGP職人A

事業者をまたがったエンドエンド通信

最近のクラウド基盤の動向

事業者をまたがったBGP経路伝搬

事業者Bの BGP運用は 任せておけ!

事業者Aの BGP運用は 任せておけ!

SDN時代でも、 BGPの役割は

とても大切な領域です

9

BGP運用というと、なんとなく「BGP職人」という言葉を連想してしまうのは、私だけでしょうか? BGP職人は、事前に策定されたBGP運用ポリシーに従って、ポリシー・ルーティングに関わるルートマップ等コンフィグを投入することができる存在であり、想定どおり、ポリシー・ルーティングが動作されているかを確認するため、ベンダ固有のCLIコマンドを駆使して細かなBGP制御を確認することを日々の業務として実施する。そんなイメージを、「BGP運用」からは、連想してしまいます。さらに、不測な事態としてNWトポロジが安定動作していないことが判明した際には、BGP等プロトコル動作の振る舞いから、障害箇所を推測して、長年の運用経験から導き出された障害対策案の中からベストな方法で障害復旧を施すことができるネットワークの達人こそが、大規模ネットワーク運用を担っていることでしょう。

BGP運用って、どんなイメージですか?

10

BGP運用の自動化を目指すには?BGP職人の運用経験を踏まえた、運用の自動化を実現するには、

●課題1「BGPコンフィグ設定通りに、BGP動作      していることを、検証する仕組み」 ●課題2「実ネットワークでのBGP動作履歴を、         オペレーション観点で、ログ管理できる      仕組み」 ●課題3「BGP障害解析として、過去のBGP障害      履歴から障害箇所を推定する仕組み」

が備わっているBGPシミュレーション機能を有する運用システムが必要になるのでしょう。

11

BGP監視技術の候補

IETF会合では、BGP監視手法として、 以下の技術提案されている(1) BGP-LS

(2) BMP

今回、BMPに注目

North-Bound Distribution of Link-State and TE Information using BGP (draft-ietf-idr-ls-distribution-xx)

BGP Monitoring Protocol(draft-ietf-grow-bmp-xx)

12

BMPによるBGPモニタリング

BMP Server

mpBGP mpBGP BGPBMP Client

BMP

BMP Client機能を有する各BGPルータでは、受信したBGP UPDATEメッセージにより、adj-RIB-inの経路情報の更新を契機として、BMP情報の中に、BGP UPDATEメッセージをセットして、BMP Serverに通知するようになります。 よって、BMP Server側では、BGPモニタリングが可能となります。

mpBGP

BGP経路追加 された!BGP

経路追加

13

Ryu実践活用によるBGP経路監視プロトタイプ

RyuBMP/BGP活用により、BGP経路の可視化ツールのプロトタイプを作ってみた。(1) RyuBMP活用によるBGP経路伝搬のログ管理 実ネットワークから収集したBMP情報から、BGP経路を抽出してログ管理する仕組み

(2) RyuBGP改造によるBGP経路の可視化 RyuBGPのベストパス選定機能を活用して、BGP経路ログから、BGPテーブルを構築して、オペレータ観点での可視化する仕組み

14

BGP経路監視ツール

BMP Station

BGP経路監視ツール構成

RyuBGP

"172.16.0.0/24" 経路追加

BGP テーブル

IPネットワーク

C-Plane

mpBGP mpBGP mpBGP

BMP

15

実際にBGP経路監視ツールを動かしてみる

16

BGP1>show bgp vpnv4 unicast all BGP table version is 68, local router ID is 10.0.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found

Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 65010:101 *> 172.16.0.0/24 192.168.101.101 0 65010 ? * i 192.168.104.102 0 100 0 65010 ? *>i 192.168.1.0 192.168.105.102 0 100 0 ? *> 192.168.2.0 192.168.101.101 0 65010 ? * i 192.168.104.102 0 100 0 65010 ?

CSR1000v (IOS-XE)

CSR1000v側でのBGPテーブル確認

17

BGP経路監視ツール

BMP Station

RyuBGP BGP テーブル

$ ./get_rib.sh

Status codes: * valid, > best Origin codes: i - IGP, e - EGP, ? - incomplete Network Labels Next Hop Reason Metric LocPrf Path *> 65010:101:192.168.2.0/24 [20] 192.168.101.101 ASN 65010 ? * [20] 192.168.104.102 0 100 65010 ? *> 65010:101:172.16.0.0/24 [22] 192.168.101.101 ASN 65010 ? * [22] 192.168.104.102 0 100 65010 ? *> 65010:101:192.168.1.0/24 [18] 192.168.105.102 Only Path 0 100 ?

BGP経路監視ツール側でのBGPテーブル確認

CSR1000vのBGPテーブルと、bgpSimulatorのBGPテーブルは、同じBGPパス情報を保持していることが確認できました。

18

https://github.com/ttsubo/docker-simpleRouter/tree/bgpSimulator

BGP経路監視ツール”bgpSimulator”をお手軽に試してみるには?CSR1000vなどの実際のBGPルータを配備して、NWトポロジを構築するのは、なかなか手間がかかる話です。 RyuBGPには、BMP Client機能を有しているので、RyuBGPを活用して、BGP/MPLS-VPN面を構築した上で、もっと、手軽にBGP経路監視ツール"bgpSimulator"の動作を試してみることができるように、dockerコンテナでの実験環境を用意しました。