SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Copyright©2014 NTT corp. All Rights Reserved.
OpenFlowソフトウェアスイッチ
Lagopusで遊ぶ(仮)
2015/08/08
NTT未来ねっと研究所
日比 智也
1Copyright©2014 NTT corp. All Rights Reserved.
ところで
 ご覧になったことありますか?
 @stereocatさん, Tremaday #4
http://www.slideshare.net/stereocat55/tremafirewall
2Copyright©2014 NTT corp. All Rights Reserved.
@stereocatさんのスライドです
http://www.slideshare.net/stereocat55/tremafirewall
3Copyright©2014 NTT corp. All Rights Reserved.
@stereocatさんのスライドです
http://www.slideshare.net/stereocat55/tremafirewall
4Copyright©2014 NTT corp. All Rights Reserved.
@stereocatさんのスライドです
http://www.slideshare.net/stereocat55/tremafirewall
5Copyright©2014 NTT corp. All Rights Reserved.
ところで,,,,
 実装はOpenFlow1.0ベース
 RangeはBitmaskでどう表現するの???
 そもそもL4はbitmask掛けれない...
 FWをOpenFlowで表現するのは無理?
 簡単なテストにしか使えない?
6Copyright©2014 NTT corp. All Rights Reserved.
ところで,,,,
 実装はOpenFlow1.0ベース
 RangeはBitmaskでどう表現するの???
 そもそもL4はbitmask掛けれない...
それでもLagopusなら,,,
Lagopusならなんとかしてくれる,,,
Copyright©2014 NTT corp. All Rights Reserved.
Lagopusで試すFirewall
OpenFlow1.3で実現する
FW運用のテストツール試作
Copyright©2014 NTT corp. All Rights Reserved.
Lagopusで試すFirewall
OpenFlow1.3で実現する
FW運用のテストツール試作
ココが違う
9Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 Rangeの表記どうする?
 TCP/UDPポートどうする?
 実装どうする?
10Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 Rangeの表記どうする?
 TCP/UDPポートどうする?
 実装どうする?
11Copyright©2014 NTT corp. All Rights Reserved.
Rangeの表記どうする?
 そもそもTCAMで検索できているはず
 TCAMは{0,1,don’t care}で検索
 RangeもTCAMで検索しているなら,Lagopus
でも検索できるはず.
 再起アルゴリズムで
Range -> Bitmask表記のルールに変換
12Copyright©2014 NTT corp. All Rights Reserved.
例題
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 0110 ~ 1111 をbitmaskのルールに分割
13Copyright©2014 NTT corp. All Rights Reserved.
例題
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 0110 ~ 1111 をbitmaskのルールに分割
14Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
1. ****が範囲に含まれるかチェック
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
****
15Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
2. ****の範囲を2つに分割
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1***0***
16Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
3. 1***はRangeに含まれる
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1***0***
17Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
2’. 0***を2つに分割
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1***00** 01**
18Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
2’’. 01**を2つに分割
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
00** 010* 1***011*
19Copyright©2014 NTT corp. All Rights Reserved.
Algorithm 簡単(?)に
2’’. 01**を2つに分割
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
00** 010* 1***011*
0110 ~ 1111 で表されるレンジは,{011*, 1***}で
表されるルールの集合でちょうどカバー出来る.
20Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 Rangeの表記どうする?
 Bitmask表記に変換できる!
 TCP/UDPポートどうする?
 実装どうする?
21Copyright©2014 NTT corp. All Rights Reserved.
Bitmaskが使えないTCP/UDP
 OpenFlow1.0からの違いといえば,
Metadata & Multi table
 Metadataにコピーすればいいじゃん
 しかし,Copy_Fieldは未対応....
Metadata (64bit)L4 srcL4 dst
22Copyright©2014 NTT corp. All Rights Reserved.
Bitmaskが使えないTCP/UDP
 書き下せばいいじゃない.
※ルール数が65536 * 2 * 2 = 26万
for i in range(0, 65535):
# SRC
for ip_proto in [6, 17] :
flow = {"table_id":0,"priority":1000,
"actions":[{"type":"WRITE_METADATA","metadata":i << 16,
"metadata_mask":0x00000000FFFF0000}],
"match":{"dl_type":2048,"ip_proto":ip_proto,"tp_src":i}}
mod_flow_entry(datapath, flow, ofproto.OFPFC_ADD)
# DST
...
23Copyright©2014 NTT corp. All Rights Reserved.
それでもLagopusなら....
 Lagopusならなんとかしてくれる...
私の戦闘力は
100万です.
24Copyright©2014 NTT corp. All Rights Reserved.
そんなことしなくても...
 リアクティブに登録しても実現できる
1. TCP/UDPパケットが来たらPacket-In
2. ポート番号のメタデータコピーのルール追加
未登録のPort番号で
あれば,Packet-In
Port番号コピーのルール
+ Packet-Out
コントローラ
スイッチ
データプレーン
コントロールプレーン
25Copyright©2014 NTT corp. All Rights Reserved.
Agenda
 Rangeの表記どうする?
 Bitmask表記に変換できる!
 TCP/UDPポートどうする?
 Metadataにコピーする!
 きっとLagopusならなんとかしてくれる!
 実装どうする?
26Copyright©2014 NTT corp. All Rights Reserved.
実装どうする?
 テーブル設計
 table 0:
 L4 srcポートをmetadataにコピー(32~16bitに)
 table 1:
 L4 dstポートをmetadataにコピー (16~0bitに)
 table 2:
 Range -> Bitmask変換したルール群投入
 マッチしたら落とす or OUTPUT
or Next table (他のアプリケーション)
27Copyright©2014 NTT corp. All Rights Reserved.
実装どうする?
 Table 0のルール例
{'priority': 1000, 'table_id': 0,
'match': {'dl_type': 2048, 'ip_proto': 6, 'tp_src': 5},
'actions': [
{'metadata_mask': 4294901760,
‘type': 'WRITE_METADATA',
'metadata': 327680}
]
}
0xFFFF0000
UDP/TCP両方で
ルール登録
0x00050000
28Copyright©2014 NTT corp. All Rights Reserved.
実装どうする?
 Table 1のルール例
{'priority': 1000, 'table_id': 1,
'match': {'dl_type': 2048, 'ip_proto': 17, 'tp_dst': 8},
'actions': [
{'metadata_mask': 65535,
'type': 'WRITE_METADATA',
'metadata': 8}
]
}
29Copyright©2014 NTT corp. All Rights Reserved.
実装どうする?
 Table 2のルール例
(アドレスに意味はありません)
{"table_id":2,"priority":65535,"cookie":0,
"actions":[],
"match":{
"dl_type":2048,
"ipv4_src":“192.168.1.10/255.255.255.240",
"ipv4_dst":“192.168.1.171/255.255.255.240",
"ip_proto":17,
"metadata":"0x0000000000580050/0x00000000ffffffff"}
}
30Copyright©2014 NTT corp. All Rights Reserved.
単体利用できます.
 ルールの追加/削除が動的に出来ます.
 priorityをちゃんと考えれば.
 他のアプリと組み合わせられます.
 テーブル設計の競合注意
 iptablesをより速い?(試してない)
31Copyright©2014 NTT corp. All Rights Reserved.
デモ
 ルール追加だけです><
32Copyright©2014 NTT corp. All Rights Reserved.
まとめ
 Lagopusで試すFWを実現
 Lagopusならなんとかしてくれるはず
33Copyright©2014 NTT corp. All Rights Reserved.
注意
 現在はルール投入に時間がかかります.
 新Lookupだと高速になりそうだが,まだ
動作が怪しい..
 良い子はコピーフィールドが使える
OpenFlow Switchの利用も考えましょう.
 できる子はLagopusにコピーフィールド実
装してください.
34Copyright©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.

Contenu connexe

Tendances

Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばYoshihiro Nakajima
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングTomoya Hibi
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Tomoya Hibi
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya 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とAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKTomoya Hibi
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続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 と シスコ技術者認定シスコシステムズ合同会社
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門Yuki Suga
 
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
 
スイッチ・ルータのしくみ
スイッチ・ルータのしくみスイッチ・ルータのしくみ
スイッチ・ルータのしくみogatay
 
第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
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととかM Hagiwara
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
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.
 

Tendances (20)

Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
【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 と シスコ技術者認定
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
 
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
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
VTI の中身
VTI の中身VTI の中身
VTI の中身
 
スイッチ・ルータのしくみ
スイッチ・ルータのしくみスイッチ・ルータのしくみ
スイッチ・ルータのしくみ
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
 

En vedette

openNaEFを使ったTopology-Viewer
openNaEFを使ったTopology-VieweropenNaEFを使ったTopology-Viewer
openNaEFを使ったTopology-ViewerTaiki Yamazaki
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定Takashi Naito
 
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかOpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかMasaru Oki
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)Masaru Oki
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案Yutaka Yasuda
 
HoloLens x Graphics 入門
HoloLens x Graphics 入門HoloLens x Graphics 入門
HoloLens x Graphics 入門hecomi
 

En vedette (6)

openNaEFを使ったTopology-Viewer
openNaEFを使ったTopology-VieweropenNaEFを使ったTopology-Viewer
openNaEFを使ったTopology-Viewer
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
 
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかOpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案
 
HoloLens x Graphics 入門
HoloLens x Graphics 入門HoloLens x Graphics 入門
HoloLens x Graphics 入門
 

Similaire à Lagopusで試すFirewall

[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...Insight Technology, Inc.
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Takehiro Kudou
 
20180704 soracom discovery_ug#11
20180704 soracom discovery_ug#1120180704 soracom discovery_ug#11
20180704 soracom discovery_ug#11Haruka Yamashita
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組NTT Software Innovation Center
 
WebRTCハンズオン
WebRTCハンズオンWebRTCハンズオン
WebRTCハンズオンYusuke Naka
 
透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT透過 L2 BRIDGE NAT
透過 L2 BRIDGE NATh-otter
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
loggregator update
loggregator updateloggregator update
loggregator updateKen Ojiri
 
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向Midokura
 
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」aitc_jp
 
Software is eating the world
Software is eating the worldSoftware is eating the world
Software is eating the worldOsaka University
 
RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用Device WebAPI Consortium
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
momentum紹介資料【中文】
momentum紹介資料【中文】momentum紹介資料【中文】
momentum紹介資料【中文】Jim Zhang
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713Takehiro Kudou
 

Similaire à Lagopusで試すFirewall (20)

SkyWay HandsOn
SkyWay HandsOnSkyWay HandsOn
SkyWay HandsOn
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
20180704 soracom discovery_ug#11
20180704 soracom discovery_ug#1120180704 soracom discovery_ug#11
20180704 soracom discovery_ug#11
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組
 
WebRTCハンズオン
WebRTCハンズオンWebRTCハンズオン
WebRTCハンズオン
 
[Japan Tech summit 2017] MAI 008
[Japan Tech summit 2017] MAI 008[Japan Tech summit 2017] MAI 008
[Japan Tech summit 2017] MAI 008
 
透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
loggregator update
loggregator updateloggregator update
loggregator update
 
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向
OpenStack Networkingとネットワーク仮想化ソフトMidoNet最新動向
 
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
 
Software is eating the world
Software is eating the worldSoftware is eating the world
Software is eating the world
 
RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
社内勉強会を継続成長させる方法
社内勉強会を継続成長させる方法社内勉強会を継続成長させる方法
社内勉強会を継続成長させる方法
 
momentum紹介資料【中文】
momentum紹介資料【中文】momentum紹介資料【中文】
momentum紹介資料【中文】
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
 

Lagopusで試すFirewall

  • 1. Copyright©2014 NTT corp. All Rights Reserved. OpenFlowソフトウェアスイッチ Lagopusで遊ぶ(仮) 2015/08/08 NTT未来ねっと研究所 日比 智也
  • 2. 1Copyright©2014 NTT corp. All Rights Reserved. ところで  ご覧になったことありますか?  @stereocatさん, Tremaday #4 http://www.slideshare.net/stereocat55/tremafirewall
  • 3. 2Copyright©2014 NTT corp. All Rights Reserved. @stereocatさんのスライドです http://www.slideshare.net/stereocat55/tremafirewall
  • 4. 3Copyright©2014 NTT corp. All Rights Reserved. @stereocatさんのスライドです http://www.slideshare.net/stereocat55/tremafirewall
  • 5. 4Copyright©2014 NTT corp. All Rights Reserved. @stereocatさんのスライドです http://www.slideshare.net/stereocat55/tremafirewall
  • 6. 5Copyright©2014 NTT corp. All Rights Reserved. ところで,,,,  実装はOpenFlow1.0ベース  RangeはBitmaskでどう表現するの???  そもそもL4はbitmask掛けれない...  FWをOpenFlowで表現するのは無理?  簡単なテストにしか使えない?
  • 7. 6Copyright©2014 NTT corp. All Rights Reserved. ところで,,,,  実装はOpenFlow1.0ベース  RangeはBitmaskでどう表現するの???  そもそもL4はbitmask掛けれない... それでもLagopusなら,,, Lagopusならなんとかしてくれる,,,
  • 8. Copyright©2014 NTT corp. All Rights Reserved. Lagopusで試すFirewall OpenFlow1.3で実現する FW運用のテストツール試作
  • 9. Copyright©2014 NTT corp. All Rights Reserved. Lagopusで試すFirewall OpenFlow1.3で実現する FW運用のテストツール試作 ココが違う
  • 10. 9Copyright©2014 NTT corp. All Rights Reserved. Agenda  Rangeの表記どうする?  TCP/UDPポートどうする?  実装どうする?
  • 11. 10Copyright©2014 NTT corp. All Rights Reserved. Agenda  Rangeの表記どうする?  TCP/UDPポートどうする?  実装どうする?
  • 12. 11Copyright©2014 NTT corp. All Rights Reserved. Rangeの表記どうする?  そもそもTCAMで検索できているはず  TCAMは{0,1,don’t care}で検索  RangeもTCAMで検索しているなら,Lagopus でも検索できるはず.  再起アルゴリズムで Range -> Bitmask表記のルールに変換
  • 13. 12Copyright©2014 NTT corp. All Rights Reserved. 例題 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1  0110 ~ 1111 をbitmaskのルールに分割
  • 14. 13Copyright©2014 NTT corp. All Rights Reserved. 例題 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1  0110 ~ 1111 をbitmaskのルールに分割
  • 15. 14Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 1. ****が範囲に含まれるかチェック 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ****
  • 16. 15Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 2. ****の範囲を2つに分割 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1***0***
  • 17. 16Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 3. 1***はRangeに含まれる 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1***0***
  • 18. 17Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 2’. 0***を2つに分割 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1***00** 01**
  • 19. 18Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 2’’. 01**を2つに分割 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 00** 010* 1***011*
  • 20. 19Copyright©2014 NTT corp. All Rights Reserved. Algorithm 簡単(?)に 2’’. 01**を2つに分割 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 00** 010* 1***011* 0110 ~ 1111 で表されるレンジは,{011*, 1***}で 表されるルールの集合でちょうどカバー出来る.
  • 21. 20Copyright©2014 NTT corp. All Rights Reserved. Agenda  Rangeの表記どうする?  Bitmask表記に変換できる!  TCP/UDPポートどうする?  実装どうする?
  • 22. 21Copyright©2014 NTT corp. All Rights Reserved. Bitmaskが使えないTCP/UDP  OpenFlow1.0からの違いといえば, Metadata & Multi table  Metadataにコピーすればいいじゃん  しかし,Copy_Fieldは未対応.... Metadata (64bit)L4 srcL4 dst
  • 23. 22Copyright©2014 NTT corp. All Rights Reserved. Bitmaskが使えないTCP/UDP  書き下せばいいじゃない. ※ルール数が65536 * 2 * 2 = 26万 for i in range(0, 65535): # SRC for ip_proto in [6, 17] : flow = {"table_id":0,"priority":1000, "actions":[{"type":"WRITE_METADATA","metadata":i << 16, "metadata_mask":0x00000000FFFF0000}], "match":{"dl_type":2048,"ip_proto":ip_proto,"tp_src":i}} mod_flow_entry(datapath, flow, ofproto.OFPFC_ADD) # DST ...
  • 24. 23Copyright©2014 NTT corp. All Rights Reserved. それでもLagopusなら....  Lagopusならなんとかしてくれる... 私の戦闘力は 100万です.
  • 25. 24Copyright©2014 NTT corp. All Rights Reserved. そんなことしなくても...  リアクティブに登録しても実現できる 1. TCP/UDPパケットが来たらPacket-In 2. ポート番号のメタデータコピーのルール追加 未登録のPort番号で あれば,Packet-In Port番号コピーのルール + Packet-Out コントローラ スイッチ データプレーン コントロールプレーン
  • 26. 25Copyright©2014 NTT corp. All Rights Reserved. Agenda  Rangeの表記どうする?  Bitmask表記に変換できる!  TCP/UDPポートどうする?  Metadataにコピーする!  きっとLagopusならなんとかしてくれる!  実装どうする?
  • 27. 26Copyright©2014 NTT corp. All Rights Reserved. 実装どうする?  テーブル設計  table 0:  L4 srcポートをmetadataにコピー(32~16bitに)  table 1:  L4 dstポートをmetadataにコピー (16~0bitに)  table 2:  Range -> Bitmask変換したルール群投入  マッチしたら落とす or OUTPUT or Next table (他のアプリケーション)
  • 28. 27Copyright©2014 NTT corp. All Rights Reserved. 実装どうする?  Table 0のルール例 {'priority': 1000, 'table_id': 0, 'match': {'dl_type': 2048, 'ip_proto': 6, 'tp_src': 5}, 'actions': [ {'metadata_mask': 4294901760, ‘type': 'WRITE_METADATA', 'metadata': 327680} ] } 0xFFFF0000 UDP/TCP両方で ルール登録 0x00050000
  • 29. 28Copyright©2014 NTT corp. All Rights Reserved. 実装どうする?  Table 1のルール例 {'priority': 1000, 'table_id': 1, 'match': {'dl_type': 2048, 'ip_proto': 17, 'tp_dst': 8}, 'actions': [ {'metadata_mask': 65535, 'type': 'WRITE_METADATA', 'metadata': 8} ] }
  • 30. 29Copyright©2014 NTT corp. All Rights Reserved. 実装どうする?  Table 2のルール例 (アドレスに意味はありません) {"table_id":2,"priority":65535,"cookie":0, "actions":[], "match":{ "dl_type":2048, "ipv4_src":“192.168.1.10/255.255.255.240", "ipv4_dst":“192.168.1.171/255.255.255.240", "ip_proto":17, "metadata":"0x0000000000580050/0x00000000ffffffff"} }
  • 31. 30Copyright©2014 NTT corp. All Rights Reserved. 単体利用できます.  ルールの追加/削除が動的に出来ます.  priorityをちゃんと考えれば.  他のアプリと組み合わせられます.  テーブル設計の競合注意  iptablesをより速い?(試してない)
  • 32. 31Copyright©2014 NTT corp. All Rights Reserved. デモ  ルール追加だけです><
  • 33. 32Copyright©2014 NTT corp. All Rights Reserved. まとめ  Lagopusで試すFWを実現  Lagopusならなんとかしてくれるはず
  • 34. 33Copyright©2014 NTT corp. All Rights Reserved. 注意  現在はルール投入に時間がかかります.  新Lookupだと高速になりそうだが,まだ 動作が怪しい..  良い子はコピーフィールドが使える OpenFlow Switchの利用も考えましょう.  できる子はLagopusにコピーフィールド実 装してください.
  • 35. 34Copyright©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.