Translate

25 jul 2014

Enrutamiento RIPv2

A la hora de utilizar el protocolo de enrutamiento RIP, cualquiera que maneje medianamente bien el direccionamiento IPv4 no va a tener problemas, pero en redes más complejas, sí pueden surgir complicaciones. Esto se debe a que el enrutamiento RIP tal cual, no funciona con subredes (lo cual resulta lógico), y vamos a ver por qué:


Donde la red conectada al Router0 es la 192.168.1.0 con máscara 255.255.255.0 (siendo la puerta de enlace la 192.168.1.1 y cada equipo el 192.168.1.2 y 192.168.1.3). Esta primera red no se dividirá en subredes, sino las siguientes.

La red de los cables serial, que conecta los routers, sera la 10.0.0.0 con máscara 255.255.255.252, de esta forma, la red que conecta el router0 con el router1 tiene las direcciones 10.0.0.1 y 10.0.0.2, mientras que la red que conecta el router0 y el router2 tiene las direcciones 10.0.0.5 y 10.0.0.6 (hay que recordar que la 10.0.0.3 es la dirección de broadcast de la primera subred y la 10.0.0.4 es la dirección de red de la segunda subred).

Y la tercera red, la que se divide en dos subredes, abarca las dos últimas de arriba, siendo la del router1 la 192.168.2.0 con máscara 255.255.255.252, teniendo de puerta de enlace la 192.168.2.1 y el servidor la 192.168.2.2. La subred del router2 tiene como puerta de enlace la 192.168.2.5 y el equipo la 192.168.2.6, porque sucede lo mismo que con la red anterior.

Ahora viene la parte del enrutamiento, donde tendremos que ir router a router indicando las redes que se conectan directamente a ellos, como si fuese enrutamiento RIP normal:

Router0:

Router1:

Router2:


Hasta ahora no debería dar ninguna clase de problemas, porque aparentemente ha pillado las redes bien, pero vamos a enviar un par de paquetes entre distintas subredes y comprobemos las tablas de rutas, a ver qué es lo que muestran:

Nos ha detectado las subredes de la red 10.0.0.0 porque están conectadas directamente, pero parece no reconocer las subredes de la red 192.168.2.0, aunque sí las identifica. Vamos a comprobar ahora en los otros router sus respectivas tablas:

Para nuestra sorpresa, podemos ver que este router solamente ha detectado su subred, es decir, la que está conectada directamente por el cable ethernet. Algo indica aquí que esto no va bien, porque de hecho, si enviamos paquetes desde la subred que no ha detectado a cualquier otra red, dará error, y esto es porque hemos configurado primero el RIP en este router y por tanto, las tablas de rutas que no admiten subredes (el protocolo en sí no lo admite, ya que no tiene en cuenta las máscaras, sino la red: "network *dirección IP*") se han quedado con la primera red que les ha sido enviada.

Ahora bien, ¿cómo solucionamos esto? Es muy sencillo, basta ir router por router para indicarle que queremos usar la versión 2 del protocolo RIP:

En mi caso he necesitado reiniciar el Packet Tracer en sí, ya que a la primera no me pilló la versión 2, aunque también podemos reiniciar las tablas de rutas con el comando "Router# clear ip route *", de esta forma enviamos mensajes de forma local (en la red del router0, la de abajo) para que el RIP vuelva a actualizar sus tablas de rutas. Ahora, si vamos al router1 otra vez y miramos las tablas de rutas tras haber enviado los mensajes para configurar el RIP, veremos que ha detectado ambas subredes:

Y en comparación con el RIP en su primera versión, vemos que nos detecta todas las subredes del plano. Espero que os haya gustado, un saludo ^^

22 jul 2014

Subnetting

A la hora de diseñar una red podemos encontrarnos con que necesitamos muchísimas redes diferentes, ya sea por interfaces en los que no hay equipos, para conectar redes distintas o porque el plano de la red es muy extenso. Lo normal, para la gente que sabe direccionamiento IP básico, es utilizar cientos de redes de la clase que crean mejor. Sin embargo, hay una cosa en este mundo de las redes informáticas llamada Subnetting, la cual consiste en dividir una red en muchas más redes sin alterar su clase.

Vamos con un ejemplo más práctico, si tenemos la red 192.168.1.0 con máscara 255.255.255.0, tendremos como máximo hasta 254 equipos en esa misma red (hay que recordar que la dirección 192.168.1.255 es la dirección de broadcast y no se puede asignar), pero si en la red solo necesitamos 2 equipos nada más, estaríamos tirando a la basura un total de 252 direcciones. Para evitar esto, se recurre al subnetting, o subredes, que consiste en dividir esa red modificando su máscara.

192.168.1.0 255.255.255.0 = 255 direcciones posibles

192.168.1.0 255.255.255.252 = 2 direcciones posibles

Como se puede ver, la segunda máscara ha variado y en lugar de tener 0 en el último byte, ha pasado a tener 252. Esto traducido a binario sería: 1111 1100; hay que recordar también que los bits a 1 de la máscara indican qué parte corresponde a la red, y los bits a 0 indican qué parte corresponde a los equipos. Al asignarle esta máscara, con 252 en el último byte, hemos cogido 6 bits para la red, dejando solamente los últimos 2 para los equipos. Por tanto, la dirección de broadcast variará, y esta dirección indicaba la cantidad máxima de equipos en esa red.; por tanto esta dirección ahora será: 192.168.1.3

"¿Pero por qué 3? Sigo sin comprenderlo"; es muy sencillo, si el byte completo era 255, restándole las 252 direcciones que hemos suprimido, tendremos 3, pero no hay que olvidar que la última dirección es la de broadcast y no es asignable, por tanto solo podremos asignar las direcciones:

192.168.1.1 255.255.255.252

192168.1.2 255.255.255.252

Esta red, por tanto, la hemos dividido de tal forma que solo podremos tener dos equipos en ella, y si queremos gestionar otra red diferente en otro router, basta con seguir la cadena de esta (es decir, la siguiente subred) en lugar de emplear otra completamente diferente; la siguiente subred sería: 192.168.1.4 255.255.255.252

Donde solo podemos asignar las direcciones 192.168.1.5 y 192.168.1.6

Y así sucesivamente.

Vamos a probarlo con un ejemplo práctico usando enrutamiento estático, y comprobemos finalmente las tablas de rutas:

La red conectada al router 0 será la 192.168.5.0 con máscara 255.255.255.248 (teniendo los equipos como puerta de enlace la IP 192.168.5.1)

La red conectada al router 1 será la 192.168.5.8 con máscara 255.255.255.248 (teniendo los equipos como puerta de enlace la 192.168.5.9)

La red conectada al router 2 será la 192.168.5.16 con máscara 255.255.255.248 (teniendo los equipos como puerta de enlace la 192.168.5.17)

Y finalmente, la red de los cable serial rojos será la 10.0.0.0 con máscara 255.255.255.252.

Y os preguntaréis, ¿por qué esas máscaras? En el caso de la red 192.168.5.0, porque si le aplico la máscara con el último byte 252, solo podré tener dos equipos en esa subred, pero con 248 me lo amplía a seis equipos por subred, permitiendo darle direcciones a los dos sobremesas y al router. Eso sí, siguen sobrando direcciones, pocas, pero sobran.

Respecto a la segunda red, le he aplicado la máscara 252 porque solo necesito dos interfaces (la 10.0.0.1 y 10.0.0.2 en un lado, y en el otro la 10.0.0.5 y la 10.0.0.6), sin que sobre nada en este caso.

Y he aquí las ventajas de hacer subnetting, que donde podríamos haber utilizado cinco redes, solamente hemos aplicado dos redes (una dividida en tres subredes y otra en dos subredes).

Lo siguiente es configurar las tablas de rutas. Si nos fijamos, hay dos routers en los extremos y solamente conectados a un router central, aunque en realidad, a dónde estén conectados da igual, ya que lo importante es saber que los mensajes de sus subredes siempre van a salir por ahí. Por tanto, podemos usar la siguiente tabla de rutas tanto en el router 0 como en el router 2:



Esto indica que, cualquier paquete que enviemos a un destino desconocido desde cada subred, irá mediante la puerta de enlace al router y saldrá al router central. Independientemente de quién sea el destino, porque esta dirección llena de ceros indica dirección por defecto y máscara de subred por defecto. Y así nos olvidamos de la tarea de estar indicando todas las subredes del plano, cosa que sí tenemos que hacer en el central:

Y así, el router central controlará a dónde enviar los paquetes (si un destino u otro), mientras que los routers de los extremos siempre enviarán la información para el central (y este a su vez se encargará de redireccionar los mensajes a donde crea correcto). Otro detalle importante es el "/29" de la imagen, justo después de terminar la IP. Esto es una forma abreviada de indicar la máscara, y dice que la máscara tiene 29 bits a 1, pertenecientes a la red, osea, la máscara 255.255.255.248 sería así:

1111 1111 (8).1111 1111 (16).1111 1111 (24). 1111 1000 (29)

Si comprobamos, finalmente, la tabla de rutas del router central, veríamos que esta indica también las subredes que hemos generado y por qué interfaces acceder a ellas:

Donde la 10.0.0.0/30 está dividida en dos subredes, y la 192.168.5.0/29 está dividida en tres subredes.

Hasta aquí lo básico sobre subnetting, un saludo ^^

21 jul 2014

Enrutamiento RIPv1

A diferencia del enrutamiento estático habitual, existe otra clase de protocolo para modificar la tabla de rutas, este protocolo es el RIP (Routing Information Protocol), que básicamente lo que hace es evitar que tengamos que estar configurando la tabla de rutas a mano, ya que transmite entre distintos routers las redes a las que están conectados y, de ese modo, se van creando sus propias tablas de rutas. De hecho, es más flexible porque soporta cambios inesperados en la red: no es lo mismo el enrutamiento estático que siempre sigue una misma ruta predefinida para cada red, que el RIP, el cual sabe cómo llegar a distintas redes porque actualiza la información de las tablas de rutas constantemente; si un enlace cae y se puede acceder a esa red por otro camino, las tablas de rutas se actualizarán y cogerán ese otro camino, mientras que de forma estática esperamos a que se solucione el problema o, volvemos a modificar todas las tablas a mano.

No obstante, no considera el tráfico de la red (si hay mucho o poco), tampoco si la ruta es más larga o no, ni si es una ruta segura; que esto precisamente es lo que intentamos controlar de forma estática.

El escenario donde implementaremos el protocolo será el siguiente, y tendremos solamente los protocolos ICMP y RIP activos:



No hay que olvidar tampoco ir activando las interfaces de cada router y, de hecho, al router 1 hay que añadirle una interfaz serial más que conecte con los otros tres routers. La estructura que seguiremos aquí (empezando de abajo para arriba), será la siguiente, ya que es algo complicada:
  • El PC0 pertenecerá a la red 192.168.1.0, siendo la interfaz del router la 192.168.1.1 y la del equipo, cualquier otra, en mi caso la 192.168.1.2.
  • El PC1 pertenecerá a la red 192.168.2.0, siendo la interfaz del router la 192.168.2.1 y la del equipo, cualquier otra, en mi caso la 192.168.2.2.
  • Los seriales que conectan el router 0 con el router 1 pertenecerán a la red 10.0.0.0 (siendo uno el 10.0.0.1 y otro el 10.0.0.2).
  • Los seriales que conectan el router 1 con el router 2 pertenecerán a la red 11.0.0.0 (siendo uno el 11.0.0.1 y otro el 11.0.0.2).
  • Los seriales que conectan el router 1 con el router 3 pertenecerán a la red 12.0.0.0 (siendo uno el 12.0.0.1 y otro el 12.0.0.2).
  • La red donde se ubica el servidor y el laptop 0 será la 192.168.3.0.
  • La red donde se ubica el sobremesa y el portátil será la 192.168.4.0.
Y todas las redes, por supuesto, con su máscara de subred por defecto. No hay que olvidar tampoco asignarle a cada equipo la puerta de enlace, que será la IP de la interfaz ethernet del router que conecta con su red local.

El siguiente paso para que el enrutamiento RIP se lleve a cabo es sencillo, solamente hay que ir router a router indicando las redes que están conectadas a él directamente en el propio menú del RIP:


Siguiendo los comandos "enable", "configure terminal" y "router rip" alcanzamos el menú de configuración del protocolo. Aquí indicamos con "network" las redes conectadas directamente por cable, que son tres. No obstante, esto va a fallar por una sencilla razón: el router 1 no tiene el RIP configurado y, por tanto, no aceptará los paquetes preparados para actualizar sus tablas de rutas. Para remediarlo, hacemos lo mismo en dicho router:

En esta ocasión, los paquetes enviados al router 0 por el protocolo no serán descartados y las tablas de rutas se actualizarán. Configuramos los router restantes y echemos un vistazo (con el comando "show ip route" en modo de administración, es decir, tras usar "enable") a la tabla de rutas del router... No sé, el 3:

Desde el router 3, que está conectado solamente a la red 12.0.0.0 y a la red 192.168.4.0 de forma directa, podemos ver que sabe dónde están ubicadas el resto de redes, así como el camino a tomar para llegar a ellas. Dice que, por ejemplo, para alcanzar la red 192.168.1.0 (el PC0), hay que enviar los paquetes al interfaz serial 12.0.0.1, es decir, el router 1, y luego este mediante su propia tabla de rutas, lo enviará al router 0, el cual está conectado directamente.

Y si ahora, por ejemplo, modificamos el escenario y colocamos un router 4 que conecte tanto el router 0 como el router 3, creamos las redes 14.0.0.0 y 15.0.0.0 y actualizamos las redes en el protocolo RIP, la tabla de rutas del router 3 se verá un poco modificada:


Donde ahora se puede acceder a la red 192.168.1.0/192.168.2.0 desde dos interfaces distintas, en caso de que una caiga inesperadamente, encontrará otro camino para pasar. Y las tablas se van actualizando con el tiempo, librando a los administradores de la tediosa tarea de controlar las rutas estáticas.

Espero que os haya gustado y haya sido instructivo, cuanto menos. Un saludo ^^

Enrutamiento estático

En la entrada de direccionamiento IPv4 hemos hablado sobre cómo conectar distintos equipos de una misma red, sin embargo, ¿cómo es posible conectar equipos de distintas redes? Muy sencillo, con dispositivos llamados "routers", tan famosos últimamente en nuestras casas. Para este ejemplo utilizaré el programa Packet Tracer, y además, definiremos dos redes sencillas de clase C:
  • Red 1: 192.168.1.0
  • Red 2: 192.168.2.0

Ambas con la máscara de subred por defecto: 255.255.255.0

Ahora bien, conectaremos tres equipos distintos en cada red, imaginando dos oficinas distintas en el mismo edificio. Para ello, usamos un Switch de modo que pueda unir esos dispositivos de la oficina, y el mismo conmutador conectado al router. Podríamos, como alternativa, conectar los ordenadores directamente al router, no obstante, habría que añadirle más interfaces (o puertos de conexión, para entendernos) Ethernet, de tal modo que nos permita utilizar cables cruzados. En cualquier caso e ignorando esta última sugerencia, el escenario quedaría así:



Cabe destacar que los routers se conectan mediante un cable serial en las interfaces propias de seriales, y junto a las interfaces o puertos ethernet (es decir, el cable que está conectado al switch), vienen apagadas por defecto, por lo que tendremos que esperar unos segundos a que el propio router se configure una vez lo hayamos encendido (o colocado en pantalla), y posteriormente entrar e ir interfaz a interfaz activando estas. Sin embargo, yo voy a ir en modo comando, que se me hace mucho más sencillo.

En la primera red, la de la izquierda, tenemos un ordenador de sobremesa, un servidor y una impresora, mientras que en la segunda red, la de la derecha, tenemos tres ordenadores portátiles. El primer paso será asignar direcciones IP a los dispositivos de la primera red:

La impresora será el equipo número cinco de la red:

El ordenador de sobremesa será el número seis:

Y por último, el servidor será el siete:

Si os habéis fijado, cada interfaz que hemos conectado al switch tiene esa dirección IP asignada, por lo que tenemos que hacer lo mismo con la interfaz del router. Pero aquí viene algo importante, todos los equipos de la red tendrán más tarde que saber cuál es la dirección del router para poder navegar por internet, o acceder a la segunda oficina (en este caso no hay acceso a internet), por lo que las direcciones IP de los routers deben ser especiales, por así decirlo, en mi caso será la dirección número uno, para que no sea fácil de olvidar.

Respecto a la segunda red, el primer portátil tendrá la dirección IP 192.168.2.5; el segundo la 192.168.2.6; y el tercero la 192.168.2.7; el router, en su interfaz ethernet, tendrá la 192.168.2.1.

Dicho esto, iré al router de la primera oficina para asignar su IP por comandos:

Para utilizar comandos, vamos a la tercera pestañita, "CLI", y nos pedirá al comienzo si queremos ver un manual de uso, a lo que respondemos que no (escribiendo "no" y dando salto de línea), el siguiente paso es saber los distintos comandos a utilizar.

El primero es enable, el cual nos otorga permisos de administración para configurar el dispositivo, y lo siguiente es lanzar el comando configure terminal, desde donde podremos configurar las interfaces:

Aquí buscamos la interfaz del router conectada con el switch (fastethernet0/0) y le asignamos la IP junto con su máscara, luego la encendemos y salimos de la interfaz, volviendo al configure terminal. Repetimos este proceso en la oficina 2, pero adaptando las IP a la red 192.168.2.0.

Hasta aquí todo bien, ya que todos los equipos de ambas oficinas tienen direcciones IP, incluyendo los routers, de forma que están todos comunicados entre sí, ¡pero solo de forma local! ¿Qué sucedería si por ejemplo, desde el segundo portátil de la segunda oficina, se intenta utilizar la impresora de la primera oficina? No podría, ya que la impresora tiene una IP de una red distinta, y la desconoce por completo. El mensaje no llegaría a ninguna parte, porque no habría conexión entre ambos dispositivos. Para remediar esto, existe la llamada Puerta de enlace, o Gateway, que es una dirección IP marcada por el ordenador y a la cual envía paquetes cuando tiene como destino una red desconocida.

Si lo has entendido todo bien hasta aquí, ya habrás averiguado cual es la puerta de enlace de todos los equipos de ambas redes, eso es, sus respectivos routers. Cada dispositivo tendrá como puerta de enlace la dirección IP que hemos asignado a la interfaz ethernet del respectivo router:

Una vez todos los dispositivos tienen como puerta de enlace la dirección IP de cada router, cuando vayan a enviar mensajes a direcciones desconocidas lo primero que harán será enviarlo al router, y ya éste se encargará de re-enviarlo a donde crea correspondiente. Y aquí es donde empieza la parte importante: el enrutamiento estático.

Antes de continuar, vamos a crear otra red intermedia para los seriales, ya que, si ambas interfaces seriales no tienen direcciones IP, es como si no existiesen; siguen incomunicadas. Por tanto, el serial del primer router será la dirección 10.0.0.1 con máscara 255.0.0.0, mientras que el del segundo router será la dirección 10.0.0.2 con máscara 255.0.0.0.

Si un mensaje cuyo destino es la IP 192.168.1.5 le llega al router de la oficina 2, éste no sabrá qué hacer con él y lo descartará, ya que no tiene puerta de enlace (él mismo es la puerta de enlace del resto de equipos), entonces, ¿cómo se consigue que el router diferencie redes distintas y sepa a dónde enviar el mensaje desconocido? Muy fácil, en la tabla de rutas:

De esta forma se ve más claro todo. Lo que estamos haciendo aquí se denomina enrutamiento estático, porque estamos definiendo la tabla de rutas de forma estática, no va a variar. Y esta tabla ahora mismo indica que, si al router le llega un mensaje para la red 192.168.1.0 con máscara de subred 255.255.255.0, envíe esos paquetes de información a la interfaz 10.0.0.1, es decir, el router de la primera oficina. Lo que tenemos que hacer es lo mismo para este último router, es decir, que para la dirección de red 192.168.2.0 con máscara 255.255.255.0 envíe el mensaje al serial del router 2, que es 10.0.0.2, de esta forma, ambos routers (y oficinas), estarían comunicados en todo momento.

Probemos ahora si, desde la segunda oficina, se puede utilizar por red la impresora de la primera, para ello, basta con alcanzar el router de la respectiva oficina (si al router le llega el mensaje, significa que le llegará a toda la red y todos sus equipos):
Donde he enviado un mensaje desde el Laptop1 al router de la oficina 1 (o bien a la impresora, que sucederá lo mismo mientras alcance el router). Y todo, por supuesto, con el protocolo ICMP solamente.

16 jul 2014

Direccionamiento IPv4

Antes de nada, para aquellos lectores que tengan conocimientos nulos en redes, me gustaría que se mirasen mis dos entradas relacionadas con el sistema binario y la introducción a las redes informáticas para tener unos mínimos conocimientos de lo que va a ver aquí, porque sino esto le sonará a chino mandarín (o un idioma que no sepa en caso de saber chino mandarín), ya que no entraré en conceptos vistos ahí. Y una vez esté todo preparado, vamos allá.

En esta ocasión voy a hacer uso del programa Packet Tracer, un programa de Cisco Systems, mediante el cual podemos implementar todo tipo de redes. Ahora bien, vamos a empezar por el concepto de dirección IPv4:

¿Cómo es una dirección IP?
Una dirección IP es un conjunto de 4 bytes separados por puntos, como por ejemplo: 192.168.1.1

Eso sería una dirección IP, de las más famosas de hecho, ya que es la que suelen traer todos los routers que tenemos en casa por defecto. Cabe destacar que, cada uno de esos números son un byte, por tanto, esa IP en binario sería: 1100 0000.1010 1000.0000 0001.0000 0001

He ido separando cada nibble por espacios, de forma que quede más claro el byte y las potencias de 2 (al menos a mí se me hace más claro de esta forma). Ahora bien, la dirección IP puede dividirse en dos segmentos, uno que identifica la red en la que estamos, y otro que identifica el equipo del que se trata; un concepto muy simple. Para saber identificar qué parte corresponde a qué, hay que saber diferenciar los tipos de clases que existen:

  • Clase A: Las IP de clase A tienen como primer byte el intervalo entre 0 y 126, es decir, una IP así: 10.0.0.1 correspondería a una dirección de clase A. En esta clase, solamente el primer byte define la red en la que nos encontramos, pudiendo tener los tres bytes restantes destinados a ordenadores (¡miles y miles de equipos conectados! Las redes A son las más grandes). En este caso se trataría del ordenador número "1" (el último byte es un uno).
  • Loopback: Esto no es una clase propiamente dicha, pero sí es importante mencionarla porque la dirección de Loopback es el propio equipo en el que nos encontramos, es decir, cada equipo se reconoce a sí mismo como la dirección 127.0.0.0
  • Clase B: Las IP de clase B son las comprendidas entre las direcciones cuyo primer byte comienza por 128 y termina en 191. No obstante, en esta ocasión, se emplean los dos primeros bytes de la dirección para identificar la red, quedando solamente los dos últimos bytes para los equipos (disminuyendo de esta forma la cantidad de los mismos, que sería 2^16 -16 porque son dos bytes-, es decir, 65536 equipos).
  • Clase C: Las IP de clase C son las que vienen por defecto en los routers de casa, las cuales tienen los tres primeros bytes para identificar la red y el último byte para identificar los equipos (teniendo solamente 2^8, es decir, 255 equipos en esa red como máximo, con el último byte a 1111 1111). Y la red se mantiene hasta la dirección 223.
He aquí un esquema de lo que vendrían a ser las clases de direcciones:

Siendo la zona coloreada de amarillo la parte que identifica a los host, y la zona de blanco la que identifica la red. Ahora bien, cada red tiene su parte de red y su parte de host, sin embargo, contiene también dos direcciones por defecto que no podemos coger: la dirección de red y la dirección de broadcast (o difusión).

La primera, si suponemos que tenemos el equipo 192.168.1.35 (el ordenador número 35 de la red 192.168.1), ¿qué dirección de red tendría? Muy fácil: 192.168.1.0
Dicha dirección no se le podría asignar a un equipo. Para averiguar esta dirección, hay que tener los bits del host a cero.

La segunda, la de broadcast, es la dirección que indica el número máximo de equipos que podemos alcanzar en dicha red, en este caso, sería la siguiente: 192.168.1.255
Es el caso contrario al anterior, donde hay que tener los bits del host a uno.

Ambas direcciones no son asignables, y simplemente se utilizan para cálculos que nos permitan obtener datos de la red que queremos implementar. Ahora bien, hay una forma más sencilla de averiguar el tipo de clase y el tipo de red que tenemos entre manos, esto se debe a la Máscara de subred, la cual nos indica todos los parámetros de la dirección IP.

En una dirección de clase A, la máscara de subred será la siguiente: 255.0.0.0
Indicando que el primer byte ya está seleccionado para la red, mientras que el resto pueden variar al estar a cero.

En una dirección de clase B, la máscara sería así: 255.255.0.0
Y en la clase C: 255.255.255.0

Por tanto, la dirección IP 192.168.1.1 tendrá la máscara 255.255.255.0

Hagamos una prueba en Packet Tracer, donde se conectarán dos equipos a un Switch y se comunicarán mediante direcciones IP de la misma red (aclarar que, en el filtro de protocolos, solamente dejaré el ICMP, es decir, el ping de toda la vida que indica si los equipos se están comunicando correctamente):

En primer lugar, una vez tengamos los dos ordenadores conectados al Switch mediante cables directos (no cruzados por no estar en el mismo nivel), les asignamos sus direcciones IP. Esto podemos hacerlo desde nuestro sistema operativo, es decir, podemos asignar IPs estáticas a los ordenadores con comandos o ventanitas (todos los sistemas traen opciones para esta configuración). El problema de por qué no necesitamos asignar IPs manualmente en nuestro ordenador es por el router de casa, que nos la asigna manualmente él mismo, pero eso no lo explicaré todavía.

En definitiva, vamos equipo a equipo asignando su respectiva IP:

Ahora vamos por partes, la dirección de red (la red en sí) será: 192.168.1.0, ya que la máscara de subred (se asigna por defecto en base a la clase) ha sido 255.255.255.0; la dirección de broadcast será 192.168.1.255; y el primer equipo será el número 1, y el segundo el número 2.

Y todo, en el siguiente escenario:
Ahora bien, como cada equipo tiene ya su IP y las lucecitas verdes indican que hay conexión, intentemos enviar un paquete (o un ping -es lo mismo-, que es un comando mediante el cual un ordenador envía una señal a otro para comprobar si hay conexión entre ambos -probadlo a una página web para saber si podéis o no acceder a ella, cuando la web se cae, normalmente debería dar error-):

Nos encontramos conque sí ha llegado el mensaje y ambos equipos tienen conexión. Ahora bien, vamos a probar a cambiar la red, estando el PC2 en la red: 192.168.2.1 (fijaos que ha cambiado ahora la dirección de red a 192.168.2.0) y el PC3 en 192.168.1.2:
Observamos que, efectivamente, no reconoce el otro ordenador, porque por defecto va a buscar equipos en su misma red (otras redes son desconocidas para él, y para remediar esto utilizamos routers), y lo mismo sucederá si modificamos la clase.

En definitiva, para conectar dos equipos, ambos deben estar en la misma red.

Introducción a las redes informáticas

Son muchas las veces que se escucha el término de dirección IP (o no (?)), ¿pero qué significa realmente? Una dirección IP permite identificar a un ordenador dentro de una red, entendiendo por "red" un conjunto de ordenadores conectados entre sí. Ahora bien, vamos a repasar algunos conceptos antes de introducirnos en el mundo de las redes informáticas:
  • Host: Equipo informático identificado mediante una dirección IP.
  • Red: Conjunto de equipos informáticos o host conectados entre sí, ya sea de forma local o de forma inalámbrica.
  • LAN: Conexión de Área Local. ¿Qué significa esto? Pues que todos los equipos están conectados o situados en el mismo espacio (una habitación, una oficina...), ya sea por cable o de forma inalámbrica (infrarrojos).
  • WAN: Conexión de Área Extensa. En este tipo de conexiones está Internet, donde los dispositivos forman una red inmensa alrededor de todo el mundo (mi ordenador se conecta a los servidores de Google, situados en quién sabe dónde -seguro que en la esquina de mi calle no-, para acceder a la página web www.google.es).
  • Dirección IP: Conjunto de números que permiten identificar a un host dentro de una red informática (como un DNI).
  • Cliente: Host que mediante una red, busca servicios en servidores (los clientes son ordenadores normales, como el tuyo y el mío).
  • Servidor: Host o equipo de gran capacidad (tanto en Hardware como en Software), que provee servicios (ya sean páginas web, bases de datos donde están los datos de los usuarios registrados, etc...) a los clientes.
  • Hub (o Concentrador): Dispositivo que mediante conexión por cable, permite conectar diversos equipos de forma local. Cada paquete de información que recibe, lo re-envía a todos los equipos de la red local.
  • Switch (o Conmutador): Dispositivo que, a diferencia del Hub, no envía la información a todos los equipos conectados por cable, sino que mediante la dirección IP, sabe quién es el destino y quién el origen.
  • Router: Dispositivo que mediante conexión por cable, es capaz de conectar distintas redes, manteniendo conexión entre todos los equipos. Ahora bien, un router de los que tenemos en casa, no es de este tipo y no es router propiamente dicho, ya que estos routers incluyen un switch integrado junto con otros dispositivos que permiten conexión tanto inalámbrica como por cable.
  • Conector RJ45: Estándar para cables que permite conectar ordenadores de forma local. Por ejemplo, el cable que conecta el router de nuestra casa con el ordenador es un RJ45. Los hay de dos clases: Cable cruzado, cuando conectados dispositivos de mismo nivel (es decir, que ambos soportan direcciones IP, como un ordenador y un Router ordinario -no el de casa, que es un Switch-), y Cable directo, cuando conectamos dispositivos de distinto nivel (como un ordenador a un Switch o Concentrador). Su principal diferencia es el código de colores en los cables.
  • Direccionamiento: El direccionamiento de una red puede ser de tres clases: Símplex, donde un dispositivo recibe una señal y no re-envía una respuesta al origen que le ha enviado dicha información (como una televisión o una radio), Semi-Duplex, como por ejemplo el famoso Walkie-Talkie, donde para enviar información un punto el otro ha de estar a la escucha y viceversa, y Full-Duplex, donde un dispositivo puede tanto enviar como recibir información independientemente del momento (un teléfono móvil o un ordenador).

11 jul 2014

Sistema Binario

Sistema de numeración Binario:

El sistema de numeración binario es la base o raíz de toda la informática. Nuestros ordenadores trabajan solamente con ceros y unos, ausencia o no de información.

En el sistema binario la unidad mínima es el Bit: un 0 o un 1.
La siguiente unidad es el Nibble, que representa cuatro bits: desde 0000 hasta 1111
A continuación tenemos el Byte, compuesto por dos Nibbles: desde 00000000 hasta 11111111
Luego, las unidades se van incrementando de 1024 en 1024 del siguiente modo:
1024 Bytes son 1 Kilobyte, 1024 Kilobytes son 1 Megabyte, 1024 Megabytes son 1Gigabyte, 1024 Gigabytes son 1 Terabyte.

Pasar un número decimal a binario es sumamente sencillo, solo hay que saber cuáles son las potencias de 2, porque al igual que el sistema decimal trabaja con potencias de 10, el binario trabaja con el número dos.

Un ejemplo del sistema decimal, que trabaja con potencias de diez, es el siguiente:
565 = 5x100 + 6x10 + 5x1

Donde a cada suma se va reduciendo una potencia de diez (una potencia, recordad, es un número elevado a algo), para que se vea más claro el tema de las potencias, el número anterior es equivalente al siguiente:
565 = 5x10^2 + 6x10^1 + 5x10^0

Donde 10^2 es cien, 10^1 es diez, y 10^0 es uno.

Ahora bien, el sistema binario trabaja igual, pero con potencias de 2, es decir...

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Recordad que las potencias siempre son números pares, y de tanto utilizarlas al final se terminan memorizando. No es nada complicado. Ahora bien, ¿cómo pasamos un número decimal a binario? Hay que restar por cada potencia de 2 desde la potencia más cercana a ese número y que sea menor que éste de forma descendiente hasta llegar a la potencia de 2^0, a 1. Por ejemplo, si tenemos el número decimal 78, ¿por qué potencia deberíamos empezar? ¿Por la 2^7 que es 128? 128 es mayor, pero la más cercana y menor a 78 es 2^6, es decir, 64. Entonces, empezamos a restar ese número por cada potencia, si la resta da resultado negativo, tenemos un bit a 0 y volvemos a restar el número decimal por la siguiente potencia. Si la resta da positiva tenemos un bit a 1 y el resultado lo seguimos restando. Vamos a la práctica:
78 - 64 = 14 (1) --->La resta da positiva, así que seguimos restando con el resultado, 14<---
14 - 32 = -18 (0) --->Descartamos este resultado y seguimos con el número 14<---
14 - 16 = -2 (0) --->Sucede lo mismo que en el caso anterior<---
14 - 8 = 6 (1) --->Da positiva, por lo que continuamos restando de forma descendente con el resultado<---
6 - 4 = 2 (1)
2 - 2 = 0(1)
0 - 1 = -1 (0)

Ahora, si cogemos esa ristra de bits que hemos obtenido, tendremos el siguiente resultado: 100 1110
Pero claro, eso son siete bits, ¿no sería lo ideal tener 1 byte completo? Pues sí, sería lo ideal, para el tema de las direcciones IPs que explicaré en un futuro, sí tendremos que restar obligatoriamente desde la potencia de 128 hasta la potencia de 1. Pero en este caso el resultado no variaría, observemos por qué:
78 - 128 = -50 (0)

Si añadimos ese bit a la tira que ya teníamos anteriormente, formaríamos el byte completo, que sería así:
0100 1110

Todo bien hasta aquí, es muy sencillo, solamente restar el número por las potencias de 2 y si da negativo un 0, si da positivo un 1. ¿Pero cómo comprobamos que ha ido todo bien, y ese byte es realmente el número 78? Pues sumando las potencias de 2 en el orden en que las hemos colocado. El primer 0 del byte (el que empieza por la izquierda <<<<), es 128, mientras que el último 0 (el de la derecha >>>>) es 1 (2^0), por tanto, solo quedaría sumar:

2^7 (128) + 2^6 (64) + 2^5 (32) + 2^4 (16) + 2^3 (8) + 2^2 (4) + 2^1 (2) + 2^0 (1)

Sin embargo, si sumamos todo eso tendremos 255, efectivamente, un byte con todos los bits a 1 (1111 1111), por tanto, solo sumamos los que tengan en su posición el bit a 1, en este caso, como el byte es así: 0100 1110, sumaríamos del primer nibble el segundo (2^6, es decir, 64), y del segundo nibble todos excepto el último, porque están a 1, de la siguiente forma:

2^6 (64) + 2^3 (8) + 2^2 (4) + 2^1 (2)

O más claro:

64 + 8 + 4 + 2 = 78

En un comienzo podrá resultar confuso, ¡pero no os preocupéis! Con las direcciones IP se verá todo mucho más claro (o no (?)). Si tenéis dudas, os aconsejo coger números decimales que os gusten y os pongáis a restarlos, números no superiores a 255, a ser posible, ni inferiores a 0 (esto creo que es obvio), y repetid todos los pasos que he ido definiendo. ¡Mucha suerte! =)

Y con esto, todo hasta ahora, un saludito ^^

El Microprocesador

El Microprocesador:

Hoy seguiremos con las piezas del ordenador, en esta ocasión le ha tocado al Microprocesador. El cerebro de nuestra querida máquina, una pieza imprescindible.


Muchas veces un ordenador puede ser nombrado no solo por su Sistema Operativo, sino también por su tipo de microprocesador, es como cuando por ejemplo decimos: "un i7", "un Core 2 Duo" o un "Phenom". Coloquialmente el microprocesador se denomina "micro", término que da a confusión por el "micro" del micrófono, no obstante, técnicamente se denomina como la "CPU" (Unidad Central de Procesamiento).

Cuando se habla sobre la tecnología del microprocesador, estamos hablando del tamaño de sus componentes, y bien, ¿de qué está compuesto exactamente la CPU? La unidad se compone de millones de minúsculos elementos muy pequeñitos (¡se miden en nanómetros, una millonésima parte de un milímetro!); los Transistores:




Los transistores a su vez están agrupados en un mismo microchip, que sería el núcleo de la CPU:


Tal y como se explica en la entrada de Introducción a los Sistemas Informáticos, la CPU se encarga de realizar operaciones aritméticas y lógicas, controlar todos los componentes del ordenador y ejecutar todos los programas.

El primer microprocesador fue fabricado por Intel y se llamó el "4004".

Y claro, yo estoy aquí hablando de transistores y microchips, pero ¿cómo es el proceso completo para fabricar un Microprocesador? Es muy sencillo, y sigue una serie de pasos concretos:

1º- En primer lugar hay que elegir un material semiconductor de electricidad, el más utilizado es el Silicio.

2º- El lingote de Silicio se corta en láminas muy finas circulares, denominadas obleas o wafers.

3º- Sobre la oblea se graban muchos circuitos, cada uno para cada microprocesador, mediante la Fotolitografía (proyectar luz o radiación ultra violeta sobre la oblea de silicio para esculpir el circuito electrónico).

4º- Se depositan impurezas sobre cada circuito, de forma que queden varias capas superpuestas. Este proceso se llama "Dopado".

5º- Finalmente, se cortan los chips de forma individual y con cuidado, obteniendo así el núcleo del microprocesador, llamado "Die" o "Core". Éste núcleo se coloca posteriormente en el interior de una base cerámica con conectores y bajo una superficie disipadora de calor.



La carcasa del microprocesador es muy importante, ya que protege el Die y dependiendo de su diseño, se colocará de forma diferente en la Placa Base de nuestro ordenador. Hay tres modelos básicos de carcasas. Un ejemplo de cada uno sería:

DIP
DIP (Dual Inline Package): o más conocido como Chip Cucaracha, negro y largo con numerosas patas que suele ir soldado sobre la placa, casos de micros de esta clase son el "8088" y el "8086".

PGA
PGA (Pin Grid Array): clásico microprocesador cuadrado con pines dorados en la parte inferior. En este caso hay que tener cuidado, ya que si una de sus patas se rompe, el microprocesador quedará inservible. Es el caso de por ejemplo el Intel 286.

LGA

 LGA (Land Grid Array): este tipo es el contrario al anterior, ya que los pines no van colocados en el microprocesador, sino en la placa base. Hay que tener especial cuidado con estos, porque si se dobla o rompe un pin de la placa, ¡esta puede quedar inservible!

Hasta ahora hemos visto cómo se fabrica y cómo es un microprocesador, pero claro, este chip al ser el cerebro del ordenador trabaja a altísimas velocidades y procesa muchísimos datos, por lo que hay que tener especial cuidado a la hora de refrigerarlo. Es una pieza frágil que se calienta con mucha facilidad, soporta hasta 60ºC, más allá puede provocar inestabilidad en el sistema, o incluso quemar la pieza.

Para evitar esto, hay varias formas de refrigerar un Microprocesador. En primer lugar tenemos la propia carcasa, que disipa calor, pero no es suficiente. Una buena medida de refrigeración sería utilizar Pasta Térmica sobre la superficie de la carcasa; con una gotita sería suficiente para ayudar a disipar el calor que genera. Yendo más lejos, tenemos refrigeración por aire, donde se emplea un ventilador atornillado sobre el microprocesador (este tipo de refrigeración es impensable en un portátil, por lo que es frecuente en equipos de sobremesa).

Por otro lado tenemos la refrigeración líquida (o watercooling), donde se emplea un circuito sellado y bien cerrado con un depósito de agua, varios tubos, una bomba para que circule el líquido, un radiador y ventiladores para enfriar el líquido. Es el mejor sistema de refrigeración, pero también tenemos que tener cuidado, porque una fuga podría provocar destrozos. La siguiente imagen sería un ejemplo de Watercooling:


Por último tenemos el Heatpipe, sistema de refrigeración más utilizado en portátiles. Consiste en dos tubos con líquido en la parte del microprocesador. Cuando el chip se calienta, el líquido se evapora y se desplaza hasta el otro extremo, donde se vuelve a condensar. Lo siguiente sería un caso de Heatpipe:

El microprocesador, como ya se ha comentado en la entrada nombrada más arriba, está compuesto lógicamente de memorias pequeñitas de pocos bits que determinan la capacidad del chip, estas memorias se denominan Registros, y pueden ser de 8 bits, de 16, de 32 o de 64. ¿Os suena que al descargar algo os pida la versión x86 o x64? x86 indica que los registros del microprocesador son de 32 bits, x64 de 64 bits. También se compone de una ALU (Unidad Aritmético Lógica), encargada de realizar operaciones; de una FPU (Unidad de Coma Flotante), la cual permite realizar operaciones con números muy grandes y decimales; y de la CU (Unidad de Control), cuya tarea es enviar señales de control a todos los componentes del ordenador.


  • Registros. Son memorias muy pequeñas, de poca capacidad, muy caras y muy rápidas. Su tamaño determina la arquitectura del microprocesador (16 bits, 32, 64, 128...). Donde un bit es la unidad mínima de medida de la información, cuyo valor es cero o uno (ausencia o no de información).

  • Unidad Aritmético Lógica. Se encarga de realizar operaciones aritméticas con números enteros. Los ordenadores actuales son superescalares, lo que implica que dispongan de varias de estas unidades en un mismo microprocesador.

  • Unidad de Coma Flotante. Realiza operaciones con números muy grandes y decimales. La FPU se incluyó a partir del Intel 486, y los primeros microprocesadores no disponían de una. Para remediar esto había dos alternativas, o bien emular cálculos mediante software (muy lento), o comprar un chip muy caro denominado "coprocesador matemático".

  • Unidad de Control. Decodifica instrucciones traídas desde la memoria y en base a estas, envía señales de control al resto de componentes indicando lo que hay que hacer.

Arquitectura x86

Si los microprocesadores de 64 bits son denominados como "x64", ¿por qué los de 32 bits no son denominados "x32" y no "x86"? ¡Por la arquitectura! Todo empezó con el Intel 8086, seguido por 80186, 80286, 80386, 80486, Pentium... Y se dice que todos pertenecen a esta arquitectura porque son compatibles, esto es, que un programa escrito en un micro x86 funcionará en el resto de sus predecesores. Esto sucede gracias al Juego de Instrucciones del microprocesador, o lenguaje ensamblador. Por ejemplo, la instrucción 00000001 puede ser SUMAR para un micro de esta clase, mientras que para uno de otra arquitectura será RESTAR. De ahí a que los programas funcionen gracias al juego de instrucciones (el lenguaje ensamblador es el mismo al ser de la misma arquitectura).

¿Y si un micro dispone de un lenguaje ensamblador distinto, no funcionan los programas? Pues para esto se encargan los lenguajes de programación de alto nivel, para hacer de los programas algo que funcione en todos lados.

Sería en 1996 cuando Intel incluyó en sus micros el nuevo conjunto de instrucciones MMX, el cual agilizaba operaciones multimedia. Y se incluyeron además 8 registros de 64 bits, modificando la arquitectura que se había mantenido hasta el momento. Su rival, por su parte, que no se trataba de nada más ni nada menos que de AMD, no quiso quedarse atrás e incluyó un conjunto de instrucciones denominado 3DNow! para su micro del momento, el AMD K6-2, cuyo objetivo era mejorar el rendimiento de los gráficos 3D.

Actualmente, son Intel y AMD los principales fabricantes de microprocesadores, otros fabricantes como Cyrix no tuvieron tanto éxito, por desgracia. Cabe añadir, además, que para que un programador saque todo el potencial a un microprocesador, es necesario que conozca las nuevas instrucciones que incluye en ensamblador.

Arquitectura x64

Llegado un punto, las empresas tuvieron que actualizarse. Intel por ejemplo fracasó estrepitosamente en este salto, puesto que sus nuevos microprocesadores emulaban el software de x86, y lo hacían muy lento. No obstante, en esta ocasión triunfó AMD, haciendo compatible ambas arquitecturas (surgiendo así la arquitectura x86-64) con microprocesadores como Phenom u Opteron.



Fuera de ambas arquitecturas, uno de los parámetros importantes de un microprocesador es el Reloj. Dicho componente está marcado por una determinada frecuencia medida en hercios (Hz), de ahí a que cuando vayamos a comprar un ordenador, nos indique su capacidad en Hz. Sin embargo, esta unidad no debe utilizarse para comparar micros distintos, ni mucho menos para decidir si son mejores o no, porque quizás un microprocesador ofrezca mayor frecuencia, pero tarde más en realizar una operación. Y a la inversa se puede dar también.

El Reloj funciona mediante ciclos de reloj. La razón por la cual no se pueden comparar es que si un micro de 10MHz tarda 5MHz en realizar una instrucción, mientras que otro de 5MHz tarda 1MHz en realizar una instrucción, está claro que el de 5MHz irá más rápido, ¡pero también se calentará más!

Si lo que queremos es comparar microprocesadores, hay que aplicarles lo que se llama el MIPS (Millones de Instrucciones Por Segundo), para ver cuánto tardan en realizar una serie de cálculos intensivos. Hay organizaciones que se dedican a esto y nos ofrecen estadísticas incluso, como CPU Benchmark.

Hay programas además que nos permiten ver con todo detalle las características de nuestra CPU, como CPU-Z para Windows o CPU-G para Linux. Al abrir el programa veremos en pantalla las características tanto de nuestro procesador como de la memoria RAM, la Caché, la Placa Base, la tarjeta gráfica...


¡Y cuidado con la publicidad al descargar el programa!

Entre las características podemos ver el propio nombre del procesador, el nombre en clave, la potencia térmica (TDP), el zócalo, la tecnología (tamaño de los transistores), la cantidad de voltaje que consume (VID), el juego de instrucciones (¡Podemos ver el MMX!), las velocidades del reloj, la velocidad del bus y el multiplicador (en estos últimos parámetros no entraré porque sino esto se hace eterno, pero sirven para calcular mediante fórmulas matemáticas la velocidad de procesamiento del micro), y los niveles de Caché (la caché la explicaré en una futura entrada donde hablo de la Memoria).

Hay otra característica importante de los microprocesadores que no me quiero dejar en el tintero, y es el Overclocking, una técnica que yo personalmente no recomiendo. Se puede configurar desde la BIOS de nuestro equipo, y consiste en incrementar el voltaje de nuestro microprocesador (Core VID) para incrementar así la capacidad del reloj y que sea más rápido. En teoría, cada microprocesador tiene unas medidas de voltaje indicadas por el fabricante que no se deberían superar, pero con esta técnica el microprocesador la supera, siendo muy peligrosa porque puede freír el chip. Sin embargo conozco gente que la utiliza (pero con extrema precaución y sin pasarse). No me hago responsable de si alguien motivado por el artículo la realiza, se pasa de la raya y se carga su ordenador, ¡sed considerados con él, pobrecito!

Y con esto, todo sobre el microprocesador. Espero que os haya resultado entretenida la lectura. Hasta más ver ^^