22日、JTF2014に行って来た話のつづき
仮想ネットワークを実現するOpenVNet
をメモメモ
目的
・OpenFlowってどんなものかわかるようになる
・フローが読めるようになる
・OpenVNetの仕組みが大体分かるようになる
OSI参照モデル
・第二層、第三層に関して実際のネットワーク機器上では
どんな動きをするのか軽くおさらいします。
第二層データリンク層
・EtherNet
L2スイッチの挙動
Macアドレスとポート番号のペアを記憶する
→ポート
第三層ネットワーク層
L3ルーターの挙動
・あて先IPアドレスを読み、あて先ネットワークを決定
・ルーティングテーブルを参照し、送信先を決定
複数ルーター間の挙動
・ダイナミックルーティングの場合、EGPなどで
まとめ
L2:スイッチではMacアドレスを元に制御
L3:ルーターではIPアドレスを元に制御
What is OpenFlow
・2009年スタンフォード大での研究が発端
・ONF(Open Networking Foundation)が管理
・OpenFlowスイッチ
現在1.3に対応
OpenFlowプロトコルの説明
・OpenFlowコントローラーとOpenFlowスイッチ
スイッチ:
・接続要求:TCPなど
セキュアチャネルでコントローラーとスイッチを接続
N対N接続→冗長構造
・HELLOを投げ合う→一番高いバージョンを投げ、会話を決める
コントローラー(フィーチャーリクエスト)→スイッチ(フィーチャーリプライ)
パケットの受信
パケットINでお知らせ
フロー:フローモッド(FLOW_MOD)で更新
パケットアウト
フローの例
マッチ アクション
オープンフローでは、テーブルごとに処理しない内容を分ける
メタデータ:64ビットの汎用レジスタ
OpenFlow Switch
・OpenVSwitch
・Tremaというフレームワーク
■OpenVNetの実装
・わかめVDCの仮想ネットワークを外だしにしたもの
作った理由
・オープンソースで開発されてない
・複雑なネットワークを作れる→物理ネットワークを単純に
・構成
エージェントプログラム
キューイング
管理するプログラム
VNA:パケットやり取りするエージェント
VNMGR:VNAを管理するマネージャー、MySQLにつながっている
VNCTL:
MAC2MAC
はなれた物理マシン間でも転送
ARPリクエストを送る
Openvswich
わからないので、となりのマシンにブロードキャスト
OpenvSwitchが覚える
VM2からARPリプライ
L3を超える場合:GREトンネル
セキュリティグループ:ファイヤーウォール
コネクショントラッキング
VNAにVM1→VM2許可、VM2→VM1許可を一時的に入れる
OpenVNetのテスト
Openvnet-testspec
・RSpecで記述
・シナリオごとにyaml
L3を越えるかなど
Jenkinsでジョブ管理
Hipchat
Wakame Users Group
7月25日19:00
wakameusersgroup.org
仮想ネットワークを実現するOpenVNet
をメモメモ
目的
・OpenFlowってどんなものかわかるようになる
・フローが読めるようになる
・OpenVNetの仕組みが大体分かるようになる
OSI参照モデル
・第二層、第三層に関して実際のネットワーク機器上では
どんな動きをするのか軽くおさらいします。
第二層データリンク層
・EtherNet
L2スイッチの挙動
Macアドレスとポート番号のペアを記憶する
→ポート
第三層ネットワーク層
L3ルーターの挙動
・あて先IPアドレスを読み、あて先ネットワークを決定
・ルーティングテーブルを参照し、送信先を決定
複数ルーター間の挙動
・ダイナミックルーティングの場合、EGPなどで
まとめ
L2:スイッチではMacアドレスを元に制御
L3:ルーターではIPアドレスを元に制御
What is OpenFlow
・2009年スタンフォード大での研究が発端
・ONF(Open Networking Foundation)が管理
・OpenFlowスイッチ
現在1.3に対応
OpenFlowプロトコルの説明
・OpenFlowコントローラーとOpenFlowスイッチ
スイッチ:
・接続要求:TCPなど
セキュアチャネルでコントローラーとスイッチを接続
N対N接続→冗長構造
・HELLOを投げ合う→一番高いバージョンを投げ、会話を決める
コントローラー(フィーチャーリクエスト)→スイッチ(フィーチャーリプライ)
パケットの受信
パケットINでお知らせ
フロー:フローモッド(FLOW_MOD)で更新
パケットアウト
フローの例
マッチ アクション
オープンフローでは、テーブルごとに処理しない内容を分ける
メタデータ:64ビットの汎用レジスタ
OpenFlow Switch
・OpenVSwitch
・Tremaというフレームワーク
■OpenVNetの実装
・わかめVDCの仮想ネットワークを外だしにしたもの
作った理由
・オープンソースで開発されてない
・複雑なネットワークを作れる→物理ネットワークを単純に
・構成
エージェントプログラム
キューイング
管理するプログラム
VNA:パケットやり取りするエージェント
VNMGR:VNAを管理するマネージャー、MySQLにつながっている
VNCTL:
MAC2MAC
はなれた物理マシン間でも転送
ARPリクエストを送る
Openvswich
わからないので、となりのマシンにブロードキャスト
OpenvSwitchが覚える
VM2からARPリプライ
L3を超える場合:GREトンネル
セキュリティグループ:ファイヤーウォール
コネクショントラッキング
VNAにVM1→VM2許可、VM2→VM1許可を一時的に入れる
OpenVNetのテスト
Openvnet-testspec
・RSpecで記述
・シナリオごとにyaml
L3を越えるかなど
Jenkinsでジョブ管理
Hipchat
Wakame Users Group
7月25日19:00
wakameusersgroup.org