Автоматический тайм-аут OpenFlow

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

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

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

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

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

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

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

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

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

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

1 ответ

Решение

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

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

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

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

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