mininet自定义拓扑

一、前言:

        学习SDN的人,我相信大部分人都用过或者听过mininet,我觉得这是一款集成软件,它给初学者带来了很多的方便,没有真实的openflow交换机,也没有那么多的主机的环境下,mininet的确是一个不错的选择,但是毕竟我们通常在一台PC机上面安装了控制器,来对SDN网络进行控制,而这时我们接着在这台PC机上面安装mininet,什么ovs和主机都在上面进行模拟的话,就缺少了许多真实感,对SDN的架构也会缺少应有的了解,如在我最开始的时候我一直都觉着ovs是必须要通过mininet来进行运行的,在安装时有的mininet就集成了pox控制器,这时不了解sdn架构的初学者就会认为mininet就是实现sdn网络的一切,其实不然,要知道,控制器和它是没有多大的关系。有人会问:在mininet中为什么没有添加流表的时候两台主机会ping通,原因在于控制器中的二层自学习功能,因为这是控制器可以通过下发流表的方式来使交换机产生流表,从而两台机器ping通,这时如果你关闭了控制器,你会发现两台主机就ping不同了。这个例子其实很好地阐释了sdn网络与传统网络的区别。总之,mininet有好有坏,我建议我们做研究的,最好还是可以在真实的环境中搭建下环境,这样才能有更深的体会。

二、mininet的安装及相关的配置:

1、mininet的安装:

这里接着说几句题外话,我觉着学习这些知识,Google是一个不错的选择,各种新技术的了解我觉着自己去国外的官网里查,即使看英文慢点,但是会有更深的了解。mininet的官网就是http://mininet.org/walkthrough/">http://mininet.org

里面有具体教你安装的教程。

2、mininet的配置:

      http://mininet.org/walkthrough/http://mininet.org/walkthrough以及http://archive.openflow.org/wk/index.php/
(1)sudo mn 其实就是默认进入mininet自带拓扑结构的网络环境
(2)其实想要对各个设备进行操作的话,我建议使用xterm name of node进入各自设备进行配置,但我觉着这点有点像传统网络里的管理,通过远程登陆到各自的设备中进行配置,这点我建议大家如果想要对流表进行操作的话还是使用OVS的命令来进行配置,这个我们会在后面的笔记中总结;
(3)如果想要改变拓扑结构和相关的参数,需要在sudo mn 进入的时候在后面添加参数变量,即:

[plain]  view plain  copy
  1. sudo mn --test pingall --topo single,3 //一台交换机,两台主机  
  2. sudo mn --test pingall --topo linear,4 //linear表示每台交换机链接一台主机  
  3. sudo mn --link tc,bw=10,delay=10ms //带宽设置10M,延迟为10ms  
  4. sudo mn --mac //mac以1、2递增的顺序保存  
  5. sudo mn --switch ovsk --controller ref --topo tree,depth=2,fanout=8 --test pingall //二层八叉树,即九台交换机加上64台主机  
  6. sudo mn --topo single,3 --mac --switch ovsk --controller remote //  

mininet常见命令汇总

Help: sudo mn [-h] 通过-h可以查看到帮助信息。

● Connect to remote controller: sudo mn --controller=remote,ip=127.0.0.1,port=6633 端口可以省略,默认值是6633,可指定。

● Topology: sudo mn --topo=

tree,n,m 第一个参数为深度,第二个位扇出系数。可以写成--tree,depth=2,fanout=8

single, n:单个交换机,n个交换机

liner, n: 线性拓扑,n个交换机

● Test:--test[pingall/pingpair..]

● Link:--link=tc,bw=10M, delay=10ms,loss=5%

● Custom Topo:--custom~/mininet/custom/topo-2sw-2host.py --topo mytopo

● ID=MAC: sudo mn --mac

● Xterm: sudo mn -x 启动xterm到每一个host和switch

● Switch type: sudo mn --switch ovsk/user,

● Help: help 查看帮助信息

● Exit: exit 退出mininet

● Python: py “hello” / py dir(s1) pyhello.py 运行python文件:

● Link: link s1 h1 down/up 参数分别为link两端网元。

● Xterm: xterm s1/h1 xterm到某一个主机或交换机

● Node: nodes 查看节点

● Dump:dump 查看所有节点信息

节点命令:

s1 ifconfig

s1 ps -a

h1 arp -s

h1 ping -c 10 h2

py h1.setIP('10.0.0.3/24')

● Iperf: iperf h1 h2 启用iperf功能

● Ping: h1 ping h2 pingall/pingpair 发送ping消息

● HTTPSERVER : h1 python -mSimpleHTTPServer 80 &

● HTTPCLIENT: h2 wget -O -h1

 

通过桥接来解决访问互联网的问题;

sudo mn --custom /net.py --topo=mytopomytopo

py h1.setIP('10.0.0.3/24')






  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值