Назад | Перейти на главную страницу

Автоматический обмен сообщениями о тайм-ауте OpenFlow

Этот вопрос может показаться немного гипотетическим, но я не мог понять, как еще его задать.

Протокол OpenFlow имеет функцию, которая позволяет удалять его правила, когда им не соответствует трафик. Эта функция называется «тайм-аут простоя».

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

Обнаруживать все новые порты (например, каждые 5 минут или что-то в этом роде), затем устанавливать правила, которые простаивают через 2 секунды, и отправлять ровно один пакет по каждому каналу. Правила тайм-аута простоя сделают пакетный цикл на канале.

Не считая возможности злоупотреблений и возможности поглотить мегабайт трафика в секунду с одним пакетом, желаемое поведение должно быть ясным:

Если ссылка отключена или есть насыщение на ссылке, то пакет будет потерян, а правила простаивают по таймауту через две секунды. Это можно обнаружить с помощью контроллера, и это кажется более элегантным, чем непрерывная отправка пакетов, чтобы убедиться, что «все в порядке».

Моя проблема в том, что это все равно потребует от контроллера опроса установленных правил в соответствующей таблице, что по-прежнему кажется раздражающим объемом работы.

Не было бы проще, если бы OpenFlow можно было приказать рекламировать при удалении определенного правила??

Будет ли это реалистичным дополнением, учитывая текущую реализацию OpenFlow (или это уже реализовано)?

По дизайну кажется, что OpenFlow близок к тому, чтобы иметь возможность делать такие сообщения, и кажется, что по способу реализации OpenFlow таймауты могут быть критически важными (хотя не все из них).

Я нашел это в openflow 1.1 спецификации, Я, должно быть, пропустил это:

Когда запись потока удаляется, переключатель должен проверить флаг OFPFF_SEND_FLOW_REM записи потока. Если этот флаг установлен, коммутатор должен отправить контроллеру сообщение об удалении потока. Каждое сообщение об удалении потока содержит полное описание записи потока, причину удаления (истечение срока действия или удаление), продолжительность записи потока на момент удаления и статистику потока на момент удаления.

Поэтому то, что я хочу, было явно реализовано в OpenFlow (по крайней мере, начиная с версии 1.1).

Хотя я использую OpenDaylight и не уверен, предназначен ли ODL для реагирования на эти сообщения, это полностью отвечает на мой вопрос.