【问题标题】:How to bind Pox with my program如何将 Pox 与我的程序绑定
【发布时间】:2015-05-13 02:39:18
【问题描述】:

我有一个类似于虚拟交换机的小型 python 程序。现在我想集成它,以便它可以由 openflow 控制器 POX 控制。

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

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

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

【问题讨论】:

    标签: python sockets network-programming openflow pox


    【解决方案1】:
    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

    【讨论】:

    • 对于 Q.2,我想你明白了我的要求。所以我的开关需要:1。发送启动openflow数据包2.处理来自控制器的pkt。(管理流表)。并且学习交换机将在没有配置的情况下进行路由并回复来自我的交换机的请求?我将检查 openflow 协议以确定我需要从我的交换机发送的数据包的详细信息。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2020-11-07
    • 2011-04-26
    • 2010-12-07
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多