2014年2月21日金曜日

OpenFlow Mininetのトポロジーをカスタマイズしてみる

今回はMininetのトポロジーを作ってみます。

Mininetのトポロジーの書き方は、以下も参考にしました。

http://osrg.github.io/ryu-book/ja/html/spanning_tree.html?highlight=mininet


スイッチ1つ、ホスト2つのトポロジーを作ってみます。
ホスト1のIPアドレスは「192.168.100.1」を割り当てます。
ホスト2のIPアドレスは「192.168.100.2」を割り当てます。

スクリプトの名前は「topo_test.py」とします。

#!/usr/bin/env python

from mininet.net import Mininet
from mininet.cli import CLI
from mininet.link import Link

if '__main__' == __name__:

    net = Mininet()

    c1 = net.addController('c1')
    s1 = net.addSwitch('s1')
    h1 = net.addHost('h1', ip='192.168.100.1/24')
    h2 = net.addHost('h2', ip='192.168.100.2/24')

    Link( h1, s1)
    Link( h2, s1)

    net.start()
    CLI(net)
    net.stop()

スクリプトを書いたら、以下のコマンドで実行します。

sudo python ./topo_test.py

実行すると「sudo mn」でMininetを起動したときのように、仮想ネットワークのCLI(コマンドラインインターフェイス)に切り替わります。
いくつかコマンドを打って、仮想環境の状態を確認してみます。

net
dump
pingall

mininet> net
h1 h1-eth0:s1-eth1
h2 h2-eth0:s1-eth2
s1 lo:  s1-eth1:h1-eth0 s1-eth2:h2-eth0
c1
mininet> dump
<host h1-eth0:192.168.100.1="" pid="1649">
<host h2-eth0:192.168.100.2="" pid="1650">
<ovsswitch lo:127.0.0.1="" pid="1642" s1-eth1:none="" s1-eth2:none="">
<controller 127.0.0.1:6633="" pid="1634">
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)

終了するときは「exit」と打ちます。

簡単ではありますが、仮想環境ができました。
以上になります。

0 件のコメント:

コメントを投稿