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件) を見る