2016-08-02 64 views
0

我是SDN和ODL的初学者,我试图将OpenFlow流添加到mininet的OVS交换机中,但是当我检查Wireshark中的数据包时,流并未反映出来。这是我的场景。通过ODL控制器的RESTCONF API添加流来推送MPLS

  • 3开关用线性拓扑和3台主机连接:须藤MN --topo线性--controller远程 - 水阀ovsk,协议= OpenFlow13
  • 在同一虚拟机上运行作为mininet
  • ODL控制器

我想要做的是手动配置MPLS。例如,作为一个起点,我试图为从Host1到Host3的数据包添加MPLS标签。我正在尝试使用RESTCONF API来完成此操作,并且我收到了我发送的请求的状态码200(OK)。以下是RESTCONF请求的XML正文。

对于在Switch1的端口1上传入的IP数据包,要推送值为12的MPLS标签并将其从端口2转发出去: 0 0 0x8847 1 12 2 2 0 100 0x800 1 0 10 true 0 flow-action -push-MPLS 220

URL = “http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table0/flow/100

接头= { '内容 - 类型': '应用/ XML', '接受': '应用/ JSON'}

请求类型= PUT

身份验证=基本身份验证

然后当我用交换机1的端口2上的wireshark检查数据包时,我看不到MPLS标头。

OpenFlow和RestConf插件安装在ODL中。增加的流量不作用于数据包的可能原因是什么?

PS。我使用软件包管理器安装了mininet,而不是使用预先构建的虚拟机。

+0

该流程未显示在交换机流程表中。检查/var/logs/openvswitch/ovs-vswitchd.log文件后,我发现交换机无法连接到控制器。日志说连接失败(连接被拒绝)..可能是什么原因? – Bilal

回答

0

我发现OpenvSwitch没有在我的主机上运行!我不得不在/etc/init.d/openvswitch-switch中重新启动服务。我使用$sudo /etc/init.d/openvswitch-switch status检查了状态,通常应该说openvswitch正在运行,但事实并非如此。要重新启动服务,我做了sudo /etc/init.d/openvswitch-switch restart

之后,我可以连接交换机和控制器。但是我的流量并没有从控制器传送到交换机,原因是我仍然不确定它是什么,但我想我有一些缺失的xml标记,并且在我提到ODL端到端标记时它是固定的,结束流程示例https://wiki.opendaylight.org/view/Editing_OpenDaylight_OpenFlow_Plugin:End_to_End_Flows:Example_Flows,以我感兴趣的示例为例,并根据需要对其进行了定制。

相关问题