欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MiniNet的初步使用

程序员文章站 2022-07-06 18:01:06
...

MiniNet的初步使用

  1. 用可视化工具miniedit 创建一个网络拓扑,进行相应配置后,保存为 python 脚本, 运行 python 脚本重现拓扑;

  2. 命令行创建拓扑:

    i. 最小的网络拓扑,一个交换机下挂两个主机。

    ii. 每个交换机连接一个主机,交换机间相连接。本例:4 个主机,4 个交换机。

    iii. 每个主机都连接到同一个交换机上。本例:3 个主机,一个交换机。

  3. 交互式界面创建主机、交换机等

  4. 对节点间进行 ping 测试。

1. 用可视化工具miniedit 创建一个网络拓扑,进行相应配置后,保存为 python 脚本, 运行 python 脚本重现拓扑;
  • 找到miniedit 的安装目录 ,mininet在安装的时候将miniedit.py写在了这个目录下
     cd /usr/share/doc/mininet/examples
    

MiniNet的初步使用

  • 运行miniedit

     sudo python2 miniedit.py
    

    MiniNet的初步使用

  • 拖动创建

MiniNet的初步使用

  • 保存为python脚本

    • myfrist.py
     #!/usr/bin/python
     from mininet.net import Mininet
     from mininet.node import Controller, RemoteController, OVSController
     from mininet.node import CPULimitedHost, Host, Node
     from mininet.node import OVSKernelSwitch, UserSwitch
     from mininet.node import IVSSwitch
     from mininet.cli import CLI
     from mininet.log import setLogLevel, info
     from mininet.link import TCLink, Intf
     from subprocess import call
     
     def myNetwork():
         net = Mininet( topo=None,
                        build=False,
                        ipBase='10.0.0.0/8')
     
         info( '*** Adding controller\n' )
         info( '*** Add switches\n')
         s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
     
         info( '*** Add hosts\n')
         h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
         h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
     
         info( '*** Add links\n')
         net.addLink(h1, s1)
         net.addLink(h2, s1)
     
         info( '*** Starting network\n')
         net.build()
         info( '*** Starting controllers\n')
         for controller in net.controllers:
             controller.start()
     
         info( '*** Starting switches\n')
         net.get('s1').start([])
     
         info( '*** Post configure switches and hosts\n')
     
         CLI(net)
         net.stop()
     
     if __name__ == '__main__':
         setLogLevel( 'info' )
         myNetwork()
    
  • 运行python脚本

      sudo python2 myfrist.py 
    

MiniNet的初步使用

2.命令行创建拓扑
  • 最小的网络拓扑,一个交换机下挂两个主机。
      sudo mn --topo single,2
    

MiniNet的初步使用

  • 每个交换机连接一个主机,交换机间相连接。本例:4 个主机,4 个交换机。

      sudo mn --topo linear,4
    

MiniNet的初步使用

  • 每个主机都连接到同一个交换机上。本例:3 个主机,一个交换机。

     sudo mn --topo single,3
    

MiniNet的初步使用

  • 交互式界面创建主机、交换机等

     py net.addHost('h3')
     py net.addLink(s1,net.get('h3'))
     py s1.attach('s1-eth3')
     py net.get('h3').cmd('ifconfig h3-eth0 10.3')
    

MiniNet的初步使用

  • 对节点间进行 ping 测试。
     h1 ping h2
    

MiniNet的初步使用