Principales conceptos sobre redes

IPv4

  1. IPv4 es la versión actualmente utilizada en internet, y en la mayoría de redes privadas.
  2. IPv4 asigna 32 bits a cada dirección de internet aunque por cuestiones de manejo siempre lo vemos expresado como 4 cifras decimales separadas por puntos, donde cada una de ellas esta entre 0 y 255 (8 bits).
  3. Máscara, los primeros bits indican la red a la que pertenecemos y los ultimos el número del dispositivo. Dependiendo de cuantos bits dedicamos para indicar la red y cuantos para el dispositivo nos encontraremos con redes más grandes o más pequeñas. Si usamos 24 bits para la red solo restarán 8 bits para los dispositivos. Por buscar un simil, es igual que los teléfonos donde disponemos de 9 números, si utilizamos solo el primer numero para la red cuando empiece por 6 será un movil y cuando empiece por 9 un fijo y solo tenemos estas dos inmensas redes; pero si usamos 3 números para la red cuando empiece por 924 será un fijo de Badajoz, cuando empiece por 927 será un fijo de Cáceres, ..., tendremos más redes y más pequeñas. La máscara nos indica cuantos bits dedicamos a la red.
  4. Los rangos de ips privadas son 10.0.0.0 — 172.16.0.0 - 172.31.0.0 — 192.168.0.0 - 192.168.255.0. Otros rangos no públicos son 127.0.0.0/8 se usa para loopback (hacer referencia al propio equipo), 169.254.0.0/16 se utiliza para generar ip aleatorias cuando no se recibe respuesta del servidor DHCP.
  5. Dentro de una red hay una dirección de red (primera ip, los bits finales correspondientes a los dispositivos son todos 0), una dirección de broadcast o difusión (ultima ip, los bits finales correspondientes a los dispositivos son todos 1) y direcciones de hosts (resto de ips entre las dos anteriores que son las que asignamos a los dispositivos de la red).
  6. Un router es un dispositivo que separa redes, por tanto, un router no puede tener la misma red en 2 interfaces diferentes. Un switch es un dispositivo que conecta unos equipos con otros dentro de una red, no necesita tener ip.
  7. Puerta de enlace, aunque un dispositivo puede estar aislado del resto del mundo (internet), lo normal es que tenga comunicación a través de otro dispositvo a internet, la ip de este router que nos da acceso al exterior es la llamada puerta de enlace. Por tanto, la puerta de enlace debe ser una ip de nuestra misma red.
  8. Dos equipos no pueden tener la misma ip en la misma red. Si hablamos de internet, hablamos de ips públicas y deben ser unicas en el mundo, si hablamos de redes locales deben ser unicas en esa red local aunque como hay millones de redes locales sus ips están repetidas pero no dentro de la misma red. Para evitar duplicados lo más habitual es tener un servidor DHCP, que es el encargado de asignar ips a los dispositivos que la solicitan y que evita duplicados.
  9. Sería muy tedioso manejas solo número de ips, para facilitar esta labor estan los servidores DNS que traducen los nombres en ips y viceversa. Al configurar las DNS de nuestro equipo podemos poner cualquier ip de un servidor DNS, todas son válidas (aunque las más aconsejables son las de nuestro proveedor de internet). Si no la conocemos suele funcionar poner como DNS la ip de nuestra puerta de enlace.

Principales conceptos de enrutamiento

  1. Un router encamina a los datos por las diferentes redes. La función básica de un router es enviar hacia su destino los datos que recibe de otros dispositivos.
  2. Un router separa redes. Es más si conectamos la misma red en dos interfaces habrá un mal funcionamiento porque el router no sabrá por donde enviar los datos a esa red.
  3. Las redes privadas no se enrutan. Estas redes pueden ser utilizadas por todo el que quiera, por tanto, están en multitud de ubicaciones diferentes, de hecho, todos tenemos una red privada en casa con nuestra ADSL y lo más probable es que sea la 192.168.0.0/24
  4. Las redes conectadas directamente son aprendidas automaticamente por el router. NO configuramos NADA.
  5. Cada router tiene una tabla de enrutamiento donde están detalladas las diferentes redes y por donde se va a cada una de ellas. Hay dos clases de enrutamientos (o formas de rellenar esta tabla en el router):
    • Estático. Configuramos manualmente, una a una, las rutas de la tabla de enrutamiento en cada uno de los routers de la organización.
    • Dinámico. No añadimos las rutas manualmente a la tabla de enrutamiento. Cada router de la organización comunica al resto de routers las redes que estan conectadas directamente y aprende de los demás las redes que ellos tienen conectadas.
  6. Un router tendrá una tabla de enrutamiento con una relación de redes y el dispositivo por el que llegar a cada una de ellas. Pero también tendrá una ruta predeterminada o por defecto (normalmente internet - 0.0.0.0 -) donde enviará todos los datos que tengán como destino una red de la que desconozca la forma de llegar a ella.
  7. Sistema autonomo. Es un grupo de redes que están gestionadas conjuntamente, es decir, es el grupo de redes a cargo de un ISP o una gran organización. Un sistema autónomo tiene un número único que lo identifica y que es asignado por el IANA. Dicho de otra forma, internet es un gran conjunto de sistemas autónomos, que a su vez son un conjunto de redes.

Traducción de direcciones (NAT)

  1. Hay varios tipos:
    NAT estática: una ip externa siempre es traducida por la misma ip interna
    NAT dinámica: varias ips externas son traducidas por muchas ips internas (no siempre a una ip interna le corresponde la misma externa). No hay traducción de puertos. El problema de esta técnica es que si tenemos 3 ips externas solo podrá haber 3 equipos internos a la vez accediendo al exterior.
    PNAT dinámica: varias ips externas para muchas ips internas. Pero en este caso si hay traducción de puertos, esto evita que haya equipos internos que no puedan acceder al exterior porque se agoten las ips externas. Esta técnica esta activada por defecto en todos los routers caseros (ADSL), donde las ips externas son solo una.
  2. La forma de NAT más habitual es una ip pública y varias ips privadas, es lo que hay en el típico router ADSL. Este router tiene constantemente una tabla NAT donde lleva una relación de (ip privada+puerto privado= ip pública + puerto público), evidentemente, la ip pública siempre es la misma, por tanto juega con los diferentes puertos públicos, cada puerto público apunta a un equipo en concreto de nuestra red privada (ip privada) y a una aplicación en concreto dentro de este equipo (puerto privado). Es decir que si tenemos dos veces cargado el Internet Explorer en nuestro equipo de casa, nuestro equipo de casa tendrá un puerto privado diferente para cada uno de los Explorer en funcionamiento, pero nuestro equipo solo tendrá una ip privada. Cuando nuestros Explorer pidan datos al exterior nuestro router ADSL anotará ip privada+puerto privado y le asignará un puerto público, solicitará la información al exterior poniendo como remite su ip pública y el puerto público asignado a ese Explorer en concreto, para saber cuando llega la respuesta a quien enviar ese información.
  3. Abrir puertos consisten en hacer una entrada fija en la tabla NAT. La forma más habitual es que el puerto público X este siempre asociado a un puerto X de cualquiera de los equipos de la red privada, por ejemplo, si instalamos una web en nuestra casa (aplicación que escucha en el puerto 80) lo normal es que asignemos el puerto 80 público al puerto 80 del equipo privado que aloja la página (ip privada), es decir, abrimos el puerto 80.

Conmutación y LAN virtuales

  1. Las VLAN son divisiones lógicas de las redes, por poner un simil, es como si rompieramos el swicht en varios más pequeños, uno por cada VLAN
  2. Cada interfaz puede funcionar en una VLAN o ser un interfaz troncal (por el cual pueden circular paquetes de diferentes VLAN). Los paquetes que circulan por un enlace troncal tienen encapsulada la información sobre la VLAN a la que pertenecen.
  3. Si en un switch todos los enlaces pertenecen a la misma VLAN no es necesario hacer nada, puesto que el switch realizará su función habitual recibir información y enviarla a su destino
  4. Enrutamiento de VLANs. Como las VLANs dividen el trafico, si necesitamos comunicar estas VLAN tendríamos que enrutar el trafico entre ellas, para ello existe Router-on-a-stick que conectando un enlace troncal a un router y creando subinterfaces (interfaces virtuales) en este podemos mediante un solo cable enrutar el trafico entre todas las VLANs.
  5. VTP es un protocolo utilizado para propagar la información de las VLAN. STP es un protocolo utilizado para evitar bucles en las conexiones de switchs
  6. Agregación de enlaces se utiliza para hacer conexiones más rápidas mediante la fusión de varios enlaces en uno solo, es decir, si conectamos 2 switchs mediante 5 cables, estos funcionarán como uno solo con 5 veces más velocidad (si no configuramos la agregación el protocolo STP anularía 4 de ellos para evitar bucles)

Listas de Control de Acceso (ACL)

  1. Una ACL es una relación de reglas (no una sola regla).
  2. Al aplicar una ACL se comprobando una a una las reglas, cuando llegamos a una regla que se debe aplicar terminamos, es decir, a partir de esta regla se ignoran todas las reglas restantes.
  3. En una ACL primero se indican las reglas más concretas y después las más genéricas (Por ejemplo, si queremos bloquear una red entera y dentro de esa red permitir un equipo, la regla del equipo va antes que la regla de la red, puesto que si lo hacemos al contrario se aplicaría la regla de red y no se leería la regla del equipo)
  4. En la mayoría de los sistemas todo lo que no está indicado en las reglas de la ACL se bloquea, por tanto en estos casos, siempre habrá que poner al menos una regla permisiva porque sino todo es negado.
  5. La ACL se aplica en un interfaz y se puede aplicar en dirección salida o en dirección entrada.

IPv6

  1. IPv6 asigna 128 bits a cada dirección de internet aunque por cuestiones de manejo siempre lo vemos expresado como cifras hexadecimales separadas por dos puntos. Se pueden eliminar los ceros de la izquierda en cada bloque y si hay muchos ceros seguidos se pueden sustituir por :: (solo 1 vez).
  2. Las redes suelen tener una máscara /64, donde los primeros 64 bits determinan la red (este prefijo es anunciado por los routers de la red) y los ultimos 64 bits determinan el equipo dentro de la red. La forma más habitual de asignación de ips es mediante EUI-64, el equipo fabrica su propia ip a partir del prefijo de red al cual añade la MAC (48 bits) con las cifras hexadecimales FFFE (24 bits) intercaladas en la MAC.
  3. En IPv6 utilizaremos ips públicas (Unicast global), las ips "privadas", que hay varios tipos, se usarán para procesos internos de la red y no se enrutan fuera de ella. No habrá por tanto NAT, ni habrá que abrir puertos en los routers.
  4. El enrutamiento de IPv6 está enfocado de forma jerarquica, del prefijo de red habitualmente los primeros 48 bits sirven para crear una entrada en las tablas de enrutamiento y los 16 bits siguientes para crear una jerarquia dentro de la organización. El ISP asigna una subred /64 a sus clientes.

Comandos IOS (Simbolo sistema Cisco)

  1. Comandos básicos:
    enable Es el primer comando que teclearemos nos pasa del modo usuario (aparece el prompt Router>) a modo privilegiado (aparece el prompt Router#)
    configure terminal Nos pasa del modo privilegiado al modo de configuración global ( aparece Router(config)#)
    interface xxxx Nos pasa a configurar una interfaz (aparece Router(config-if)# )
    exit Nos devuelve a un nivel inferior, si estamos en Router(config)# nos devuelve a Router#
    ? Nos muestra una lista de los comando que tenemos disponibles en ese nivel
    show running-config Nos permite ver (desde Router#) la configuracion del router, es decir, desde aquí podemos repasar los comandos que hemos introducido en el router.
  2. Comando enrutamiento estático: ip route red mascara ip_siguiente_salto / interfaz_de_salida Introduce una ruta estática en la tabla de enrutamiento indicando red y la ip del router por el que se llega a ella (también se puede optar por poner la interfaz de salida pero lo más normal es la ip del siguiente salto)
  3. Comandos RIPv2: Para entrar en la configuración tecleamos router rip
    En todos los routers: version 2 (indicar version de rip), no auto-summary (evitar resumir las rutas según clases) y publicar las redes que conocemos con network red
    En las interfaces finales: passive-interface interfazfinal (evitar que el protocolo RIP se propague en direcciones donde ningún dispositivo va a utilizar su información)
    En router de borde que es la salida a internet hay que publicar la red internet:
    FORMA1 ip route 0.0.0.0 0.0.0.0 siguientesalto o interfaz y despues al introducir las redes la propagamos con default-information originate
    FORMA2 redistribute static y despues ip route 0.0.0.0 0.0.0.0 siguientesalto o interfaz
  4. Comandos EIGRP: Para entrar en la configuración tecleamos router eigrp numero_sistema_autonomo
    En todos los routers: no auto-summary y publicar las redes que conocemos con network red máscara. Para publicar internet en el router de salida utilizamos redistribute static e insertamos una ruta estatica con internet.
  5. Comandos OSPF: Para entrar en la configuración tecleamos router ospf numero_proceso
    En todos los routers: publicamos las redes conectads network red wildcard area 0 (ospf permite crear areas si tenemos muchas redes pero sino basta con indicar area 0 para decir que no vamos a trabajar con areas)
    En las interfaces finales: passive-interface interfazfinal. Para publicar internet utilizamos default-information originate solo en el router de salida (este comando no funcionará si no tenemos una ruta estatica a 0.0.0.0).
  6. Comandos BGP: Este protocolo es usado para comunicar entre diferentes sistemas autónomos, estos pueden tener internamente protocolos diferentes.
    En cada router: router bgp NUMEROSISTEMAAUTONOMO y dentro de este nivel:
                  Por cada vecino contiguo: neighbor IPSIGUIENTESALTO remote-as NUMEROSISTEMA
                  Por cada red conocida (las correspondientes a nuestro sistema autonomo y las que conectan unos
                  sistemas autonomos con otros): network RED mask MASCARA también podemos optar por el comando
                  redistribute que nos facilitará la tarea (ojo esto no funciona con RIP).
  7. NAT:
    Hay tres tipos de NAT que podemos realizar, en todos ellos debemos indicar la interfaz interna con ip nat inside y la externa con ip nat outside.
    a) para una NAT estática: utilizamos ip nat inside source static ipinterna ipexterna
    b) para una NAT dinámica:
    Para indicar las ips internas utilizamos una lista de acceso:
          ip access-list standard NOMBRE
          permit 192.168.0.0 0.0.0.255
          exit

    Para indicar las ips externas utilizamos una pila:
           ip nat pool NOMBRE primera_ip ultima_ip netmask MASCARA
    Para indicar la traducción a realizar:
           ip nat inside source list IPSINTERNAS pool IPSEXTERNAS
    c) para una NAT dinámica con sobrecarga utilizamos los mismos comandos que para la NAT anterior, pero en la traducción añadimos overload:   ip nat inside source list IPSINTERNAS pool IPSEXTERNAS overload
    En esta última opción, si queremos abrir puertos ip nat inside source static tcp ipinterna ipexterna puerto
  8. Protocolos de la capa aplicación:
    Para crear un servidor DCHP en un router:
          ip dhcp pool NOMBRE
              network ip.de.red mascara.de.red
             default-router ip.puerta.de.enlace
             option servicio ip ip.del.servidor (activar servicio, por ejemplo 150=TFTP)
             dns-server x.x.x.x
             domain-name xxx.com
  9. Comandos conmutación y VLAN.
    Agregación de enlaces. Es la combinación de varias conexiones como si fueran una sola
    interface range fastethernet0/x - y marcamos el grupo de interfaces a programar
    switchport mode trunk ponemos en modo troncal estos interfaces
    channel-group X mode on asignamos numero al conjunto
    VTP. Creamos un servidor que informará al resto de las VLAN que tenemos:
    En el servidor:
    vtp mode server
    vtp domain nombre
    asignamos el nombre de dominio
    vlan numero creamos la vlan
    name nombre asignamos nombre a la vlan
    ahora con interface range ... y switchport mode access asignamos a varios interfaces la vlan con switchport access vlan xxx
    En el cliente:
    vtp mode client

    Ponemos el mismo nombre de dominio y solo necesitamos asignar la vlan.
    VLANs en router
    interface f0/0.xxx creamos subinterfaz
    encapsulation dot1Q YY  encapsulamos la vlan YY
    ip address z.z.z.z mascara asignamos ip a la subinterfaz
  10. VoIP
    telephony-service para entrar en la configuración del Call Center
      max-ephones numero maximo telefonos, depende de la RAM del router
      max-dn numero maximo de numeros de telefono
      ip source-address x.x.x.x port 2000 asignador de numeros, puerto por defecto para la telefonía
      auto assign x to y asignacion automatica de telefonos
    Para crear la agenda usamos los pares:
      ephone-dn numero
        number numero telefono
    En el router tenemos que activar DHCP y poner la linea:
      option 150 ip x.x.x.x para activar TFTP para que telefonos adquieran firmware y archivos de configuracion desde el router para VoIP
    En el switch debemos crear una VLAN para voz y asignar a los puertos:
      switchport voice vlan xx
  11. Comandos ACLs:
    ip access-list standard/extended XXXXX para crear una ACL
    deny para bloquear trafico (en el caso de ACLs extendidas podemos indicar: origen destino protocolo, puerto)
    permit para permitir trafico
    ip access-group xxxx in/out para aplicar la ACL en una interfaz en concreto (hay que elegir entrada o salida)
    A la hora de expresar los equipos que queremos bloquear podemos utilizar:
    -la wildcard (es decir, lo contrario de la máscara, si la máscara tiene bits a 1 al principio y a 0 al final, la wildcard tiene los bits a 0 al principo y los bits a 1 al final) que nos permitirá hacer referencia a grupos de equipos.
    -host ip (nos permite indicar un equipo en concreto a bloquear, equivale a ip 0.0.0.0) -any (nos permite indicar cualquier equipo, equivale a 0.0.0.0 255.255.255.255)
  12. Comandos IPv6:
    ipv6 unicast-routing este comando indica al router que trabaja con ipv6 unicast
    En las interfaces:
        ipv6 enable para activar ipv6
        ipv6 address red/64 eui-64 para configurar la ip
        ipv6 rip enrutamientodinamico enable para añadir la red conectada a RIPng
    ipv6 route para indicar rutas estáticas
    ipv6 router rip/ospf para configurar enrutamiento dinámico RIPng o OSPFv3

 

Firmware libres: dd-wrt, openwrt, tomato, etc.

  1. Son firmware desarrollados con linux que se pueden instalar en multitud de routers multifunción. De ahí que a continuación se muestre un resumen de los comandos.
  2. dd-wrt esta basado en openwrt, necesita más RAM, es más fácil de instalar y de manipular, a diferencia de openwrt se instala por defecto la interfaz web.
  3. Básicamente el router multifunción son tres dispositivos en uno: un router, un switch y un punto de acceso.
    El switch esta dividido en los puertos 0-3 (En el exterior están numerados al revés) que son la red LAN y el puerto 4 (en el exterior etiquetado como WAN). El puerto 5 esta conectado al puerto eth0 del router. Estos puertos desde el 0 al 5 son los 6 puertos que tiene el switch.
    Para separar el tráfico WAN del tráfico LAN se utilizan dos VLANs. La VLAN0 es el trafico LAN y VLAN1 es el tráfico WAN. Esto hace que parezcan dos redes completamente independientes. El eth0 está compuesto de dos subinterfaces eth0.0 y eth0.1

    OJO, en la documentación de dd-wrt eth0.0 se representa con VLAN0 y eth0.1 se representa con VLAN1

    La conexión entre el switch (port 5) y el router (eth0) es trunk (por ella circulan multiples VLANs), Es decir los datos van etiquetados (se etiquetan al entrar y se desetiquetan al salir) con la VLAN a la que pertenecen cuando circulan por esa conexión. El trafico no etiquetado es asociado por defecto a la VLAN0 (VLAN nativa). El tráfico entre las dos VLAN es procesado por el router (aquí podemos desarrollar iptables y demás).

    El puerto inalambrico eth1, como no forma parte del switch es puenteado (con br0) a la VLAN0 y tratado como otro puerto más en el switch.

    Esta es la configuración por defecto, a partir de aquí podemos cambiar las asignaciones de las VLANs y crear otros subinterfaces, etc.
    Ojo algunas versiones difieren de esta configuración por defecto.

Comandos linux (dd-wrt)

  1. Comandos básicos de sistemas dd-wrt:

    cat ver el contenido de un fichero
    more visualiza un archivo con pausas
    grep <texto> <archivo> busca un texto en un archivo
    ls muestra el contenido de un directorio. Con ls -al vemos el directorio detallado
    cd cambiar de directorio
    mkdir crear un directorio
    rmdir borrar un directorio
    echo "texto" escribe texto en pantalla
    vi editor con <ins> escribimos <Esc> pasamos a modo comando :wq grabar y salir
    ipkg instalacion de software adicional

  2. Operaciones especiales con comandos
    Redireccionamiento de la salida: echo "texto" > archivo guarda el texto en un archivo
    Adición de salida: echo "texto" >> archivo agrega el texto en un archivo
    Tuberias: la salida de un comando es la entrada del siguiente cat archivo | more
  3. Comandos básicos de redes

    ping para comprobar la comunicación con otro dispositivo
    ifconfig para mostrar la configuración de red.
    ifconfig interfaz up/down para activar/desactivar interfaz.
    netstat para ver las conexiones abiertas. opciones a n r
    traceroute para saber que routers atraviesa hasta el destino
    hostname para ver el nombre del router
    mount ver discos fisicos conectados. cat /proc/mounts (ver discos y directorios montados)
    nvram | more ver el contenido de nvram.La nvram (no volatil RAM) guarda los valores que se utilizan al inicial el router.
    nvram get para obtener un valor
    nvram set para cambiar un valor
    ip (el comando ip tiene una gran variedad de opciones, en resumen todo lo relacionado con interfaces, rutas, etc..)

  4. iptables. Es un sistema cortafuegos de linux.

    iptables -t [tabla] -[AIRDLFZNXP] [regla] [criterio] -j [acción]
    Hay 3 tablas ( -t nombretabla) con las reglas a aplicar: filter, nat y mangle.
    a) filter: Para los paquetes que van a la propia maquina:

    a.1) se aplican las reglas INPUT para los paquetes entrando en el sistema
    a.2) se aplican las reglas OUTPUT para los paquetes creados por el sistema y enviados
    a.3) se aplican las reglas FORWARD para los paquetes que pasan a traves de nuestro sistema

    b) nat: Si nuestra maquina realiza NAT para dar el acceso de red privada a otra exterior tendremos antes de las reglas filter unas reglas NAT para los paquetes que seran modificados por el sistema (PNAT:cambio de ip y puertos) que son:

    b.1) PREROUTING para los paquetes antes de enrutarlos
    b.2) POSTROUTING para los paquetes después de enrutarlos

    c) mangle. antes de las reglas de NAT se pueden meter reglas de tipo MANGLE, destinadas a modificar los paquetes (no son de uso habitual).

    c.1) INPUT cambia valores entrando en el sistema
    c.2) OUTPUT cambia valores saliendo del sistema
    c.3) FORWARD cambia valores de un interfaz a otro del sistema
    c.4) PREROUTING cambia valores antes del proceso de enrutamiento
    c.5) POSTROUTING cambia valores despues del proceso de enrutamiento

    Las acciones posibles son : ACCEPT, REJECT, DROP, REDIRECT, LOG (aceptar, eliminar con aviso al emisor, eliminar sin aviso, redireccionar, añadir log para analisis posterior)

    iptables -nvL vemos las reglas
    iptables -t nat -nvL vemos las reglas nat

I.E.S. Suárez de Figueroa. Manuel Castaño Guillén