====== Primera versión estable de LaOtraRed (1VE) ====== Esta es una versión preliminar del documento para la 1VE, [[https://foro.laotrared.net/t/discusion-rumbo-a-la-primera-version-estable-de-laotrared/211|discusión en el foro]] ===== 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: * Foro.- https://foro.laotrared.net/ * Wiki del Proyecto.- https://wiki.lapaz.laotrared.net * Repositorio git de desarrollo de software.- https://git.laotrared.net 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 esta especificación de la primera versión estable de LaOtraRed 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://wiki.lapaz.laotrared.net/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. ==== Planes ==== Para hacer crecer el proyecto, la gente necesita involucrarse en él: por ejemplo, generar contenido e instalar servicios que les 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 su estructura y funcionamiento libremente. Los entusiastas pueden estudiarla o mejorarla, generando así conocimiento individual y colectivo. Esto permite que la comunidad pueda involucrarse en el proyecto, sobre los contenidos y las tecnologías que forman parte de ella. La expectativa inicial es que la red crezca en la ciudad de La Paz y El Alto y también se expanda o se forme independientemente en cualquier lugar. === 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. ===== 4. Descripción y funcionamiento ===== Esta sección es principalmente documentación técnica. **Contenido** * [[red-estable:1ve_pre#idea_basica_de_la_red|Idea básica]] * [[red-estable:1ve_pre#red_troncal_core|Red troncal]] * [[red-estable:1ve_pre#laotrared_por_vpn|LaOtraRed por VPN]] * [[red-estable:1ve_pre#nubes_lor|Nubes LOR]] * [[red-estable:1ve_pre#segmentacion_del_espacio_de_direcciones_ip|Segmentación del espacio de direcciones IP]] * [[red-estable:1ve_pre#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, típicamente con jerarquía. 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; conectarse sin definir una jerarquía de enlace entre ellos. En este punto, todas las partes de la red pasan a llamarse “nodos”, sin tener ya una jerarquía clara 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 bajos. === ¿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 para que los equipos puedan 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 usando Redes en Malla, que se encargan 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|}} 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|}} 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|}} 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 la conexión entre nodos la gestiona el protocolo de enrutamiento bmx7, en un futuro este protocolo podría cambiar globalmente siempre y cuando permita cumplir las funciones básicas que cumplen los nodos en la red troncal. Cada Nodo anuncia un bloque de direcciones IP único 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''. Como se usa bmx7, todos los nodos en la Red Troncal anuncian su bloque IPv6 usando uHNA ((//Unicast Host Network Announcements//: https://github.com/bmx-routing/bmx7#unicast-host-network-announcements-uhna)), asegurando así que ningún otro nodo anuncie el mismo bloque. 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, y no es necesario que un nodo mantenga una red privada para estar dentro de la red troncal. * :?: Para detalles de configuración recomendada revise: https://wiki.lapaz.laotrared.net/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.nodoA.lor 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://wiki.lapaz.laotrared.net/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. ==== LaOtraRed por VPN ==== Las VPNs no forman parte real de LaOtraRed y son sólo una forma adicional de acceder a los recursos dentro de la red troncal. === MeshNet === Es una implementación de VPN mantenida por GEReL más detalles en: https://wiki.lapaz.laotrared.net/meshnet/vpnlor ==== 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?), canal de comunicación, 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 |}} * 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. ==== Segmentación del espacio de direcciones IP ==== === IPv6 === El espacio completo de direcciones destinado a LaOtraRed La Paz - El Alto es: * ''fc01:1934::/32'' Cada nodo anuncia un bloque único de direcciones IPv6 de tamaño ''/56''. 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 |}} Se mantiene un registro de bloques asignados en https://wiki.lapaz.laotrared.net/redlibre/registro_ips También se tiene un bloque destinado para anycast en: ''fc01:1934:cafe::/48'' === IPv4 === Cada nodo también puede anunciar un bloque IPv4 único dentro de ''10.64.0.0/16'', 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.0.1/27'' - Para el nodo 2: ''10.64.0.32/27'' - ... así sucesivamente. Se mantiene un registro de bloques asignados en https://wiki.lapaz.laotrared.net/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 casi exclusivamente la distribución openwrt del sistema operativo GNU/Linux 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://wiki.lapaz.laotrared.net/configuraciones/routerprincipal * Configuración básica de un servidor público en LaOtraRed: https://wiki.lapaz.laotrared.net/servicios/consideraciones_generales * Detalles sobre Meshnet en LaOtraRed: https://wiki.lapaz.laotrared.net/meshnet/vpnlor ===== Referencias y lectura adicional =====