在ubuntu系统下使用源码安装了mininet,以下是一些基本命令以及操作:
-
mininet命令可以这样分为三个部分:
创建网络部分
1. 四种基本拓扑类型的创建:
其中树形拓扑的depth是指交换机的深度,而非整个树的深度. 而fanout可以理解为是一种广度,具体解释为:如果fanout为2,则根节点下挂两个节点(图中s1交换机下挂两个交换机s2,s3),并且每一个非叶子节点都下挂两个节点(图中s2,s3交换机也分别下挂两个主机),若fanout为n,则以上每一个非叶子节点都下挂n个节点.
自定义拓扑需要在custom下自行生成脚本文件,然后调用.
2.网络构建参数:--switch
定义mininet要使用的交换机(默认使用OVSK,即OpenVSwitch交换机).
3.网络构建参数:--controller
定义要使用的控制器,如果没有指定则使用mininet中默认的控制器.
4.网络构建参数:--mac
自动设置设备的mac地址.
在所搭建网络比较大比较复杂的情况下,建议使用mac参数,这会使得网络比较清晰.
内部交互命令
一些示例:
例如: 使用mn命令可以创建一个最简单的网络(一个交换机下挂两个主机). net可以查看链路信息,nodes可以查看节点信息,links可以查看链路的健壮性(即链路是否在正常运行),pingall查看连通性以及丢包率.
常用内部交互命令:
利用py扩展拓扑的示例:
例如现在已经有一个最简单的网络(一个交换机连接着两个主机,s1,h1,h2),现在想要在原有拓扑的基础之上再增加一个主机h3,则需要以下步骤:
- 创建主机h3
- 建立h3与s1之间的链路
- 在s1上添加一个能与h3相连的接口
- 给新加入的h3赋予一个IP地址
- dump查看网络状况,却发现h3的IP地址并不能查看到,这是因为主机之间还没有进行互ping操作,所以控制器无法发现主机地址.
- 所以我们就ping它一下
- 再次查看,发现h3的IP地址已存在