数据包未在其他接口上接收

时间:2019-02-25 06:30:44

标签: wireshark packet mininet

我有一个脚本,该脚本由2个交换机,2个主机组成,这些主机位于连接到单个路由器的不同子网中。当我从一个主机发送数据包到另一个接口没有收到其他数据包时,我正在另一个接口上使用Wireshark进行确认,但是没有数据包到达。附上拓扑的代码和屏幕截图。任何与此有关的帮助都将很棒。

拓扑是这样的 H1 ---- S1 ----- R ------ S2 ------ H2

from mininet.net import Mininet

from mininet.node import Controller, RemoteController,OVSKernelSwitch, UserSwitch

from mininet.cli import CLI

from mininet.log import setLogLevel

from mininet.link import Link, TCLink



def topology():

net = Mininet( controller=RemoteController, link=TCLink, switch=OVSKernelSwitch )



    # Add hosts and switches

    h1 = net.addHost( 'h1', ip="10.0.1.10/24", mac="00:00:00:00:00:01" )

    h2 = net.addHost( 'h2', ip="10.0.2.10/24", mac="00:00:00:00:00:02" )

    r1 = net.addHost( 'r1')

    s1 = net.addSwitch( 's1')

    s2 = net.addSwitch( 's2')

    c0 = net.addController( 'c0', controller=RemoteController, ip='127.0.0.1', port=6633 )



    net.addLink( r1, s1 )

    net.addLink( r1, s2 )

    net.addLink( h1, s1 )

    net.addLink( h2, s2 )

    net.build()

    c0.start()

    s1.start( [c0] )

    s2.start( [c0] )

    r1.cmd("ifconfig r1-eth0 0")

    r1.cmd("ifconfig r1-eth1 0")

    r1.cmd("ifconfig r1-eth0 hw ether 00:00:00:00:01:01")

    r1.cmd("ifconfig r1-eth1 hw ether 00:00:00:00:01:02")

    r1.cmd("ip addr add 10.0.1.1/24 brd + dev r1-eth0")

    r1.cmd("ip addr add 10.0.2.1/24 brd + dev r1-eth1")

    r1.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")

    h1.cmd("ip route add default via 10.0.1.1")

    h2.cmd("ip route add default via 10.0.2.1")

    s1.cmd("ovs-ofctl add-flow s1 priority=1,arp,actions=flood")

    s1.cmd("ovs-ofctl add-flow s1 priority=65535,ip,dl_dst=00:00:00:00:01:01,actions=output:1")

    s1.cmd("ovs-ofctl add-flow s1 priority=10,ip,nw_dst=10.0.1.0/24,actions=output:2")

    s2.cmd("ovs-ofctl add-flow s2 priority=1,arp,actions=flood")

    s2.cmd("ovs-ofctl add-flow s2 priority=65535,ip,dl_dst=00:00:00:00:01:02,actions=output:1")

    s2.cmd("ovs-ofctl add-flow s2 priority=10,ip,nw_dst=10.0.2.0/24,actions=output:2")



    print "*** Running CLI"

    CLI( net )



    print "*** Stopping network"

    net.stop()


if __name__ == '__main__':

    setLogLevel( 'info' )

    topology() 

0 个答案:

没有答案
相关问题