Создать мост на станции с помощью Mininet WiFi

Я работаю по следующему сценарию:

Python-код сценария выглядит следующим образом:

#!/usr/bin/python



from mininet.node import RemoteController, OVSKernelSwitch
from mininet.log import setLogLevel, info
from mininet.wifi.node import OVSKernelAP
from mininet.wifi.cli import CLI_wifi
from mininet.wifi.net import Mininet_wifi
from mininet.link import TCLink


def topology():
"Create a network."
net = Mininet_wifi( controller=RemoteController, accessPoint=OVSKernelAP, link=TCLink)

info("*** Creating nodes\n")
h1 = net.addHost('h1', mac='00:00:00:00:00:01', ip='10.0.0.1/8')
h2 = net.addHost('h2', mac='00:00:00:00:00:02', ip='10.0.0.2/8')

sta1 = net.addStation('sta1', mac='00:00:00:00:00:03', ip='10.0.0.3/8', position='5,25,0', range =30)
sta2 = net.addStation('sta2', mac='00:00:00:00:00:04', ip='10.0.0.4/8',position='75,25,0', range=30)

s1 = net.addSwitch( 's1', dpid= "0000000000000001" )
ap1 = net.addAccessPoint('ap1', ssid='ssid-ap1', mode='g', channel='1', position='85,19,0', dpid= "0000000000000002", range=30) 

c1 = net.addController( 'c1', controller=RemoteController) 


print "*** Configuring Propagation Model"
net.propagationModel(model="logDistance", exp=5)



print "*** Configuring WiFi Nodes"
net.configureWifiNodes()

h1.plot(position='65,63,0')
h2.plot(position='95,10,0')
s1.plot(position='50,45,0')
c1.plot(position='50,80,0') 

print "*** Creating links"
net.addLink(ap1, h2)
net.addLink(ap1, sta2)
net.addLink(h1,s1)
net.addLink(sta1,s1)
net.addLink(sta2, s1)


""" plotting graph """
net.plotGraph(max_x=100, max_y=100)


print "*** Starting network"
net.build()
c1.start()
s1.start( [c1] )


sta1.setIP('10.0.0.5/8', intf="sta1-eth1")
sta1.setMAC('00:00:00:00:00:05', intf="sta1-eth1")
sta2.setIP('10.0.0.6/8', intf="sta2-eth1")
sta2.setMAC('00:00:00:00:00:06', intf="sta2-eth1")

ap1.start( [c1] )

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

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

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

Проблема состоит в том, что если, например, я пытаюсь пропинговать h1 с h2, то запросы ARP отправляются h2, затем переходят к ap1, затем принимаются по интерфейсу wlan sta2, но здесь sta2 не может пересылать эти запросы ARP по своей этике. интерфейс. Я пытался решить проблему по-разному:

  • Я построил мост между интерфейсами wlan и eth в sta2, но затем sta2 ничего не получает через интерфейс wlan;

  • Я создал интерфейс veth, который я связал с eth и wlan из sta2. Это тоже не работает;

  • Я применил правила qdisc с tc, и с помощью этих sta2 он может пересылать запросы ARP через eth, но отправленные им ответы не принимаются ap1.

Это похоже на большой беспорядок. Я не могу выйти из этой проблемы.

Кто-нибудь может предложить решение? Спасибо

0 ответов

Другие вопросы по тегам