Хост назначения недоступен в минисети SDN с контроллером RYU

Я создал топологию mininet, как показано ниже, используя mininet и контроллер RYU.

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.log import setLogLevel
from mininet.node import OVSSwitch, Controller, RemoteController
from mininet.cli import CLI
from time import sleep

class ResearchTopo(Topo):
    def build(self):
        s1 = self.addSwitch('s1')
        s2 = self.addSwitch('s2')
        s3 = self.addSwitch('s3')
        s4 = self.addSwitch('s4')
        s5 = self.addSwitch('s5')

        h1 = self.addHost('h1')
        h2 = self.addHost('h2')
        h3 = self.addHost('h3')
        h4 = self.addHost('h4')
        h5 = self.addHost('h5')
        h6 = self.addHost('h6')
    

        self.addLink(h1,s3)
        self.addLink(h2,s3)
        self.addLink(h3,s4)
        self.addLink(h4,s4)
        self.addLink(h5,s5)
        self.addLink(h6,s5)

        self.addLink(s1,s3)     
        self.addLink(s1,s4)     
        self.addLink(s1,s5)
        self.addLink(s2,s3)     
        self.addLink(s2,s4)
        self.addLink(s2,s5)

if __name__ == '__main__':
    setLogLevel('info')
    topo = ResearchTopo()
    c1 = RemoteController('c1', ip='127.0.0.1')
    net = Mininet(topo = topo, controller = c1)
    net.start()
    CLI(net)
    net.stop()

но если я пытаюсь пропинговать друг друга, он говорит, что узел назначения недоступен. Если я убираю переключатель s1 или s2, он работает нормально.


person Abiram    schedule 22.12.2020    source источник


Ответы (1)


Вы определяете сеть с петлями.

В таком случае вам необходимо определить протокол связующего дерева (STP), чтобы построить логическую топологию без петель. Вот руководство по контроллеру Ryu.

person abc    schedule 02.01.2021
comment
хорошо, спасибо, я проверю - person Abiram; 03.01.2021