Conceptos Básicos de Redes

¿Qué es una Dirección IP?

Una dirección IP es una cadena única de números, separados por periodos que identifican cada dispositivo en la red. Cada dirección IP está dividida en 4 secciones (octetos) desde 0-255.

The octet breakdown of an IP address and how it totals 4 bytes.

Como se muestra anteriormente, esto significa que cada dirección IP es una dirección de 32-bits, esto quiere decir que hay 232 direcciones, o cerca de 4,300,000,000 direcciones posibles. Como sea, la mayoría de éstas son usadas públicamente para cosas como servidores web.

Esto trae nuestro primer punto clave de direccionamiento de IP: Cada dispositivo en la red tiene que tener una dirección IP única. Dos dispositivos no pueden tener la misma dirección IP, de otra manera pueden ocurrir colisiones.

Desde que hay solo 4-mil millones de direcciones, y más de 4-mil millones de computadoras conectadas al internet, tenemos que ser lo más eficientes posible dando direcciones IP. Esto nos trae direcciones públicas vs. privadas.

Direcciones Públicas vs Privadas

Para ser eficientes con el uso de las direcciones IP, la idea de «Rangos de IP reservados» fue implementada. En resumen, esto significa que hay rangos de direcciones IP que no serán asignados a servidores web, y serán solamente usados por redes locales, como las de su casa.

Punto clave #2: A menos que se esté conectando directamente al módem de tu proveedor de internet básico (sin función de enrutador), su dispositivo va a tener una Dirección IP en uno de estos rangos. Esto significa que en cualquier red local, como: la de su escuela, oficina de trabajo, casa, etc., el dispositivo el 99% de las veces va a tener una dirección IP en un rango enumerado como el siguiente:

Clase

Bits

Inicio de Dirección

Fin de Dirección

Cantidad de Direcciones

A

24

10.0.0.0

10.255.255.255

16,777,216

B

20

172.16.0.0

172.31.255.255

1,048,576

C

16

192.168.0.0

192.168.255.255

65,536

Estos rangos reservados nos permiten asignar una «dirección IP no reservada» a toda una casa, y luego utilizar múltiples direcciones en un rango reservado para conectar más de un ordenador a Internet. Un proceso en el router de internet de la casa conocido como NAT (Network Address Translation), maneja el proceso de mantener un registro de qué IP privada está solicitando datos, usando la IP pública para solicitar esos datos desde internet, y luego pasando los datos devueltos a la IP privada que los solicitó. Esto nos permite utilizar las mismas direcciones IP reservadas para muchas redes locales, sin causar ningún conflicto. A continuación se presenta una imagen de este proceso.

Devices on the private network send their traffic through the NAT device to communicate to the outside network and vice versa.

Nota

Para las redes FRC ® , usaremos el rango 10.0.0.0. Este rango nos permite usar el formato 10.TE.AM.xx para direcciones IP, mientras que usar las redes Clase B o C solo permitiría que un subconjunto de equipos siguiera el formato. Un ejemplo de este formato sería 10.17.50.1 para el equipo FRC 1750.

¿Cómo se asignan éstas direcciones?

Nosotros hemos cubierto lo básico de lo que es una dirección IP, y cual dirección IP usaremos para la competencia FRC, entonces ahora tenemos que discutir como éstas direcciones van a ser asignadas a los dispositivos de nuestra red. Ya establecimos que no podemos tener dos dispositivos en la misma red con la misma dirección IP, entonces necesitamos una manera de estar seguros que todos los dispositivos reciben una dirección sin superponerse. Esto puede ser hecho Dinámicamente (automático), o Estáticamente (manual).

Dinámicamente

Asignar una dirección IP dinámicamente quiere decir que estamos dejando un dispositivo en la red manejar las asignaciones de la dirección IP. Esto se hace mediante el Protocolo de Configuración de Huésped Dinámico (DHCP, por sus siglas en inglés). DHCP tiene muchos componentes a el, pero para el alcance de éste documento, vamos a pensar en el como un servicio que automáticamente maneja la red. Cuando se conecta a un nuevo dispositivo a la red, el servicio DCHP ve el nuevo dispositivo, después le proporciona con una dirección IP disponible y la otra configuración de red necesaria para que se comunique el dispositivo. Esto puede significar que hay veces que no sabemos la IP exacta de cada dispositivo.

¿Qué es un servidor DHCP?

Un servidor DHCP es un dispositivo que ejecuta el servicio DHCP para supervisar la red para nuevos dispositivos que configurar. En negocios más grandes, esto puede ser una computadora dedicada a correr el servicio DHCP y esa computadora puede ser el servidor DHCP. Para redes en casa, para FRC y otras redes pequeñas, el servidor DHCP usualmente corre en un enrutador; en este caso, el enrutador es el servidor DHCP.

Esto significa que si alguna vez está en una situación donde necesita tener un servidor DHCP asignando direcciones IP a sus dispositivos de red, es simple como encontrar el enrutador doméstico más cercano, y conectarlo.

Estáticamente

Asignar direcciones IP estáticamente quiere decir que hay que decir manualmente a cada dispositivo en la red cual es la dirección IP que queremos que tenga. Esta configuración ocurre por un ajuste en cada dispositivo. Deshabilitando DHCP en la red y asignando las direcciones manualmente, tenemos el beneficio de saber la dirección IP de cada dispositivo en la red, pero porque nosotros establecemos cada uno manualmente y no hay servicio dando seguimiento de la dirección IP utilizada, nosotros tenemos que dar seguimiento de esto nosotros mismos. Mientras establecemos direcciones IP estáticamente, tenemos que ser cuidadosos con no asignar direcciones duplicadas, y debemos estar seguros que estamos estableciendo otro ajuste de red (como mascara de subconjunto y puerta de enlace predeterminada) correctamente en cada dispositivo.

Direccionando IP para FRC

Vea IP Networking Article para más información

Combinando Configuraciones Dinámicas y Estáticas

Mientras se está en la cancha, el equipo no debe ver algún problema con tener los dispositivos en modo estático en el rango 10.TE.AM.xx, y la cancha tener que asignar direcciones IP mientras que no existan conflictos de direcciones IP referentes a la sección de arriba.

En los pits, el equipo puede encontrarse con problemas con mezclar dispositivos estáticos y DHCP por la siguiente razón. Como se mencionó arriba, los dispositivos DHCP pueden retroceder a una dirección de enlace local (169.254.xx.yy) si el servidor no está presente. Para dispositivos estáticos, la dirección IP va a ser siempre la misma. Si el servidor DHCP no está presente y la roboRIO, driver station y la laptop retroceden a una dirección de enlace local, los dispositivos ajustados estáticamente en el rango 10.TE.AM.xx van a estar en diferente red y no estarán visibles en esas direcciones de enlace local. Una explicación visual se muestra abajo:

How you can't mix link-local and static IP configurations.

Advertencia

Cuando se esta conectado vía USB a la roboRio, una configuaración Redirecccionamiento de puertos es requerida para entrar a los dispositivos conectados a la radio OpenMesh (en la red verde mostrada abajo).

mDNS

mDNS, o Sistema de Nombres de Dominio de multidifusión es un protocolo que nos permite el beneficio de las características de un DNS, sin tener un servidor DNS en la red. Para hacer esto más claro, vamos a dar un paso para atrás y hablar que es un DNS.

¿Qué es un DNS?

DNS (Sistema de Nombre de Dominio) puede convertirse en un tema complejo, pero para el propósito de este escrito, vamos a ver solamente una visión general del DNS. En las explicaciones más básicas, el DNS es lo que nos permite relacionar nombres conocidos para los humanos para los dispositivos de red a una Dirección IP, y da seguimiento a esas direcciones IP si cambian.

Ejemplo 1: veamos el sitio www.google.com. La dirección IP de este sitio es 172.217.164.132, sin embargo, no es muy fácil de recordar.

Cada ocasión que un usuario escriba www.google.com en su computadora, la computadora se pone en contacto con el servidor DNS (una configuración proporcionada por DHCP!) y pregunta cuál es la dirección IP registrada para www.google.com. El servidor DNS devuelve la dirección IP y luego la computadora puede usarla para conectarse al sitio web de Google.

Ejemplo 2: En la red de cada, tiene un servidor llamado MYCOMPUTER que quiere conectarlo desde su computadora. Su red usa DHCP para que no sepa la dirección IP de MYCOMPUTER, pero el DNS permite que se conecte por solo usar el nombre MYCOMPUTER. Adicionalmente, cuando las asignaciones del DHCP se vuelven a cargar, MYCOMPUTER puede terminar con una dirección diferente, pero porque se está conectando usando el nombre MYCOMPUTER en vez de una dirección IP específica, el registro del DNS fue actualizado y esta disponible aún para conectar.

Éste es el segundo beneficio para DNS, y el más relevante para FRC. Con DNS, si llamamos a los dispositivos por su nombre amigable en vez de su dirección IP, no tenemos que cambiar nada en nuestro programa si cambia la dirección IP. DNS va a dar seguimiento a los cambios y regresará una nueva dirección si esta cambia alguna vez.

DNS para FRC

En la cancha y en los pits, no hay servidor DNS que nos permita realizar las búsquedas como lo haríamos en el sitio web de Google , pero todavía queremos tener los beneficios de no recordar la dirección IP, y no tener que adivinar cada dirección de los dispositivos si DHCP asigna una dirección diferente que esperamos. Aquí es en donde mDNS entra a la acción.

mDNS nos da los mismos beneficios que una DNS tradicional, pero ha implementado una manera que no requiere de servidor. Cuando el usuario quiere conectarse a un dispositivo usando un nombre amigable, mDNS manda un mensaje preguntando el dispositivo con ese nombre para poder identificarse. El dispositivo con el nombre después manda un mensaje de regreso incluyendo su dirección IP para que todos los dispositivos en la red puedan tener la nueva información. mDNS es lo que nos permite atribuir a nuestra roboRIO como roboRIO-TEAM-FRC.local y tenerla conectada en una red DHCP.

Nota

Si el dispositivo utilizado para FRC no soporta mDNS, entonces se le asignará una Dirección IP en el rango 10.TE.AM.20 - 10.TE.AM.255, pero no sabrá la dirección exacta a conectar y no seremos capaces de usar un nombre amigable como antes. En este caso, el dispositivo tendrá que tener ins dirección IP estática.

mDNS - Principios

Sistema de Nombres de Dominio de Multidifusión (mDNS) es un sistema que permite la resolución de nombres de usuario a direcciones IP en redes pequeñas sin servidor con nombre específico. Para resolver el nombre del usuario el dispositivo manda un mensaje de multidifusión a la red preguntando por el dispositivo. El dispositivo después responde con un mensaje de multidifusión con su dirección IP. Los dispositivos en la red pueden tener esta información en su caché para que las solicitudes posteriores para esta dirección se puedan resolver desde el caché sin repetir la consulta de red.

mDNS - Proveedores

Para usar mDNS, se necesita una implementación de mDNS para ser instalada en su PC. Aquí hay algunas implementaciones comunes de mDNS para cada plataforma:

Windows:

  • NI mDNS Responder: Instalado con las herramientas de juego de NI FRC

  • Apple Bonjour: Instalado con iTunes

OSX:

  • Apple Bonjour: Instalado por defecto

Linux:

  • nss-mDNS/Avahi/Zeroconf: Instalado y habilitada por defecto en algunas variaciones de Linux (como Ubuntu o Mint). Puede necesitar que se instale o habilitada en otras (como Arch)

mDNS - Firewalls

Nota

Dependiendo en la configuración de la PC, no se requieren cambios, esta sección está para ayudar con la solución de problemas.

Para que mDNS trabaje bien debe dejar pasar a través de la firewall. Porque el tráfico de red viene de la implementación de mDNS y no directamente de la Driver Station o IDE, dejando esas aplicaciones pasar no puede ser suficiente. Hay dos maneras posibles de resolver los problemas de firewall de mDNS:

  • Añadir una excepción de aplicación/servicio para la implementación de mDNS (NI mDNS Responder es C:\Program Files\National Instruments\Shared\mDNS Responder\nimdnsResponder.exe)

  • Añadir una excepción de puerto para tráfico de/para rangos IP UDP 5353.:

    • 10.0.0.0 - 10.255.255.255

    • 172.16.0.0 - 172.31.255.255

    • 192.168.0.0 - 192.168.255.255

    • 169.254.0.0 - 169.254.255.255

    • 224.0.0.251

mDNS - Ayuda de Navegador

La mayorpia de los navegadores deben de estar disponibles para usar la dirección mDNS para acceder al servidor we de la roboRIO mientras que el proveedor de mDNS esté instalado. Los navegadores incluyen Microsoft Edge, Firefox, y Google Chrome.

USB

Si usa la interface USB, no se necesita ajustes de red (necesita Instalando FRC Game Tools instalado para proporcionar el roboRIO USB Driver). El driver de la roboRIO va a configurar automáticamente la dirección IP del usuario (de la computadora) y la roboRIO y el software enumerado arriba deben de estar disponible para localizar y utilizar su roboRIO.

Ethernet/Inalámbrica

El Programando su Radio habilitará el servidor DHCP en la radio OpenMesh en el caso de uso doméstico (modo AP), si está colocando OpenMesh en modo puente y utilizando un enrutador, puede habilitar el direccionamiento DHCP en el enrutador. El puente está configurado con la misma dirección IP basada en equipo que antes (10.TE.AM.1) y entregará la dirección DHCP de 10.TE.AM.20 a 10.TE.AM.199 Cuando esté conectado al campo, la FMS también entregará direcciones en el mismo rango de IP.

Resumen

Las Direcciones IP son las que nos permiten comunicarnos con dispositivos en la red. Para FRC, estas direcciones estarán en el rango 10.TE.AM.xx si estamos conectados a un servidor DHCP o si están asignadas estáticamente, o en el rango de enlace local 169.254.xx.yy si los dispositivos están ajustados a DHCP, pero no hay servidor presente. Para más información de cómo funcionan las direcciones IP, vea éste artículo de Microsoft aquí.

Si todos los dispositivos en la red soportan mDNS, entonces todos los dispositivos pueden ser ajustados a DHCP y referidos a usar su nombre amigable (ejemplo, roboRIO-TEAM-FRC.local). Si algún dispositivo no soporta mDNS, se necesitará ajustar a direcciones estáticas.

Si todos los dispositivos están ajustados para utilizar DHCP o asignaciones estáticas de IP (con los ajustes correctos estáticos), la comunicación debe funcionar ya sea en el pit o en la cancha sin ningún cambio necesario. Si existe alguna mezcla de dispositivos estáticos y DHCP, entonces los dispositivos estáticos se conectarán en la cancha pero no en el pit. Ésto se puede resolver ya sea ajustando todos los dispositivos a ajuste estático, o dejando los actuales y proporcionando un servidor DHCP en el pit.