示例,要创建一个3个交换机8个主机的拓扑,如下图:

可以用如下python代码创建上述拓扑,并指定ip:

  1. from mininet.topo import Topo
  2.  
  3. class MyTopo( Topo ):
  4. def __init__( self ):
  5. "Create custom topo."
  6.  
  7. # Initialize topology
  8. Topo.__init__( self )
  9.  
  10. # Add hosts and switches
  11. leftHost1 = self.addHost( 'h1', ip='10.0.0.1' )
  12. leftHost2 = self.addHost( 'h2', ip='10.0.0.2' )
  13. leftHost3 = self.addHost( 'h3', ip='10.0.1.1' )
  14. leftHost4 = self.addHost( 'h4', ip='10.0.1.2' )
  15.  
  16. leftSwitch = self.addSwitch( 's1' )
  17. middleSwitch = self.addSwitch( 's2' )
  18. rightSwitch = self.addSwitch( 's3' )
  19.  
  20. rightHost1 = self.addHost( 'h5', ip='10.0.11.1' )
  21. rightHost2 = self.addHost( 'h6', ip='10.0.11.2' )
  22. rightHost3 = self.addHost( 'h7', ip='10.0.12.1' )
  23. rightHost4 = self.addHost( 'h8', ip='10.0.12.2' )
  24.  
  25. # Add links
  26. self.addLink( leftHost1, leftSwitch )
  27. self.addLink( leftHost2, leftSwitch )
  28. self.addLink( leftHost3, leftSwitch )
  29. self.addLink( leftHost4, leftSwitch )
  30. self.addLink( leftSwitch, middleSwitch )
  31. self.addLink( middleSwitch, rightSwitch )
  32. self.addLink( rightSwitch, rightHost1 )
  33. self.addLink( rightSwitch, rightHost2 )
  34. self.addLink( rightSwitch, rightHost3 )
  35. self.addLink( rightSwitch, rightHost4 )
  36.  
  37. topos = { 'mytopo': ( lambda: MyTopo() ) }

创建topo之后用dump命令验证,可见它们的ip确实如代码中指定的一样。

  1. mininet@mininet-vm:~/mininet/custom$ sudo mn --custom topo-3sw-8host.py --topo mytopo --controller=remote,ip=192.168.56.1 --mac
  2. added a switch!
  3. added a switch!
  4. added a switch!
  5. *** Creating network
  6. *** Adding controller
  7. *** Adding hosts:
  8. h1 h2 h3 h4 h5 h6 h7 h8
  9. *** Adding switches:
  10. s1 s2 s3
  11. *** Adding links:
  12. (h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s3) (h6, s3) (h7, s3) (h8, s3) (s1, s2) (s2, s3)
  13. *** Configuring hosts
  14. h1 h2 h3 h4 h5 h6 h7 h8
  15. *** Starting controller
  16. *** Starting switches
  17. s1 s2 s3
  18. *** Starting CLI:
  19. mininet> dump
  20. <RemoteController c0: 192.168.56.1: pid=>
  21. <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None,s1-eth3:None,s1-eth4:None,s1-eth5:None pid=>
  22. <OVSSwitch s2: lo:127.0.0.1,s2-eth1:None,s2-eth2:None pid=>
  23. <OVSSwitch s3: lo:127.0.0.1,s3-eth1:None,s3-eth2:None,s3-eth3:None,s3-eth4:None,s3-eth5:None pid=>
  24. <Host h1: h1-eth0:10.0.0.1 pid=>
  25. <Host h2: h2-eth0:10.0.0.2 pid=>
  26. <Host h3: h3-eth0:10.0.1.1 pid=>
  27. <Host h4: h4-eth0:10.0.1.2 pid=>
  28. <Host h5: h5-eth0:10.0.11.1 pid=>
  29. <Host h6: h6-eth0:10.0.11.2 pid=>
  30. <Host h7: h7-eth0:10.0.12.1 pid=>
  31. <Host h8: h8-eth0:10.0.12.2 pid=>
  32. mininet>

Mininet 创建topo的时候指定host的ip的更多相关文章

  1. 使用Mininet创建网络拓扑

    使用Mininet创建Topo Python脚本实现创建拓扑 #coding:utf-8 from mininet.net import Mininet from mininet.topo impor ...

  2. PDO创建mysql数据库并指定utf8编码

    <?php //PDO创建mysql数据库并指定utf8编码 header('Content-type:text/html; charset=utf-8'); $servername = &qu ...

  3. expect脚本同步文件 expect脚本指定host和要同步的文件 构建文件分发系统 批量远程执行命令

    自动同步文件 #!/usr/bin/expect set " spawn rsync -av root@.txt /tmp/ expect { "yes/no" { se ...

  4. expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行命令

    7月20日任务 20.31 expect脚本同步文件20.32 expect脚本指定host和要同步的文件20.33 构建文件分发系统20.34 批量远程执行命令扩展:shell多线程 http:// ...

  5. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

  6. 如何在Mininet中修改host的IP地址

    how to update virtual host's IP in mininet? I got it! do like this: mininet> py h1.setIP('10.0.0. ...

  7. [转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host

    From : http://digdeeply.org/archives/10132139.html 我们在开发测试时,有时web服务器会绑定一个域名,但是因为dns是无法解析的,我们需要设置host ...

  8. mysql中如何在创建数据库的时候指定数据库的字符集?

    需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用create database语句创建数据库 mysql> create database if not exists test03 ...

  9. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

随机推荐

  1. 延迟加载图片的 jQuery 插件:Lazy Load

    网站的速度非常重要,现在有很多网站优化的工具,如 Google 的Page Speed,Yahoo 的 YSlow,对于网页图片,Yahoo 还提供 Smush.it这个工具对图片进行批量压缩,但是对 ...

  2. div层遮盖flash(兼容浏览器)

    今天测试div层和flash的交互,发现div层总是被flash层遮盖,在百度上找了一会,说是加个<param name="wmode" value="transp ...

  3. 【转】CSS实现兼容性的渐变背景(gradient)效果

    一.有点俗态的开场白 要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现 ...

  4. Eclipse导入android包错误

    错误提示:Invalid project description… 解决方案:假设你的工作空间是workshop,那么你可以在你的workshop下新建一个文件夹,然后放入你的包,再在Eclipse中 ...

  5. kdbchk: the amount of space used is not equal to block size

    一.对数据文件检查 注意:应该在关闭数据库模式下进行bbed的操作 [oracle@ora10 controlfile]$ dbv file=/u01/app/oracle/oradata/ORCL/ ...

  6. Linq中延迟查询和立即查询

    //立即查询 public static void NowExecute() { var results = new int[]{5,4,3,2,1,6,7,8,9,0 }; int i = 0; v ...

  7. 常用设备类别及其GUID

    Class ClassGuid 说明 1394 6BDD1FC1-810F-11D0-BEC7-08002BE2092F 1394主控制器 CDROM 4D36E965-E325-11CE-BFC1- ...

  8. cadence16.6 如何对齐元件

    1.选中Setup-->Application Mode-->Placement Edit mode2.按"CTRL"键,选中需要对齐的所有对象.3.点击右键右,或者在 ...

  9. 关于使用视图进行分页时出现当前记录集不支持书签的错误解决方法及原因(asp)

    一般在使用视图进行查询时,视图中意般都关联了两个或者更多个表,一般在这种情况下才会使用视图,但是但我在使用视图来查询数据时没有问题,但是一旦在分页中使用到视图进行查询就会出现错误提示如下: ADODB ...

  10. suse linux 操作系统下打BASH补丁

    1.检查当前版本信息: bash -version echo $BASH_VERSION   2.打4.3版本的补丁 在tmp目录下(保险起见,空间至少要100M以上)新建一个bash_upgrade ...