2017localYouser技術のお話しどんなことをする?mininetはネットワークエミュレータです。仮想でホストとOpenFlowスイッチを構成し、その箱庭環境の中で色々な動作確認を行うことができます。デフォルトではこんなトポロジーになってます。コレだとやれることって結構寂しいので、こんなトポロジーは組めないかなと思い、組んでみました。コントローラ側は、前回と同じ「simple_switch.py」を使用します。トポロジーの組み方トポロジーを組むには、どうやらPythonと言う言語を用いて、構成を書く必要があるようです。今回、4台のスイッチ、10台のホストを上図のように接続する場合、以下のように記述する必要があるようです。これを~/mininet/custom/topo-4sw-10host.pyとして保存しました。}Pythonと言う言語自体触ったことがなかったので、トライ&エラーで書くだけ書いてみたのですが、以下の点に気をつける必要があるようです。C言語で言う{}部分は「インデント」で認識されるつまり、ある処理系の中身を書く際は、その宣言より1段インデントを奥にずらす必要がある上記テキストでは半角スペースでインデントされていますが、実際にはTabでインデントしてます(それが正しいのかどうかはわからないけど)その上で、以下のような記述を行っていきます。)ホストの定義をする箇所です。ホスト名称は任意です。mininetの中でホストを指定する際の識別子になります。macアドレスは箱庭でしか稼働させないので、適当な内容で良さそうです。mininetの中で定義したIPアドレス/macアドレスを用いて通信することになります。)スイッチの定義をする箇所です。スイッチ名称は任意です。mininetの中でスイッチを指定する際の識別子になります。mininetの中で定義したIPアドレス/IDを用いて通信することになります。)スイッチやホスト間のリンクを定義します。変数は先述した「self.addHost」や「self.addSwitch」で定義した変数を使用します。動かしてみる早速動かしてみます。ryu側を起動します。SimpleSwitch続いて、mininetを起動します。前回とは異なり、トポロジーのpyファイルを指定した上で起動を行います。mytopoするとこんな感じで出力され、前回とは異なりそれなりに複雑な構成が取れていることがわかります。CLI:mininet>疎通確認をしてみようpingallコマンドで疎通確認をしてみます。received)mininet>仮想的にHTTP通信なんかをしてみよう以下のようにすることで、TinyなWebサーバを指定ホストに構成することが可能みたいです。80&これでHost1に対してHTTPサーバがたちました。Host10からダウンロードを試みてみます。[418/418]ダウンロードできたようです。ファイルとして存在するか、確認してみます。href="topo-4sw-10host.py">topo-4sw-10host.py</a></ul><hr></body></html>mininet>おお、ダウンロードできてますなぁ。ホストのプロセスリストを見てみるHost1のプロセスリストを見てみましょう。Serverプロセスですね。psmininet>構成情報をダンプするdumpコマンドを使用します。mininet>リンク状態の確認linksコマンドを使用します。どれがどの機器の何のポートに接続されているかが確認できます。OK)mininet>インタフェースリストの出力intfsコマンドを使用します。スイッチに関しては、1ポートは管理用ポートとして、あとは接続されている分だけポートが準備されるようですね。コマンドを使用します。各スイッチのフロー状態がダンプされるみたいです。コマンドを使用することで、単純な到達性だけではなく、応答時間を測ることができます。TCP帯域の測定ができます。UDP帯域の上限を設定できるみたいです。その中でどれほどの帯域を使っているかが計測できるようです。コマンドを実行することですべてのスイッチ・ホストを畳み、プログラムを終了します。secondsroot@mininet:~/mininet/custom#コントローラ側でもこんな出力が出ます。2コントローラ側では、ryu-managerはフォアグラウンドで動いているので、Ctrl+Cで終了します。まとめmininetは使ってみると比較的簡単にネットワークトポロジーを組んで遊べるので、こりゃぁいいなぁ~って感じです。Pythonと言う言語をちゃんと理解してないのと、OpenFlowコントローラが各スイッチに異なる役割を与えられるのか、実際の運用としてどう管理するのかはよく分かってません。理解が足りてないなと感じるものの、結構こりゃァ面白いなぁとも感じたりしていて、もう少し触ってみようそうしようってな気分です。これ読んでもう少し理解を深めようそうしよう。