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

您可以从另一个终端进入任何主机并运行交互式命令:

  1.  
    $ ssh 10.0.0.1
  2.  
    $ ping 10.0.0.2
  3.  
    ...
  4.  
    $ 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的示例学习开关,您可以执行以下操作

  1.  
    $ cd ~/pox
  2.  
    $ ./pox.py forwarding.l2_learning

在一个窗口和另一个窗口中,启动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是否运行:

  1.  
    $ cd $NOX_CORE_DIR
  2.  
    $ ./nox_core -v -i ptcp:

Ctrl-C杀死NOX,然后使用NOX pyswitch运行测试:

  1.  
    $ cd
  2.  
    $ sudo -E mn --controller=nox,pyswitch --test pingpair

请注意,该--controller选项具有方便的语法,用于为控制器类型指定选项(在本例中为noxrunning pyswitch。)

加载NOX并连接开关时,会稍有犹豫,但随后它应该完成ping

请注意,这次mn是通过调用的sudo -E,以保持NOX_CORE_DIR环境变量。如果您要使用远程运行Nox --controller remote,则-E不需要。或者,您可以通过更改第一行/etc/sudoerssudo visudoenv_reset行更改为:

Defaults !env_reset

…这样,在运行sudoenv var设置时就不会更改。

转发自:http://mininet.org/walkthrough/#run-a-simple-web-server-and-client

posted @ 2020-12-26 10:16  常给自己加个油  阅读(392)  评论(0编辑  收藏  举报