Использование API-интерфейса Mininet Python addHost()

У меня возникают проблемы с подключением при добавлении хостов в топологию при вызове метода Minet addHost(). Хосты не могут пропинговать друг друга или любой внешний IP-адрес (посредством NAT). Простой пример того, что я пытаюсь сделать, будет следующим:

from mininet.net import Mininet
from mininet.cli import CLI

net = Mininet()
h1 = net.addHost('h1')
h2 = net.addHost('h2')
s1 = net.addSwitch('s1')

net.addLink(s1,h1)
net.addLink(s1,h2)
net.addNAT().configDefault()
net.build()

CLI(net)  

Я также не испытываю этой проблемы при предоставлении топологии для конструктора класса Mininet, однако для того, что я делаю, мне требуется возможность добавлять хосты после создания экземпляра Mininet (как в примере выше). Я делаю что-то неправильно?

Изменить: я должен отметить, что я использую Mininet 2.2.1 внутри предоставленного образа виртуальной машины.

2 ответа

Изменить порядок net.addLink(s1,h1) в net.addLink( h1, s1 ) Первый хост, а не коммутатор, API среднего уровня: Сетевой объект

Я понял проблему. Если вы передадите конструктору Mininet топологию, он автоматически добавит экземпляр контроллера для вас. Однако, если вы строите топологию после создания экземпляра Mininet (как в примере выше), вы должны добавить контроллер вручную, используя

net.addController('c0')
Другие вопросы по тегам