- 第一部分:基础常识
- 第二部分:基本拓扑结构介绍
- 第三部分基本命令
- 第四部分:测试主机间的连通性
- 第五部分:修改网络拓扑大小和类型(single,linear,python定义)
- 第六部分:(略)调整信息输出等级(默认info,可以设置debug:$ sudo mn -v debug)
- 第七部分:ID = MAC
- 第八部分:xterm并显示运用dpctl
- 待更新
一.基础常识
$ 表示在 shell 终端中输入的 Linux 命令
mininet> 表示在 Mininet CLI 中输入的命令
# 表示在超级用户下输入的 Linux 命令
二.最基本的拓扑建设
使用了命令行sudo mn。建立了默认的最小的拓扑结构,两个主机h1,h2连入一个交换机s1,还开启一个控制器
在 Wireshark 窗口中,看到交换机被连接到了控制器上(译注:产生了控制流数据包)。
由图观察可知首先
1.hello
2.feature request,基础配置
3.set config,继续进行一些新的配置
4.三次pack_in and pack_out (前两次为了查地址因为ipv6没有arf,所以运用组播。)
pack_in进行了组播监听
组播侦听发现协议是ipv6才有的协议,他的原理是当源主机发送一份数据到一个组播地址,所有加入了这个组播地址的成员都可以收到一份数据的拷贝。并且只有组播成员才可以接收到数据。路由器通过MLD协议,可以了解自己的直连网段上是否有IPv6组播组的侦听者,并在数据库里做相应记录。同时,路由器还维护与这些IPv6组播地址相关的定时器信息。
pack_out
洪泛
在无状态自动配置(StatelessAutoconfiguration)过程中,主机首先通过将它的网卡MAC地址附加在链接本地地址前缀1111111010之后,产生一个链路本地单点传送地址。
接着主机向该地址发出一个被称为邻居发现(neighbordiscovery)的请求,以验证地址的唯一性。 如果请求没有得到响应,则表明主机自设置的链路本地单点传送地址是唯一的。 否则,主机将使用一个随机产生的接口ID组成一个新的链路本地单点传送地址。 然后,以该地址为源地址,主机向本地链路中所有路由器多点传送一个被称为路由器请求(routersolicitation)的配置信息。 路由器以一个包含一个可聚集全球单点传送地址前缀和其它相关配置信息的路由器公告响应该请求。 主机用它从路由器得到的全球地址前缀加上自己的接口ID,自动配置全球地址,然后就可以与Internet中的其它主机通信了。 使用无状态自动配置,无需手动干预就能够改变网络中所有主机的IP地址。 更简单的理解是无状态就是自动分配,有状态是要用网管分给地址,不完全正解。 但基本可以简单这样理解。
5.port status
原因在于
6.多次pack_in and pack_out
已经确定了控制器的全球地址,通知给所有的路由器。
7.echo request and echo reply。持续通话
三.基本命令