ネットワークプログラマビリティ勉強会#4に参加してきた

Agenda

  • ソフトウェアSDN/OpenFlowスイッチ Lagopusとそのプログラミング
  • SDNを導入してみて思ったこと
  • LOOM OpenFlow Controller

  • ネットワークのテスト自動化

  • Openflow 超解釈

http://network-programmability.connpass.com/event/13103/

ソフトウェアSDN/OpenFlowスイッチ Lagopusとそのプログラミング

Agenda

  • Lagopusの概要
  • Lagopus(openflow)で遊んでみる

Lagopusの概要

snd?openflow?lagopus?

  • openflowの話とlagopusの位置づけ(省略)

やってみた

  • 会場内のトラフィック制御

    • meter
  • ブラジル〜日本間の映像伝送実験

    • IPごとのルート制御(宛先IPを書き換える)
  • iPoP2015での実証実験

    • packetの複製+MACとIP書き換え

Lagopusターゲット

  • NFVに対応する仮想スイッチ
  • 異種NWを接続するゲートウェイ

中身の話

概要

  • ネットに転がっているので省略
機能評価
  • Lagopusは評価高い
性能評価
  • 資料にグラフあり
  • Throughput vs flow
    • OVSとほぼ同じ性能(最近追いつかれた?)
  • 2015/2/1リリースでDPDK 2.0.0rc1にマージされた

  • ソースコードはlagopus.github.io

Lagopus(openflow)で遊んでみる

  • Flowを設計して動かしてみる
  • Openflowっぽいことをする

Flowを設計して動かしてみる

  • Lagpus
  • Ryu(app/ofctl_rest.py)
  • ofctl_script(flow addなど)

Openflowっぽいことをする

  1. つなげてみる
  2. 増やしてみる(VLAN)
  3. リファクタリング&デバッグ(ミラーリング)
  4. 騙してみる(DHCPサーバの共有)
1.つなげてみる
  • ns間をflowでつなげてみる
  • match inport, action outport
2.増やしてみる(VLAN)
3.リファクタリング
  • マルチテーブル、メタデータ
  • メタデータは次のテーブルで使える
  • ポートミラーリング、VLANミラーリング
  • debugテーブルでメタデータを用いて識別。複製。
4.DHCPサーバの共有
  • MACアドレスが既知前提だった。。

Flow設計の注意

  • パケットイン遅い
  • パケットコピーの処理は多い
  • ARP学習はパケットイン
  • フロー数増え過ぎ問題

Lagopusってすごい

  • 10Gbps, 1MFlow
  • OSS / x86

質問

  • マルチテーブルの名前ってどうなる?

    • ryuは名前でdefineできる
    • スイッチ側はidで認識
  • NFVってキーワード出たけど、Lagopus的にレイヤーあがってく?

    • 基本方針はopenflowに追従していく
    • セッション情報はコントローラにもたすことになるかな(個人的意見とのこと)
    • LagopusはFWやLBへのねじ曲げかな(個人的意見とのこと)

SDNを導入してみて思ったこと

導入の背景

  • 社内の某事業部がスポンサー(機材供給)になる関係でSDNのソリューションを国際展開

国際通信の問題

  • お隣との通信品質、改善には高いコスト
  • 2014年に地区全体で23回発生したネットワークダウンを削減したい

具体的な品質問題

  • 2014/2 海底ケーブルが一度に2カ所断
    • こういったトラブルに大してBCPを考慮したネットワークを作りたい
    • 日常的なインターネットVPNのパケットロスを抑えたい

施策

  • 落ちないネットワークを作る

    • 2種類の経路(トンネリング)を設置
    • 経路の状態を毎秒監視する
    • 10秒ごとの経路の品質評価と切り替え処理を自動実行
  • ポータル可視化

使用機材

  • Centech V330
  • Openflow1.3対応
  • GigabitEthernet 48ポート

コントローラー

  • RyuコントローラのREST APIをモニタサーバから叩く
  • 制御プログラム、コンソール画面はモニタへ

既存技術との比較

  • ルータが自律的に動くのに比べると問題発生時の見通しが良い
  • 経路上で問題が起きた場合の代替経路もあらかじめ決めておく必要あり
  • 可視化しやすい
  • 切り替えが高速
  • 即財に元の状態に戻せる

工夫したところ

  • コントローラーからの経路は2重化
  • 複数経路のステートフルFWのTCPホールパンチングの考慮(複製してエンドの手前で止めるようなことをした)

実装時のポイント

  • 内部実装のモジュールの影響範囲は最小に(コード重複よりも重視)
  • コンソールはシンプルに

導入後の感想

  • 実装、テスト、運用を一人で行うので、毎回避難訓練を行っている感じになる(強いオペレータになる)
  • SDNは入れてみないと便利さがわからない
  • 実際に入れてみると続々とアイディアが出てくる
  • 仕組みを理解しないと手が出せない

質問

  • テストって本番使った?

    • 実際に海外に機材持っていた
    • 試験用と商用は経路を分けて試験している
  • 例のFW通過はどうした?

    • バイパス経路と通常経路を用意している
    • 比較的問題は起きていない
  • 何を通信品質の監視につかった?

    • loss rate
    • latency

LOOM OpenFlow Controller

LOOM OpenFlow Controllerとは

  • infobloxとerlang solutionsのエンジニアが主に開発

Erlangって?

  • 平行プログラミングがやりやすい
  • 分散プログラミングがやりやすい

LOOM OpenFlow Controllerについて

  • ofs_handler:sync_send/2

  • Demo

ネットワークのテスト自動化

Network Programmabilityって?

  • SDN

    • OpenFlow
    • OpenStack
  • Configuration

    • NETCONF
    • REST API
    • SSH
  • Test automation

    • RSpec

Test Automationは今からでもできる

  • Ruby & RSpec

  • LBspec, infrastaster-plugin-firewall(自作)

  • 他にもRspec-ssltlsなども

  • 実際の画面は資料参照

資料はこちら

Openflow 超解釈

  • OpenFlow 1.5 Relesed

  • Packet Type Aware

  • OXM_OF_PACKET_TYPE(Matchの要素, Set-fieldフィールド)

  • Default = Ehetnet

  • packet_type(3, 80)とやるとHTTP


マスタリングTCP/IP OpenFlow編
あきみち 宮永 直樹 岩田 淳
オーム社
売り上げランキング: 134,980


OpenFlow徹底入門
OpenFlow徹底入門
posted with amazlet at 15.04.23
翔泳社 (2013-10-30)
売り上げランキング: 16,909

 シェアして頂けると嬉しいです

参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。