VPSs y mas.

Mostrando entradas con la etiqueta red. Mostrar todas las entradas
Mostrando entradas con la etiqueta red. Mostrar todas las entradas

miércoles, 7 de septiembre de 2011

Utizando Netem. Simulando escenarios de red. Ejemplos de tc/netem

Problema:
  Deseo simular algunos escenarios de red.
    a) Simular en un salto satelital
    b) Simular perdida de paquetes

  Lo anterior es de mucha utilidad porque permite probar escenarios -casi reales-. Se pueden probar aplicaciones y conocer como se comportan ante una alta tasa de pérdida de paquetes y/o ante altos tiempos de respuesta. Otra opción es conocer el comportamiento ante pérdidad y/o RTT aleatorios y muchas otras cosas.


Solución:
  Netem (Network Emulacion) que permite simular escenarios de red muy tipicos en redes WAN, MAN y Satelitales.
   Netem es controlado con el comando tc que es parte de iproute2

Ejemplos:

a)  Simular el Round Trip Time de un salto satelital (550 ms):

# tc qdisc add dev eth0 root netem delay 550ms

Fijense del tiempo del ping antes y durante el comando (salto del 10 al 11):

[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=51.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=53 time=48.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=53 time=50.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=53 time=49.8 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=53 time=51.8 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=53 time=50.4 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=53 time=49.9 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=53 time=50.6 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=53 time=51.1 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=53 time=50.6 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=53 time=601 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=53 time=600 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=53 time=601 ms
64 bytes from 8.8.8.8: icmp_seq=14 ttl=53 time=600 ms
64 bytes from 8.8.8.8: icmp_seq=15 ttl=53 time=600 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=53 time=600 ms


b) Simular una red WAN con tiempos de mayor variación (de 100 ms - 10 ms) de manera aleatoria:

# tc qdisc change dev eth0 root netem delay 100ms 10ms

64 bytes from 8.8.8.8: icmp_seq=60 ttl=53 time=49.3 ms
64 bytes from 8.8.8.8: icmp_seq=61 ttl=53 time=50.5 ms
64 bytes from 8.8.8.8: icmp_seq=62 ttl=53 time=59.6 ms
64 bytes from 8.8.8.8: icmp_seq=63 ttl=53 time=50.7 ms
64 bytes from 8.8.8.8: icmp_seq=64 ttl=53 time=49.6 ms
64 bytes from 8.8.8.8: icmp_seq=65 ttl=53 time=143 ms
64 bytes from 8.8.8.8: icmp_seq=66 ttl=53 time=152 ms
64 bytes from 8.8.8.8: icmp_seq=67 ttl=53 time=157 ms
64 bytes from 8.8.8.8: icmp_seq=68 ttl=53 time=153 ms
64 bytes from 8.8.8.8: icmp_seq=69 ttl=53 time=159 ms
64 bytes from 8.8.8.8: icmp_seq=70 ttl=53 time=155 ms


c) Simular perdida % de paquetes:


 # tc qdisc change dev eth0 root netem loss 0.1%

El comando anterior ocasiona una pérdida de 1/1000 paquetes descartados de manera aleatoria

Más opciones:
Existen muchas otras opciones como:
  a) Duplicar paquetes
     # tc qdisc change dev eth0 root netem duplicate 9%


  b) Corromper (dañar) un paquete:
     # tc qdisc change dev eth0 root netem corrupt 0.1%

Mas información:
http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
http://www.cyberciti.biz/faq/linux-traffic-shaping-using-tc-to-control-http-traffic/

miércoles, 11 de mayo de 2011

IPv6 con DD-WRT. Configurando 6to4

Introduccion:

  Deseo configurar 6to4 en mi router con DD-WRT y ofrecer IPv6 en mi red Wireless/LAN.

  Cansado de tener que levantar el tunel manualmente?, es incomodo hacer pruebas?, deseas ofrecer IPv6 a toda tu red (gratis!). Entonces este post es para tí.

Que se necesita:

  - Una version standard de dd-wrt o VoIP. Estas son las unicas versiones que soportan IPv6 y radvd

  - Tu ISP debe asignarte una direccion IPv4 valida (la cual estaria en la WAN del AP)

  - En mi caso utilice un Linksys WRT-54GL pero cualquier otro equipo con la version correcta de DD-WRT funcionara


Pasos:

a.- Ir a Administration --> Management --> habilitar  IPv6 y radvd. 

b.-  Copiar el siguiente texto en el area de radvd. Esto se utiliza para que radvd (similar a un DHCP server) anuncie el prefijo IPv6 hacia la red LAN a traves de la interfaz br0 (LAN del AP)
 
interface br0 {
   MinRtrAdvInterval 3;
   MaxRtrAdvInterval 10;
   AdvLinkMTU 1280;
   AdvSendAdvert on;
   prefix 0:0:0:1::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvValidLifetime 86400;
    AdvPreferredLifetime 86400;
    Base6to4Interface vlan1;
    AdvRouterAddr on;
   };
};


c.-  Es necesario colocar el siguiente script como script de inicio "Startup Script". Para ello: Administration -->; Commands

insmod /lib/modules/`uname -r`/ipv6.o
sleep 5
radvd -C /tmp/radvd.conf start
sleep 5
WANIP=$(ip -4 addr show dev vlan1 | awk '/inet / {print $2}' | cut -d/ -f1)
if [ -n "$WANIP" ]
then
 V6PREFIX=$(printf '2002:%02x%02x:%02x%02x' $(echo $WANIP | tr . ' '))
 ip tunnel add tun6to4 mode sit ttl 255 remote any local $WANIP
 ip link set tun6to4 mtu 1280
 ip link set tun6to4 up
 ip addr add $V6PREFIX:0::1/16 dev tun6to4
 ip addr add $V6PREFIX:1::1/64 dev br0
 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
 kill -HUP $(cat /var/run/radvd.pid)
fi

d.- Posteriormente es necesario grabar "Save startup".



Nota:
El script anterior fue tomado de www.dd-wrt.com dice que es utilizado en la version v24 sp1, sin embargo yo lo estoy utilizando version en la v24 sp2. De hecho, el procedimiento encontrado para sp2 no me funcionó


e.- Reiniciar el AP y la interfaz en tu PC


Chequeo:


Posteriormente revisar tu interfaz de tu equipo y debes tener una direccion IPv6 que comienza por 2002/16


[root@localhost ~]# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:1A:73:05:29:E3
          inet addr:192.168.127.106  Bcast:192.168.127.255  Mask:255.255.255.0
         
inet6 addr: 2002:be48:e7b1:1:21a:73ff:fe05:29e3/64 Scope:Global
          inet6 addr: fe80::21a:73ff:fe05:29e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3785 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3931 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3307204 (3.1 MiB)  TX bytes:750331 (732.7 KiB)



y logicamente un ping a ipv6.google.com:


[root@localhost ~]# ping6 ipv6.google.com
PING ipv6.google.com(yi-in-x6a.1e100.net) 56 data bytes
64 bytes from yi-in-x6a.1e100.net: icmp_seq=1 ttl=53 time=198 ms
64 bytes from yi-in-x6a.1e100.net: icmp_seq=2 ttl=53 time=203 ms
64 bytes from yi-in-x6a.1e100.net: icmp_seq=3 ttl=53 time=199 ms
64 bytes from yi-in-x6a.1e100.net: icmp_seq=4 ttl=53 time=202 ms




Mas info para probar IPv6:



http://acostanetwork.blogspot.com/2009/04/probar-ipv6.html



Para mas informacion sobre 6to4 y DD-WRT:


- http://www.dd-wrt.com/wiki/index.php/IPv6

lunes, 14 de marzo de 2011

Historico de tablas BGP. ¿Hijack de mi red?

Descripcion:
Si eres un administrador de routers que manejen tablas BGP (probablemente un ISP) quizás publicas tus propios prefijos/subredes a tu upstream provider desde tu Sistema Autonomo (AS).
Ahora bien, debes saber que tu mismo prefijo o uno muy similar (quizás un prefijo más grande o chico) puede ser -por algún error o ataque- publicado desde otro AS en otra parte del mundo. Lamentablemente esto es algo que ocurre y hay que estar preparado.

Problema:
Pienso haber sufrido un hijack de mis prefijos IP (publicadas desde un AS diferente al mio) y necesito verificarlo.
Para este inconveniente te recomiendo utilizar un routeview especificamente la herramienta BGPlay. BGPplay me permito decir que es una herramienta excelente y gratuita realizada en Java que permite buscar un prefijo y el te indicará cualquier cambio en los ultimos 10 días.
Para utilizar BGPPlay:
1) Dirigete a la pagina http://bgplay.routeviews.org/
2) Haz click sobre el boton "Start BGPlay"
3) Luego se cargará el applet de Java, allí indicas cual es tu prefijo un rango de fecha donde deseas consultar
4) Hacer click sobre Ok
5) Analizar los resultados


Recomendación:
Tener Alarmas!; para ello deseo sugerirte el sitio web: http://www.bgpmon.net/ . BGPmon es un sitio gratis dedicado al monitoreo y analisis de tablas BGP. Lo más significativo que tiene es que puedes indicar cuales son tus prefijos, tu AS y en caso de existir algún cambio ellos te envian un correo. Por ejemplo puedes configurar las siguientes alarmas:
- En caso de existir algún otro AS que comienza a publicar algún prefijo tuyo te enviaran un correo
- Redes nuevas
- Cambios significativos de path
- Redes subneteadas
- Retiro/withdraw de redes

Suerte, espero sea de tu utilidad,

miércoles, 17 de noviembre de 2010

Resultados del estudio de penetracion de IPv6 en paises Hispano Parlantes

Introducción:
Recientemente he estado trabajando en un estudio para conocer la penetración de IPv6 en aquellos paises que hablen español.

Resumen del estudio:

El presente estudio tuvo la finalidad conocer la penetración de IPv6 en el usuario final en el mundo de habla hispana. Se realiza una comparación de accesos IPv4 vs IPv6 de distintos sitios, análisis de Sistema Operativo y navegadores utilizados entre otras variables de interés para el estudio. Es un estudio práctico y muy eficiente, basado en otros estudios realizados por RIPE y APNIC. El estudio consiste en colocar objetos JavaScript dentro de páginas HTML los cuales tienen acceso a servidores Web en el punto IPv4 y en el mundo IPv6; en este sentido el usuario final necesitará descargar los objetos de ambos servidores; finalmente viene un análisis de los resultados

Resumen de los resultados:

- Los países con mayor penetración IPv6 son Colombia y Venezuela
- Casi no existe configuración de DNS reversos sobre direcciones IPv6
- La penetración (asumiendo IPv4=100%) de IPv6 es de 3.07 %

Mas información:
Los resultados completos lo pueden ver en la página de Lacnog especificamente aquí.

jueves, 7 de mayo de 2009

Integrar Blogspot con Google Analytics

Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog.
Cual fue mi sorpresa cuando al momento de la integración Google Analytics te solicita la inserción de cierto código sobre la directiva body del la página html.
Luego de buscar dentro de mi cuenta de blogspot no conseguí como hacer eso :-(

Finalmente, después de navegar en la red conseguí esta solución y funciona perfecto. Este es el procedimiento:

a) Entra en google analytics con tu cuenta
b) Obten el código html a ser insertado en la(s) páginas Web
c) Luego entra en tu cuenta de blogspot
d) Click en Diseño
e) Seleccionar "Edición de HTML"
f) Copiar y pegar el código de google analytics exactamente entre los tags final de body y del final de html

Por último, para probar si esta funcionando entra en: http://google.com/analytics/ y revisa si se encuentra recogiendo información. Recomiendo que esperes al menos un día para ver si efectivamente se encuentra funcionando.

Por el momento me encuentro averiguando una manera sencilla de redactar copy/paste código html/xml y que luego se muestre correctamente en el blog.

Suerte,

miércoles, 1 de abril de 2009

Tienes una red y quieres ir a IPv6?

Si tienes una red, trabajas en un proveedor de servicio y deseas ir a IPv6. Te recomiendo ver esta presentación en power point y ver el video:

http://www.lacnic.net/documentos/lacnicxi/presentaciones/presentacion-lacnic-v6-may-08_Alejandro_Acosta.ppt


mms://lacnic.net/webcasting/lacnicxi/29_5/flip6-04-alejandro.wmv

(para ver el video, te recomiendo copy/paste el URL en tu navegador)