Использование 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')