OpenFlow/OpenvSwitch_x86
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[labs.beatcraft.com]]
[[OpenFlow]]
#contents
* OpenFlow/Open vSwitch_x86 [#e0be3733]
PC(x86マシン)を2台使用し、それぞれをOpenFlow Controllerと...
設定してOpenFlowTutorial 1,2の動作確認手順について記載し...
~
OpenFlow ControllerとOpenFlow Switchとして使用するPCは共...
mininetの環境を設定している前提で記載をします。 ~
使用するOSはUbuntu 12.04(32bit版)です。~
mininetの設定については[[こちら>http://labs.beatcraft.com...
ホストに使用するマシンはLinux OSをインストールしたマシン...
本稿ではUbuntu 12.04(32bit版)をインストールしたx86 PCとbc...
インストール完了後、各機器のIPアドレスは下図のような固定...
動作確認環境の概要は以下の図のとおりです。~
#ref(SwithEnv.png,,80%);~
* OpenFlow Switchの起動 [#u65ef6fc]
PC(Switch)上でOpen vSwitchを使用しOpenFlow Switchを設定、...
PC起動後ovsdb-server,ovs-vswitchdが起動しているか確認しま...
起動していない場合は、/etc/init.d/openvswitch-swtich star...
$ sudo /etc/init.d/openvswitch-switch start
以下はopenvswitch-switch start実行後の「ps axu | grep ovs...
$ ps axu | grep ovs
root 1360 0.0 0.0 4780 416 ? S< 16:1...
root 1361 0.0 0.1 4904 1652 ? S<s 16:1...
root 1388 0.0 0.0 5464 692 ? S< 16:1...
root 1389 0.0 0.1 5468 1692 ? S<s 16:1...
beat 3713 0.0 0.0 5364 840 pts/3 S+ 17:1...
必要のないブリッジデバイスが存在していないか確認をします。~
~
注:前回起動時にOpen vSwitchのブリッジデバイスを作成し削...
そのブリッジデバイスは作成されたままになります。 ~
# ovs-vsctl show
もし必要のないブリッジデバイスが存在している場合はそのブ...
ここではブリッジデバイスはbr0とします。 ~
# ovs-vsctl del-br br0
新規にブリッジデバイス(br0)を作成し、eth2,eth3をbr0に含め...
# ovs-vsctl add-br br0
# ovs-vsctl add-port br0 eth2
# ovs-vsctl add-port br0 eth3
各デバイスを起動します。~
# ifconfig eth2 up
# ifconfig eth3 up
# ifconfig br0 up
ブリッジデバイスにOpenFlow Controllerの設定を追加します。~
ここではコントローラはtcp接続でアドレスは192.168.1.10、ポ...
スイッチはtcp 6634ポートを設定します。 ~
# ovs-vsctl set-controller br0 tcp:192.168.1.10:6633 ptc...
fail-modeをsecureに設定し、無設定時のhost間の通信を遮断し...
# ovs-vsctl set-fail-mode br0 secure
上記までの設定が以下のように反映されているか確認します。~
# ovs-vsctl show
b8c00762-8c74-455b-9c96-3a9e9c8cf275
Bridge "br0"
Controller "ptcp:6634"
Controller "tcp:192.168.1.10:6633"
fail_mode: secure
Port "eth2"
Interface "eth2"
Port "eth3"
Interface "eth3"
Port "br0"
Interface "br0"
type: internal
ovs_version: "1.4.0+build0"
これでSwitchの設定は完了です。
* OpenFlow Switchの動作確認 [#qd9b7778]
OpenFlow Switchの動作確認を行います。~
** OpenFlow Tutorial 1 [#n9f035d9]
[[OpenFlow/OpenFlow Turorial 1>http://labs.beatcraft.com/...
~
PC(Controller)からdpctlコマンドでスイッチの状態を確認しま...
port1,2に各ethが割り当てられていることが解ります。~
$ dpctl show tcp:192.168.1.1:6634
features_reply (xid=0x23ede000): ver:0x1, dpid:d0b6a5b34
n_tables:255, n_buffers:256
features: capabilities:0xc7, actions:0xfff
1(eth3): addr:00:0d:0b:6a:5b:34, config: 0, state:0x1
current: 10MB-HD AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-F...
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-H...
2(eth2): addr:00:1d:73:2e:91:94, config: 0, state:0x1
current: 10MB-HD AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPE...
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPE...
LOCAL(br0): addr:00:0d:0b:6a:5b:34, config: 0, state:0
get_config_reply (xid=0x272fb894): miss_send_len=0
スイッチにflowテーブルが存在しないことを確認します。~
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0x3c4353aa): flags=none type=1(flow)
Host1、Host2間でpingを実行しそれぞれのホストへ到達しない...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
From 192.168.11.2 icmp_seq=1 Destination Host Unreachable
From 192.168.11.2 icmp_seq=2 Destination Host Unreachable
From 192.168.11.2 icmp_seq=3 Destination Host Unreachable
PC(Controller)からport1,2間のパケットを通すflowテーブルを...
$ dpctl add-flow tcp:192.168.1.1:6634 in_port=1,actions=...
$ dpctl add-flow tcp:192.168.1.1:6634 in_port=2,actions=...
flowテーブルが追加されていることを確認します。~
$ dpctl dump-flows tcp:192.168.1.1:6634stats_reply (xid=...
cookie=0, duration_sec=9s, duration_nsec=443000000s, t...
cookie=0, duration_sec=2s, duration_nsec=309000000s, t...
再度Host1、Host2間でpingを実行しそれぞれのホストへ到達す...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
64 bytes from 192.168.11.1: icmp_req=1 ttl=64 time=6.89 ms
64 bytes from 192.168.11.1: icmp_req=2 ttl=64 time=2.07 ms
64 bytes from 192.168.11.1: icmp_req=3 ttl=64 time=1.74 ms
--- 192.168.11.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 1.740/3.570/6.897/2.357 ms
一定時間経過後追加したflowテーブルが消えていることを確認...
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0x68565278): flags=none type=1(flow)
** OpenFlow Tutorial 2 [#w84bde3f]
[[OpenFlow/OpenFlow Turorial 2>http://labs.beatcraft.com/...
~
PC(Switch)上の別ターミナルでWiresharkを起動しFilterに「of...
$ sudo wireshark
PC(Controller)上の別ターミナルでcontrollerコマンドを実行...
$ controller ptcp:
その際PC(Switch)上のWireshark上でOpenFlow Packetがキャプ...
#ref(OVS.png,,80%);~
Host1、Host2間でpingを実行しそれぞれのホストへ到達するこ...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
64 bytes from 192.168.11.1: icmp_req=1 ttl=64 time=11.3 ms
64 bytes from 192.168.11.1: icmp_req=2 ttl=64 time=2.86 ms
64 bytes from 192.168.11.1: icmp_req=3 ttl=64 time=2.41 ms
--- 192.168.11.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 2.410/5.534/11.323/4.097 ms
またPC(Controller)上からPC(Switch)のフローテーブルが増加...
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0xac113424): flags=none type=1(flow)
cookie=0, duration_sec=11s, duration_nsec=597000000s, t...
cookie=0, duration_sec=11s, duration_nsec=594000000s, ...
cookie=0, duration_sec=6s, duration_nsec=592000000s, t...
cookie=0, duration_sec=6s, duration_nsec=588000000s, t...
cookie=0, duration_sec=11s, duration_nsec=599000000s, ...
以上でOpenFlow Tutorial1,2と同様の動作確認は完了です。 ~
(性能差については本稿では省略しています) ~
*** Topic: OpenFlow Reference実装との差異 [#y3e1b690]
本稿のOpenFlowの動作確認バージョンは1.0で、既に更新されて...
OpenFlow ReferenceをControllerとして使用しています。~
OpenFlow Reference実装を使用したOpenFlow Switchを作成した...
Open vSwitchと異なる点があります。~
Open vSwitchを使用したOpenFlow SwitchではActionsが0x00000...
OpenFlow Reference実装を使用したOpenFlow SwitchではAction...
これはOpenFlow Reference実装を使用したOpenFlow Switchでは...
Open vSwitchではこの修正、改良が含まれているためSet IP TO...
OpenFlow Reference実装を使用したOpenFlow Switchの作成は以...
コマンドにて確認しています。(Controller側は上記と同じコマ...
# ofdatapath punix:/var/run/dp0.sock -i eth2,eth3 --loca...
# ofprotocol unix:/var/run/dp0.sock tcp:192.168.1.10:663...
#ref(OpenVswitch.png,,80%) ~
図1. Open vSwitchを使用したOpenFlow SwtichのActions ~
~
#ref(OpenFlow.png,,80%) ~
図2. OpenFlow Referenceを使用したOpenFlow SwitchのActions ~
終了行:
[[labs.beatcraft.com]]
[[OpenFlow]]
#contents
* OpenFlow/Open vSwitch_x86 [#e0be3733]
PC(x86マシン)を2台使用し、それぞれをOpenFlow Controllerと...
設定してOpenFlowTutorial 1,2の動作確認手順について記載し...
~
OpenFlow ControllerとOpenFlow Switchとして使用するPCは共...
mininetの環境を設定している前提で記載をします。 ~
使用するOSはUbuntu 12.04(32bit版)です。~
mininetの設定については[[こちら>http://labs.beatcraft.com...
ホストに使用するマシンはLinux OSをインストールしたマシン...
本稿ではUbuntu 12.04(32bit版)をインストールしたx86 PCとbc...
インストール完了後、各機器のIPアドレスは下図のような固定...
動作確認環境の概要は以下の図のとおりです。~
#ref(SwithEnv.png,,80%);~
* OpenFlow Switchの起動 [#u65ef6fc]
PC(Switch)上でOpen vSwitchを使用しOpenFlow Switchを設定、...
PC起動後ovsdb-server,ovs-vswitchdが起動しているか確認しま...
起動していない場合は、/etc/init.d/openvswitch-swtich star...
$ sudo /etc/init.d/openvswitch-switch start
以下はopenvswitch-switch start実行後の「ps axu | grep ovs...
$ ps axu | grep ovs
root 1360 0.0 0.0 4780 416 ? S< 16:1...
root 1361 0.0 0.1 4904 1652 ? S<s 16:1...
root 1388 0.0 0.0 5464 692 ? S< 16:1...
root 1389 0.0 0.1 5468 1692 ? S<s 16:1...
beat 3713 0.0 0.0 5364 840 pts/3 S+ 17:1...
必要のないブリッジデバイスが存在していないか確認をします。~
~
注:前回起動時にOpen vSwitchのブリッジデバイスを作成し削...
そのブリッジデバイスは作成されたままになります。 ~
# ovs-vsctl show
もし必要のないブリッジデバイスが存在している場合はそのブ...
ここではブリッジデバイスはbr0とします。 ~
# ovs-vsctl del-br br0
新規にブリッジデバイス(br0)を作成し、eth2,eth3をbr0に含め...
# ovs-vsctl add-br br0
# ovs-vsctl add-port br0 eth2
# ovs-vsctl add-port br0 eth3
各デバイスを起動します。~
# ifconfig eth2 up
# ifconfig eth3 up
# ifconfig br0 up
ブリッジデバイスにOpenFlow Controllerの設定を追加します。~
ここではコントローラはtcp接続でアドレスは192.168.1.10、ポ...
スイッチはtcp 6634ポートを設定します。 ~
# ovs-vsctl set-controller br0 tcp:192.168.1.10:6633 ptc...
fail-modeをsecureに設定し、無設定時のhost間の通信を遮断し...
# ovs-vsctl set-fail-mode br0 secure
上記までの設定が以下のように反映されているか確認します。~
# ovs-vsctl show
b8c00762-8c74-455b-9c96-3a9e9c8cf275
Bridge "br0"
Controller "ptcp:6634"
Controller "tcp:192.168.1.10:6633"
fail_mode: secure
Port "eth2"
Interface "eth2"
Port "eth3"
Interface "eth3"
Port "br0"
Interface "br0"
type: internal
ovs_version: "1.4.0+build0"
これでSwitchの設定は完了です。
* OpenFlow Switchの動作確認 [#qd9b7778]
OpenFlow Switchの動作確認を行います。~
** OpenFlow Tutorial 1 [#n9f035d9]
[[OpenFlow/OpenFlow Turorial 1>http://labs.beatcraft.com/...
~
PC(Controller)からdpctlコマンドでスイッチの状態を確認しま...
port1,2に各ethが割り当てられていることが解ります。~
$ dpctl show tcp:192.168.1.1:6634
features_reply (xid=0x23ede000): ver:0x1, dpid:d0b6a5b34
n_tables:255, n_buffers:256
features: capabilities:0xc7, actions:0xfff
1(eth3): addr:00:0d:0b:6a:5b:34, config: 0, state:0x1
current: 10MB-HD AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-F...
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-H...
2(eth2): addr:00:1d:73:2e:91:94, config: 0, state:0x1
current: 10MB-HD AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPE...
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPE...
LOCAL(br0): addr:00:0d:0b:6a:5b:34, config: 0, state:0
get_config_reply (xid=0x272fb894): miss_send_len=0
スイッチにflowテーブルが存在しないことを確認します。~
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0x3c4353aa): flags=none type=1(flow)
Host1、Host2間でpingを実行しそれぞれのホストへ到達しない...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
From 192.168.11.2 icmp_seq=1 Destination Host Unreachable
From 192.168.11.2 icmp_seq=2 Destination Host Unreachable
From 192.168.11.2 icmp_seq=3 Destination Host Unreachable
PC(Controller)からport1,2間のパケットを通すflowテーブルを...
$ dpctl add-flow tcp:192.168.1.1:6634 in_port=1,actions=...
$ dpctl add-flow tcp:192.168.1.1:6634 in_port=2,actions=...
flowテーブルが追加されていることを確認します。~
$ dpctl dump-flows tcp:192.168.1.1:6634stats_reply (xid=...
cookie=0, duration_sec=9s, duration_nsec=443000000s, t...
cookie=0, duration_sec=2s, duration_nsec=309000000s, t...
再度Host1、Host2間でpingを実行しそれぞれのホストへ到達す...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
64 bytes from 192.168.11.1: icmp_req=1 ttl=64 time=6.89 ms
64 bytes from 192.168.11.1: icmp_req=2 ttl=64 time=2.07 ms
64 bytes from 192.168.11.1: icmp_req=3 ttl=64 time=1.74 ms
--- 192.168.11.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 1.740/3.570/6.897/2.357 ms
一定時間経過後追加したflowテーブルが消えていることを確認...
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0x68565278): flags=none type=1(flow)
** OpenFlow Tutorial 2 [#w84bde3f]
[[OpenFlow/OpenFlow Turorial 2>http://labs.beatcraft.com/...
~
PC(Switch)上の別ターミナルでWiresharkを起動しFilterに「of...
$ sudo wireshark
PC(Controller)上の別ターミナルでcontrollerコマンドを実行...
$ controller ptcp:
その際PC(Switch)上のWireshark上でOpenFlow Packetがキャプ...
#ref(OVS.png,,80%);~
Host1、Host2間でpingを実行しそれぞれのホストへ到達するこ...
$ ping -c3 192.168.11.1
PING 192.168.11.1 (192.168.11.1) 56(84) bytes of data.
64 bytes from 192.168.11.1: icmp_req=1 ttl=64 time=11.3 ms
64 bytes from 192.168.11.1: icmp_req=2 ttl=64 time=2.86 ms
64 bytes from 192.168.11.1: icmp_req=3 ttl=64 time=2.41 ms
--- 192.168.11.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 2.410/5.534/11.323/4.097 ms
またPC(Controller)上からPC(Switch)のフローテーブルが増加...
$ dpctl dump-flows tcp:192.168.1.1:6634
stats_reply (xid=0xac113424): flags=none type=1(flow)
cookie=0, duration_sec=11s, duration_nsec=597000000s, t...
cookie=0, duration_sec=11s, duration_nsec=594000000s, ...
cookie=0, duration_sec=6s, duration_nsec=592000000s, t...
cookie=0, duration_sec=6s, duration_nsec=588000000s, t...
cookie=0, duration_sec=11s, duration_nsec=599000000s, ...
以上でOpenFlow Tutorial1,2と同様の動作確認は完了です。 ~
(性能差については本稿では省略しています) ~
*** Topic: OpenFlow Reference実装との差異 [#y3e1b690]
本稿のOpenFlowの動作確認バージョンは1.0で、既に更新されて...
OpenFlow ReferenceをControllerとして使用しています。~
OpenFlow Reference実装を使用したOpenFlow Switchを作成した...
Open vSwitchと異なる点があります。~
Open vSwitchを使用したOpenFlow SwitchではActionsが0x00000...
OpenFlow Reference実装を使用したOpenFlow SwitchではAction...
これはOpenFlow Reference実装を使用したOpenFlow Switchでは...
Open vSwitchではこの修正、改良が含まれているためSet IP TO...
OpenFlow Reference実装を使用したOpenFlow Switchの作成は以...
コマンドにて確認しています。(Controller側は上記と同じコマ...
# ofdatapath punix:/var/run/dp0.sock -i eth2,eth3 --loca...
# ofprotocol unix:/var/run/dp0.sock tcp:192.168.1.10:663...
#ref(OpenVswitch.png,,80%) ~
図1. Open vSwitchを使用したOpenFlow SwtichのActions ~
~
#ref(OpenFlow.png,,80%) ~
図2. OpenFlow Referenceを使用したOpenFlow SwitchのActions ~
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。