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.

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:

  • 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 '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 '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.

:!: Una vez editado el archivo usa: /etc/init.d/network restart para que los cambios se apliquen.

  • 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'
 
# 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 '28'
        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)

  • 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). Sólo si hay problemas para acceder a algunos sitios web, activa “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 '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

Abriendo una IP para recibir tráfico externo

Si quieres abrir una IP para recibir tráfico externo (por ejemplo poner un servidor visible para el resto de la red):

  • 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.

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 '/lor/10.64.64.53' # dominios *.lor
        list server '/laotra.red/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.
 
        # Resolvedores adicionales, por si no tienes internet
        list server '/aso1.enmaskarado.net/10.64.64.53'

:!: Aplica los cambios con /etc/init.d/dnsmasq restart

  • configuraciones/routerprincipal.1535328211.txt.gz
  • Última modificación: 2018/08/26 20:03
  • por strysg