2014年2月19日水曜日

OpenFlow Mininetのトポロジーって何だ!?

今回はMininetのトポロジーについてです。

ここで言うトポロジーとは、ネットワークの接続形態の事を指しています。
Mininetでは、スクリプトを書いてトポロジー作れば、任意の仮想ネットワークを作ることができます。

ただ、トポロジーの書き方をネットで調べていましたが、どう書くのか良くわかりませんでした。
pythonで書けば良いという事は分かったのですが。

ところが先日、分かりやすいスクリプトが見つかりました。
そのスクリプトがこれです。

from mininet.net import Mininet
from mininet.node import Controller, OVSKernelSwitch, RemoteController
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.util import createLink

    # Create an empty network.
    net = Mininet(controller=RemoteController, switch=OVSKernelSwitch)
    net.addController('c0')

    # Creating nodes in the network.
    h0 = net.addHost('h0')
    s0 = net.addSwitch('s0')
    h1 = net.addHost('h1')
    s1 = net.addSwitch('s1')

    # Creating links between nodes in network.
    h0int, s0int = createLink(h0, s0)
    h1int, s1int = createLink(h1, s1)
    s0pint, s1pint = createLink(s0, s1)

    # Configuration of IP addresses in interfaces
    s0.setIP(s0int, '192.168.1.1', 26)
    h0.setIP(h0int, '192.168.1.2', 26)
    s1.setIP(s1int, '192.168.1.65', 26)
    h1.setIP(h1int, '192.168.1.66', 26)
    s0.setIP(s0pint, '192.168.1.129', 26)
    s1.setIP(s1pint, '192.168.1.130', 26)

    # start stuff and present CLI
    net.start()
    CLI(net)
    net.stop()

参考:http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/2012-September/000231.html

このスクリプトでスイッチ2台、ホスト2台の仮想環境が作れます。
また、それぞれのインターフェイスに任意のIPアドレスを振っています。

このスクリプトを参考にして、トポロジーをカスタマイズしてみようと思います。

0 件のコメント:

コメントを投稿