Ошибка связи Mininet: & ldquo; *** Ошибка: ответы RTNETLINK: нет такого файла или каталога & rdquo;

Я запускаю Mininet (сетевой эмулятор) на Ubuntu 16.04.2. Я создал файл Python для создания эмулируемой сети (как показано на диаграммах в строках 6 и 7 в файле) с именем topo001.py, который содержит следующий код: """ Topology001 created by zim7563 Three directly connected switches plus a host for only two switches: host1 --- switch1 --- switch2 --- host2 \--switch3--/ Adding the 'topos' dict with a key/value pair to generate our newly defined topology enables one to pass in '--topo=mytopo' from the command line. In command line, enter: sudo mn --custom /home/network-research/Desktop/topo001.py --topo mytopo --controller=remote,ip=127.0.0.1 --link=tc """ import pdb from mininet.topo import Topo # Next two provide performance limiting and isolation features from mininet.node import CPULimitedHost from mininet.link import TCLink # Additional (testing to see what may be needed to make it work) #from mininet.net import Mininet #from mininet.util import dumpNodeConnections #from mininet.log import setLogLevel class MyTopo( Topo ): def __init__( self ): "Create custom topo." # Initialize topology Topo.__init__( self ) # Add hosts and switches S1 = self.addSwitch( 's1' ) S2 = self.addSwitch( 's2' ) S3 = self.addSwitch( 's3' ) H1 = self.addHost( 'h1' ) H2 = self.addHost( 'h2' ) SwitchList = (S1,S2,S3) # Add links self.addLink( H1, S1 ) self.addLink( S1, S2, bw=10)#, delay='5ms', loss=2, max_queue_size=1000, use_htb=True ) self.addLink( S1, S3 )#, bw=20 ) self.addLink( S2, S3 ) self.addLink( H2, S2 ) topos = { 'mytopo': ( lambda: MyTopo() ) }

Чтобы запустить этот файл в Mininet, я вхожу в команду sudo mn --custom /home/network-research/Desktop/topo001.py --topo mytopo --controller=remote,ip=127.0.0.1 --link=tc прямо в терминал (файл сохраняется на моем рабочем столе). После этого Mininet запускает и предоставляет мне следующее:

*** Creating network *** Adding controller *** Adding hosts: h1 h2 *** Adding switches: s1 s2 s3 *** Adding links: (h1, s1) (h2, s2) (10.00Mbit) *** Error: RTNETLINK answers: No such file or directory (10.00Mbit) *** Error: RTNETLINK answers: No such file or directory (s1, s2) (s1, s3) (s2, s3) *** Configuring hosts h1 h2 *** Starting controller c0 *** Starting 3 switches s1 s2 s3 ...(10.00Mbit) (10.00Mbit) *** Starting CLI:

Сообщение об ошибке *** Error: RTNETLINK answers: No such file or directory указывается, когда также заданы другие параметры связи. (Другие параметры связи, которые я пробовал, закомментированы после символа фунта (#) в файле.) Единственный способ предотвратить это сообщение об ошибке - удалить все параметры ссылки. Однако это не вариант, потому что мне нужно установить определенные параметры для каждой ссылки в сети.

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

Когда я выполняю pingall, все пинги успешно завершены отправлено и получено:

mininet> pingall *** Ping: testing ping reachability h1 -> h2 h2 -> h1 *** Results: 0% dropped (2/2 received)

Мой вопрос к вам: каким образом я могу разрешить это сообщение об ошибке? Ответ приведен ниже, а дополнительные примечания приведены в обновленном разделе внизу этого сообщения.

Вторичный вопрос: Каким образом я могу разрешить это сообщение об ошибке? Ответ неизвестен .

Пошаговое решение:

Решение, приведенное ниже, работало для меня. Спасибо, юецзян! Я удалил свою текущую версию Mininet и отправился в ведущую ветку на GitHub, где нашел Mininet и выполнил инструкции в части 3.1 о «Исходной установке из источника на Ubuntu 12.04+».

По завершении установки я перезагрузил свой компьютер, запустил мой контроллер OpenDaylight и запустил Mininet с моей собственной топологией. Ниже приведен результат без ошибок:

*** Creating network *** Adding controller Connecting to remote controller at 127.0.0.1:6653 *** Adding hosts: h1 h2 *** Adding switches: s1 s2 s3 *** Adding links: (h1, s1) (h2, s2) (10.00Mbit) (10.00Mbit) (s1, s2) (s1, s3) (s2, s3) *** Configuring hosts h1 h2 *** Starting controller c0 *** Starting 3 switches s1 s2 s3 ...(10.00Mbit) (10.00Mbit) *** Starting CLI:

Затем я выполнил команду pingall и получил следующее:

*** Ping: testing ping reachability h1 -> h2 h2 -> h1 *** Results: 0% dropped (2/2 received)

Еще раз спасибо juejiang!

0
задан 9 October 2017 в 23:53

3 ответа

Я столкнулся с этой проблемой и в ubuntu 14.04. После того, как я переустановил mininet из источника (главная ветка), сообщение об ошибке не появляется. проверьте следующую строку в link.py, чтобы убедиться, что код обновлен. - если «priomap» не в tcoutput: + если «priomap» не в tcoutput и «noqueue» не в tcoutput:

https://github.com/mininet/mininet/pull/603
https://github.com/mininet/mininet/pull/629
0
ответ дан 22 May 2018 в 17:57

Я столкнулся с этой проблемой и в ubuntu 14.04. После того, как я переустановил mininet из источника (главная ветка), сообщение об ошибке не появляется. проверьте следующую строку в link.py, чтобы убедиться, что код обновлен. - если «priomap» не в tcoutput: + если «priomap» не в tcoutput и «noqueue» не в tcoutput:

https://github.com/mininet/mininet/pull/603 https://github.com/mininet/mininet/pull/629
0
ответ дан 18 July 2018 в 05:56

Я столкнулся с этой проблемой и в ubuntu 14.04. После того, как я переустановил mininet из источника (главная ветка), сообщение об ошибке не появляется. проверьте следующую строку в link.py, чтобы убедиться, что код обновлен. - если «priomap» не в tcoutput: + если «priomap» не в tcoutput и «noqueue» не в tcoutput:

https://github.com/mininet/mininet/pull/603 https://github.com/mininet/mininet/pull/629
0
ответ дан 24 July 2018 в 18:28

Другие вопросы по тегам:

Похожие вопросы: