Что делать, если в коммутаторе Openflow существует несколько правил переадресации для одного и того же потока?

Я пытаюсь использовать контроллер POX для управления потоками. Я знаю, что Open vSwitch выберет правила переадресации с наивысшим приоритетом. Но что будет, если я вставлю новое правило переадресации для существующего потока с таким же приоритетом. Будет ли Open vSwitch случайным образом выбирать одно правило для соответствия?


person lzhou008    schedule 19.07.2017    source источник
comment
Вы пробовали?   -  person Jeroen Heier    schedule 19.07.2017
comment
Да. OVS будет соответствовать новому правилу, но я не знаю, почему.   -  person lzhou008    schedule 19.07.2017


Ответы (1)


OpenFlow 1.3 спецификация говорит:

Если имеется несколько совпадающих записей потока с одинаковым наивысшим приоритетом, выбранная запись потока явно не определена.

В более ранней спецификации OpenFlow 1.0 указано следующее:

Если несколько записей имеют одинаковый приоритет, коммутатор может выбрать любой порядок.

Открыть документацию vSwitch и этот другой источник здесь написано:

OpenFlow оставляет поведение неопределенным, когда два или более потока с одинаковым приоритетом могут соответствовать одному пакету. Некоторые пользователи ожидают «разумного» поведения, такого как более конкретные потоки, имеющие приоритет над менее специфическими потоками, но OpenFlow не определяет это, и Open vSwitch не реализует это. Поэтому пользователям следует позаботиться об использовании приоритетов, чтобы обеспечить ожидаемое поведение.

Это неясно, я знаю, но, основываясь на этих источниках, пользователь должен иметь дело с ситуациями, когда происходит перекрытие записи потока с одинаковыми приоритетами. Пользователь должен позаботиться об установке правильных приоритетов, а коммутатор может реализовать способ решения этой проблемы по желанию поставщика. Коммутатор может, например, выбрать самую новую запись потока, как вы сказали, это произошло в вашем случае.

person rodsoars    schedule 20.07.2017
comment
Вопрос заключался в том, как именно Open vSwitch справляется с этой ситуацией. - person pchaigno; 20.07.2017
comment
Название вопроса относится к OpenFlow в целом, но вы правы в отношении содержания вопроса. Я добавил в свой ответ ссылку, указывающую на информацию об источнике Open vSwitch. - person rodsoars; 20.07.2017