Я установил Mininet и openvswitch под Ubuntu 14.04. Попытка выдать команды пути данных vSwitch (к Vswitch) с помощью dpctl. При вводе команды dpctl в командной строке bash всегда возвращается «команда не найдена». Это верно при использовании sudo и даже в каталоге openvswitch. Что мешает найти эту команду? Кажется, это часть дистрибутива openvswitch. Также работает контроллер NOX, к вашему сведению. Спасибо!
Поддержка Openvswitch для dpctl
Ответы (4)
Я думаю, что команда, которую вы ищете, это ovs-dpctl
. Он является частью openvswitch-switch
пакета.
Пошаговое руководство по Mininet использует старую команду dpctl (из исходной эталонной реализации OpenFlow) для отображения потоков из xterm. В последнее время проще использовать инструмент Open vSwitch, ovs-ofctl. Например, отобразите потоки, установленные в коммутаторе, из коммутатора xterm, используйте:источник
потоки дампа ovs-ofctl tcp:127.0.0.1:6634
Различия в том, что:
ovs-dpctl — администрирование путей данных Open vSwitch ovs-ofctl — администрирование коммутаторов OpenFlow
Я думаю, вы можете использовать любой из них, но использование немного отличается, насколько я вижу, эти два достигают одного и того же:
потоки дампа ovs-dpctl или потоки дампа ovs-ofctl tcp:127.0.0.1:6634
скриншот выходных данных команды
ovs-ofctl и ovs-dpctl предназначены для совершенно двух разных целей. ovs-ofctl всегда представляет потоки открытого потока. Таким образом, вы можете видеть все разные потоки для всех разных таблиц. Это всегда будут одни и те же потоки, независимо от того, что добавляет контроллер. Но dpctl показывает потоки данных ovs, также известные как мегапотоки. Ovs имеет концепцию мегапотоков, которая представляет собой комбинацию нескольких конвейерных потоков. например, если у вас есть 3 потока openflow, например:
таблица = 0, ip, действие = dec_ttl, goto_table: 1
таблица=1, ip, nw_src=10.0.0.0/8, действие=goto_table:2
таблица = 2, in_port = 1, действие = вывод: 2
И если пакет попадает во все 3 потока, то вы можете увидеть один мегапоток, объединяющий все 3 правила openflow в пути данных для этого пакета. Если вы используете dpctl, вы можете увидеть потоки, подобные этому:
таблица = 0, in_port = 1, ip, nw_src = 10.0.0.1, действие = dec_ttl, вывод: 2
Помните, что OVS генерирует мегапоток таким образом, что один тип пакета никогда не попадет в 2 разных мегапотока на пути передачи данных. А механизм мегапотока в ovs заключается в повышении производительности обработки пакетов в ovs.
Если вы хотите больше узнать об архитектуре ovs, см. приведенный ниже документ: http://openvswitch.org/support/papers/nsdi2015.pdf