如何找出mininet中的端口信息

How to figure out port information in mininet

我使用 python 创建自定义 mininet 拓扑。详细了解拓扑对题目来说并不重要。

我使用 ryu 作为控制器。特别是我使用应用程序 "ofctl_rest.py"。该控制器不会自行在交换机中安装规则。你必须发出休息-命令来建立规则。在每个休息请求(规则)中,您必须指定一个传出端口。要指定此端口,我需要有关网络拓扑的信息。

我需要知道哪个 link 连接到端口。我需要知道端口运行在哪个接口上。了解外部接口、外部 switch/host 和实际端口的外部端口也很有帮助。我怎样才能检索到这些信息???

请帮帮我。我现在真的很沮丧,因为我不知道怎么弄。

在 mininet CLI 中,您可以使用 net 命令来了解拓扑结构。 nodes 命令将显示一个节点列表。 您还可以使用 dump 命令显示接口详细信息。

有关 'hosts' 的信息,例如,您可以在每个主机上 运行 正常 linux 命令,例如

mn> h1 ifconfig

将在主机 h1 上 运行 ifconfig,向您显示该主机的一些网络配置。

鉴于您似乎是从自定义脚本 运行ning mininet,您可以在脚本末尾启动 CLI(如果可能的话),例如

net = Mininet(your_topo)
net.start()
CLI(net)
net.stop()

否则,您可以使用 mininet python API 来查找大部分信息。

  • mininet.util中的dump*函数会打印出很多信息。
  • topo.links() 将为您提供拓扑中的链接列表。
  • topo.linkinfo() 可能会给你一些额外的信息。

对于流量信息,您可以 运行 ovs-dpctl, ovs-ofctl 等在 mininet 之外(在正常的 shell 中),或者 运行 没有 [=21] 的等价物=] 前缀在 mininet CLI 中。