Mininet自定义网络拓扑

在Mininet上的网络拓扑有两种方式

  • 第一种 用mininet自带的miniedit可视化工具,在mininet/mininet/examples/的目录下的一个miniedit.py,运行这个文件就会出现

885895-20170412235442205-131473221.png

  • 这个工具让底层网络生动形象,我现在个人比较喜欢这种方式。这是miniedit的基本教程参照Mininet可视化应用

  • 第二种用代码,通过编写python文件来自定义网络拓扑,下面就是关于拓扑的基本代码

    1,增加主机

      addHost('hostname')

    2,增加交换机

      addSwitch('switchname')

    3,增加链路

      addLink(node1,node2,node1_port,node2_port)

    4,我建了个mininet_topo.py的文件
    885895-20170413212835595-112838185.png
    5,然后mininet输入以下指令

      sudo mn --custom mininet_topo.py --topo mytopo  --controller=remote,ip=192.168.138.128,port=6633
    注意:
    • ip地址为你主机的ip地,这样拓扑需要远程控制器(例如OpenDaylight,Ryu等)

      6,结果
      885895-20170413214104501-917027370.png

    各个主机连不通,是因为还没给交换机下流表,我这里用ovs给s1,s2下流表以供参考

    885895-20170413215203939-792649888.png

    再次测试

    885895-20170413215253455-839588523.png


最后

  • 我在远程控制器是用的ryu,在ryu的使用和ovs下流表的过程中我也遇到很多难题不懂,这里多谢学长的帮忙,流表中的Apr十分重要,以及互ping的协议要icmp,还有关于流表中的table之间的问题。
  • 附相关网站
    1,Arp
    2,Icmp
    3,Ryu的安装
    4,ovs流表table之间的转换

转载于:https://www.cnblogs.com/deepYY/p/6740561.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Python脚本,用于创建一个带有链路聚合的拓扑,并在Mininet环境中运行它。这个拓扑由两个交换机和四个主机组成,每个主机都连接到两个交换机,从而实现链路聚合。 ```python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import OVSSwitch, Controller from mininet.link import Link, Intf class AggTopo(Topo): def __init__(self): Topo.__init__(self) # Create switches s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # Create hosts h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') # Add links between switches and hosts self.addLink(s1, h1, port1=1) self.addLink(s1, h2, port1=2) self.addLink(s2, h3, port1=1) self.addLink(s2, h4, port1=2) # Add link aggregation between switches self.addLink(s1, s2, port1=3, port2=3, intfName1='eth3', intfName2='eth3', params1={'ip': '10.0.0.1/24'}, params2={'ip': '10.0.0.2/24'}, cls=Link, intf=Intf) if __name__ == '__main__': topo = AggTopo() net = Mininet(topo=topo, switch=OVSSwitch, controller=Controller) net.start() net.pingAll() net.stop() ``` 在这个脚本中,我们首先创建了一个名为AggTopo的自定义拓扑类。在这个类中,我们创建了两个交换机和四个主机,并将它们连接起来。我们还添加了一个链路聚合连接,将两个交换机连接起来。这个链路聚合连接使用了Link和Intf类,这两个类可以让我们手动指定接口名称和IP地址。 在主程序中,我们使用这个自定义拓扑类创建了一个Mininet实例,并使用OVSSwitch作为交换机类型,使用Controller作为控制器类型。我们启动Mininet实例,让所有主机相互ping一下,然后停止Mininet实例。 这是一个非常简单的例子,但它演示了如何使用Mininet创建一个带有链路聚合的拓扑。您可以在此基础上构建更复杂的拓扑,实现更高级的网络模拟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值