在 POX 生成树上检测接入点树

网络工程 sdn 开放流 迷你网
2022-02-08 19:14:44

我在 Mininet-Wifi 上创建了一个具有 4 个接入点和 2 个站的拓扑。

#!/usr/bin/python
import sys
from mininet.net import Mininet
from mininet.node import Controller,OVSKernelSwitch, RemoteController
from mininet.link import TCLink
from mininet.log import setLogLevel, info
from mn_wifi.cli import CLI_wifi
from mn_wifi.net import Mininet_wifi

def topology():

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

print "*** Creating nodes"
ap1 = net.addAccessPoint( 'ap1', ssid= 'ssid-ap1', mode= 'g', channel= '1', position='30,70,0', range='20' )
ap2 = net.addAccessPoint( 'ap2', ssid= 'ssid-ap2', mode= 'g', channel= '1', position='70,110,0', range='20' )
ap3 = net.addAccessPoint( 'ap3', ssid= 'ssid-ap3', mode= 'g', channel= '1', position='110,70,0', range='20' )
ap4 = net.addAccessPoint( 'ap4', ssid= 'ssid-ap4', mode= 'g', channel= '1', position='70,30,0', range='20' )
sta1 = net.addStation( 'sta1', mac='00:00:00:00:00:01', ip='10.0.0.1/8', position='28,68,0', range='10' )
sta2 = net.addStation( 'sta2', mac='00:00:00:00:00:02', ip='10.0.0.2/8', position='108,68,0', range='10' )
c1 = net.addController( 'c1', controller=RemoteController, ip="127.0.0.1" )

"""plot graph"""
net.plotGraph(max_x=220, max_y=150)

# Comment out the following two lines to disable AP
print "*** Enabling association control (AP)"
net.configureWifiNodes()

print "*** Creating links and associations"
net.addLink( ap1, ap2 )
net.addLink( ap2, ap3 )
net.addLink( ap4, ap3 )
net.addLink( ap1, ap4 )

net.addLink( ap1, sta1 )
net.addLink( ap3, sta2 )

print "*** Starting network"
net.build()
c1.start()
ap1.start( [c1] )
ap2.start( [c1] )
ap3.start( [c1] )
ap4.start( [c1] )

print "*** Running CLI"
CLI_wifi( net )

print "*** Stopping network"
net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    topology()

然后在运行此代码时,像这样的拓扑

Mininet-wifi 拓扑

我运行具有以下功能的 POX 控制器

sudo ~/pox/pox.py forwarding.l2_learning openflow.spanning_tree --no-flood --hold-down log.level --DEBUG samples.pretty_log --DEBUG openflow.discovery host_tracker --DEBUG info.packet_dump

毕竟我将 sta1 ping 到 sta2 并且 ping 成功了,但我想知道 ping 是通过哪种方式进行的?

ap1->ap2->ap3 或 ap1->ap4->ap3

怎么查路?我还想为这个问题添加一个问题。当我检查 openflow.discovery 消息时,我遇到了该消息

[openflow.discovery     ] link detected: 00-00-00-00-00-04|4096.2 -> 00-00-00-00-00-03|4096.3

这个消息是什么意思?什么是 4096.2?和4096.3?我真的很难理解这个主题。请帮忙。我还想添加 mininet-wifi 和 pox 标签,但没有足够的声誉。

1个回答

Q1。毕竟我 ping sta1 到 sta2 并且 ping 是成功的,但我想知道 ping 是怎么回事

A. 您可以使用 ovs-ofctl 并检查流表。

Q2。我还想为这个问题添加一个问题。当我检查 openflow.discovery 消息时,我遇到了该消息

A. 00-00-00-00-00-04|4096 是 dpid,而 2 是接口编号。看看这段代码