注: 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的启动选项的帮助消息:
键入以下命令以显示描述Mininet的启动选项的帮助消息:
$ sudo mn -h
2.Mininet常用命令的使用 1).显示Mininet CLI命令: 2)显示节点信息 3)显示链接信息 4)转储有关所有节点的信息 5)第一个字符串是主机名,交换机名或控制器名,则命令将在该节点上执行 回环(loopback)指将电子信号、数据流等原样送回发送者的行为。它主要用于对通信功能的测试。 6)默认情况下,交换机在根网络名称空间中运行,因此在“交换机”上运行命令与从常规终端运行命令相同 7)从主机进程中打印进程列表 请注意,只有网络是虚拟的。每个主机进程都具有相同的进程和目录集。 8)测试主机之间的连接
Mininet常用命令的使用
显示Mininet CLI命令:
显示节点信息
显示链接信息
转储有关所有节点的信息
第一个字符串是主机名,交换机名或控制器名,则命令将在该节点上执行
默认情况下,交换机在根网络名称空间中运行,因此在“交换机”上运行命令与从常规终端运行命令相同
从主机进程中打印进程列表
测试主机之间的连接
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服务器和客户端
运行一个简单的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都会改变,因此很难将控制流量与特定主机相关联。
ID=MAC
该–mac选项超级有用,并将主机MAC和IP地址设置为小的,唯一的,易于读取的ID。 三、Mininet命令行界面(CLI)命令 1.显示选项 要查看命令行界面(CLI)选项的列表,请启动最小化拓扑并使其运行。建立Mininet:
显示选项
$ sudo mn
2.Python解释器
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
每个主机的SSH守护程序
WireShark简介
Wireshark在Linux系统下的安装及使用
WireShark使用详解:
ubuntu新版wireshark的升级与回退
六、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.删除和创建以'-'开头的文件。
libevent的的安装教程
软件的下载地址
软件的卸载命令
查看安装的所有软件
程序库文件的指明
删除和创建以'-'开头的文件。