SlideShare uma empresa Scribd logo
1 de 46
Copyright©2014 NTT corp. All Rights Reserved.
OpenFlowソフトウェアスイッチ
Lagopus
2015/4/23
NTT未来ねっと研究所 日比 智也 (hibitomo)
1Copyright©2014 NTT corp. All Rights Reserved.
構成
 Lagopusの概要
 Lagopus(OpenFlow)で遊んでみる
2Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 背景とターゲット
 デザインと評価結果
 最近の活動
4Copyright©2014 NTT corp. All Rights Reserved.
コントローラ
SDN?OpenFlow?Lagopus?
 一般的なネットワーク装置
ルータ
コントロールプレーン
データプレーン
ファイアーウォール
コントロールプレーン
データプレーン
ロードバランサ
コントロールプレーン
データプレーン
 SDN
スイッチ
データプレーン
スイッチ
データプレーン
スイッチ
コントロールプレーン
データプレーン
アプリ
コントローラ
コントロールプレーン
アプリ
プログラマブルAPI
OpenFlowプロトコル
5Copyright©2014 NTT corp. All Rights Reserved.
OpenFlow?
 どういうパケットだったら
 受信ポート番号,パケットヘッダの値(宛先,ソー
ス,各種ID...)
 どういう処理をする
 パケットヘッダの追加,削除,編集
 転送(ユニキャスト,マルチキャスト,ロードバラ
ンシング...)
 コントローラにパケットを転送して処理も可能
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
6Copyright©2014 NTT corp. All Rights Reserved.
Lagopus?
 OpenFlowスイッチのソフトウェア実装
 汎用x86サーバで動作可能
 高速なパケット処理と幅広いプロトコルに対応
 > 10Gbps
 OpenFlow仕様に幅広く対応
 オープンソース
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
7Copyright©2014 NTT corp. All Rights Reserved.
何ができる?
 SDN Japan 2014での実証実験
 アク セスポイ ント  
■  A Pの識別(V LA N )
■  V ID 毎にQoS制御
PoEスイッチ
インターネット
アクセスポイント
( AP)
La g op u sの役割
8Copyright©2014 NTT corp. All Rights Reserved.
何ができる?
 ブラジル-日本間(約1万8,000km)の映像伝送実験
9Copyright©2014 NTT corp. All Rights Reserved.
何ができる?
 iPOP2015での実証実験
LagopusLagopus
Packet Transport
(MPLS-TP)
Optical Packet Transport
OFRO/Ryu
H-CNT
ODENOS/Ryu
Orchestrator (ODENOS)
Trema Edge
Lagopus
SDN NW
Optical/
Transport
NW
Video streaming
Copies packets and
dispatches them to two paths
12Copyright©2014 NTT corp. All Rights Reserved.
ターゲット
TOR
Virtual Switch
Hypervisor
VM VM
Virtual Switch
Hypervisor
NFV NFV
Virtual Switch
Hypervisor
VM VM
Gateway CPE
Data Center Wide-area Network Access Network Intranet
Cloud,NFVに対応
する仮想スイッチ
異種NWを接続する
ゲートウェイ向け
ソフトスイッチ
異種NWを接続する
ゲートウェイ向け
ソフトスイッチ
13Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 背景とターゲット
 デザインと評価結果
 最近の活動
14Copyright©2014 NTT corp. All Rights Reserved.
設計の概要
 シンプルなモジュール構成
 スイッチエージェント
 データプレーン
 スイッチエージェント
 統一スイッチ資源モデル
 HALを介したデータプレーン制御
(Event queueベース)
 データプレーン
 高速NW I/Oライブラリ
(Intel DPDK)
 複数フローテーブルに
対応したフローキャッシュ
OpenFlow controller
OpenFlow 1.3
16Copyright©2014 NTT corp. All Rights Reserved.
機能評価の例
 Conformance test results by Ryu Certification
 http://osrg.github.io/ryu/certification.html
OpenFlow Switch
Action
(56)
Set Field
(170)
Match
(714)
Group
(15)
Meter
(36)
Total
(991)
Software
CpQd 50 159 708 15 30 962
Indigo Virtual Switch 17 46 337 1 0 401
LINC 24 68 428 3 0 523
Open vSwitch 34 96 534 6 0 670
Open vSwitch netdev 34 90 467 8 0 599
Trema Switch 50 159 708 15 34 966
Lagopus 56 161 714 15 34 980
Hardware
Centec V350 3 8 172 4 0 187
Edge-Core AS4600 3 0 63 0 18 84
HP 2920 0 2 44 0 0 46
IBM G8264 6 14 108 0 0 128
NEC PF5220 7 37 216 3 0 263
NoviKit200 37 35 164 15 0 251
Pica8 P-3290 24 49 362 0 0 435
17Copyright©2014 NTT corp. All Rights Reserved.
性能評価の例 (WAN-DCゲートウェイ)
0
1
2
3
4
5
6
7
8
9
10
0 200 400 600 800 1000 1200 1400 1600
Throughput(Gbps)
Packet size (byte)
10 flow rules
100 flow rules
1k flow rules
10k flow rules
100k flow rules
1M flow rules
0
1
2
3
4
5
6
7
8
9
10
1 10 100 1000 10000 100000 1000000
Throughput(Gbps)
flows
10k flow rules
100k flow rules
1M flow rules
 Throughput vs packet size
 1 flow
 flow-cache
 Throughput vs flows
 1518 bytes packet
18Copyright©2014 NTT corp. All Rights Reserved.
性能評価の例 (L2スイッチ)
 Throughput vs packet size
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
LINC OVS (netdev) OVS (kernel) Lagopus
(software)
Mbps
72
128
256
512
1024
1280
1518
Packet size
(bytes)
19Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 背景とターゲット
 デザインと評価結果
 最近の活動
20Copyright©2014 NTT corp. All Rights Reserved.
仮想マシンとの接続を実現
 2015/2/1リリース
 DPDK 2.0.0rc1にマージされた
Guest1
QEMU
App
DPDK
Guest2
QEMU
App
DPDK
Virtio-net PMD Virtio-net PMD
Lagopus
vswitch
DPDK
PMD
Map memory in guest VM
to lagopus memory
Map memory in guest VM
to lagopus memory
virtio virtio
virtio
queue
virtio
queue
PMD
vNIC
PMD
vNIC
21Copyright©2014 NTT corp. All Rights Reserved.
ソースコード
 2014年7月31日に公開
 http://lagopus.github.io/
 開発への参加
 コードの提供 -> GitHub Pull Request
 バグレポート -> GitHub Issues
 議論 -> Developers ML
22Copyright©2014 NTT corp. All Rights Reserved.
構成
 Lagopusの概要
 Lagopus(OpenFlow)で遊んでみる
23Copyright©2014 NTT corp. All Rights Reserved.
本日のテーマ
 Flowを設計して動かしてみる
 OpenFlowっぽいことをする
24Copyright©2014 NTT corp. All Rights Reserved.
OpenFlow?
 どういうパケットだったら
 受信ポート番号,パケットヘッダの値(宛先,ソー
ス,各種ID...)
 どういう処理をする
 パケットヘッダの追加,削除,編集
 転送(ユニキャスト,マルチキャスト,ロードバラ
ンシング...)
 コントローラにパケットを転送して処理も可能
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
25Copyright©2014 NTT corp. All Rights Reserved.
使用ソフトウェア
 Lagopus
 http://lagopus.github.io/
 Ryu (app/ofctl_rest.py)
 http://osrg.github.io/ryu/
 ofctl_script
 http://github.com/hibitomo/ofctl_script
26Copyright©2014 NTT corp. All Rights Reserved.
構成
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +----- VM 2
+-------------------------------------+
1. つなげてみる
2. 増やしてみる(VLAN)
3. リファクタリング&デバッグ(ミラーリング)
4. 騙してみる(DHCPサーバの共有)
27Copyright©2014 NTT corp. All Rights Reserved.
Flow 1: つなげてみる
 ns1 - ns2, ns3 - ns4
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +----- VM 2
+-------------------------------------+
28Copyright©2014 NTT corp. All Rights Reserved.
Flow 1: つなげてみる
table 0
{"priority":100,"actions":["OUTPUT:3"],"match":{"in_port":2}}
{"priority":100,"actions":["OUTPUT:2"],"match":{"in_port":3}}
{"priority":100,"actions":["OUTPUT:5"],"match":{"in_port":4}}
{"priority":100,"actions":["OUTPUT:4"],"match":{"in_port":5}}
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +----- VM 2
+-------------------------------------+
双方向のルール
を書く
29Copyright©2014 NTT corp. All Rights Reserved.
Flow 1: つなげてみる
 ユースケース
 ポートVLAN
 タグ変換
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +----- VM 2
+-------------------------------------+
30Copyright©2014 NTT corp. All Rights Reserved.
Flow 2: 増やしてみる
 VLAN100: ns1 - ns2
 VLAN200: ns3 - ns4
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
31Copyright©2014 NTT corp. All Rights Reserved.
Flow 2: 増やしてみる
table 0
{"priority":100,"actions":["OUTPUT:3","PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2}}
{"priority":100,"actions":["OUTPUT:2","PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3}}
{"priority":100,"actions":["POP_VLAN","OUTPUT:2","OUTPUT:3"],"match"
:{"dl_vlan":"100","in_port":6}}
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
OUTPUTを列挙
TAGの扱い注意
※ 普通はgroup tableを使用
32Copyright©2014 NTT corp. All Rights Reserved.
Flow 2: 増やしてみる
 ユースケース
 タグVLAN
 タグ変換
 モニタリング
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
33Copyright©2014 NTT corp. All Rights Reserved.
Flow 3: リファクタリング
 マルチテーブル,メタデータを活用
 1テーブルだけではフロー複雑.
書きこむ,書き換えるフローの数も多い.
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
 メタデータ:テーブル間で情報を渡す為の
フィールド
34Copyright©2014 NTT corp. All Rights Reserved.
Flow 3: リファクタリング
table 0
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1
00","in_port":6}}
{"priority":0,"actions":[],"match":{}}
table 1
{"priority":0,"actions":["GOTO_TABLE:2"],"match":{}}
table 2
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“
100"}}
{"priority":0,"actions":["GOTO_TABLE:3"],"match":{}}
table 3
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}}
{"priority":0,"actions":[],"match":{}}
※ 普通はgroup tableを使います
35Copyright©2014 NTT corp. All Rights Reserved.
Flow 3: リファクタリング
table 0
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1
00","in_port":6}}
{"priority":0,"actions":[],"match":{}}
table 1
{"priority":0,"actions":["GOTO_TABLE:2"],"match":{}}
table 2
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“
100"}}
{"priority":0,"actions":["GOTO_TABLE:3"],"match":{}}
table 3
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}}
{"priority":0,"actions":[],"match":{}}
• 入力ポート,TAGからVLANを識別
• Metadataにメモ
Application 1
• Accessへのブロードキャスト
Application 2
• Trunkへのブロードキャスト
• デバッグ用
※ 普通はgroup tableを使います
36Copyright©2014 NTT corp. All Rights Reserved.
Flow 3+: デバッグ
 ポートミラーリング
 VLANミラーリング
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
37Copyright©2014 NTT corp. All Rights Reserved.
Flow 3+: デバッグ
table 0
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1
00","in_port":6}}
{"priority":0,"actions":[],"match":{}}
table 1
{"priority":100,"actions":["GOTO_TABLE:2","OUTPUT:1"],"match":{"metadata":“100"}}
{"priority":0,"actions":["GOTO_TABLE:2"],"match":{}}
table 2
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“
100"}}
{"priority":0,"actions":["GOTO_TABLE:3"],"match":{}}
table 3
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}}
{"priority":0,"actions":[],"match":{}}
38Copyright©2014 NTT corp. All Rights Reserved.
Flow 3+: デバッグ
table 0
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}}
{"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1
00","in_port":6}}
{"priority":0,"actions":[],"match":{}}
table 1
{"priority":100,"actions":["GOTO_TABLE:2","OUTPUT:1"],"match":{"metadata":“100"}}
{"priority":0,"actions":["GOTO_TABLE:2"],"match":{}}
table 2
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“
100"}}
{"priority":0,"actions":["GOTO_TABLE:3"],"match":{}}
table 3
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}}
{"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD:
{vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}}
{"priority":0,"actions":[],"match":{}}
• Metadataを用いて識別.
• パケットをミラーリング
• 入力ポート,TAGからVLANを識別
• Metadataにメモ
Application 1
• Accessへのブロードキャスト
Application 2
• Trunkへのブロードキャスト
39Copyright©2014 NTT corp. All Rights Reserved.
Flow 4: 騙してみる
 1台のDHCPサーバを複数のVLANセグメ
ントで共有.
 MACアドレスは既知.
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
ns0-veth0 - 02:6b:4d:3c:3a:8c
192.168.0.1
ns1-veth0 - da:8d:ed:ec:da:70
192.168.0.10
ns2-veth0 - 4e:d2:0a:8e:2e:93
192.168.0.20
ns3-veth0 - c6:78:f7:f8:83:fd
192.168.0.10
ns4-veth0 - 12:10:c6:03:d5:d9
192.168.0.30
40Copyright©2014 NTT corp. All Rights Reserved.
Flow 4: 騙してみる
table 0
{"priority":110,"actions":["OUTPUT:2"],"match":{"dl_dst":"46:c0:64:90:
c6:92","in_port":1}}
{"priority":110,"actions":["OUTPUT:3"],"match":{"dl_dst":"d6:7e:8d:e9:f
8:a5","in_port":1}}
...
table 1
{"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src
":68,"nw_proto":17,"tp_dst":67,"metadata":"100"}}
{"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src
":68,"nw_proto":17,"tp_dst":67,"metadata":"200"}}
...
41Copyright©2014 NTT corp. All Rights Reserved.
Flow 4: 騙してみる
table 0
{"priority":110,"actions":["OUTPUT:2"],"match":{"dl_dst":"46:c0:64:90:
c6:92","in_port":1}}
{"priority":110,"actions":["OUTPUT:3"],"match":{"dl_dst":"d6:7e:8d:e9:f
8:a5","in_port":1}}
...
table 1
{"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src
":68,"nw_proto":17,"tp_dst":67,"metadata":"100"}}
{"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src
":68,"nw_proto":17,"tp_dst":67,"metadata":"200"}}
...
• 入力ポートからDHCPサーバの返答と
認識,宛先MACからVLANを識別
• UDPのポート番号からDHCPのリクエス
トと識別
42Copyright©2014 NTT corp. All Rights Reserved.
Flow 4: 騙してみる
 ユースケース
 仮想マシンの共有(NFV,アプリ)
 ユニキャストのマルチキャスト化
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| ns0 | | ns1 | | ns2 | | ns3 | | ns4 |
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+-------+-------+-------+-------+--+
| 1 2 3 4 5 |
| Lagopus OFswitch |
| 6 +------ trunk vlan100,200
+-------------------------------------+
43Copyright©2014 NTT corp. All Rights Reserved.
イベントのフローを想像する
 ブラジル-日本間(約1万8,000km)の映像伝送実験
 IPを変換してルータをだまし、経路切り替え
44Copyright©2014 NTT corp. All Rights Reserved.
イベントのフローを想像する
 iPoP2015での実証実験
LagopusLagopus
Packet Transport
(MPLS-TP)
Optical Packet Transport
OFRO/Ryu
H-CNT
ODENOS/Ryu
Orchestrator (ODENOS)
Trema Edge
Lagopus
SDN NW
Optical/
Transport
NW
Video streaming
Copies packets and
dispatches them to two paths
45Copyright©2014 NTT corp. All Rights Reserved.
イベントのフローを想像する
 SDN Japan 2014での実証実験
 http://www.sdnjapan.org/document_2014/31_session5_Ishida.pdf
 アク セスポイ ント  
■  A Pの識別(V LA N )
■  V ID 毎にQoS制御
PoEスイッチ
インターネット
アクセスポイント
( AP)
La g op u sの役割
46Copyright©2014 NTT corp. All Rights Reserved.
Flow設計の注意
 パケットイン
 遅い,遅延,パケット順序
 ARP
 ARP学習しないと通信は始まらない
 パケットコピー
 パケットコピーの処理は重い
 MACラーニング問題
 フロー数の容量
 フロー数が増えすぎると死ぬ
(特にHWスイッチ.SWは結構大丈夫)
47Copyright©2014 NTT corp. All Rights Reserved.
Flow設計の注意
 パケットイン
 遅い,遅延,パケット順序
 ARP
 ARP学習しないと通信は始まらない
 パケットコピー
 パケットコピーの処理は重い
 MACラーニング問題
 フロー数の容量
 フロー数が増えすぎると死ぬ
(特にHWスイッチ.SWは結構大丈夫)
• パケットインをしなければ行けない場面はよくある.
• フロー数の容量も含め,性能を意識した設計が必要
48Copyright©2014 NTT corp. All Rights Reserved.
今日のまとめ
 Lagopusってすごいらしい.
 はやい (x86サーバ,Linux)
 安い (OSS)
 うまい (10Gbps, 1MFlow, その他機能)
 OpenFlowって気持ち悪いこともできちゃう
 だが,それがいい
 痒いところに手が届かない場面では,是非
OpenFlowを!
49Copyright©2014 NTT corp. All Rights Reserved.
Thank you for your attention
This research is a part of the project for “Research and Development of
Network Virtualization Technology” supported by the Ministry of Internal
Affairs and Communications.

Mais conteúdo relacionado

Mais procurados

Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Tomoya Hibi
 
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定シスコシステムズ合同会社
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~npsg
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1Tomoya Hibi
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07Tomoya Hibi
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFWTomoya Hibi
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya Hibi
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKTomoya Hibi
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVRToru Makabe
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門Yuki Suga
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察Naoto MATSUMOTO
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_finalKazumasa Ikuta
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...VirtualTech Japan Inc.
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 

Mais procurados (20)

Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)
 
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFW
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 

Destaque

ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSnpsg
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析npsg
 
CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicatornpsg
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
自動化と画面を考えてみました
自動化と画面を考えてみました自動化と画面を考えてみました
自動化と画面を考えてみましたskipping classes
 
ネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいnpsg
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考えるskipping classes
 
API イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXAPI イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXnpsg
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズMiho Yamamoto
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたnpsg
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視npsg
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAkira Iwamoto
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始めnpsg
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introductionTaiji Tsuchiya
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoTcloretsblack
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyYahoo!デベロッパーネットワーク
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)akira6592
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るcloretsblack
 

Destaque (20)

ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
Contiv
ContivContiv
Contiv
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
 
CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicator
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
自動化と画面を考えてみました
自動化と画面を考えてみました自動化と画面を考えてみました
自動化と画面を考えてみました
 
ネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらい
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える
 
API イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXAPI イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMX
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズ
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nso
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始め
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introduction
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoT
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作る
 

Semelhante a ネットワークプログラマビリティ勉強会

ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019Takehiro Kudou
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyattajem 3
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへJuniper Networks (日本)
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native servicesTakehiko Amano
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!シスコシステムズ合同会社
 
BGP as a method for Abstraction
BGP as a method for AbstractionBGP as a method for Abstraction
BGP as a method for AbstractionMiya Kohno
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Takehiro Kudou
 
ネットワーク仮想化の導入指南
ネットワーク仮想化の導入指南ネットワーク仮想化の導入指南
ネットワーク仮想化の導入指南Hinemos
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack QuantumAkihiro Motoki
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...VirtualTech Japan Inc.
 

Semelhante a ネットワークプログラマビリティ勉強会 (20)

ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019
 
150212 summit発表用資料 公開用
150212 summit発表用資料 公開用150212 summit発表用資料 公開用
150212 summit発表用資料 公開用
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyatta
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native services
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Shownet2017 report
Shownet2017 reportShownet2017 report
Shownet2017 report
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
 
BGP as a method for Abstraction
BGP as a method for AbstractionBGP as a method for Abstraction
BGP as a method for Abstraction
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
ネットワーク仮想化の導入指南
ネットワーク仮想化の導入指南ネットワーク仮想化の導入指南
ネットワーク仮想化の導入指南
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
http2 最速実装 v2
http2 最速実装 v2 http2 最速実装 v2
http2 最速実装 v2
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 

Último

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Último (9)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

ネットワークプログラマビリティ勉強会

  • 1. Copyright©2014 NTT corp. All Rights Reserved. OpenFlowソフトウェアスイッチ Lagopus 2015/4/23 NTT未来ねっと研究所 日比 智也 (hibitomo)
  • 2. 1Copyright©2014 NTT corp. All Rights Reserved. 構成  Lagopusの概要  Lagopus(OpenFlow)で遊んでみる
  • 3. 2Copyright©2014 NTT corp. All Rights Reserved. Agenda  背景とターゲット  デザインと評価結果  最近の活動
  • 4. 4Copyright©2014 NTT corp. All Rights Reserved. コントローラ SDN?OpenFlow?Lagopus?  一般的なネットワーク装置 ルータ コントロールプレーン データプレーン ファイアーウォール コントロールプレーン データプレーン ロードバランサ コントロールプレーン データプレーン  SDN スイッチ データプレーン スイッチ データプレーン スイッチ コントロールプレーン データプレーン アプリ コントローラ コントロールプレーン アプリ プログラマブルAPI OpenFlowプロトコル
  • 5. 5Copyright©2014 NTT corp. All Rights Reserved. OpenFlow?  どういうパケットだったら  受信ポート番号,パケットヘッダの値(宛先,ソー ス,各種ID...)  どういう処理をする  パケットヘッダの追加,削除,編集  転送(ユニキャスト,マルチキャスト,ロードバラ ンシング...)  コントローラにパケットを転送して処理も可能 OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 6. 6Copyright©2014 NTT corp. All Rights Reserved. Lagopus?  OpenFlowスイッチのソフトウェア実装  汎用x86サーバで動作可能  高速なパケット処理と幅広いプロトコルに対応  > 10Gbps  OpenFlow仕様に幅広く対応  オープンソース OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 7. 7Copyright©2014 NTT corp. All Rights Reserved. 何ができる?  SDN Japan 2014での実証実験  アク セスポイ ント   ■  A Pの識別(V LA N ) ■  V ID 毎にQoS制御 PoEスイッチ インターネット アクセスポイント ( AP) La g op u sの役割
  • 8. 8Copyright©2014 NTT corp. All Rights Reserved. 何ができる?  ブラジル-日本間(約1万8,000km)の映像伝送実験
  • 9. 9Copyright©2014 NTT corp. All Rights Reserved. 何ができる?  iPOP2015での実証実験 LagopusLagopus Packet Transport (MPLS-TP) Optical Packet Transport OFRO/Ryu H-CNT ODENOS/Ryu Orchestrator (ODENOS) Trema Edge Lagopus SDN NW Optical/ Transport NW Video streaming Copies packets and dispatches them to two paths
  • 10. 12Copyright©2014 NTT corp. All Rights Reserved. ターゲット TOR Virtual Switch Hypervisor VM VM Virtual Switch Hypervisor NFV NFV Virtual Switch Hypervisor VM VM Gateway CPE Data Center Wide-area Network Access Network Intranet Cloud,NFVに対応 する仮想スイッチ 異種NWを接続する ゲートウェイ向け ソフトスイッチ 異種NWを接続する ゲートウェイ向け ソフトスイッチ
  • 11. 13Copyright©2014 NTT corp. All Rights Reserved. Agenda  背景とターゲット  デザインと評価結果  最近の活動
  • 12. 14Copyright©2014 NTT corp. All Rights Reserved. 設計の概要  シンプルなモジュール構成  スイッチエージェント  データプレーン  スイッチエージェント  統一スイッチ資源モデル  HALを介したデータプレーン制御 (Event queueベース)  データプレーン  高速NW I/Oライブラリ (Intel DPDK)  複数フローテーブルに 対応したフローキャッシュ OpenFlow controller OpenFlow 1.3
  • 13. 16Copyright©2014 NTT corp. All Rights Reserved. 機能評価の例  Conformance test results by Ryu Certification  http://osrg.github.io/ryu/certification.html OpenFlow Switch Action (56) Set Field (170) Match (714) Group (15) Meter (36) Total (991) Software CpQd 50 159 708 15 30 962 Indigo Virtual Switch 17 46 337 1 0 401 LINC 24 68 428 3 0 523 Open vSwitch 34 96 534 6 0 670 Open vSwitch netdev 34 90 467 8 0 599 Trema Switch 50 159 708 15 34 966 Lagopus 56 161 714 15 34 980 Hardware Centec V350 3 8 172 4 0 187 Edge-Core AS4600 3 0 63 0 18 84 HP 2920 0 2 44 0 0 46 IBM G8264 6 14 108 0 0 128 NEC PF5220 7 37 216 3 0 263 NoviKit200 37 35 164 15 0 251 Pica8 P-3290 24 49 362 0 0 435
  • 14. 17Copyright©2014 NTT corp. All Rights Reserved. 性能評価の例 (WAN-DCゲートウェイ) 0 1 2 3 4 5 6 7 8 9 10 0 200 400 600 800 1000 1200 1400 1600 Throughput(Gbps) Packet size (byte) 10 flow rules 100 flow rules 1k flow rules 10k flow rules 100k flow rules 1M flow rules 0 1 2 3 4 5 6 7 8 9 10 1 10 100 1000 10000 100000 1000000 Throughput(Gbps) flows 10k flow rules 100k flow rules 1M flow rules  Throughput vs packet size  1 flow  flow-cache  Throughput vs flows  1518 bytes packet
  • 15. 18Copyright©2014 NTT corp. All Rights Reserved. 性能評価の例 (L2スイッチ)  Throughput vs packet size 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 LINC OVS (netdev) OVS (kernel) Lagopus (software) Mbps 72 128 256 512 1024 1280 1518 Packet size (bytes)
  • 16. 19Copyright©2014 NTT corp. All Rights Reserved. Agenda  背景とターゲット  デザインと評価結果  最近の活動
  • 17. 20Copyright©2014 NTT corp. All Rights Reserved. 仮想マシンとの接続を実現  2015/2/1リリース  DPDK 2.0.0rc1にマージされた Guest1 QEMU App DPDK Guest2 QEMU App DPDK Virtio-net PMD Virtio-net PMD Lagopus vswitch DPDK PMD Map memory in guest VM to lagopus memory Map memory in guest VM to lagopus memory virtio virtio virtio queue virtio queue PMD vNIC PMD vNIC
  • 18. 21Copyright©2014 NTT corp. All Rights Reserved. ソースコード  2014年7月31日に公開  http://lagopus.github.io/  開発への参加  コードの提供 -> GitHub Pull Request  バグレポート -> GitHub Issues  議論 -> Developers ML
  • 19. 22Copyright©2014 NTT corp. All Rights Reserved. 構成  Lagopusの概要  Lagopus(OpenFlow)で遊んでみる
  • 20. 23Copyright©2014 NTT corp. All Rights Reserved. 本日のテーマ  Flowを設計して動かしてみる  OpenFlowっぽいことをする
  • 21. 24Copyright©2014 NTT corp. All Rights Reserved. OpenFlow?  どういうパケットだったら  受信ポート番号,パケットヘッダの値(宛先,ソー ス,各種ID...)  どういう処理をする  パケットヘッダの追加,削除,編集  転送(ユニキャスト,マルチキャスト,ロードバラ ンシング...)  コントローラにパケットを転送して処理も可能 OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 22. 25Copyright©2014 NTT corp. All Rights Reserved. 使用ソフトウェア  Lagopus  http://lagopus.github.io/  Ryu (app/ofctl_rest.py)  http://osrg.github.io/ryu/  ofctl_script  http://github.com/hibitomo/ofctl_script
  • 23. 26Copyright©2014 NTT corp. All Rights Reserved. 構成 +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +----- VM 2 +-------------------------------------+ 1. つなげてみる 2. 増やしてみる(VLAN) 3. リファクタリング&デバッグ(ミラーリング) 4. 騙してみる(DHCPサーバの共有)
  • 24. 27Copyright©2014 NTT corp. All Rights Reserved. Flow 1: つなげてみる  ns1 - ns2, ns3 - ns4 +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +----- VM 2 +-------------------------------------+
  • 25. 28Copyright©2014 NTT corp. All Rights Reserved. Flow 1: つなげてみる table 0 {"priority":100,"actions":["OUTPUT:3"],"match":{"in_port":2}} {"priority":100,"actions":["OUTPUT:2"],"match":{"in_port":3}} {"priority":100,"actions":["OUTPUT:5"],"match":{"in_port":4}} {"priority":100,"actions":["OUTPUT:4"],"match":{"in_port":5}} +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +----- VM 2 +-------------------------------------+ 双方向のルール を書く
  • 26. 29Copyright©2014 NTT corp. All Rights Reserved. Flow 1: つなげてみる  ユースケース  ポートVLAN  タグ変換 +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +----- VM 2 +-------------------------------------+
  • 27. 30Copyright©2014 NTT corp. All Rights Reserved. Flow 2: 増やしてみる  VLAN100: ns1 - ns2  VLAN200: ns3 - ns4 +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+
  • 28. 31Copyright©2014 NTT corp. All Rights Reserved. Flow 2: 増やしてみる table 0 {"priority":100,"actions":["OUTPUT:3","PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2}} {"priority":100,"actions":["OUTPUT:2","PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3}} {"priority":100,"actions":["POP_VLAN","OUTPUT:2","OUTPUT:3"],"match" :{"dl_vlan":"100","in_port":6}} +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+ OUTPUTを列挙 TAGの扱い注意 ※ 普通はgroup tableを使用
  • 29. 32Copyright©2014 NTT corp. All Rights Reserved. Flow 2: 増やしてみる  ユースケース  タグVLAN  タグ変換  モニタリング +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+
  • 30. 33Copyright©2014 NTT corp. All Rights Reserved. Flow 3: リファクタリング  マルチテーブル,メタデータを活用  1テーブルだけではフロー複雑. 書きこむ,書き換えるフローの数も多い. OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4  メタデータ:テーブル間で情報を渡す為の フィールド
  • 31. 34Copyright©2014 NTT corp. All Rights Reserved. Flow 3: リファクタリング table 0 {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1 00","in_port":6}} {"priority":0,"actions":[],"match":{}} table 1 {"priority":0,"actions":["GOTO_TABLE:2"],"match":{}} table 2 {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“ 100"}} {"priority":0,"actions":["GOTO_TABLE:3"],"match":{}} table 3 {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}} {"priority":0,"actions":[],"match":{}} ※ 普通はgroup tableを使います
  • 32. 35Copyright©2014 NTT corp. All Rights Reserved. Flow 3: リファクタリング table 0 {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1 00","in_port":6}} {"priority":0,"actions":[],"match":{}} table 1 {"priority":0,"actions":["GOTO_TABLE:2"],"match":{}} table 2 {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“ 100"}} {"priority":0,"actions":["GOTO_TABLE:3"],"match":{}} table 3 {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}} {"priority":0,"actions":[],"match":{}} • 入力ポート,TAGからVLANを識別 • Metadataにメモ Application 1 • Accessへのブロードキャスト Application 2 • Trunkへのブロードキャスト • デバッグ用 ※ 普通はgroup tableを使います
  • 33. 36Copyright©2014 NTT corp. All Rights Reserved. Flow 3+: デバッグ  ポートミラーリング  VLANミラーリング +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+
  • 34. 37Copyright©2014 NTT corp. All Rights Reserved. Flow 3+: デバッグ table 0 {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1 00","in_port":6}} {"priority":0,"actions":[],"match":{}} table 1 {"priority":100,"actions":["GOTO_TABLE:2","OUTPUT:1"],"match":{"metadata":“100"}} {"priority":0,"actions":["GOTO_TABLE:2"],"match":{}} table 2 {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“ 100"}} {"priority":0,"actions":["GOTO_TABLE:3"],"match":{}} table 3 {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}} {"priority":0,"actions":[],"match":{}}
  • 35. 38Copyright©2014 NTT corp. All Rights Reserved. Flow 3+: デバッグ table 0 {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":2}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1"],"match":{"in_port":3}} {"priority":100,"actions":["WRITE_METADATA:100","GOTO_TABLE:1","POP_VLAN"],"match":{"dl_vlan":"1 00","in_port":6}} {"priority":0,"actions":[],"match":{}} table 1 {"priority":100,"actions":["GOTO_TABLE:2","OUTPUT:1"],"match":{"metadata":“100"}} {"priority":0,"actions":["GOTO_TABLE:2"],"match":{}} table 2 {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3"],"match":{"in_port":2,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:2"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["GOTO_TABLE:3","OUTPUT:3","OUTPUT:2"],"match":{"in_port":6,"metadata":“ 100"}} {"priority":0,"actions":["GOTO_TABLE:3"],"match":{}} table 3 {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":3,"metadata":“100"}} {"priority":100,"actions":["PUSH_VLAN:33024","SET_FIELD: {vlan_vid:100}","OUTPUT:6"],"match":{"in_port":2,"metadata":“100"}} {"priority":0,"actions":[],"match":{}} • Metadataを用いて識別. • パケットをミラーリング • 入力ポート,TAGからVLANを識別 • Metadataにメモ Application 1 • Accessへのブロードキャスト Application 2 • Trunkへのブロードキャスト
  • 36. 39Copyright©2014 NTT corp. All Rights Reserved. Flow 4: 騙してみる  1台のDHCPサーバを複数のVLANセグメ ントで共有.  MACアドレスは既知. +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+ ns0-veth0 - 02:6b:4d:3c:3a:8c 192.168.0.1 ns1-veth0 - da:8d:ed:ec:da:70 192.168.0.10 ns2-veth0 - 4e:d2:0a:8e:2e:93 192.168.0.20 ns3-veth0 - c6:78:f7:f8:83:fd 192.168.0.10 ns4-veth0 - 12:10:c6:03:d5:d9 192.168.0.30
  • 37. 40Copyright©2014 NTT corp. All Rights Reserved. Flow 4: 騙してみる table 0 {"priority":110,"actions":["OUTPUT:2"],"match":{"dl_dst":"46:c0:64:90: c6:92","in_port":1}} {"priority":110,"actions":["OUTPUT:3"],"match":{"dl_dst":"d6:7e:8d:e9:f 8:a5","in_port":1}} ... table 1 {"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src ":68,"nw_proto":17,"tp_dst":67,"metadata":"100"}} {"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src ":68,"nw_proto":17,"tp_dst":67,"metadata":"200"}} ...
  • 38. 41Copyright©2014 NTT corp. All Rights Reserved. Flow 4: 騙してみる table 0 {"priority":110,"actions":["OUTPUT:2"],"match":{"dl_dst":"46:c0:64:90: c6:92","in_port":1}} {"priority":110,"actions":["OUTPUT:3"],"match":{"dl_dst":"d6:7e:8d:e9:f 8:a5","in_port":1}} ... table 1 {"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src ":68,"nw_proto":17,"tp_dst":67,"metadata":"100"}} {"priority":110,"actions":["OUTPUT:1"],"match":{"dl_type":2048,"tp_src ":68,"nw_proto":17,"tp_dst":67,"metadata":"200"}} ... • 入力ポートからDHCPサーバの返答と 認識,宛先MACからVLANを識別 • UDPのポート番号からDHCPのリクエス トと識別
  • 39. 42Copyright©2014 NTT corp. All Rights Reserved. Flow 4: 騙してみる  ユースケース  仮想マシンの共有(NFV,アプリ)  ユニキャストのマルチキャスト化 +-----+ +-----+ +-----+ +-----+ +-----+ | | | | | | | | | | | ns0 | | ns1 | | ns2 | | ns3 | | ns4 | | | | | | | | | | | +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ | | | | | +--+-------+-------+-------+-------+--+ | 1 2 3 4 5 | | Lagopus OFswitch | | 6 +------ trunk vlan100,200 +-------------------------------------+
  • 40. 43Copyright©2014 NTT corp. All Rights Reserved. イベントのフローを想像する  ブラジル-日本間(約1万8,000km)の映像伝送実験  IPを変換してルータをだまし、経路切り替え
  • 41. 44Copyright©2014 NTT corp. All Rights Reserved. イベントのフローを想像する  iPoP2015での実証実験 LagopusLagopus Packet Transport (MPLS-TP) Optical Packet Transport OFRO/Ryu H-CNT ODENOS/Ryu Orchestrator (ODENOS) Trema Edge Lagopus SDN NW Optical/ Transport NW Video streaming Copies packets and dispatches them to two paths
  • 42. 45Copyright©2014 NTT corp. All Rights Reserved. イベントのフローを想像する  SDN Japan 2014での実証実験  http://www.sdnjapan.org/document_2014/31_session5_Ishida.pdf  アク セスポイ ント   ■  A Pの識別(V LA N ) ■  V ID 毎にQoS制御 PoEスイッチ インターネット アクセスポイント ( AP) La g op u sの役割
  • 43. 46Copyright©2014 NTT corp. All Rights Reserved. Flow設計の注意  パケットイン  遅い,遅延,パケット順序  ARP  ARP学習しないと通信は始まらない  パケットコピー  パケットコピーの処理は重い  MACラーニング問題  フロー数の容量  フロー数が増えすぎると死ぬ (特にHWスイッチ.SWは結構大丈夫)
  • 44. 47Copyright©2014 NTT corp. All Rights Reserved. Flow設計の注意  パケットイン  遅い,遅延,パケット順序  ARP  ARP学習しないと通信は始まらない  パケットコピー  パケットコピーの処理は重い  MACラーニング問題  フロー数の容量  フロー数が増えすぎると死ぬ (特にHWスイッチ.SWは結構大丈夫) • パケットインをしなければ行けない場面はよくある. • フロー数の容量も含め,性能を意識した設計が必要
  • 45. 48Copyright©2014 NTT corp. All Rights Reserved. 今日のまとめ  Lagopusってすごいらしい.  はやい (x86サーバ,Linux)  安い (OSS)  うまい (10Gbps, 1MFlow, その他機能)  OpenFlowって気持ち悪いこともできちゃう  だが,それがいい  痒いところに手が届かない場面では,是非 OpenFlowを!
  • 46. 49Copyright©2014 NTT corp. All Rights Reserved. Thank you for your attention This research is a part of the project for “Research and Development of Network Virtualization Technology” supported by the Ministry of Internal Affairs and Communications.