miércoles, 11 de abril de 2018

Identificando servidores DNS IPv6 Open Resolvers

Introducción

Como muchos de ustedes saben, tener servidores DNS Open Resolvers es muy negativo, tanto para el que deja el servicio abierto como para la seguridad en Internet en general.
Este tipo de servidores se utilizan como vector de ataques de DDoS por amplificación ya que a partir de un mensaje de consulta de pequeño tamaño, se puede obtener una respuesta mucho mayor. De esta manera, ese servidor DNS se convierte en un amplificador de tráfico muy potente ya que sus consultas amplificadas pueden dirigirse a una IP específica, la cual recibiría todo ese volumen de tráfico, ocasionándole indisponibilidad de sus servicios. Para este ataque ni siquiera es necesario que el hardware esté controlado por el atacante.
Este es un problema que en WARP nos preocupa porque hemos recibido mucho reportes de incidentes relacionados a esta vulnerabilidad. Por esta razón en conjunto con el área de I+D estamos llevando a cabo un proyecto con el objetivo de conocer el estado actual de la región, identificar los open resolvers y de forma proactiva alertar y recomendar una posible corrección de la configuración de este servicio.

Identificando un DNS Open Resolvers en IPv6 (DNS abiertos)

Identificar servidores Open Resolvers o servidores DNS abiertos en el mundo de IPv4 es muy sencillo, debido a la poca longitud del espacio de IPv4 (2**32).
En el mundo de IPv6 es imposible poder verificar cada una de las direcciones IP y ejecutar una prueba de Open Resolver. Dicha prueba puede durar miles de años.

¿Cómo se identifica un DNS Open Resolver?

Un servidor DNS recursivo solo debería responder consultas (queries) a todos los clientes que se encuentren dentro de su misma red y debería rechazar cualquier otra que provenga de fuera. Por ejemplo, los servidores DNS del ISP ACME solo deberían responder a consultas de sus propios clientes, a más nadie.
La identificación se hace realizando una consulta de un nombre de dominio a los servidores DNS. En caso que el servidor DNS responde con una respuesta válida, entonces es considerado Open Resolver. Si por el contrario, devuelve un rechazo (Query refused) o sencillamente hace timed out se encuentra bien configurado, por lo que no es un Open Resolver.

¿Cómo se consiguen los resolvers de IPv6?

LACNIC administra un servidor que puede ser llamado: Root Server Reverso, específicamente la letra “D”, es decir, d.ip6-servers.arpa. Gran cantidad de consultas a direcciones IP reversas de la región de LACNIC pasan a través de este servidor, en líneas generales este servidor SOLO recibe consultas de servidores DNS. Aquí es donde obtienen las direcciones IPv6 de los DNS que realizan consultas.

Procedimiento & Algoritmo

    1. En el servidor actualmente se realiza una captura de 2.5 millones de paquetes con el filtro del puerto 53 y destinados únicamente a la dirección IP de dicho equipo.
    2. De la captura anterior se ubican solo direcciones IPv6 origen (se eliminan paquetes mal formados, errores, etc). Se desprecia menos de 1% de los paquetes
    3. De las direcciones IPv6 obtenidas en el paso 2 se crea una lista de direcciones IPs unicast (es decir, se eliminan duplicados)
    4. Un script toma cada dirección IPv6 del listado del punto 3, y realiza una consulta a la dirección www.lacnic.net hacia esa dirección, verifica recursividad y el estado de la respuesta.
    5. En caso de ser un Open Resolver dicha dirección IP quedará registrada para su posterior análisis y notificación a la organización responsable de ese recurso.

Diagrama de bloques

Vista de los Resultados

Conclusiones Primarias

Para esta primera instancia, observamos aproximadamente unos 33,514 registros de consultas realizadas al Root Server Reverso “D” administrado por LACNIC.
Luego de analizar estos primeros datos obtenidos, observamos que la región más afectada por servidores open resolver sería la de APNIC con el 19.23% de los datos obtenidos para esa zona. Para la región de Ripe obtuvimos la mayor cantidad de información, curiosamente el porcentaje de servidores mal configurados es casi insignificante (0.93%).
En lo que respecta a nuestra región detectamos 39 open resolvers (4.56%) de los 817 registros recolectados, donde existen solo 3 casos que la dirección IP se repite más de una vez.

Estudios similares

Referencias

Para leer sobre Open Resolvers se recomienda este link: https://www.certsi.es/blog/dns

Realizado por:

Dario Gomez & Alejandro Acosta


jueves, 25 de enero de 2018

Solución al error en gns3: "-bash: telnet: command not found"

Intro:
  Al ejecutar GNS3 y quererme conectar por consola a los equipos recibo el error: "-bash: telnet: command not found".  Muy probablemente luego de querer de hacer upgrade a MAC OS Sierra.
 
Solución:
  Hay que instalar telnet, recomiendo los siguientes pasos:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap theeternalsw0rd/telnet

brew install telnet



Referencias:

lunes, 22 de enero de 2018

Propuesta de una fuente confiable de enrutamiento para la región de LAC

Introducción

Recientemente fue publicado un artículo por Job Snijders llamado: “A New Source For Authoritative Routing Data”, su traducción viene a ser algo como: “Una nueva fuente de información de enrutamiento autoritativa”. (Snijders 2017)
El documento trata sobre un trabajo donde explica como varios expertos y en contribución con varias instituciones construyeron una manera de proveer a la comunidad información confiable sobre enrutamiento. Para ir entrando en detalles técnicos podemos verlo como algo entre un IRR (“Internet Routing Registry - Wikipedia” n.d.) y RPKI (“Resource Public Key Infrastructure - Wikipedia” n.d.)
En este documento se describe una propuesta de LACNIC a la comunidad, con el fin de proveer una fuente de información autoritativa confiable sobre enrutamiento que pueda utilizarse por parte de los operadores de Internet de la región.

Un poco de historia

En el post de Job Snijder se explica cómo se tomó como fuente de información confiable la base de datos de Whois de ARIN y especificamente un campo llamado Origin el cual especifica cual AS (Sistema Autónomo) es quien anunciará determinado prefijo.
Posteriormente lo que se hace con esa información es construir un archivo JSON (“JSON - Wikipedia, La Enciclopedia Libre” n.d.) el cual puede ser utilizado fácilmente por programadores y diferente software de forma muy similar a lo que hace un IRR actualmente.

¿Qué hicimos en Lacnic?

Luego de analizar el post anterior y nuestras opciones, concluimos que el campo OriginAS prácticamente no es utilizado en el WHOIS de LACNIC, por lo que no estaríamos en condiciones de extraer esa información a partir de esa fuente. Sin embargo, dado el gran porcentaje de ROAs creados en varios países de la región (“Statistics — RIPE Network Coordination Centre” n.d.), creemos conveniente utilizar RPKI como fuente de información.

¿Cómo se tomó la información de RPKI?

Para utilizar la informacion de RPKI de LACNIC trabajamos con el validador RPKI de RIPE (“Tools and Resources” n.d.), con la diferencia que removimos todos los TAL (Trust Anchor Locator) exceptuando el de LACNIC. De esta manera el validador unicamente estaría procesando los ROAs correspondientes a nuestra región. Finalmente lo que hicimos fue exportar los ROAs en formato JSON, una funcionalidad que ofrece el propio validador.

Proceso de la información de RPKI

Finalmente, utilizando un script en python3 y en base al JSON exportado del Validador de RIPE construimos un nuevo archivo de JSON, (“Tools and Resources” n.d., “Website” n.d.) con una similitud sintáctica de 95% al del proyecto previo (“Website” n.d.)(Job Snijders y compañía). En este sentido, la manera como se crea la fecha, las posiciones relativas en el archivo, los nombres de las llaves son identicos, de esta manera facilitamos la interoperatividad con scripts y software ya existente.
Adicionalmente, esta misma información se publica en format RPSL(“Routing Policy Specification Language - Wikipedia, La Enciclopedia Libre” n.d.), un formato que es más habitual para los operadores. De esta forma, se puede elegir entre ambos formatos para procesar o utilizar la información autoritativa.

Avances actuales

En base a todo lo mencionado anteriormente actualmente:
  • Se publica diariamente un dump de todos los ROAs en formato JSON
  • Se publica en RPSL la información correspondiente al AS de Origen y el prefijo (tanto v4 como v6) Lo anterior viene acompañado de un un hash de comprobación bajo SHA384 URL http://stats.labs.lacnic.net/RPKI/RPKItoJSON/

Espacio para mejoras

Sabemos que existen muchas cosas para mejorar, por el momento debemos mencionar:
  1. Publicar los archivos en un server con soporte de https

Conclusiones

Dentro de Lacnic este proyecto aun se encuentra en una etapa Alfa, a lo sumo Beta. Dependeremos 100% de los comentarios recibidos de la comunidad si deseamos llevar esta idea a un ambiente con carácter de producción. Por ello no dude en comunicarse con nosotros, somos muy buenos recibiendo quejas, comentarios y felicitaciones.

Consideraciones adicionales

En los ROAs es posible especificar una longitud máxima y mínima de prefijos a publicar, sin embargo esto no tendría una forma similar de replicarlo en el archivo de salida. Una posibilidad en IPv4 sería generar los prefijos intermedios con el mismo sistema autónomo de origen, pero en IPv6 esto no sería posible por la cantidad de direcciones involucradas. Otra posibilidad es no utilizar las longitudes mínima y máxima en los ROAs, ya que esa es la situación análoga a los IRRs. El formato JSON de salida es fácilmente convertible a RPSL, con lo cual se pueden utilizar las mismas herramientas que se utilizan para procesar la información de un IRR. Un punto a analizar es si resulta necesario poder contar con otros objetos que no están incluidos en esta base de datos auto-generada.

Por:

  • Alejandro Acosta alejandro \at lacnic dot net
  • Guillermo Cicileo guillermo \at lacnic dot net

Referencias

  1. “Internet Routing Registry - Wikipedia.” n.d. Accessed January 19, 2018. https://en.wikipedia.org/wiki/Internet_Routing_Registry.
  2. “JSON - Wikipedia, La Enciclopedia Libre.” n.d. Accessed January 19, 2018. https://es.wikipedia.org/wiki/JSON.
  3. “Resource Public Key Infrastructure - Wikipedia.” n.d. Accessed January 19, 2018. https://en.wikipedia.org/wiki/Resource_Public_Key_Infrastructure.
  4. “Routing Policy Specification Language - Wikipedia, La Enciclopedia Libre.” n.d. Accessed January 19, 2018. https://es.wikipedia.org/wiki/Routing_Policy_Specification_Language.
  5. Snijders, Job. 2017. “A New Source For Authoritative Routing Data: ARIN WHOIS.” Medium. Medium. December 19, 2017. https://medium.com/@jobsnijders/a-new-source-for-authoritative-routing-data-arin-whois-5ea6e1f774ed.
  6. “Statistics — RIPE Network Coordination Centre.” n.d. Accessed January 19, 2018. https://lirportal.ripe.net/certification/content/static/statistics/world-roas.html.
  7. “Tools and Resources.” n.d. RIPE Network Coordination Centre. Accessed January 19, 2018. https://www.ripe.net/manage-ips-and-asns/resource-management/certification/tools-and-resources.
  8. “Website.” n.d. Accessed January 19, 2018a. http://stats.labs.lacnic.net/RPKI/RPKItoJSON/.

lunes, 1 de enero de 2018

Solucion de errores: SSH "Permission denied (publickey)". Luego de upgrade. Facil y rapido

En caso de que estes recibiendo el siguiente error al hacer un ssh:


"Permission denied (publickey)."

pero extrañamente venía funcionando todo quizás fue por un upgrade de openssh o del sistema operativo.
Lo primero que te recomiendo es realizar un ssh y con algo de debug (por ejemplo con el -v)

Quedarías así:


$ ssh -v -l alejandro miserver.com

Verás algo así:

$ ssh -v -l alejandro miserver.com
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /Users/alejandroacosta/.ssh/config
debug1: /Users/alejandroacosta/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 49: Applying options for *
debug1: Connecting to miserver port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_rsa-cert type -1
debug1: identity file /Users/alejandroacosta/.ssh/id_dsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/alejandroacosta/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to miserver.com:22 as 'alejandro'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:0CjzVIchz9571bMTChmp6cMZ+9QVogt9mHSaK8JA5VQ
debug1: Host '[miserver.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /Users/alejandroacosta/.ssh/known_hosts:20
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: Skipping ssh-dss key /Users/alejandroacosta/.ssh/id_dsa - not in PubkeyAcceptedKeyTypes
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/alejandroacosta/.ssh/id_rsa
debug1: Trying private key: /Users/alejandroacosta/.ssh/id_ecdsa
debug1: Trying private key: /Users/alejandroacosta/.ssh/id_ed25519
debug1: No more authentication methods to try.
alejandro@miserver.com: Permission denied (publickey).


La linea mas importante es:

"debug1: Skipping ssh-dss key /Users/alejandroacosta/.ssh/id_dsa - not in PubkeyAcceptedKeyTypes"


Existen varias maneras de solucionarlo, muchas estan mencionadas en:

https://stackoverflow.com/questions/39715135/problems-deploying-code-with-capistrano-since-upgrading-to-macos-10-12-sierra

y

https://rolfje.wordpress.com/2016/11/12/macos-sierra-ssh-permission-denied/


Sin embargo si estas urgido, corriendo puedes solucionarlo inmediatamente haciendo esto:

Solución

echo "Host *" >> ~/.ssh/config
echo "PubkeyAcceptedKeyTypes=+ssh-dss" >> ~/.ssh/config


Mas información:

https://ro-che.info/articles/2015-12-21-permission-denied-publickey-ssh-update












sábado, 30 de diciembre de 2017

Error "no se puede abrir porque no se encuentra el elemento original"

Hola,
  Si estas en tu MAC y recibes el siguiente mensaje al conectar un dispositivo USB: "no se puede abrir porque no se encuentra el elemento original" tristemente debes reiniciar el equipo con el dispositivo conectado.

  Si, me parece super mal..., pero al menos funciona.

Referencia:
https://communities.apple.com/es/thread/160036481

viernes, 22 de diciembre de 2017

Retrospectiva de crecimiento IPv6 durante el 2017 en LAC

Hola de nuevo,
Este es un post que ya se ha venido convirtiendo en tradición en los últimos años. Básicamente lo que busco es realizar un resumen de cambios relevantes de IPv6 para algunos países de la región. Les prometo me gustaría mencionarlos a todos pero es imposible !
En esta oportunidad voy a comenzar recordando el concepto de Retrospectiva [1]:
“Retrospectiva (del latín: retrospectare) es una enumeración y celebración de eventos ya ocurridos, y normalmente organizada y presentada al final del año, en algún medio de difusión (generalmente televisión o radio), aunque también puede abarcar un período mayor del anual.”
Adicionalmente deseo dar continuidad a una frase que utilicé el año pasado para este mismo artículo el cual se lee:
“Volviendo a la retrospectiva, creo que 2016 marcó un hito importante en cuanto al crecimiento del protocolo. Quiero decir, ya no hay vuelta atrás. Si algunos aún pensaban que IPv6 era bueno, era malo, le faltaba seguridad, robustez, todas las anteriores.., pueden tener razón :-) pero aún así su despliegue lo considero imparable.“
Debo decir con toda seriedad que mantengo esas mismas palabras. En el 2017 vimos un crecimiento en Latam bastante alto impulsado por diferentes países y por muchos proveedores. Algo diferente a lo apreciado en años anteriores

¿Que ha pasado con los países de LAC durante el 2017? [2]

Uruguay

Comienzo con este país porque lo realizado en el 2017 no tiene comparación. Siendo un país de 3.5 mm de habitantes y de 176.000 km2 su grado de penetración de IPv6 en este momento es de 30% (comenzó el año en 0%). Si revisamos el ranking mundial de penetración de IPv6, UY está de 5ta posición, y lo mejor aún, con un franco crecimiento que no parece cambiar en el corto plazo. ¡ Vamos arriba UY !.

Argentina

Seguimos en el sur. Los indicadores de Argentina tuvieron sus primeros movimientos a mediados del 2016, sin embargo hay que notar que este año duplicaron su grado de penetración de IPv6 en el usuario final, comenzaron el año con menos de 2% y finalizan con más de 6%. ¡ Felicitaciones!

Perú

Hubo una época que hablar de IPv6 en Latam era casi hablar de Perú, por varios años este país fue un icono en la región. Estuvo quieto por un tiempo y a mediados de este año se les vió otro repunte.., al menos dos operadores adicionales están trabajando con v6 lo que hizo aumentar la penetración de v6 en el usuario final de 15 % a 20%. ¡Que alegría Perú!

Brasil

No podemos terminar este artículo sin mencionar al gigante de la región, un país de más de 8.000.000 km2 y de > de 200.000.000 de habitantes. Lo interesante de IPv6 y BR es la gran cantidad de distintos actores que están moviendo la aguja. Comenzaron el año con aproximadamente 11% de IPv6 en el usuario final y están terminando con más de 22%. Un gran salto para un gran país. ¡Moito bem feito!

¿Y el promedio para todo LATAM?

El 1 de Enero de 2017 el promedio de acceso IPv6 en LATAM fue de 2.26 %, hoy en día está sobre 4.27%. Esto representa un crecimiento de 94%..., 24 puntos por arriba de lo que fue en el 2016. Cuando veo estos números siempre pienso que las personas que tengan servicios hacia al cliente en Internet tienen que considerar la gran cantidad de potenciales visitantes/usuarios en v6.

¿Y sobre el mundo de contenido/servidores?

El 2017 fue un año muy bueno en este sentido, sobre todo en el segundo semestre escuchamos de varios operadores que desplegaron IPv6 en sus Data Centers, proveedores de hosting colocaron registros AAAA en los DNS apuntando a servidores Web. Varios miles de dominios en nuestra región fueron habilitados con IPv6 en el año 2017. Creo que no podemos pedir más, solo fueron buenas noticias.

¿Qué esperar para el 2018?

No soy pitoniso pero no creo que sea muy difícil pronosticar el 2018, creo que veremos gran cantidad de operadores desplegando IPv6, veremos más IPv6 en el usuario final. Las estadísticas de acceso seguirán con un crecimiento constante y estable. Creo que tendremos un repunte también en la parte de contenido IPv6 en nuestra región, confiamos que muchos proveedores y Data Centers habilitarán IPv6 en el corto/mediano plazo.
Reciban un fuerte abrazo,
#Referencias
  1. https://es.wikipedia.org/wiki/Retrospectiva
  2. http://stats.labs.lacnic.net/IPv6/graph-access.html

jueves, 14 de diciembre de 2017

Comprobado: Santa Claus SI tiene IPv6

Buenas noches,
 El día de hoy me he dado cuenta que Santa (Papa Noel) SI tiene IPv6, más específicamente tiene Doble Pila (IPv4 & IPv6). Lo anterior lo digo porque indiscutiblemente Santa le llega a casi todo el mundo, sobre todo a los que tienen Internet.
 Lo anterior lo digo porque no me cabe la menor duda de la ventaja de IPv6 para Santa, es la mejor forma de contactar a sus colegas en los países industrializados [1] donde absolutamente todos tienen cierto hasta bastante grado de penetración de IPv6, comenzando por Alemania con 33%, USA con 32%, Brasil, India y Francia con 21%, 23% y 22% respectivamente. Imaginense a Santa intentando comunicarse con esos países para pedir millones de regalos usando IPv4, sencillamente sería imposible.  Bien por estos países que se pusieron las pilas y obtuvieron un super cliente.
 Ahh, también quería contarles que me he dado cuenta lo difícil que es “perseguir virtualmente” a Santa, todos sabemos que vive en el Polo Norte, sin embargo gracias al uso de IPv6, la vasta cantidad de direcciones, el uso de direcciones IP de privacidad, no al uso de EUI-64 en las globales, quizás hasta un horroroso NAT66 me ha hecho imposible seguirlo cómodamente. Por cierto, he intentado de todo, publicidad, spam, cookies, cross site scripting, objetos embebidos y nada, definitivamente IPv6 si aumenta la privacidad. Bien por Santa !!
 Luego estuve pensando sobre los renos, el trineo y el tiempo de llevar las cosas alrededor del mundo.., creo que el concepto de Santa para movilizarse a través de los agujeros espacio - temporales [2] son propensos a fallas en IPv4.., con IPv6 y un NAT66 Stateless 1-1 (NPT) si funcionaría la cosa.
 Para los que no crean los agujeros espacio - temporales y apoyen más la teoría de de las nubes de relatividad [2] una vez más IPv6 es la respuesta…, para muestra un botón, todas las nubes hoy en día están en v6.
 Y finalmente, si no creen en ninguna de las dos anteriores, son los que apoyan la física cuántica [nuevamente 2], la explicación -mi favorita- es más sencilla aún: Santa debe tener una red de Elfos [3 ] anycasteados en todo el mundo lo que facilita su vida y puede entregar los regalos desde allí a las casas más cercanas, esta red seguro es Dual Stack, no podemos olvidarnos de los niños que tienen IPv4 por culpa que su ISP no le pone voluntad para poner IPv6. Pobres niños.


  En base a todo lo anterior, el despliegue de IPv6 es una muy buena noticia para Santa y más aún para los niños!!!.



Un fuerte abrazo y feliz navidad para todos.



Alejandro Acosta
@ITandNetworking
@LACNICLabs




viernes, 8 de diciembre de 2017

Comando oculto en Cisco. Deshabilitar negociacion de capacidad BGP

neighbor x.x.x.x dont-capability-negotiate

More info:
http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/116189-problemsolution-technology-00.html


IoT Cybersecurity

Como determinar si un string es una dirección IPv4 o IPv6 en Python3

Hola,
  Escribo este post porque en varias oportunidades me han escrito como uno puede determinar si un string es una dirección IPv4 o IPv6 en Python3.

Solución 
  Nos apoyaremos en el módulo ipaddress de python3.
  Algo tan sencillo como esto:

a='2001:db8::1'
if ipaddress.ip_address(a).version == 6:
  print ('es IPv6')
else:
  print ('es IPv4')


 Espero te ayude,

miércoles, 15 de noviembre de 2017

Reto IPv6 - Lacnic - LACTF. Resumen 2017

Se han llevado a cabo 2 versiones del Reto LACNIC IPv6 en el 2017, durante mayo y septiembre, con la participación de 30 personas registradas de 7 países en ambas versiones, con 20 y 10 participantes, respectivamente, en forma individual o en grupo.

Se integró un Comité evaluador compuesto por 5 personas reconocidas en el tema de IPv6, todas integrantes del comité del FLIP6, cuyas funciones han incluido:
- Apoyar o sugerir pláticas de temas muy concretos que ayudaron a los participantes a tener más conocimientos y herramientas, para poner y ofrecer servicios con soporte de IPv6 en sus instituciones.
- Revisar los reportes de pruebas realizadas por los participantes.
- Validar el acceso y la disponibilidad de los servicios habilitados con IPv6.

De acuerdo a un monitoreo de los dominios de los portales web de los participantes, se verificó si algunos ya tenían asociadas direcciones IPv6 aunque la conectividad a los mismos no era exitosa, por lo que fue necesario demostrar la habilitación reciente de IPv6, el soporte de ambas versiones, y también de otros servicios que pudieran ofrecer en producción con ambas versiones del protocolo, cuidando los aspectos de seguridad y disponibilidad.
Todo lo anterior sirvió de elementos (puntos) para que el comité evaluador del Reto, pudiera tomar una decisión final de posible(s) ganador(res) del mismo.

Adicionalmente, se monitorearon dominios de sitios y estado de la habilitación de IPv6 en los servicios de las aplicaciones documentados por los participantes, antes, durante y después de la última versión de los reportes de avances.
Usando diferentes herramientas como “NAT64check” (https://nat64check.ipv6-lab.net/v6score) y comandos de conectividad como ping y traceroute. En la Fig.1 se muestra la prueba previa realizada al portal de uno de los finalistas de la versión 2 del Reto.



Fig. 1. Prueba previa realizada al portal de uno de los participantes del Reto

Se creó una sección en el Portal de IPv6 de LACNIC (http://portalipv6.lacnic.net/reto-ipv6) donde se incluyeron respuestas a las preguntas mostradas en la Fig. 2, del cartel promocional del Reto:


Fig. 2. Cartel promocional del Reto LACNIC IPv6

A los participantes de ambas ediciones del Reto se les ofreció un Webcast para aclarar dudas y recibir retroalimentación, además se creó una cuenta de correo con la participación del Comité evaluador.
En los reportes de avances se les solicitó reseñar lo realizado hasta cada momento (pruebas, reuniones con personal técnico y administrativo, etc.) para documentar:
- Reseña de la opción de obtención de bloque propio o usar el proporcionado por un proveedor (ISP). Si enviaron la solicitud de bloque al staff de LACNIC, indicando el status, y la documentación de los trámites.
- La indicación del grado de uso y anuncio del prefijo asignado con resultados de pruebas y el listado de servicios con soporte de IPv6.
- Aciertos y dificultades encontradas.
- Avances incrementales (# de servicios y usuarios con soporte de IPv6).
- Capturas de pantalla que comprobaran el punto anterior.
- En tablas con datos de los resultados de comandos como: ipconfig, ifconfig, ping, traceroute, netstat, etc.
- Indicación de los servicios que se ofrecieron también con IPv6.
- Confirmación del o los dominios de los servicios.
- Los pendientes y metas por lograr posteriormente.

Se fijaron varias fechas a cumplir por los participantes del Reto para el envío de una 1er. y 2a. versión del reporte de avances.

Así, en la retroalimentación del Reto de mayo, se recibieron 3 reportes de avance y tomando en cuenta sus aportaciones, se designaron 2 finalistas.
Por otra parte en la 2a. versión del Reto de septiembre, se recibieron únicamente 2 reportes de avance, por lo que la decisión de los finalistas fue más inmediata por parte del comité evaluador.

Finalmente después de cada premiación a los ganadores se les solicito, como parte de los resultados esperados de los datos de los reportes, el trabajar en un par de párrafos para publicar una nota al respecto en la publicación de LACNIC. Donde tuvieron que resumir lo realizado y comentar sobre la experiencia de participación en el Reto IPv6 LACNIC 2017 que incluyó lo que los impulsó a participar, los desafíos y dificultades sobre la implementación y uso de IPv6, los avances medibles, así como los procesos internos que se tuvieron que realizar y superar. Por lo que se les pidió contestar a las preguntas:

* ¿Qué los impulsó a participar en el Reto IPv6?
* ¿Con qué desafío se encontraron en el proceso?
* ¿Qué avances ha logrado implementar su institución en relación a IPv6?
* ¿Cree que las organizaciones son conscientes de la necesidad del despliegue de IPv6 o todavía piensan que lo ven como algo lejano?
* ¿Cómo ha sido el proceso interno en su institución para decidir avanzar en el despliegue de IPv6?
* ¿Cuáles son las principales dificultades a la hora de discutir sobre la implementación de IPv6?

Reflexión final:
Me ha parecido una experiencia muy alentadora la participación que espero se vaya incrementando y articulando con otras actividades dentro de LACNIC. Todos a final de cuentas seguimos aprendiendo de este tipo de iniciativas para mejorarlas y agregar más elementos al Reto mismo, como el grado de complejidad pero para motivar mas la participación, creatividad y obtener mejores resultados que se puedan dar a conocer.

El desafío a seguir promoviendo como una oportunidad de aplicar IPv6 en servicios en producción por parte de las entidades participantes miembros de LACNIC o de la región, sin lugar a dudas servirá para incrementar aún más el uso y despliegue de IPv6, compartir experiencias, y alentar a quienes no ven como caso de estudio y menos de negocio el habilitar servicios también con IPv6.

Referencias:

- Sección del Reto en el Portal de IPv6 de LACNIC (http://portalipv6.lacnic.net/reto-ipv6)
- Introducing NAT64 Checker
https://labs.ripe.net/Members/JanZorz/introducing-nat64-checker


Autor:
Azael Fernandez Alcantara
@lactf


jueves, 24 de agosto de 2017

Google DNS --- Averiguando cual Cluster estas utilizando

(this is -almost- a copy / paste of an email sent by Erik Sundberg to nanog mailing list on 
August 23). 
This post is being posted with his explicit permission.


I sent this out on the outage list, with a lots of good feedback sent to 
me. So I 
figured it would be useful to share the information on nanog as well.

A couple months ago had to troubleshoot a google DNS issue with Google’s 
NOC. Below 
is some helpful information on how to determine which DNS Cluster you are 
going to.

Let’s remember that Google runs DNS Anycast for DNS queries to 8.8.8.8 
and 8.8.4.4. 
Anycast routes your DNS queries to the closes DNS cluster based on the 
best route / 
lowest metric to 8.8.8.8/8.8.4.4.   Google has deployed multiple DNS 
clusters across 
the world and each DNS Cluster has multiple servers.

So a DNS query in Chicago will go to a different DNS clusters than queries 
from a 
device in Atlanta or New York.


How to get a list of google DNS Cluster’s.
dig -t TXT +short locations.publicdns.goog. @8.8.8.8

How to print this list in a table format. 
Script from: https://developers.google.com/speed/public-dns/faq
---------------
#!/bin/bash
IFS="\"$IFS"
for LOC in $(dig -t TXT +short locations.publicdns.goog. @8.8.8.8)
do
  case $LOC in
    '') : ;;
    *.*|*:*) printf '%s ' ${LOC} ;;
    *) printf '%s\n' ${LOC} ;;
  esac
done
---------------

Which will give you a list like below. This is all of the IP network’s 
that google
uses for their DNS Clusters and their associated locations.

74.125.18.0/26 iad
74.125.18.64/26 iad
74.125.18.128/26 syd
74.125.18.192/26 lhr
74.125.19.0/24 mrn
74.125.41.0/24 tpe
74.125.42.0/24 atl
74.125.44.0/24 mrn
74.125.45.0/24 tul
74.125.46.0/24 lpp
74.125.47.0/24 bru
74.125.72.0/24 cbf
74.125.73.0/24 bru
74.125.74.0/24 lpp
74.125.75.0/24 chs
74.125.76.0/24 cbf
74.125.77.0/24 chs
74.125.79.0/24 lpp
74.125.80.0/24 dls
74.125.81.0/24 dub
74.125.92.0/24 mrn
74.125.93.0/24 cbf
74.125.112.0/24 lpp
74.125.113.0/24 cbf
74.125.115.0/24 tul
74.125.176.0/24 mrn
74.125.177.0/24 atl
74.125.179.0/24 cbf
74.125.181.0/24 bru
74.125.182.0/24 cbf
74.125.183.0/24 cbf
74.125.184.0/24 chs
74.125.186.0/24 dls
74.125.187.0/24 dls
74.125.190.0/24 sin
74.125.191.0/24 tul
172.217.32.0/26 lhr
172.217.32.64/26 lhr
172.217.32.128/26 sin
172.217.33.0/26 syd
172.217.33.64/26 syd
172.217.33.128/26 fra
172.217.33.192/26 fra
172.217.34.0/26 fra
172.217.34.64/26 bom
172.217.34.192/26 bom
172.217.35.0/24 gru
172.217.36.0/24 atl
172.217.37.0/24 gru
173.194.90.0/24 cbf
173.194.91.0/24 scl
173.194.93.0/24 tpe
173.194.94.0/24 cbf
173.194.95.0/24 tul
173.194.97.0/24 chs
173.194.98.0/24 lpp
173.194.99.0/24 tul
173.194.100.0/24 mrn
173.194.101.0/24 tul
173.194.102.0/24 atl
173.194.103.0/24 cbf
173.194.168.0/26 nrt
173.194.168.64/26 nrt
173.194.168.128/26 nrt
173.194.168.192/26 iad
173.194.169.0/24 grq
173.194.170.0/24 grq
173.194.171.0/24 tpe
2404:6800:4000::/48 bom
2404:6800:4003::/48 sin
2404:6800:4006::/48 syd
2404:6800:4008::/48 tpe
2404:6800:400b::/48 nrt
2607:f8b0:4001::/48 cbf
2607:f8b0:4002::/48 atl
2607:f8b0:4003::/48 tul
2607:f8b0:4004::/48 iad
2607:f8b0:400c::/48 chs
2607:f8b0:400d::/48 mrn
2607:f8b0:400e::/48 dls
2800:3f0:4001::/48 gru
2800:3f0:4003::/48 scl
2a00:1450:4001::/48 fra
2a00:1450:4009::/48 lhr
2a00:1450:400b::/48 dub
2a00:1450:400c::/48 bru
2a00:1450:4010::/48 lpp
2a00:1450:4013::/48 grq

There are
IPv4 Networks: 68
IPv6 Networks: 20
DNS Cluster’s Identified by POP Code’s: 20

DNS Clusters identified by POP Code to City, State, or Country. Not all of 
these are 
Google’s Core Datacenters, some of them are Edge Points of Presences (POPs). 
https://peering.google.com/#/infrastructure and 
https://www.google.com/about/datacenters/inside/locations/

Most of these are airport codes, it did my best to get the location correct.
iad          Washington, DC
syd         Sydney, Australia
lhr          London, UK
mrn        Lenoir, NC
tpe         Taiwan
atl          Altanta, GA
tul          Tulsa, OK
lpp          Findland
bru         Brussels, Belgium
cbf         Council Bluffs, IA
chs         Charleston, SC
dls          The Dalles, Oregon
dub        Dublin, Ireland
sin          Singapore
fra          Frankfort, Germany
bom       Mumbai, India
gru         Sao Paulo, Brazil
scl          Santiago, Chile
nrt          Tokyo, Japan
grq         Groningen, Netherlans



Which Google DNS Server Cluster am I using. I am testing this from 
Chicago, IL
# dig o-o.myaddr.l.google.com -t txt +short @8.8.8.8
"173.194.94.135"                     <<<<<dig o-o.myaddr.l.google.com -t 
txt +short @8.8.8.8
"74.125.42.138" "173.194.102.132" "74.125.177.5" "74.125.177.74" "74.125.177.71" 
"74.125.177.4" Which all are Google DNS Networks in Atlanta. 74.125.42.0/24 atl 
 74.125.177.0/24 atl 172.217.36.0/24 atl 173.194.102.0/24 atl 2607:f8b0:4002::/48 atl

 Just thought it would be helpful when troubleshooting google DNS issues.



(one more time: this is -almost- a copy / paste of an email sent by Erik Sundberg to nanog mailing 
list on August 23). This post is being posted with his explicit permission.


martes, 22 de agosto de 2017

Prueba de ping MUY sencilla con IPv6. Comparativa IPv4 - IPv6 haciendo ping a la loopback

Hola,
  Recientemente estuve haciendo unas pruebas de ping a las direcciones de loopback de Windows, Linux y MAC.
  Si haces ping6 a tu loopback (digamos 1000 paquetes) con Windows o Linux, IPv6 es más rápido.
  Ahora intenta lo mismo en MAC (El Capitan).., IPv6 es 20-25% más lento.
  Hice lo mismo en varios dispositivos y le pedí a varios amigos que hicieran la misma prueba. Todos obtuvieron el mismo resultado


MAC:
--- 127.0.0.1 ping statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.037/0.098/1.062/0.112 ms
--- ::1 ping6 statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.058/0.120/0.194/0.027 ms



Linux:
--- 127.0.0.1 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 98999ms
rtt min/avg/max/mdev = 0.015/0.021/0.049/0.007 ms

--- ::1 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 99013ms
rtt min/avg/max/mdev = 0.019/0.031/0.040/0.004 ms


Windows 10:

Ping statistics for ::1:
    Packets: Sent = 100, Received = 100, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms


Ping statistics for 127.0.0.1:
    Packets: Sent = 100, Received = 100, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 4ms, Average = 0ms


Esto es todo,

jueves, 10 de agosto de 2017

Manera muy sencilla de incrementar el volumen de un archivo mp3. Utilizando Lame en Linux o MAC

Objetivo: 
    Incrementar el volumen de un archivo de audio 

Que necesito: 
   lame 

Instalación: 
   apt-get install lame
 o 
   brew install lame 

Ejemplo: 
  #lame --scale 2 archivo-orignal.mp3 archivo-con-volumen-incrementado.mp3 

 Listo!!

Video: Revisando la nueva características AddPaths-Limit en FRR. Una mejora al tradicional AddPath de BGP

  En el video recorremos y realizamos un Demo sobre el draft "Paths Limit for Multiple Paths in BGP ". Un documento que viene a se...