Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ラズパイでNWのE2Eテストを始めてみました

E69eee576a4f1247ad2c5470d484b146?s=47 tjmtrhs
January 29, 2020

 ラズパイでNWのE2Eテストを始めてみました

2020/01/29 npstudy #19

とある通信を開通させる作業において、機種・機器数・トポロジなどの要因で、作業忘れの有無をconfigから判断するのは難しいです。Raspberry Pi をエッジに複数台置き、end-to-endで確かめる仕組みを作りました。

https://network-programmability.connpass.com/event/158567/

E69eee576a4f1247ad2c5470d484b146?s=128

tjmtrhs

January 29, 2020
Tweet

Transcript

  1. Copyright © NTT Communications Corporation. All rights reserved. ラズパイで NWのE2Eテストを始めてみました

    NTTコミュニケーションズ 技術開発部 田島 照久 2020/01/29 npstudy#19
  2. Copyright © NTT Communications Corporation. All rights reserved. 2 ◼

    NWのCI/CDに必須なテストを考える ◼ E2Eテストを実装 ◼ プロビジョニングツールからの実行 ◼ テスト実行とトランザクション問題(議論) サマリ
  3. Copyright © NTT Communications Corporation. All rights reserved. 3 ◼

    ポート単位でL2VPNを提供 =WAN回線などを通じてSWのポート単位でVLANを提供 ◼ 作業者は オーダー受領 → 設定変更 → オーダー完了通知 ◼ 中継区間には様々な機器 • L2SW • Router • WAN回線 一般的なL2回線サービスと開通作業 SW A SW B
  4. Copyright © NTT Communications Corporation. All rights reserved. 4 ◼

    VLANのconfigであれば宣言的な実装可(冪等なconfig) 「宣言的な」設定・自動化 VLAN acceess VLAN acceess VPN VPN VLAN xxxx を SW A<>B で設定 SW A SW B
  5. Copyright © NTT Communications Corporation. All rights reserved. 5 ◼

    両端にテスタを置いてパケットを流す ◼ メリット • 設定ミス(config/オーケストラ実装)のブラックボックス確認 • デグレの発見 通信確認がベスト SW A SW B tester tester
  6. Copyright © NTT Communications Corporation. All rights reserved. 6 ◼

    地理要因 • 遠い・DCすぐに入れない etc. ◼ スキル要因 • 作業者依存の部分が残る → 設定作業は作業者影響が減っている • 何をテストしていいか正しく理解しにくい ◼ 多数の機器 ◼ 多数の手順読み替え箇所 通信確認を妨げる理由 SW A SW B tester tester
  7. Copyright © NTT Communications Corporation. All rights reserved. 7 ◼

    地理要因 ✓ 遠隔から実施可能 ◼ スキル要因 ✓ 適切な隠蔽(糖衣)により依存減 通信確認も自動化 SW A SW B tester tester scenario scenario SW A<>B で VLAN xxxx を確認
  8. Copyright © NTT Communications Corporation. All rights reserved. 8 ◼

    RasPiの利点 • 安い • 小さい • 使い捨て出来る NetTester @ 「RasPi」 ◼ RasPiの欠点 • もっさり • 電源アダプタ
  9. Copyright © NTT Communications Corporation. All rights reserved. 9 ◼

    netns + veth + OVS + Trema ◼ 仮想ノードを作成しネットワークにつなぐ ◼ Ref • https://github.com/net-tester • 物理ネットワーク「も」ソフトウェアでテストしよう!, npstudy#7 • 物理ネットワーク受け入れテストの自動化を考える, npstudy #11 • ネットワークテスト自動化システムの実適用, OkinawaOpenDays2017 • NetTesterで多拠点テストも自動化!, ネットワーク運用自動化BoF@JANOG41 「NetTester」 @ RasPi
  10. Copyright © NTT Communications Corporation. All rights reserved. シナリオサーバ RasPi

    10 NetTester @ RasPi NetTester netns netns scenario 複数上流の 切り替え可 複数ノードの 切り替え可
  11. Copyright © NTT Communications Corporation. All rights reserved. 11 通信確認シナリオ例

    SW A SW B tester tester 双方向のping6 2拠点のみで 40sかかる
  12. Copyright © NTT Communications Corporation. All rights reserved. 12 NetTesterシナリオ実行シーケンス

    シナリオサーバ RasPi NetTester Trema OVS scenario インスタンス 生成 インスタンス 生成 インスタンス 生成 OF 接続待ち OF 接続 ノード生成 ノード生成 フロー生成 フロー投入 コマンド実行 コマンド実行 実行結果取得 実行結果取得
  13. Copyright © NTT Communications Corporation. All rights reserved. 13 ◼

    scenario server Live Demo
  14. Copyright © NTT Communications Corporation. All rights reserved. 14 ◼

    Network Services Orchestrator (NSO) 使用 ◼ southband自作検証 • IOS(無印) • junos • alaxala • brocade • etc (補足)プロビジョニングツール
  15. Copyright © NTT Communications Corporation. All rights reserved. 15 ◼

    これまで:手作業で各機器を設定 ◼ これから:設定は自動化済み ◼ テストはどのように行うべきか? 開通作業
  16. Copyright © NTT Communications Corporation. All rights reserved. 16 ◼

    transaction内でテストを行いfailするとrollback • 理想的にテストが通る状態が担保される • 設定DBがロックされ、設定のスループットが落ちる ◆ 拠点数やパス数で指数的にテストケースは増加 • そもそも仮commit時点でdata planeに影響がある テスト時間とDBロックのジレンマ(理想) 設定自動化 ツール 仮設定 テストツール 通信チェック 設定自動化 ツール 設定confirm 設定自動化 ツール 設定rollback
  17. Copyright © NTT Communications Corporation. All rights reserved. 17 ◼

    transaction外でテストを行い「運用でカバー」 • テストが通らない=良くない状態になるかもしれない • 設定は最短の時間でできる • 自動テストでも失敗したときは人が見るため、結局どちらでも人は居る テスト時間とDBロックのジレンマ(妥協) 設定自動化 ツール 設定confirm テストツール 通信チェック 設定自動化 ツール 設定rollback
  18. Copyright © NTT Communications Corporation. All rights reserved. 18 呼び出しシーケンス

    SW A<>B で VLAN xxxx を確認 (async)
  19. Copyright © NTT Communications Corporation. All rights reserved. 19 ◼

    provisioning tool ◼ slackに結果を通知 Live Demo
  20. Copyright © NTT Communications Corporation. All rights reserved. 20 完全な検証面が用意できる場合

    • 検証面にデプロイ&テスト → テストが通ればマージ可能 完全な検証面が用意できない場合 ◼ テストとデプロイを同期する場合 • 理想に近い • テスト時間とテスト範囲が課題 ◼ 直感的には増加したノードのみ ◼ テストとデプロイを同期しない場合 • バッチ的に回せる • 全テストしようとするとO(N^2) ネットワークのテストをいつ行うか問題 Future Work: 組み合わせて補完