POX » History » Version 4

Thiago Paiva, 10 Oct 2013 01:53

1 1 Thiago Paiva
h1. POX
2 1 Thiago Paiva
3 4 Thiago Paiva
h2. Overview
4 1 Thiago Paiva
5 4 Thiago Paiva
Controlador derivado do NOX.
6 4 Thiago Paiva
7 4 Thiago Paiva
http://www.noxrepo.org/pox/about-pox/
8 4 Thiago Paiva
9 4 Thiago Paiva
* irmão mais novo do NOX
10 4 Thiago Paiva
* plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework) usando python.
11 4 Thiago Paiva
* tem como alvo principal é a pesquisa
12 4 Thiago Paiva
* interface pythonica para OpenFlow
13 4 Thiago Paiva
* melhor desempenho que o NOX para aplicações escritas em python, porém mais lento que NOX/C++
14 4 Thiago Paiva
* especial suporte para  Open vSwitch
15 4 Thiago Paiva
* SDN debugging
16 4 Thiago Paiva
* network virtualization
17 4 Thiago Paiva
* projeto de controladores
18 4 Thiago Paiva
* modelagem de programação
19 4 Thiago Paiva
* desenvolvimento de um moderno controlador SDN
20 4 Thiago Paiva
21 4 Thiago Paiva
22 3 Thiago Paiva
h2. Sobre o código
23 3 Thiago Paiva
24 3 Thiago Paiva
25 3 Thiago Paiva
h3. Linguagem
26 1 Thiago Paiva
27 4 Thiago Paiva
Python 2.7
28 3 Thiago Paiva
29 3 Thiago Paiva
30 1 Thiago Paiva
h3. Licença
31 1 Thiago Paiva
32 4 Thiago Paiva
GPLv3
33 3 Thiago Paiva
34 3 Thiago Paiva
h3. Suporte a versões do OpenFLOW
35 3 Thiago Paiva
36 4 Thiago Paiva
* suporte para OpenFlow 1.0
37 3 Thiago Paiva
38 3 Thiago Paiva
39 3 Thiago Paiva
h3. Requisitos
40 3 Thiago Paiva
41 3 Thiago Paiva
* pacotes a serem instalados
42 1 Thiago Paiva
* espaço de armazenamento exigido
43 3 Thiago Paiva
* outros recursos necessários ao funcionamento do controlador.
44 3 Thiago Paiva
45 3 Thiago Paiva
46 1 Thiago Paiva
h3. Independência de linguagem de programação 
47 3 Thiago Paiva
48 4 Thiago Paiva
Somente python
49 3 Thiago Paiva
50 1 Thiago Paiva
51 3 Thiago Paiva
h3. Modularidade
52 1 Thiago Paiva
53 4 Thiago Paiva
* componentes reutilizáveis (modularidade) (recursos prontos)
54 1 Thiago Paiva
55 1 Thiago Paiva
56 1 Thiago Paiva
h3. Repositório
57 1 Thiago Paiva
58 4 Thiago Paiva
https://github.com/noxrepo/pox
59 1 Thiago Paiva
60 1 Thiago Paiva
61 1 Thiago Paiva
h3. Recursos básicos do controlador
62 1 Thiago Paiva
63 4 Thiago Paiva
???
64 1 Thiago Paiva
65 1 Thiago Paiva
66 1 Thiago Paiva
h3. Aplicações
67 1 Thiago Paiva
68 4 Thiago Paiva
* py: interface python (debug)
69 4 Thiago Paiva
* forwarding.hub: $10 hub
70 4 Thiago Paiva
* forwarding.l2_learning: L2 learning switch
71 4 Thiago Paiva
* forwarding.l2_pairs: L2 learning switch based on MAC addresses
72 4 Thiago Paiva
* forwarding.l3_learning: "L3-lerning-switchy-thing"
73 4 Thiago Paiva
* forwarding.l2_multi: 
74 4 Thiago Paiva
* forwarding.l2_nx
75 4 Thiago Paiva
* forwarding.topo_proactive
76 4 Thiago Paiva
* openflow.spanning_tree
77 4 Thiago Paiva
* web.webcore
78 4 Thiago Paiva
* messenger
79 4 Thiago Paiva
* openflow.of_01
80 4 Thiago Paiva
* openflow.discovery
81 4 Thiago Paiva
* openflow.debug
82 4 Thiago Paiva
* openflow.keepalive
83 4 Thiago Paiva
* proto.pong
84 4 Thiago Paiva
* proto.arp_responder
85 4 Thiago Paiva
* info.packet_dump
86 4 Thiago Paiva
* proto.dns_spy
87 4 Thiago Paiva
* proto.dpcp_client
88 4 Thiago Paiva
* proto.dhcpd
89 4 Thiago Paiva
* misc.of_tutorial
90 4 Thiago Paiva
* misc.full_payload
91 4 Thiago Paiva
* misc.mac_blocker
92 4 Thiago Paiva
* misc.nat
93 4 Thiago Paiva
* misc.ip_loadbalancer
94 4 Thiago Paiva
* misc.gephi_topo
95 4 Thiago Paiva
* log
96 4 Thiago Paiva
** Disabling the Console Log
97 4 Thiago Paiva
** Log Formatting
98 4 Thiago Paiva
** Log Output
99 4 Thiago Paiva
* log.color
100 4 Thiago Paiva
* log.level
101 4 Thiago Paiva
* samples.pretty_log
102 4 Thiago Paiva
* tk
103 4 Thiago Paiva
* host_tracker
104 1 Thiago Paiva
105 1 Thiago Paiva
106 1 Thiago Paiva
h3. Testes
107 1 Thiago Paiva
108 4 Thiago Paiva
https://github.com/noxrepo/pox/tree/betta/tests
109 1 Thiago Paiva
110 4 Thiago Paiva
* controllers (controle distribuído)
111 4 Thiago Paiva
* topology
112 4 Thiago Paiva
* unit
113 1 Thiago Paiva
114 4 Thiago Paiva
115 1 Thiago Paiva
h3. Disponibilidade nas distribuições GNU/Linux 
116 1 Thiago Paiva
117 4 Thiago Paiva
Precisa ser clonado com git.
118 1 Thiago Paiva
119 1 Thiago Paiva
120 4 Thiago Paiva
h3. último release / commit
121 1 Thiago Paiva
122 4 Thiago Paiva
Branch 'carp' com atividades recentes.
123 1 Thiago Paiva
124 1 Thiago Paiva
125 4 Thiago Paiva
h2. Documentação
126 1 Thiago Paiva
127 1 Thiago Paiva
* POX wiki: instalação, componentes, APIs, openflow e FAQ (bem completo)
128 1 Thiago Paiva
https://openflow.stanford.edu/display/ONL/POX+Wiki
129 1 Thiago Paiva
130 1 Thiago Paiva
* mininet + POX
131 1 Thiago Paiva
http://mininet.org/blog/2013/06/03/automating-controller-startup/
132 1 Thiago Paiva
133 1 Thiago Paiva
* Configuring an OpenFlow POX SDN Controller and HP Switches
134 1 Thiago Paiva
http://networkstatic.net/configuring-an-openflow-pox-sdn-controller-and-hp-switches/
135 1 Thiago Paiva
136 4 Thiago Paiva
* openflow tutorial with pox
137 4 Thiago Paiva
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html
138 1 Thiago Paiva
139 1 Thiago Paiva
140 4 Thiago Paiva
h2. Suporte junto ao OpenStack
141 1 Thiago Paiva
142 4 Thiago Paiva
Nenhum, aparentemente
143 1 Thiago Paiva
144 4 Thiago Paiva
h2. Quem usa
145 1 Thiago Paiva
146 4 Thiago Paiva
Voltado para pesquisadores.
147 1 Thiago Paiva
148 1 Thiago Paiva
149 4 Thiago Paiva
h2. Quem está por trás 
150 1 Thiago Paiva
151 4 Thiago Paiva
Nicira
152 1 Thiago Paiva
153 1 Thiago Paiva
154 4 Thiago Paiva
h2. Outras características
155 1 Thiago Paiva
156 1 Thiago Paiva
* suporta mesmas ferramentas de visualização do NOX
157 1 Thiago Paiva
158 1 Thiago Paiva
159 4 Thiago Paiva
h3. Funcionamento
160 1 Thiago Paiva
161 1 Thiago Paiva
pox.py recebe uma lista de módulos na linha de comando e chama a função 'launch()' deles caso ela exista e depois muda para estado 'up'.
162 1 Thiago Paiva
163 1 Thiago Paiva
Os módulos podem estar nos diretórios 'pox' e 'ext', além dos diretórios normalmente vigiados pela instalação do python.
164 1 Thiago Paiva
165 1 Thiago Paiva
Opções (--) podem ser acrescidas após o nome do módulo e serão passadas como parâmetro para o chamado da função 'launch()'.