{"id":778,"date":"2013-01-14T23:01:51","date_gmt":"2013-01-14T22:01:51","guid":{"rendered":"http:\/\/diablo.craem.net\/wordpress\/?p=778"},"modified":"2013-01-14T23:01:51","modified_gmt":"2013-01-14T22:01:51","slug":"ipv6-una-pequena-introduccion","status":"publish","type":"post","link":"https:\/\/diablo.craem.net\/?p=778","title":{"rendered":"IPV6 :: una peque\u00f1a introducci\u00f3n ::"},"content":{"rendered":"<p>Estos d\u00ed\u00adas estoy liado con el tema IPV6 y voy a resumir un poco mis limitados conocimientos del tema.<br \/>\nYa sabemos que los rangos de IPV4 se est\u00e1n agotando y RIPE, pr\u00e1cticamente ya no ofrece, con lo que, o reutilizamos las nuestras o no queda otra que empezar a migrar cosas a ipv6.<br \/>\nEl camino es lento, pero las cifras de uso de ipv4 son:<br \/>\n&#8211; 1981: Publicaci\u00f3n del protocolo IPV4.<br \/>\n&#8211; 1985: 6% de ipv4 usadas.<br \/>\n&#8211; 2001: 66% de ipv4 utilizadas.<br \/>\n&#8211; 2010: 96% en uso.<br \/>\nDe las caracter\u00ed\u00adsticas de IPV6 nuevas tenemos:<br \/>\n&#8211; Direccionamiento IP casi infinito<br \/>\n&#8211; Desaparece el NAT<br \/>\n&#8211; Eliminaci\u00f3n de la direcci\u00f3n de broadcast (un gran paso)<br \/>\n&#8211; Se simplifica los headers, para permitir mayor eficiencia en los routers<br \/>\n&#8211; Soporte para movilidad y seguridad nativo.<br \/>\nOtros cambios importantes que tenemos, comparando con ipv4:<br \/>\n&#8211; IPv4 &#8211;&gt; 32 bits de longitud, que hacen un total de 4.200.000.000 de nodos posibles.<br \/>\n&#8211; IPv6 &#8211;&gt; 128 bits o 16 bytes: 4 veces los bits de ipv4 !!!!<br \/>\n&#8211; 3.4 x 10^38 de posibles direcciones IP&#8217;s<br \/>\nCambios en el Header :<br \/>\nIPv4<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nversion | IHL | type of service | total Length<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nidentification | Flags | Fragment Offset<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nTime To Live | Protocol | Header Checksum<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nsource address<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\ndestination address<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\noptions | padding<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nAlgunas notaciones de la cabecera:<br \/>\n&#8211; Version : en ipv4, el valor es 4 \ud83d\ude09<br \/>\n&#8211; IHL : Internet header lenght, que resumiendo un poco, este campo especifica el tama\u00f1o de la cabecera.<br \/>\n&#8211; Type Of Service: Contiene el type of Service o el DSCP (Differentiated Services Code Point), usado para el QoS y marcar los paquetes.<br \/>\n&#8211; Total Lenght: Este campo de 16 bit, define el tama\u00f1o total del paquete, incluyendo la cabecera y los datos, en Bytes. El valor m\u00ed\u00adnimo son 20 bytes y el m\u00e1ximo 65535.<br \/>\n&#8211; Identification: Como bien indica este campo, es usado principalmente para identificar de manera \u00fanica los fragmentos de un un datagrama.<br \/>\n&#8211; Flags : un campo de 3 bits que son :<br \/>\n&#8211; bit 1 = 0 ; reservado y debe ser 0<br \/>\n&#8211; bit 2 = DF o don&#8217;t fragment<br \/>\n&#8211; bit 3 = MF o More fragments<br \/>\n&#8211; Fragment Offset<br \/>\n&#8211; TTL : usado para prevenir loops. El valor inicial es 255 y a medida que el paquete atraviesa routers, se va decrementando 1.<br \/>\n&#8211; Protocol : Especifica el tipo de protocolo que transporta, siendo:<br \/>\n&#8211; 17 : udp<br \/>\n&#8211; 6 : tcp<br \/>\n&#8211; 51 : esp<br \/>\n&#8211; 50 : AH<br \/>\n&#8211; 47 : Gre<br \/>\n&#8211; Header ckechsum : Cuando un paquete llega al router, calcula el checksum de la cabecera y compara el valor con el campo checksum &#8230;. si no coincide, el paquete es descartado.<br \/>\n&#8211; Source address<br \/>\n&#8211; Destination Address<br \/>\n&#8211; options<br \/>\nY ahora una cabecera de IPv6 :<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nVersion | Traffic Class | Flow Label<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nPayload Lenght | Next Header | Hop Limit<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nsource address<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\ndestination address<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nA primera vista, observamos que se ha simplificado bastante el tema, facilitando la vida a los routers ( el procesador, entre otras cosas&#8230;)<br \/>\n&#8211; Version : 4 bits y fijo 0110 (6 en binary) \ud83d\ude09<br \/>\n&#8211; Traffic Class : Idem que en IPv4; contiene por ejemplo el DSCP<br \/>\n&#8211; Flow Label (20 bits): Se puede usar para clasificar los distintos flujos&#8230; por ejemplo, en ipv4 los flujos son determinados a partir de las direcciones IP origen \/ destino, puertos y transporte.<br \/>\n&#8211; Payload Lenght (16 bits)<br \/>\n&#8211; Next Header (8 bits): Apunta al siguiente header (rollo puntero en C \ud83d\ude09 )<br \/>\n&#8211; Hop Limit (8 bits) : Sustituye al TTL en version ipv4&#8230; si el valor llega a 0, el paquete es descartado.<br \/>\n&#8211; Source address: direcci\u00f3n ip, esta vez pasa de 32 a 128 bit el tama\u00f1o del campo<br \/>\n&#8211; Destination address: idem de arriba.<br \/>\nOtra cosa que me llama la atenci\u00f3n, es que, te\u00f3ricamente, desaparece la fragmentaci\u00f3n de paquetes, con lo que ganamos en eficiencia en los routers&#8230;. Para ello, IPv6 usa un proceso de MTU discovery que determina el valor \u00f3ptimo que deber\u00e1 tener: el source, intenta el env\u00ed\u00ado de un paquete con el tama\u00f1o que ha especificado los protocolos de capa superior (tcp, udp..)&#8230; si el dispositivo recibe la respuesta con \u00abpacket too big\u00bb, entonces :<br \/>\n&#8211; Retransmite el paquete mtu discover con una mtu m\u00e1s peque\u00f1a.<br \/>\n&#8211; Este proceso es repetido mientras que el dispositivo reciba \u00abpacket too big\u00bb.<br \/>\nAhora toca ver la representaci\u00f3n de ip&#8217;s en IPv6:<br \/>\n2001:0114:abcd:0000:0000:0000:0001:0004<br \/>\nY \u00e9sto se puede representar como:<br \/>\n2001:0114:abcd::1:4<br \/>\n||<br \/>\n&#8212;&#8211;&gt; usado para acortar 0 y S\u00ed\u201cLO SE PUEDE USAR 1&#8230; si tenemos m\u00e1s 0, o lo usamos la primera vez o con la segunda&#8230; IMPORTANTE<br \/>\nla m\u00e1scara, puede llegar hasta los 128 bits (equivalente en IPv4 al \/32).<br \/>\n::\/0 &#8211;&gt; es la IP por default, mientras dura la negociaci\u00f3n de IP, equivalente a ipv4 0.0.0.0 o <em>unespecified address<\/em><br \/>\nCopiando un poco la notaci\u00f3n de las clases de IPv4 (Clase a,b o c), tenemos con el primer grupo:<br \/>\n0000 | Rango reservado por EEUU (ej\u00e9rcito ??)<br \/>\n1FFF |  \u00bb       \u00bb       \u00bb    \u00bb<br \/>\n2000 | min: usado por direcciones ip&#8217;s p\u00fablicas<br \/>\n3FFF | max: usado por direcciones ip&#8217;s p\u00fablicas<br \/>\n&#8230;. | resto reservadas por ahora<br \/>\nFC00 | Ip&#8217;s privadas dentro de un <em>site<\/em><br \/>\nFE80 | Direcciones de link local<br \/>\nFF00 | Direcciones de multicast<br \/>\nHaciendo referencia a las direcciones de link local:<br \/>\n&#8211; No son enrutables, por lo que no salen del segmento de red.<br \/>\n&#8211; se generan en parte, con la mac address del dispositivo (EUI 64)<br \/>\n&#8211; Cada host, debe de tener una.<br \/>\nLas direcciones FE80, son equivalentes a las 169.254.0.0 \/16 (PIPA o private ip address) y se generan en funci\u00f3n de la mac address con las funciones de  SPLIT y FLIP, que definiremos en la siguiente entrada.<br \/>\nComing soon !!!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estos d\u00ed\u00adas estoy liado con el tema IPV6 y voy a resumir un poco mis limitados conocimientos del tema. Ya sabemos que los rangos de IPV4 se est\u00e1n agotando y RIPE, pr\u00e1cticamente ya no ofrece, con lo que, o reutilizamos las nuestras o no queda otra que empezar a migrar cosas a ipv6. El camino [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[94],"class_list":["post-778","post","type-post","status-publish","format-standard","hentry","category-varios","tag-ipv6"],"_links":{"self":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts\/778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=778"}],"version-history":[{"count":0,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts\/778\/revisions"}],"wp:attachment":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}