Ошибка проверки связи Mininet: сеть недоступна в пользовательской топологииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка проверки связи Mininet: сеть недоступна в пользовательской топологии

Сообщение Anonymous »

Я работаю над собственной топологией Mininet и пытаюсь проверить подключение с помощью команды pingall в интерфейсе командной строки Mininet. Однако все пинги завершаются неудачей с такими ошибками, как ping: Connect: Сеть недоступна.
Вот ситуация:
Я создал собственную топологию ( topology.py) со смесью хостов и коммутаторов.
Я использую простой контроллер (con.py) для проверки правильности настройки топологии.
s11 в моей топологии предназначен для представления «Интернет» и не является контролируется контроллером (я не знаю, прав ли я в этом или нет).
Несмотря на то, что все настроено правильно, тесты подключения не проходят. Я уже пробовал следующее:
Проверил, что контроллер прослушивает порт 6653.
Проверил интерфейсы и ссылки с помощью ovs-vsctl show.
Ниже приведены мои файлы topology.py и con.py. Будем очень признательны за любую помощь в диагностике проблемы!

Код: Выделить всё

Code for topology.py:
#!/usr/bin/python
from mininet.net import Mininet
from mininet.topo import Topo
from mininet.link import TCLink
from mininet.log import setLogLevel
from mininet.cli import CLI
from mininet.node import OVSKernelSwitch, RemoteController, OVSController, OVSSwitch

class MyTopo(Topo):
def build(self):
internet = self.addSwitch('s11', cls=OVSSwitch, protocols='OpenFlow13' )
#on va mettre genre un nombre d'attaquant, qui vont lancer l'attaque DDOS, tu vois ?
ATT1 = self.addHost( 'ATT1', cpu=1.0/25,mac="00:00:00:00:01:01", ip="10.0.1.1/24" )
ATT2 = self.addHost( 'ATT2', cpu=1.0/25,mac="00:00:00:00:01:02", ip="10.0.1.2/24" )
ATT3 = self.addHost( 'ATT3', cpu=1.0/25,mac="00:00:00:00:01:03", ip="10.0.1.3/24" )
ATT4 = self.addHost( 'ATT4', cpu=1.0/25,mac="00:00:00:00:01:04", ip="10.0.1.4/24" )
ATT5 = self.addHost( 'ATT5', cpu=1.0/25,mac="00:00:00:00:01:05", ip="10.0.1.5/24" )
s1 = self.addSwitch( 's1', cls=OVSSwitch, protocols='OpenFlow13' )
s2 = self.addSwitch( 's2', cls=OVSSwitch, protocols='OpenFlow13' )
s3 = self.addSwitch( 's3', cls=OVSSwitch, protocols='OpenFlow13' )
s4 = self.addSwitch( 's4', cls=OVSSwitch, protocols='OpenFlow13' )
s5 = self.addSwitch( 's5', cls=OVSSwitch, protocols='OpenFlow13' )
s6 = self.addSwitch( 's6', cls=OVSSwitch, protocols='OpenFlow13' )
s7 = self.addSwitch( 's7', cls=OVSSwitch, protocols='OpenFlow13' )
s8 = self.addSwitch( 's8', cls=OVSSwitch, protocols='OpenFlow13' )
s9 = self.addSwitch( 's9', cls=OVSSwitch, protocols='OpenFlow13' )
CAM1 = self.addHost( 'CAM1', cpu=1.0/25,mac="00:00:00:00:00:01", ip="10.0.0.1/24" )
SN1 = self.addHost( 'SN1', cpu=1.0/25, mac="00:00:00:00:00:02", ip="10.0.0.2/24" )
CAM2 = self.addHost( 'CAM2', cpu=1.0/25, mac="00:00:00:00:00:03", ip="10.0.0.3/24" )
SN2 = self.addHost( 'SN2', cpu=1.0/25, mac="00:00:00:00:00:04", ip="10.0.0.4/24" )
SN3 = self.addHost( 'SN3', cpu=1.0/25, mac="00:00:00:00:00:05", ip="10.0.0.5/24" )
CAM3 = self.addHost( 'CAM3', cpu=1.0/25, mac="00:00:00:00:00:06", ip="10.0.0.6/24" )
CAM6 = self.addHost( 'CAM6', cpu=1.0/25, mac="00:00:00:00:00:07", ip="10.0.0.7/24" )
SN5 = self.addHost( 'SN5', cpu=1.0/25, mac="00:00:00:00:00:08", ip="10.0.0.8/24" )
CAM7 = self.addHost( 'CAM7', cpu=1.0/25, mac="00:00:00:00:00:09", ip="10.0.0.9/24" )
CAM4 = self.addHost( 'CAM4', cpu=1.0/25, mac="00:00:00:00:00:10", ip="10.0.0.10/24" )
CAM5 = self.addHost( 'CAM5', cpu=1.0/25, mac="00:00:00:00:00:11", ip="10.0.0.11/24" )
SN4 = self.addHost( 'SN4', cpu=1.0/25, mac="00:00:00:00:00:12", ip="10.0.0.12/24" )
MD1 = self.addHost( 'MD1', cpu=1.0/25, mac="00:00:00:00:00:13", ip="10.0.0.13/24" )
MD2 = self.addHost( 'MD2', cpu=1.0/25, mac="00:00:00:00:00:14", ip="10.0.0.14/24" )
MD3 = self.addHost( 'MD3', cpu=1.0/25, mac="00:00:00:00:00:15", ip="10.0.0.15/24" )
MD4 = self.addHost( 'MD4', cpu=1.0/25, mac="00:00:00:00:00:16", ip="10.0.0.16/24" )
MD5 = self.addHost( 'MD5', cpu=1.0/25, mac="00:00:00:00:00:17", ip="10.0.0.17/24" )
MD6 = self.addHost( 'MD6', cpu=1.0/25, mac="00:00:00:00:00:18", ip="10.0.0.18/24" )
SRV = self.addHost( 'SRV', cpu=1.0/25, mac="00:00:00:00:00:19", ip="10.0.0.19/24"  )
self.addLink(MD1,s8)
self.addLink(MD2,s8)
self.addLink(MD3,s8)
self.addLink(MD4,s9)
self.addLink(MD5,s9)
self.addLink(MD6,s9)
self.addLink(CAM1,s4)
self.addLink(SN1,s4)
self.addLink(CAM2,s4)
self.addLink(SN2,s5)
self.addLink(SN3,s5)
self.addLink(CAM3,s5)
self.addLink(CAM6,s7)
self.addLink(SN5,s7)
self.addLink(CAM7,s7)
self.addLink(CAM4,s6)
self.addLink(CAM5,s6)
self.addLink(SN4,s6)
self.addLink(s8,MD1)
self.addLink(s8,MD2)
self.addLink(s8,MD3)
self.addLink(s9,MD4)
self.addLink(s9,MD5)
self.addLink(s9,MD6)
self.addLink(ATT1,internet)
self.addLink(ATT2,internet)
self.addLink(ATT3,internet)
self.addLink(ATT4,internet)
self.addLink(ATT5,internet)
self.addLink(internet,s1)
self.addLink(s1,SRV)
self.addLink(s1,s2)
self.addLink(s1,s3)
self.addLink(s4,s2)
self.addLink(s5,s2)
self.addLink(s7,s2)
self.addLink(s6,s3)
self.addLink(s3,s8)
self.addLink(s3,s9)

def run():
topo = MyTopo()
c0 = RemoteController('c0', ip='127.0.0.1', port=6653)
#c1 = RemoteController('c1', ip='10.0.2.15', port=6654)
net = Mininet(topo=topo, link=TCLink, controller=RemoteController)
net.addController(c0)
#net.addController(c1)
#net.build()
c0.start()
for i in range(1,10):
switch = "s{}".format(i)
print(switch)
net.get(switch).start([c0])
CLI(net)
net.stop()

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

Code for con.py:
#!/usr/bin/python
from os_ken.base import app_manager
from os_ken.controller import ofp_event
from os_ken.controller.handler import MAIN_DISPATCHER, set_ev_cls
from os_ken.lib.packet import packet
from os_ken.lib.packet import ethernet

class SimpleSwitch(app_manager.OSKenApp):
def __init__(self, *args, **kwargs):
super(SimpleSwitch, self).__init__(*args, **kwargs)

@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def packet_in_handler(self, ev):
msg = ev.msg
datapath = msg.datapath
pkt = packet.Packet(msg.data)
eth = pkt.get_protocol(ethernet.ethernet)
self.logger.info(f"Packet in: {eth.src} -> {eth.dst}")
поэтому я не понимаю, когда я провожу тест pingall, у меня возникает такая ошибка вывода:

Код: Выделить всё

*** Creating network
*** Adding controller
Connecting to remote controller at 127.0.0.1:6653

*** Adding hosts:

ATT1 ATT2 ATT3 ATT4 ATT5 CAM1 CAM2 CAM3 CAM4 CAM5 CAM6 CAM7 MD1 MD2 MD3 MD4 MD5 MD6 SN1 SN2 SN3 SN4 SN5 SRV
*** Adding switches:
s1 s2 s3 s4 s5 s6 s7 s8 s9 s11
*** Adding links:
(ATT1, s11) (ATT2, s11) (ATT3, s11) (ATT4, s11) (ATT5, s11) (CAM1, s4) (CAM2, s4) (CAM3, s5) (CAM4, s6) (CAM5, s6) (CAM6, s7) (CAM7, s7) (MD1, s8) (MD2, s8) (MD3, s8) (MD4, s9) (MD5, s9) (MD6, s9) (SN1, s4) (SN2, s5) (SN3, s5) (SN4, s6) (SN5, s7) (s1, SRV) (s1, s2) (s1, s3) (s3, s8) (s3, s9) (s4, s2) (s5, s2) (s6, s3) (s7, s2) (s8, MD1) (s8, MD2) (s8, MD3) (s9, MD4) (s9, MD5) (s9, MD6) (s11, s1)
*** Configuring hosts
ATT1 ATT2 ATT3 ATT4 ATT5 CAM1 CAM2 CAM3 CAM4 CAM5 CAM6 CAM7 MD1 MD2 MD3 MD4 MD5 MD6 SN1 SN2 SN3 SN4 SN5 SRV
s1
s2
s3
s4
s5
s6
s7
s8
s9
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
ATT1 ->  X X X X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X
ATT2 -> X X X X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X
ATT3 ->  X X X X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X
ATT4 -> X X X X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X
ATT5 ->  X X X X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X
CAM1 -> *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X X X X X X X X X X X X X X X X X X X
CAM2 -> *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X X X X X X X X X X X X X X X X X X X
CAM3 -> *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X X X X X X X X X X X X X X X X X X X
CAM4 -> *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X *** Error: could not parse ping output: ping: connect: Le réseau n'est pas accessible

X X X X X X eX^C
Interrupt
stopping CAM4
Проверил, что контроллер прослушивает порт 6653.
Проверил интерфейсы и ссылки с помощью ovs-vsctl show.

Подробнее здесь: https://stackoverflow.com/questions/793 ... m-topology
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»