• mininet命令


    1.使用mn命令进入测试网络

    root@ubuntu:~# mn
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 
    *** Adding switches:
    s1 
    *** Adding links:
    (h1, s1) (h2, s1) 
    *** Configuring hosts
    h1 h2 
    *** Starting controller
    c0 
    *** Starting 1 switches
    s1 ...
    *** Starting CLI:

    2.使用links命令查看链路连通性

    mininet> links
    h1-eth0<->s1-eth1 (OK OK) 
    h2-eth0<->s1-eth2 (OK OK) 
    mininet> 

    3.使用dump查看各个节点信息

    mininet> dump
    <Host h1: h1-eth0:10.0.0.1 pid=45992> 
    <Host h2: h2-eth0:10.0.0.2 pid=45994> 
    <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=45999> 
    <Controller c0: 127.0.0.1:6653 pid=45985> 

    4.使用pingall命令测试各个主机之间是否连通

    mininet> pingall
    *** Ping: testing ping reachability
    h1 -> h2 
    h2 -> h1 
    *** Results: 0% dropped (2/2 received)

    命令图谱

    网络构建参数

    1.单一拓扑:整个网络拓扑中交换机只有一个,下面可以连接多个主机

    root@ubuntu:~# mn --topo=single,3
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 h3 
    *** Adding switches:
    s1 
    *** Adding links:
    (h1, s1) (h2, s1) (h3, s1) 
    *** Configuring hosts
    h1 h2 h3 
    *** Starting controller
    c0 
    *** Starting 1 switches
    s1 ...
    *** Starting CLI:

    2.线性拓扑:可以有多个交换机,但是每个交换机下面只是连接一个主机

    root@ubuntu:~# mn --topo=linear,4
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 h3 h4 
    *** Adding switches:
    s1 s2 s3 s4 
    *** Adding links:
    (h1, s1) (h2, s2) (h3, s3) (h4, s4) (s2, s1) (s3, s2) (s4, s3) 
    *** Configuring hosts
    h1 h2 h3 h4 
    *** Starting controller
    c0 
    *** Starting 4 switches
    s1 s2 s3 s4 ...
    *** Starting CLI:
    mininet> 
    注意:网络链路状态中,links是包含交换机之间也是连通的  s1--s2--s3--s4

    depth设置树的深度(不含根节点),fanout设置每个节点下的子树个数(广度)
    root@ubuntu:~# mn --topo=tree,depth=2,fanout=2
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 h3 h4 
    *** Adding switches:
    s1 s2 s3 
    *** Adding links:
    (s1, s2) (s1, s3) (s2, h1) (s2, h2) (s3, h3) (s3, h4) 
    *** Configuring hosts
    h1 h2 h3 h4 
    *** Starting controller
    c0 
    *** Starting 3 switches
    s1 s2 s3 ...
    *** Starting CLI:

    4.自定义拓扑(重点)

    定义网络拓扑要使用的交换机,后面可以接的参数有:ovsk、ovsbr、ivs、lxbr、user,前面三种均为OVS型交换机,后面两种分别为内核型(linux bridge)和用户型(user)交换机。
    交换机分类3类:内核型、用户型、OVS型,其中内核型和OVS型的吞吐量比用户型大很多,因此一般采用后两种。
    测试三者的TCP bandwidth
    sudo mn --test iperf    内核型
    sudo mn --switch user --test iperf    用户型
    sudo mn --switch ovsk --test iperf        ovs型

    controller :一般我们不用mininet自带的控制器,而是自己制定一个远程控制器

    如果--ip和--port省略的话,则默认使用本地ip地址,端口默认使用6653或6633端口号。

    mac

    使用这个参数可以让MAC地址从小到达排列,使得复杂的网络更清晰,容易辨识各个组件的MAC地址。
    不使用这个参数的话,复杂的网络容易混乱。

    内部交互命令

    (一)常用内部交互命令(不可修改网络结构)

    这些命令在 mininet> 命令模式下使用,仅查看网络设备状态信息,不对网络结构进行改变

    net              查看链路信息,两个设备之间的之间连线,称为一个链路,链路是双向的
    
    nodes           查看有哪些可用节点
    
    links            检测链路是否正常工作
    
    pingall         检测各个主机之间的连通性
    
    pingpair       检测前两个主机的连通性            
    
    dump           查看节点信息

    (二)采用内部交互命令:可以更改网络结构的命令,或者是带参数命令

    1.py命令

    执行Python表达式,例如添加网络设备。下面举例说明:
    
    在mininet自带的网络拓扑的基础上,我们想添加一个主机h3,并且让它和s1之间连通,且可以和其他两个主机h1和h2互相ping通。
    py net.addHost('h3')                                #给当前网络net添加新的主机h3
    
    py net.addLink(s1,h3)                               #为主机h3和交换机s1之间添加一条链路
    
    py s1.attach('s1-eth3')                             #为交换机s1添加一个接口用于与h3相连
    
    py h3.cmd('ifconfig h3-eth0 10.3')               #为主机h3配置端口及改端口的IP地址
    
    h1 ping h3                                          #重要!!h1知道h3的IP地址,而h3不知道h1的地址,因此需要h1告诉h3的地址
    
    pingall                                             #测试所有主机都是连通的

    2.link:设置链路状态

    link s1 s2 down/up              禁用/开启s1和s2这两个节点之间的链路
    可以看到,当关闭链路s1 s2后,主机h1和h2是无法通信的

    3.iperf h1 h2                          测试两个主机h1和h2之间的TCP带宽

     

    4.iperfupd bw h1 h2             测试两个主机h1和h2之间的UDP带宽

    一定要加上bw

    5.dpctl                             对所有交换机操作流表,包括流表的显示、添加、修改、删除,具体用法,参考

    6.xterm                             如xterm h1打开主机h1的操作窗口

  • 相关阅读:
    数据库的视图概念作用
    常见的反爬虫和应对方法
    referrer policy
    JSON
    异步消息处理机制
    Acitivity(活动)
    springboot @Autowired 空指针异常问题处理
    CentOS7 宝塔 ThinkPHP SQLServer 2000 安装FreeTDS
    PHP THINKPHP 函数 dump var_dump var_export
    ThinkPHP5 WHERE AND OR 实现多条件查询
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12214118.html
Copyright © 2020-2023  润新知