Configuración de redes 1ª Parte

Para administrar un sistema que preste un servicio de red, aparte de los conocimientos básicos de administración del propio servicio, es necesario conocer a fondo cómo configurar la propia red. En este post revisaremos una parte básica de una configuración de red y aprenderemos a administrarla dentro de una red supervisada. Seguramente todo lo aparezca en el post no se puede utilizar en la realidad ya que el entorno en el que se hace es muy controlado pero así es como me han enseñado a hacerlo.



En estos post me centraré ne las capas de transporte y red, también conocidas como TCP/IP.

Una red basada en IP se caracteriza por lo siguiente:
  • Cada interface debe tener asignado un número de IP, que debe ser único. 
  • Un ordenador, aunque sólo tenga una tarjeta de red, puede tener varios interfaces, y por lo tanto varias IPs. 
  • Los datagramas IP se transmiten encapsulados en un protocolo de nivel inferior (ethernet, wifi, etc.). 
  • Diremos que una IP es directamente alcanzable si para llegar a ella basta con emplear el protocolo de nivel inferior. 
  • Si una IP no es directamente alcanzable( la dirección está dentro de la red local), al menos un equipo directamente alcanzable se encargará de encaminar los datagramas hacia dicha IP: a dicho equipo lo llamaremos gateway. 
  • El gateway estará conectado a otra red (por una interface), con lo que podremos construir una red compleja y fácilmente expansible.
En la práctica la cosa es diferente, para que un equipo quede conectado en una red IP es necesario que:
  • Dicho equipo conozca que IPs son directamente alcanzables. 
  • Dicho equipo conozca que IP actuará de gateway para conectarla con el resto de la red. 
  • Las demás IPs de la red conozcan una ruta hacia el gateway. Este aspecto es muy importante y suele ser una fuente de errores.
Formato IPv4

  • Una IPv4 tiene 32 bits y se escribe con un formato x.x.x.x donde x es el número de un byte. 
  • Dada una IP, las direcciones alcanzables vienen determinadas por las máscaras de red. Por ejemplo en el caso que nuestra IP sea 192.168.24.5/24 significa que los primeros 24 bits serán iguales y solo variarán los 8 siguientes por lo tanto esos serán los directamente alcanzables. 
  • Teniendo la dirección anterior podemos averiguar la dirección de red que sería la primera dirección de nuestra red, es decir 192.168.24.0/24 y la última es la dirección de broadcast 192.168.24.255/24. En el caso de no especificar una máscara de red podemos deducir una más cara implícita según la clase de esa red(A, B, C, etc.) 
  • Dentro del espectro de direcciones de Interne tenemos direcciones IPs públicas, son las accesibles directamente desde internet, y las privadas, que no lo son. Estas direcciones privadas permiten crear subredes internes separadas de las directamente accesibles desde internet.
Con el comando ifconfig (Linux, Mac) o ipconfig (Windows) podemos ver las información de red de nuestro dispositivo. Entre esa información se encuentra la ip de nuestro ordenador, la máscara de red, la dirección MAC, etc. También podemos ver que hay varias interfaces por lo menos en caso de Linux y MAC y que una de ellas se llama lo. Esta interfaz es la que nos permite mandarnos mensajes a nosotros mismos.

Resolución de Direcciones

  • El nivel de enlace no entiende las direcciones de IP, por lo que necesita una dirección física ( MAC en el caso de Ethernet).
  • Cuando un ordenador con una IP necesita acceder a otra IP de su red, debe acceder al nivel físico a través del protocolo ARP. Podemos ver las direcciones accesibles desde nuestra IP con el comando
arp -a
CONFIGURACIÓN DE RED - EJEMPLO -


En este caso trabajaré con máquinas virtuales. El sistema operativo que utilizaré es un linux sin interfaz gráfica. Todo el trabajo que voy a hacer será a través de interfaz gráfica e iré explicando lo que he hecho y como tiene que quedar. El objetivo principal es crear una red como la del siguiente dibujo.





Tenemos que conectar 2 máquinas virtuales a una tercera que actuará de gateway y esta será las que se conecte a internet.


Lo primero que tenemos que mirar es que las máquinas virtuales tengan las interfaces de red adecuadas para este ejemplo. En el caso de la vbox tenemos que tener un solo adaptador que se conectará a la red interna con el nombre intnet.


En el caso del gateway tendremos 2 adaptadores, uno se conectará como los demás, a la red interna y el otro estará conectado al adaptador puente al controlador que tengamos en nuestro ordenador, dependerá si la conexión que tenemos en nuestro ordenador anfitrión es a través de WIFI o por cable.


En el caso de que no hayáis usado nada de Linux( una locura en el caso de que hayas estudiado informática alguna vez) aquí dejo una lista de comandos muy básicos para poder empezar a trabajar con Linux.




En el caso de que utilicéis otras distribuciones de Linux como por ejemplo CentOs en vez de utilizar apt-get deberíais utilizar yum.


Además de los comandos básicos también tenemos los comandos de red.


Fichero de configuración de red

  • /etc/network/interfaces : Fichero con configuración explícita para cada interfaz de red disponible. 
  • /etc/hostname: Nombre de la máquina. 
  • /etc/hosts: Fichero con las correspondencia de nombres de máquinas y direcciones IO prioritario a las resoluciones de nombres mediante DNS. 
  • /etc/resolv.conf:Fichero con la lista de servidores de nombres disponibles.
Lo primero es asegurarse de que los nombres de las máquinas virtuales son diferentes. Para ello utilizaremos la siguiente secuencia de comandos en cada máquina:
sudo su                   #Con la contraseña de usuario nos comvertimos en administradores
nano /etc/hostname        #En este fichero cambiaremos el nombre del ordenador(vbox1, vbox2, gateway).
nano /etc/hosts           #En este archivo asociaremos la dirección 127.0.1.1 al nombre de la máquina, no tocaremos nada más.
service hostname restart  #Reiniciaremos el servicio para guardar los cambios.
hostname --fqd            #Comprobaremos que el nombre se ha cambiado correctamente
Configuración de las máquinas vbox1 y vbox2


Ahora configuraremos vbox1 y vbox2 para que tengan las mismas ip que la imagen de arriba.

Lo primero es ver la interfaz en la que estamos trabajando. Para ello vamos a utilizar el comando
ifconfig -a
El resultado que aparecerá en pantalla es algo parecido a lo siguiente:


Como podéis ver tenemos dos interfaces, la primera es la interfaz de red normal y la segunda es una interfaz cuyo objetivo es poder mandar mensajes al propio ordenador. Sabiendo ya que la interfaz que nos interesa es eth0 podemos empezar a cambiar la configuración. Para ello vamos a modificar el fichero /etc/network/interfaces (yo utilizaría el comando nano o gedit) y le vamos a poner lo siguiente:
auto lo
      iface lo inet loopback

auto eth0
      iface eth0 inet static
            address 192.168.0.100
            netmask 255.255.255.0
            gateway 192.168.0.1
Ahora tenemos que reiniciar la configuración de la interfaz para que se guarden los cambios.
/etc/init.d/networking restart
Una vez ejecutado esos comandos podemos ver que los cambios se han ejecutado utilizando otra vez ifconfig y haciendo la comparación.


Estos cambios tenemos que repetirlos en la vbox2 pero con la ip correspondiente.


Una vez configuradas deberías poder hacer un ping entre las dos máquinas a través de la ip.

Configuración del gateway

Lo primero que tenemos que hacer es identificar las dos interfaces de red y configurar la interfaz interna como hemos hecho con las máquinas virtuales anteriores pero en este caso con la dirección 192.168.0.1 que es la que utilizan de gateway las máquinas anteriores.


Para ello utilizaremos el siguiente código en /etc/network/interfaces suponiendo que la interfaz interna es eth0.
auto lo
      iface lo inet loopback

auto eth0
      iface eth0 inet static
            address 192.168.0.1
            netmask 255.255.255.0
Ahora vamos a configurar la interfaz que se conecta con el exterior. Para ello también tenemos que modificar el archivo /etc/network/interfaces y poner lo siguiente.
auto ethX
iface ethX inet static
     address 150.128.4X.YYY     #En mi caso esta es la red en la que me encuentro aunque en tu caso puede ser diferente
     netmask 255.255.240.0      #Esta red tiene una máscara de 20 por eso es 255.255.240.0 es decir 20 (1) y 12(0)
     gateway 150.128.48.1       #Este es el gateway de la red
Con esto tenemos la salida a la red casi configurada. El único problema es la existencia de un dns para resolver los nombres. Ese dns se encuentra en 150.128.33.23 aunque seguro que en vuestro caso es diferente, ten cuidado.

Para ello vamos a poner el servidor en la configuración de la red que se conecta al exterior y vamos a reiniciar la máquina.

Para poner el dns en la configuración tenemos que añadir dentro de la interfaz que se conecta el siguiente comando.
. . .
iface ethX inet static
     . . .
     dns-nameservers 150.128.33.23   #En vuestro caso la dirección que sea
Con esto el gateway podrá acceder al exterior y las máquinas internas podrán acceder al gateway pero no al exterior. Para esa configuración hay que tocar otros archivos que veremos posteriormente.

Bueno espero que os haya ayudado. Hasta la próxima.

Comentarios

Entradas populares de este blog

Opinión sobre MIT App Inventor vs Android Studio

Node.js is loading...

Atasco solucionado (sed)