OpenVNetの紹介と
開発へのお誘い
やまざき
OpenVNetをリリースしました
•  Trema-Edgeを使ったOpenFlow 1.3対応の仮
想ネットワークソフトウェアです
–  https://github.com/axsh/openvnet
–  Ruby 2.0で書かれています
–  テスト抜きだと、まだ1万⾏行行もない規模

•  エッジオーバレイ型です
•  Wakame-vdcからのスピンアウトプロジェク
トで、仮想データセンター(VDC)を実現する
⽬目的で開発されました
できること
•  物理理L2/L3のネットワーク上に、
任意の仮想L2/L3のネットワークを
オンデマンドにオーバレイできる
•  CLIで管理理できる
•  既存の物理理ネットワークを、
仮想ネットワークへ延伸できる
データセンターの
ネットワークモデル
External  Network  
(Internet)

Internet

WAN  Edge  Network

DNAT  /  LB

Data  Center
Physical  Network

Data  Center
Network

LAN  Edge  Network
General  
Servers

Appliance  
Servers
Resources

Tunnel  &
SNAT  /  DHCP  /  DNS

Storage  
Servers
Physical  /  Virtual
Server  Cluster
エージェントを分散配置
Internet

パケットを
コントロールするために、
Agentsを配置する

Data  Center
Network

Physical  /  Virtual
Server  Cluster
メッセージキューによる連携
Internet

Agentは、
相互にメッセージを交換し、
連携しながら動作をする

Data  Center
Queue
Network

Physical  /  Virtual
Server  Cluster
エージェントと
その他コンポーネント
•  vna (Virtual Network Agent)
エージェント

–  Open vSwitch 1.10.xの設定を変更更するのが主な役⽬目
–  Trema-edgeによるOpenFlow 1.3のコントローラを内蔵す
る

•  vnmgr (Virtual Network Manager)

その他
コンポーネント

–  データセンター全体のネットワーク構成を把握し、
vnaへの司令令塔となる
–  その他、MySQLをバックエンドとした
永続的データベースアクセスのサービスを提供する

•  vnapi (Virtual Network API)

–  Web APIのエンドポイントになる
–  外部システムから、vnmgrへ指⽰示を引き渡す連携窓⼝口

•  vnctl (Virtual Network Controller)

–  コマンドラインインターフェイス
–  vnapiと対話する
全体像
https

Internet

Northbound API

MySQL

vna

vnmgr
vnctl

http

vnapi

OpenFlow
Controller
(Trema Edge)

vna

vna

Data  Center
Queue
Network

vna
OpenFlow OF1.3
Switch
(OVS 1.10)

vna

vna

Physical  /  Virtual
Server  Cluster

vna
前回からの進捗どうですか
•  仮想L3ルーティングもできました

–  仮想L2間(V2V)、及び、物理理と仮想L2(P2V)

•  外部ネットワークと連携するゲートウェ
イもできました
–  VNetEdge Gateway

•  openvnet-testspecプロジェクトも公開中
–  https://github.com/axsh/openvnet-testspec
仮想L3ルーティング(V2V)
Virtual Machine

Physical Network

Physical Machine

L2 Slice Switching

Physical Machine
Virtual Machine

L2 Slice Switching
Routing

Routing
GRE
Transporting

Transporting
M2M

Virtual Network

Virtual Network
VDC以外のユースケース
•  ネットワークのダウンサイジング

–  複雑な多段L2構成のアプリケーションを
ネットワーク含めて仮想化し、
単純化されたIaaSに押し込める
5台の物理理サーバ
4つのスイッチセグメント
Internet

Load  
Balancer

Load  
Balancer
Web  
Server

2台の物理理サーバ
1つのスイッチセグメント

Web  Server
Web  
Server

DB  Backup
Server

DB  Master  
Server

DB  Master  
Server

DB  Backup
Server

Web  Server

Internet
Open
VNet

NIC

Open
VNet

NIC
段階的ダウンサイジングの
アプローチ
•  既存ネットワーク側に、VNetEdge Gatewayを置き、
段階的に移⾏行行作業を⾏行行うことができる
•  移⾏行行完了了後は、
OpenVNetのオンデマンドな機能を付加できる
–  Security Groups
–  柔軟なルーティング
Load  
Balancer
VNetEdge
Gateway

Web  Server

DB  Master  
Server
DB  Backup
Server

Web  Server

Internet
Open
VNet

NIC

Open
VNet

NIC
近々追加される機能
•  VXLAN対応
–  コードとテストはもうあるけど、レビュー中

•  セキュリティグループ
–  12⽉月中には完成する予定

•  Floating IP
Committer / Authorになりませんか

開発へのお誘い
今まだ⾜足りないもの
•  ドキュメント系
–  Getting Startedみたいなドキュメント
•  希望があれば
インストール⽅方法を紹介する場を作ります

–  (Advent Calendarやりたい)

•  開発

–  運⽤用を便便利利にする機能が⼿手薄
–  より複雑なテストができる環境が欲しい
どうやって参加したらいい?
•  GitHubのIssueに「こんな事やりたいんだけ
ど」と書き込む。⽇日本語でもokです。
–  議論論して、実装までの流流れを決めましょう
–  ここはすっ⾶飛ばしても良良いです

•  GitHubでForkしましょう

–  そこに機能追加を⾏行行います

•  GitHubでPull Requestを出しましょう
–  あまり⼤大きくならない内にぜひ
–  レビューが⼊入って、ちょこちょことQ&Aや、修正
の依頼などのやりとりがあります
OpenVNet.com

OpenVNet Updates 2013/11 in TremaDay#04