Zodiac FX + faucet: información almacenada en el controlador

Para ver la información del controlador podemos arrancar faucet para que exporte el API REST y permitir hacer consultas desde un navegador. También se puede usar postman para poder manejar más fácilmente las consultas.

Para arrancar faucet y que exporte API REST:

/usr/local/bin/ryu-manager --verbose --ofp-listen-host=10.0.1.8 --ofp-tcp-listen-port=6633 /home/pi/faucet/faucet/faucet.py ryu.app.ofctl_rest

Para consultar la información del controlador a través de este API se puede usar un navegador o la aplicación postman de Chrome. Para instlar Postman desde el nevegador Chrome usar la URL de las aplicaciones de Chrome para buscar la aplicación Postman e instalarla.

Para obtener información del controlador se hacen peticiones GET HTTP a la máquina donde está instalado el controlador y puerto 8080. En este enlace se puede encontrar toda la descripción del API. Algunas de las peticiones útiles son:

  • Obtener insformación de los switches conectados al controlador:

    - GET <dirIP>:8080/stats/switches
    

    En la siguiente figura se ve que la dirección IP donde se encuentra el controlador es accesible a través de la dirección IP 192.168.1.39 (configurada en su interfaz wlan0). El resultado de esta petición es DPID (datapath_id) en decimal 123917682136908, que coincide con el identificador del switch en hexadecimal 0x70b3d56cd74c.

    Obtener switches

  • Obtener descripción del switch dado por :

    - GET <dirIP>:8080/stats/desc/<DPID>
    

    Obtener descripción

  • Obtener infromación de las tablas el switch dado por :

    - GET <dirIP>:8080/stats/table/<DPID>
    

    En la siguiente figura se observa que ZodiacFX tiene 10 tablas, desde table_id 0 a 9.

    Obtener flujos

  • Obtener infromación de los flujos en el switch dado por :

    - GET <dirIP>:8080/stats/flow/<DPID>
    

    Obtener flujos

Las tablas en faucet después de comunicar el controlador con el switch son las siguientes:

Table (name) Priority dl_dst dl_src dl_vlan dl_type in_port actions meaning
1 (VLAN) 9099 ff:ff:ff:ff:ff:ff None (DROP) Descartar dirección ethernet origen=broadcast
1 (VLAN) 9099 01:80:c2:00:00:00 None (DROP) Descartar STP BPDU
1 (VLAN) 9099 01:00:0c:cc:cc:cd None (DROP) Descartar STP BPDU
1 (VLAN) 9099 35020 None (DROP) Descartar LLDP
1 (VLAN) 9001 0e:00:00:00:00:01 None (DROP) FAUCET_MAC=0e:00:00:00:00:01, descartar spoofing.
1 (VLAN) 0 None (DROP)
2 (VLAN ACL) 0 None (DROP)
3 (ETH_SRC) 0 None (DROP)
4 (IPv4_FIB) 0 None (DROP)
5 (IPv6_FIB) 0 None (DROP)
6 (ETH_DST) 9000 GOTO_TABLE:7 Ir a la tabla de inundación para destinos no conocidos
6 (ETH_DST) 0 None (DROP)
7 (FLOOD) 9004 01:00:5e:00:00:00/ ff:ff:ff:00:00:00 100 1 "POP_VLAN", "OUTPUT:2", "OUTPUT:3" Cualquier dirección que comience por 01:00:5e:::__ (máscara ff:ff:ff:00:00:00) y con etiqueta VLAN=100 es de IPv4 multicast y se reenvía por tofos los puertos
7 (FLOOD) 9004 01:00:5e:00:00:00/ ff:ff:ff:00:00:00 100 2 "POP_VLAN", "OUTPUT:1", "OUTPUT:3"
7 (FLOOD) 9004 01:00:5e:00:00:00/ ff:ff:ff:00:00:00 100 3 "POP_VLAN", "OUTPUT:1", "OUTPUT:2"
7 (FLOOD) 9002 01:80:c2:00:00:00/ ff:ff:ff:00:00:00 100 1 "POP_VLAN", "OUTPUT:2", "OUTPUT:3" Cualquier dirección que comience por 01:80:c2:::__ (máscara ff:ff:ff:00:00:00) y con etiqueta VLAN=100 es una dirección de grupo para otros protocolos diferentes de IP se reenvía por tofos los puertos sin etiqueta
7 (FLOOD) 9002 01:80:c2:00:00:00/ ff:ff:ff:00:00:00 100 2 "POP_VLAN", "OUTPUT:1", "OUTPUT:3"
7 (FLOOD) 9002 01:80:c2:00:00:00/ ff:ff:ff:00:00:00 100 3 "POP_VLAN", "OUTPUT:1", "OUTPUT:2"
7 (FLOOD) 9000 100 1 "POP_VLAN", "OUTPUT:2", "OUTPUT:3" cualquier paquete con etiqueta VLAN=100 se reenvía por el resto de puertos
7 (FLOOD) 9000 100 2 "POP_VLAN", "OUTPUT:1", "OUTPUT:3"
7 (FLOOD) 9000 100 3 "POP_VLAN", "OUTPUT:1", "OUTPUT:2"
7 (FLOOD) 0 None (DROP)

results matching ""

    No results matching ""