#python #mininet
#python #мининет
Вопрос:
Я создаю простой скрипт на python, работающий с mininet. Я хочу установить связь между двумя хостами (скажем, h1 и h2), разделенными двумя коммутаторами (скажем, s1 и s2). Когда h1 пытается выполнить пинг h2 , запрос разрешения ARP для IP-адреса h2 пересекает соединение между двумя коммутаторами, но не достигает другого хоста.
Это топология:
H1 ————- S1 ————- S2 ———— H2
Ip H1 10.10.0.1 / 24
Mac H1 00:00:00:10:00:01
Ip H2 10.10.0.2 / 24
Mac H2 00:00:00:10:00:02
def networkTest():
net = Mininet( topo=None,
build=False )
s1 = net.addHost('s1', cls=Node)
s2 = net.addHost('s2', cls=Node)
h1 = net.addHost('h1', cls=Host, mac='00:00:10:10:00:01')
h2 = net.addHost('h2', cls=Host, mac='00:00:10:10:00:02')
Link(s1, h1, intfName1='s1-eth0')
Link(s2, h2, intfName1='s2-eth0')
Link(s1, s2, intfName1='s1-eth1')
net.build()
for controller in net.controllers:
controller.start()
h1.cmd('ip addr add 10.10.0.1/24 dev h1-eth0')
h1.cmd('ip link set h1-eth0 up')
h2.cmd('ip addr add 10.10.0.2/24 dev h2-eth0')
h2.cmd('ip link set h2-eth0 up')
s1.cmd('brctl addbr br0')
s1.cmd('brctl addif br0 s1-eth0')
s1.cmd('brctl addif br0 s1-eth1')
s1.cmd('ip link set br0 up')
s2.cmd('brctl addbr br1')
s2.cmd('brctl addif br1 s2-eth0')
s2.cmd('ip link set br1 up')
CLI(net)
net.stop()
Внутри командной строки mininet я открываю xterm на h1 и пытаюсь выполнить пинг h2
ping 10.10.0.2
но ответ таков
From 10.10.0.1 icmp_seq = 1 Destination Host Unreachable
Комментарии:
1. Разве вам не нужен
net.start()
там?2. Вы нашли решение?
Ответ №1:
Я думаю, что ваши хосты не подключены через какой-либо контроллер. Убедитесь, что ваши хосты подключены к любому контроллеру (Opendaylight, Floodlight и т.д.), Чтобы вы могли разобраться. Просто введите pingall all в mininet. Это должно показать вам следующее:
h1 ---> h2 h3
h2 ---> h1 h3
h3 ---> h1 h2-