Networking 自定义Mininet拓扑ping错误

Networking 自定义Mininet拓扑ping错误,networking,network-programming,mininet,sdn,Networking,Network Programming,Mininet,Sdn,我正在Mininet Emulator中构建自定义拓扑,我成功创建了显示在图片上的拓扑,但我在h1和h2之间有一个问题。它们连接到同一交换机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 在parael终端窗口中,它正在运行POX控制器,该

我正在Mininet Emulator中构建自定义拓扑,我成功创建了显示在图片上的拓扑,但我在h1和h2之间有一个问题。它们连接到同一交换机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
在parael终端窗口中,它正在运行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
你能告诉我怎么修吗? 先谢谢你!:)

当控制器发现数据包的输入和输出端口相同时,会出现警告消息“数据包的端口相同…”。在给定配置中,开关S2和S4将显示这些消息。原因是,当H1生成一个数据包时,控制器没有MAC到端口的映射,它会将数据包从所有端口(除了接收数据包的端口)中溢出。S2和S4在端口1上接收到数据包,并在端口1上为MAC 00:00:00:00:01添加了一个条目

当H2响应时,S2和S4再次在同一端口1上接收到分组,并且基于目的地MAC S2和S4确定输出端口为1。因此,相同的输入和输出端口导致了警告消息

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


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

感谢您的回答,我转储了s1流表,但没有条目。我在想,如果它们在同一个子网中,它们可以相互联系。我添加了:
table=0,ip,nw_-dst=10.0.0.1,actions=mod_-dl-dst=00:00:00:00:01,output:3 table=0,ip,nw_-dst=10.0.0.2,actions=mod_-dl-dst=00:00:00:00:00:02,output:4 table=0,arp,nw_-dst=10.0.0.1,actions=output:3 table=0,arp,nw_-dst=10.0.0.0.2,actions=output:4现在正在工作,ping:)