オープンソースのネットフロー ツールの 運 用 JANOG36 荒 井 則 之 <maoke@bbix.net> Paolo Lucente <paolo@pmacct.net> JANOG36 mee=ng, Kitakyushu Jul 2015
pmacctの 概 要
pmacctはオープンソース 無 料 GPLソフトである libpcap MySQL PgSQL SQLite sflow NetFlow IPFIX pmacct MongoDB BerkeleyDB tee sflow BGP maps IGP memory tables flat-files RabbitMQ NetFlow IPFIX hip://www.pmacct.net/
幅 広 く 利 用 できる
pmacct: 技 術 面 以 外 のポイント 10 年 以 上 歴 史 を 持 つプロジェクト 二 杯 目 以 降 その 名 前 のつづりを 言 うのは 無 理 無 料 オープンソース 独 立 積 極 的 に 開 発 中 イノベーションが 導 入 されている 大 手 SPにも よく 実 装 されてる オペレーターコニュニティーニーズに 近 い トラフィック 集 計 ツールを 目 指 している
技 術 の 特 徴 (1/3) 機 能 追 加 しやすいアーキテクチャ 新 しい 集 計 方 法 やバックエンドの 直 接 追 加 ができる どんな 集 計 メソッドでもどんなバックエンドと 連 携 を 許 可 する 抽 象 レイヤ マルチプロセスとマルチスレッディング(まだ 粗 いけど )にも 対 応 複 数 のプラグインがランタイムでインスタンスを 生 成 し それぞれ 別 々で 設 定 可 能
技 術 の 特 徴 (2/3) BGP スレッド コアプロセス 抽 象 層 NetFlow スレッド Pipe Pipe MySQL プラッグイン プラッグイン Printプラッグイ ン (フラットファ イルへ 出 力 ) 観 察 対 象 ネットワーク バックエンド
技 術 の 特 徴 (3/3) 一 般 的 なデータ 削 減 方 法 例 えば: データアグリゲーション タグ 付 けとフィルタリング サンプリング 集 計 しているトラフィックデータセットから 複 数 の ビューを 抽 出 が 可 能 例 えば: セキュリティや 証 拠 捜 査 のため アグリゲーションせず フラットファイル( 生 データ)で 出 力 キャパシティプランニングのため [ <ingress router>, <ingress interface>, <BGP next- hop>, <peer des=na=on ASN> ]のようなトラフィックマトリックスを 作 成
NeYlixユーズケース (ピアリング 分 析 トラフィック 可 視 化 )
Egress BGP hacks 4 接 続 程 度 の 対 外 接 続 でも 対 応 できないほど 多 いトラ フィックが 発 生 している 異 なるASNを 経 由 するBGP マルチパスを 運 用 している CACHES CACHES AS40027 CACHES AS40027 CACHES AS40027 CACHES AS40027 CACHES AS40027 AS40027 CACHES CACHES AS40027 CACHES AS40027 CACHES AS40027 CACHES AS40027 CACHES AS40027 AS40027 TRANSIT #1 1/8 MX or ASR AS2906 router TRANSIT #2 2/8 3/8 TRANSIT #3 2/8 IX PEER 192.168.1.0/24 TRANSIT #4
BGP add- pathについて BGPの 拡 張 の 一 つ 既 存 のパスを 新 しいもの と 置 き 換 えないようにして 複 数 パスの 経 路 広 報 を 許 可 します Dra] at IETF: dra]- iey- idr- add- paths- 09
BGPマルチパスで 唯 一 のベストパスのみトラフィックを 打 つことではない pmacctはbgpフィードからベストパスしか 受 けてないことだった BGP Multi-path 課 題 192.168.1.0/24 [BGP/170] 3w0d 01:19:58, MED 100, localpref 200 AS path: 789 I, validation-state: unverified > to 10.0.0.1 via ae12.0 [BGP/170] 3w0d 01:15:44, MED 100, localpref 100 AS path: 123 456 789 I, validation-state: unverified > to 10.0.0.2 via ae8.0 [BGP/170] 3w0d 01:13:48, MED 100, localpref 100 AS path: 321 654 789 I, validation-state: unverified > to 10.0.0.3 via ae10.0 [BGP/170] 3w0d 01:18:24, MED 100, localpref 100 AS path: 213 546 789 I, validation-state: unverified > to 10.0.0.4 via ae1.0 Traditional BGP to pmacct * 192.168.1.0/24 10.0.0.1 100 200 789 I 12
作 動 中 のBGP add- path BGP add- pathは 複 数 のBGP mul=- pathベストパスが 見 える BGP Multi-path 192.168.1.0/24 [BGP/170] 3w0d 01:19:58, MED 100, localpref 200 AS path: 789 I, validation-state: unverified > to 10.0.0.1 via ae12.0 [BGP/170] 3w0d 01:15:44, MED 100, localpref 100 AS path: 123 456 789 I, validation-state: unverified > to 10.0.0.2 via ae8.0 [BGP/170] 3w0d 01:13:48, MED 100, localpref 100 AS path: 321 654 789 I, validation-state: unverified > to 10.0.0.3 via ae10.0 [BGP/170] 3w0d 01:18:24, MED 100, localpref 100 AS path: 213 546 789 I, validation-state: unverified > to 10.0.0.4 via ae1.0 BGP ADD-PATH to pmacct * 192.168.1.0/24 10.0.0.1 100 200 789 I 10.0.0.2 100 100 123 456 789 I 10.0.0.3 100 100 321 654 789 I 10.0.0.4 100 100 213 546 789 I
NetFlow/IPFIXとBGP add- path (1/2) OK N 個 のベストパスが 見 えるようになった でも NeYlowトラフィックをどうやったらそのパ スにマッピングできるの? トラフィックを 複 数 のパスに 分 散 する 作 業 をやるなん て 面 倒 くさい NetFlowが 教 えてくれるさ!NetFlowのBGP next- hop は BGPデータとトラフィックデータを 結 びつける 選 別 子 として 使 える NetFlowのBGP Nexthopが 実 際 のパス 決 定 に 使 える かどうか 最 初 は 心 配 したが o 複 数 ベンダーの 製 品 でも 正 確 で 合 理 的 だと 分 かった
NetFlow/IPFIXとBGP add- path (2/2) NetFlow SrcAddr: 10.0.1.71 DstAddr: 192.168.1.148 NextHop: 10.0.0.3 InputInt: 662 OutputInt: 953 Packets: 2 Octets: 2908 Duration: 5.112000000 sec SrcPort: 80 DstPort: 33738 TCP Flags: 0x10 Protocol: 6 IP ToS: 0x00 SrcAS: 2906 DstAS: 789 SrcMask: 26 (prefix: 10.0.1.64/26) DstMask: 24 (prefix: 192.168.1.0/24) BGP ADD-PATH to pmacct * 192.168.1.0/24 10.0.0.1 100 200 789 I 10.0.0.2 100 100 123 456 789 I 10.0.0.3 100 100 321 654 789 I 10.0.0.4 100 100 213 546 789 I 15
実 装 について 複 数 のpmacctサーバを 様 々な 場 所 で 配 置 BGP ADD- PATHSはルータとpmacct serversの 間 で 設 定 セッションはiBGP, RR- clientとして 設 定 Juniper ADD- 7 (maximum) Cisco ADD- ALL NetFlowをpmacctサーバにエクスポートさせる NetFlow v5, v9 と IPFIXが 混 在
Spo=fyユーズケース (SDN)
旅 行 中 Spo=fyを 利 用 する 際 例 :Spo=fyデータセンター@ストックホルム プレフィックス 合 計 :~519k ピアから 受 け 取 るプレフィックス 数 :~150k 一 日 あたりの 平 均 Ac=veプレフィックス 数 :~16k 例 の 説 明 : Spo=fyはユーザに 音 楽 を 配 信 している だいたい 一 番 近 いデータセンターから 配 信 される なんでサンノゼのSpo=fyデータセンターが $EU_COUNTRYのユーザへどうやって 届 けるか 知 らな ければならないのだろうか?
私 たちのゴール 必 要 な ルートをRIBから 選 ばせ 汎 用 ASICを 持 つ スイッチのFIBにも 適 用 できるようにする その 結 果 汎 用 ASICに 実 装 できるルートの 数 まで 経 路 数 を 削 減 できる
Transit 0.0.0.0/0 Internet Switch IXP Peers prefixes BGP Controller Transit default route Internet Switch FIB IXP Peer Internet Switch pmacct BGP pmacct sflow Peers prefixes & sflow pmacct Spo=fy AP
pmacct Transit Internet Switch IXP 2. Please, install these prefixes I got from pmacct. BGP Controller pmacct BGP sflow pmacct BGP BGP TopN* Peers prefixes & sflow 1. These are the topn prefixes based on sflow data. pmacct Spo=fy AP * N is a number close to the maximum number of entries that the FIB of the Internet Switch can support
Spo=fy AP Transit pmacct Internet Switch 1. $USER connects with $IP. IXP Spo=fy AP 3. Install $PREFIX (if it wasn t already). BGP Controller 2. Please, make sure $PREFIX containing $IP is installed. $USER $USER $IP $PREFIX FIB pmacct TopN BGP
内 部 構 造
結 果 :Top 1kルート (1/4)
結 果 :Top 5kルート (2/4)
結 果 :Top 15kルート (3/4)
結 果 :Top 30kルート (4/4)
実 装 について デモはSpo=fyストックホルムデータセンターで 稼 働 中 Netnodに 接 続 そこでルート 情 報 を 収 集 しているが インターネッ トルータに 変 更 することはまだ 行 っていない Spo=fyは 近 いうちにヨーロッパの 重 要 IXPと 一 緒 に パイロット 試 験 を 実 施 する 予 定
感 謝 Elisa Jasinska elisa@bigwaveit.org David Barroso dbarroso@spo=fy.com
まとめ
さらなる 情 報 (1/2) hip://www.pmacct.net/ dbarroso_plucente_waltzing_v0.5.pdf Spo=fyユーズケース 詳 細 hip://www.pmacct.net/nanog61- pmacct- add- path.pdf NeYlixユーズケース 詳 細 hip://www.pmacct.net/ Lucente_collec=ng_neYlow_with_pmacct_v1.2.pdf pmacctのチュトーリアル
さらなる 情 報 (2/2) hip://www.pmacct.net/lucente_pmacct_uknof14.pdf 遠 隔 測 定 とBGPについて hip://ripe61.ripe.net/presenta=ons/156- ripe61- bcp- planning- and- te.pdf 遠 隔 測 定 トラフィックマットリックス キャパシティプラン ニング トラフィックエンジニアリング hip://wiki.pmacct.net/officialexamples pmacctのコンパイル 及 びクイックスタート 案 内 hip://wiki.pmacct.net/implementa=onnotes pmacctの 開 発 について (RDBMS メンテナンスなど)
オープンソースのネットフロー ツールの 運 用 JANOG36 荒 井 則 之 <maoke@bbix.net> Paolo Lucente <paolo@pmacct.net> JANOG36 mee=ng, Kitakyushu Jul 2015