NOX » History » Version 3
Thiago Paiva, 11 Nov 2013 04:10
| 1 | 1 | Thiago Paiva | h1. NOX |
|---|---|---|---|
| 2 | 1 | Thiago Paiva | |
| 3 | 1 | Thiago Paiva | h2. OBSERVAÇÃO |
| 4 | 1 | Thiago Paiva | |
| 5 | 1 | Thiago Paiva | Existem duas versões do NOX. A versão antiga e descontinuada foi renomeada para NOX-Classic. Porém todos os materiais que foram produzidos para essa versão tratam-na com o nome que era corrente, ou seja, apenas por NOX. Isso causa um problema sério: em qualquer conteúdo referente ao NOX não se consegue saber se é sobre a versão antiga ou a nova, a menos que seja dito explicitamente ou que o NOX seja chamado de 'new NOX'. |
| 6 | 1 | Thiago Paiva | |
| 7 | 1 | Thiago Paiva | |
| 8 | 2 | Thiago Paiva | h2. Sobre o código |
| 9 | 2 | Thiago Paiva | |
| 10 | 2 | Thiago Paiva | |
| 11 | 2 | Thiago Paiva | h3. Linguagem |
| 12 | 2 | Thiago Paiva | |
| 13 | 3 | Thiago Paiva | C++ |
| 14 | 2 | Thiago Paiva | |
| 15 | 2 | Thiago Paiva | |
| 16 | 2 | Thiago Paiva | h3. Licença |
| 17 | 2 | Thiago Paiva | |
| 18 | 3 | Thiago Paiva | GPLv3 |
| 19 | 2 | Thiago Paiva | |
| 20 | 2 | Thiago Paiva | |
| 21 | 2 | Thiago Paiva | h3. Suporte a versões do OpenFLOW |
| 22 | 2 | Thiago Paiva | |
| 23 | 3 | Thiago Paiva | OpenFlow 1.0 |
| 24 | 2 | Thiago Paiva | |
| 25 | 2 | Thiago Paiva | h3. Requisitos |
| 26 | 2 | Thiago Paiva | |
| 27 | 2 | Thiago Paiva | * pacotes a serem instalados |
| 28 | 2 | Thiago Paiva | * espaço de armazenamento exigido |
| 29 | 2 | Thiago Paiva | * outros recursos necessários ao funcionamento do controlador. |
| 30 | 2 | Thiago Paiva | |
| 31 | 2 | Thiago Paiva | |
| 32 | 2 | Thiago Paiva | h3. Independência de linguagem de programação |
| 33 | 2 | Thiago Paiva | |
| 34 | 2 | Thiago Paiva | Quais linguagens são suportadas na implementação de aplicações e componentes. |
| 35 | 2 | Thiago Paiva | |
| 36 | 2 | Thiago Paiva | |
| 37 | 2 | Thiago Paiva | h3. Modularidade |
| 38 | 2 | Thiago Paiva | |
| 39 | 2 | Thiago Paiva | Quanto e que tipo de modularidade o controlador oferece. |
| 40 | 2 | Thiago Paiva | |
| 41 | 2 | Thiago Paiva | |
| 42 | 2 | Thiago Paiva | h3. Repositório |
| 43 | 2 | Thiago Paiva | |
| 44 | 2 | Thiago Paiva | Onde encontrar o código. |
| 45 | 2 | Thiago Paiva | |
| 46 | 2 | Thiago Paiva | |
| 47 | 2 | Thiago Paiva | h3. Recursos básicos do controlador |
| 48 | 2 | Thiago Paiva | |
| 49 | 2 | Thiago Paiva | Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo: |
| 50 | 2 | Thiago Paiva | * GRE tunneling |
| 51 | 1 | Thiago Paiva | * VLAN support |
| 52 | 1 | Thiago Paiva | |
| 53 | 1 | Thiago Paiva | |
| 54 | 1 | Thiago Paiva | h3. Aplicações |
| 55 | 1 | Thiago Paiva | |
| 56 | 3 | Thiago Paiva | * jsonmessenger: interact with NOX using JSON. |
| 57 | 3 | Thiago Paiva | * messenger: interact with NOX. |
| 58 | 3 | Thiago Paiva | * simple_cc_app |
| 59 | 3 | Thiago Paiva | * simple_app |
| 60 | 3 | Thiago Paiva | * snmp: SNMP get/set support in NOX More... |
| 61 | 3 | Thiago Paiva | * Authenticator |
| 62 | 3 | Thiago Paiva | * Bindings_Storage: mirrors the Authenticator's internal data structures within the NDB. |
| 63 | 3 | Thiago Paiva | * discovery: LLDP discovery application for topology inference. |
| 64 | 3 | Thiago Paiva | * hostip: store IP address of hosts. |
| 65 | 3 | Thiago Paiva | * hosttracker: Track locations of host (ethernet)Track last n known locations of host attachment. |
| 66 | 3 | Thiago Paiva | * trackhost_pktin: Tracks host location using packet in. |
| 67 | 3 | Thiago Paiva | * lavi: Components that allows network state to be enquired. |
| 68 | 3 | Thiago Paiva | * Monitoring: Collects and maintains switch and port stats for the network. |
| 69 | 3 | Thiago Paiva | * datapathmem: Datapath memory to memorize datapath informationAlso join events of the datapath. |
| 70 | 3 | Thiago Paiva | * linkload: tracks port stats of links and its loadRefers to links using its source datapath id and port. |
| 71 | 3 | Thiago Paiva | * switchrtt: meaure RTT of switch in networkCan configure the interval of probe at runtime using the interval option (giving interval in seconds). |
| 72 | 3 | Thiago Paiva | * flowroute_record: record of flow and associated routeDoes not handle detection of flow and route nor its expiration/deletion. |
| 73 | 3 | Thiago Paiva | * routeinstaller: install route. |
| 74 | 3 | Thiago Paiva | * simplerouting: routing with dependencies on authenticatorCan choose to set flow installed into flowroute_record with arguments |
| 75 | 3 | Thiago Paiva | * Routing_module: utility component that can be called to retrieve a shortest path route and/or to set up flow entries in the network with Openflow actions to route a flow. |
| 76 | 3 | Thiago Paiva | * switchstats: collects and maintains switch and port stats for the network. |
| 77 | 3 | Thiago Paiva | * flowlog: records all flows in networkTo ensure flow removed is sent (in openflow-default.hh). |
| 78 | 3 | Thiago Paiva | * rttlog: Logs switch RTTLogs every switchrtt's interval, i.e., probe all switches once. |
| 79 | 3 | Thiago Paiva | * tablog: Component that logs tables of informationComponent dumps data into one of the tablog_dump format. |
| 80 | 3 | Thiago Paiva | * test1 |
| 81 | 3 | Thiago Paiva | * test2 |
| 82 | 3 | Thiago Paiva | * Topology: the current network topology. |
| 83 | 3 | Thiago Paiva | * User_Event_Log: The goal of the user_event_log is to let applications easily generate 'network event log' messages that include high-level network names. |
| 84 | 3 | Thiago Paiva | * webserver |
| 85 | 2 | Thiago Paiva | |
| 86 | 2 | Thiago Paiva | h3. Testes |
| 87 | 2 | Thiago Paiva | |
| 88 | 2 | Thiago Paiva | Existência de testes de unidades no codigo (scripts ou códigos), geralmente em uma pasta em separado, que validam e testam o código desenvolvido. |
| 89 | 2 | Thiago Paiva | |
| 90 | 2 | Thiago Paiva | |
| 91 | 2 | Thiago Paiva | h3. Disponibilidade nas distribuições GNU/Linux |
| 92 | 2 | Thiago Paiva | |
| 93 | 2 | Thiago Paiva | Disponibilidade e facilidade de instação nas distribuição GNU/Linux relevantes atuais. |
| 94 | 2 | Thiago Paiva | |
| 95 | 2 | Thiago Paiva | * disponível nos repositórios da distribuição? |
| 96 | 2 | Thiago Paiva | * versão dos pacotes disponíveis |
| 97 | 2 | Thiago Paiva | * ênfase nas distros Debian e Ubuntu. |
| 98 | 2 | Thiago Paiva | |
| 99 | 2 | Thiago Paiva | |
| 100 | 2 | Thiago Paiva | h2. Documentação |
| 101 | 2 | Thiago Paiva | |
| 102 | 2 | Thiago Paiva | Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações). |
| 103 | 2 | Thiago Paiva | |
| 104 | 2 | Thiago Paiva | |
| 105 | 2 | Thiago Paiva | h2. Suporte junto ao OpenStack |
| 106 | 2 | Thiago Paiva | |
| 107 | 2 | Thiago Paiva | Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta. |
| 108 | 2 | Thiago Paiva | |
| 109 | 2 | Thiago Paiva | |
| 110 | 2 | Thiago Paiva | h2. Quem usa |
| 111 | 2 | Thiago Paiva | |
| 112 | 2 | Thiago Paiva | Público do controlador |
| 113 | 2 | Thiago Paiva | |
| 114 | 2 | Thiago Paiva | |
| 115 | 2 | Thiago Paiva | h2. Quem está por trás |
| 116 | 2 | Thiago Paiva | |
| 117 | 2 | Thiago Paiva | Empresas, consórcio, comunidade, universidade, ... |
| 118 | 2 | Thiago Paiva | |
| 119 | 2 | Thiago Paiva | |
| 120 | 2 | Thiago Paiva | h2. último release / commit |
| 121 | 2 | Thiago Paiva | |
| 122 | 2 | Thiago Paiva | Uma das formas de se ter noção de quanto o desenvolvimento ainda está ativo é procurar pela data da última atualização de código no repositório. |
| 123 | 2 | Thiago Paiva | |
| 124 | 2 | Thiago Paiva | |
| 125 | 2 | Thiago Paiva | h2. Outras características |
| 126 | 2 | Thiago Paiva | |
| 127 | 2 | Thiago Paiva | Características que não se adequam a nenhuma das anteriores. |
| 128 | 2 | Thiago Paiva | |
| 129 | 2 | Thiago Paiva | |
| 130 | 2 | Thiago Paiva | |
| 131 | 2 | Thiago Paiva | |
| 132 | 2 | Thiago Paiva | |
| 133 | 2 | Thiago Paiva | |
| 134 | 2 | Thiago Paiva | |
| 135 | 2 | Thiago Paiva | |
| 136 | 2 | Thiago Paiva | |
| 137 | 2 | Thiago Paiva | |
| 138 | 2 | Thiago Paiva | |
| 139 | 2 | Thiago Paiva | |
| 140 | 2 | Thiago Paiva | |
| 141 | 1 | Thiago Paiva | h2. Overview |
| 142 | 1 | Thiago Paiva | |
| 143 | 1 | Thiago Paiva | Controlador praticamente desenvolvido em conjunto com OpenFlow. |
| 144 | 1 | Thiago Paiva | |
| 145 | 1 | Thiago Paiva | * Oferece uma API para OpenFlow em C++ |
| 146 | 1 | Thiago Paiva | * Oferece rápida e assincrona IO (entrada saída) |
| 147 | 1 | Thiago Paiva | * Está disponível nas recentes distribuições Ubuntu (mas é possível instalar na Debian e RHEL) |
| 148 | 1 | Thiago Paiva | * Inclui componentes exemplos: |
| 149 | 1 | Thiago Paiva | ** Topology discovery |
| 150 | 1 | Thiago Paiva | ** Learning switch |
| 151 | 1 | Thiago Paiva | ** Network-wide switch |
| 152 | 1 | Thiago Paiva | |
| 153 | 1 | Thiago Paiva | |
| 154 | 1 | Thiago Paiva | h2. Versões |
| 155 | 1 | Thiago Paiva | |
| 156 | 1 | Thiago Paiva | * NOX-Classic: deprecated. Suporte para C++ e Python. |
| 157 | 1 | Thiago Paiva | |
| 158 | 1 | Thiago Paiva | * NOX (aka 'new NOX'): suporte apenas para C++. Código mais limpo. Poucos applicativos. |
| 159 | 1 | Thiago Paiva | |
| 160 | 1 | Thiago Paiva | * NOX com suporte a OpenFlow 1.3 (em desenvolvimento, último commit 07/05/2013) |
| 161 | 1 | Thiago Paiva | https://github.com/CPqD/nox13oflib |
| 162 | 1 | Thiago Paiva | |
| 163 | 1 | Thiago Paiva | |
| 164 | 1 | Thiago Paiva | h2. NOX API reference |
| 165 | 1 | Thiago Paiva | |
| 166 | 1 | Thiago Paiva | http://www.noxrepo.org/_/nox-classic-doxygen/index.html |
| 167 | 1 | Thiago Paiva | |
| 168 | 1 | Thiago Paiva | (gerado pelo doxygen) |
| 169 | 1 | Thiago Paiva | |
| 170 | 1 | Thiago Paiva | |
| 171 | 1 | Thiago Paiva | h2. Repositório GitHub |
| 172 | 1 | Thiago Paiva | |
| 173 | 1 | Thiago Paiva | https://github.com/noxrepo/nox |
| 174 | 1 | Thiago Paiva | |
| 175 | 1 | Thiago Paiva | |
| 176 | 1 | Thiago Paiva | h2. Documentação do NOX-Classic |
| 177 | 1 | Thiago Paiva | |
| 178 | 1 | Thiago Paiva | Dizem que apesar de ultrapassado, a documentação contida no wiki do NOX-Classic ainda pode ajudar, então: |
| 179 | 1 | Thiago Paiva | https://github.com/noxrepo/nox-classic/wiki |
| 180 | 1 | Thiago Paiva | |
| 181 | 1 | Thiago Paiva | |
| 182 | 1 | Thiago Paiva | h2. Tutoriais |
| 183 | 1 | Thiago Paiva | |
| 184 | 1 | Thiago Paiva | * Create OpenFlow network with multiple PCs/NetFPGAs |
| 185 | 1 | Thiago Paiva | http://archive.openflow.org/wp/deploy-labsetup/ |
| 186 | 1 | Thiago Paiva | |
| 187 | 1 | Thiago Paiva | * NOX OpenFlow Controller Install on Ubuntu 12.04 (antigo já, talvez esteja no repositório) |
| 188 | 1 | Thiago Paiva | http://mytestbed.net/projects/openflow/wiki/Installing_a_NOX_controller |
| 189 | 1 | Thiago Paiva | http://networkstatic.net/nox-openflow-controller-install-on-ubuntu-12-04-precise-lts/ |