Эффективная установка потоков на устройства OVS, Packet In Processing, стоит использовать Oxygen вместо Neon/Sodium.

Поэтому я перешел на новую версию OpenDayLight, в настоящее время я использую Neon (по какой-то причине проводник Sodiums API не работал, но сегодня я снова пытаюсь).

Я помню, что в старых версиях OpenDayLight был L2Switch, но я думаю, что он больше не поддерживается, прошлой ночью я возился с установкой потоков, чтобы 2 хоста на одном коммутаторе могли общаться. Я делал это через restconf и md-sal:add-flow или как там это называется, и это было не очень эффективно, но работало, и я смог пропускать трафик.

Я могу написать свой собственный код обучения L2, потому что я делал это для других контроллеров, и это довольно просто, но похоже, что это устаревший подход к обеспечению доступности в сети SDN, и я начинаю чувствовать, что что-то упускаю.

Есть ли в ODL Sodium/Neon какая-то функция, которая обрабатывает ARP для хостов или выполняет какой-то тип обучения L2? Если нет, то каков эффективный способ установки потоков в сеть, особенно в сеть типа центра обработки данных с большим количеством коммутаторов. Ручная установка потоков на один коммутатор была терпимой, но как только мое оборудование будет готово, у нас будет 8 физических OVS-устройств, и установка потоков по одному на каждом из остальных может меня убить.

Кроме того, я просматривал здесь и через код проекта для обработки пакетов IN на контроллере, мне нужно будет сделать это, если я буду изучать L2, и моя основная цель с ODL - разработать какое-то приложение сетевой безопасности.

Если я не ошибаюсь, когда устройство OVS получает пакет, который не знает, как переслать, оно отправит его на контроллер, а контроллер примет решение и установит поток на коммутаторе для будущих пакетов. Я знаю, как установить поток, я просто немного потерялся в том, где поставить код, чтобы проверить пакет и решить, что с ним делать. В POX это было легко, почти просто функция PacketIn, которую вы могли бы переопределить, надеюсь, это что-то похожее на ODL.

Также кажется, что у Oxygen все еще есть L2Switch, если у меня есть большая топология, в которой я не могу вручную установить потоки, стоит ли переходить на Oxygen для функциональности L2?


person FiloTheRunescapeLizard    schedule 06.12.2019    source источник


Ответы (1)


да, я думаю, что вам действительно нужен l2switch. этот проект всегда был быстрым проектом для установки с OpenDaylight, чтобы показать некоторую быструю функциональность SDN (с использованием мининета), но на самом деле он не поддерживался в вышестоящем сообществе, поэтому мы удалили его. Однако в последнее время ходили разговоры о попытке сохранить его, чтобы, по крайней мере, его можно было выпустить и установить в будущих версиях ODL.

не могли бы вы помочь в этом? Если это так, вы можете заставить l2switch снова работать с последней основной веткой (которая будет выпуском магния) и, возможно, с одним из последних сервисных выпусков натрия (SR). Я не знаю всего, что нужно, чтобы это произошло, но я думаю, что это может быть не слишком сложно.

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

Если нет, вы на правильном пути с программированием потоков с помощью restconf. Вам не обязательно использовать md-sal:add-flow, вы можете просто добавить нужные потоки в хранилище конфигурации, и пока существует узел openflow, openflowplugin должен запрограммировать его на переключателе ovs. Вот тестовый пример, который добавляет поток "плоскодонка к контроллеру", на который вы ссылаетесь. просто перейдите к ключевым словам каркаса роботов, чтобы получить более подробную информацию. например вот URI запроса PUT и здесь отправлено тело.

person jamo    schedule 06.12.2019
comment
я определенно был бы заинтересован в том, чтобы помочь в попытке заставить переключение L2 снова работать. Звучит как действительно интересный проект, и я пытаюсь больше заниматься программным обеспечением, особенно SDN. Я все еще довольно новичок, поэтому мне нужно узнать, как работает gerrit и как интегрировать функции или пользовательский код в контроллер. Я видел руководства по разработке приложений, но до сих пор не уверен, как установить свою функцию в полноценный контроллер. Мне еще многому нужно научиться, но я определенно заинтересован в том, чтобы принять участие. - person FiloTheRunescapeLizard; 08.12.2019
comment
Отлично. возможно, первым шагом будет получение кода l2switch, его сборка и запуск с мастером. вы можете отправлять вопросы в списки рассылки odl, такие как [email protected] или [email protected]. Мы также используем IRC для быстрых вопросов, хотя в последнее время эти каналы кажутся довольно тихими. - person jamo; 09.12.2019