VPSs y mas.

martes, 23 de diciembre de 2014

Retrospectiva: Acceso IPv6 en la region Latinoamerica y Caribe (LAC)

Buenas tardes,

 Este año deseo enviar un correo un poco diferente a los anteriores, ¿Por qué?. Porque existen aspectos distintos a años anteriores, voy a enumerar solos dos para no extenderme y en honor a vuestro tiempo.

   a) Este será mi último período como moderador de la lista. No voy a postularme para 2015-2017 (muy pronto habrá un llamado de selección), y

   b) En mi opinión personal el despliegue de IPv6 este año ha sido significativo en la región de LAC.

 En base a lo anterior, puntualmente el item número 2 y tomando en cuenta  que finaliza el año 2014, es el mejor momento para utilizar la palabra "Retrospectiva", definida en Wikipedia [1] como: "..... es una enumeración y celebración de eventos ya ocurridos ....", vamos a comentar al respecto en nuestra region.

Les dejo mi humilde análisis sin ser estadista ni literato

1) El Caso Perú:
 Este caso específico se ha discutido mucho en la lista. Tanto así que conllevó a una de los más tormentosos intercambios de correos en los últimos años [2], [3] y [4].

 En este momento, al menos según datos de Google la penetración de tráfico IPv6 en el país es de 10%, siendo el único país de la region con doble dígito y uniéndose al grupo mundial de países con  penetración mayor al 10% junto a  Alemania (12.35), USA (10.95), Suiza (10.28) (espero no haber olvidado ningún otro).

 Como información adicional, desde Lacnic comenzamos el observatorio de tráfico IPv6 para los países de nuestra región en Mayo de este año, específicamente para Perú nuestras primeras mediciones daban en aquel entonces un grado de penetración de 4.6% y observando caídas hasta de 3.4%. Después del 18 de Junio apreciamos un crecimiento sostenido de tráfico IPv6 y superando como se mencionó anteriormente el 10%.

2) El Caso Ecuador

 Ecuador es un país con una rata relativamente baja de penetración de Internet en la población (35% para el 2012 según [6]) sin embargo con una infraestructura que ha mejorado notablemente en los últimos 2.5 años - según [7]-.  Por ello voy a trabajar en base a que Ecuador tiene una penetración de Internet de 40%

Para nuestro observatorio, Ecuador es el país con mayor velocidad de adopción de IPv6 en la región, en menos de 60 días pasaron de tener menos de 1% a más de 3.6%.

  Teniendo en cuenta que 40% de ~16.000.000 de la población tiene Internet quiere decir que pasaron de: 64.000 abonados a 229.000 entre Octubre y Diciembre.

3) El caso Brasil
 Para este caso en particular me hubiese gustado incluso llegar a estadísticas de dispositivos conectados, computadoras en el país pero me costo conseguir data actualizada (ubiqué hasta 2011), pero de igual manera quería indicar:

 Segun [5] Brasil tiene 202.000.000 de habitantes, donde 107,822,831 (2014) son usuarios de Internet lo que representa 53% de la población.

 En base que en este momento la tasa de penetración de IPv6 para este país indica 0.17% podemos asumir que hay 183.298 usuarios.

 Estoy seguro que muchos pensarán que es un número bajo, pero desde Mayo 2014 hasta mediados de agosto fue un número fijo de 0.03%, es decir apenas 60.000 usuarios, incrementaron más de 280.000 abonados en un lapso de 7 meses, ello se traduce a un incremento superior a 400 %.

 Finalmente, es perceptible que subir  el porcentaje en un país como Brasil es muy complicado por su gran cantidad de población. En cualquier otro país si colocamos 200.000 suscriptores ya hace bastante mella en los termómetros de IPv6.

4) El caso Bolivia


 Bolivia parece ser un evento MUY importante que esta ocurriendo sin pena ni gloria. No ha habido discusión en la lista y en lo personal no he escuchado mucho (¿nada?) en otros medios.

 Pero en definitiva se merecen un aplauso, nuestros respetos y nuestras felicitaciones.

 En estos momentos el país tienen ~0.70% de tráfico IPv6, habiendo comenzado su despliegue a mediados de año con mayor énfasis a finales de Agosto.

 Por ahora, el número global del país no lo vemos crecer significativamente porque al parecer es un proveedor pequeño (una cooperativa) quienes estan llevando a cabo el despliegue. De igual manera una vez más extiendo mis felicitaciones.

5) Promedio de LAC

 Dentro de las mediciones realizadas por Lacnic hemos calculado el promedio de los países de la región obteniendo un promedio para LAC alrededor del 0.5%.

 El punto el cual considero resaltante en LAC es que para mediados de Junio el porcentaje era: 0.12%..., quiere decir que en el lapso de seis meses se ha cuadruplicado la adopción de IPv6 en la región.

¿Qué esperar para el 2015?
 Indiscutiblemente deseamos ver un despliegue muy fuerte para el próximo año en la región de LAC. Recuerdo comenzando el 2014 pronostiqué 0.4% de tráfico al finalizar el año y afortunadamente me quedé corto (¡¡me alegra haberme equivocado!!).

 Mi predicción -y lo digo solo para dejarlo público-, pienso que en el 2015 vamos a llegar a 2.5% pero honestamente esta muy díficil decir algo certero, quizás más complicado que el pronóstico del tiempo y el fútbol juntos. Son muchas las organizaciones que sabemos que están implementado IPv6, universidades, gobiernos, ISPs, en todos los países y en todas las regiones. Lógicamente espero quedarme corto pero solo indicar 5 veces el número actual es bastante prometedor.

Una vez mas: ¿alguna killer application?
 Deseo mencionar algo muy llamativo que ocurrió en repetidas oportunidades este año y pienso que es un motivador gigante:

 Hubo muchas empresas en LAC que querían conectarse a empresas en Asia…, en LAC tenían IPv4 pero en Asia no, es decir, necesitaban IPv6, para comunicarse, esto trajo consigo que el ISP en nuestra región tuvo que correr e implementar IPv6 o perdía al cliente. Con lo anterior, recordemos que los países no estan solos, Internet no tiene fronteras, necesitan comunicarse con el resto del mundo. Los países que no implementen IPv6 corren el riesgo de quedarse incomunicados. Quizás ustedes aún tengan IPv4 pero el otro extremos no necesariamente tenga.

 Sin querer extenderme mucho más, mis mejores deseos en esta navidad, espero la pasen en familia y anhelo tengan tengan un 2015 espectacular.

Abrazos.

Alejandro Acosta,
Moderador LACTF
Chair FLIP6



 Todos los números arriba indicados fueron tomados de: IPv6 Google stats, Cisco IPv6 stats y APNIC IPv6 stats.

[1] http://es.wikipedia.org/wiki/Retrospectiva
[2] https://mail.lacnic.net/pipermail/lactf/2014-February/005333.html
[3] https://mail.lacnic.net/pipermail/lactf//2013-April/004805.html
[4] https://mail.lacnic.net/pipermail/lactf/2014-October/005513.html
[5] http://www.internetlivestats.com/internet-users/
[6] http://en.wikipedia.org/wiki/Telecommunications_in_Ecuador
[7] http://gringosabroad.com/ecuador/ecuador-internet-2013/
[8] http://data.worldbank.org/region/LAC

martes, 9 de diciembre de 2014

Python Script: Probably useless but functional IPv6 Network scanner

Below is the code of what is probably useless but a functional IPv6 host scanner written in Python using threading.

To perform a regular (brute force) network scans in an IPv6 Network is almost impossible and it can take over 5.000 years to finish.

This project was purely academic and I just wanted to learn about threading in Python.

This software is not recommended for general usage.....

This  script  will call the OS to actually perform the ping

This software receives two parameters:
a) Prefix to scan in the format 2001:db8::/64 (subnet, not host)
b) Number of simultaneous processes it can run (MAXPINGS)

One more time it was purely academic stuff but hopefully it can make your day

Finally, AFAIK nmap does not yet support IPv6 network scan.

The code was written in python3:

--- cut here ---

#!/usr/bin/python3

import threading
import sys
import ipaddress
import subprocess
import time

CURRENTPINGS=0 # Number of simultaneous ping at a time

def DOPING6(IPv6ADDRESS):
  global MAXPINGS, CURRENTPINGS
  CURRENTPINGS+=1
  CMD="ping6 -c 3 "+str(IPv6ADDRESS) + " 2> /dev/null > /dev/null"
  return_code = subprocess.call(CMD, shell=True)
  if return_code == 0:  #If ping was succesful
    print (IPv6ADDRESS," is alive")

  CURRENTPINGS-=1

def main():
  global MAXPINGS, CURRENTPINGS
  if len(sys.argv) != 3: #Validate how many parameters we are receiving
    print("  Not enough or too many parameter")
    print("  Usage: ./scanipv6.py IPv6Prefix/lenght MAXPINGS")
    print("  Example: ./scanipv6.py 2001:db8::/64 20")
    print("  Prefix lenght can be between 64-128")
    print("  MAXPINGS corresponds to how many pings will be running at the same time")
    exit()

  SUBNET,MASK=sys.argv[1].split("/")
  MAXPINGS=int(sys.argv[2])

  for addr in ipaddress.IPv6Network(sys.argv[1]):  #Let's loop for each address in the Block
    ping_thread=threading.Thread(target=DOPING6,args=(addr,))

    while CURRENTPINGS >= MAXPINGS: # With this while we make it possible to run max simultaneous pings
      time.sleep(1)  # Let's wait one second before proceeding
      #print ("Interrumping...., CURRENTPINGS > MAXPINGS") #Uncomment this line just for debugging

    ping_thread.start()

main()