Как связать Pox с моей программой

У меня есть небольшая программа на Python, которая действует как виртуальный переключатель. Теперь я хочу интегрировать его, чтобы он мог управляться контроллером открытого потока POX.

  1. Мне интересно, как бы я мог обменяться сообщениями между коммутатором и POX? Создать ли сокет и связать его с портом 6633(работает порт POX по умолчанию) и отправить все дальнейшие пакеты openflow через этот сокет? Как я мог "подключиться" к оспе.

  2. Какие пакеты мне нужно отправить, чтобы построить и поддерживать соединение? я получилINFO:openflow.of_01:[None 1] closed
    INFO:openflow.of_01:[None 2] closed
    ...
    каждый раз, когда я отправляю пакет openflow.

  3. Как проверить мой коммутатор без настройки контроллера? (допустим, у меня есть несколько коммутаторов, подключающихся к одному контроллеру, и я хочу, чтобы они могли общаться друг с другом).

1 ответ

Решение
  1. Если не указано иное, POX работает на TCP-порту 6633 (когда он запущен, вы можете проверить с помощью netstat -tnlp | grep python на Linux). Вам нужно открыть сокет от вашего виртуального коммутатора к этому порту:

    controllerIpAddr = "127.0.0.1"
    controllerPort = "6633"
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((controllerIpAddr, controllerPort))
    

    Затем вы используете этот сокет для трафика Openflow

  2. Я не совсем понимаю этот вопрос, но если вы спрашиваете, как протестировать свой коммутатор без настройки OpenFlow, я рекомендую использовать обучающие коммутаторы: ./pox.py forwarding.l2_learning,

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