OpenDaylight Hydrogenを試す_Flow操作編

前回のエントリではHydrogenを試す為に環境を構築しました。
今回はHydrogenで実際にFlowを操作してみます。

Mininet起動

ホスト4台、スイッチ3台を起動させます。

# mn --controller=remote --topo tree,2 --switch ovsk,protocols=OpenFlow13
*** Creating network
*** Adding controller
Unable to contact the remote controller at 127.0.0.1:6633
*** Adding hosts:
h1 h2 h3 h4
*** Adding switches:
s1 s2 s3
*** Adding links:
(h1, s2) (h2, s2) (h3, s3) (h4, s3) (s1, s2) (s1, s3)
*** Configuring hosts
h1 h2 h3 h4
*** Starting controller
*** Starting 3 switches
s1 s2 s3
*** Starting CLI:

トポロジ確認

mininet> net
h1 h1-eth0:s2-eth1
h2 h2-eth0:s2-eth2
h3 h3-eth0:s3-eth1
h4 h4-eth0:s3-eth2
s1 lo:  s1-eth1:s2-eth3 s1-eth2:s3-eth3
s2 lo:  s2-eth1:h1-eth0 s2-eth2:h2-eth0 s2-eth3:s1-eth1
s3 lo:  s3-eth1:h3-eth0 s3-eth2:h4-eth0 s3-eth3:s1-eth2

Flow生成の為、ping

mininet> pingall

Hydrogen上で確認

f:id:kashigeru:20140225225027j:plain

環境が整いました。
ではFlowを操作してみます。

Flow操作(パケットDROP)

h1(10.0.0.1)→ h3(10.0.0.3)のパケットをDROPさせるFlowを生成して
SW2にインストールします。

Flowをインストールする前にh1からh3へpingを実行します。

mininet> h1 ping h3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
64 bytes from 10.0.0.3: icmp_req=1 ttl=64 time=28.4 ms
64 bytes from 10.0.0.3: icmp_req=2 ttl=64 time=0.095 ms
64 bytes from 10.0.0.3: icmp_req=3 ttl=64 time=0.089 ms

無事に疎通できています。

ではHydrogenでFlowを生成してインストールします。
”Flows”タブを選択して”Add Flow Entry”をクリックします。

f:id:kashigeru:20140225225732j:plain

設定する為のポップアップが立ち上がります。
Name、Node(sw2)、InputPort(eth1)を設定して下へスクロール。

f:id:kashigeru:20140225230148j:plain

Layer2は何も設定せずに下へスクロール。

f:id:kashigeru:20140225230353j:plain

Layer3はSource IP Address(h1:10.0.0.1)、Destination IP Address(h3:10.0.0.3)を入力して下へスクロール。

f:id:kashigeru:20140225230450j:plain

Layer4は何も入力せず、最後にActionをDROPにします。

f:id:kashigeru:20140225230629j:plain

設定が完了したらSave Flowをクリックします。

f:id:kashigeru:20140225230835j:plain

これで”Flows”タブのFlow Entriesにエントリが出来ます。
Flowを選択すると画面下のFlow DetailタブにOverviewが出ます。
ここで”Install Flow”をクリックしてFlowをインストールします。

f:id:kashigeru:20140225231249j:plain

Flowをインストールしたのでh1からh3へpingを実行してみます。

mininet>  h1 ping h3
^CPING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.

--- 10.0.0.3 ping statistics ---
19 packets transmitted, 0 received, 100% packet loss, time 18118ms

すべてパケットロスしました。

Hydrogen上で統計情報を見るには
”Troubleshoot”タブの対象Nodeの”Flows”を選択します。
Flow Detailsに統計情報が出てきます。

f:id:kashigeru:20140225232038j:plain

作成したFlowにパケットがカウントされているのでDROPされていることがわかります。

Flowをアンインストールするには
”Flows”タブのFlow OverviewタブでUninstall FlowをクリックすればOKです。

最後に

あっさりFlowが操作できたのでかなり敷居は低くなっているのではないかと思います。
Flow作成のときにもあったようにあらかじめ様々なActionが用意されているので
簡単操作でらくらくOpenflowです。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)

マスタリングTCP/IP OpenFlow編

マスタリングTCP/IP OpenFlow編

OpenFlow徹底入門 SDNを実現する技術と知識

OpenFlow徹底入門 SDNを実現する技術と知識

次世代ネットワーク制御技術 OpenFlow入門

次世代ネットワーク制御技術 OpenFlow入門

クラウド時代のネットワーク技術 OpenFlow実践入門 (Software Design plus)

クラウド時代のネットワーク技術 OpenFlow実践入門 (Software Design plus)