Как связать Pox с моей программой
У меня есть небольшая программа на Python, которая действует как виртуальный переключатель. Теперь я хочу интегрировать его, чтобы он мог управляться контроллером открытого потока POX.
Мне интересно, как бы я мог обменяться сообщениями между коммутатором и POX? Создать ли сокет и связать его с портом 6633(работает порт POX по умолчанию) и отправить все дальнейшие пакеты openflow через этот сокет? Как я мог "подключиться" к оспе.
Какие пакеты мне нужно отправить, чтобы построить и поддерживать соединение? я получил
INFO:openflow.of_01:[None 1] closed
INFO:openflow.of_01:[None 2] closed
...
каждый раз, когда я отправляю пакет openflow.Как проверить мой коммутатор без настройки контроллера? (допустим, у меня есть несколько коммутаторов, подключающихся к одному контроллеру, и я хочу, чтобы они могли общаться друг с другом).
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
Я не совсем понимаю этот вопрос, но если вы спрашиваете, как протестировать свой коммутатор без настройки OpenFlow, я рекомендую использовать обучающие коммутаторы:
./pox.py forwarding.l2_learning
,