<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El Blog de Marcelo!</title>
	<atom:link href="http://blog.marcelofernandez.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marcelofernandez.info</link>
	<description>Blog Informático sobre Programación, Software Libre y/o Open Source, Linux, Python y alguna que otra cosa más...</description>
	<lastBuildDate>Wed, 04 Jan 2023 13:34:07 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
		<item>
		<title>Volviendo a Escribir &#8211; QUIC y HTTP/3</title>
		<link>http://blog.marcelofernandez.info/2023/01/volviendo-a-escribir-quic-y-http-3/</link>
					<comments>http://blog.marcelofernandez.info/2023/01/volviendo-a-escribir-quic-y-http-3/#comments</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Wed, 04 Jan 2023 13:33:16 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[http/3]]></category>
		<category><![CDATA[quic]]></category>
		<category><![CDATA[redes]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1680</guid>

					<description><![CDATA[De a poquito y con el reset del año, vuelven las ganas de leer y aprender sobre temas nuevos para escribir algo de texto y código como output de lo aprendido. En este caso, y para complementar aquello que escribí sobre HTTP/2, estoy preparando algo similar pero sobre QUIC como protocolo de transporte y HTTP/3 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>De a poquito y con el reset del año, vuelven las ganas de leer y aprender sobre temas nuevos para escribir algo de texto y código como output de lo aprendido. En este caso, y para complementar <a href="http://www.labredes.unlu.edu.ar/sites/www.labredes.unlu.edu.ar/files/site/data/tyr/http2_Fernandez_Tolosa.pdf">aquello que escribí sobre HTTP/2</a>, estoy preparando algo similar pero sobre QUIC como protocolo de transporte y HTTP/3 como protocolo de aplicación sobre él.</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/09/HTTP-1.1_vs._HTTP-2_vs._HTTP-3_Protocol_Stack.svg/640px-HTTP-1.1_vs._HTTP-2_vs._HTTP-3_Protocol_Stack.svg.png" alt=""/></figure>



<p>Ambos son Internet Standard desde hace muy poco tiempo (<a href="https://www.rfc-editor.org/rfc/rfc9000.html">quic</a>, <a href="https://www.rfc-editor.org/rfc/rfc9114.html">http/3</a>) y vienen y/o dependen de un paquete de otros protocolos y especificaciones que <a href="https://quicwg.org/">no son poca cosa</a>.</p>



<p>Aún así, mi idea es describir sus conceptos fundamentales en español, como para que lo entienda un estudiante de una asignatura de redes de una Universidad cualquiera; analizar sus pros y cons, y por último dejar algo de código de ejemplo como para poder entender desde el punto de vista de un programador dónde tiene lugar para hacer un aporte y dónde no.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2023/01/volviendo-a-escribir-quic-y-http-3/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Links a charlas/publicaciones arreglados</title>
		<link>http://blog.marcelofernandez.info/2022/08/links-a-charlas-publicaciones-arreglados/</link>
					<comments>http://blog.marcelofernandez.info/2022/08/links-a-charlas-publicaciones-arreglados/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Tue, 23 Aug 2022 16:18:19 +0000</pubDate>
				<category><![CDATA[misceláneos]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1678</guid>

					<description><![CDATA[¡Hola! Por algún motivo en la migración a HTTPS del blog (ocurrida hace bastante tiempo), los links a los diferentes recursos estaban rotos. Bueno, ya los arreglé. Saludos]]></description>
										<content:encoded><![CDATA[
<p>¡Hola!</p>



<p>Por algún motivo en la migración a HTTPS del blog (ocurrida hace bastante tiempo), los links a los diferentes recursos estaban rotos. Bueno, ya los arreglé.</p>



<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2022/08/links-a-charlas-publicaciones-arreglados/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Taller de Programación de Sockets TCP/IP</title>
		<link>http://blog.marcelofernandez.info/2018/02/taller-programacion-de-sockets-tcp-ip/</link>
					<comments>http://blog.marcelofernandez.info/2018/02/taller-programacion-de-sockets-tcp-ip/#comments</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Tue, 27 Feb 2018 03:38:25 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1555</guid>

					<description><![CDATA[En este mes de febrero tuve la suerte de llevar adelante en la UNLu un breve pero conciso taller de programación de sockets basado en Python. Dejo los slides, ejemplos de código y ejercicios planteados en el apartado de Charlas de mi blog, y en este post. Agenda: Clase 1: Introducción Sockets API. Modelo OSI, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>En este mes de febrero tuve la suerte de llevar adelante en la UNLu un breve pero conciso taller de programación de sockets basado en Python. Dejo los slides, ejemplos de código y ejercicios planteados en el apartado de <a href="https://blog.marcelofernandez.info/charlas/">Charlas</a> de mi blog, y en este post.</p>
<p>Agenda:</p>
<ul>
<li>Clase 1: Introducción Sockets API. Modelo OSI, entornos de ejecución.Introducción a Python. Socket API para UDP. Ejercicios.
<ul>
<li>Descargar en Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C1.odp">ODP</a> / Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C1.pdf">PDF</a>.</li>
<li>Código de ejemplo: <a href="http://marcelofernandez.info/sockets/code/Clase%201%20-%20UDP.zip">ZIP</a>.</li>
</ul>
</li>
<li>Clase 2: Socket API para TCP. Código de ejemplo y ejercicios.
<ul>
<li>Descargar en Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C2.odp">ODP</a> / Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C2.pdf">PDF</a>.</li>
</ul>
</li>
<li>Clase 3: Multiprogramación, concurrencia, paralelismo. Syscall fork() y relacionados. Ejemplos de servidor multiproceso. Procesos vs. Threads.
<ul>
<li>Descargar en Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C3.odp">ODP</a> / Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C3.pdf">PDF</a>.</li>
<li>Código de ejemplo: <a href="http://marcelofernandez.info/sockets/code/Clase%203%20-%20Procesos.zip">ZIP</a>.</li>
</ul>
</li>
<li>Clase 4: Sockets asincrónicos. Modelo de trabajo, syscall select(). Ejemplos de código. Introducción a Scapy.
<ul>
<li>Descargar en Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C4.odp">ODP</a> / Formato <a href="http://marcelofernandez.info/sockets/slides/Taller%20Sockets-C4.pdf">PDF</a>.</li>
<li>Código de ejemplo: <a href="http://marcelofernandez.info/sockets/code/Clase%204%20-%20Select.zip">ZIP</a>.</li>
</ul>
</li>
</ul>
<p>¡Saludos!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2018/02/taller-programacion-de-sockets-tcp-ip/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>CORE Network Emulator</title>
		<link>http://blog.marcelofernandez.info/2018/01/core-network-emulator/</link>
					<comments>http://blog.marcelofernandez.info/2018/01/core-network-emulator/#comments</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Wed, 31 Jan 2018 13:06:39 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ubuntu-ar]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1523</guid>

					<description><![CDATA[Investigando herramientas de simulación/emulación de redes con fines educativos, un amigo pasó esta página, bastante nutrida por cierto, con un listado de simuladores/emuladores de red, recomendando probar CORE. C.O.R.E., acrónimo de Common Open Research Environment, fue un proyecto inicialmente de Boeing (sí, la de los aviones) y que ahora es sponsoreado por el Laboratorio de Investigación [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Investigando herramientas de simulación/emulación de redes con fines educativos, <a href="http://bitnegro.blogspot.com.ar/">un amigo</a> pasó <a href="http://www.brianlinkletter.com/open-source-network-simulators/">esta página</a>, bastante nutrida por cierto, con un listado de simuladores/emuladores de red, recomendando probar <a href="https://www.nrl.navy.mil/itd/ncs/products/core">CORE</a>.</p>
<p>C.O.R.E., acrónimo de <em>Common Open Research Environment</em>, fue un proyecto inicialmente de Boeing (sí, la de los aviones) y que ahora es sponsoreado por el <a href="https://www.nrl.navy.mil/">Laboratorio de Investigación Naval de los Estados Unidos</a>. Le dediqué un rato a revisar qué tal funcionaba, y aquí está lo que pude probar.</p>
<p>A priori, resulta que la última versión (4.8) está en los repos de Ubuntu 16.04, por lo que fue fácil la instalación [1]:</p>
<pre lang="sh">marcelo@marcelo-notebook:~$ apt-cache search core-network
 core-network - intuitive network emulator that interacts with real nets (metapackage)
 core-network-daemon - intuitive network emulator that interacts with real nets (daemon)
 core-network-gui - intuitive network emulator that interacts with real nets (GUI)
</pre>
<p>Se instalan esos paquetes y listo el pollo, las dependencias son básicas (TCL/TK y quagga):</p>
<pre lang="sh">marcelo@marcelo-notebook:~$ sudo apt install core-network core-network-gui
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias 
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes adicionales:
 core-network-daemon libev4 libtcl8.5 libtk-img libtk8.5 quagga tcl8.5 tk8.5
Paquetes sugeridos:
 libtk-img-doc snmpd tcl-tclreadline
Se instalarán los siguientes paquetes NUEVOS:
 core-network core-network-daemon core-network-gui libev4 libtcl8.5 libtk-img libtk8.5 quagga tcl8.5 tk8.5
0 actualizados, 10 nuevos se instalarán, 0 para eliminar y 2 no actualizados.
Se necesita descargar 3.905 kB de archivos.
Se utilizarán 16,4 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]
</pre>
<p>Usarlo es tanto como ejecutar «core-gui» y empezar a armar el mapa de la red tal como se ve en el video de la página que citó Mauro:</p>
<p><figure id="attachment_1524" aria-describedby="caption-attachment-1524" style="width: 600px" class="wp-caption aligncenter"><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core1.png"><img fetchpriority="high" decoding="async" class="wp-image-1524" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core1.png" alt="Vista de Red - CORE" width="600" height="429" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core1.png 716w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core1-300x215.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1524" class="wp-caption-text">Vista de Red &#8211; CORE</figcaption></figure></p>
<p>El direccionamiento lo hace automáticamente (aunque es configurable, haciéndole doble click a cada nodo):</p>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core2.png"><img decoding="async" class="wp-image-1525 size-full aligncenter" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core2.png" alt="" width="391" height="362" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core2.png 391w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core2-300x278.png 300w" sizes="(max-width: 391px) 100vw, 391px" /></a></p>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core3.png"><img decoding="async" class="wp-image-1526 size-full aligncenter" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core3.png" alt="" width="391" height="275" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core3.png 391w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core3-300x211.png 300w" sizes="(max-width: 391px) 100vw, 391px" /></a></p>
<p>&#8230; y la configuración del ruteo se hace sola (ver más abajo cómo), por lo que luego de armar esa red sencilla, ambos hosts («PC» y «Server») se ven automáticamente.</p>
<p>Luego de armar la red, se le da al botón de «Play» y se ejecuta todo. Todos los nodos son Linux (nada de emulación routers Cisco ni nada como sucede con <a href="https://www.gns3.com/">GNS3</a>), y acá viene lo interesante:</p>
<ul>
<li>Todos son containers (<a href="https://linuxcontainers.org/">LXC</a>) del mismo host de uno, pero <strong>sin estar en un chroot</strong> (?!?),</li>
<li>Es extremadamente rápido gracias a LXC, pero «raro» ya que todo corre en el mismo <em>filesystem</em> de la máquina de uno (puedo ir a mi home directamente desde cada nodo).</li>
<li>Dado que es un container, todos los kernels guest son los mismos del host.</li>
<li>¡El software que se ejecuta es el mismo del host! Es decir, si digo que este nodo va a tener Apache (servicio «HTTP»), hay que instalar el paquete apache2 en el host, no en el guest. No hay imagen de máquina virtual ni nada por el estilo como pasa con otros emuladores.</li>
<li>El directorio que te abre al entrar a cada guest es<code>/tmp/pycore.&lt;PID&gt;/&lt;nombredelhost&gt;.conf/</code></li>
<li>La configuración de los servicios/apps que va a usar en cada host la genera el entorno antes de darle «Play» en <code>/tmp/pycore.&lt;PID&gt;/&lt;nombredelhost&gt;.conf/</code>, por ejemplo:</li>
</ul>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core4.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1527 size-full" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core4.png" alt="" width="507" height="265" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core4.png 507w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core4-300x157.png 300w" sizes="auto, (max-width: 507px) 100vw, 507px" /></a>Uno puede ir y editar los archivos en el directorio <code>etc.apache2/</code> que generó el sistema una vez que se le dio ejecución, o puede hacerlo antes, tocando en el botón «Services» de la configuración del host:<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1528" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5-300x159.png" alt="" width="601" height="318" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5-300x159.png 300w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5-768x406.png 768w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5-1024x542.png 1024w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core5.png 1060w" sizes="auto, (max-width: 601px) 100vw, 601px" /></a></p>
<p>Y luego en el ícono de llave inglesa:<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1529 size-full" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core6.png" alt="" width="591" height="604" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core6.png 591w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core6-294x300.png 294w" sizes="auto, (max-width: 591px) 100vw, 591px" /></a><br />
Este es un ps desde el guest Server:</p>
<pre lang="sh">root@Server:/tmp/pycore.34211/Server.conf# ps faxu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 9676 1708 ? S 12:20 0:00 /usr/sbin/vnoded -v -c /tmp/pycore.34211/Server -l /tmp/pycore.34211/Server.log -p /tmp/pycore.34211/Server.pid -C /tmp/pycore.34211/Server.conf
root 46 0.0 0.0 65508 3096 ? Ss 12:20 0:00 /usr/sbin/sshd -f /etc/ssh/sshd_config
root 52 0.0 0.0 56680 3772 ? Ss 12:20 0:00 /usr/sbin/apache2 -k start
www-data 53 0.0 0.0 411412 3504 ? Sl 12:20 0:00 \_ /usr/sbin/apache2 -k start
www-data 54 0.0 0.0 411412 3504 ? Sl 12:20 0:00 \_ /usr/sbin/apache2 -k start
root 110 0.0 0.0 23848 3968 pts/19 Ss 12:20 0:00 /bin/bash
root 236 0.0 0.0 39932 3316 pts/19 R+ 12:22 0:00 \_ ps faxu
root@Server:/tmp/pycore.34211/Server.conf#</pre>
<p>Este es el <code>running-config</code> generado por core-network de un router (r1), entrando a Quagga con vtysh:<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core7.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1530 size-full" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core7.png" alt="" width="484" height="660" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core7.png 484w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core7-220x300.png 220w" sizes="auto, (max-width: 484px) 100vw, 484px" /></a>Así que ahí vemos que define OSPF automáticamente:<br />
<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1531" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8-300x191.png" alt="" width="599" height="382" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8-300x191.png 300w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8-768x490.png 768w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8-1024x653.png 1024w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core8.png 1448w" sizes="auto, (max-width: 599px) 100vw, 599px" /></a></p>
<p>Respecto a si se pueden guardar/cargar laboratorios completos, sí se puede, en el formato «imn» (ya que CORE es un fork de <a href="http://www.imunes.net/">Imunes</a>, y heredó su formato). Algo muy interesante es que se puede configurar el QoS de cada link, haciéndole doble click a cada línea (no lo probé):</p>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core9.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1532 size-full" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core9.png" alt="" width="220" height="357" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core9.png 220w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core9-185x300.png 185w" sizes="auto, (max-width: 220px) 100vw, 220px" /></a></p>
<p>Y que te grafica el ancho de banda en tiempo real de la red:<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core10.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1533" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core10-300x219.png" alt="" width="600" height="438" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core10-300x219.png 300w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core10-768x561.png 768w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core10.png 1011w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Por último, para hacer capturas de tráfico es bastante sencillo, probé dos opciones:</p>
<ol>
<li>Se corre en cada nodo que se desea un <code>tcpdump</code> guardando el tráfico, queda en el «home» de cada container guest (<code>/tmp/pycore.&lt;PID&gt;/&lt;nombredelhost&gt;.conf/</code>), y uno desde el host directamente ejecuta <a href="https://www.wireshark.org/">Wireshark</a> y lo abre.</li>
<li>Pude guardar todo el tráfico de la red en una única captura (esto, con <a href="http://wiki.netkit.org/index.php/Main_Page">netkit</a>, no lo pudimos hacer de forma directa). Para ello, primero se arranca el entorno de simulación; esto hace que se creen dinámicamente los bridges a nivel de host y las interfaces virtuales de cada container, adjuntas a cada bridge (el virbr0 de la captura es de Virtualbox, ignórenlo):</li>
</ol>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core11.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1534 size-full" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core11.png" alt="" width="600" height="161" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core11.png 600w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core11-300x81.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Y bueno, para hacer la captura de toda la red al mismo tiempo, hay que decirle a Wireshark que capture en todos los bridges:<a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core12.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1535" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core12-300x148.png" alt="" width="601" height="296" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core12-300x148.png 300w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core12-768x378.png 768w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core12.png 950w" sizes="auto, (max-width: 601px) 100vw, 601px" /></a></p>
<p><a href="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1536" src="https://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13-300x165.png" alt="" width="600" height="330" srcset="http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13-300x165.png 300w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13-768x422.png 768w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13-1024x563.png 1024w, http://blog.marcelofernandez.info/wp-content/uploads/2018/01/core13.png 1920w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Filtré porque aparece tráfico OSPF todo el tiempo, lógicamente. Es cuestión de desactivarlo por defecto (configurando el servicio Quagga/Zebra). Un detalle de capturar así es que hay que ordenar por tiempo, porque el <em>packet number</em> queda desordenado. Pero ordenando por tiempo, lo seguí y aparentemente (hice un ping, nada más) el orden se mantiene (el «reloj» sería el host).</p>
<p>El manual está acá, parece que se pueden hacer muchísimas cosas más (entornos distribuidos, scripting automatizado en Python, etc.):<br />
<a href="https://downloads.pf.itd.nrl.navy.mil/docs/core/core-html/index.html">https://downloads.pf.itd.nrl.navy.mil/docs/core/core-html/index.html</a></p>
<p>Parece ser una muy buena herramienta para simular entornos de red, practicar y aprender sobre protocolos.</p>
<p>[1] Resulta que hace poco lo sacaron de Debian/Ubuntu, porque claro, el entorno gráfico se ejecuta como usuario normal, pero al abrir la consola de cualquier nodo que uno creó entra a la VM como root (y recuerden que no se está dentro de un chroot, con lo cual es root en el host con acceso al filesystem):</p>
<p><a href="https://github.com/coreemu/core/issues/117">https://github.com/coreemu/core/issues/117</a></p>
<p>No lo solucionaron, entonces Debian los sacó, por ende no está en Debian Stretch. Igual <a href="http://eriberto.pro.br/site/">maintainer del paquete</a> tiene un repositorio personal para Debian/Ubuntu:</p>
<p><a href="http://eriberto.pro.br/core/">http://eriberto.pro.br/core/</a></p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2018/01/core-network-emulator/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Nuevo Documento: «HTTP/2. Un nuevo protocolo para la web» (v1.0)</title>
		<link>http://blog.marcelofernandez.info/2017/05/nuevo-documento-http2-un-nuevo-protocolo-para-la-web-v1-0/</link>
					<comments>http://blog.marcelofernandez.info/2017/05/nuevo-documento-http2-un-nuevo-protocolo-para-la-web-v1-0/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Sat, 06 May 2017 15:04:16 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1498</guid>

					<description><![CDATA[Les comparto el documento que armé dentro del marco del grupo de Teleinformática y Redes de la Universidad Nacional de Luján sobre el protocolo HTTP/2, a modo de recopilación, traducción y simplificación de todo lo que anda dando vueltas en la web. La idea es ir actualizándolo y completándolo a medida que pase el tiempo. Dejo [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Les comparto el documento que armé dentro del marco del grupo de <a href="http://www.labredes.unlu.edu.ar/" target="_blank" rel="noopener noreferrer">Teleinformática y Redes</a> de la <a href="http://www.unlu.edu.ar" target="_blank" rel="noopener noreferrer">Universidad Nacional de Luján</a> sobre el protocolo HTTP/2, a modo de recopilación, traducción y simplificación de todo lo que anda dando vueltas en la web. La idea es ir actualizándolo y completándolo a medida que pase el tiempo.</p>
<p>Dejo el link para bajarlo <a href="http://www.labredes.unlu.edu.ar/sites/www.labredes.unlu.edu.ar/files/site/data/tyr/http2_Fernandez_Tolosa.pdf">en PDF</a>.</p>
<p>Se aceptan sugerencias, comentarios y críticas, por qué no. <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2017/05/nuevo-documento-http2-un-nuevo-protocolo-para-la-web-v1-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Habilitando HTTP/2 en Apache sobre Ubuntu 16.04 sin PPAs</title>
		<link>http://blog.marcelofernandez.info/2017/03/habilitando-http2-en-apache-sobre-ubuntu-16-04-sin-ppas/</link>
					<comments>http://blog.marcelofernandez.info/2017/03/habilitando-http2-en-apache-sobre-ubuntu-16-04-sin-ppas/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Tue, 14 Mar 2017 19:39:58 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1475</guid>

					<description><![CDATA[Una de las cosas que me sorprendió de la versión de Apache 2.4.18 incluida en Ubuntu 16.04 (y también en Ubuntu 16.10) es que el módulo mod_http2 no está habilitado por ser considerado «experimental» por el proyecto Apache. Discusiones de si debe estar o no al margen, esta característica funciona mayormente bien y no tiene fallas importantes. En mi [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Una de las cosas que me sorprendió de la versión de <a href="http://packages.ubuntu.com/xenial/apache2" target="_blank">Apache 2.4.18 incluida en Ubuntu 16.04</a> (y también en Ubuntu 16.10) es que <a href="https://wiki.ubuntu.com/XenialXerus/ReleaseNotes?_ga=1.128555916.1457848077.1479625589#HTTP.2F2_support_in_Apache_httpd" target="_blank">el módulo mod_http2 no está habilitado por ser considerado «experimental</a>» por el proyecto Apache.</p>
<p>Discusiones de si debe estar o no al margen, esta característica funciona mayormente bien y no tiene fallas importantes. En mi caso evalué un par de alternativas:</p>
<ul>
<li>Compilar un server nuevo desde los fuentes es poco práctico, ya que la integración de Apache lograda por el empaquetado de Debian/Ubuntu es mala o dificultosa como mínimo, además de tener que compilar por futuras actualizaciones de seguridad.</li>
<li>Confiar en un repositorio PPA ajeno (como indican <a href="https://www.digitalocean.com/community/questions/enable-http2-in-apache-on-ubuntu-16-04" target="_blank">otros posts</a>) también es un problema, más aún bajo ciertos entornos.</li>
</ul>
<p>Es por esto que, buscando una alternativa diferente, encontré una manera relativamente fácil, rápida y «con actualizaciones» de habilitar el módulo HTTP/2 sobre el mismo Apache 2.4.18 que trae Ubuntu 16.04/16.10.</p>
<p>Dado que el módulo http2 se incluye en los fuentes, es posible compilarlo y copiarlo nuevamente a la instalación de Apache creada por el paquete Ubuntu. Como requisito, hay que tener los repositorios deb-src habilitados en el archivo /etc/apt/sources.list.</p>
<p>Luego se debe instalar libnghttp2-dev, descargar el paquete fuente de apache2 y compilarlo sin hacer ningún cambio. Los comandos para hacer esto son, como usuario con permisos de sudo sobre el sistema:</p>
<pre lang="sh">$ sudo apt-get install libnghttp2-dev
$ mkdir apache2
$ cd apache2
$ apt-get source apache2
$ sudo apt-get build-dep apache2
$ cd apache-2.4.18
$ fakeroot debian/rules binary
</pre>
<p>Después, copiar el módulo compilado (mod_http2.so) al directorio de módulos del apache, crear un archivo .load en /etc/apache2/mods-available y ejecutar a2enmod http2 para que Apache lo cargue. Luego, se reinicia el servicio y listo.</p>
<pre lang="sh">$ sudo cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
$ cat << EOF > /tmp/http2.load
LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
<IfModule http2_module>
  LogLevel http2:info
</IfModule>
EOF
$ sudo cp /tmp/http2.load /etc/apache2/mods-available/http2.load
$ sudo a2enmod http2
$ sudo service apache2 restart
</pre>
<p>Y listo. Luego resta configurar algunas de las <a href="https://httpd.apache.org/docs/2.4/mod/mod_http2.html" target="_blank">opciones del módulo</a> e incorporarlo en los VirtualHosts que necesitemos, indicando «Protocols h2 http/1.1».</p>
<p>Para más info de cómo instalarlo, <a href="https://httpd.apache.org/docs/2.4/howto/http2.html" target="_blank">leer acá</a>.</p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2017/03/habilitando-http2-en-apache-sobre-ubuntu-16-04-sin-ppas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Charlas: Introducción a AWS y a HTTP/2</title>
		<link>http://blog.marcelofernandez.info/2016/09/charlas-introduccion-a-aws-y-a-http2/</link>
					<comments>http://blog.marcelofernandez.info/2016/09/charlas-introduccion-a-aws-y-a-http2/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Tue, 13 Sep 2016 18:30:45 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu-ar]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1456</guid>

					<description><![CDATA[Hace unos días tuve el placer de dar una charla en el CIDETIC, perteneciente a la Universidad Nacional de Luján, respecto a los servicios de cloud computing en general y a los de Amazon Web Services en particular. Como siempre, preparar y hablar en público sobre un tema no es lo mismo que tener los conceptos algo [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Hace unos días tuve el placer de <a href="http://www.prensa.unlu.edu.ar/?q=node/3244" target="_blank">dar una charla</a> en el <a href="http://cidetic.unlu.edu.ar/" target="_blank">CIDETIC</a>, perteneciente a la <a href="http://www.unlu.edu.ar/" target="_blank">Universidad Nacional de Luján</a>, respecto a los servicios de cloud computing en general y a los de Amazon Web Services en particular.</p>
<p>Como siempre, preparar y hablar en público sobre un tema no es lo mismo que tener los conceptos algo desordenados, producto únicamente de la experiencia práctica; por lo que fue un desafío organizar tantas ideas algo deshilachadas&#8230; y acepté gustoso. De hecho, tengo un par de críticas que hacerme a mí mismo sobre cómo salió, como que por ejemplo, me quedaron cosas en el tintero y me llevó más tiempo de lo planificado.</p>
<p>De paso, subí también los slides que armé para la charla de HTTP/2, que vengo reeditando prácticamente todos los años en la cátedra de <a href="http://www.labredes.unlu.edu.ar/tyr" target="_blank">Teleinformática y Redes</a>. Esta vez pude ir con <a href="https://httpwg.github.io/specs/rfc7540.html" target="_blank">el protocolo estandarizado</a> para mostrarle a la gente. <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>En fin, los slides, para aquellos que les interesa, los dejé en la sección <a href="https://blog.marcelofernandez.info/charlas/">Charlas</a> del blog. Pueden usarlo sin problemas para lo que deseen.</p>
<p>PD: Si buscan los íconos de los servicios de AWS como recursos para uso personal en la generación de contenido, <a href="https://aws.amazon.com/architecture/icons/" target="_blank">acá están en múltiples formatos</a> (SVG/EPS, Visio, Powerpoint, etc.).</p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2016/09/charlas-introduccion-a-aws-y-a-http2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fedora Day Buenos Aires 2014</title>
		<link>http://blog.marcelofernandez.info/2014/12/fedora-day-buenos-aires-2014/</link>
					<comments>http://blog.marcelofernandez.info/2014/12/fedora-day-buenos-aires-2014/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Wed, 10 Dec 2014 16:00:41 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1419</guid>

					<description><![CDATA[La comunidad Fedora Argentina se complace en anunciar el evento más importante de Fedora en el país hasta el momento: ¡El Sábado 13 de Diciembre los esperamos en la UTN de Medrano 951, CABA, para celebrar el Fedora Day! Será un día con charlas de varios ponentes de Argentina y Latinoamérica, donde se hablará del [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>La comunidad <a title="Fedora Argentina" href="https://fedoraproject.org/wiki/Fedora-Argentina" target="_blank">Fedora Argentina</a> se complace en anunciar el evento más importante de <a title="Fedora Project" href="https://getfedora.org/" target="_blank">Fedora</a> en el país hasta el momento:</p>
<p>¡El <strong>Sábado 13 de Diciembre</strong> los esperamos en la <strong><a title="Universidad Tecnológica Nacional - Facultad Regional Buenos Aires" href="http://www.frba.utn.edu.ar/" target="_blank">UTN</a> de <a href="https://www.google.com/maps/dir//Av+Medrano+951,+Buenos+Aires,+Argentina/@-34.5985656,-58.4224142,17z/data=!3m1!4b1!4m8!4m7!1m0!1m5!1m1!1s0x95bcca7cd547261d:0x60e88fc2c2496c7d!2m2!1d-58.4202684!2d-34.5985656" target="_blank">Medrano 951, CABA</a></strong>, para celebrar el Fedora Day!</p>
<p>Será un día con charlas de varios ponentes de Argentina y Latinoamérica, donde se hablará del futuro de la distribución y de varias tecnologías como <a title="oVirt" href="http://www.ovirt.org/Home" target="_blank">Ovirt</a>, <a title="Docker" href="https://www.docker.com/" target="_blank">Docker</a>, <a title="OpenShift" href="https://www.openshift.com/" target="_blank">Openshift</a>, etc. También estaremos celebrando el Release Party de la nueva versión de Fedora, <a href="http://fedoraproject.org/get-prerelease" target="_blank">Fedora 21</a>, ¡con la posibilidad de instalarlo en sus computadoras o en un pendrive para llevarlo!</p>
<p>Si desean participar en el evento no duden en registrarse de forma gratuita en <a title="Fedora Day Registration Form" href="http://goo.gl/zYsClS" target="_blank">el siguiente link</a> [1].</p>
<p>También iremos actualizando la información del Fedora Day en <a title="Fedora Day Website" href="http://fedoraday.com" target="_blank">la página oficial</a> [2] y en <a title="Fedora Day Buenos Aires 2014" href="https://fedoraproject.org/wiki/Fedora_Day_Buenos_Aires_2014" target="_blank">la wiki de Fedora</a> [3].</p>
<p>Si estás interesado en dar una charla sobre «inserte tema aquí» relacionado con Fedora no dudes en registrarte en <a href="https://lists.fedoraproject.org/mailman/listinfo/argentina" target="_blank">nuestra lista de correos</a> [4] y enviarnos tu propuesta.</p>
<p>En Fedora es muy importante para nosotros la comunidad y es por eso que estamos buscando nuevos colaboradores. Si estás interesado, no te pierdas nuestras charlas al respecto o acercate a cualquier colaborador el día del evento.</p>
<p>Ante cualquier duda o consulta por favor contactate con <a href="mailto:delete@fedoraproject.org" target="_blank">Matías</a> &lt;delete@fedoraproject.org&gt; o con <a href="mailto:villadalmine@fedoraproject.org" target="_blank">Rino</a> &lt;villadalmine@fedoraproject.org&gt;</p>
<p>¡¡¡Los esperamos!!!</p>
<p>Saludos,<br />
Fedora Argentina</p>
<p>1. <a href="http://goo.gl/zYsClS" target="_blank">http://goo.gl/zYsClS</a><br />
2. <a href="http://fedoraday.com" target="_blank">http://fedoraday.com</a><br />
3. <a href="https://fedoraproject.org/wiki/Fedora_Day_Buenos_Aires_2014" target="_blank">https://fedoraproject.org/wiki/Fedora_Day_Buenos_Aires_2014</a><br />
4. <a href="https://lists.fedoraproject.org/mailman/listinfo/argentina" target="_blank">https://lists.fedoraproject.org/mailman/listinfo/argentina</a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2014/12/fedora-day-buenos-aires-2014/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pwning hardware</title>
		<link>http://blog.marcelofernandez.info/2014/11/pwning-hardware/</link>
					<comments>http://blog.marcelofernandez.info/2014/11/pwning-hardware/#comments</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Sat, 01 Nov 2014 16:00:51 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1404</guid>

					<description><![CDATA[El video dura media hora, pero a mí me gustó muchísimo, aprendí mucho. Mikah Scott es una genia, y se propone investigar cómo customizar el firmware de una lectora/grabadora de CD/DVD/Blu-Ray, para dominarlo por completo, empezando por el microcontrolador ARM que posee. Por ejemplo, moviendo el láser en la posición que uno quiera y dispararlo. Habla un [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><iframe loading="lazy" src="//player.vimeo.com/video/110257380" width="600" height="337" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>El video dura media hora, pero a mí me gustó muchísimo, aprendí mucho. <a title="Scanlime - One girl's diary of improvisational engineering" href="http://scanlime.org/" target="_blank">Mikah Scott</a> es <a title="Mikah Scott - Resume" href="http://scanlime.org/resume/" target="_blank">una</a> <a title="Micah Scott Art Portfolio" href="http://www.misc.name/" target="_blank">genia</a>, y se propone investigar cómo customizar el firmware de una lectora/grabadora de CD/DVD/Blu-Ray, para dominarlo por completo, empezando por el microcontrolador ARM que posee. Por ejemplo, moviendo el láser en la posición que uno quiera y dispararlo. Habla un excelente y puntilloso inglés, así que se le entiende palabra por palabra, sugiero que lo vean incluso para practicar su inglés técnico.</p>
<p>Es muy interesante cómo usa Photoshop para visualizar el contenido de un firmware (?!??!?! ¡nunca se me hubiera ocurrido!), y cómo usa <a title="IDA Disassembler" href="https://www.hex-rays.com/products/ida/index.shtml" target="_blank">IDA</a> (este sí es más lógico) para interpretar el código binario.</p>
<p>Además, usa <a title="Virtual USB Analyzer" href="http://vusb-analyzer.sourceforge.net/" target="_blank">vusb-analyzer</a> en Ubuntu para visualizar el tráfico USB dumpeado con usbmon o similares, por ejemplo <em>snifeado</em> de una máquina virtual.</p>
<p>Por último, usa iPython para hacer que el ARM y el resto de los chips con los que interactúa (<a title="MT1939 - Rewritable Blu-ray drive platform" href="http://www.mediatek.com/en/products/home-entertainment/optical-disc-drive/blu-ray/mt1939/" target="_blank">mt1939</a>, dsp) haga lo que uno quiera (todavía está en avance).</p>
<p>Es increíble cómo en el ámbito de seguridad se usa Python (lo confirmé en la <a title="Ekoparty Security Conference" href="http://www.ekoparty.org/" target="_blank">Ekoparty</a> en estos días).</p>
<p>Insisto, se aprende muchísimo viendo este tipo de videos: herramientas, técnicas, trucos y fundamentalmente cómo abordar estos desafíos.</p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2014/11/pwning-hardware/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Comparando costos de Amazon EC2 y Google Computing Engine</title>
		<link>http://blog.marcelofernandez.info/2014/09/comparando-costos-de-amazon-ec2-y-google-computing-engine/</link>
					<comments>http://blog.marcelofernandez.info/2014/09/comparando-costos-de-amazon-ec2-y-google-computing-engine/#respond</comments>
		
		<dc:creator><![CDATA[Marcelo]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 20:11:37 +0000</pubDate>
				<category><![CDATA[codear]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://blog.marcelofernandez.info/?p=1394</guid>

					<description><![CDATA[Estuve mirando y por suerte son prácticamente similares las tablas disponibles en cada site (EC2 / GCE) y es relativamente sencillo compararlas [1][2]. Para sus Data Centers en USA, establecí las siguientes relaciones: En las versiones de VMs «standard«, los precios son exactamente iguales, con configuraciones llamativamente similares. En las versiones «high memory«, es más barato Google (la [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Estuve mirando y por suerte son prácticamente similares las tablas disponibles en cada site (<a title="Amazon EC2 Purchasing Options" href="http://aws.amazon.com/es/ec2/purchasing-options/dedicated-instances/" target="_blank">EC2</a> / <a title="Google Compute Engine" href="https://cloud.google.com/products/compute-engine/" target="_blank">GCE</a>) y es relativamente sencillo compararlas [1][2].</p>
<p>Para sus Data Centers en USA, establecí las siguientes relaciones:</p>
<ul>
<li>En las versiones de VMs «<em>standard</em>«, los precios son exactamente iguales, con configuraciones <em>llamativamente</em> similares.</li>
<li>En las versiones «<em>high memory</em>«, es más barato Google (la mitad), aunque Amazon te da el doble de CPUs por una VM con la misma cantidad de memoria.<br />
Ej: Google te da 4 CPUs / 26 GB de RAM y Amazon en cambio te da 8 CPUs para su configuración de 26 GB de RAM. Dado que estamos en «<em>high memory</em>«, igualé a cantidad de memoria disponible para luego decir «Google es la mitad de barato».</li>
<li>En las versiones «<em>large</em>» («<em>high cpu</em>» de Google), Amazon es un 15% más caro para igual cantidad de CPUs, pero te da el doble de memoria en sus VMs.</li>
</ul>
<p><strong>Observaciones</strong>:</p>
<ul>
<li>Se desprende de lo anterior Amazon <strong>EC2 ofrece perfiles más simétricos</strong> <strong>que Google</strong> comparando la relación de cantidades de CPU/Memoria. Puede ser útil para algunas aplicaciones o no, ya que va obviamente asociado al costo.</li>
<li>Amazon tiene configuraciones con más CPUs ya que llega a 32 CPUs y más memoria también: 244 GB; Google llega a 16 CPUs y 104 GB de memoria.</li>
<li>No comparé tamaños de almacenamiento, asumo que no tiene tanta relevancia para nuestra aplicación (se disponen de varias decenas de GB en disco en ambos).</li>
<li>Amazon dice que te incluye discos de estado sólido (SSD). Google te cobra ambos (?) 0,04 USD por GB/mes el disco estándar, 0,325 USD GB/mes el SSD.</li>
<li>Fundamental para la región en la que vivo: <strong>Amazon tiene Data Center en San Pablo (Brasil), Google no;</strong> sólo sirve VMs desde USA, Europa y Asia/Pacífico.</li>
<li>Amazon tiene diferentes tipo de instancias, en este caso comparé las «Bajo demanda» aka «Dedicadas» (según el lugar que se mire en la documentación), que son las más caras. Las otras son tipo prepagas («Instancias Reservadas»), donde según entiendo, uno abona un importe fijo y después usa X cantidad de tiempo y se descuenta del fijo.<br />
Hay otros tipos de instancias pero no se ajustan a nuestro uso («Instancias Puntuales» y «Instancias optimizadas para EBS»). En este apartado, pareciera que Amazon tiene largamente muchas más ofertas y más desarrollo del negocio que Google.</li>
</ul>
<p><strong>Bonus Track: versus Linode.com</strong></p>
<ul>
<li><a title="Linode - Pricing" href="https://www.linode.com/pricing" target="_blank">Linode</a> tiene hasta 20 CPUs / 96 GB RAM máximo [3].</li>
<li><a title="Linode" href="http://www.linode.com/" target="_blank">Linode</a> es <strong>mucho</strong> más barato que ambos; es más simple su tabla de precios y más «1 a 1» la distribución de CPUs / RAM (4GB / 4CPUs, 8 GB / 6 CPUs, y así hacia arriba), además de que da bastante más storage en SSD.<br />
Por ejemplo, 4 GB / 4 CPUs en Linode: USD 0,06/hora (USD 40/mes), mientras que en Amazon estamos en USD 0,28/hora por 15GB / 4 CPUs o USD 0,105/hora por 3,75GB / 2 CPUs. Eso sí, Linode está en USA (Newark/Atlanta/Dallas/Fremont), Europa (Londres) y Asia (Tokio), no en Sudamérica.</li>
<li>Comparando Linode contra GCE:
<ul>
<li>1 Linode (2 GB de RAM/ 2 CPUs / 3 TB transfer / 48 GB SSD): U$S 20/mes.</li>
<li>1 GCE (1,70 GB RAM / CPUs «shared» (?) / 48 GB SSD): U$S 33.29/mes (no dicen si hay límite de transferencia).</li>
</ul>
</li>
<li>A Linode lo conocemos los que estamos «en la pomada», y hay casos en donde suena mucho mejor «lo tengo repartido en la nube de Amazon/Google», nobleza obliga.</li>
</ul>
<p>[1] <a title="Amazon EC2 Purchasing Options" href="http://aws.amazon.com/es/ec2/purchasing-options/dedicated-instances/" target="_blank">http://aws.amazon.com/es/ec2/purchasing-options/dedicated-instances/</a><br />
[2] <a title="Google Compute Engine" href="https://cloud.google.com/products/compute-engine/" target="_blank">https://cloud.google.com/products/compute-engine/<br />
</a>[3] <a title="Linode - Pricing" href="https://www.linode.com/pricing" target="_blank">https://www.linode.com/pricing</a></p>
<p>¿Sugerencias, comentarios?</p>
<p>Saludos</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.marcelofernandez.info/2014/09/comparando-costos-de-amazon-ec2-y-google-computing-engine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
