4-byte AS の世界へようこそ JANOG0 (007.7.1) 外山勝保 (*1) 藤崎智宏 新延史郎 松本存史 NTT 情報流通プラットフォーム研究所 (*1) 現所属 : インターネットマルチフィード株式会社
本日の論点 インターネットサービスを継続して提供する プロバイダの目線で 4 バイト AS への対応を議論したい 4 バイト AS への対応 ( 移行 ) は容易なのか 一気に変える? それとも徐々に変えていける? 4 バイト対応 ( 移行 ) するとしたらいつ頃がよい? 設備計画 工事計画 お客様への連絡 などもあるし そもそもいま 何か問題は生じていないか? 対策は? などなど みなさんと情報共有 議論したいと思います 007 (c) Nippon Telgraph and Telephone Corp.
アウトライン (1) 4 バイト AS について (1.1) 背景 (1.) 4バイトASの基本的な仕組み (1.3) 4バイトAS 割当スケジュール ()4 バイト AS の現状 (3) プロバイダの対応 (4) 課題と議論 007 (c) Nippon Telgraph and Telephone Corp. 3
(1.1) 背景 : AS 番号の枯渇 (1) AS 番号の消費トレンド議論 000 年頃 すでに Geoff Huston 氏 Tony Bates 氏 J.Scott 氏などが AS 番号についても割当トレンドと将来予測を実施 Geoff Huston 氏は 当時 指数関数的に伸びると 005 年には AS 番号は足りなくなるペースと予想した 70000 60000 50000 40000 30000 Model 1 Model Model 3 Values 0000 10000 Geoff Huston Tracking the Internet s BGP table, ISMA workshop 000, CAIDA http://www.caida.org/workshops/isma/001/ta lks/huston/index.htm 0 8-Oct-95 11-Mar-97 4-Jul-98 6-Dec-99 19-Apr-01 1-Sep-0 14-Jan-04 8-May-05 10-Oct-06 007 (c) Nippon Telgraph and Telephone Corp. 4
(1.1) 背景 AS 番号の枯渇 () 近年の予測 005 年 8 月当時の予測では 010 年後半頃に枯渇 AS 番号は 16 ビット空間 上限 64511 個 (0 とプライベート AS を除く ) 64511 Goeff Huston, Exploring Autonomous System Numbers, ISP Column, Aug 005 http://www.potaroo.net/ispcol/005-08/as.html 007 (c) Nippon Telgraph and Telephone Corp. 5
(1.) AS 番号の枯渇対策技術 -- 4 バイト化 IETF idr working group で長ーく議論 最初のドラフト draft-chen-as4bytes-00 は 000 年 11 月に submit されている この時点で New AS PATH (AS4_PATH) は盛り込まれていない 000 年 1 月の IETF49 で議論 idr working group 001 年 1 月に draft-ietf-idr-as4bytes-00 FC 直前の I-D: draft-ietf-idr-as4bytes-13 007 年 5 月に FC4893 に 007 (c) Nippon Telgraph and Telephone Corp. 6
(1.) AS 番号の 4 バイト化 設計目標 既存の バイト対応 BGP スピーカには影響を与えないこと 4 バイト化の要点 BGP でピアを張る相手が 4 バイトかどうかを確認する OPEN message の capability チェックを使う 4 バイト対応ルータは AS 番号をすべて 4 バイトとして取り扱う AS_PATH 属性 および AGGEGATO 属性 4 バイト対応ルータが バイト対応ルータと通信する際に 4 バイト側がすべてをケアする バイト側へ経路広告する際に AS_PATH 属性や AGGEGATO 属性の中を バイトへ書き換える AS4_PATH 属性を新たに定義 (Optional Transitive) し 4 バイトで表現した AS PATH を バイト対応ルータが スルー して流せるようにする バイト対応ルータから受け取った AS_PATH( バイト表現 ) と スルー された AS4_PATH 属性から 4 バイト対応ルータは 4 バイトの AS_PATH を復元する 007 (c) Nippon Telgraph and Telephone Corp. 7
(1.) 4 バイト AS のしくみ 最初のネゴシエーション (4 バイト バイト ) New BGP Speaker Old BGP Speaker.3 4710 My AS Capability Code Length 3456 65 4.3 ASN Capability (65) を知らないから 相手は4バイト対応していない OPEN message NOTIFICATION message OPEN msg err 7 Unsupported 65 4 OPENと同じ.3 情報を返す 007 (c) Nippon Telgraph and Telephone Corp. 8
(1.) 4 バイト AS のしくみ 最初のネゴシエーション ( バイト 4 バイト ) New BGP Speaker Old BGP Speaker.3 4710 OPEN message OPEN message 4710 Capability (65) が入っていないから 相手は 4 バイト対応していない 007 (c) Nippon Telgraph and Telephone Corp. 9
(1.) 4 バイト AS のしくみ (AS_PATH の扱い ) Origin 4 バイト 19.0..0/4 AS1.1 AS_PATH 属性 : 各 AS を 4 バイトで表現 1.1 相手が 4 バイト AS 対応であれば AS_PATH = 1. 1.1 となる バイト長の AS_PATH と 4 バイト AS_PATH を保存する AS4_PATH 属性に分けて広告 4 バイト AS1. AS_PATH 属性 : 各 AS を バイトで表現 AS4_PATH 属性 : 4 バイト AS 列を保存 3456 3456 1. 1.1 バイト AS4697 optional transitive 隣接 AS へそのまま伝搬させる 4697 3456 3456 1. 1.1 バイト AS4710 4710 4697 3456 3456 1. 1.1 4 バイト AS1.3 バイト長のAS_PATHと 4バイト AS_PATHを保存したAS4_PATH 属性から 4バイト長のAS_PATH を復元する 007 (c) Nippon Telgraph and Telephone Corp. 10 1.3 0.4710 0.4697 1. 1.1 AS_PATH 属性 : 各 AS を 4 バイトで表現
(1.) 4 バイト AS のしくみ ( ループ検出 ) AS-PATH のなかに自 AS が含まれていることで ループを検出する バイト AS の世界でも <->4 バイト変換がきちんと行われていれば 自 AS を as-path に発見してループ検出できる ただし 4 バイト AS が含まれている経路 (AS3456 が含まれている ) を バイト AS にて aggregate すると その後 aspath が復元できずループ検出できない場合がある as-path 中に AS3456 が飛び飛びで複数含まれていても ループとはみなさない 例 : [4byte] 4697 4710.3.7 4713. 914 [byte] 4697 4710 3456 3456 4713 3456 914 ループではない 007 (c) Nippon Telgraph and Telephone Corp. 11
(1.3) 4 バイト AS の配布スケジュール You are here! 1.5 年後 奥谷泉, IPアドレスのルール作りとオペレーションコミュニティ, JANOG18, Jul. 006 http://www.janog.gr.jp/meeting/janog18/files/ipadr_okutani.pdf 007 (c) Nippon Telgraph and Telephone Corp. 1
アウトライン (1) 4バイトASについて () 4バイトASの現状 (.1) 4バイトAS 割当状況 (.) 4バイトASに係わるアドレス広告状況 (.3) 4バイトAS 対応ソフトウェア (3) プロバイダの対応 (4) 課題と議論 007 (c) Nippon Telgraph and Telephone Corp. 13
4 バイト AS の割り当て IANA から I に割り当て委譲済 Specially designated Autonomous System Numbers: 3456 AS_TANS [FC4893] 割り当て (007 年 7 月 4 日現在 ) 範囲 割り当て 1.0-1.65535 eserved.0-.103 APNIC 3.0-3.103 IPE NCC 4.0-4.103 LACNIC 5.0-5.103 AfriNIC 6.0-6.013 AIN 65535.65535 eserved AS.5 - AS.14 は,JPNIC-4Byte-ASBLOCK-AP として委譲されている 007 (c) Nippon Telgraph and Telephone Corp. 14
4 バイト AS 取得状況 007 (c) Nippon Telgraph and Telephone Corp. 15
4 バイト AS の状況 ~IPv4 広告 ~ 5/ 6/6 1/17 初観測 007 (c) Nippon Telgraph and Telephone Corp. 16
4 バイト AS の状況 ~IPv4 広告 ~ 007 年 7 月 10 日 Network Path > 84.05.88.0/4 4697 914 1654 3.7 i > 145.15.0.0/0 4697 914 3549 1103 115 3.5 i > 19.6.93.0 4697.3 i > 193.31.7.0 4697 914 3561 173 5539 3.3 i > 0.55.47.0 4697 914 4713 516 7667.6 i 007 年 5 月 日連続した4バイトAS 03.10.63.0 4710 4713 914 3561 4637 4637 4637 4637 4637 4637 4637 4637 4637 11..0 i > 03.10.63.0 4697 914 3561 4637 4637 4637 4637 4637 4637 4637 4637 4637 11..0 i 007 年 6 月 6 日 連続した 4 バイト AS/ バイト AS をトランジット > 57.87..0/4 4697 914 5511 874 4171 i 57.87..0/4 4710 4713 914 3561 4637 4637 4637 4637 4637 4637 4637 4637 4637 11..0 1654 16186 874 4171 i 007 (c) Nippon Telgraph and Telephone Corp. 17
4 バイト AS の状況 ~IPv6 広告 ~ 6/1 個目 4/1 初観測 007 (c) Nippon Telgraph and Telephone Corp. 18
4 バイト AS の状況 ~IPv6 広告 ~ 007 年 7 月 10 日 > 001:df0:::/48 4697.3 i > 001:4810:000::/35 4697 914 33437 6.3 i 007 (c) Nippon Telgraph and Telephone Corp. 19
(.3) 現在使える 4 バイト AS ルータ IOS X3.4.0 以降 (CISCO CS-1,GS) JUNOSe (Juniper E-series) OpenBGPD (3.9, 4.0) + 4-byte AS patch Quagga (0.99.6, 0.99.7) + 4-byte AS patch 007 (c) Nippon Telgraph and Telephone Corp. 0
各社ルータの 4 バイト AS 対応状況 ベンダルータ等 4 バイト AS 対応版出荷予定時期 AlaxalA - - リリース時期検討中 CISCO CS-1, GS* IOS-X 3.4 以降対応済み Force10 E100, E600, E600i, E300 FTOS 7.6.1 007 年 11 月予定 Foundry NetIron XM 008 年 Q 予定 NetIron MLX BigIron X 008 年 Q 予定 008 年 Q3 予定 Juniper E-Series JUNOSe 対応済み T,M-Series JUNOS9.1 008 年 Q 予定 *GS: Processor=PP/PP, Interface Card=Engine3 007 年 7 月 6 日問い合わせ時点での情報 007 (c) Nippon Telgraph and Telephone Corp. 1
実装比較 : quagga のメモリ使用量 実験環境 リフレクタに, 同スペックの PC を二台接続し, 4byte AS 対応 / 非対応の quagga を同時にスタートさせた. bgpd プロセスのメモリ使用量を 10 分おきに観測 eflector 4-byte 対応 4-byte 非対応 007 (c) Nippon Telgraph and Telephone Corp.
実装比較 : quagga のメモリ使用量 Kbytes IPv4 約 万経路で差は 6MB 程度 分 007 (c) Nippon Telgraph and Telephone Corp. 3
アウトライン (1) 4 バイト AS について () 4 バイト AS の現状 (3) プロバイダの対応 (3.1) バイト AS の世界に居続けるとどうなるか? 経路フィルタをかける点で問題はあるか? (3.) プロバイダは バイト AS の世界から 4 バイト AS の世界に簡単に移行可能なのか? 具体的には ネットワークを止めずに バイト対応から 4 バイト対応化できるのか? (4) 課題と議論 007 (c) Nippon Telgraph and Telephone Corp. 4
(3.1) バイト AS の世界に居続けると 4 バイト AS がすべて AS3456 に見えてしまう 問題点 MED による経路選択に影響が出る可能性 FC4893 にも指摘あり 通常 異なる隣接 AS からの経路の MED 値は比較されない しかし 隣接する AS に 4 バイト AS が複数あると 同じ AS として扱ってしまう AS PATH フィルタで区別できない AS PATH フィルタを用いる際に 4 バイト AS を明示的に記述できない 例 : AS.3 と AS.7 が同じ上流プロバイダの場合 AS.3 の Origin の経路を AS.7 から流しても バイトの世界では区別できない 007 (c) Nippon Telgraph and Telephone Corp. 5
(3.1) いつかは バイト AS の世界から 4 バイト AS の世界へ移行する必要がある 4 バイト AS 移行 の意味 例えば AS4697 AS.3 へ変えるのではなく AS4697 内のルータを 4 バイト AS 対応のソフトウェアに更新し AS 0.4697 化するという意味 007 (c) Nippon Telgraph and Telephone Corp. 6
(3.) プロバイダの 4 バイト AS 移行は容易か? ebgp での接続はうまくいくらしい しかしプロバイダに取っては内部の移行も重要 プロバイダの内部の BGP 構成には フルメッシュ (full-mesh) リフレクタ (reflector) コンフェデレーション (confederation) などがある うまく移行可能か実験してみた フルメッシュ リフレクタ ( クライアント側 リフレクタ側 ) 007 (c) Nippon Telgraph and Telephone Corp. 7
フルメッシュの場合 フルメッシュ参加の BGPスピーカ1 台を 4 バイト AS 対応にする 4 007 (c) Nippon Telgraph and Telephone Corp. 8
リフレクタのクライアント側の場合 4 バイト AS 対応にする 4 eflector 構成の BGP スピーカ 1 台を 007 (c) Nippon Telgraph and Telephone Corp. 9
リフレクタの場合 4 バイト AS 対応にする 4 eflector を 007 (c) Nippon Telgraph and Telephone Corp. 30
実験 AS55555 1 AS4697 3 sw 4 ebgp eflector 5 eflector 1 3 ルータソフト (-byte のみ ) ソフト (4-byte 対応 ) CISCO GS1404 (1GB) CISCO GS1404 (1GB) CISCO GS1404 (GB) IOS 1.0(31)S IOS 1.0(31)S IOS 1.0(3)S6 IOS X3.4.1 4 PC + Quagga 0.99.7_ 0.99.7_ w/ 4byte-AS patch (v.7) 5 PC + Quagga 0.99.7_ 007 (c) Nippon Telgraph and Telephone Corp. 31
結果 : 良好 どのケースも 実験の範囲内では大きな問題は見られなかった New BGP Speaker Old BGP Speaker 4byte byte 0.55555 ibgp 55555 OPEN Ver: 4 AS: 55555 Holdtime: Cap: 65 AS: 0.55555 or OPEN Ver: 4 AS: 55555 Holdtime: AS 番号が 0-65535 のときは MyAS としてその AS 番号が入る 007 (c) Nippon Telgraph and Telephone Corp. 3
3 4 AS55555 5 1 4 NTTv6-GS1#sh ip bgp 193.31.7.0/4 BGP routing table entry for 193.31.7.0/4, version 16991817 Paths: ( available, best #) Not advertised to any peer 4697 914 3561 173 5539 3456, (received & used) 19.47.16.90 from 19.6.93.8 (19.6.93.8) Origin IGP, localpref 100, valid, internal Community: 1909734 190973904 190974904 49873705 Originator: 19.6.93., Cluster list: 19.6.93.8 4697 914 3561 173 5539 3456, (received & used) 19.47.16.90 from 19.6.93.6 (19.6.93.6) Origin IGP, localpref 100, valid, internal, best Community: 1909734 190973904 190974904 49873705 Originator: 19.6.93., Cluster list: 19.6.93.6 P/0/0/CPU0:NTTv6-GS3#sh bgp 193.31.7.0/4 BGP routing table entry for 193.31.7.0/4 Versions: Process bib/ib SendTblVer Speaker 114676 114676 Paths: (1 available, best #1) Advertised to update-groups (with more than one peer): 0. Path #1: eceived by speaker 0 4697 914 3561 173 5539 3.3, (eceived from a -client), (received & used) 19.47.16.90 from 19.6.93. (19.6.93.) Origin IGP, localpref 100, valid, internal, best Community: 914:40 914:000 914:3000 65504:3561 007 (c) Nippon Telgraph and Telephone Corp. 33
実験結果より プロバイダ内部のルータを 一つ一つ 4 バイト対応に移行することは可能と考えられる つまり ネットワーク全体を止めなければならない事態は回避できそう もちろん 各社のネットワーク機器 ( 性能やメモリ ) トポロジー ( 特に ibgp や ebgp のピアリング ) 顧客収容状況 フィルタなど様々な要因があるため 容易に移行できるかどうかは各社ごとに異なる 007 (c) Nippon Telgraph and Telephone Corp. 34
プロバイダとしての移行順序 ピアリング先 ( プロバイダや顧客 ) が 4 バイト AS で接続してくる場合には 当面収容ルータを分けておく リフレクタ構成の場合 リフレクタのクライアントを4バイトAS 対応 OSにしてから 最後にリフレクタを4バイトAS 対応とする順序が良さそう フルメッシュの場合 はやめにすべて4バイト対応化しておくほうが良い? 007 (c) Nippon Telgraph and Telephone Corp. 35
アウトライン (1) 4バイトASについて () 4バイトASの現状 (3) プロバイダの対応 (4) 課題と議論 (4.1) 実際には問題は生じていないのか? (4.) 4バイトAS 化に伴って変更すべき点は? (4.3) みなさんの活動紹介... 議論 007 (c) Nippon Telgraph and Telephone Corp. 36
( 事象 1) ある日突然 ibgpピアがダウン eflectorがupdateメッセージを処理できずピアを切断していた しばらくしてピアが再接続しても 経路数がある程度増えたところで再度ダウン 処理できないUpdateメッセージを調べてみると ある特定の経路のところで事象が発生していた 001:4810:000::/35 AS_PATH 6.3 その経路をフィルタするとiBGPピアは上がる あるルータが その経路に対して壊れたUpdateメッセージをiBGP 側に送出していたのが原因 他 AS upstream ルータのソフトを更新して直った 001:4810:000::/35 Origin=AS6.3 壊れた UPdate reflector reflector 007 (c) Nippon Telgraph and Telephone Corp. 37
( 事象 ) 隣接 AS に 4 バイト AS を接続した 4 バイト対応の Quagga をリフレクタクライアントとして接続していたが bgpd が Abort して接続できなくなった bgpd が Abort する原因を調べてみると Quagga が 4 バイトの AS_PATH を再構築するときに 隣接 AS が 4 バイト AS の場合 解放済みのメモリを参照するバグを発見 (by 松本存史 ) パッチを当てると 問題なく動くようになった パッチは Quagga を 4 バイト AS 化した作者へ送付済み AS.3 4 reflector 4 19.6.93.0/4 Origin AS =.3 AS_PATH =.3 reflector bgpd が Abort 007 (c) Nippon Telgraph and Telephone Corp. Patchを当てた 38 Quagga に
39 ( 事象 3) JUNOS8.31.5 を下記ルータ A にインストール ルータ G(AS11111) から ルータ F(AS1.10) 経由で経路を送信 as-path: 516 7667 134.6 1.10 11111 この as-path を受けると A-B 間のピアがダウンする 右端のルータ G(AS11111) を止めると ピアは回復する 4 バイト AS がトランジットした as-path で Juniper のピアがダウンする
(4.) 4 バイト化に伴い影響を受ける点 Community 属性 xflow (NetFlow, sflow) MTフォーマット MIB IPv4マルチキャストアドレス (GLOP) I PSL 007 (c) Nippon Telgraph and Telephone Corp. 40
Community 属性 Community 3 ビットのうち上位 16 ビットは AS 番号を入れて使う Four-octet AS Specific BGP Extended Community, draft-rekhter-as4octet-extcommunity-0.txt で議論中 007 (c) Nippon Telgraph and Telephone Corp. 41
xflow 関係 NetFlow Version 9 (FC3954) AS 番号は 4 バイト長で表現可能 デフォルトは バイト Version 5 sflow バイトのみ 4 バイト対応のルータで Netflow v.5 を export するとき 4 バイト AS の AS 番号はやはり AS_TANS(3456) で export するのか? 007 (c) Nippon Telgraph and Telephone Corp. 4
NetFlow v.9 のパケット 4 バイト幅になっている 007 (c) Nippon Telgraph and Telephone Corp. 43
MT フォーマット MT routing information export format (draft-ietf-grow-mrt) にて規定 -0 (March 6, 006) より,4バイトAS 対応 BGP4MP_MESSAGE_3BIT_AS (-03まで) BGP4MP_MESSAGE_AS4(-04より ) Type 名が変わった他,BGP4+ へのフル対応などの変更が入っている. Quagga の 4 バイト対応パッチが MT フォーマットの情報をはける ( ように見える ) 007 (c) Nippon Telgraph and Telephone Corp. 44
MIB 関連 現状, 最新の MIB は,FC473:Definitions of Managed Objects for BGP-4 ) AS 関係は,Inteter3 として規定されているが, bgplocalas OBJECT-TYPE SYNTAX Integer3 (0..65535) なっており, 改訂が必要. draft-ietf-idr-bgp4-mibv に取り込まれる方向で議論が進行中 が, 現在, このドラフトは Expire 状態 007 (c) Nippon Telgraph and Telephone Corp. 45
IPv4 マルチキャストアドレス GLOP アドレス (FC3180) の対応 GLOP アドレス 33 16bit AS Local bits 一応,FC に,16bit の AS でしか使えないよ, とは書いてはある. eglop アドレス (FC3138) GLOP アドレスの, プライベート AS 番号部分 (6451-65534) 部分を配布する 配り方を規定 (FC365,FC770(FC3180),SSM じゃだめなことを説明する必要あり ) eglop アドレスの配布について,I で提案中 APNIC では, 次回のミーティングに提案があがっている 007 (c) Nippon Telgraph and Telephone Corp. 46
(4.3) 他のみなさんの活動 次世代 IX 研究会 (Distix) ルータ相互接続 WG ( 主査 : 高知工科大学 : 菊池先生 ) http://www.distix.net/routerwg/exp1/index.html George Michaelson 氏 @APNIC dix-ie に4バイトASスピーカを設置 ピアリング募集中 連絡先 : 東大加藤朗先生 007 (c) Nippon Telgraph and Telephone Corp. 47
まとめ プロバイダとしての今後の対応 すぐに起きうる問題点への対処 当面 ebgp および ibgp に注意を払う 秘孔を突く経路が突然来るかもしれない ルータ OS のバグ情報に注意する 4 バイト対応 OS への移行 基本動作としては問題なし ネットワークを止めずに移行できる 自社で使っているルータの OS がいつ 4 バイト AS 対応となるかをベンダに確認しておく 場合によっては設備更改にあわせて 4 バイト化する 4 バイト対応には メモリを増やす CPU 性能を上げる必要が出てくるかもしれない 事前に類似環境で検証し問題がないか確認しておくと良い 007 (c) Nippon Telgraph and Telephone Corp. 48
対処のスケジュール感 007 008 009 010 バイト AS 割当 ( 希望すれば 4 バイト AS) 4 バイト AS 割当 ( 希望時 バイト AS) 4 バイト / バイト区別せず AS 割当 009 年ぐらいまでには対処が必要 Peering ルータは先に対処開始 一気に置き換える 内部は時間をかけて 少なくとも ピアリングするルータは 009 年には 4 バイト AS 対応しないとまずそう ベンダさんへのお願い いつ頃対応できるのかの情報を早めに教えて下さいね 予定通りに 安定した バージョンを提供して下さいね ルータを買い換えなくても済むように配慮して下さいね 007 (c) Nippon Telgraph and Telephone Corp. 49
ご静聴ありがとうございました 質問 コメント 議論など 007 (c) Nippon Telgraph and Telephone Corp. 50