Mininet-WiFi 是Mininet仿真器的一个分支。它增加了无线热点和无线工作站的功能,除此之外,它可以和Mininet一样的使用。
1.安装
在Ubuntu系统上安装Mininet-WiFi非常简单, 只需要4步:
step 1: $ sudo apt-get install git
step 2: $ git clone https://github.com/intrig-unicamp/mininet-wifi
step 3: $ cd mininet-wifi
step 4: $ sudo util/install.sh -Wnfvl
如果安装成功,在终端里用”sudo mn –wifi”就可以启动
2.入门
2.1 使用CLI(命令行)
启动Mininet-WiFi仅需一个命令:
sudo mn –wifi
如果看到如下界面,就说明你启动成功啦!
如果启动失败,试试下面的方法:
- 错误提示“Please shut down the controller which is running on port 6653”,仅需要把相应的占用端口的进程kill掉,即在终端中输入命令“udo kill XXXX”。(XXXX是占用端口进程的pid,一般在错误提示中会有,如下图就是1115)
- 根据官方的使用手册,停止network-manager 服务
sudo service network-manager stop
- 清理缓存:
sudo mn -c
2.2 使用Python API
Mininet-WiFi提供了非常方便的Python 接口。如果你了解一些Python编程基础,就可以使用。在这篇文章中,你将会看到如何用Python建立一个基本的网络。
代码如下,是官方示例代码的一部分。
#!/usr/bin/python
'Example for Start'
from mininet.net import Mininet
from mininet.node import Controller, OVSKernelAP
from mininet.link import TCLink
from mininet.cli import CLI
from mininet.log import setLogLevel
def topology():
"Create a network."
net = Mininet(controller=Controller, link=TCLink, accessPoint=OVSKernelAP)
print "*** Creating nodes"
sta1 = net.addStation('sta1', mac='00:00:00:00:00:02', ip='10.0.0.2/8')
sta2 = net.addStation('sta2', mac='00:00:00:00:00:03', ip='10.0.0.3/8')
ap1 = net.addAccessPoint('ap1', ssid='ssid-ap1', mode='g', channel='1', position='15,30,0')
ap2 = net.addAccessPoint('ap2', ssid='ssid-ap2', mode='g', channel='6', position='55,30,0')
c1 = net.addController('c1', controller=Controller)
print "*** Configuring wifi nodes"
net.configureWifiNodes()
print "*** Creating links"
net.addLink(ap1, ap2)
net.addLink(ap1, sta1)
net.addLink(ap1, sta2)
print "*** Starting network"
net.build()
c1.start()
ap1.start([c1])
ap2.start([c1])
print "*** Running CLI"
CLI(net)
print "*** Stopping network"
net.stop()
if __name__ == '__main__':
setLogLevel('info')
topology()
运行这段代码,你最终仍然会进入CLI命令行模式,你可以再次进行额外的配置操作。
更多关于Mininet-WiFi的操作教程,请关注本博客的后续更新。