Redes definidas por Software com Mininet e POX - Criando meu primeiro Controlador
A proposta deste estudo é servir como guia básico para iniciantes com redes SDN. O propósito não é esgotar o assunto, e sim traçar um passo a passo na arte de redes de computadores e de sensores utilizando controladores. Para desenvolvimento deste estudo foi considerado que o leitor tem conhecimento básico em protocolos de rede e sistemas operacionais.
[ Hits: 3.191 ]
Por: cristofe coelho lopes da rocha em 01/01/2024
#importando as bibliotecas
import pox.openflow.libopenflow_01 as of
from pox.core import core
from pox.lib.revent import *
#chamando o modulo para log
log = core.getLogger()
class mycontroller(EventMixin):
switches = {}
def __init__(self):
self.listenTo(core.openflow)
def _handle_ConnectionUp(self, event):
log.debug("Connection UP from %s", event.dpid)
mycontroller.switches[event.dpid] = event.connection
def _handle_PacketIn(self, event):
# Implemente a lógica para lidar com pacotes aqui
pass
def launch():
core.openflow.miss_send_len = 1024
core.registerNew(mycontroller)
import pox.openflow.libopenflow_01 as of
from pox.core import core
from pox.lib.revent import *
from pox.lib.addresses import EthAddr, IPAddr
from pox.lib.util import dpidToStr
log = core.getLogger()
class mycontroller(EventMixin):
switches = {}
def __init__(self):
self.listenTo(core.openflow)
def _handle_ConnectionUp(self, event):
log.debug("Connection UP from %s", event.dpid)
mycontroller.switches[event.dpid] = event.connection
def _handle_PacketIn(self, event):
packet = event.parsed
#Drop packetpass
msg = of.ofp_flow_mod()
msg.match.in_port = event.port
msg.match.dl_src = packet.src
msg.match.dl_dst = packet.dst
event.connection.send(msg)
log.debug(" Drop packet sw=%s in_port=%s src=%s dst=%s" % (event.dpid, event.port, packet.src, packet.dst))
def launch():
core.openflow.miss_send_len = 1024
core.registerNew(mycontroller)
Melhorando o nível de segurança com chflags
Crie um bot para Telegram e gerencie a escala de plantonistas
Integração do ChatGPT em uma API Python
Monitorando produtos no ML com Python 3 via BeautifulSoup
Python - Enviando Backup para Servidor Secundário
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica









