Mininetに物理インタフェースを接続してVXLAN over OpenFlowな環境を作ってみる
前回の検証環境を少し改善したく、Openflowと物理NW(別VMのOVS)を接続しましたので、そのメモです。Attach Physicalなどで検索しましたが、なかなか見つからず・・・。
環境は以下の図の通りです。ODL-Heliumの部分がMininet兼コントローラで構成されています。HUBはコントローラ用のネットワークです。

ちなみにMininet内の構成は以下の通りです。

MininetはPythonで書かれているので、読んでパラメータの受け渡し関数を見つけるのが手っ取り早いです。
■ポイント
今回はコントローラにOpenDaylight(Helium)を使用しているので、RemoteControl関数も使用しています。
Intfが物理インタフェースをMininet内のスイッチに追加する関数です。
※その他、net.addSwitch、net.addHost、net.addController、linkToコマンドを私用しています。
#!/usr/bin/env python
from mininet.net import Mininet
from mininet.log import setLogLevel, info, error
from mininet.cli import CLI
from mininet.link import Link
from mininet.node import RemoteController
from mininet.link import Intf
if '__main__' == __name__:
setLogLevel( 'info' )
net = Mininet()
c1 = net.addController('c1',controller=RemoteController,ip='127.0.0.1',port=
6633)
s1 = net.addSwitch('s1')
s2 = net.addSwitch('s2')
s3 = net.addSwitch('s3')
s4 = net.addSwitch('s4')
h1 = net.addHost('h1', mac='a4:aa:aa:aa:aa:01',ip='192.168.100.1/24')
h2 = net.addHost('h2', mac='a5:aa:aa:aa:aa:02',ip='192.168.100.2/24')
s1.linkTo(s2)
s1.linkTo(s3)
s3.linkTo(s4)
s4.linkTo(s2)
h1.linkTo(s1)
h2.linkTo(s2)
_intf = Intf( 'eth2', node=s1 )
_intf = Intf( 'eth3', node=s2 )
net.start()
CLI(net)
net.stop()
上記コマンドをpythonで起動するとs1にeth2、s2にeth3を追加してMininetを起動します。
mininet> net h1 h2 s1 lo: s1-eth1:s2-eth1 s1-eth2:s3-eth1 eth2: s2 lo: s2-eth1:s1-eth1 s2-eth2:s4-eth2 eth3: s3 lo: s3-eth1:s1-eth2 s3-eth2:s4-eth1 s4 lo: s4-eth1:s3-eth2 s4-eth2:s2-eth2
eth2とeth3にはそれぞれOVSがインストールされたOpenvswitchが接続されており、前回と同様にOpenvswitch同士でVXLANで接続(今回はVXLAN over openflow)をしています。
PC1(192.168.0.1) -> PC2(192.168.0.2)の通信をVXLANでカプセル化しています。s2とs3でキャプチャした結果が以下の通りです。OpendaylightのSimpleForwardで最短ホップのS1とS2を通過しています。
mininet@mininet-vm:~\> sudo tcpdump -i s2-eth1 tcpdump: WARNING: s2-eth1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on s2-eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 04:36:29.901377 IP 172.16.100.2.59569 > 172.16.100.1.4789: UDP, length 114 04:36:29.914815 IP 172.16.100.1.54300 > 172.16.100.2.4789: UDP, length 114 mininet@mininet-vm:~\> sudo tcpdump -i s3-eth1 tcpdump: WARNING: s3-eth1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on s3-eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 04:37:11.047160 LLDP, name openflow:3, length 49 04:37:11.055685 LLDP, name openflow:1, length 49
今回、VXLAN over OpenFlowな環境を作成できました。時間を見つけてOpenDaylightを使って色々やってみたいと思います。
シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

- 作者: 馬場達也,大上貴充,関山宜孝,?畑知也
- 出版社/メーカー: 翔泳社
- 発売日: 2013/09/13
- メディア: 大型本
- この商品を含むブログ (3件) を見る

- 作者: あきみち,宮永直樹,岩田淳
- 出版社/メーカー: オーム社
- 発売日: 2013/07/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る