quinta-feira, 8 de agosto de 2013

OpenFlow

Este artigo destina-se a algumas dicas de Open Flow.

Parte 1 - instalação na máquina real
Para instalar a versão de desenvolvimento mais recente do OpenFlow, use o GIT através dos comandos:

# apt-get install git (caso não tenha o git)
# git clone git://gitosis.stanford.edu/openflow

Conforme instrução de www.openflow.org

 ---------------------------------------------------------------------

Parte 2 - Instalação da Máquina Virtual pronta (do openflow.org)

Link do tutorial: http://www.openflow.org/wk/index.php/OpenFlow_Tutorial

Para fins de teste, estou utilizando a máquina virtual disponibilizada no tutorial oficial:
1) download  da VM em https://github.com/downloads/mininet/mininet/mininet-2.0.0-113012-amd64-ovf.zip

2) Uma vez acessado através do VirtualBox, fiz as configurações:
$ sudo su
# echo "set number" >> /etc/vim/vimrc
# echo "set tabstop=4" >> /etc/vim/vimrc
# echo "set expandtab" >> /etc/vim/vimrc

3) Adotei o vi como editor padrão, então não precisei instalar adicionais.

4) Instalação de pacotes para utilizar aplicações gráficas na máquina virtual:
# apt-get update
# apt-get install xinit flwm
Feito isto, deve-se acessar a máquina virtual via SSH, utilizando a diretiva "-X", porém para o Windowsão isto não funcionou.

5) Criei um ambiente básico:
$ sudo su
mn --topo single,3 --mac --switch ovsk --controller remote

- criou 3 hosts virtuais distintos
- criou um único switch OpenFlow com 3 portas
- Conectou cada host virtual ao switch usando cabo ethernet virtual
- setou o mac de cada host

 ---------------------------------------------------------------------

Parte 3 - Dicas de uso básico

1) Dentro do mininet:
mininet> help  (lista de comandos)
mininet> h1 ifconfig (executa comando ifconfig para o nó "h1". Serve para todos os nós)
mininet> h1 ping -c5 h2 (faz h1 tentar pingar em h2)
mininet> nodes (exibe os nós existentes)

2) dpctl: utilitário específico para debugação do OpenFlow. Normalmente abre-se outro terminal SSH para execução dos comandos seguintes:

2.a) Conecta ao switch e faz dump dos estados de portas e capacidade. A porta 6634 vem configurada por padrão para escuta.
$ dpctl show tcp:127.0.0.1:6634

2.b) Conecta ao switch e faz dump da tabela de fluxos:
$ dpctl dump-flows tcp:127.0.0.1:6634


2.c) Conecta ao switch e faz dump de estatísticas das portas:
$ dpctl dump-ports tcp:127.0.0.1:6634

2.d) Mais opções do comando, consulte:
$ man dpctl

continua.....