Pruebas con OVS y Linux namespaces

Pruebas con OVS y Linux namespaces

Inspeccionamos el funcionamiento de Mininet al ejecutar sus tareas de forma manual.
Creamos los network namespaces que simulan los hosts.
Usando virtual ethernet conectamos los hosts a un switch OVS.


# crear namespaces
ip netns add red
ip netns add green


# crear switch
ovs-vsctl add-br OVS1


# crear interface virtual ethernet
ip link add eth0-r type veth peer name veth-r
# conectamos un extremo al namspace
ip link set eth0-r netns red
# conectamos el otro extremo al switch
ovs-vsctl add-port OVS1 veth-r


# repetimos para el otro namespace
ip link add eth0-g type veth peer name veth-g
ip link set eth0-g netns green
ovs-vsctl add-port OVS1 veth-g


# Levantar interfaces y asignar direcciones
ip link set veth-r up
ip netns exec red ip link set dev lo up
ip netns exec red ip link set dev eth0-r up
ip netns exec red ip address add 10.0.0.1/24 dev eth0-r
ip link set dev veth-g up
ip netns exec green ip link set dev lo up
ip netns exec green ip link set dev eth0-g up
ip netns exec green ip address add 10.0.0.2/24 dev eth0-g

Primeros pasos con Switch OVS

Luego de una lectura a la documentación de Open vSwitch y a diferentes tutoriales que explican su funcionamiento, se pueden seguir los pasos para virtualizar diferentes interfaces de red que se interconectarán entre sí a través de un switch (de forma similar a Mininet, pero directamente a través de Open vSwitch).

Siguiendo los pasos en el archivo antes mencionado, se puede obtener una topología como la siguiente y lograr conectividad entre los namespace rojo y verde.

Switch OVS
Switch OVS

 

El siguiente paso es implementar reglas de filtrado por MAC en el Switch OVS

 

EDIT: se publicó un script que ejecuta paso a paso el desarrollo de este experimento aquí