Mininet使用教程

注:
1)重要的链接:http://mininet.org/walkthrough/#display-startup-options
在这里插入图片描述
2)IPv4与IPv6之间的地址转换
https://www.subnetonline.com/pages/subnet-calculators/ipv4-to-ipv6-converter.php
一、日常Mininet的使用
1.键入以下命令以显示描述Mininet的启动选项的帮助消息:

$ sudo mn -h

在这里插入图片描述
2.Mininet常用命令的使用
1).显示Mininet CLI命令:
在这里插入图片描述
2)显示节点信息
在这里插入图片描述
3)显示链接信息
在这里插入图片描述
4)转储有关所有节点的信息
在这里插入图片描述
5)第一个字符串是主机名,交换机名或控制器名,则命令将在该节点上执行
回环(loopback)指将电子信号、数据流等原样送回发送者的行为。它主要用于对通信功能的测试。
在这里插入图片描述
6)默认情况下,交换机在根网络名称空间中运行,因此在“交换机”上运行命令与从常规终端运行命令相同
在这里插入图片描述
7)从主机进程中打印进程列表
请注意,只有网络是虚拟的。每个主机进程都具有相同的进程和目录集。
在这里插入图片描述
8)测试主机之间的连接

ping的相关命令参数:
https://www.cnblogs.com/machangwei-8/p/10352808.html
-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限检测;
-i<间隔秒数>:指定收发信息的间隔时间;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。

在命令中出现带有节点名称的字符串,则该节点名称将被其IP地址替换。
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

在这里插入图片描述

在这里插入图片描述
ping第二次尝试的时间应该更少(<100us)。ping先前在交换机中安装了覆盖ICMP 流量的流条目,因此没有生成控制流量,并且数据包立即通过交换机。
在这里插入图片描述
9)运行一个简单的Web服务器和客户端

mininet> h1 python -m SimpleHTTPServer 80 &
#  这个也可以!mininet> h2 python -m SimpleHTTPServer 80 >& /tmp/http.log &
mininet> h2 wget -O - h1  #大写的O
...
mininet> h1 kill %python

二、高级启动选项
1.运行回归测试
1).该命令创建了最小的拓扑,启动了OpenFlow参考控制器,进行了全对ping测试,并拆除了拓扑和控制器。在这里插入图片描述
2).此命令创建相同的Mininet,在一台主机上运行一台iperf服务器,在第二台主机上运行一台iperf客户端,并解析所获得的带宽。
在这里插入图片描述
2.更改拓扑的大小和类型
默认拓扑是连接到两个主机的单个交换机。您可以使用将其更改为其他拓扑–topo,并为该拓扑的创建传递参数。例如,要验证一台交换机和三台主机的所有对ping连接,请执行以下操作:
在这里插入图片描述
具有线性拓扑(其中每个交换机都有一个主机,并且所有交换机都在一条线上连接):
在这里插入图片描述
3.链接变化

 $ sudo mn --link tc,bw=10,delay=10ms#带宽为10M,延迟为10ms。

如果每个链路的延迟为10毫秒,则往返时间(RTT)应该约为40毫秒,因为ICMP请求遍历两个链路(一个到交换机,一个到目的地)并且ICMP答复遍历两个返回的链路。
在这里插入图片描述
4.自定义拓扑
一个行之有效的方式是将所编写的程序代码放在/mininet/custom/目录下,然后使用下面的命令来运行相应的程序。

$ sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo mytopo --test pingall

在这里插入图片描述
5.ID=MAC
默认情况下,主机以随机分配的MAC地址开头。这会使调试变得很困难,因为每次创建Mininet时,MAC都会改变,因此很难将控制流量与特定主机相关联。

该–mac选项超级有用,并将主机MAC和IP地址设置为小的,唯一的,易于读取的ID。
在这里插入图片描述
在这里插入图片描述
三、Mininet命令行界面(CLI)命令
1.显示选项
要查看命令行界面(CLI)选项的列表,请启动最小化拓扑并使其运行。建立Mininet:

$ sudo mn

在这里插入图片描述
2.Python解释器

在Mininet CLI上,运行:
mininet> py 'hello ' + 'world'

打印可访问的局部变量:
mininet> py locals()

接下来,使用dir()函数查看可用于节点的方法和属性:
mininet> py dir(s1)

使用help()函数阅读在线文档,以获取节点上可用方法的信息:
py help(h1)

评估变量的方法:
mininet> py h1.IP()

在这里插入图片描述在这里插入图片描述
3.链接上/下

要禁用虚拟以太网对的两个部分:
mininet> link s1 h1 down

您应该看到生成了OpenFlow端口状态更改通知。备份链接:
mininet> link s1 h1 up

在这里插入图片描述
四、Python API示例
1.每个主机的SSH守护程序
一个可能特别有用的示例在每个主机上运行SSH守护程序:
在这里插入图片描述
五、WireShark
1.WireShark简介
WireShark是世界上使用最广泛的网络协议分析器。
功能:
标准的三窗格数据包。
能够实时捕获和离线分析。
业界最强大的显示过滤器。
在这里插入图片描述
2.Wireshark在Linux系统下的安装及使用
https://blog.csdn.net/jipengwang/article/details/78799310
3.WireShark使用详解:
https://blog.csdn.net/qq_36119192/article/details/84671638
https://blog.csdn.net/leichelle/article/details/8186900
4.ubuntu新版wireshark的升级与回退
https://blog.csdn.net/bryanting/article/details/53327575

六、libevent
1.libevent的的安装教程
https://blog.csdn.net/u010710458/article/details/79408766
2.软件的下载地址
http://libevent.org/
3.软件的卸载命令
sudo apt-get remove libevent**(可以使用tab建进行提示)
注:在安装时,安装的是libevent-2.0.22.但是在查看软件版本时,却变成了libevent-2.1.6。
七、常见的Linux命令
1.查看安装的所有软件
dpkg -l在这里插入图片描述
2.程序库文件的指明
一般来说,库文件如果是在/usr/lib或/usr/local/lib下的话,编译时候会自动加载的,不需要显示的指明库文件所在位置。如果编译出错,可以显示地
指明库文件所在目录。
g++ main.cpp -L/usr/local/lib -levent
//-L 告知编译器库文件所在目录位置
//-l 告知编译器所需链接库文件
在这里插入图片描述
3.删除和创建以'-'开头的文件。
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章