configuraciones:routerprincipal

¡Esta es una revisión vieja del documento!


Configuración para los routers principales

  • Se asume que los routers que desean participar de la sesión troncal (BMX7 desde 2018), tienen capacidad suficiente. De lo contrario, es preferible conectarse a LaOtraRed (abreviado. LOR) mediante otro tipo de sesión.
  • Se asume que la configuración presente no es exacta: mas bien, es una idea general aplicable a distintos tipos de nodo, como un nodo simple o un supernodo. No es recomendable copiar y pegar sin un análisis previo.
  • Se asume que las configuraciones siguientes están enfocadas a LaOtraRed. Si agregas configuración adicional (relacionada a LaOtraRed o no), cosas que-ya-se-asume-que-funcionan (como el firewall) podrían presentar problemas y necesitas saber resolverlos por tu cuenta.

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:

  • Podemos partir las redes que nos asignaron en segmentos más pequeños, si es deseable.
    • En este caso, en IPv4 estamos bien con nuestro /27.
    • En IPv6, partiremos nuestro /56 y tomaremos un /60 (útil si aparece otro router dentro ésa red, así DHCPv6-PD podrá enrutarle automáticamente un bloque IPv6 y nos evitamos ruteo estático). También se puede asignar directamente un bloque más chico, hasta un /64.
  • Editamos LAN y le asignamos a éste las IP gateway de nuestras redes asignadas:
    • 10.64.7.1/27
    • fc01:1934:1:1d20::1/60
  • Creamos una nueva interfaz meshlocal para la sesión de routing LOR: agregamos una interfaz estática sin IPs en LuCi, o podemos editar /etc/config/network:
config interface 'meshlocal'
	option ifname 'eth0.5'
	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.
  • Si estás en la sesión troncal, debes saber que poder hacer uso de anuncios dinámicos en LOR es algo muy serio. Errores como el solapar o impersonar por completo una subnet que no te pertenece, harán que tu sesión BMX7 sea automáticamente rechazada por los nodos vecinos, y ya no podrás conectarte hasta corregir los problemas. Si los problemas son continuos, los nodos vecinos dentro de la Nube LOR pueden expulsarte.

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.5'
	# 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'
 
config plugin
	option plugin 'bmx7_table.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.
config tunDev 'default'
	option tunDev 'miPrefijoV4'
	option tun4Address '10.64.7.1/27'
 
# 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 '30'
        option minPrefixLen '20'
 
# Experimental, PIT-RFC1918
config tunOut
        option tunOut 'ip4lnet'
        option network '10.0.0.0/8'
        option maxPrefixLen '23'
        option minPrefixLen '20'
 
# Experimental: PIT Ciudadano integrado a LOR
config tunOut
        option tunOut 'ip4pub'
        option network '0.0.0.0/0'
        option maxPrefixLen '27'
        option minPrefixLen '24'

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.

La configuración por defecto de OpenWrt es la siguiente:

Zona global: accept/reject/accept (bloquea por defecto el enrutado)

  • Zona LAN, accept/accept/accept (acepta los paquetes que salen de LAN, además de contestar o iniciar conexión desde el router)
  • Zona WAN, reject/reject/accept (por defecto rechazan la entrada y las conexiones iniciales desde WAN)
  • Regla de traspaso (forwarding) desde LAN hacia WAN.

Para LOR, se necesita agregar una sola zona adicional:

  • Zona LOR, accept/reject/accept. No masquerade (NAT), no MTU Fix (TCP-MSS).
    • Ésta zona involucra a todas las piezas de LOR, incluyendo redes abiertas o nubes LOR.
  • Crear una regla de traspaso (forwarding) desde LAN hacia LOR.

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 'lor'
	option network 'meshlocal'
	# La siguiente regla agrega a la zona LOR los túneles IPv4v6 que bmx7 crea:
	list devices 'X7+'
 
config forwarding
	option src 'lan'
	option dest 'lor'

Si quieres abrir una IP para recibir tráfico externo:

  • Agregar una regla de tráfico, sourcezone=LOR, destzone=LAN, destIP=(ipv4), action=ACCEPT.
  • Agregar una regla de tráfico, sourcezone=LOR, destzone=LAN, destIP=(ipv6), action=ACCEPT.

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'
        # Habilitar la resolución de dominios .lor
        list server '/lor/10.64.64.53' # dominios *.lor
        # Servidor DNS global por defecto, si tienes internet.
        list server '8.8.8.8' # DNS de Google. Naturalmente, puedes usar otro.
 
        # Resolvedores adicionales, por si no tienes internet
        list server '/laotrared.enmaskarado.com/10.64.64.53'
        list server '/aso1.enmaskarado.net/10.64.64.53'
        list server '/meshLOR.laotrared.net/10.64.64.53'
  • configuraciones/routerprincipal.1520960838.txt.gz
  • Última modificación: 2018/03/13 13:07
  • por strysg