SDN-Mininet安装使用_mininet 交换机 dpid

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

注意:一些翻译可能不太准确,读者敲sudo mn -h读英文原版更好。

Options:
  -h, --help                     显示帮助信息并退出
  --switch=交换机          default|ivs|lxbr|ovs|ovsbr|ovsk|user[,param=value…]
                                      ovs=OVSSwitch default=OVSSwitch ovsk=OVSSwitch
                                      lxbr=LinuxBridge user=UserSwitch ivs=IVSSwitch
                                      ovsbr=OVSBridge
  --host=主机               cfs|proc|rt[,param=value…]
                                     rt=CPULimitedHost{‘sched’: ‘rt’} proc=Host
                                     cfs=CPULimitedHost{‘sched’: ‘cfs’}
  --controller=控制器
                                   default|none|nox|ovsc|ref|remote|ryu[,param=value…]
                                   ovsc=OVSController none=NullController
                                   remote=远程控制器  default=DefaultController
                                   nox=NOX ryu=Ryu ref=控制器
  --link=链接               default|ovs|tc|tcu[,param=value…] default=Link
                                   ovs=OVSLink tcu=TCULink tc=TCLink
  --topo=拓扑            linear|minimal|reversed|single|torus|tree[,param=value…]

linear=线性拓扑 torus=圆环拓扑 tree=树形拓扑
                                  single=单交换机拓扑
                                  reversed=单交换机反转拓扑 minimal=最小拓扑
  -c, --clean                清楚并退出
  --custom=自定义    从.py文件读取类或参数
  --test=测试             none|build|all|iperf|pingpair|iperfudp|pingall
  -x, --xterms             为每个节点生成xterm
  -i IPBASE, --ipbase=基于IP
                                   基于IP地址的主机
  --mac                         自动设置主机MAC地址
  --arp                           set all-pairs ARP entries
  -v VERBOSITY, --verbosity=信息复杂度
                                    info|warning|critical|error|debug|output
  --innamespace         sw and ctrl in namespace?
  --listenport=监听端口
                                   用于无源开关监听的基本端口
  --nolistenport            不使用被动监听端口
  --pre=提前运行         CLI 脚本在测试之前运行
  --post=之后运行       CLI 脚本在测试后运行
  --pin                         主机固定到CPU内核 (需要 --host cfs 或 --host rt)
  --nat                         [option=val…] 将NAT添加到拓扑,主机链接到物理网络
                                警告:这可能会将使用Mininet的IP子网的计算机上的所有流量路由

到Mininet网络中。如果您需要更改Mininet的IP子网,请参阅–ipbase选项。
  --version                打印版本并退出
  --cluster=server1,server2…
                        在多台服务器上运行 (实验!)
  --placement=block|random
                        --cluster的节点放置 (实验!)

常用命令及分类

种类命令/参数
网络构建启动–topo、–custom、–switch、–controller、–mac
内部交互dump、net、nodes、links、dpctl、iperf
外部运行-c、-h、–version

开启mininet

nodes命令查看所有节点

nodes

net命令查看链接

net命令

更多命令参考Walkthrough

知识补充——拓扑结构

单一拓扑:一个交换机,交换机链接多个主机,举例,一个交换机三个主机

sudo mn --topo=single,3

线性拓扑,交换机呈线性排列,一个交换机下一个主机,举例,三个交换机三个主机

sudo mn --topo=linear,3

树形拓扑,树形排列,交换机层数与分支数,举例,二层的二叉树,三个交换机,四个主机

sudo mn --topo=tree,depth=2,fanout=2

自定义拓扑,自己写.py文件进行自定义,mytopo1是topo1.py文件中的类

sudo mn --custom topo1.py --topo=mytopo1

mininet图形化界面

在examples目录下,启动miniedit

启动miniedit

之后会自动打开编辑页面

打开的界面

构建自定义网络,创建时单击左侧图标,再单击右侧即可,连线时鼠标左键点击一个拖到另一个

拓扑图

修改c0参数,右键点击c0,选择第二个选项修改,如果你的OpenDaylight与Mininet不在同一虚拟机里面,记得修改ip

控制器设置

修改交换机s1、s2参数,DPID是16位

交换机参数

修改主机h1、h2、h3参数

修改主机参数

在Edit->Preferences里面有参数,可以看网段,修改openflow协议版本等等。

标题

打开OpenDaylight,如果你没有安装控制器的话,可以看这篇文章。

SDN-Opendaylight(Nitro版本)安装使用

点击左下角Run,查看最终结果

最终结果

OpenDaylight Dlux页面,可以看到有两个交换机,使用的是openflow协议

Dlux界面拓扑结构

保存的是.mn文件,再次使用File->open打开即可。

保存成.py文件(File->Export Level 2 Script)时,以下步骤再次使用。

保存成.py文件

查看.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' )
    c0=net.addController(name='c0',
                      controller=Controller,
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch, dpid='0000000000000001')
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch, dpid='0000000000000002')

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(s1, s2)
    net.addLink(s1, h1)
    net.addLink(s1, h2)
    net.addLink(s2, h3)

    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([c0])
    net.get('s2').start([c0])

    info( '*** Post configure switches and hosts\n')

    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

运行保存的拓扑

sudo python test.py

还可以运行

OpenDaylight的DLUX界面

pingall命令后的全部拓扑

使用pingall命令后 ,Topology这里可以发现主机,也就能看到全部的拓扑结构了

节点列表

点击Nodes,看到节点列表。

详细信息

点击“NodeConnectors”号查看详细信息,如端口ID、端口名称、每个交换机的端口号、MAC地址。

统计信息

点击Statistics列中的“NodesConnectors”查看具体节点ID的节点连接器的统计信息,可以看到交换机s1有三个接口,连接h1、h2、s2。

发送成功

ODL获取交换机信息的界面在YangUI中,具体节点为:Yang UI APIopendaylight-inventory-rev->operational->nodes->node{id}。点击node{id},在下方出现的path中输入Node Id(在Nodes中点击后的详细信息列表上方,本机id为openflow:1),提交方式为GET,点击Send发出消息,则交换机信息则会出现在path下方。

交换机信息

鼠标向下滑,可以看到很多信息。

xml版本

使用http://你的ip:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1 浏览器地址,在浏览器上可以看到xml版本的信息,也可使用postman等工具查看。

标题

使用http://你的ip:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/opendaylight-flow-table-statistics:flow-table-statistics浏览器地址,可以看到流表的统计信息。

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值