====== Primera versión estable de LaOtraRed (1VE) ====== ===== 1. Introducción ===== Imagina cómo dos amigos han conectado entre sí sus redes WiFi: pueden compartirse archivos sin usar Internet. Pasan la voz, se unen dos personas más y ahora pueden aprovechar la red para chatear libremente y jugar en red. Un coleccionista de música, también se conecta y empieza a compartir canciones; se lo comenta a una profesora de la escuela cercana, que termina uniéndose a la red y, además, comparte bastante material educativo para todos. Luego, un edificio cercano se conecta a la red mediante la escuela. El dueño instala un servidor especial y ahora todos dentro la red pueden hacer llamadas gratis y hasta crean salas de conversaciones. Poco después se montan radios barriales, algunas comercios ya ofrecen sus productos en sus propias páginas web, alguien puso un bonito portal de anuncios en la zona y hay planes para conectarse con una universidad no muy lejana. Todo esto lo hacen libremente, sin burocracia, por iniciativa propia y lo mejor: la red tiene la capacidad de seguir creciendo. Este tipo de red es posible construyendo LaOtraRed. ==== ¿Qué es LaOtraRed? ==== LaOtraRed es una red de telecomunicaciones libre, neutral, autogestionada y conformada por personas voluntarias. La red le pertenece a la comunidad que la conforma: cualquier persona puede ser parte de la red, saber cómo funciona y poner contenidos digitales a disposición de la comunidad. Funciona gracias al principio de comunicación distribuida, donde los miembros de la red prestan sus recursos para extender el acceso y mejorar la conectividad global. ==== Objetivo Principal ==== Construir y mantener una red de telecomunicaciones libre, neutral y autogestionada. ==== Principios ==== Son 4 reglas para asegurar una red libre y de control colectivo: * Eres libre de utilizar la red para cualquier propósito, en tanto no perjudiques el funcionamiento de la propia red ni a la libertad de los demás usuarios. * Eres libre de saber cómo es la red, de qué se compone y cómo funciona. * Eres libre de emplear la red para cualquier tipo de comunicación y difundir su funcionamiento. * Incorporándote a la red, ayudas a extender estas libertades en las mismas condiciones. Los principios se basan en el texto de la [[https://guifi.net/es/ProcomunXOLN#Principios_Generales|Licencia procomún de la Red Abierta, Libre y Neutral]] ===== 2. Canales de comunicación y comunidad ====== Los medios de comunicación que el proyecto LaOtraRed utiliza en internet son: * Wiki del Proyecto.- https://laotra.red/ Estos medios de comunicación son de libre acceso y siempre están disponibles para quienes quieran formar parte de nuestra comunidad. Estos servicios son mantenidos por GEReL. ==== GEReL ==== El Grupo de Estudio de Redes Libres, es un grupo de personas voluntarias que tiene como objetivos: * Investigar y desarrollar tecnología para el buen funcionamiento de redes libres. * Aportar conocimiento y fuerza de trabajo a la iniciativa del proyecto de redes libres. * Proponer estándares y recomendaciones que beneficien al proyecto de redes libres. * Velar por el orden y el cumplimiento de los principios de convivencia. GEReL ha investigado tecnologías y desarrollado herramientas para la creación de LaOtraRed, y es el principal impulsor del proyecto en la actualidad. Ha escrito este documento para que el proyecto cuente con un documento orientador sólido y que facilite el crecimiento de la red libre y neutral. Más información: https://laotra.red/gerel ===== 3. Gobernanza y Planes ===== ==== Gobernanza ==== Al ser una red formada enteramente por personas voluntarias, en LaOtraRed, los [[red-estable:1ve_pre#principios|Principios de Convivencia]] mencionados anteriormente son iguales para todos. La red es gobernada por la comunidad que la conforma, y no existe organización o entidad que tenga la potestad de tomar decisiones unilaterales sobre la Red o sus componentes principales. === Sobre las Conexiones === * La persona propietaria de cada Nodo se reserva el derecho de dar conexión a los demás nodos. * Un Nodo particular no tiene obligación alguna de mantenerse conectado. === Sobre los Servicios === * Los servicios en la Red son responsabilidad de las personas que los ponen voluntariamente a disposición de la comunidad. * Los miembros de la Red pueden poner servicios con acceso libre o restringido, a su discreción. ==== Planes ==== Para hacer crecer el proyecto, la gente necesita involucrarse en él: por ejemplo, generar contenido e instalar servicios que hagan falta. Las posibilidades son enormes: por ejemplo, un barrio puede tener radio por Wi-Fi, salas de chat, salas de conferencias, llamadas y videollamadas, páginas personales, etc. Una universidad podría poner una biblioteca libre o enciclopedias abiertas, un hospital o institución podría publicar los horarios de atención en su página o anuncios variados. La educación es una excelente estrategia para mejorar el contenido de la Red, y también para mejorar la comunicación e interacción entre las personas. Como la Red utiliza software libre, se puede estudiar y modificar con libertad su estructura y funcionamiento. Entusiastas pueden estudiarla o mejorarla, generando así conocimiento individual y colectivo. Esto permite que la comunidad pueda involucrarse en el proyecto, y tener control sobre los contenidos y las tecnologías que forman parte de la red. La expectativa inicial (2017) es que la red crezca en la ciudad de La Paz y El Alto, y a futuro, pueda expandir su alcance hacia provincias o incluso departamentos. ===== 4. Descripción y funcionamiento ===== Esta sección es principalmente documentación técnica. **Contenido** * [[red-estable:1ve#idea_basica_de_la_red|Idea básica]] * [[red-estable:1ve#red_troncal_core|Red troncal]] * [[red-estable:1ve#nubes_lor|Nubes LOR]] * [[red-estable:1ve#segmentacion_del_espacio_de_direcciones_ip|Segmentación del espacio de direcciones IP]] * [[red-estable:1ve#sobre_el_equipamiento_y_software_utilizado|Sobre el equipamiento y software utilizado]] LaOtraRed es una red descentralizada, en el sentido de que: el flujo del tráfico no depende exclusivamente de un punto o grupo específico, pero sí de puntos vecinos. La Red usa la topología de red en malla((Red en Malla: https://es.wikipedia.org/wiki/Red_en_malla )). Un paquete de datos que requiera llegar de un punto al otro, utilizará a sus vecinos (pares, similares) como puente para llegar a su destino (generando conexiones “par-en-par” a nivel de red). Además, en el viaje, sólo irá por los nodos necesarios para llegar a su destino, sin necesidad de recorrer toda la red o atravesar constantemente cierto nodo en específico. ==== Idea básica de la red ==== {{:red-estable:idea_basica_lor.jpg |idea básica de la red}} Figura 1. Idea básica de la red Una red se compone de varias partes, usualmente con una jerarquía clara entre ellos. Por ejemplo: una red Wi-Fi típica incluye a un enrutador (que hace de parte principal, “maestro” o “líder”) y a uno o más dispositivos cliente (“esclavo”, “seguidor”). Pero existe una manera de conexión más: una donde no existe una jerarquía estricta. En este punto, todas las partes de la red pasan a llamarse “nodos”, siendo iguales entre ellos: este modo de conexión se llama modo Ad-Hoc ((modo Ad-Hoc: https://es.wikipedia.org/wiki/Red_ad_hoc_inal%C3%A1mbrica )). Para formar una Red en Malla, el modo Ad-Hoc es ideal para utilizarlo en su infraestructura. === Ventajas === * Se puede prescindir de una autoridad centralizada que gobierne la red. * Se puede hacer uso completo de la red, consumiendo y poniendo servicios sin sufrir burocracia ni filtros. * Se puede lograr autosuficiencia y alta resistencia a daños o censura. * Es fácilmente extensible. * Costos de mantenimiento muy reducidos, a comparación de otras soluciones. === ¿Cómo crece la Red? === {{ :red-estable:formacion1.png?600 |crecimiento automático}} Figura 2. Crecimiento automático de la red Como se ve en la figura de arriba, cuando un nuevo nodo aparece y establece conexión, éste anuncia su presencia y los nodos vecinos le responden suministrando información y rutas de la Red. Luego, los nodos incluyen al nuevo miembro, informando al resto de la Red de su presencia. Para que los nodos intercambien información vital automáticamente, se utiliza un protocolo de enrutamiento para redes en malla, este es un comportamiento típico en MANETs ((MANET: //Mobile Ad-Hoc Network// https://en.wikipedia.org/wiki/Mobile_ad_hoc_network)) ==== Red Troncal (core) ==== Existen varias formas en la que los equipos pueden conectarse a LaOtraRed: una de ellas, es conectarse a la Red Troncal. En LaOtraRed, denominamos "Red Troncal" a un conjunto de conexiones físicas entre nodos, con equipamiento que se encarga automáticamente de: * Descubrir nuevos nodos y agregarlos a la Red (expandir la red) * Establecer rutas óptimas de conexión con otros nodos (optimización de rutas) * Establecer rutas alternativas en caso de que se pierda la conexión con uno o más nodos (resilencia) * Colaborar con la distribución de tráfico en la red, prestándose como un puente para otros nodos que así lo requieran (encaminamiento distribuido). {{:red-estable:troncal1.png|red troncal}} Figura 3. Ilustración básica de la Red Troncal En la Figura 3. A, B, C, D y H se conectan directamente a la troncal. Los demás son equipos que se conectan a LaOtraRed a través de los nodos conectados directamente a la troncal. Por ejemplo, el nodo H sirve de compuerta de salida para l,i,j,k que mantienen una conexión privada. {{:red-estable:troncal-zonas.png|red troncal lógica física}} Figura 4. Lógica física de la red troncal. En la Figura 4. se ilustra como los equipos dentro una red privada pueden salir a LaOtraRed mediante los enrutadores que son parte de la red troncal. Los equipos se conectan mediante un protocolo de enrutamiento. === Nodos === {{:red-estable:nodos-bmx7.jpeg|estructura de cada nodo en la red troncal}} Figura 5. Estructura de cada nodo. Como se ve en la Figura 5, cada Nodo se conecta al resto de la Red Troncal mediante un enlace directo con uno o más nodos. En esta versión del proyecto (2017) la conexión entre nodos la gestiona el protocolo de enrutamiento BMX7. Cada Nodo anuncia un bloque de direcciones IP (único por defecto) en el resto de la red; por ejemplo, el nodo A anuncia el bloque ''fc01:1934:0100::/56'' y el nodo B anuncia ''fc01:1934:0200::/56''. Un enrutador dentro el Nodo es la compuerta de salida hacia el resto de LaOtraRed. La estructura de la red interna de cada nodo es independiente. * :?: Para detalles de configuración recomendada revise: https://laotra.red/configuraciones/routerprincipal === Servidores === Los servidores son equipos que brindan servicios públicos para el resto de la red, estos equipos son visibles por la totalidad de la red y no hay reglas que impidan el tráfico de entrada o salida hacia los servidores. Los servidores deben tener una dirección IP dentro del espacio de direcciones que anuncia cada nodo, para el caso del nodo A el servidor ''fc01:1934:1:0100::1'' tiene una IP dentro el bloque ''fc01:1934:1:0100::/56'' que anuncia el nodo A al resto de la red. Los equipos servidores deben mantener direcciones IP fijas, para que los servidores de dominio (DNS) en la red los ubiquen. Por ejemplo si el Nodo A brinda el servicio de wikipedia libre con el dominio //wikipedia.nodopatito.laotra.red//, los servidores DNS necesitan que este no cambie de dirección IP, para el caso anterior el servidor podría tener la IP fc01:1934:1:0100::1 y adicionalmente también la IP: 10.64.1.1. Estos equipos necesitan que el //router// principal del nodo permita el flujo de entrada hacia sus equipos servidores y así los hace públicos. * :?: Para detalles de configuración básica de un servidor público en LaOtraRed, revise: https://laotra.red/servicios/consideraciones_generales === Clientes ocasionales === Son equipos que consumen servicios. Por ejemplo, computadoras portátiles, celulares, smartphones, tablets, equipos de telefonía IP, etc. Estos equipos no son visibles directamente por el resto de la red, los nodos tienen la responsabilidad de bloquear tráfico entrante hacia los clientes ocasionales sin previa petición de estos para comunicación con servidores. ==== Nubes LOR ==== La idea de una “nube LOR” o nube en LaOtraRed, es poder describir fácilmente un conjunto de al menos dos enlaces físicos que formen parte de la Red Libre, con las siguientes características: * Que estén agrupados geográficamente, ya que los enlaces físicos requieren ésto por naturaleza. * Los miembros de una nube LOR definen el medio de transporte a usar (¿Wi-Fi? ¿Fibra?), claves de cifrado dentro el canal, etc. * Las nubes LOR sólo se encargan del transporte en capa 2 – no toman decisiones de enrutamiento. Pero asumimos que una nube LOR transporta un (1) solo protocolo de enrutamiento dinámico. * Al menos un nodo en la nube LOR es parte de la red troncal. === Ejemplo === {{ :red-estable:67e84309899d7e7fd5659484d16936ee902a4376_1_680x500.png?600 |ejemplo nube LOR}} * La nube Y puede ser un enlace mesh, o si la situación lo exige (ej: muy larga distancia o enlace troncal con mucho tráfico), un enlace dedicado con software especializado. * En el ejemplo, a pesar de tener varias nubes LOR en esa ciudad imaginaria, en realidad casi todos los nodos son participantes de la Sesión BMX7 principal de LOR (son parte de la red troncal), excepto la nube Z ubicada en un vecindario, que por alguna razón le es más conveniente tener una sesión aparte de algún otro protocolo (por ejemplo, si es posible cablear o si hay muchos miembros). * Las nubes LOR separadas permiten optimizar los enlaces inalámbricos dependiendo la ubicación: frecuencias limpias en el lugar, tipo de enlace (ad-hoc? 802.11s?), etc. * Aunque es más cómodo tener mucha gente en una nube LOR, es recomendable no poner muchos nodos en una nube, al menos en enlaces Wi-Fi; un canal Wi-Fi trae un ancho de banda limitado que todos los usuarios deben compartir, y al ser una infraestructura descentralizada (ad-hoc o 802.11s), la manera en que cada router “toma la palabra” y se haga oír por el resto (airtime) no es optimizable en absoluto, y puede traer problemas de rendimiento al escalar. ==== Segmentación del espacio de direcciones IP ==== === IPv6 === El espacio completo de direcciones destinado a LaOtraRed La Paz - El Alto es: * ''fc01:1934::/32'' A cada nodo se le asigna un bloque único de direcciones IPv6 de tamaño ''/56'' por defecto. La asignación de bloques IPv6 a cada nodo es secuencial según se unen nuevos nodos en la red de la siguiente forma: {{ :red-estable:segmentacion-ipv6.jpeg |segmentación IPv6}} Se mantiene un registro de bloques asignados en https://laotra.red/redlibre/registro_ips También se tiene un bloque destinado para anycast en: ''fc01:1934:a::/48'' === IPv4 === A cada nuevo nodo se le asigna un bloque IPv4 único dentro de ''10.64.0.0/15'', la asignación al igual que en IPv6 es secuencial y con bloques de tamaño ''/27'' para cada nodo. - Para el nodo 1: ''10.64.3.1/27'' - Para el nodo 2: ''10.64.3.32/27'' - ... así sucesivamente. Se mantiene un registro de bloques asignados en https://laotra.red/redlibre/registro_ips ==== Sobre el equipamiento y software utilizado ==== === Equipos enrutadores === No hay equipamiento exclusivo para LaOtraRed, sin embargo al ser una red libre y con la finalidad de tener mayor control y flexibilidad en los equipos, es recomendable utilizar equipos enrutadores que puedan funcionar con software libre. En ese sentido para adquirir un enrutador se puede verificar si este puede funcionar con un sistema operativo libre, por ejemplo se puede revisar la lista de dispositivos soportados en los sitios web de proyectos que desarrollan software libre para enrutadores y dispositivos similares. Un buen comienzo es revisar: * Lista de dispositivos soportados en openwrt: https://openwrt.org/toh/start === Software utilizado === Los componentes principales de la red son software libre y esta es una necesidad para dar la posibilidad de saber cómo es la red, de que se compone y cómo funciona. Se utilizan estándares de comunicación abiertos y protocolos de enrutamiento libres. Para el diseño de esta red se ha utilizado la distribución OpenWrt, que reúne una amplia variedad de programas libres que permiten el funcionamiento de la red ((Distribución openwrt: https://openwrt.org/ )). ===== ANEXOS ===== ==== Lista de tutoriales y configuraciones orientativas ==== * Configuración de enrutadores para unirse a la red troncal: https://laotra.red/configuraciones/routerprincipal * Configuración básica de un servidor público en LaOtraRed: https://laotra.red/servicios/consideraciones_generales ===== Referencias y lectura adicional =====