Virtualizing SDN and parsing packets in controller and switch using Python
I want to virtualize each element of an SDN network (2 hosts, 1 switch and 1 controller) in different VMs. At the moment, I am not sure which controllers and switches options are good and straightforward for me.
After virtualizing the network, I want to manipulate some fields in the switch packets before they get sent to the controller (packet-in messages). Also, manipulate the controller packets before they get sent to the switch (packet-out messages). I am comfortable with python programming.
Any suggestions are very much appreciated.
Большое спасибо
1 ответ
Поскольку вы знакомы с Python, я рекомендую вам использовать RYU для создания вашей сети, определяемой программным обеспечением. С помощью RYU вы сможете манипулировать некоторыми полями в пакетах коммутатора до того, как они будут отправлены в контроллер (сообщения о входе в пакет), а также манипулировать пакетами до того, как они будут отправлены в коммутатор (сообщения о выходе из пакета).
- Контроллер: https://osrg.github.io/ryu/
- Mininet (топология виртуализированной сети): https://github.com/mininet/mininet/
- API-интерфейс Mininet Python: http://mininet.org/api/classmininet_1_1topo_1_1Topo.html
Вот как это сделать: