Download - 2015.07.15 JANOG36 どんなテストしてる?BoF
![Page 1: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/1.jpg)
(C)Copyright 1996-2015 SAKURA Internet Inc.
ルータをいじめる話
さくらインターネット研究所 大久保 修一[email protected]
2015/7/15 JANOG36 BoF
「どんなテストしてる ? 」 BoF
![Page 2: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/2.jpg)
2
• 2003 年~ 2009 年– AS9370, AS9371 Backbone 担当– ▽ 検証+導入してきたもの– ルータ、スイッチ、回線、ルートリフレクタ– DNS サーバ (ANS) 、ロードバランサ
• 2009 年~ 2011 年– さくらインターネット研究所– IPv4/v6 共存技術 ( トランスレータ ,6RD, 他 )– 仮想スイッチ / アプライアンス
• 2011 年~– 「さくらのクラウド」インフラ開発を担当– L2/L3 、 InfiniBand 、 iSCSI ストレージ、 VPN 機器
ルータと私
![Page 3: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/3.jpg)
3
1. サービス仕様策定、システム全体設計2. 各機器の想定機能要件、想定収容要件洗い出し3. RFP
– 要件を満たしそうで価格感がマッチする機種をいくつか選定– メーカさん、ベンダさんに相談したり
4. 機器検証– 検証項目洗い出し、検証構成検討– 検証機材をお借りしたり、ベンダさんのラボに訪問したり
5. 導入判定、購入– バグ修正、追加インプリの条件をお願いすることも
6. 構築、サービスイン前試験
サービス用機器導入~提供の流れ
場合によっては設計を見直し
![Page 4: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/4.jpg)
4
ケーススタディ~クラウド (IaaS) 収容用途のルータ~
![Page 5: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/5.jpg)
5
某クラウドサービスのネットワーク構成
バックボーン
コアスイッチ
ホストサーバ
ToR ToR
ホストサーバ
ToR
ルータ
ストレージ
ルータ
eBGP eBGP
iBGP
上流とはプライベートAS を用いた BGP 接続
3,500VLAN くらい
VRRP を用いた冗長化
← ココ!
最大 VM 数 10,000 程度
![Page 6: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/6.jpg)
6
要件、検証項目のリストアップ
機能要件
性能、スケーラビリティ要件
運用要件
![Page 7: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/7.jpg)
7
• 機能要件– ルーティングプロトコル : OSPF, BGP IPv4/IPv6 デュアル– 冗長化プロトコル : VRRP ( もしくは同等のもの )– その他 : IPv6 RA, VLAN 単位での帯域制限 , ACL
• 性能、スケーラビリティ要件– スループット : 10Gbps 以上、そこそこ Mpps– SVI: 2,000 以上– VRRP 数 : 2,000 以上– ARP/NDP エントリ数 : 12,800 以上
• 運用要件– 管理、監視しやすいか?消費電力・サイズ・ファシリティ面– 大量の Config をいれてもサクサク動くか?
クラウド収容ルータの例:機能 / 収容要件
![Page 8: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/8.jpg)
8
検証例
テスター ルータ
ルータ単体試験 2,000 ユーザ分の設定を投入
WAN 側
LAN 側
12,800VM をエミュレーション • ユーザ→インターネット向け
• インターネット→ユーザ向け
※ 上りと下りでは別世界
![Page 9: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/9.jpg)
9
検証例
結合試験
WAN 側
LAN 側
単体でテストしておき、徐々に組み上げていく方がいいかも
ルータ
L2 スイッチ
VRRP
BGPBGP
![Page 10: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/10.jpg)
10
• 64 バイトショートパケットワイヤレートの性能にこだわる無意味さ (10GbE だと 14.8Mpps とか )
• そもそもなんで 64 バイトなんだっけ?
• たまたま 100m のコリジョン検出のために最小フレーム長が 64 バイトに決まっていた。
• 200m(128B) だったら 7.4Mpps の性能で済んでたかも
ショートパケットワイヤレートの不条理
http://www.n-study.com/network/minframe.htm より
![Page 11: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/11.jpg)
11
• ルータ宛ての DoS アタック– UDP フラッド、 ICMP echo request– SYN アタック (22 番 /23 番 /179 番ポート )
• CPU エスカレーションされるパケット– TTL=1 のパケット (TTL=0 で ICMP Time Exceeded 生成 )– ARP/NDP 解決不能な宛先のパケット– トラフィックを流している状態で clear ip arp/clear ipv6
neighbors する• 上記を 10G ワイヤレートでぶつける
ルータの弱いところを突く!
ルータの作り込まれ具合、叩かれ度合があからさまに
![Page 12: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/12.jpg)
12
ルータの弱いところを突く!
Management Module
Switch Fablic Module Switch Fablic Module
Line CardLine Card
回線 回線 回線 回線
Telnet,SNMP,OSPF,BGP などの処理
中継するトラフィック
CPUMemory
FIBFIB
HW で高速転送
http://irs.ietf.to/past/docs_20090521/ より
![Page 13: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/13.jpg)
13
ルータの弱いところを突く!
Management Module
Switch Fablic Module Switch Fablic Module
Line CardLine Card
回線 回線 回線 回線
CPUMemory
ルータ宛てのトラフィック
FIBFIB
CPU負荷上昇
ルーティングなどの処理に影響発生
http://irs.ietf.to/past/docs_20090521/ より
![Page 14: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/14.jpg)
14
• VRRP Act/Stb フラップ– Standby 側が VRRP Hello受信時に取りこぼし
• CLI操作が不能 /重くなる– 23 番 /179 番ポート宛ての DoS アタック– ARP/NDP エントリを大量に持った状態
• BGPピア断 /OSPF Neighbor ダウン– clear ipv6 neighbors を実行
• LACP ダウン
発生した不安定事象の例
![Page 15: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/15.jpg)
15
• ランダムな宛先 IP アドレスのパケット– フローベースのルータだとパフォーマンス低下が発生– 最近のルータだとほぼ大丈夫なはず。
ルータの弱いところを突く!
昔、散々痛い目にあったので、今でも
やってます。
パフォーマンス低下が発生する例
![Page 16: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/16.jpg)
16
• 大量の Config を入れたり抜いたり– クラウドだとお客様操作で自動で Config される– OS がクラッシュしないか確認
• ARP/NDP の学習スピード– 切り替え時間に影響
その他
L2 ネットワーク
プロトコルレベルではすぐに切り替わっても
数分間通信が復旧しないことも
![Page 17: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/17.jpg)
17
• RIB(Routing Table) と FIB の不一致がおきないか?– 多数経路の更新時に Forwarding に不整合が発生することも
その他
テスター ルータ
WAN 側
LAN 側
トラフィック
トラフィック
BGP経路
経路を Withdraw するとトラフィックが止まる
はずだが・・
![Page 18: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/18.jpg)
18
• パケットバッファサイズの測定
その他
テスター ルータ
tagged
Untaggedトラフィック
Long パケットで 99% 、 100%負荷時のレイテンシの差を求める例 : 99%:2.77us 100%:849.99us 差 :847.22us
10Gbps で 847.22us 分のパケットをバッファリング可能
10,000,000,000/8*0.00084722=1,059,025Bytes
![Page 19: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/19.jpg)
19
• 試験を綺麗に実施 / 試験結果を綺麗にまとめることの不毛さ
• いくら試験項目をクリアしてもサービスイン後、何が起きるかわからない
• インターネットからは、予想もできない変な経路やパケットがばんばん飛んでくる
• 疲れ果てて適当に打ったコマンドが、バグ発見のきっかけになったり
• ○×表は飾りでしかない• それでも導入の可否を決めなければならない
ずっと悩んでること
現場の担当者が「いける」と思えたかどうか
![Page 20: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/20.jpg)
20
• とりあえず溢れさせてみる– カタログスペックは信じない (言わずもがな )– 実運用で発生する多くの問題は、負荷や収容数に起因。– 収容上限を超える Config を突っ込んだり、ありえない負荷を
かけてみたりする。• 機器をダウンさせるあらゆる方法を考え、やってみる• 不具合が見つからないのは検証が足りてない証拠
– Config に魂を込め、精根尽き果てるまで戦う• メーカ / ベンダさんのレスポンスも要確認
– 実運用に入って困ったときに助けてもらえそうか?– 何がおきてもなんとかなりそう、という感触を得られるか?
• 完全に要求仕様を満たす装置は無い• 導入の最終決断は自身の覚悟をもって
検証作業の心得
![Page 21: 2015.07.15 JANOG36 どんなテストしてる?BoF](https://reader036.vdocuments.net/reader036/viewer/2022070515/5878c5481a28ab26728b5d6b/html5/thumbnails/21.jpg)
21
ご清聴ありがとうございました。