1 打开wireshark并创建拓扑 按照章节一搭建平台,启动ODL,并打开wireshark。进入装有Mininet的VM,通过mn命令指定网络拓扑及指定此ODL控制器。...此命令通过Mininet模拟创建一个含有两个交换机(Open vSwitch,以下简写为OVS)和两个主机的网络拓扑,其中192.168.5.203为ODL的IP,6633为ODL的默认端口,网络拓扑如下图所示...2 查看网络 在Mininet中通过操作网络命令,可以查看OVS间及OVS与主机间的连接关系,也可以查看Mininet是否远程连接控制器。 例如,通过nodes命令可以查看网络中所有的节点。 ?...3 抓包并分析协议 通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,下面分析该流程中的OF消息。...以上几种消息类型,可以参照OpenFlow标准协议中的类型,如下图: ? 我们可以用 wireshark 观察到当第一次有 ping 包从h1发到h2时,控制器如何自动添加相应的表项到交换机。 ?
3 实验任务 通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,分析该流程中的OF协议消息及字段。模拟拓扑如下图所示: ?...查看网络: 在Mininet中通过操作网络命令,可以查看OVS间及OVS与主机间的连接关系,也可以查看Mininet是否远程连接控制器。 例如,通过nodes命令可以查看网络中所有的节点。 ?...在Mininet中pingall一下,交换机下面的两台主机h1、h2应能互相通信,如果不能通信,请检查交换机是否与ODL正确连接。 ? 查看交换机通信流表: ?...4.4 抓包并协议分析 通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,下面分析该流程中的OF消息。...以上几种消息类型,可以参照OpenFlow标准协议中的类型,如下图: ? 我们可以用 wireshark 观察到当第一次有 ping 包从h1发到h2时,控制器如何自动添加相应的表项到交换机。 ?
控制器下发决策后,交换机根据控制器下发的信息来进行数据包的处理,即转发或者丢弃该数据包。我们可以通过对流表操作来控制交换机的转发行为。...我们已安装相关环境的虚拟机中启动ODL和Mininet,Mininet创建一个默认树形拓扑并选择Mininet的控制器指定为ODL,进行基本的添加、删除流表操作,使网络实现网络通信和不通信。...在Mininet中pingall一下,交换机下面的两台主机h1、h2应能互相通信,如果不能通信,请检查交换机是否与ODL正确连接。 ? 此时再查看交换机s1中流表应多出两条控制器下发的流表: ?...4.5 添加删除流表 例如让交换机丢弃从2号端口发来的所有数据包: # sh ovs-ofctl add-flow s1 priority=12,in_port=2,actions=drop (注:优先级比其他流表优先级高...# sh ovs-ofctl del-flows s1 in_port=2 ? 因为之前添加的丢弃2号端口包的流表已被删除,这时Mininet中h1和h2主机又可以正常通信了。 ? ?
3 Mininet连接ODL控制器 首先我们在已安装有相关环境的虚拟机终端中启动ODL和Mininet,Mininet创建一个默认树形拓扑并选择Mininet的控制器为ODL。...# mn –switch ovsk –controller=remote,ip=[ODL_IP],port=6633[默认端口] 在ODL的Web界面中我们可以看到已连接上ODL的交换机。 ?...,如果不能通信请检查交换机是否与ODL正确连接。...# ovs-ofctl del-flows br0 in_port=2 因为我们之前添加的丢弃2号端口包的流表已被删除,这时Mininet中h1和h2主机又可以正常通信了。...填写后点击Install Flow,流表便由控制器写入交换机了。这里一条流表中可以按顺序执行多个Action。 ? 此时Mininet两台主机又无法通信了,将这条流表删除后两台主机便又可以正常通信。
1.创建网络拓扑 首先启动三台虚拟机,VM1(192.168.1.10)和VM2(192.168.2.20)是Mininet虚拟机,VM3(192.168.3.30)为安装有ODL的控制器服务器。...启动控制器,安装下列组件。下列组件中虽然不是所有的都是该实验必须的,没有经过仔细的排查。如果运行的环境中已经有安装的组件,可以从列表中忽略。另外,有些组件会与当前的组件有端口占用情况,请仔细查看日子。...-- --columns=name,ofport list Interface 查看manager和controller的状态是否连接控制器成功 mininet> sh ovs-vsctl show...:End_to_End_Flows由于没有官方的XML的流表DTD说明文档,有时候只能靠摸索,然后通过查流表中的参数来验证配置是否正确。...在实例中,VXLAN的port同样是用Post创建的,所以应该没有问题。只是本例中将部分过程省略。 Q9:成都-东风 从刚才的Vxlan配置看也很不复杂,但最初的包转发就一大堆流表需要写?
1 多交换机的测试 Mininet中本身就支持多交换机网络拓扑的模拟创建,可通过Python API自定义拓扑创建满足使用者在仿真过程中的多方位需求。...通过Mininet验证,在Mininet中模拟创建的OvS交换机不能指定连接多个控制器,且在同一个Mininet中创建的多个交换机不能指定不同的控制器。...如,在真实交换机中设置连接此文中的ODL控制器及另一个ODL控制器,命令为: ovs-vsctl set-controller br0 tcp:192.168.5.203:6633 tcp:192.168.5.111...交换机连接到这两个控制器后,控制器通过设备拓扑管理也可以发现此交换机,同时控制器管控存在主备关系,但控制器都可对交换机进行管控、下发流表等操作。...如,在真实交换机中设置连接此文中的ODL控制器及其他另一个不同类型的控制器,如POX,命令为: ovs-vsctl set-controller br0 tcp:192.168.5.203:6633 tcp
5、从官网下载发行版二进制odl控制器文件,传入ubuntu中,解压,找到distribution-karaf-0.3.3-Lithium-SR3/bin/karaf文件。 ?...2、测试是否成功 测试是否成功 sudo mn --test pingall 查看mininet版本 #mn --version 查看OVS版本 #ovs-ofctl –version 出现以下则表示安装...3、mininet的使用 启动好odl之后,就可以运行mininet连接odl控制器了,但是前提是odl需要安装几个feature,比如odl-dlux-all用于web浏览器访问odl,odl-l2switch-all...6、刷下web页面,可以看到一台交换机,此时在mininet中输入pingall,web页面就可看到两台主机与一台交换机。 ?...这个链接用于查看在odl上的交换机与主机节点信息。
1 实验目的 在实验平台上熟悉SDN原理操作,通过wireshark抓包工具可以直接看到控制器与OVS交换机的通信过程、分析OpenFlow(以下简写为OF)协议。...交换机通过消息回应配置信息,回复连接控制器的交换机的一些基本设置信息,包括交换机的能力以及它的一些端口的信息等,并回应给控制器的状态信息。...3 实验任务 通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,分析该流程中的OF协议消息及字段。模拟拓扑如下图所示: ?...任意选择设备拓扑: ? 进行下一步配置,并点击最后“创建”,虚网创建成功; 步骤2:创建控制器,选择Floodlight控制器。...步骤4:创建2个虚拟机,一个是选择OpenDaylight桌面版带有wireshark镜像的虚拟机,其镜像名称是odl_wireshark_zj作为控制器(注:内存大于4G),另一个是选择Mininet
OVSDB方式下,ODL作为OVS的manager,用来配置OVS,包括创建bridge和port等。在生产环境中,这两中协议一般配合使用。...3.2 OVS配置 将mininet-1和mininet-2上的 OVS配置为被动监听模式,此模式下,ODL和OVS的连接由ODL发起。...sudo ovs-vsctl set-manager ptcp:6640 ? ? OVS也可以配置为主动连接方式,此模式下,ODL和OVS的连接由交换机主动发起。...两种模式除了配置命令不同外,OVS在ODL中的node-id也不同。...URL中的“odl”是ODL-VM的eth2的IP,本文将此IP配置到了hosts文件中。 ? 3.5Postman配置Vxlan网络 首先ODL连接到mininet-1上的OVS。
://81.6.63.100:8181/index.html 可以看到现在无拓扑图: 构建组拓扑图 安装mininet软件包: root@Ispsrv:~# apt --fix-broken install...远程主机 ip:远程地址 port:表示端口 --topo=TOPO:指定拓扑类型 single,m:创建拓扑为星型拓扑,m表示m个主机 --switch=SWITCH:指定交换机类型 ovs:使用交换机的类型...> 查看拓扑图: 网络通信规则 测试网络是否互通: mininet> pingall *** Ping: testing ping reachability h1 -> h2 h3 h2 -> h1...> 查看交换机的流表: mininet> sh ovs-ofctl dump-flows s1 cookie=0x2b00000000000000, duration=411.116s, table=...> 查看交换机的流表(有dorp) mininet> sh ovs-ofctl dump-flows s1 | grep "in_port=2" cookie=0x2b00000000000002,
1 自定义创建SDN网络拓扑 在验证中我用Mininet创建了如下的网络拓扑结构,1台ODL控制器(0.1版本),2台交换机,每台交换机分别连接2台主机,即共4台主机,这些主机分别属于2个不同的网段,交换机与控制器之间采用...图1 拓扑结构 1.1 编写生产拓扑脚本 首先测试网络的拓扑结构由Python脚本生成,可将配置文件保存于虚拟机/mininet/custom目录下的topo-2sw_2host.py文件内: """.../odl.tcpdump.pcap)可以看到交换机与ODL控制器的通信过程,具体详情可看上一章节OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析(二)。...生成拓扑后,将OpenDaylight连接至Mininet作为交换机的控制器控制主机通信。...1.3 ODL配置三层网关地址 生成网络拓扑后,须在ODL控制器界面上为每个三层网段设置一个网关地址,将交换机的端口与三层网关相关联。
控制器使用OpenDaylight(以下简写为ODL),是现在主流的控制器项目,功能比较完善。模拟OpenFlow设备使用Mininet,远比基于KVM的虚拟机应用更高效、更简洁,且更容易理解。...如想具体了解ODL的安装详情,可搜索有关ODL的文档,会在技术文档中更新ODL的具体安装。...3 Mininet获取安装 Mininet主要是虚拟出OpenFlow交换机以及host主机节点,并且能通过自定义来构造用户想要的拓扑。...从http://mininet.org/download/下载Mininet的VM镜像,打开此镜像后,用户名为mininet,密码为mininet。...登录进入Mininet虚拟机,之后即可通过 mn命令来创建拓扑。后续也会提供Mininet的源码编译安装方法。
此处,我们将mininet命令参数分为三大类: (1)用于创建网络拓扑结构的命令参数; (2)用于查看现有(或创建好的)网络拓扑中的各个节点(设备)的网络状态(ip地址、连通性等信息); (3)用于修改当前网络拓扑...运行结果如下图: links查看 (d)以上3中建立网络拓扑的方式,均是建立有规则的网络拓扑,如何自定义网络呢?...语法如下: mn --custom file.py --topo mytopo 具体使用请看下一篇:mininet自定义网络拓扑结构 (2)--switch 定义网络拓扑要使用的交换机,后面可以接的参数有...交换机分类3类:用户型、内核型和OVS型,其中内核型和OVS型的吞吐量比用户性大很多,因此一般采用后两种。...下面举例说明: 在mininet自带的网络拓扑的基础上,我们想添加一个主机h3,并且让它和s1之间连通,且可以和其他两个主机h1和h2互相ping通。
如果官方的控制器代码包中含有已经写好可以直接使用的模块,也可以拿它们的代码来学习,这些在后续的实践中也很有参考价值。...Mininet是一个拓扑仿真工具,对我们来说,它就是帮我们虚拟地搭建了一个硬件网络,网络中有交换机,有主机,有相互之间的线路连接,通过它我们就得到了一张网,能了解到这里就差不多够了。...更深入一点的话,可以把Mininet看成一个助手或者脚本,我们用参数的形式,输入所要拓扑和网络的参数,它就帮我们调用起安装在Linux中的OVS,使用Linux提供的虚拟化技术KVM虚拟出主机host,...更进阶一步,还可以通过Mininet的Intf类或者直接使用OVS的命令,实现Mininet中交换机网口与Linux网口的对接,从而使我们这张网可以跟外部通信。...再接着,我需要什么样的数据结构去存储这些信息,需要设计什么样的辅助算法。设计过程中可能需要参考OpenFlow协议和控制器编程手册,看看自己是否能获取到所需的信息。 设计的过程是一个闭环反馈的过程。
4、通过Mininet模拟连接到odl集群中的相关命令 1)查看交换机连接了哪些控制器 sudo ovs-vsctl list CONTROLLER 2)采用openflow1.3连接控制器 sudo...的1.3版本,还需要对交换机进行配置 ovs-vsctl set bridge s1 protocols=OpenFlow13 4)查看openflow1.3流表 xterm s1 ovs-ofctl...-----OpenFlow交换机在其初始化时,即与一至多个配置好的控制器建立连接。...;控制器角色也可以设为SLAVE,在此状态下控制器只负责监听,不响应交换机发送的消息;另外,控制器还可以是MASTER角色,这种状态下的控制器行为与EQUAL类似,唯一的差异在于系统中只能有一台MASTER...6、从lithium版本开始,在karaf中,会存在odl-openflowplugin-nsf-services-li与odl-openflowplugin-nsf-services这样两种相似的feature
后6个包括网卡序列号,或者特定硬件厂商的设定值。对于一个网卡来说,MAC地址是它的一个物理地址,是不可变的,而IP地址是它对应的一个逻辑地址,是可以更改的。...3 选择“虚拟机”部分创建好的虚拟机,单击“ ? ”按钮启动。 4.2 实验操作 1在虚拟机上启动Mininet,创建一个线型拓扑(如实验任务中图所示),控制器设置为无。...5 因为此时交换机s1和交换机s2是两个SDN交换机,而在启动mininet时我们没有指定任何控制器,交换机中没有流表的存在,无法进行转发操作。此时主机h1和主机h2是无法进行通信的。...7 再按ctl+a+d跳出当前mininet窗口,在主窗口命令行中输入如下命令: # ovs-ofctl dump-flows s1 # ovs-ofctl dump-flows s2 ?...我们可以看到有两条数据帧转发表,但要注意这并不是SDN交换机中的流表。这表明交换机已进行过MAC地址学习,下面我们详细分析一下其原理。
,大家可以根据自己的需要更改ODL的版本,本文提出的方法所构建的镜像是在Docker Hub提供的ubuntu:16.04镜像的基础之上构建的。...ODL的Web界面,6653和6633接口则是OVS交换机通过Openflow协议连接的端口。...在node2中执行 ? 在node3中执行 ? 这样就完成了集群的配置,然后就可以开启控制器了,在三个容器中通过./karaf开启控制器,开启之后在三个控制器上安装如下feature ?...在本机安装好mininet以后打开一个新的终端,输入: ? 即使用mininet模拟一个拓扑图,注意这里的ip地址可以是集群中任意一个控制器的ip地址,因为这三个控制器已经构成集群。...然后从浏览器中打开三个控制器的web界面,从如下三张图中可以看到,这三个控制器的网络视图数据已经统一,说明ODL集群搭建成功,大家可以在此基础上做更多的实验。 ? ? ? 六、总结 ?
GNS3中已经对它进行了集成(安装GNS3的时候自动安装),可以通过GNS3界面直接对网络拓扑中的某条链路抓包分析。...这是由于OVS为每个网桥都配置了一条默认的流表。 ? 为了验证数据包确实从PC1发到了PC2,我们在ovs-linux-1和PC2之间的链路抓包。 ? ?...这就是OVN的优点,对比ODL、ONOS、Neutron提供的大而全、复杂庞大、紧耦合的控制器,OVN提供的是一个轻量级控制器,这个轻量级不但体现在OVN本身的代码少(只有几个C语言文件,而且代码很少)...3.2 拓扑规划 一般OVS试验环境建议创建N台虚拟机或者使用mininet作为试验环境,这种试验环境有三方面的缺陷1. 不具备“真实性”过于简单 2....内核模块)日志的输出说明了OVS相关特性是否工作正常。
1 OpenDayLight的简单应用 1.1ODL控制器与Mininet的连接 ODL的Lithium(锂)版本已安装成功且已安装基本的OpenFlow功能组件。...接下来将通过Mininet模拟网络设备简单地验证ODL的功能,包括拓扑、链路发现、交换机管理等等。...打开装有Mininet的设备,执行命令创建模拟拓扑并连接ODL,本文实现安装ODL的主机IP地址为127.0.0.1:(此命令为建立支持OpenFlow1.3协议的拓扑) # sudo mn --switch...查看交换机流表显示有此条流表,但是actions=drop。其中只有大约15中action可以被正确下发到交换机中。具体有哪些可以被成功下发,会在本文最后详细列出,仅供参考。 ? ?...(2)除上述添加group流表以外,还可以通过Python-Requests实现ODL对OVS的流表下发,通过借助Python的Requests库,可以方便的完成调用ODL Restful API的流表
领取专属 10元无门槛券
手把手带您无忧上云