OpenFlowをXenServerで試してみよう

21
OpenFlowXenServerで試してみよう 北瀬公彦 @kkitase [email protected]
  • date post

    19-Oct-2014
  • Category

    Technology

  • view

    11.128
  • download

    3

description

 

Transcript of OpenFlowをXenServerで試してみよう

Page 1: OpenFlowをXenServerで試してみよう

OpenFlowをXenServerで試してみよう

北瀬公彦 @kkitase

[email protected]

Page 2: OpenFlowをXenServerで試してみよう

何故シトリックスがOpenFlowを語る?

• ONF (Open Network Foundation)がOpenFlowを推進している• CitrixはONFの一員• ハイパーバイザーの仮想スイッチでOpenFlowに対応しているスイッチは

Citrix® XenServer®のみ!!• OpenFlowネットワークを構築する際に、使用するハイパーバイザーの最有

力候補はXenServer!!

“Citrix Systems”

Page 3: OpenFlowをXenServerで試してみよう

用語の整理

• OpenFlow– スイッチのコントロールパスとデータパスを分断し、フロー単位での経路制御

を実現する為の技術

• OpenFlow switch– OpenFlow対応のスイッチ(仮想スイッチ、物理スイッチ)

• Open vSwitch– オープンソースのOpenFlow対応の仮想スイッチ– http://www.openvswitch.org

• NOX– オープンソースのOpenFlowコントローラ– http://noxrepo.org/wp/

• vSwitch– XenServerのOpenFlow対応仮想スイッチ

• vSwitch Controller– XenServerのOpenFlow対応仮想スイッチを制御するOpenFlowコン

トローラ

Page 4: OpenFlowをXenServerで試してみよう

NOX 0.9.5 build 3697ベース http://noxrepo.org/wp

GUI等をカスタマイズNetFlow対応済み、sFlow対応は今後予定Default user “admin”

openvswitch--‐1.1.0pre1--‐69.1914 ベース

XenServer vSwitch / Controllerアーキテクチャー

Page 5: OpenFlowをXenServerで試してみよう

Open vSwitch daemon

• ovs-vswitchd– Daemon that manages and controls any number of OVS switches on

the host.

• ovs-xenserverd– Open vSwitch daemon for XenServer specific functionality

• ovsdb-server– usage: ovsdb-server [OPTIONS] DATABASE – where DATABASE is a database file in ovsdb format (JSON)

• ovs−brcompatd– Bridge compatibility front-end for ovs−vswitchd

• ovs−controller – Simple OpenFlow controller reference implementation

• ovs−discover– OpenFlow controller discovery utility

• ovs−openflowd– Implements an OpenFlow switch using a flow-based datapath

Page 6: OpenFlowをXenServerで試してみよう

XenServer

OpenFlow スイッチ コントローラー

OpenFlow 仮想スイッチ

FlowTable

SecureChannel

hw

sw

参考: The Stanford Clean Slate Program: http://cleanslate.stanford.edu

OpenFlow物理スイッチ

Page 7: OpenFlowをXenServerで試してみよう

The Stanford Clean Slate Program http://cleanslate.stanford.edu

フローテーブルエントリー

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

Rule Action Stats

1. Forward packet to port(s)2. Encapsulate and forward to controller3. Drop packet4. Send to normal processing pipeline

+ mask

Packet + byte counters

OpenFlow White Paper: http://www.openflow.org/documents/openflow-wp-latest.pdfOpenFlow Spec: http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf

Page 9: OpenFlowをXenServerで試してみよう

1. XenServerをインストール- 5.6 SP2の場合http://www.citrix.com/lang/English/lp/lp_1688615.asp

インストールした後に、仮想スイッチをOpenFlow対応スイッチに変更xe-switch-network-backend openvswitch

xe host-list params=software-version

- 6.0ベータの場合http://www.citrix.com/xenserver/beta

2. XenCenterをインストールhttp://www.citrix.co.jp/products/pdf/Step_By_Step_XenCenter_Download.pdf

3. vSwitch Controllerの設定-コントローラを触りたい場合、評価ライセンスが必要です。http://www.citrix.co.jp/products/pdf/Step_By_Step_XenServer_Platinum_Download.pdfhttp://www.citrix.co.jp/products/pdf/Step_By_Step_XenServer_Activation.pdf

Page 10: OpenFlowをXenServerで試してみよう

XenCenter

1. vSwitch Controllerをインポート2. IPやhost名等を設定する3. 起動後に表示されるURLにアクセス

Page 11: OpenFlowをXenServerで試してみよう

コントローラにアクセスしたところ

Page 12: OpenFlowをXenServerで試してみよう

Resource Poolを追加

Page 13: OpenFlowをXenServerで試してみよう

ACLを設定してみる

Page 14: OpenFlowをXenServerで試してみよう

ovs−appctl − utility for configuring running Open vSwitch daemonsovs−ofctl − administer OpenFlow switchesovs−vsctl − utility for querying and configuring ovs−vswitchd

注 ovsコマンドはXenServerで現状は正式サポートされていません

コマンドでコントロールしてみよう

http://openvswitch.org/cgi-bin/ovsman.cgi

Page 15: OpenFlowをXenServerで試してみよう

XenServer (Dom 0)に接続

# xe host-list params=software-version... network_backend: openvswitch

# ovs-ofctl –V

Ovs-ofctl (Open vSwitch) 1.0.2

仮想スイッチの確認とか・・ovsコマンド野確認とか・・

Page 16: OpenFlowをXenServerで試してみよう

Flowテーブルの確認、設定# ovs-ofctl

ovs-ofctl dump-flowsでFlowテーブルを確認# ovs-ofctl dump-flows xapi4 | grep drop

.., table_id=1, priority=32763, n_packets=0, n_bytes=0,

tcp,dl_dst=86:43:b2:1a:f2:d0,nw_dst=10.12.45.151,tp_src=80,actions=drop,

cookie=0x0, duration_sec=171s, duration_nsec=25000000ns, table_id=1,

priority=65529, n_packets=15, n_bytes=930,

tcp,in_port=4,dl_src=86:43:b2:1a:f2:d0,nw_src=10.12.45.78,tp_dst=80,actions=drop

ovs-ofctl add-flowやmod-flowでFlowテーブルを操作注 ovsコマンドはXenServerで現状は正式サポートされていません

コントローラでGUIよりACLを設定した後、コマンドでどのようにFlowTableに設定されたか確認

Page 17: OpenFlowをXenServerで試してみよう

仮想スイッチの管理コマンド#ovs-vsctl仮想スイッチにぶら下がっているポートの確認

[root@xs203 ~]# ovs-vsctl list-ports xapi11

vif30.0

[root@xs203 ~]# ovs-vsctl list-ports xenbr0

eth0

vif28.0

vif29.0

vif32.0

注 ovsコマンドはXenServerで現状は正式サポートされていません

Page 18: OpenFlowをXenServerで試してみよう

仮想スイッチと設定の確認#ovs-appctlボンディングの設定の確認# ovs-appctl bond/list

bridge bond slaves

Xapi2 bond1 eth4, eth5

Xapi4 bond0 eth2, eth1

MACアドレスとvLANの表示# ovs-appctl fdb/show xenbr0

port VLAN MAC Age

1 0 42:79:df:c1:4d:15 53

1 0 1a:fb:07:c3:86:dd 37

1 0 66:78:6f:d3:e5:b2 3

1 0 00:17:0f:ad:c9:c0 1

1 0 00:00:0c:07:ac:01 1

1 0 00:17:0f:ad:ca:c0 1

0 0 00:24:e8:c7:0f:30 1

2 0 c6:3c:f4:ea:b3:f4 1

注 ovsコマンドはXenServerで現状は正式サポートされていません

Page 19: OpenFlowをXenServerで試してみよう

ログレベルの確認、設定#ovs-appctl#ovs-appctl vlog/list

console syslog file

------- ------ ------

bridge EMER ERR INFO

vswitchd EMER ERR INFO

xenserver EMER ERR INFO

ofproto EMER ERR INFO

# ovs-appctl vlog/set vswitchd:file:dbg

vlog/set MODULE[:FACILITY[:LEVEL]] • Modules: bridge, vswitchd,sflow,openflow, etc.• Facility: Console, Syslog, File, any• Level: Emer, Err, Info, warn, dbg

ログファイルを確認する時は、/var/log 以下のログを確認する• /var/log/openvswitch/ovsdb-server.log• /var/log/openvswitch/ovs-vswitchd.log• /var/log/xensource.log

詳しくはhelpで# ovs-appctl –help 注 ovsコマンドはXenServerで現状は正式サポートされていません

Page 20: OpenFlowをXenServerで試してみよう

クロスホストプライベートネットワーク

• 異なるXenServer上で起動しているVM間でプライベートネットワークを共有– XenServer Advanced Edition以上

– vSwitch と vSwitch Controllerが必要

– XenCenterより、クロスホストプライベートネットワークを設定

Page 21: OpenFlowをXenServerで試してみよう

ご清聴ありがとうございました