Una vez clonado, se debe ejecutar el siguiente comando:
git submodule update --init --recursive
Luego, para la configuración inicial, ejecutar:
make install
Para abrir POX y levantar el firewall, ejecutar:
make run
Las políticas se encuentran en el archivo policies.json
y tienen el siguiente formato:
{
"src_ip": "0.0.0.0",
"dst_ip": "0.0.0.0",
"src_port": 0,
"dst_port": 0,
"protocol": "protocol",
"banned_tuples": ["0.0.0.0","0.0.0.0"]
}
Estas se pueden configurar de manera compleja, por ejemplo:
{
"src_ip": "10.0.0.1",
"src_port": 80,
"protocol": "TCP"
}
Esto bloquearía los paquetes provenientes de la dirección 10.0.0.1 utilizando el protocolo TCP en el puerto 80.
- Utilizar
banned_tuples
sin ninguna otra condición. Esto es un requisito, ya que añadir otras condiciones enbanned_tuples
es innecesario dado que el propósito es bloquear toda comunicación entre dos hosts. - Tener en cuenta que si se desea bloquear un puerto, si es de origen (
src
), debe seguir dos formatos:- Sin especificar protocolo: esto bloquea el puerto deseado en los protocolos UDP o TCP.
- Especificando el protocolo: esto bloquea únicamente el puerto en el protocolo especificado. Notar que este puerto tiene que ser TCP o UDP para que tenga sentido lógico.
Mininet requiere que el daemon de OpenvSwitch esté activo para funcionar. Si no está activo, debe encenderse.
systemctl start ovsdb-server
¡El orden es importante!
rc-service ovsdb-server start
Y luego:
rc-service ovs-vswitchd start
Para abrir Mininet (requiere permisos de root):
sudo make mininet
Dentro de Mininet, abrir las terminales (usando xterm) de los hosts correspondientes:
xterm h1 h2 h3
Las IPs por defecto son de la forma hn = 10.0.0.n, por ejemplo h1 = 10.0.0.1.
Si se desea cambiar la cantidad de switches:
sudo make mininet NSWITCHES=n
Nota: Existen iperf 2.0 e iperf 3.0. Las instrucciones están disponibles para ambos.
Iperf 2.0:
iperf -s -p <port>
Iperf 3.0:
iperf3 -s -p <port>
Simula un servidor que acepta conexiones. Agregar la bandera
-u
al final para probar con UDP en lugar de TCP.
Iperf 2.0:
iperf -c <ip_addr> -e -p <port>
Iperf 3.0:
iperf3 -c <ip_addr> -p <port>
Simula un cliente que se conecta e intenta enviar paquetes al servidor alojado en la (ip, puerto) correspondiente. Agregar la bandera
-u
para probar con UDP en lugar de TCP.