Mininet日常使用二(官网)
第3部分:Mininet命令行界面(CLI)命令
显示选项
要查看命令行界面(CLI)选项的列表,请启动最小化拓扑并使其运行。建立Mininet:
$ sudo mn
显示选项:
mininet> help
Python解释器
如果Mininiet命令行上的第一个短语是py
,则该命令将使用Python执行。这对于扩展Mininet以及探究其内部工作方式可能很有用。每个主机,交换机和控制器都有一个关联的Node对象。
在Mininet CLI上,运行:
mininet> py 'hello ' + 'world'
打印可访问的局部变量:
mininet> py locals()
接下来,使用dir()函数查看可用于节点的方法和属性:
mininet> py dir(s1)
您可以使用help()函数阅读在线文档,以获取节点上可用方法的信息:
mininet> py help(h1) (Press "q" to quit reading the documentation.)
您还可以评估变量的方法:
mininet> py h1.IP()
链接上/下
对于容错测试,向上和向下链接很有帮助。
要禁用虚拟以太网对的两个部分:
mininet> link s1 h1 down
您应该看到生成了OpenFlow端口状态更改通知。备份链接:
mininet> link s1 h1 up
XTerm显示
要显示h1和h2的xterm:
mininet> xterm h1 h2
第4部分:Python API示例
Mininet源代码树中的examples目录包含有关如何使用Mininet的Python API的示例,以及尚未集成到主要代码库中的潜在有用代码。
注意:如开头所述,本演练假定您正在使用Mininet VM(包括所需的一切),或者是本机安装了所有相关工具,包括参考控制器controller
(它是OpenFlow参考实现的一部分)install.sh -f
如果尚未安装,则可以使用安装。
每个主机的SSH守护程序
一个可能特别有用的示例在每个主机上运行SSH守护程序:
$ sudo ~/mininet/examples/sshd.py
您可以从另一个终端进入任何主机并运行交互式命令:
-
$ ssh 10.0.0.1
-
$ ping 10.0.0.2
-
...
-
$ exit
退出SSH示例mininet:
$ exit
阅读完介绍Python API的Mininet简介后,您将希望重新阅读这些示例 。
第5部分:演练完成!
恭喜!您已经完成了Mininet演练。随意尝试新的拓扑和控制器,或查看源代码。
掌握Mininet的下一步
如果您还没有这样做,则一定要阅读 OpenFlow教程。
尽管您可以使用Mininet的CLI相当合理,但是当您掌握它的Python API时,Mininet变得更加有用和强大。在 介绍Mininet 将介绍Mininet和Python的API。
如果您想知道如何使用遥控器(例如在Mininet的控制范围之外运行的遥控器),下面将对此进行说明。
附录:补充信息
这些不是必需的,但是您可能会发现它们对略读很有用。
使用遥控器
注意:此步骤不是默认演练的一部分;如果您有一个在VM外部运行的控制器(例如在VM主机或另一台物理PC上),则此功能非常有用。OpenFlow教程controller --remote
用于启动您使用诸如POX,NOX,Beacon或Floodlight之类的控制器框架创建的简单学习开关。
当您启动Mininet网络时,每个交换机都可以连接到远程控制器-可以在VM中,VM外部,本地计算机上或世界任何地方。
如果您已经在本地计算机上安装了控制器框架的自定义版本和开发工具(例如Eclipse),或者想要测试在不同物理计算机上运行的控制器(甚至在云中),则此设置可能很方便。 。
如果要尝试此操作,请填写主机IP和/或侦听端口:
$ sudo mn --controller=remote,ip=[controller IP],port=[controller listening port]
例如,要运行POX的示例学习开关,您可以执行以下操作
在一个窗口和另一个窗口中,启动Mininet以连接到“远程”控制器(该控制器实际上在本地运行,但不在Mininet的控制范围内):
$ sudo mn --controller=remote,ip=127.0.0.1,port=6633
请注意,这些实际上是默认的IP地址和端口值。
如果产生一些流量(例如h1 ping h2
),您应该能够在POX窗口中观察到一些输出,表明交换机已连接并且已经安装了一些流表条目。
只要您启动它们,并使用remote
运行控制器的计算机的正确IP地址和正确的监听端口来指定控制器选项,许多OpenFlow控制器框架便可以轻松地与Mininet 配合使用。
NOX经典
Mininet默认安装(使用util/install.sh -a
)不安装NOX Classic。如果您要安装它,请运行sudo ~/mininet/util/install.sh -x
。
请注意,不推荐使用NOX Classic,将来可能不再支持。
要运行与NOX运行NOX的应用程序回归测试pyswitch
中,NOX_CORE_DIR
的环境变量必须设置为包含NOX可执行文件的目录。
首先验证NOX是否运行:
Ctrl-C杀死NOX,然后使用NOX pyswitch运行测试:
请注意,该--controller
选项具有方便的语法,用于为控制器类型指定选项(在本例中为nox
running pyswitch
。)
加载NOX并连接开关时,会稍有犹豫,但随后它应该完成ping
。
请注意,这次mn
是通过调用的sudo -E
,以保持NOX_CORE_DIR
环境变量。如果您要使用远程运行Nox --controller remote
,则-E
不需要。或者,您可以通过更改第一行/etc/sudoers
,sudo visudo
将env_reset
行更改为:
Defaults !env_reset
…这样,在运行sudo
env var设置时就不会更改。
转发自:http://mininet.org/walkthrough/#run-a-simple-web-server-and-client