转
2014 年 04 月 29 日 09:21:48
POX 主程序 (pox.py) 的参数:
--verbose Display extra information (especially useful for debugging startup problems)
--no-openflow Do not automatically start listening for OpenFlow connections
POX 中的组件:
POX 的组件一部分提供的是核心功能, 一部分提供的是扩展功能, 一部分仅仅是一些例子, 大概有以下组件:
py 建议使用, 让 POX 启动一个交互式的 Python 解释器, 用于开发或者 DEBUG, 这样其他组件可以向这个解释器的名字空间中加入一些功能
forwarding.hub 给所有的 OF Switch 加入洪范的流表, 所有的交换机表现为一个 HUB.
forwarding.l2_learning 让 OF 交换机工作为 "二层自学习交换".
forwarding.l2_pairs 和上者类似, 只不过只根据 MAC 来做流表, 更加简单.
forwarding.l3_learning 三层学习交换, 这不是一个 Router, 主要使用场景为使用 POX 的 packet library 来处理 ARP 响应等. 可以用来做子网的互联.
forwarding.l2_multi 使用 POX 中 openflow.discovery 来学习整个网络的拓扑, 只要一个交换机知道 MAC 的来源, 所有的交换机都会知道了.
forwarding.l2_nx 使用 Open vSwitch 的扩展来实现一个交换机, 使用了两张表, 一张源地址表, 一张目的地址表, 使用方式:./pox.py openflow.nicira -convert-packet-in forwarding.l2_nx
openflow.spanning_tree 使用链路发现协议 (LLFP) 生成拓扑, 并对加入拓扑的交换机端口关闭洪范, 这个的实现和生成树协议没有关系.
web.webcore 提供 POX 的 web serber, 其他组件可以与之交换以显示自己静态或者动态的信息.
messenger 这个组件给 POX 提供了一个接口以便 POX 和外部的程序通过 JSON 进行消息的交互, 这个 messager 其实是一个 API, 可以通过 socket 或者让 HTTP 调用.
openflow.of_01 与 OpenFlow1.0(协议号 0×01)的交换机通信组件
openflow.discovery 使用特殊的 LLDP 消息来发现整个网络的拓扑, 当链路 up 或者 down 的时候会触发相应的事件
openflow.debug 让 POX 调用 pcap traces 来获取所有 OpenFlow 消息, 可以拿到 wireshark 中进行分析.
openflow.keepalive 让 POX 周期性向交换机发送 echo 消息
misc.pong 这个模块接收 ICMP 消息并发送相应的回应, 载入这个, 你的 ping 报文就一定是成功的.
misc.arp_responder 回应 ARP 请求, 学习 ARP 并存入相应的 ARP Table 中.
misc.packet_dump 把包信息复制到 log 中去
misc.dns_spy 监听 DNS 回复并进行记录.
misc.dhcpd 一个简单的 dhcp 服务器.
log 记录日志模块, 重要
samples.pretty_log 调用这个的话给你一个很好的 LOG 效果
tk 加入 GUI 支持
来源: https://blog.csdn.net/qutinglalala/article/details/24691853