Как я могу "активировать" порт, заблокированный / заблокированный STP, используя OpenFlow и контроллер Ryu, чтобы я мог пересылать пакеты через него?

Я ищу способ отправки пакетов с использованием протокола OpenFlow 1.3 в сети SDN в топологии с петлей. Мой выбор контроллера - Рю. Чтобы идентифицировать хосты, я ловлю пакеты ARP и, чтобы избежать наводнения, я использую STP.

Моя проблема в том, что, когда путь, вычисленный моим алгоритмом маршрутизации, содержит порты, которые заблокированы / отключены STP, соединение не может быть установлено (хосты не могут пропинговать друг друга).

Обдумав это, я пришел к выводу, что мне нужно "активировать" отключенные / заблокированные порты, которые находятся на моем пути маршрутизации. Но я не могу найти способ сделать это..

Итак, теперь вопрос: как я могу достичь своего решения? Есть ли способ "активировать" порты в Рю? Или, если мое решение недостижимо, есть ли другой метод, который я могу использовать для решения этой проблемы?

1 ответ

Для активации порта вы отправляете ofp_port_mod сообщение на коммутатор.

Однако это эффективно отключит STP, так как вы открываете порты, которые могут быть частью цикла.

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

Сказав, что, если я правильно читаю спецификации openflow (раздел 7.2.1 Port Structures), вы все равно сможете маршрутизировать через BLOCKED порт, вы просто не можете затопить его. Это отличается от DISABLED порт.

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