Existe la utilidad Generador de configuraciones para enrutadores en LaOtraRed que basada en estas configuraciones genera un script uci que se ejecuta en el enrutador y aplica estas configuraciones. La utilidad podría no siempre estar actulizada con las configuraciones que sugiere esta página.
El enrutador debería tener instalado el S.O. openwrt o similares, Instalar un sistema operativo libre al enrutador
Su misión básica es enrutar todo el tráfico que va a/llega de LOR: además suele ser el router principal de la red, en el lugar donde se ubica el nodo.
Para el ejemplo, asumimos que tenemos para el nodo los bloques IP-LOR públicos v4 y v6: 10.64.7.0/27 y fc01:1934:1:1d00::/56.
A una configuración por defecto de OpenWrt (que incluye las interfaces LAN y WAN, con sus reglas de firewall), les hacemos las siguientes modificaciones:
config interface 'lan' # (...) configuraciones tipicas option proto 'static' # asignamos IPv4 al router option ipaddr '10.64.7.1/27' # asignamos IPv6 al router option ip6addr 'fc01:1934:1:1d20::1/60' config interface 'lor_local' option ifname 'eth0.10' option proto 'static' # La sesión de routing troncal (BMX7 en 2018+) no necesita especificar direcciones aquí: # el demonio bmx7 les asigna IPs por su cuenta. Babel y otros protocolos quizás necesiten especificar direcciones.
Una vez editado el archivo usa: /etc/init.d/network restart
para que los cambios se apliquen.
Para la sesión troncal, el archivo /etc/config/bmx7 debe ser editado con cuidado:
config bmx7 'general' config plugin option plugin 'bmx7_config.so' config plugin option plugin 'bmx7_json.so' config plugin option plugin 'bmx7_topology.so' config dev 'meshlocal' option dev 'eth0.10' # option dev 'ref:network.laotrared.ifname' # Si tu conexión es cableada y no es Gigabit (o es VPN), agrega la siguiente opción para corregir las estimaciones que bmx7 hace de la interfaz, en Kbit/s: # option rateMax '100000000' config plugin option plugin 'bmx7_tun.so' # Anuncios nativos (IPv6) # Anuncia aquí tu bloque IPv6 config unicastHna 'miPrefijoGlobal' option unicastHna 'fc01:1934:1:1d00::/56' # Anuncios por túnel (IPv4v6) # Anuncia aquí tu bloque IPv4 junto a una IP asignada al router (probablemente sea la IP gateway) # El bloque completo pertenece aquí, no importa si subdividiste tu /27 o no. # Además, debes agregar en tun6address tu primera dirección del /56 asignado. config tunDev 'default' option tunDev 'miPrefijoV4' option tun4Address '10.64.7.1/27' option tun6Address 'fc01:1934:1:1d00::1/128' # Receptor de anuncios por túnel (IPv4v6) # Aceptar anuncios de redes LOR config tunOut option tunOut 'ip4LOR' option network '10.64.0.0/15' option maxPrefixLen '29' option minPrefixLen '20' # Aceptar anuncios de redes IPv4v6 LOR (sólo anycast) config tunOut option tunOut 'ip4anycast' option network '10.64.64.0/24' option maxPrefixLen '32' option minPrefixLen '32' config tunOut option tunOut 'ip6anycast' option network 'fc01:1934:a::/48' option maxPrefixLen '128' option minPrefixLen '128' # Experimental, PIT-RFC1918 config tunOut option tunOut 'ip4lnet' option network '10.0.0.0/8' option maxPrefixLen '23' option minPrefixLen '19' # Experimental: PIT Ciudadano integrado a LOR config tunOut option tunOut 'ip4pub' option network '0.0.0.0/0' option maxPrefixLen '27' option minPrefixLen '24' # Experimental: Nubes LOR6 config tunOut option tunOut 'ip6lor6' option network 'fd66:66:66::/48' option maxPrefixLen '128' option minPrefixLen '128'
Además, debes proteger los archivos dentro de /etc/bmx7/ para asegurar que las características de seguridad de BMX7 funcionen. No distribuyas backups de tu configuración.
Aplica los cambios con /etc/init.d/bmx7 restart
La configuración por defecto de OpenWrt es la siguiente:
Zona global: accept/reject/accept (bloquea por defecto el enrutado)
Para LOR, se necesita agregar una sola zona adicional:
La configuración de esa zona LOR luce mas o menos así, en /etc/config/firewall:
config zone option input 'ACCEPT' # Por defecto "forward" bloquea el traspaso de paquetes. Pero más abajo habilitamos el egreso por defecto. # Para habilitar por completo el ingreso (por ejemplo, si tienes muchos servidores o servicios), cambia la siguiente regla de "REJECT" a "ACCEPT". option forward 'REJECT' option output 'ACCEPT' option name 'laotrared' option network 'laotrared' # La siguiente regla agrega a la zona LOR los túneles IPv4v6 que bmx7 crea: list device 'X7+' config forwarding option src 'lan' option dest 'laotrared' config rule 'lorPing' option name 'PermitirPingIngreso' option src 'laotrared' option proto 'icmp' option icmp_type 'echo-request' option family 'ipv4' option target 'ACCEPT' config rule 'lorICMPv6' option name 'PermitirICMPv6ingreso' option src 'laotrared' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' list icmp_type 'router-solicitation' list icmp_type 'neighbour-solicitation' list icmp_type 'router-advertisement' list icmp_type 'neighbour-advertisement' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT' config rule 'lorICMPv6F' option name 'PermitirICMPv6traspaso' option src 'laotrared' option dest '*' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT' config rule 'lorSIPRTP' option target 'ACCEPT' option src 'laotrared' option name 'PermitirSIP-RTP' option proto 'udp' option dest 'lan' option dest_port '10000-20000'
Aplica los cambios con /etc/init.d/firewall restart
Si quieres abrir una IP para recibir tráfico externo (por ejemplo poner un servidor visible para el resto de la red):
Esto se puede lograr fácilmente desde la interfaz gráfica del router (LUCI) o editando el archivo /etc/config/firewall
.
Abriendo IP desde LUCI
En el panel de administración (abre un navegador web y coloca la IP del enrutador) ingresa a Network → Firewall → Traffic Rules
para agregar las reglas que permitan que peticiones desde LaOtraRed puedan acceder a una IP fija, esa IP deberá ser la del servidor que deseamos exponer.
Ahí se ven todas las reglas de tráfico y agregamos una en la sección que dice “New Forward Rule” con el nombre que queramos y hacemos click en “Add and edit”.
Luego se especifican los detalles de la nueva regla.
Guardamos los cambios con “Save & Apply”. De la misma forma para abrir una dirección IPv6.
Abriendo IP editando /etc/config/firewall
Si prefieres editar el archivo directamente puedes agregar las siguientes líneas modificando según la IP que requieras hacer pública:
config rule option target 'ACCEPT' option src 'lor' option name 'ServerPiPublico' option dest_ip '10.64.3.66' option proto 'all' option dest 'lan
Aplica los cambios con /etc/init.d/firewall restart
Para poder resolver dominios en LaOtraRed (terminan en .lor
), necesitas editar tu configuración en /etc/config/dhcp.
config dnsmasq (...) option rebind_protection '0' # Habilitar la resolución de rDNS IPv4v6 list server '/10.in-addr.arpa/10.64.64.53' list server '/64.10.in-addr.arpa/10.64.64.53' list server '/65.10.in-addr.arpa/10.64.64.53' list server '/4.3.9.1.1.0.c.f.ip6.arpa/10.64.64.53' list server '/0.7.d.f.ip6.arpa/10.64.64.53' list server '/6.6.d.f.ip6.arpa/10.64.64.53' list server '/cstz.l10e.net/10.64.64.53' list server '/constanze.l10e.net/10.64.64.53' list server '/lor/10.64.64.53' # dominios *.lor list server '/laotra.red/10.64.64.53' # dominios *.laotra.red list server '/laotrared.net/10.64.64.53' # dominios *.laotra.red # Servidor DNS global por defecto, si tienes internet. list server '1.1.1.1' # DNS de CloudFlare. Naturalmente, puedes usar otro.
Aplica los cambios con /etc/init.d/dnsmasq restart
Si el nodo no dispone de conectividad IPv6 a Internet (es decir, OpenWrt no tiene un gateway IPv6 configurado), el router anunciará las direcciones IPv6 pero no se anunciará como gateway. Esto evita problemas si no hay Internet IPv6, pero no permite a LOR usar conectividad IPv6 (ya que en los routers troncales no existe un gateway, ellos mismos lo son).
Para que el router se anuncie como gateway de todas maneras, se puede configurar un parametro del archivo /etc/config/dhcp
:
config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option dhcpv6 'server' option ra 'server' option ra_management '1' option ra_default '1' # distribuir rutas
Aplicar cambios con /etc/init.d/dnsmasq restart
y /etc/init.d/odhcpd restart
Otra forma de aplicar los mismos cambios pero desde la interfaz LUCI es en Network → Interfaces → lan → Edit
en la sección DHCP server → IPv6 Settings marcar “Always announce default router” y aplicar cambios.