自定义 Mininet 拓扑 ping 错误

Custom Mininet Topology ping error

我正在 Mininet 仿真器中构建自定义拓扑,我成功创建了图片上显示的拓扑,但我在 h1 和 h2 之间 ping 遇到问题。它们连接到同一个交换机 s1 并且它们在同一个子网中。我只从 mininet 得到这个输出。

mininet> h1 ping h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=1 Destination Host Unreachable

在并行终端 window 中,运行 POX 控制器给我输出

WARNING:forwarding.l2_learning:Same port for packet from 00:00:00:00:00:02    -> 00:00:00:00:00:01 on 00-00-00-00-00-04.1.  Drop.
WARNING:forwarding.l2_learning:Same port for packet from 00:00:00:00:00:02 -> 00:00:00:00:00:01 on 00-00-00-00-00-01.1.  Drop.

但是当我仅使用 h1-----s1-----h2 构建拓扑时 ping 工作正常

拓扑连接正确

mininet> net
h1 h1-eth0:s1-eth3
h2 h2-eth0:s1-eth4
h3 h3-eth0:s3-eth3
s1 lo:  s1-eth1:s2-eth1 s1-eth2:s4-eth1 s1-eth3:h1-eth0 s1-eth4:h2-eth0
s2 lo:  s2-eth1:s1-eth1 s2-eth2:s3-eth1
s3 lo:  s3-eth1:s2-eth2 s3-eth2:s4-eth2 s3-eth3:h3-eth0
s4 lo:  s4-eth1:s1-eth2 s4-eth2:s3-eth2

你能告诉我如何解决吗? 先感谢您! :)

当控制器发现数据包的输入和输出端口相同时,会出现警告消息"Same port for packet..."。在给定的配置中,这些消息将出现在交换机 S2 和 S4 上。原因是,当 H1 生成数据包时,控制器没有 MAC 到端口映射,它会将数据包从所有端口(接收数据包的端口除外)溢出。 S2 和 S4 在端口 1 上接收到数据包,并在端口 1 上添加了 MAC 00:00:00:00:00:01 的条目。

当H2响应时,S2和S4再次在同一个端口1上收到数据包,并根据目的地MACS2和S4确定输出端口为1。因此,相同的输入和输出端口导致警告信息。

这些消息不应该阻止 ping 在 H1 和 H2 之间工作,因为 H1 和 H2 发送的数据包应该由于 S1 的泛洪而到达目的地。

请检查H1 和H2 上的ARP 条目以及S1 上安装的流条目。您可以 运行 带有选项 --arp 的拓扑脚本来配置主机上的静态 ARP 条目。