示例#1
0
def test5():
    """ Prueba con ping normal """
    setLogLevel("info")
    info("Configuracion Unidad experimental")
    """ 1 -> Definicion de la topologia """
    t1 = TopologiaRyu()
    ue1 = UnidadExperimental()
    ue1.setTopo(t1)
    ue1.definirNodosClaves(A='h1', C='h2',
                           V='h3')  # Caso solo para trafico normal
    ue1.setController('ryu', 'simple_switch_13.py,ofctl_rest.py')
    info("Configuracion del experimento")
    """ 3. Confiracion del experimento """
    exp1 = Experimento()
    exp1.configureParams(ue1)
    exp1.configurarTrafico('ataque')
    """ 4. Inicio del experimento """
    exp1.startTest()
    exp1.pingAllTest(
    )  # **************** Parece que es necesario que se de un arranque al controlador
    # **************** para que aprenda las reglas antes del ataque.
    """ 5. Aplicacion de pruebas """
    exp1.trafico.pingMeasure()
    exp1.trafico.pingMeasure(filename='ping_ataque_test.log')
    """ 6. Fin del experimento """
    exp1.endTest()
    info("Removiendo la topologia\n")
    exp1.killTest()
    info("Removiendo el controlador\n")
    exp1.killController()  # Si no se pone no se finaliza el controlador
示例#2
0
def test7():
    """ Prueba con ping normal """
    setLogLevel("info")
    info("Configuracion Unidad experimental")
    """ 1 -> Definicion de la topologia """
    t1 = TopologiaPOX()
    ue1 = UnidadExperimental()
    ue1.setTopo(t1)
    ue1.definirNodosClaves(A='h1', C='h2',
                           V='h3')  # Caso solo para trafico normal
    ue1.setController('pox')
    info("Configuracion del experimento")
    """ 3. Confiracion del experimento """
    exp1 = Experimento()
    exp1.configureParams(ue1)
    exp1.configurarTrafico('ataque')
    """ 4. Inicio del experimento """
    exp1.startTest()
    """ 5. Aplicacion de pruebas """
    # exp1.trafico.iperfMeasure()  # Si se lanza afecta la proxima medida.
    exp1.trafico.iperfMeasure(filename='iperf_ataque_pox_test.log')
    """ 6. Fin del experimento """
    exp1.endTest()
    info("Removiendo la topologia\n")
    exp1.killTest()
    info("Removiendo el controlador\n")
    exp1.killController()  # Si no se pone no se finaliza el controlador
示例#3
0
def test4():
    """ Prueba con ping normal """
    setLogLevel("info")
    info("Configuracion Unidad experimental")
    """ 1 -> Definicion de la topologia """
    t1 = TopologiaRyu()
    ue1 = UnidadExperimental()
    ue1.setTopo(t1)
    ue1.definirNodosClaves(C='h2', V='h3')  # Caso solo para trafico normal
    ue1.setController('ryu', 'simple_switch_13.py,ofctl_rest.py')
    info("Configuracion del experimento")
    """ 3. Confiracion del experimento """
    exp1 = Experimento()
    exp1.configureParams(ue1)
    exp1.configurarTrafico('normal')
    """ 4. Inicio del experimento """
    exp1.startTest()
    """ 5. Aplicacion de pruebas """
    exp1.trafico.iperfMeasure()
    exp1.trafico.iperfMeasure(filename='iperf_normal_test.log')
    """ 6. Fin del experimento """
    exp1.endTest()
    info("Removiendo la topologia\n")
    exp1.killTest()
    info("Removiendo el controlador\n")
    exp1.killController()  # Si no se pone no se finaliza el controlador
示例#4
0
def experimentoPOXNormal():
    # Unidad experimental
    pox_normal = UnidadExperimental()
    pox_normal.setTopo(topologias['topoTest'])
    pox_normal.setController('pox')
    pox_normal.definirNodosClaves(C='h2', V='h3')
    # Experimento
    exp_pox_normal = Experimento()
    exp_pox_normal.configureParams(pox_normal)
    exp_pox_normal.configurarTrafico('normal')
    return exp_pox_normal
示例#5
0
def experimentoRyuAtaque():
    # Unidad experimental
    ryu_ataque = UnidadExperimental()
    ryu_ataque.setTopo(topologias['topoTest'])
    ryu_ataque.setController('ryu')
    ryu_ataque.definirNodosClaves(A='h1', C='h2', V='h3')
    # Experimento
    exp_ryu_ataque = Experimento()
    exp_ryu_ataque.configureParams(ryu_ataque)
    exp_ryu_ataque.configurarTrafico('ataque')
    return exp_ryu_ataque
示例#6
0
def experimentoRyuNormal():
    # Unidad experimental
    ryu_normal = UnidadExperimental()
    ryu_normal.setTopo(topologias['topoTest'])
    ryu_normal.setController('ryu')
    ryu_normal.definirNodosClaves(C='h2', V='h3')
    # Experimento
    exp_ryu_normal = Experimento()
    exp_ryu_normal.configureParams(ryu_normal)
    exp_ryu_normal.configurarTrafico('normal')
    return exp_ryu_normal
示例#7
0
def experimentoPOXAtaque():
    # Unidad experimental
    pox_ataque = UnidadExperimental()
    pox_ataque.setTopo(topologias['topoTest'])
    pox_ataque.setController('pox')
    pox_ataque.definirNodosClaves(A='h1', C='h2', V='h3')

    # Experimento
    exp_pox_ataque = Experimento()
    exp_pox_ataque.configureParams(pox_ataque)
    exp_pox_ataque.configurarTrafico('ataque')
    return exp_pox_ataque
示例#8
0
def test2():
    setLogLevel("info")
    info("Configuracion Unidad experimental")
    """ 1 -> Definicion de la topologia """
    t1 = TopologiaRyu()
    ue1 = UnidadExperimental()
    ue1.setTopo(t1)
    ue1.definirNodosClaves('h1', 'h2', 'h3')  # Caso solo para trafico normal
    ue1.setController('ryu', 'simple_switch_13.py,ofctl_rest.py')
    """ 3. Confiracion del experimento """
    exp1 = Experimento()
    exp1.configureParams(ue1)
    """ 4. Inicio del experimento """
    exp1.startTest()
    """ 5. Aplicacion de pruebas """
    exp1.pingAllTest()
    """ 6. Fin del experimento """
    exp1.endTest()
    info("Removiendo la topologia\n")
    exp1.killTest()
    info("Removiendo el controlador\n")
    exp1.killController()  # Si no se pone no se finaliza el controlador
示例#9
0
def test1():
    setLogLevel("debug")
    print("Configuracion Unidad experimental")
    t1 = TopologiaRyu()
    ue1 = UnidadExperimental()
    ue1.setTopo(t1)
    ue1.setController('ryu', 'simple_switch_13.py,ofctl_rest.py')
    print("Configuracion del experimento")
    exp1 = Experimento()
    exp1.configureParams(ue1)
    exp1.configurarTrafico()  # Se deduce de la unidad experimental
    exp1.startTest()
    exp1.startCLI()
    exp1.endTest()
    print("Removiendo la topologia")
    exp1.killTest()
    print("Removiendo el controlador")
    exp1.killController()  # Si no se pone no se finaliza el controlador
示例#10
0
        p1.kill()
        # kill del proceso del ataque
        self.attack_process.kill()
        self.timer.cancel()

    def launchAttack(self):
        info("Launch attack: %s ---> %s\n" %
             (str(self.atk.IP()), str(self.dst.IP())))
        self.attack_process = self.atk.popen(
            ['hping3', '--flood', '--rand-source',
             self.dst.IP()])  # Atacante
        if self.attack_process != 0:
            self.timer_atk.cancel()


ue1 = UnidadExperimental(topo=SingleSwitchTopo(k=3, bw=100),
                         controller=RYU('c0'))
ue1.definirNodosClaves('h1', 'h2', 'h3')

ue2 = UnidadExperimental(topo=SingleSwitchTopo(k=3, bw=100),
                         controller=POX('c0'))
ue2.definirNodosClaves('h1', 'h2', 'h3')


class TopologiaTest(Topo):
    def __init__(self, bw=100):
        # Initialize topology
        Topo.__init__(self)
        self.bw = bw
        h1 = self.addHost('h1', ip='10.0.0.1')  # Cliente
        h2 = self.addHost('h2', ip='10.0.0.2')  # Atacante
        h3 = self.addHost('h3', ip='10.0.0.3')  # Victima
示例#11
0
        h1 = self.addHost('h1', ip='10.0.0.1')  # Cliente
        h2 = self.addHost('h2', ip='10.0.0.2')  # Atacante
        h3 = self.addHost('h3', ip='10.0.0.3')  # Victima

        # Add switches
        info('*** Adding switches\n')
        s1 = self.addSwitch('s1', protocols='OpenFlow13')

        # Add links
        info('*** Creating links\n')
        self.addLink(h1, s1, bw=self.bw)
        self.addLink(h2, s1, bw=self.bw)
        self.addLink(h3, s1, bw=self.bw)


ue_ryu = UnidadExperimental(topo=TopologiaTest(bw=100), controller=RYU('c0'))
ue_ryu.definirNodosClaves('h1', 'h2', 'h3')

ue_pox = UnidadExperimental(topo=TopologiaTest(bw=100), controller=POX('c0'))
ue_pox.definirNodosClaves('h1', 'h2', 'h3')


def monitoring_ping_normal(ue, nombreArchivo=None):
    # Parametros de la unidad experimental
    setLogLevel("info")
    info("Configurando unidad experimental\n")
    info("Configurando trafico normal\n")
    info("Configurando la red\n")
    net = Mininet(topo=ue.getTopo(),
                  controller=ue.getController(),
                  link=TCLink,