• Mininet 创建topo的时候指定host的ip


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

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

    from mininet.topo import Topo
    
    class MyTopo( Topo ):
        def __init__( self ):
            "Create custom topo."
    
            # Initialize topology
            Topo.__init__( self )
            
            # Add hosts and switches
            leftHost1 = self.addHost( 'h1', ip='10.0.0.1' )
            leftHost2 = self.addHost( 'h2', ip='10.0.0.2' )
            leftHost3 = self.addHost( 'h3', ip='10.0.1.1' )
            leftHost4 = self.addHost( 'h4', ip='10.0.1.2' )
                    
            leftSwitch = self.addSwitch( 's1' )
            middleSwitch = self.addSwitch( 's2' )
            rightSwitch = self.addSwitch( 's3' )
            
            rightHost1 = self.addHost( 'h5', ip='10.0.11.1' )
            rightHost2 = self.addHost( 'h6', ip='10.0.11.2' )
            rightHost3 = self.addHost( 'h7', ip='10.0.12.1' )
            rightHost4 = self.addHost( 'h8', ip='10.0.12.2' )
    
            # Add links
            self.addLink( leftHost1, leftSwitch )
            self.addLink( leftHost2, leftSwitch )
            self.addLink( leftHost3, leftSwitch )
            self.addLink( leftHost4, leftSwitch )
            self.addLink( leftSwitch, middleSwitch )
            self.addLink( middleSwitch, rightSwitch )
            self.addLink( rightSwitch, rightHost1 )
            self.addLink( rightSwitch, rightHost2 )
            self.addLink( rightSwitch, rightHost3 )
            self.addLink( rightSwitch, rightHost4 )
            
    topos = { 'mytopo': ( lambda: MyTopo() ) }

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

    mininet@mininet-vm:~/mininet/custom$ sudo mn --custom topo-3sw-8host.py --topo mytopo --controller=remote,ip=192.168.56.1 --mac
    added a switch!    
    added a switch!    
    added a switch!    
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 h3 h4 h5 h6 h7 h8 
    *** Adding switches:
    s1 s2 s3 
    *** Adding links:
    (h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s3) (h6, s3) (h7, s3) (h8, s3) (s1, s2) (s2, s3) 
    *** Configuring hosts
    h1 h2 h3 h4 h5 h6 h7 h8 
    *** Starting controller
    *** Starting 3 switches
    s1 s2 s3 
    *** Starting CLI:
    mininet> dump
    <RemoteController c0: 192.168.56.1:6633 pid=6887> 
    <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None,s1-eth3:None,s1-eth4:None,s1-eth5:None pid=6904> 
    <OVSSwitch s2: lo:127.0.0.1,s2-eth1:None,s2-eth2:None pid=6909> 
    <OVSSwitch s3: lo:127.0.0.1,s3-eth1:None,s3-eth2:None,s3-eth3:None,s3-eth4:None,s3-eth5:None pid=6914> 
    <Host h1: h1-eth0:10.0.0.1 pid=6894> 
    <Host h2: h2-eth0:10.0.0.2 pid=6895> 
    <Host h3: h3-eth0:10.0.1.1 pid=6896> 
    <Host h4: h4-eth0:10.0.1.2 pid=6897> 
    <Host h5: h5-eth0:10.0.11.1 pid=6898> 
    <Host h6: h6-eth0:10.0.11.2 pid=6899> 
    <Host h7: h7-eth0:10.0.12.1 pid=6900> 
    <Host h8: h8-eth0:10.0.12.2 pid=6901> 
    mininet> 
  • 相关阅读:
    begin lydsy 2731
    关于js中this关键字的补充
    js中this关键字测试集锦
    js文件中函数前加分号和感叹号是什么意思?
    好用的wget命令从下载添加环境变量到各参数详解
    一个解析json串并组装echarts的option的函数解析
    oschina代码仓库远程push,pull免密实操总结
    yii 核心类classes.php详解(持续更新中...)
    yii2.0归档安装方法
    配置windows 系统PHP系统环境变量
  • 原文地址:https://www.cnblogs.com/duanguyuan/p/3679015.html
Copyright © 2020-2023  润新知