-
Notifications
You must be signed in to change notification settings - Fork 0
/
tests.py
112 lines (93 loc) · 4.85 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/python
from scapy.all import send, IP, ICMP
import doc_func
###########################################
# TESTS #
###########################################
def custom_test(conn, doc_obj):
'''
Prueba generica para introducir cualquier otro comando.
'''
#Se envia para que muestre la salida de una vez y no haya que pulsar espacio
resp = conn.send_command('terminal length 0')
print '\n' + resp
cmd = raw_input("Introduzca comando: \n")
resp = conn.send_command(cmd)
print '\n' + resp
return resp
def ospf_test(conn, doc_obj):
'''
Comprueba si dentro del equipo hay establecida una sesion OSPF y escribe
la salida de los comandos en un .doc.
'''
doc_func.write(doc_obj, "Comprobar OSPF", 'tituloprueba', 'garamond', 16,
{'all_caps': True})
doc_func.write(doc_obj, "OBJETIVO", 'tituloprueba2', 'garamond', 12,
{'all_caps': True, 'bold': True, 'underline': True})
doc_func.write(doc_obj, "Comprobar que la sesion de OSPF se ha establecido", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Pasos a realizar", 'tituloprueba2', 'garamond', 12,
{'all_caps': True, 'bold': True, 'underline': True})
doc_func.write(doc_obj, "1 Introducir el comando show ip ospf neighbor y comprobar que el estado es FULL", 'normal2', 'garamond', 12)
resp = conn.send_command('show ip ospf neighbor')
doc_func.write(doc_obj, resp, 'normal1', 'courier new', 9)
print resp
doc_func.write(doc_obj, "Conclusiones", 'tituloprueba2', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
if 'FULL' in resp:
doc_func.write(doc_obj, "La sesion se ha establecido correctamente", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Resultado", 'tituloprueba2', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
doc_func.write(doc_obj, "OK", 'ok', 'garamond', 12,
{'bold': True, 'color': 'green'})
else:
doc_func.write(doc_obj, "La sesion no se ha establecido correctamente", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Resultado", 'tituloprueba2', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
doc_func.write(doc_obj, "NOK", 'ok', 'garamond', 12,
{'bold': True, 'color': 'red'})
return 0
def comprobar_contador_acl(conn, doc_obj):
'''
Envia varios paquetes ICMP de prueba para comprobar que la ACL
funciona correctamente y escribe la salida de los comandos en un .doc.
'''
doc_func.write(doc_obj, "Comprobar_Contador_ACL", 'tituloprueba', 'garamond', 16,
{'all_caps': True})
doc_func.write(doc_obj, "OBJETIVO", 'tituloprueba2', 'garamond', 12,
{'all_caps': True, 'bold': True, 'underline': True})
doc_func.write(doc_obj, "Comprobar que la ACL matchea el trafico", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Pasos a realizar", 'tituloprueba2', 'garamond', 12,
{'all_caps': True, 'bold': True, 'underline': True})
doc_func.write(doc_obj, "Enviar trafico con scapy", 'normal2', 'garamond', 12)
ip_src = raw_input("Introduzca IP origen \n")
ip_dst = raw_input("Introduzca IP destino \n")
print "packet = IP(src=%s, dst=%s)/ICMP()" % (ip_src, ip_dst)
print "send(packet*3)"
doc_func.write(doc_obj, "packet = IP(src=%s, dst=%s)/ICMP()" % (ip_src, ip_dst), 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "send(packet*3)", 'normal2', 'garamond', 12)
packet = IP(src=ip_src, dst=ip_dst)/ICMP()
send(packet*3)
#Una vez enviado el trafico enviamos el comando show ip access-list a la consola del router
resp = conn.send_command('show ip ospf neighbor')
doc_func.write(doc_obj, resp, 'normal1', 'courier new', 9)
print resp
doc_func.write(doc_obj, "Conclusiones", 'conclusiones', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
if '3' in resp:
doc_func.write(doc_obj, "La ACL matchea correctamente los paquetes enviados", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Resultado", 'conclusiones', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
doc_func.write(doc_obj, "OK", 'ok', 'garamond', 12,
{'bold': True, 'color': 'green'})
else:
#Si no encuentra la palabra FULL
doc_func.write(doc_obj, "La ACL no matchea correctamente los paquetes enviados", 'normal2', 'garamond', 12)
doc_func.write(doc_obj, "Resultado", 'conclusiones', 'garamond', 12,
{'bold': True, 'underline': True, 'all_caps': True})
doc_func.write(doc_obj, "NOK", 'ok', 'garamond', 12,
{'bold': True, 'color': 'red'})
return 0
def all_tests(conn, doc_obj):
custom_test(conn, doc_obj)
ospf_test(conn, doc_obj)
comprobar_contador_acl(conn, doc_obj)