OSSだけで実装する
仮想ネットワークの全て  
株式会社あくしゅ	
  
⼭山崎泰宏	
  
(axsh.jp	
  /	
  @sparklegate)
株式会社あくしゅ  
• IaaS基盤  “Wakame-­‐vdc”を	
  
ゼロから開発する会社	
  
• OSSとして公開	
  
• 開発、メンテナンス	
  
• プロフェッショナルサービス	
  
• 導⼊入⽀支援	
  
• カスタマイズ	
  
• 技術教育
開発当初(2009)からの
コンセプト  
•  Wakame-­‐vdc	
  (Virtual	
  Data	
  Center)	
  
•  「データセンターを丸ごと仮想化しよう!」	
  
•  「データセンターをポケットに⼊入れて	
  
  持ち運べるようにしよう!」	
  
•  「世界中のデータセンターを	
  
  ひとつのコンピュータにしよう!」	
  
•  必要な技術要素	
  
•  Virtual	
  Server	
  /	
  Virtual	
  Network	
  /	
  Virtual	
  Storage	
  
•  SDNは本コンセプトの実現に向けて、	
  
重要な考え⽅方の⼀一つ	
  
事例
NNTTTT  PPCC  CCoommmmuunniiccaattiioonnss  IInncc..  
WWeebbAARREENNAA  VVPPSS  CClloouudd
KKYYOOCCEERRAA  CCoommmmuunniiccaattiioonn  SSyysstteemmss,,  CCoo..,,  LLttdd..  
GGrreeeennOOffffiiccee  UUnniiffiieedd  CClloouudd
歴史・背景
ネットワークの機能  
•  2010/04	
  ...	
  ファーストリリース	
  (Ruby)	
  
•  2010/11	
  ...	
  エッジネットワーキング構成に	
  
•  Linux	
  NetfilterによるSecurity	
  Groupsが動作	
  
•  Tagged	
  VLANを⼀一切切使わずに実現した	
  
•  2011/12	
  ...	
  OpenFlow	
  1.0対応	
  
•  Trema	
  +	
  OVS	
  1.6	
  
•  Security	
  Groupsを移植	
  
•  2012/03	
  ...	
  仮想ネットワークの実現	
  
•  オーバレイでL2マルチテナントを実現	
  
•  VMが複数NICを持ち、それぞれ任意に作成された
異異なるネットワークへ接続できる
弊社の周�辺動向�	
  
二〇一二年頃  
•  VDCのコンセプトは良良い	
  
•  でも、今のところSecurity	
  Groupsだけでも⼗十分	
  
•  仮想ネットワークについては、	
  
IaaSに内蔵してあるよりも	
  
独⽴立立性の⾼高いプロダクトとして利利⽤用したい	
  
•  プロプライエタリ製品が多く、	
  
無償で気軽に試せるオープンソース製品とか	
  
ないの?	
  
Wakame-­‐vdcから	
  
仮想ネットワークの機能を抽出して、	
  
別のオープンソースプロダクトとして	
  
まとめよう
構造
Data  Center
Physical  Network
データセンターの  
ネットワークモデル  
WAN  Edge  Network
LAN  Edge  Network
Resources
External  Network  
(Internet)
General  
Servers
Appliance  
Servers
Storage  
Servers
Data  Center
Network
Internet
DNAT  /  LB
Tunnel  &
SNAT  /  DHCP  /  DNS
Physical  /  Virtual
Server  Cluster
エージェントを分散配置  
Data  Center
Network
Internet
Physical  /  Virtual
Server  Cluster
パケットを	
  
コントロールするために、	
  
Agentsを配置する	
  
メッセージキューによる
連携  
Data  Center
Network
Internet
Physical  /  Virtual
Server  Cluster
Queue
Agentは、	
  
相互にメッセージを交換し、	
  
連携しながら動作をする	
  
エージェントと	
  
その他コンポーネント  
•  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と対話する	
  
エージェント
その他	
  
コンポーネント
全体像  
Data  Center
Network
Internet
Physical  /  Virtual
Server  Cluster
Queue
vna vna vna
vna vna vna
vnmgr
vnapi
vna
OpenFlow	
  
Controller	
  
(Trema	
  Edge)
OpenFlow	
  
Switch	
  
(OVS	
  1.10)
OF1.3	
  	
  	
  	
  	
  	
  	
  	
  	
  
vnctl
https
http
Control	
  
Program
Control	
  
Program
Network	
  OS
Packet	
  
Forwarding
Packet	
  
Forwarding
Packet	
  
Forwarding
OpenFlow	
  Protocol
スイッチネットワーク
データセンター全体に	
  
散らばるスイッチ資源を	
  
管理理するもの
スイッチネットワークに	
  
対する司令令を出す	
  
任意のプログラム
SDNのモデル
Virtual	
  Network	
  
(Multi-­‐Tenant)
Security	
  Group	
  
(Firewall)
Open	
  vSwitch Open	
  vSwitch
Open	
  vSwitch
Virtual	
  Network	
  Manager
vna vna vna
Trema-­‐edgeTrema-­‐edgeTrema-­‐edge
OpenFlow	
  1.3
RubyレベルでのCall
ZeroMQによる通信
RubyレベルでのCall
Unix	
  Socket通信
各コンピュートノード内の	
  
独⽴立立したOVS群
VM	
   VM	
   VM	
   VM	
   VM	
   VM	
   貸し出される仮想マシン群
今回の場合
Data  Center
Physical  Network
デプロイメント  
WAN  Edge  Network
LAN  Edge  Network
Resources
External  Network  
(Internet)
General  
Servers
Appliance  
Servers
Storage  
Servers
物理サーバへの配置  
Data  Center  
Physical  Network
LAN  Edge
Resources Physical  Server Physical  Server
Open  
vSwitch
vna
eth0 eth1 eth0 eth1
Management  Line
Public  Line
VM VM VM VM
Open  
vSwitch
vna
General  Servers
仮想と物理のレイヤ分け  
Physical  Server Physical  Server
Open  
vSwitch
vna
eth0 eth1 eth0 eth1
Management  Line
Public  Line
VM VM VM VM
Open  
vSwitch
vna
Virtual	
  Server
Virtual	
  Network	
  (Virtual	
  L2	
  /	
  L3)
Physical	
  Network	
  (Physical	
  L2	
  /	
  L3)
Physical	
  
Server
パケットの物理転送方式  
•  ⼀一般によく知られた⽅方法	
  
•  GRE	
  Tunnel	
  
•  VXLAN	
  (予定)	
  
•  独⾃自の⽅方法	
  
•  MAC2MAC	
  
MAC2MAC  
•  ARPのブロードキャストドメインをコントロールして	
  
物理理L2配下をアイソレートする⼿手法	
  
•  ブロードキャストパケットを、	
  
MACアドレスを頼りにユニキャスト通信するため、	
  
この名前で呼んでいる	
  
•  Pros.	
  
•  ⾼高速	
  
•  カプセリングしないためパケットが太らない	
  
•  通常のL2スイッチでも動作する	
  
•  他の製品には無さそう	
  
•  Cons.	
  
•  物理理L3を越えられない	
  (その時はトンネリングを使う)
その他の	
  
ネットワーク機能  
•  GRE	
  Tunnel	
  /	
  VXLAN	
  
•  物理理L3を越えた際のMAC2MACの代替⼿手法	
  
•  物理理ネットワーク構成を⾒見見て、⾃自動で適⽤用する	
  
•  仮想ルータ	
  
•  分散したままエッジで処理理ができるルータ	
  
•  Security	
  Groups(開発中)	
  
•  動的なファイアウォール機能	
  
•  External	
  IP	
  
•  いわゆるNAT	
  
•  グローバルIPアドレスと、	
  
ローカルIPアドレスの相互変換を⾏行行う
できるだけエッジで応答する	
  
例)	
  DHCP	
  Server  
各VMが仮想ネットワークへ放出するDHCP	
  Discoveryは、	
  
Open	
  vSwitch上でフックされ、OF1.3に乗ってvnaへ到達する。	
  
vnaはパケットクラフトし、DHCPの応答をする。	
  
Physical  Server Physical  Server
Open  
vSwitch
vna
eth0 eth1 eth0 eth1
Management  Line
Public  Line
VM VM VM VM
Open  
vSwitch
vna
デモ
br0
VM-­‐5
Vif
eth0
Vif
vna3
vna
VM-­‐6
br0
VM-­‐3
Vif
eth0
Vif
vna2
vna
VM-­‐4
br0
VM-­‐1
Vif
eth0
Vif
vna1
VM-­‐2
vnadbavnmgr
Demo	
  Environment  
Virtual	
  Network-­‐1  
10.102.0.0/24
Virtual	
  Network-­‐2  
10.102.0.0/24
172.16.20.11 172.16.30.11172.16.20.12
物理理Segmentが異異なる
Router
eth1eth1eth1
dhcp dhcp dhcp
管理理⽤用ネットワーク	
  191.168.2.0/24
VIF	
  /	
  Same	
  IP	
  Addr	
  Range	
  /	
  L2-­‐L3
ご覧頂くデモ  
•  Virtual	
  Networkを構築して仮想マシンを起動する	
  
•  仮想マシンからのIPアドレス取得要求を	
  
分散DHCPで応答し、付与する	
  
•  2つのVirtual	
  Network間の疎通確認をする
•  MAC2MAC	
  
•  GRE	
  Tunnel	
  (Full-­‐mesh)
これから  
Wakame-­‐vdcがあったので、ここまで5ヶ⽉月と少し
現在開発中のもの  
•  Packet	
  Filtering	
  
•  vif毎にSecurity	
  Groups	
  +	
  Firewallルールを	
  
設定できる機能	
  
•  WAN	
  Edge	
  Networking	
  
•  External	
  IP	
  (グローバルIPアドレスのNAT)	
  
•  既存LANへの拡張	
  
•  仮想ネットワークと既存LANの接続を提供	
  
•  双⽅方向の通信を橋渡しするゲートウェイ	
  
まとめ  
•  Wakame-­‐vnetは、分散したOVSを管理理し、	
  
エッジオーバレイ仮想ネットワークを	
  
OSSだけで実現できます	
  
•  物理理ネットワーク上に、	
  
任意の仮想ネットワークを複数構築できます	
  
•  OpenFlow	
  1.3に対応しています	
  
•  OVS	
  1.10系	
  
•  Trema-­‐edge	
  
•  近⽇日公開いたします	
  
•  Ruby	
  /	
  LGPL	
  3	
  

Wakame-vnet / Open Source Project for Virtual Network & SDN

  • 1.
  • 2.
    株式会社あくしゅ • IaaS基盤 “Wakame-­‐vdc”を   ゼロから開発する会社   • OSSとして公開   • 開発、メンテナンス   • プロフェッショナルサービス   • 導⼊入⽀支援   • カスタマイズ   • 技術教育
  • 3.
    開発当初(2009)からの コンセプト • Wakame-­‐vdc  (Virtual  Data  Center)   •  「データセンターを丸ごと仮想化しよう!」   •  「データセンターをポケットに⼊入れて     持ち運べるようにしよう!」   •  「世界中のデータセンターを     ひとつのコンピュータにしよう!」   •  必要な技術要素   •  Virtual  Server  /  Virtual  Network  /  Virtual  Storage   •  SDNは本コンセプトの実現に向けて、   重要な考え⽅方の⼀一つ  
  • 4.
  • 5.
    NNTTTT PPCC CCoommmmuunniiccaattiioonnss IInncc.. WWeebbAARREENNAA VVPPSS CClloouudd
  • 6.
    KKYYOOCCEERRAA CCoommmmuunniiccaattiioonn SSyysstteemmss,, CCoo..,, LLttdd.. GGrreeeennOOffffiiccee UUnniiffiieedd CClloouudd
  • 7.
  • 8.
    ネットワークの機能 • 2010/04  ...  ファーストリリース  (Ruby)   •  2010/11  ...  エッジネットワーキング構成に   •  Linux  NetfilterによるSecurity  Groupsが動作   •  Tagged  VLANを⼀一切切使わずに実現した   •  2011/12  ...  OpenFlow  1.0対応   •  Trema  +  OVS  1.6   •  Security  Groupsを移植   •  2012/03  ...  仮想ネットワークの実現   •  オーバレイでL2マルチテナントを実現   •  VMが複数NICを持ち、それぞれ任意に作成された 異異なるネットワークへ接続できる
  • 9.
    弊社の周�辺動向�   二〇一二年頃 •  VDCのコンセプトは良良い   •  でも、今のところSecurity  Groupsだけでも⼗十分   •  仮想ネットワークについては、   IaaSに内蔵してあるよりも   独⽴立立性の⾼高いプロダクトとして利利⽤用したい   •  プロプライエタリ製品が多く、   無償で気軽に試せるオープンソース製品とか   ないの?  
  • 10.
  • 11.
  • 12.
    Data  Center Physical  Network データセンターの ネットワークモデル WAN  Edge  Network LAN  Edge  Network Resources External  Network   (Internet) General   Servers Appliance   Servers Storage   Servers Data  Center Network Internet DNAT  /  LB Tunnel  & SNAT  /  DHCP  /  DNS Physical  /  Virtual Server  Cluster
  • 13.
    エージェントを分散配置 Data Center Network Internet Physical  /  Virtual Server  Cluster パケットを   コントロールするために、   Agentsを配置する  
  • 14.
    メッセージキューによる 連携 Data Center Network Internet Physical  /  Virtual Server  Cluster Queue Agentは、   相互にメッセージを交換し、   連携しながら動作をする  
  • 15.
    エージェントと   その他コンポーネント •  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と対話する   エージェント その他   コンポーネント
  • 16.
    全体像 Data Center Network Internet Physical  /  Virtual Server  Cluster Queue vna vna vna vna vna vna vnmgr vnapi vna OpenFlow   Controller   (Trema  Edge) OpenFlow   Switch   (OVS  1.10) OF1.3                   vnctl https http
  • 17.
    Control   Program Control   Program Network  OS Packet   Forwarding Packet   Forwarding Packet   Forwarding OpenFlow  Protocol スイッチネットワーク データセンター全体に   散らばるスイッチ資源を   管理理するもの スイッチネットワークに   対する司令令を出す   任意のプログラム SDNのモデル
  • 18.
    Virtual  Network   (Multi-­‐Tenant) Security  Group   (Firewall) Open  vSwitch Open  vSwitch Open  vSwitch Virtual  Network  Manager vna vna vna Trema-­‐edgeTrema-­‐edgeTrema-­‐edge OpenFlow  1.3 RubyレベルでのCall ZeroMQによる通信 RubyレベルでのCall Unix  Socket通信 各コンピュートノード内の   独⽴立立したOVS群 VM   VM   VM   VM   VM   VM   貸し出される仮想マシン群 今回の場合
  • 19.
    Data  Center Physical  Network デプロイメント WAN  Edge  Network LAN  Edge  Network Resources External  Network   (Internet) General   Servers Appliance   Servers Storage   Servers
  • 20.
    物理サーバへの配置 Data Center   Physical  Network LAN  Edge Resources Physical  Server Physical  Server Open   vSwitch vna eth0 eth1 eth0 eth1 Management  Line Public  Line VM VM VM VM Open   vSwitch vna General  Servers
  • 21.
    仮想と物理のレイヤ分け Physical Server Physical  Server Open   vSwitch vna eth0 eth1 eth0 eth1 Management  Line Public  Line VM VM VM VM Open   vSwitch vna Virtual  Server Virtual  Network  (Virtual  L2  /  L3) Physical  Network  (Physical  L2  /  L3) Physical   Server
  • 22.
    パケットの物理転送方式 • ⼀一般によく知られた⽅方法   •  GRE  Tunnel   •  VXLAN  (予定)   •  独⾃自の⽅方法   •  MAC2MAC  
  • 23.
    MAC2MAC • ARPのブロードキャストドメインをコントロールして   物理理L2配下をアイソレートする⼿手法   •  ブロードキャストパケットを、   MACアドレスを頼りにユニキャスト通信するため、   この名前で呼んでいる   •  Pros.   •  ⾼高速   •  カプセリングしないためパケットが太らない   •  通常のL2スイッチでも動作する   •  他の製品には無さそう   •  Cons.   •  物理理L3を越えられない  (その時はトンネリングを使う)
  • 24.
    その他の   ネットワーク機能 •  GRE  Tunnel  /  VXLAN   •  物理理L3を越えた際のMAC2MACの代替⼿手法   •  物理理ネットワーク構成を⾒見見て、⾃自動で適⽤用する   •  仮想ルータ   •  分散したままエッジで処理理ができるルータ   •  Security  Groups(開発中)   •  動的なファイアウォール機能   •  External  IP   •  いわゆるNAT   •  グローバルIPアドレスと、   ローカルIPアドレスの相互変換を⾏行行う
  • 25.
    できるだけエッジで応答する   例)  DHCP  Server 各VMが仮想ネットワークへ放出するDHCP  Discoveryは、   Open  vSwitch上でフックされ、OF1.3に乗ってvnaへ到達する。   vnaはパケットクラフトし、DHCPの応答をする。   Physical  Server Physical  Server Open   vSwitch vna eth0 eth1 eth0 eth1 Management  Line Public  Line VM VM VM VM Open   vSwitch vna
  • 26.
  • 27.
    br0 VM-­‐5 Vif eth0 Vif vna3 vna VM-­‐6 br0 VM-­‐3 Vif eth0 Vif vna2 vna VM-­‐4 br0 VM-­‐1 Vif eth0 Vif vna1 VM-­‐2 vnadbavnmgr Demo  Environment Virtual  Network-­‐1   10.102.0.0/24 Virtual  Network-­‐2   10.102.0.0/24 172.16.20.11 172.16.30.11172.16.20.12 物理理Segmentが異異なる Router eth1eth1eth1 dhcp dhcp dhcp 管理理⽤用ネットワーク  191.168.2.0/24 VIF  /  Same  IP  Addr  Range  /  L2-­‐L3
  • 28.
    ご覧頂くデモ • Virtual  Networkを構築して仮想マシンを起動する   •  仮想マシンからのIPアドレス取得要求を   分散DHCPで応答し、付与する   •  2つのVirtual  Network間の疎通確認をする •  MAC2MAC   •  GRE  Tunnel  (Full-­‐mesh)
  • 29.
  • 30.
    現在開発中のもの • Packet  Filtering   •  vif毎にSecurity  Groups  +  Firewallルールを   設定できる機能   •  WAN  Edge  Networking   •  External  IP  (グローバルIPアドレスのNAT)   •  既存LANへの拡張   •  仮想ネットワークと既存LANの接続を提供   •  双⽅方向の通信を橋渡しするゲートウェイ  
  • 31.
    まとめ • Wakame-­‐vnetは、分散したOVSを管理理し、   エッジオーバレイ仮想ネットワークを   OSSだけで実現できます   •  物理理ネットワーク上に、   任意の仮想ネットワークを複数構築できます   •  OpenFlow  1.3に対応しています   •  OVS  1.10系   •  Trema-­‐edge   •  近⽇日公開いたします   •  Ruby  /  LGPL  3