如何将Pox与我的程序绑定

时间:2015-05-13 02:39:18

标签: python sockets network-programming openflow pox

我有一个小的python程序,就像一个虚拟开关。现在我想集成它,以便它可以由开放流控制器POX控制。

  1. 我想知道如何在交换机和POX之间交换消息?我是否创建套接字并将其绑定到端口6633(运行默认端口POX)并使用该套接字发送所有其他开放流数据包?我怎么能“连接”到痘。

  2. 我需要发送哪些数据包来构建和维护连接?我收到 INFO:openflow.of_01:[None 1] closed
    INFO:openflow.of_01:[None 2] closed
    ...
    每次我发送一个openflow数据包。

  3. 如何在不配置控制器的情况下测试我的交换机? (假设我有几个开关连接到一个控制器,我希望他们可以相互通信)。

1 个答案:

答案 0 :(得分:0)

  1. 除非另有说明,否则POX正在TCP端口6633上运行(一旦运行,您可以在linux上查看netstat -tnlp | grep python)。您需要从虚拟交换机打开一个套接字到该端口:

    controllerIpAddr = "127.0.0.1"
    controllerPort = "6633"
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((controllerIpAddr, controllerPort))
    

    然后将该套接字用于Openflow流量

  2. 我真的不明白这个问题但是如果你问如何在不配置OpenFlow的情况下测试你的交换机我推荐使用学习开关:./pox.py forwarding.l2_learning