viernes, 12 de diciembre de 2014

Análisis de una dirección IP

En Internet todo host tiene una dirección IP versión 4 con 32 bits que por comodidad podemos agrupar en 4 bytes sin que ello tenga absolutamente ningún significado.

Ante una dirección, lo primero que tenemos que hacer es ver si tenemos o no la máscara de red.

Dirección sin máscara

Si la dirección viene sin máscara tendremos que asumir que se trata de una dirección con clase. En este caso, la máscara sólo podrá ser /8, /16 o /24 perteneciendo a una red de clase A, B o C respectivamente. Para saber a qué clase pertenece la dirección tenemos que examinar el primer octeto según esta tabla.

Dirección con máscara

Es el método más general ya que es el usado por los protocolos de encaminamiento actuales tales como el RIP2, OSPF, etc: Estos envían la máscara junto con la dirección IP. Este tipo de direcciones se llama CIDR (Classless Inter-Domain Routing). Evidentemente, en este caso la máscara puede ser de longitud variable (VLSM).

La ventaja del CIDR es podemos aprovechar mejor las escasas direcciones IP y además permite que los routers sumaricen (supernetting) permitiéndoles manejar más enrutamiento con menos recursos.

Si en nuestra red lo que queremos es segmentarla usaríamos el subnetting.

Análisis

Se trata de que, a partir de la dirección y la máscara extraigamos las direcciones de:

  • la red
  • del primer host disponible
  • del último host disponible
  • de broadcast

Nos dan la IP 192.160.26.109/20

Paso 1 - Obtener el número de bits de la red y de hosts

Ya sabemos que los 2020 primeros bits se usan para designar la red y los 3220=123220=12 restantes para los hosts. Con 12 bits tenemos 212=4096212=4096 direcciones posibles.

Paso 2 - Pasar la dirección a binario

192 160 26 109
11000000 10100000 0001 1010 01101101

Paso 3 - Dirección de la red

La dirección de red tiene todos los bits de host a cero. Calculamos su equivalente en decimal

11000000 10100000 00010000 00000000
192 160 16 0

Paso 4 - Primer y último host

El primer host será la primera dirección después de la de red

11000000 10100000 0001 0000 00000001
192 160 16 1

El último tendrá todos los bits de host a 11 menos el último.

11000000 10100000 0001 1111 11111110
192 160 31 254

Paso 5 - Dirección de broadcast

Tendrá todos los bits de host a 11

11000000 10100000 0001 1111 11111111
192 160 31 255

Referencias:
eltallerdelbit.

Chuleta clases de redes

Introducción

Antes de nada, comentar que las clases de redes ya no se utilizan debido al crecimiento de Internet que ha provocado el agotamiento de las direcciones IP y la necesidad de mantener los routers constantemente actualizados con enormes tablas de encaminamiento.

Actualmente se usa el método CIDR (Classless Interdomain Routing) para el enrutamiento que básicamente consiste en enviar la máscara de red junto con la dirección.

Clases de redes

Los tres tipos de redes son:

Primer Octeto Bits cabecera Clase Network Hosts Forma
0-126 0 A 8 24 n.h.h.h
128-191 10 B 16 16 n.n.h.h
192-223 110 C 24 8 n.n.n.h

Subnetting

Subnetting

El subnetting es una técnica para segmentar las redes cuando tenemos direcciones limitadas.

Lo que hacemos es tomar prestados bits del host para crear subredes. En este caso la dirección indica network.subnetwork.host.

Ejemplo:

Queremos crear dos subredes en 205.112.45.60205.112.45.60.

Lo primero que vemos es que se trata de una dirección tipo C. Por lo tanto, su máscara será 255.255.255.0 (11111111.11111111.11111111.00000000) o bien /24. Tenemos 282=254282=254 direcciones para hosts, es decir, el último byte. Si pasamos la dirección a binario nos queda:

11001101.011100000.00101101.00111110
11001101.011100000.00101101.00111110

Del último byte 0 0111110, tomaremos el primer bit para indicar a cuál de las dos subredes nos referimos (la 0 o la 1). Evidentemente, nos quedarán siete bits para hosts menos las dos direcciones reservadas para la red y broadcast, es decir que nos quedarán 272=1282=126272=1282=126 hosts en cada una de las dos redes.

Para saber a qué host nos referimos dentro de la red se hace AND de la dirección con la máscara. Como estamos usando un bit adicional de los hosts para la subred, la máscara será ahora 255.255.255.128255.255.255.128 o bien 11111111.11111111.11111111.1000000011111111.11111111.11111111.10000000 ya que 128 en binario es 1000000010000000. También podemos expresarlo como /25.

Haciendo subredes de direcciones de clase C, las máscaras nos quedarán con esta tabla:

Máscara para subredes clase C

Bits Decimal Binario Bitmask Subredes Hosts
1 .128 10000000 /25 2 126
2 .192 11000000 /26 4 62
3 .224 11100000 /27 8 30
4 .240 11110000 /28 16 14
5 .248 11111000 /29 32 6
6 .252 11111100 /30 64 3
7 .254 11111110 /31 128 2

Referencias:

Sitios para encontrar más info: techopedia.com, el taller del bit.

Supernetting o sumarización de rutas

La sumarización de rutas o supernetting permite a los routers enrutar más eficientemente, es decir, manejar más tráfico con menos recursos.

Los routers ya no usan las clases para direccionar sino que envían la máscara de red junto con la dirección y esto permite que el router las agrupe por subredes. Este método es llamado CIDR (Enrutamiento entre dominios sin Clases) y permite al router agrupar las subredes comunes, jerarquizándolas y simplificando el tráfico. Este ejemplo extraido de eltallerdelbit ilustra la sumarización:

Para que sea eficiente, el sistema requiere que las direcciones de las subredes vengan contíguas para que el router pueda agruparlas en superredes (supernetting). Los protocolos que soportan CIDR y VLSM (variable length subnet mask) o Máscaras de Subred de Longitud Variable son, entre otros, el RIP2 y el OSPF (Open Shortest Path First).

El taller del bit tiene un ejemplo que transcribo aquí:

Nos han dado la dirección 10.5.126.0 /23 y deseamos crear las siguientes subredes:

RED A : 130 equipos (+1 de red + 1 de broadcast )
RED B: 70 equipos (+1 de red + 1 de broadcast )
RED C: 40 equipos (+1 de red + 1 de broadcast )
RED D: 10 equipos (+1 de red + 1 de broadcast )

Antes de nada, debemos ordenar las redes de mayor a menor necesidad de direcciones.

Después, para empezar los cálculos, pasamos a binario los dos últimos bytes:

126.001111110.0000000
126.001111110.0000000

Red A

Necesitamos 132 direcciones: 130 hosts+red+broadcast; El primer múltiplo de dos es 256, o sea, 8 bits. Por lo tanto nos queda un máscara de 328=24328=24. La primera dirección será la 10.5.126.0 y la última 256 más, o sea, 10.5.126.255.

Red A:
Dirección de red: 10.5.126.0/24
Dirección de broadcast: 10.5.126.255

Red B

Necesitamos 72 direcciones. La primera libre es la siguiente a la de broadcast de la red A, es decir, la 10.5.127.010.5.127.0. Por otra parte, para 72 direcciones precisamos 7 bits ya que 27=12827=128, así que la máscara será 327=25327=25. Por tanto, la última dirección de esta red será 10.5.127.12710.5.127.127.

Red B
Dirección de red: 10.5.127.0/25
Dirección de broadcast: 10.5.127.127

Red C

Precisamos 42 direcciones. La siguiente libre, después de la B, es la 10.5.127.128; Esta será pues la dirección de la red C. El primer múltiplo de 2 que es igual o pasa de 42 es 64=2664=26, o sea, que necesitamos 66 bits para hosts y la máscara de la red será de 326=26326=26 bits. La última dirección de la red, de broadcast, será 128+641=191128+641=191.

Red C
Dirección de red: 10.5.127.128/26
Dirección de broadcast: 10.5.127.191

Red D

Para 12 direcciones necesitaremos 4 bits ya que 24=1624=16. La primera dirección, o dirección de red, será la 10.5.127.192 con una máscara de 324=28324=28 bits. La última dirección será la 10.5.127.207 ya que 192+161=207192+161=207.

Red D
Dirección de red: 10.5.127.192
Dirección de broadcast: 10.5.127.207

domingo, 7 de diciembre de 2014

Maker Faire Tokyo 2014

Per el seu interés "frikista", us deixo un resum del Maker Faire de Tokyo d'enguany.


Més info:

http://makerfaire.com/
http://www.makerfairebcn.com/
http://www.goteo.org/project/manual-de-supervivencia-maker/
http://makespacemadrid.org/

miércoles, 26 de noviembre de 2014

Brew The formula built, but is not symlinked into /usr/local

Si cuando instalamos algo con brew

brew install bla-bla

Nos aparece un error como este

The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local

Es por que no hay permisos de escritura en algún sitio de /usr/local, lo mejor es hacer

sudo chown -R usuario /usr/local

siendo nuestro nombre de usuario

who am i

Ya podemos instalar.

También es bueno tener los paquetes actualizados con

brew update && brew upgrade

martes, 25 de noviembre de 2014

En busca de Philae

Estos días estoy asistiendo, entre atónito y maravillado, a un espectáculo intelectual que ciertamente no ocurre cada día.

Después de un accidentado descenso y a pesar de haber podido realizar todos los experimentos al menos una vez, la sonda Philae quedó a la sombra de algún obstáculo y por lo tanto incapaz de recargar sus baterías con los paneles solares. La localización de la sonda es, en este momento, desconocida.

A partir de los pocos datos que la ESA ha hecho públicos, y en especial de una imagen panorámica, los aficionados de unmmaned space flight están intentando deducir la localización de la sonda. Para ello, han elaborado toda clase de métodos para “cazar” a Philae; Desde mapas sintéticos del cometa que reproducen la posible iluminación así como el cometa se acerque al Sol hasta proyecciones del panorama intentando casar el vector que apunta al Sol con las condiciones de iluminación observadas.

Proyección del panorama
Proyección del panorama (Mattias Malmer)

Recreación sintética del área de aterrizaje (Mattias Malmer)

Seguir los razonamientos de estas poderosas mentes empeñadas en encontrar un pequeño aparato de cien kilos escondido en las sombras de un cometa tan grande como una ciudad es como seguir una novela policíaca en capítulos… con la diferencia de que esto no es una novela.

Referencias:
Unmmaned space flight
Mattias Malmer
Press Kit (en inglés)

Oracle password no caduca

Para que no caduquen los passwords de las cuentas de Oracle podemos cambiar el perfil.

Primero, miramos el perfil del usuario:

select profile from DBA_USERS where username = '<username>';

y después seteamos el password_life_time del perfil:

alter profile <profile_name> limit password_life_time UNLIMITED;

jueves, 13 de noviembre de 2014

El mejor vídeo sobre Philae

Este es el mejor vídeo que he encontrado sobre las capacidades del Philae (en inglés):


viernes, 10 de octubre de 2014

Cita de Einstein


“If you can’t explain it simply, you don’t understand it well enough.” - Albert Einstein

miércoles, 24 de septiembre de 2014

Creación de VLANs en routers Mikrotik. Traducción del original de Butch Evans.

Esta entrada es una traducción del artículo “To tag or not to tag…that is the question!” de Butch Evans, publicado en su blog el 24 de febrero de 2010.

Hay una cuestión muy solicitada de cómo los routers Mikrotik tratan el tráfico de VLAN.

Déjenme empezar por el concepto más simple pero que es un buen fundamento para el resto del artículo:

Cuando se crea un interface VLAN, a todos los efectos el router se cree que tiene un nuevo interface físico.

Examinemos esta red:
vlan

Cuando el router tiene que dirigir tráfico, lo hace basado en la ip asignada a cada interface. Por ejemplo, en la imagen, todo el tráfico dirigido a la red 10.10.10.0/24 es dirigido al puerto ether1. Esto lo hace consultando su tabla de rutas.


Vamos a ver otro ejemplo:
vlan-tagged
De forma similar a la primera red, cuando el MT necesita comunicarse con la red 10.10.10.0/24, consulta su tabla de rutas. En este caso, el interface 10.10.10.1/24 es un interface VLAN que puede crearse con el siguiente código:

/interface vlan add name=vlan_1_e1 interface=ether1 vlan-id=1
/ip address add interface=vlan_1_e1 address=10.10.10.1/24

La primera línea crea un interface vlan con un nombre descriptivo apropiado, asocia la vlan al puerto FÍSICO ether1 y configura la vlan-id (el tag) como “1”.

La segunda línea añade una dirección ip al interface vlan.

Cualquier tráfico destinado a la red 10.10.10.0/24 abandonará el router por este interface y, ya que lo hace por un interface vlan, este tráfico va ha ser marcado con la vlan-id 1.

Así como vamos a ir examinando otros tipos de configuraciones posibles, pensar siempre que lo único que hace que un paquete abandone el router con el tag de la vlan o no, es simplemente esto: Cada vez que un paquete abandona el router POR UN INTERFAZ VLAN, será marcado con la vlan. No es más complicado que esto.


Vamos a considerar otra red:
vlan-iface2
Esta red trabaja de forma muy similar a las anteriores. Podemos configurarla con este fragmento:

/interface vlan
add name=vlan_1_e1 interface=ether1 vlan-id=1
add name=vlan_2_e1 interface=ether1 vlan-id=2
/ip address
add interface=vlan_1_e1 address=10.10.10.1/24
add interface=vlan_2_e1 address=10.10.11.1/24

En esta configuración, tenemos 2 vlans asociadas al interface físico ether1. El tráfico destinado a la red 10.10.10.0/24 abandonará el router por en interface vlan_1_e1 y será marcado con el vlan-id “1”. De la misma forma, el tráfico destinado a la red 10.10.11.0/24 abandonará el router por el interface vlan_2_e1 y será marcado con la vlan-id “2”. Si esto no queda claro, estudia la configuración de la imagen y debería quedarlo. Una nota adicional acerca de esta configuración es que cualquier dispositivo conectado al puerto FÍSICO ether1 debe ser configurado poder tratar el tag vlan para poder “ver” las direcciones 10.10.11.1 y 10.10.10.1.

Hasta este punto, hemos discutido vlans que son usadas como interfaces ENRUTADOS.

Vamos a ver ahora un par de escenarios con puentes (bridged). Recuérdese que un dispositivo con RouterOS que tiene interfaces configuradas como bridge es transparente a la red. Démos una mirada a la siguiente configuración:

/interface bridge
add name=bridge1
/interface bridge port
add interface=ether1 bridge=bridge1
add interface=ether2 bridge=bridge1
/ip address
add interface=bridge1 address=10.10.10.1/24

Con este código hemos creado un bridge y le hemos añadido los interfaces ether1 y ether2. Con esta configuración, cualquier tráfico que entre al router por el puerto ether1 será pasado al interface ether SIN TOCARSE. Esto significa que el tráfico entrante tageado, seguirá tageado en cualquier dirección. La ip que hemos añadido será alcanzable en la red pero SÓLO cuando los paquetes vayan SIN MARCAR. El router es transparente en la red pero si la red en la que está conectado tiene tráfico con tags de vlan, el router no será alcanzable en la red.

Vamos a asumir que la red del ejemplo usa vlan-id=1 para todos los paquetes. Si queremos manejar el router desde esta red, tenemos que crear un interface vlan con el bridge como interface maestro de esta forma:

/interface bridge
add name=bridge1
/interface bridge port
add interface=ether1 bridge=bridge1
add interface=ether2 bridge=bridge1
/interface vlan
add name=vlan_1_b1 interface=bridge1 vlan-id=1
/ip address
add interface=vlan_1_b1 address=10.10.10.1/24

Esta configuración causará que el router deje pasar sin tocar todo el tráfico a través del bridge, pero incluye al propio router en la vlan add name=vlan_1_b1 interface=bridge1 vlan-id=1, así que el router será manejable desde esa vlan.


Ahora veremos otro escenario común:
vlan-tag-untag
En esta situación, tenemos múltiples vlans que deben pasar a través del router. Podemos conseguirlo simplemente enlazando con un bridge ether1 y ether2, sin embargo, hay una solución más elegante si por alguna razón no deseas enlazar los dos puertos ethernet. Esta es la configuración (la explicación va seguida):

/interface bridge
add name=bridge_vlan1
add name=bridge_vlan2
/interface vlan
add name=vlan_1_e1 interface=ether1 vlan-id=1
add name=vlan_2_e1 interface=ether1 vlan-id=2
add name=vlan_1_e2 interface=ether2 vlan-id=1
add name=vlan_2_e2 interface=ether2 vlan-id=2
/interface bridge port
add interface=vlan_1_e1 bridge=bridge_vlan1
add interface=vlan_1_e2 bridge=bridge_vlan1
add interface=vlan_2_e1 bridge=bridge_vlan2
add interface=vlan_2_e2 bridge=bridge_vlan2

Para ser honesto, aunque es una configuración un poco más complicada es mi método preferido cuando hay más de una vlan que tiene que pasar a través del mismo router. La principal razón por la que prefiero este método es porque permite ver en la lista de interfaces cuanto tráfico está pasando por cada vlan.

Un inspección rápida del código debería permitir entender cómo funciona; Primero, creamos los bridges que dejan pasar el tráfico de cada vlan. Después, se crean los interfaces vlan en cada puerto ethernet físico. En la última sección, añadimos las vlan al bridge dejando pasar el tráfico CON EL TAG CORRECTO a través del router. Esto debería estar claro si aplicamos la primera premisa de que

cada vez que un paquete deja el router POR UN INTERFACE VLAN, queda marcado con esa vlan.
Examine con atención la imagen y será capaz de ver qué interface será usado para transportar el tráfico hacia dentro y hacia fuera del router.

Les ofrezco una última configuración bastante usada. Aquí está la imagen:
vlan-untag

En esta red, tenemos paquetes marcados que entran al router por ether1 (vlan-id=1) y paquetes sin marcar entrando por ether2. Los dispositivos en la red sin marcar no usarán marcas de vlan (de hecho nunca sabrán que hay una configuración de vlan implicada en la red). Todos los dispositivos de la parte izquierda del router Mikrotik usarán tags vlan. Aquí está el código de configuración:

/interface vlan
add name=vlan_1_e1 interface=ether1 vlan-id=1
/interface bridge
add name=bridge1
/interface bridge port
add interface=vlan_1_e1 bridge=bridge1
add interface=ether2 bridge=bridge1

Esta es una configuración bastante sencilla, pero requiere alguna explicación. Primero creamos un interface vlan en ether1, que estará conectado en la red marcada. Después, creamos un bridge para manejar el tráfico que pasa a través. El interface vlan se añade al bridge y al puerto físico ether2 que se añade a él. El puerto ether2 se conectará a la red sin marcar. Se deja como ejercicio a mis lectores determinar POR QUÉ esta configuración causa que salgan tanto paquetes marcados cómo sin marcar cuando salen del router.

Este es un artículo bastante largo que cubre mucha información. Por razones obvias, no podemos cubrir el 100% de las posibilidades de configuración de red existentes pero he intentado cubrir las más comunes. Espero que este artículo les sea de utilidad y profundicen más en otros de mi sitio web. Siéntase libre de añadir sus comentarios o circunstáncias especiales y cómo las ha solucionado. Si necesita hardware asegúrese de entrar en mi tienda en http://store.wispgear.net/.

lunes, 22 de septiembre de 2014

Cita de Laplace

"Les questions les plus importantes de la vie ne sont en effet, pour la plupart, que des problèmes
de probabilité".

Pierre Simon Laplace (1749 - 1827)

La distribución exponencial

Puede ser usada para responder a:

  • ¿Cuanto tiempo debemos esperar antes de que entre un cliente en la tienda?
  • ¿Cuanto tiempo pasará antes de que la centralita reciba una nueva llamada?.

El tiempo de espera es la respuesta común a esas preguntas

Todo fenómeno que implique tiempo de espera desconocido puede ser modelado mediante la distribución exponencial siempre que la probabilidad de ocurrencia durante el intervalo sea proporcional a la longitud del intervalo.

La función de probabilidad (PDF - Probability Density Function) de una distribución exponencial es

f(x;λ)=λeλx
f(x;λ)=λeλx

Donde xx es exactamente el tiempo tiempo de espera, por ejemplo, 2 años o 10 segundos.

El parámetro λλ se llama tasa o régimen (en. rate) en las mismas unidades de tiempo que el tiempo de espera.

La tasa λλ es la inversa de la duración esperada μμ.

E[X]=μ=1λ
E[X]=μ=1λ

Por ejemplo, si la tasa λλ es de cinco eventos por minuto, entonces la duración esperada de cada evento será de μ=15=0.2μ=15=0.2 minutos por evento.

Observamos que la duración esperada (o esperanza o media) se mide siempre en tiempo. La tasa o ritmo se mide siempre en eventos.

La función de probabilidad acumulada es:

P(Xx)=1eλx
P(Xx)=1eλx

Por ejemplo, la probabilidad de recibir una llamada antes de 5 minutos es
P(X5)=1e5λ
P(X5)=1e5λ

Su complementario es

P(X>x)=1P(Xx)=1(1eλx)=eλx
P(X>x)=1P(Xx)=1(1eλx)=eλx

Es decir, la probabilidad de recibir una llamada después de cinco minutos es

P(X>5)=e5λ
P(X>5)=e5λ

Como se ha dicho, el valor esperado es

E[X]=μ=1λ
E[X]=μ=1λ

y la varianza
V[X]=μ=1λ2
V[X]=μ=1λ2

Ejemplo 1: Asumamos que en una cabina telefónica las llamadas duran una media de μ=10μ=10 minutos. Si alguien llega al teléfono justo antes que usted, calcular la probabilidad de tener que esperar:
La tasa será de

λ=1μ=110=1 llamadacada 10 minutos=0.1llamadasminuto
λ=1μ=110=1 llamadacada 10 minutos=0.1llamadasminuto

a) Menos de cinco minutos.
P(X5)=1e5110=0.39
P(X5)=1e5110=0.39

b) Más de cinco minutos.
P(X>5)=e5110=0.61
P(X>5)=e5110=0.61

c) Entre 5 y 10 minutos.
P(5X10)=1[P(X5)+P(X10)]=0.23
P(5X10)=1[P(X5)+P(X10)]=0.23

También podríamos haber integrado la PDF entre 5 y 10.
P(5X10)=105110e110xdx=ex10105=0.23
P(5X10)=105110e110xdx=ex10105=0.23


Written with StackEdit.