CINXE.COM
LACNIC Blog | HowTo: Como levantar un peering en IPv6 Only v1.0
<!DOCTYPE HTML> <html lang="es-ES"> <head> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-ND6T2LP');</script> <!-- End Google Tag Manager --> <meta charset="utf-8"> <title>LACNIC Blog | HowTo: Como levantar un peering en IPv6 Only v1.0</title> <meta name="viewport" content="width=device-width; initial-scale=1.0; "> <link rel="shortcut icon" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/favicon.png" type="image/png" /> <link rel="apple-touch-icon" sizes="180x180" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/images/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/images/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/images/favicon-16x16.png"> <link rel="manifest" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/images/site.webmanifest"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" type="text/css" href="https://blog.lacnic.net/wp-content/themes/lacnicnews/style.css" media="screen" /> <script src="https://blog.lacnic.net/wp-content/themes/lacnicnews/js/jquery-1.12.4.js"></script> <script src="https://blog.lacnic.net/wp-content/themes/lacnicnews/js/code.js"></script> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <link rel="alternate" hreflang="es-es" href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" /> <link rel="alternate" hreflang="x-default" href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" /> <!-- This site is optimized with the Yoast SEO plugin v23.8 - https://yoast.com/wordpress/plugins/seo/ --> <link rel="canonical" href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" /> <meta property="og:locale" content="es_ES" /> <meta property="og:type" content="article" /> <meta property="og:title" content="LACNIC Blog | HowTo: Como levantar un peering en IPv6 Only v1.0" /> <meta property="og:description" content="Por: Jose G. Cotua (@SimeonSpa) / Alejandro D’Egidio (@Ale_Degidio) / Alejandro Acosta (@ITandNetworking) Introducción El siguiente artículo presenta de manera ordenada los pasos a seguir para levantar un peering BGP entre dos routers IPv6 Only. En el argot de BGP peering se conoce como ( traducido de [1]): “Dos enrutadores que han establecido una conexión para intercambiar […]" /> <meta property="og:url" content="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" /> <meta property="og:site_name" content="LACNIC Blog" /> <meta property="article:publisher" content="https://facebook.com/lacnic" /> <meta property="article:published_time" content="2022-09-16T15:50:00+00:00" /> <meta property="article:modified_time" content="2023-03-21T13:38:21+00:00" /> <meta property="og:image" content="https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg" /> <meta property="og:image:width" content="680" /> <meta property="og:image:height" content="330" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Gianni" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:creator" content="@lacnic" /> <meta name="twitter:site" content="@lacnic" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#article","isPartOf":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/"},"author":{"name":"Gianni","@id":"https://blog.lacnic.net/#/schema/person/1338d9cfdb0137e8bc5581f3771f39ab"},"headline":"HowTo: Como levantar un peering en IPv6 Only v1.0","datePublished":"2022-09-16T15:50:00+00:00","dateModified":"2023-03-21T13:38:21+00:00","mainEntityOfPage":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/"},"wordCount":2193,"commentCount":0,"publisher":{"@id":"https://blog.lacnic.net/#organization"},"image":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#primaryimage"},"thumbnailUrl":"https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg","keywords":["Labs"],"articleSection":["Labs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#respond"]}]},{"@type":"WebPage","@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/","url":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/","name":"LACNIC Blog | HowTo: Como levantar un peering en IPv6 Only v1.0","isPartOf":{"@id":"https://blog.lacnic.net/#website"},"primaryImageOfPage":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#primaryimage"},"image":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#primaryimage"},"thumbnailUrl":"https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg","datePublished":"2022-09-16T15:50:00+00:00","dateModified":"2023-03-21T13:38:21+00:00","breadcrumb":{"@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#primaryimage","url":"https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg","contentUrl":"https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg","width":680,"height":330},{"@type":"BreadcrumbList","@id":"https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https://blog.lacnic.net/"},{"@type":"ListItem","position":2,"name":"HowTo: Como levantar un peering en IPv6 Only v1.0"}]},{"@type":"WebSite","@id":"https://blog.lacnic.net/#website","url":"https://blog.lacnic.net/","name":"LACNIC Blog","description":"En el Blog de LACNIC encontrarás artículos técnicos vinculados al desarrollo de Internet en la región de América Latina y el Caribe.","publisher":{"@id":"https://blog.lacnic.net/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://blog.lacnic.net/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https://blog.lacnic.net/#organization","name":"LACNIC Blog","url":"https://blog.lacnic.net/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https://blog.lacnic.net/#/schema/logo/image/","url":"https://blog.lacnic.net/wp-content/uploads/2023/03/lacnic-blog.svg","contentUrl":"https://blog.lacnic.net/wp-content/uploads/2023/03/lacnic-blog.svg","caption":"LACNIC Blog"},"image":{"@id":"https://blog.lacnic.net/#/schema/logo/image/"},"sameAs":["https://facebook.com/lacnic","https://x.com/lacnic","https://www.instagram.com/lacnic/?hl=es-la","https://uy.linkedin.com/company/lacnic","https://www.youtube.com/user/lacnicstaff","https://www.lacnic.net/podcast"]},{"@type":"Person","@id":"https://blog.lacnic.net/#/schema/person/1338d9cfdb0137e8bc5581f3771f39ab","name":"Gianni","url":"https://blog.lacnic.net/author/gianni/"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel="alternate" type="application/rss+xml" title="LACNIC Blog » Feed" href="https://blog.lacnic.net/feed/" /> <link rel="alternate" type="application/rss+xml" title="LACNIC Blog » Feed de los comentarios" href="https://blog.lacnic.net/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="LACNIC Blog » Comentario HowTo: Como levantar un peering en IPv6 Only v1.0 del feed" href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/blog.lacnic.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://blog.lacnic.net/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='mediaelement-css' href='https://blog.lacnic.net/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' type='text/css' media='all' /> <link rel='stylesheet' id='wp-mediaelement-css' href='https://blog.lacnic.net/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.6.2' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css' type='text/css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wpml-blocks-css' href='https://blog.lacnic.net/wp-content/plugins/sitepress-multilingual-cms/dist/css/blocks/styles.css?ver=4.6.13' type='text/css' media='all' /> <link rel='stylesheet' id='easy-wp-page-nav-css' href='https://blog.lacnic.net/wp-content/plugins/easy-wp-page-navigation//css/easy-wp-pagenavigation.css?ver=1.1' type='text/css' media='all' /> <link rel='stylesheet' id='wpdiscuz-frontend-css-css' href='https://blog.lacnic.net/wp-content/plugins/wpdiscuz/themes/default/style.css?ver=7.6.27' type='text/css' media='all' /> <style id='wpdiscuz-frontend-css-inline-css' type='text/css'> #wpdcom .wpd-blog-administrator .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-administrator .wpd-comment-author, #wpdcom .wpd-blog-administrator .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-administrator .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment.wpd-reply .wpd-comment-wrap.wpd-blog-administrator{border-left:3px solid #00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-administrator .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-administrator .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-administrator .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-editor .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-editor .wpd-comment-author, #wpdcom .wpd-blog-editor .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-editor .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment.wpd-reply .wpd-comment-wrap.wpd-blog-editor{border-left:3px solid #00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-editor .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-editor .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-editor .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-author .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-author .wpd-comment-author, #wpdcom .wpd-blog-author .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-author .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-author .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-author .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-author .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-contributor .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-contributor .wpd-comment-author, #wpdcom .wpd-blog-contributor .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-contributor .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-contributor .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-contributor .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-contributor .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-subscriber .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-subscriber .wpd-comment-author, #wpdcom .wpd-blog-subscriber .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-subscriber .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-subscriber .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom .wpd-blog-wpseo_manager .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-wpseo_manager .wpd-comment-author, #wpdcom .wpd-blog-wpseo_manager .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-wpseo_manager .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-wpseo_manager .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-wpseo_manager .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-wpseo_manager .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-wpseo_editor .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-wpseo_editor .wpd-comment-author, #wpdcom .wpd-blog-wpseo_editor .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-wpseo_editor .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-wpseo_editor .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-wpseo_editor .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-wpseo_editor .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-post_author .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-post_author .wpd-comment-author, #wpdcom .wpd-blog-post_author .wpd-comment-author a{color:#00B38F}#wpdcom .wpd-blog-post_author .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-1 .wpd-comment .wpd-blog-post_author .wpd-avatar img{border-color:#00B38F}#wpdcom.wpd-layout-2 .wpd-comment.wpd-reply .wpd-comment-wrap.wpd-blog-post_author{border-left:3px solid #00B38F}#wpdcom.wpd-layout-2 .wpd-comment .wpd-blog-post_author .wpd-avatar img{border-bottom-color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-post_author .wpd-comment-subheader{border-top:1px dashed #00B38F}#wpdcom.wpd-layout-3 .wpd-reply .wpd-blog-post_author .wpd-comment-right{border-left:1px solid #00B38F}#wpdcom .wpd-blog-guest .wpd-comment-label{color:#ffffff;background-color:#00B38F;border:none}#wpdcom .wpd-blog-guest .wpd-comment-author, #wpdcom .wpd-blog-guest .wpd-comment-author a{color:#00B38F}#wpdcom.wpd-layout-3 .wpd-blog-guest .wpd-comment-subheader{border-top:1px dashed #00B38F}#comments, #respond, .comments-area, #wpdcom{}#wpdcom .ql-editor > *{color:#777777}#wpdcom .ql-editor::before{}#wpdcom .ql-toolbar{border:1px solid #DDDDDD;border-top:none}#wpdcom .ql-container{border:1px solid #DDDDDD;border-bottom:none}#wpdcom .wpd-form-row .wpdiscuz-item input[type="text"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="email"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="url"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="color"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="date"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="datetime"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="datetime-local"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="month"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="number"], #wpdcom .wpd-form-row .wpdiscuz-item input[type="time"], #wpdcom textarea, #wpdcom select{border:1px solid #DDDDDD;color:#777777}#wpdcom .wpd-form-row .wpdiscuz-item textarea{border:1px solid #DDDDDD}#wpdcom input::placeholder, #wpdcom textarea::placeholder, #wpdcom input::-moz-placeholder, #wpdcom textarea::-webkit-input-placeholder{}#wpdcom .wpd-comment-text{color:#777777}#wpdcom .wpd-thread-head .wpd-thread-info{border-bottom:2px solid #00B38F}#wpdcom .wpd-thread-head .wpd-thread-info.wpd-reviews-tab svg{fill:#00B38F}#wpdcom .wpd-thread-head .wpdiscuz-user-settings{border-bottom:2px solid #00B38F}#wpdcom .wpd-thread-head .wpdiscuz-user-settings:hover{color:#00B38F}#wpdcom .wpd-comment .wpd-follow-link:hover{color:#00B38F}#wpdcom .wpd-comment-status .wpd-sticky{color:#00B38F}#wpdcom .wpd-thread-filter .wpdf-active{color:#00B38F;border-bottom-color:#00B38F}#wpdcom .wpd-comment-info-bar{border:1px dashed #33c3a6;background:#e6f8f4}#wpdcom .wpd-comment-info-bar .wpd-current-view i{color:#00B38F}#wpdcom .wpd-filter-view-all:hover{background:#00B38F}#wpdcom .wpdiscuz-item .wpdiscuz-rating > label{color:#DDDDDD}#wpdcom .wpdiscuz-item .wpdiscuz-rating:not(:checked) > label:hover, .wpdiscuz-rating:not(:checked) > label:hover ~ label{}#wpdcom .wpdiscuz-item .wpdiscuz-rating > input ~ label:hover, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:not(:checked) ~ label:hover ~ label, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:not(:checked) ~ label:hover ~ label{color:#FFED85}#wpdcom .wpdiscuz-item .wpdiscuz-rating > input:checked ~ label:hover, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:checked ~ label:hover, #wpdcom .wpdiscuz-item .wpdiscuz-rating > label:hover ~ input:checked ~ label, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:checked + label:hover ~ label, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:checked ~ label:hover ~ label, .wpd-custom-field .wcf-active-star, #wpdcom .wpdiscuz-item .wpdiscuz-rating > input:checked ~ label{color:#FFD700}#wpd-post-rating .wpd-rating-wrap .wpd-rating-stars svg .wpd-star{fill:#DDDDDD}#wpd-post-rating .wpd-rating-wrap .wpd-rating-stars svg .wpd-active{fill:#FFD700}#wpd-post-rating .wpd-rating-wrap .wpd-rate-starts svg .wpd-star{fill:#DDDDDD}#wpd-post-rating .wpd-rating-wrap .wpd-rate-starts:hover svg .wpd-star{fill:#FFED85}#wpd-post-rating.wpd-not-rated .wpd-rating-wrap .wpd-rate-starts svg:hover ~ svg .wpd-star{fill:#DDDDDD}.wpdiscuz-post-rating-wrap .wpd-rating .wpd-rating-wrap .wpd-rating-stars svg .wpd-star{fill:#DDDDDD}.wpdiscuz-post-rating-wrap .wpd-rating .wpd-rating-wrap .wpd-rating-stars svg .wpd-active{fill:#FFD700}#wpdcom .wpd-comment .wpd-follow-active{color:#ff7a00}#wpdcom .page-numbers{color:#555;border:#555 1px solid}#wpdcom span.current{background:#555}#wpdcom.wpd-layout-1 .wpd-new-loaded-comment > .wpd-comment-wrap > .wpd-comment-right{background:#FFFAD6}#wpdcom.wpd-layout-2 .wpd-new-loaded-comment.wpd-comment > .wpd-comment-wrap > .wpd-comment-right{background:#FFFAD6}#wpdcom.wpd-layout-2 .wpd-new-loaded-comment.wpd-comment.wpd-reply > .wpd-comment-wrap > .wpd-comment-right{background:transparent}#wpdcom.wpd-layout-2 .wpd-new-loaded-comment.wpd-comment.wpd-reply > .wpd-comment-wrap{background:#FFFAD6}#wpdcom.wpd-layout-3 .wpd-new-loaded-comment.wpd-comment > .wpd-comment-wrap > .wpd-comment-right{background:#FFFAD6}#wpdcom .wpd-follow:hover i, #wpdcom .wpd-unfollow:hover i, #wpdcom .wpd-comment .wpd-follow-active:hover i{color:#00B38F}#wpdcom .wpdiscuz-readmore{cursor:pointer;color:#00B38F}.wpd-custom-field .wcf-pasiv-star, #wpcomm .wpdiscuz-item .wpdiscuz-rating > label{color:#DDDDDD}.wpd-wrapper .wpd-list-item.wpd-active{border-top:3px solid #00B38F}#wpdcom.wpd-layout-2 .wpd-comment.wpd-reply.wpd-unapproved-comment .wpd-comment-wrap{border-left:3px solid #FFFAD6}#wpdcom.wpd-layout-3 .wpd-comment.wpd-reply.wpd-unapproved-comment .wpd-comment-right{border-left:1px solid #FFFAD6}#wpdcom .wpd-prim-button{background-color:#07B290;color:#FFFFFF}#wpdcom .wpd_label__check i.wpdicon-on{color:#07B290;border:1px solid #83d9c8}#wpd-bubble-wrapper #wpd-bubble-all-comments-count{color:#1DB99A}#wpd-bubble-wrapper > div{background-color:#1DB99A}#wpd-bubble-wrapper > #wpd-bubble #wpd-bubble-add-message{background-color:#1DB99A}#wpd-bubble-wrapper > #wpd-bubble #wpd-bubble-add-message::before{border-left-color:#1DB99A;border-right-color:#1DB99A}#wpd-bubble-wrapper.wpd-right-corner > #wpd-bubble #wpd-bubble-add-message::before{border-left-color:#1DB99A;border-right-color:#1DB99A}.wpd-inline-icon-wrapper path.wpd-inline-icon-first{fill:#1DB99A}.wpd-inline-icon-count{background-color:#1DB99A}.wpd-inline-icon-count::before{border-right-color:#1DB99A}.wpd-inline-form-wrapper::before{border-bottom-color:#1DB99A}.wpd-inline-form-question{background-color:#1DB99A}.wpd-inline-form{background-color:#1DB99A}.wpd-last-inline-comments-wrapper{border-color:#1DB99A}.wpd-last-inline-comments-wrapper::before{border-bottom-color:#1DB99A}.wpd-last-inline-comments-wrapper .wpd-view-all-inline-comments{background:#1DB99A}.wpd-last-inline-comments-wrapper .wpd-view-all-inline-comments:hover,.wpd-last-inline-comments-wrapper .wpd-view-all-inline-comments:active,.wpd-last-inline-comments-wrapper .wpd-view-all-inline-comments:focus{background-color:#1DB99A}#wpdcom .ql-snow .ql-tooltip[data-mode="link"]::before{content:"Enter link:"}#wpdcom .ql-snow .ql-tooltip.ql-editing a.ql-action::after{content:"Save"}.comments-area{width:auto} </style> <link rel='stylesheet' id='wpdiscuz-fa-css' href='https://blog.lacnic.net/wp-content/plugins/wpdiscuz/assets/third-party/font-awesome-5.13.0/css/fa.min.css?ver=7.6.27' type='text/css' media='all' /> <link rel='stylesheet' id='wpdiscuz-combo-css-css' href='https://blog.lacnic.net/wp-content/plugins/wpdiscuz/assets/css/wpdiscuz-combo.min.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='wpml-legacy-horizontal-list-0-css' href='https://blog.lacnic.net/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-list-horizontal/style.min.css?ver=1' type='text/css' media='all' /> <style id='wpml-legacy-horizontal-list-0-inline-css' type='text/css'> .wpml-ls-statics-shortcode_actions, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu, .wpml-ls-statics-shortcode_actions a {border-color:#ffffff;}.wpml-ls-statics-shortcode_actions a, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link, .wpml-ls-statics-shortcode_actions li:not(.wpml-ls-current-language) .wpml-ls-link, .wpml-ls-statics-shortcode_actions li:not(.wpml-ls-current-language) .wpml-ls-link:link {color:#444444;background-color:#ffffff;}.wpml-ls-statics-shortcode_actions a, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:hover,.wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:focus, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link:hover, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link:focus {color:#000000;background-color:#eeeeee;}.wpml-ls-statics-shortcode_actions .wpml-ls-current-language > a {color:#444444;background-color:#ffffff;}.wpml-ls-statics-shortcode_actions .wpml-ls-current-language:hover>a, .wpml-ls-statics-shortcode_actions .wpml-ls-current-language>a:focus {color:#000000;background-color:#eeeeee;} </style> <link rel='stylesheet' id='ivory-search-styles-css' href='https://blog.lacnic.net/wp-content/plugins/add-search-to-menu/public/css/ivory-search.min.css?ver=5.5.7' type='text/css' media='all' /> <link rel='stylesheet' id='contributors-style-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/contributors/contributors-style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='related-notes-style-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/related-notes/related-notes-style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='share-on-style-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/share-on/share-on-style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='tag-cloud-style-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/my-tags/tag-cloud-style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='subscription-styles-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/subscription/subscription-styles.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='thumbnail-styles-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/single/thumbnail/thumbnail-styles.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='author-template-styles-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/templates/author/author-template-styles.css?ver=1.0.0' type='text/css' media='all' /> <link rel='stylesheet' id='main-content-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/body/main-content.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='fonts-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/font/fonts.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='icons-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/font/icons.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='alert-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/actions/alert.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='estilos_comentarios-css' href='https://blog.lacnic.net/wp-content/themes/lacnicnews/components/comments/comments-styles.css?ver=1.0.0' type='text/css' media='all' /> <script type="text/javascript" src="https://blog.lacnic.net/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://blog.lacnic.net/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://blog.lacnic.net/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://blog.lacnic.net/wp-json/wp/v2/posts/20383" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.lacnic.net/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.6.2" /> <link rel='shortlink' href='https://blog.lacnic.net/?p=20383' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://blog.lacnic.net/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.lacnic.net%2Fhowto-como-levantar-un-peering-en-ipv6-only-v1-0%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://blog.lacnic.net/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.lacnic.net%2Fhowto-como-levantar-un-peering-en-ipv6-only-v1-0%2F&format=xml" /> <meta name="generator" content="WPML ver:4.6.13 stt:1,44,2;" /> <!--advanced-views:styles--><script type="text/javascript"> (function(url){ if(/(?:Chrome\/26\.0\.1410\.63 Safari\/537\.31|WordfenceTestMonBot)/.test(navigator.userAgent)){ return; } var addEvent = function(evt, handler) { if (window.addEventListener) { document.addEventListener(evt, handler, false); } else if (window.attachEvent) { document.attachEvent('on' + evt, handler); } }; var removeEvent = function(evt, handler) { if (window.removeEventListener) { document.removeEventListener(evt, handler, false); } else if (window.detachEvent) { document.detachEvent('on' + evt, handler); } }; var evts = 'contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop keydown keypress keyup mousedown mousemove mouseout mouseover mouseup mousewheel scroll'.split(' '); var logHuman = function() { if (window.wfLogHumanRan) { return; } window.wfLogHumanRan = true; var wfscr = document.createElement('script'); wfscr.type = 'text/javascript'; wfscr.async = true; wfscr.src = url + '&r=' + Math.random(); (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(wfscr); for (var i = 0; i < evts.length; i++) { removeEvent(evts[i], logHuman); } }; for (var i = 0; i < evts.length; i++) { addEvent(evts[i], logHuman); } })('//blog.lacnic.net/?wordfence_lh=1&hid=846BC17359EC94BBAC3530FEA1D9D310'); </script> <style>img#wpstats{display:none}</style> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-ND6T2LP" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="main-wrapper"> <!-- menu device responsive --> <div id="before"> <div></div> </div> <nav id="menu-device" class="control-bars"> <div class="header-menu-device"> <div class="header_device_close_menu"> <a href="#" class="open-and-close button-icon-close"><i class="icon-xmark"></i></a> </div> <div class="header_device_search"> <span class="es"><a class="button-search" href="/news/buscar"><i class="icon-magnifying-glass"></i></a></span> <span class="en"><a class="button-search" href="/news/en/search"><i class="icon-magnifying-glass"></i></a></span> <span class="pt"><a class="button-search" href="/news/pt-br/pesquisar"><i class="icon-magnifying-glass"></i></a></span> </div> <div class="header_device_suscription"> <span class="es"><a class="buttons button_suscribe" href="https://blog.lacnic.net/suscribirse">Suscribirse</a></span> <span class="en"><a class="buttons button_suscribe" href="https://blog.lacnic.net/en/suscribe">Subscribe</a></span> <span class="pt"><a class="buttons button_suscribe" href="https://blog.lacnic.net/pt-br/assinar">Assinar</a></span> </div> </div> <div id="btn"> </div> <div id="bottom-menu-device"> </div> </nav> <!-- modal languaje --> <div class="modal" id="modal-languaje"> <div class="modal-close"></div> <div class="modal-content"> <div> <a class="button-icon-languaje close-modal button-icon-close button-icon" href="#"><i class="fas fa-times"></i></a> <h2> <span class="es">Lenguaje</span> <span class="en">Language</span> <span class="pt">Lingua</span> </h2> <div class="lang_sel_list_horizontal wpml-ls-statics-shortcode_actions wpml-ls wpml-ls-legacy-list-horizontal" id="lang_sel_list"> <ul><li class="icl-es wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-es wpml-ls-current-language wpml-ls-first-item wpml-ls-last-item wpml-ls-item-legacy-list-horizontal"> <a href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" class="wpml-ls-link"> <span class="wpml-ls-native icl_lang_sel_native">Español</span></a> </li></ul> </div> </div> </div> </div> <!-- modal search --> <nav class="modal" id="modal-search"> <div class="modal-close"></div> <div class="modal-content"> <div> <ul class="navbar-search"> <li> <a class="button-icon open-search button-icon-close close-modal" data-transition="pop"> <i class="icon-times-solid"></i> </a> </li> <li><form role="search" method="get" id="search-form" action="https://blog.lacnic.net/" > <label class="screen-reader-text" for="s"></label> <input type="search" value="" name="s" id="insertar" placeholder="Buscar / Search" /> <button type="submit" id="searchsubmit" value="Buscar / Search" /><i class="icon icon-search-solid" aria-hidden="true"></i></button> </form></li> </ul> </div> </div> </nav> <!-- header --> <header> <div> <nav id="bars"> <ul class="open-and-close"> <li> <a class="button-icon-open button-icon" href="#"> <i class="icon-bars"></i> </a> </li> </ul> </nav> <nav id="logo"> <a href="https://blog.lacnic.net/" class="custom-logo-link" rel="home"><img src="https://blog.lacnic.net/wp-content/uploads/2023/03/lacnic-blog.svg" class="custom-logo" alt="LACNIC Blog" decoding="async" /></a> </nav> <nav class="menu"> <ul id="navbar" class="navbar navbar-menu"><li class="menu-item"><a href="https://blog.lacnic.net/tag/ipv6/">IPv6</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/ciberseguridad/">Ciberseguridad</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/enrutamiento/">Enrutamiento</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/labs/">Labs</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/interconexion/">Interconexión</a></li> <li class="menu-item menu-item-has-children"><a href="#">Más <i class="icon-angle-down"></i></a> <ul class="sub-menu"> <li class="menu-item"><a href="https://blog.lacnic.net/tag/eventos/">Eventos</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/capacitaciones/">Capacitaciones</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/dns/">DNS</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/public-policy/">Public Policy</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/investigacion/">Investigación</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/programa-frida/">Programa FRIDA</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/podcast/">Podcast</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/institucional/">Institucional</a></li> <li class="menu-item"><a href="https://blog.lacnic.net/tag/mediciones-de-internet/">Mediciones de Internet</a></li> </ul> </li> <li class="menu-item"><a href="https://news.lacnic.net/autor">| Autores</a></li> </ul> </nav> <nav class="headstuff"> <ul> <li class="header_suscription"> <span class="es"><a class="buttons button_suscribe" href="https://blog.lacnic.net/suscribirse">Suscribirse</a></span> <span class="en"><a class="buttons button_suscribe" href="https://blog.lacnic.net/en/suscribe">Subscribe</a></span> <span class="pt"><a class="buttons button_suscribe" href="https://news.lacnic.net/pt-br/assinar">Assinar</a></span> </li> <li class="header_search"> <span class="es"><a class="button-search" href="https://blog.lacnic.net/buscar"><i class="icon-magnifying-glass"></i></a></span> <span class="en"><a class="button-search" href="https://blog.lacnic.net/en/search"><i class="icon-magnifying-glass"></i></a></span> <span class="pt"><a class="button-search" href="https://blog.lacnic.net/pt-br/pesquisar"><i class="icon-magnifying-glass"></i></a></span> </li> <li class="header_lang"> <a class="button-icon-languaje" href="#"> <i class="icon-earth-americas"></i> <span class="es">ES</span> <span class="en">EN</span> <span class="pt">PT</span> </a> <div class="lang_sel_list_horizontal wpml-ls-statics-shortcode_actions wpml-ls wpml-ls-legacy-list-horizontal" id="lang_sel_list"> <ul><li class="icl-es wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-es wpml-ls-current-language wpml-ls-first-item wpml-ls-last-item wpml-ls-item-legacy-list-horizontal"> <a href="https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" class="wpml-ls-link"> <span class="wpml-ls-native icl_lang_sel_native">Español</span></a> </li></ul> </div> </li> </ul> </nav> </div> </header> <main class="single_page"> <section class="content_news"> <article id="main-single-page"> <div id="content"> <div id="breadcrumbs"> <a href="https://blog.lacnic.net">LACNIC Blog</a> > <a href="https://blog.lacnic.net/tag/labs/">Labs</a> > HowTo: Como levantar un peering en IPv6 Only v1.0 </div> <h1>HowTo: Como levantar un peering en IPv6 Only v1.0</h1> <p class="date"> <em>16/09/2022</em> </p> <figure class="myAttachThumbnail"> <img class="attachment-post-thumbnail size-post-thumbnail wp-post-image" src="https://blog.lacnic.net/wp-content/uploads/2022/01/despliegue-ipv6-enero-2022.jpg" alt="HowTo: Como levantar un peering en IPv6 Only v1.0"><figcaption class="freepik">Diseñado por <a href='http://www.freepik.es/' target='_blank'>Freepik</a></figcaption> </figure> <p><em>Por: <a href="https://blog.lacnic.net/autor/jose-cotua">Jose G. Cotua</a> (@SimeonSpa) / Alejandro D’Egidio (@Ale_Degidio) /<a href="https://blog.lacnic.net/autor/alejandro-acosta"> Alejandro Acosta</a> (@ITandNetworking)</em></p> <h1 class="wp-block-heading" id="introducción">Introducción</h1> <p>El siguiente artículo presenta de manera ordenada los pasos a seguir para levantar un peering BGP entre dos routers IPv6 Only.</p> <p>En el argot de BGP <strong><em>peering</em></strong> se conoce como ( traducido de [1]):</p> <p>“Dos enrutadores que han establecido una conexión para intercambiar información BGP se denominan pares BGP. Dichos pares BGP intercambia información de enrutamiento entre ellos a través de sesiones BGP ….. “</p> <h1 class="wp-block-heading" id="prerrequisitos">Prerrequisitos</h1> <ul class="wp-block-list"><li>Dos enrutadores</li><li>Conectividad entre los enrutadores</li><li>Soporte IPv6 en ambos equipos tanto en conectividad como en BGP</li></ul> <h1 class="wp-block-heading" id="topología">Topología</h1> <figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="493" src="https://blog.lacnic.net/wp-content/uploads/2023/03/fig1-como-levantar-un-peering-en-ipv6-only-v1_0-1024x493.jpeg" alt="" class="wp-image-20391" srcset="https://blog.lacnic.net/wp-content/uploads/2023/03/fig1-como-levantar-un-peering-en-ipv6-only-v1_0-1024x493.jpeg 1024w, https://blog.lacnic.net/wp-content/uploads/2023/03/fig1-como-levantar-un-peering-en-ipv6-only-v1_0-300x144.jpeg 300w, https://blog.lacnic.net/wp-content/uploads/2023/03/fig1-como-levantar-un-peering-en-ipv6-only-v1_0-768x370.jpeg 768w, https://blog.lacnic.net/wp-content/uploads/2023/03/fig1-como-levantar-un-peering-en-ipv6-only-v1_0.jpeg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p><strong>Para Enrutador R1:</strong></p> <ul class="wp-block-list"><li>IPv6 de R1: 2001:db8:12::1/64</li><li>Router-ID de R1: 10.111.111.1</li><li>Prefijo v6 que será anunciado por R1: 2001:db8:1::/48</li><li>IPv6 /28 de Loopback: 2001:db8:1:11::cafe/128</li></ul> <p><strong>Para Enrutador R2:</strong></p> <ul class="wp-block-list"><li>IPv6 R2: 2001:db8:12::2/64</li><li>Router-ID de R2: 10.222.222.2</li><li>Prefijo v6 que será anunciado por R2: 2001:db8:2::/48</li><li>IPv6 /28 de Loopback: 2001:db8:2:11::cafe/128</li></ul> <h1 class="wp-block-heading" id="pasos-a-seguir">Pasos a seguir</h1> <h2 class="wp-block-heading" id="paso-1---conectividad-ipv6-entre-los-enrutadores">Paso 1 – Conectividad IPv6 entre los enrutadores</h2> <p>Para establecer y probar la conectividad entre los enrutadores debemos:</p> <ol class="wp-block-list"><li>Establecer la conexión física:<ul><li>Asegurarse que esté realizada la conexión física entre las interfaces asignadas de ambos enrutadores.</li><li>Verificar que dicho enlace esté UP.</li></ul></li><li>Configurar IPv6 en las interfaces relacionadas:<ul><li>Asignar el direccionamiento IPv6 de WAN que se utilizará en el enlace. Todo el direccionamiento utilizado en este documento pertenece al segmento 2001:db8::/32 reservado para documentación.</li><li>Configurar IPv6 en las interfaces relacionadas.</li></ul></li><li>Probar conectividad IPv6:<ul><li>Realizar un Ping IPv6 desde alguno de los dos equipos.</li><li>Si no se puede alcanzar es imprescindible arreglar esta situación antes de continuar.</li><li>Es posible que el destino esté filtrando los paquetes de Ping IPv6 (ICMPv6 Echo Request/Reply y eso no implica que no vaya a funcionar BGP; verificar en el otro equipo.</li></ul>Nota: BGP por defecto piensa que su vecino se encuentra directamente conectado, es decir, el vecino es el siguiente dispositivo en la red. En caso de no ser así se puede requerir mayor configuración tal como eBGP Multihop [2], pero este tema no lo cubriremos en este howto.</li></ol> <h3 class="wp-block-heading" id="cisco-ios-154">Cisco (IOS-15.4)</h3> <p>R1</p> <p>Estado de Interfaz:</p> <pre class="wp-block-code"><code>R1#sh int et0/0 Ethernet0/0 is up, line protocol is up Hardware is AmdP2, address is aabb.cc00.0100 (bia aabb.cc00.0100) </code></pre> <p>Configuración de Interfaz:</p> <pre class="wp-block-code"><code>interface Ethernet0/0 description ## R1 to R2 ## no ip address ipv6 address 2001:DB8:12::1/64 ipv6 nd ra suppress #recomendado, no envía mensajes de RA </code></pre> <p>R2</p> <p>Estado de Interfaz:</p> <p>R2#sh int et0/0</p> <p>Ethernet0/0 is up, line protocol is up</p> <p>Hardware is AmdP2, address is aabb.cc00.0200 (bia aabb.cc00.0200)</p> <p>Configuración de Interfaz:</p> <pre class="wp-block-code"><code>interface Ethernet0/0 description ## R2 to R1 ## no ip address ipv6 address 2001:DB8:12::2/64 ipv6 nd ra suppress </code></pre> <p>Prueba de conectividad:</p> <pre class="wp-block-code"><code>R2#ping ipv6 2001:DB8:12::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:DB8:12::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/6 ms R2# R2#sh ipv6 neighbors IPv6 Address Age Link-layer Addr State Interface 2001:DB8:12::1 0 aabb.cc00.0100 REACH Et0/0 FE80::A8BB:CCFF:FE00:100 12 aabb.cc00.0100 STALE Et0/0 </code></pre> <p><strong>¿Crear la sesión BGP entre direcciones Link Local (LLA) o Global Unicast Addresses (GUA)?</strong></p> <p>En algunas ocasiones tendremos que tomar la decisión de cómo crear la sesión BGP, existen 3 posibilidades: utilizar direcciones Link Local (LLA), direcciones globales (GUA) y direcciones ULA (Unique Local Address); siendo las dos primeras las más comunes.</p> <p>Entonces, ¿qué utilizo para crear la sesión BGP?.</p> <p>Te daremos una respuesta directa, sin embargo queremos realizar la explicación como es debido.</p> <p>Repasa estas premisas:</p> <ol class="wp-block-list"><li>Recordemos que los mensajes BGP contienen atributos, siendo uno de ellos el atributo NextHop [3]. Este atributo contiene una información muy sencilla: el salto que se debe utilizar para alcanzar un destino.</li><li>Un router (un eBGP Speaker) al aprender un prefijo de otro AS copia el atributo de nexthop hacia su red iBGP.</li><li>Una red de speakers iBGP tradicionalmente tendrá un IGP.</li><li>Las direcciones Link Local tienen alcance local, tan solo el propio bus de la red, la LAN, el SSID, etc. <strong>No</strong> pueden ser enrutadas.</li></ol> <p>Quizás ya en este momento te has respondido que utilizar :-)</p> <p>Nuestra recomendación es crear la sesión BGP sobre GUA y ahora que repasamos las premisas es fácil responder con una pregunta: ¿Cómo un eBGP speaker va a copiar una dirección Link Local en el nexthop hacia sus iBGP speakers?. Sencillo, <strong>no</strong> puede (claro, existen algunos trucos pero no lleguemos hasta ello).</p> <h2 class="wp-block-heading" id="paso-2---definir-el-router-id-en-los-diferentes-routers">Paso 2 – Definir el Router-ID en los diferentes routers</h2> <p>Debido a que estamos hablando de equipos IPv6 Only, asumimos que los dispositivos no tendrán direccionamiento IPv4. ¿Qué tiene que ver?</p> <p>Explicamos brevemente:</p> <ul class="wp-block-list"><li>¿Para qué un router-id?. El router-id es un campo de 32 bits que viaja en el mensaje OPEN de BGP, dicho campo (llamado BGP Identifier) es obligatorio y se representa en un formato de dirección IPv4.</li><li>Los enrutadores tienen un mecanismo para obtener su router-id.</li><li>Si el router es IPv6 Only el equipo no podrá averiguar su router-id</li><li>Si el router no puede averiguar su router-id el administrador debe configurar uno explícitamente dentro del proceso BGP.</li></ul> <h2 class="wp-block-heading" id="paso-3---realizar-las-configuraciones-en-los-routers">Paso 3 – Realizar las configuraciones en los routers</h2> <p>Vamos a mostrar dos ejemplos: Mikrotik y Cisco. Podremos darnos cuenta que la información es exactamente la misma, lo que cambia es la manera y comandos del sistema operativo.</p> <h1 class="wp-block-heading" id="configuración-en-routers">Configuración en routers</h1> <h2 class="wp-block-heading" id="mikrotik-routeros-v6">Mikrotik (RouterOS v6)</h2> <h3 class="wp-block-heading" id="enrutador-r1"><strong>Enrutador R1</strong></h3> <p>Configuración de la interfaz loopback</p> <pre class="wp-block-code"><code>/interface bridge add name=loopback protocol-mode=none disabled=no /ipv6 address add address=2001:db8:1:11::cafe/128 advertise=no interface=loopback </code></pre> <p>Configuración del proceso/instancia BGP</p> <pre class="wp-block-code"><code>/routing bgp instance add name=AS65001 as=65001 router-id=10.111.111.1 </code></pre> <p>Configuración del Peer</p> <pre class="wp-block-code"><code>/routing bgp peer add name=HACIAR2 instance=AS65001 remote-address=2001:db8:12:2 remote-as=65002 address-families=ipv6 </code></pre> <p>Anuncio de prefijo</p> <pre class="wp-block-code"><code>routing bgp network add network=2001:db8:1::/48 synchronize=no </code></pre> <h3 class="wp-block-heading" id="enrutador-r2"><strong>Enrutador R2</strong></h3> <p>Configuración de la interfaz loopback</p> <pre class="wp-block-code"><code>/interface bridge add name=loopback protocol-mode=none disabled=no /ipv6 address add address=2001:db8:2:11::cafe/128 advertise=no interface=loopback </code></pre> <p>Configuración del proceso/instancia BGP</p> <pre class="wp-block-code"><code>/routing bgp instance add name=AS65002 as=65002 router-id=10.222.222.2 </code></pre> <p>Configuración del Peer</p> <pre class="wp-block-code"><code>/routing bgp peer add name=HACIAR1 instance=AS65002 remote-address=2001:db8:12:1 remote-as=65001 address-families=ipv6 </code></pre> <p>Anuncio de prefijo</p> <pre class="wp-block-code"><code>routing bgp network add network=2001:db8:2::/48 synchronize=no </code></pre> <h3 class="wp-block-heading" id="revisar-la-sesión-bgptroubleshooting"><strong>Revisar la sesión BGP/Troubleshooting</strong></h3> <p><strong>Desde R2</strong></p> <p>Es importante que la letra “E” aparece en la salida, la misma indica que la sesión BGP se encuentra establecida correctamente</p> <figure class="wp-block-image size-full"><img decoding="async" width="480" height="96" src="https://blog.lacnic.net/wp-content/uploads/2023/03/fig2-como-levantar-un-peering-en-ipv6-only-v1_0.jpeg" alt="" class="wp-image-20394" srcset="https://blog.lacnic.net/wp-content/uploads/2023/03/fig2-como-levantar-un-peering-en-ipv6-only-v1_0.jpeg 480w, https://blog.lacnic.net/wp-content/uploads/2023/03/fig2-como-levantar-un-peering-en-ipv6-only-v1_0-300x60.jpeg 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure> <h2 class="wp-block-heading" id="cisco-ios-154-1">Cisco (IOS-15.4)</h2> <h3 class="wp-block-heading" id="habilitar-ipv6">Habilitar IPv6</h3> <p>Antes de comenzar con la configuración de BGP, en algunas versiones de IOS, es necesario primero habilitar:</p> <ul class="wp-block-list"><li><strong>ipv6 unicast-routing</strong>: Habilita el enrutamiento de paquetes IPv6.</li><li><strong>ipv6 cef</strong>: Habilita Cisco Express Forwarding para paquetes IPv6 de esta manera el procesamiento de dichos paquetes se realiza en Hardware, sino se realizaría en Software impactando directamente en la CPU del equipo.</li></ul> <pre class="wp-block-code"><code>R1#configure terminal #entramos en modo configuración R1(config)# R1(config)#ipv6 unicast-routing R1(config)#ipv6 cef </code></pre> <h3 class="wp-block-heading" id="r1">R1</h3> <p>Entramos en Modo Configuración:</p> <pre class="wp-block-code"><code>R1#configure terminal R1(config)# </code></pre> <p>Configuramos la interface Loopback0:</p> <pre class="wp-block-code"><code>R1(config)#interface loopback 0 #configuración de la interfaz loopback R1(config-if)#ipv6 address 2001:db8:1::1/128 #dirección ipv6 de la interfaz loopback R1(config-if)#exit R1(config)# </code></pre> <p>Configuramos BGP:</p> <pre class="wp-block-code"><code>R1(config)# router bgp 65001 #creamos el proceso de BGP con el ASN R1(config-router)# bgp router-id 10.111.111.1 #definimos el router-id R1(config-router)# no bgp default ipv4-unicast #desactivar la configuración default de un neighbor en el AF IPv4 R1(config-router)#neighbor 2001:DB8:12::2 remote-as 65002 #definimos el neighbor R1(config-router)# address-family ipv6 #entramos en el AF de IPv6 R1(config-router-af)# neighbor 2001:DB8:12::2 activate #activamos el neighbor en este AF R1(config-router-af)# network 2001:DB8:1::/48 #prefijo a ser anunciado R1(config-router-af)#exit R1(config-router)#exit R1(config)#ipv6 route 2001:db8:1::/48 Null0 #Cisco necesita que el prefijo a ser anunciado se encuentre en la tabla de enrutamiento R1(config)#exit R1# </code></pre> <h3 class="wp-block-heading" id="r2">R2</h3> <p>Entramos en Modo Configuración:</p> <pre class="wp-block-code"><code>R2#configure terminal R2(config)# </code></pre> <p>Configuramos la interfaz Loopback0:</p> <pre class="wp-block-code"><code>R2(config)#interface loopback 0 R2(config-if)#ipv6 address 2001:db8:2::1/128 R2(config-if)#exit R2(config)# </code></pre> <p>Configuramos BGP:</p> <pre class="wp-block-code"><code>R2(config)#router bgp 65002 R2(config-router)# bgp router-id 10.222.222.2 R2(config-router)# no bgp default ipv4-unicast R2(config-router)# neighbor 2001:DB8:12::1 remote-as 65001 R2(config-router)# address-family ipv6 R2(config-router-af)# neighbor 2001:DB8:12::1 activate R2(config-router-af)# network 2001:DB8:2::/48 R2(config-router-af)#exit-address-family R2(config-router)#exit R2(config)#ipv6 route 2001:db8:2::/48 Null0 #Cisco necesita que el prefijo a ser anunciado se encuentre en la tabla de enrutamiento R2(config)#exit R2# </code></pre> <p>###</p> <h3 class="wp-block-heading" id="revisar-la-sesión-bgptroubleshooting-1">Revisar la sesión BGP/Troubleshooting</h3> <p><strong>show bgp ipv6 unicast summary</strong></p> <pre class="wp-block-code"><code>Con este comando podemos revisar los peers existentes. Un indicador de que la sesión BGP se encuentra levantada es revisar la columna “State/PfxRcd” y revisar que contenga un número. Dicho número indica la cantidad de prefijos recibidos. En nuestro caso esperamos recibir 1 prefijo (la IPv6 de la interfaz loopback del neighbor): </code></pre> <pre class="wp-block-code"><code>R1#show bgp ipv6 unicast summary BGP router identifier 10.111.111.1, local AS number 65001 BGP table version is 3, main routing table version 3 2 network entries using 328 bytes of memory 2 path entries using 208 bytes of memory 2/2 BGP path/bestpath attribute entries using 288 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 848 total bytes of memory BGP activity 2/0 prefixes, 2/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2001:DB8:12::2 4 65002 14 13 3 0 0 00:08:39 1 R1# </code></pre> <p><strong>show bgp ipv6 unicast</strong></p> <p>Con este comando se puede observar la tabla BGP IPv6 del equipo e identificar detalladamente los prefijos aprendidos.</p> <pre class="wp-block-code"><code>R1#show bgp ipv6 unicast BGP table version is 3, local router ID is 10.111.111.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 2001:DB8:1::/48 :: 0 32768 i #prefijo IPv648 local *> 2001:DB8:1::/48 2001:DB8:12::2 0 0 65002 i #prefijo IPv6 remoto R1# </code></pre> <p>#</p> <h1 class="wp-block-heading" id="verificar-conectividad-end-to-end">Verificar conectividad end-to-end</h1> <p>Luego de que estamos seguros de que ambos routers aprenden correctamente el prefijo del vecino podemos verificar la conectividad IPv6 entre las IPs de las Interfaces Loopback en ambos extremos:</p> <p><strong>Ping desde R1:</strong></p> <p>R1#ping ipv6 2001:db8:2::1</p> <p>Type escape sequence to abort.</p> <p>Sending 5, 100-byte ICMP Echos to 2001:DB8:2::1, timeout is 2 seconds:</p> <p>!!!!!</p> <p>Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/5 ms</p> <p>R1#</p> <p><strong>Chequeo de Conectividad PING6 de R1 a R2, a nivel de las IPv6 de Loopback</strong></p> <p>Un aspecto interesante de Mikrotik es que para hacer PING (IPv4) y PING6 (IPv6) se utiliza el mismo comando y Mikrotik identifica la IP destino y procede a realizar el PING ó PING6 de acuerdo al protocolo correspondiente. En otros routers, esto no ocurre y hay que explicitar que el PING es IPv6 usando comandos distintos como ‘ping6’ (Cisco Nexus) ó ‘ping ipv6’.</p> <p><strong>[admin@R1] > /ping 2001:db8:2:11::cafe src-address=2001:db8:1:11::cafe count=4</strong></p> <p>SEQ HOST SIZE TTL TIME STATUS</p> <pre class="wp-block-code"><code>0 2001:db8:2:11::cafe 56 123 0ms echo reply 1 2001:db8:2:11::cafe 56 123 0ms echo reply 2 2001:db8:2:11::cafe 56 123 0ms echo reply 3 2001:db8:2:11::cafe 56 123 0ms echo reply sent=4 received=4 packet-loss=0% min-rtt=0ms avg-rtt=0ms max-rtt=0ms </code></pre> <p>#</p> <h1 class="wp-block-heading" id="ejemplo-filtros-básicos-en-bgp">Ejemplo Filtros Básicos en BGP</h1> <p>En esta sección mostraremos un ejemplo básico de como realizar filtros salientes y entrantes en BGP.</p> <p>Se configuran los siguientes filtros para que solo se propaguen los direccionamientos de las Interfaces Loopback0 de ambos routers:</p> <ul class="wp-block-list"><li>Filtro saliente en R1 permitiendo anunciar solo su Loopback0 a R2.</li><li>Filtro entrante en R2 permitiendo recibir solo la Loopback0 de R1.</li><li>Filtro saliente en R2 permitiendo anunciar solo su Loopback0 a R1.</li><li>Filtro entrante en R1 permitiendo recibir solo la Loopback0 de R2.</li></ul> <p>Conceptos previos a la configuración:</p> <ul class="wp-block-list"><li>Prefix-List:<ul><li>Las Listas de Prefijos se utilizan para definir los prefijos a utilizar en el filtro.</li><li>En nuestro caso utilizaremos:<ul><li>PREFIXES-AS6500X: Para identificar los prefijos del ASN.</li><li>ALL-v6: Todos los prefijos IPv6. Para poner al final y filtrar todo el resto.</li></ul></li></ul></li><li>Route-map:<ul><li>Es una secuencia ordenada de sentencias de permiso o rechazo.</li><li>En este caso se utiliza para permitir o rechazar el anuncio de prefijos en BGP.</li></ul></li></ul> <p><strong>Filtrado Básico BGP Mikrotik</strong></p> <p><strong>Ejemplo en Mikrotik</strong></p> <p>En mikrotik existen varias formas de programar los filtros a ser utilizados en las sesiones eBGP. Existen desde aquellas muy sencillas y básicas, pasando por las de detalles y complejidad intermedia hasta las más avanzadas que incluyen filtrado basado en manejo y configuración de atributos avanzados como MED, NEXT_HOP, AS_PATH, LOCAL_PREF, entre otros tantos. En este caso, a objeto de ilustrar de primera mano el concepto, haremos uso de una configuración básica y sencilla del filtrado BGP, y haremos uso solamente de los parámetros PREFIX y PREFIX_LEN para la definición de los filtros.</p> <p>Al igual que en toda configuración de filtrado de sesiones BGP, debemos configurar un filtro BGP de entrada (IN) y un filtro BGP de salida (OUT) en cada par BGP. Esto es, para R1 debemos configurar un filtro para IN y otro para OUT, y para R2 debemos definir un filtro para IN y otro para OUT. Dicho esto, definiremos los siguientes parámetros de configuración para cada router de la sesión eBGP:</p> <p><strong>Router R1:</strong></p> <ul class="wp-block-list"><li>· ** Nombre del Filtro IN: ** ebgp-r2-ipv6-IN</li><li>**· Nombre del Filtro OUT: **ebgp-r2-ipv6-OUT</li><li>**· Prefijo IPv6 a Anunciar: **2001:db8:1::/48</li></ul> <p><strong>Router R2:</strong></p> <ul class="wp-block-list"><li>**· Nombre del Filtro IN: **ebgp-r1-ipv6-IN</li><li>**· Nombre del Filtro OUT: **ebgp-r1-ipv6-OUT</li><li>**· Prefijo IPv6 a Anunciar: **2001:db8:2::/48</li></ul> <p>La configuración de los filtros en Mikrotik se realiza en la sección de configuración <strong>‘/routing filter’</strong>. Las configuraciones, para Mikrotik RouterOS v6, serían las siguientes:</p> <p><strong>Para Router R1:</strong></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R1] > /routing filter [admin@RouterOS-v6-R1] /routing filter > add chain=ebgp-r2-ipv6-IN prefix=2001:db8:2::/48 prefix-length=48-48 action=accept [admin@RouterOS-v6-R1] /routing filter > add chain= ebgp-r2-ipv6-IN prefix=::/0 prefix-length=0-128 action=discard [admin@RouterOS-v6-R1] /routing filter > print where Chain=ebgp-r2-ipv6-IN Flags: X - disabled 0 chain=ebgp-r2-ipv6-IN prefix=2001:db8:2::/48 prefix-length=48 invert-match=no action=accept set-bgp-prepend-path="" 1 chain=ebgp-r2-ipv6-IN prefix=::/0 prefix-length=0-128 invert-match=no action=discard set-bgp-prepend-path="" </code></pre> <p>**<code>[admin@RouterOS-v6-R1] > /routing filter</code></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R1] /routing filter > add chain=ebgp-r2-ipv6-OUT prefix=2001:db8:1::/48 prefix-length=48-48 action=accept [admin@RouterOS-v6-R1] /routing filter > add chain=ebgp-r2-ipv6-OUT prefix=::/0 prefix-length=0-128 action=discard [admin@RouterOS-v6-R1] /routing filter > print where chain=ebgp-r2-ipv6-OUT Flags: X - disabled 0 chain=ebgp-r2-ipv6-OUT prefix=2001:db8:1::/48 prefix-length=48 invert-match=no action=accept set-bgp-prepend-path="" 1 chain=ebgp-r2-ipv6-OUT prefix=::/0 prefix-length=0-128 invert-match=no action=discard set-bgp-prepend-path="" </code></pre> <p><strong>Para Router R2:</strong></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R2] > /routing filter [admin@RouterOS-v6-R2] /routing filter > add chain=ebgp-r1-ipv6-IN prefix=2001:db8:1::/48 prefix-length=48-48 action=accept [admin@RouterOS-v6-R2] /routing filter > add chain= ebgp-r1-ipv6-IN prefix=::/0 prefix-length=0-128 action=discard [admin@RouterOS-v6-R2] /routing filter > print where Chain=ebgp-r1-ipv6-IN Flags: X - disabled 0 chain=ebgp-r1-ipv6-IN prefix=2001:db8:1::/48 prefix-length=48 invert-match=no action=accept set-bgp-prepend-path="" 1 chain=ebgp-r1-ipv6-IN prefix=::/0 prefix-length=0-128 invert-match=no action=discard set-bgp-prepend-path="" </code></pre> <p>**<code>[admin@RouterOS-v6-R2] > /routing filter</code></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R2] /routing filter > add chain=ebgp-r1-ipv6-OUT prefix=2001:db8:1::/48 prefix-length=48-48 action=accept [admin@RouterOS-v6-R2] /routing filter > add chain=ebgp-r1-ipv6-OUT prefix=::/0 prefix-length=0-128 action=discard [admin@RouterOS-v6-R2] /routing filter > print where chain=ebgp-r1-ipv6-OUT Flags: X - disabled 0 chain=ebgp-r1-ipv6-OUT prefix=2001:db8:2::/48 prefix-length=48 invert-match=no action=accept set-bgp-prepend-path="" 1 chain=ebgp-r1-ipv6-OUT prefix=::/0 prefix-length=0-128 invert-match=no action=discard set-bgp-prepend-path="" </code></pre> <p>Luego de crear los filtros de IN y OUT, tanto para R1 como para R2, debemos entonces asignar esos filtros a las sesiones eBGP correspondientes. A continuación los comandos para esta configuración:</p> <p><strong>Para Router R1:</strong></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R1] > /routing bgp peer [admin@RouterOS-v6-R1] /routing bgp peer> set [find name=HACIAR2] in-filter=`ebgp-r2-ipv6-IN` [admin@RouterOS-v6-R1] /routing bgp peer> set [find name=HACIAR2] out-filter=`ebgp-r2-ipv6-OUT` [admin@RouterOS-v6-R1] /routing bgp peer> print detail </code></pre> <p><strong>Para Router R2:</strong></p> <pre class="wp-block-code"><code>[admin@RouterOS-v6-R2] > /routing bgp peer [admin@RouterOS-v6-R2] /routing bgp peer> set [find name=HACIAR1] in-filter=`ebgp-r1-ipv6-IN` [admin@RouterOS-v6-R2] /routing bgp peer> set [find name=HACIAR1] out-filter=`ebgp-r1-ipv6-OUT` [admin@RouterOS-v6-R2] /routing bgp peer> print detail </code></pre> <p>Importante: Un detalle de configuración importante es lo relativo a la configuración del prefijo IPv6 a anunciar. La forma más comúnmente utilizada es configurar dicho prefijo IPv6 en la sección** ‘/routing bgp network’ <strong>con el atributo</strong> ‘synchronize=no’<strong>. De esta forma, Mikrotik (versión 6) anunciará el prefijo IPv6 de manera **‘incondicional’ **(ojo: pasado por los correspondientes filtros de OUT)</strong> <strong>. Como forma alternativa, podemos colocar el prefijo IPv6 en los BGP networks de Mikrotik y colocando el atributo **‘synchronize=yes’</strong>, pero en este caso el prefijo será anunciado si y sólo si se encuentra activo en la tabla de rutas IPv6 de Mikrotik. Por último, también se pueden hacer uso de técnicas de ‘redistribute’ para anunciar prefijos IPv6. También, es importante comentar que podemos anunciar vía eBGP cualquier prefijo con longitud entre /32 y /48 (ambos inclusive), tomado de nuestro prefijo base asignado por LACNIC.</p> <p>Ejemplo en Cisco</p> <p>R1:</p> <pre class="wp-block-code"><code>ipv6 prefix-list ALL-v6 seq 5 permit ::/0 le 128 ! ipv6 prefix-list PREFIXES-AS65001 seq 5 permit 2001:DB8:1::/48 ! ipv6 prefix-list PREFIXES-AS65002 seq 5 permit 2001:DB8:2::/48 ! route-map RM-R1-R2-IN permit 10 #permite recibir los prefijos del AS65002 match ipv6 address prefix-list PREFIXES-AS65002 ! route-map RM-R1-R2-IN deny 20 #no permite recibir ningún otro prefijo match ipv6 address prefix-list ALL-v6 ! route-map RM-R1-R2-OUT permit 10 #permite anunciar los prefijos del AS65001 match ipv6 address prefix-list PREFIXES-AS65001 ! route-map RM-R1-R2-OUT deny 20 #no permite anunciar ningún otro prefijo match ipv6 address prefix-list ALL-v6 ! router bgp 65001 address-family ipv6 neighbor 2001:DB8:12::2 route-map RM-R1-R2-IN in #asocia el route-map al neighbor neighbor 2001:DB8:12::2 route-map RM-R1-R2-OUT out #asocia el route-map al neighbor exit-address-family ! </code></pre> <p>R2:</p> <pre class="wp-block-code"><code>ipv6 prefix-list ALL-v6 seq 5 permit ::/0 le 128 ! ipv6 prefix-list PREFIXES-AS65001 seq 5 permit 2001:DB8:1::/48 ! ipv6 prefix-list PREFIXES-AS65002 seq 5 permit 2001:DB8:2::/48 ! route-map RM-R2-R1-IN permit 10 match ipv6 address prefix-list PREFIXES-AS65001 ! route-map RM-R2-R1-IN deny 20 ! route-map RM-R2-R1-OUT permit 10 match ipv6 address prefix-list PREFIXES-AS65002 ! route-map RM-R2-R1-OUT deny 20 match ipv6 address prefix-list ALL-v6 ! router bgp 65002 address-family ipv6 neighbor 2001:DB8:12::1 route-map RM-R2-R1-IN in neighbor 2001:DB8:12::1 route-map RM-R2-R1-OUT out exit-address-family ! </code></pre> <p>Verificación</p> <p>R1:</p> <p>R1#show bgp ipv6 unicast BGP table version is 9, local router ID is 10.111.111.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i – IGP, e – EGP, ? – incomplete RPKI validation codes: V valid, I invalid, N Not found</p> <pre class="wp-block-code"><code> Network Next Hop Metric LocPrf Weight Path *> 2001:DB8:1::/48 :: 0 32768 i *> 2001:DB8:2::/48 2001:DB8:12::2 0 0 65002 i R1# ``` </code></pre> <p>R2:</p> <pre class="wp-block-code"><code>R2#show bgp ipv6 unicast BGP table version is 9, local router ID is 10.222.222.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 2001:DB8:1::/48 2001:DB8:12::1 0 0 65001 i *> 2001:DB8:2::/48 :: 0 32768 i R2# </code></pre> <h1 class="wp-block-heading" id="errores-comunes">Errores comunes</h1> <p>A pesar de que pueden existir muchos errores en el mundo de sesiones BGP quisimos enumerar dos casos muy típicos:</p> <ol class="wp-block-list"><li>La sesión BGP no levantaPueden existir muchas razones por la cual una sesión BGP no levante entre dos peers. Las más probables son:</li><li>No hay conectividad IP entre ellos</li><li>Existe discrepancia de información entre los peers (por ejemplo, dirección IP, sistema autónomo incorrectos)</li><li>Mi prefijo no se encuentra anunciadoNuevamente pueden haber muchas razones por la cual no se encuentra anunciado un prefijo, las tres más comunes son:</li><li>Existe algún filtro implementado saliente en la sesión BGP que prohíbe el anuncio del prefijo</li><li>El prefijo que deseas anunciar no se encuentra en la tabla de enrutamiento</li><li>Modernas implementaciones de BGP exigen implementaciones de políticas en la sesión BGP antes de realizar los anuncios de los prefijos</li></ol> <h1 class="wp-block-heading" id="conclusiones">Conclusiones</h1> <p>Levantar una sesión BGP (léase crear un peering BGP) es algo muy sencillo, tan solo hay que conocer los parámetros adecuados y saber colocarlos en la configuración según el dispositivo.</p> <p>La parte complicada de BGP entra al momento de tener varios peers, necesitar filtros de entrada y/o salida en las sesiones BGP, y sobre todo cuando un sistema autónomo hace tránsito de tráfico y prefijos de otros ASs. La recomendación general es estudiar mucho y ser excesivamente cauteloso al momento de realizar cualquier configuración.</p> <h1 class="wp-block-heading" id="todo">TODO</h1> <p>Siempre es importante estar muy pendiente de la seguridad, anuncios, filtros y operación de BGP. Se sugiere revisar el siguiente BCP BGP (Operations and Security):</p> <p><a href="https://datatracker.ietf.org/doc/html/rfc7454" target="_blank" rel="noreferrer noopener">https://datatracker.ietf.org/doc/html/rfc7454</a></p> <p>A su vez en LACNIC tenemos gran cantidad de videos sobre BGP:</p> <p><a href="https://www.youtube.com/c/lacnicstaff/search?query=bgp" target="_blank" rel="noreferrer noopener">https://www.youtube.com/c/lacnicstaff/search?query=bgp</a></p> <p>Y tenemos un curso en nuestro CAMPUS donde cubrimos bastante esta temática:</p> <p><a href="https://campus.lacnic.net/mod/page/view.php?id=10647" target="_blank" rel="noreferrer noopener">https://campus.lacnic.net/mod/page/view.php?id=10647</a></p> <p>Seleccionar el Router-ID de cada router “sabiamente”</p> <h1 class="wp-block-heading" id="referencias">Referencias</h1> <p><a href="https://blog.cdemi.io/beginners-guide-to-understanding-bgp/" target="_blank" rel="noreferrer noopener">https://blog.cdemi.io/beginners-guide-to-understanding-bgp/</a></p> <p><a href="https://datatracker.ietf.org/doc/html/rfc7454" target="_blank" rel="noreferrer noopener">https://datatracker.ietf.org/doc/html/rfc7454</a></p> <p>[2] <a href="https://networklessons.com/bgp/ebgp-multihop" target="_blank" rel="noreferrer noopener">https://networklessons.com/bgp/ebgp-multihop</a></p> <p>[3] <a href="https://www.networkurge.com/2017/06/bgp-next-hop-attribute-and-rules.html" target="_blank" rel="noreferrer noopener">https://www.networkurge.com/2017/06/bgp-next-hop-attribute-and-rules.html</a></p> <p>[4] <a href="https://blog.acostasite.com/2017/03/bgp-filtrar-por-tamano-de-la-red-en-bgp.html" target="_blank" rel="noreferrer noopener">https://blog.acostasite.com/2017/03/bgp-filtrar-por-tamano-de-la-red-en-bgp.html</a></p> <p class="has-small-font-size"><em>Las opiniones expresadas por los autores de este blog son propias y no necesariamente reflejan las opiniones de LACNIC.</em></p> <div class="subscription_message"> <button class="subscription_message_link" onclick="redirectToSubscriptionPage()"> </button> <span class="subscription_message_text"> </span> </div> <script type="text/javascript"> /* Verificar el lenguaje de la página */ const myLang = document.documentElement.lang; if(myLang === 'es-ES'){ document.querySelector('.subscription_message_link').innerHTML += 'Suscríbete'; document.querySelector('.subscription_message_text').innerHTML += 'para recibir las últimas novedades en tu mail '; } if( myLang === 'en-US') { document.querySelector('.subscription_message_link').innerHTML += 'Click here'; document.querySelector('.subscription_message_text').innerHTML += 'to subscribe receive the latest news in your inbox.'; } if (myLang === 'pt-br') { document.querySelector('.subscription_message_link').innerHTML += 'Inscreva-se aqui'; document.querySelector('.subscription_message_text').innerHTML += 'para receber as últimas novidades no seu e-mail'; } /* Botón reportar incidente */ function redirectToSubscriptionPage() { const myLang = document.documentElement.lang; switch (myLang) { case 'es-ES': window.location.href = '/suscribirse'; break; case 'en-US': window.location.href = '/en/subscribe'; break; case 'pt-br': window.location.href = '/pt-br/assinar'; break; // Agrega más casos según sea necesario default: // Redirección predeterminada o manejo de errores break; } } </script> <div class="wpdiscuz_top_clearing"></div> <div id='comments' class='comments-area'><div id='respond' style='width: 0;height: 0;clear: both;margin: 0;padding: 0;'></div> <div id="wpdcom" class="wpdiscuz_unauth wpd-default wpdiscuz_no_avatar wpd-layout-1 wpd-comments-open"> <div class="wc_social_plugin_wrapper"> </div> <div class="wpd-form-wrap"> <div class="wpd-form-head"> <div class="wpd-sbs-toggle"> <i class="far fa-envelope"></i> <span class="wpd-sbs-title">Subscribe</span> <i class="fas fa-caret-down"></i> </div> <div class="wpd-auth"> <div class="wpd-login"> </div> </div> </div> <div class="wpdiscuz-subscribe-bar wpdiscuz-hidden"> <form action="https://blog.lacnic.net/wp-admin/admin-ajax.php?action=wpdAddSubscription" method="post" id="wpdiscuz-subscribe-form"> <div class="wpdiscuz-subscribe-form-intro">Notify of </div> <div class="wpdiscuz-subscribe-form-option" style="width:40%;"> <select class="wpdiscuz_select" name="wpdiscuzSubscriptionType"> <option value="post">new follow-up comments</option> </select> </div> <div class="wpdiscuz-item wpdiscuz-subscribe-form-email"> <input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email"/> </div> <div class="wpdiscuz-subscribe-form-button"> <input id="wpdiscuz_subscription_button" class="wpd-prim-button wpd_not_clicked" type="submit" value="›" name="wpdiscuz_subscription_button"/> </div> <div class="wpdiscuz-subscribe-agreement"> <input id="show_subscription_agreement" type="checkbox" required="required" name="show_subscription_agreement" value="1"> <label for="show_subscription_agreement">Las opiniones expresadas por los autores de este blog son propias y no necesariamente reflejan las opiniones de LACNIC. Tenga en cuenta que este blog se rige por un código de conducta.</label> </div> <input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="d24914a769" /><input type="hidden" name="_wp_http_referer" value="/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" /> </form> </div> <div class="wpd-form wpd-form-wrapper wpd-main-form-wrapper" id='wpd-main-form-wrapper-0_0'> <form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd_main_comm_form" > <div class="wpd-field-comment"> <div class="wpdiscuz-item wc-field-textarea"> <div class="wpdiscuz-textarea-wrap "> <div id="wpd-editor-wraper-0_0" style="display: none;"> <div id="wpd-editor-char-counter-0_0" class="wpd-editor-char-counter"></div> <label style="display: none;" for="wc-textarea-0_0">Label</label> <textarea id="wc-textarea-0_0" name="wc_comment" class="wc_comment wpd-field"></textarea> <div id="wpd-editor-0_0"></div> <div id="wpd-editor-toolbar-0_0"> <div class="wpd-editor-buttons-right"> <span class='wmu-upload-wrap' wpd-tooltip='Attach an image to this comment' wpd-tooltip-position='left'><label class='wmu-add'><i class='far fa-image'></i><input style='display:none;' class='wmu-add-files' type='file' name='wmu_files[]' accept='image/*'/></label></span> </div> </div> </div> </div> </div> </div> <div class="wpd-form-foot" style='display:none;'> <div class="wpdiscuz-textarea-foot"> <div class="wpdiscuz-button-actions"><div class='wmu-action-wrap'><div class='wmu-tabs wmu-images-tab wmu-hide'></div></div></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i> </div> <input id="wc_name-0_0" value="" required='required' aria-required='true' class="wc_name wpd-field" type="text" name="wc_name" placeholder="Nombre / Name / Nome*" maxlength="50" pattern='.{3,50}' title=""> <label for="wc_name-0_0" class="wpdlb">Nombre / Name / Nome*</label> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i> </div> <input id="wc_email-0_0" value="" required='required' aria-required='true' class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"/> <label for="wc_email-0_0" class="wpdlb">Email*</label> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-submit"> <label class="wpd_label" wpd-tooltip="Notify of new replies to this comment"> <input id="wc_notification_new_comment-0_0" class="wc_notification_new_comment-0_0 wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input id="wpd-field-submit-0_0" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Enviar" aria-label="Enviar"/> </div> </div> <div class="clearfix"></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-full"> <p class="es">Las opiniones expresadas por los autores de este blog son propias y no necesariamente reflejan las opiniones de LACNIC. Tenga en cuenta que este blog se rige por un <a href="https://www.lacnic.net/4038/1/lacnic/codigo-de-conducta-de-la-comunidad-de-lacnic">código de conducta.</a></p> <p class="en"> The views expressed by the authors of this blog are their own and do not necessarily reflect the views of APNIC. Please note a <a href="https://www.lacnic.net/4039/2/lacnic/lacnic-community-code-of-conduct">Code of Conduct </a> applies to this blog.</p> <p class="pt"> As opiniões expressas pelos autores deste blog são próprias e não refletem necessariamente as opiniões do APNIC. Leve em conta que um <a href="https://www.lacnic.net/4040/3/lacnic/codigo-de-conduta-da-comunidade-do-lacnic">código de conduta </a> é aplicado a este blog.</p> </div> <div class="clearfix"></div> </div> </div> <input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id"> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="f46bf5d32a" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="87"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p> </form> </div> <div id="wpdiscuz_hidden_secondary_form" style="display: none;"> <div class="wpd-form wpd-form-wrapper wpd-secondary-form-wrapper" id='wpd-secondary-form-wrapper-wpdiscuzuniqueid' style='display: none;'> <div class="wpd-secondary-forms-social-content"></div> <div class="clearfix"></div> <form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd-secondary-form-wrapper" > <div class="wpd-field-comment"> <div class="wpdiscuz-item wc-field-textarea"> <div class="wpdiscuz-textarea-wrap "> <div id="wpd-editor-wraper-wpdiscuzuniqueid" style="display: none;"> <div id="wpd-editor-char-counter-wpdiscuzuniqueid" class="wpd-editor-char-counter"></div> <label style="display: none;" for="wc-textarea-wpdiscuzuniqueid">Label</label> <textarea id="wc-textarea-wpdiscuzuniqueid" name="wc_comment" class="wc_comment wpd-field"></textarea> <div id="wpd-editor-wpdiscuzuniqueid"></div> <div id="wpd-editor-toolbar-wpdiscuzuniqueid"> <div class="wpd-editor-buttons-right"> <span class='wmu-upload-wrap' wpd-tooltip='Attach an image to this comment' wpd-tooltip-position='left'><label class='wmu-add'><i class='far fa-image'></i><input style='display:none;' class='wmu-add-files' type='file' name='wmu_files[]' accept='image/*'/></label></span> </div> </div> </div> </div> </div> </div> <div class="wpd-form-foot" style='display:none;'> <div class="wpdiscuz-textarea-foot"> <div class="wpdiscuz-button-actions"><div class='wmu-action-wrap'><div class='wmu-tabs wmu-images-tab wmu-hide'></div></div></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i> </div> <input id="wc_name-wpdiscuzuniqueid" value="" required='required' aria-required='true' class="wc_name wpd-field" type="text" name="wc_name" placeholder="Nombre / Name / Nome*" maxlength="50" pattern='.{3,50}' title=""> <label for="wc_name-wpdiscuzuniqueid" class="wpdlb">Nombre / Name / Nome*</label> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i> </div> <input id="wc_email-wpdiscuzuniqueid" value="" required='required' aria-required='true' class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"/> <label for="wc_email-wpdiscuzuniqueid" class="wpdlb">Email*</label> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-submit"> <label class="wpd_label" wpd-tooltip="Notify of new replies to this comment"> <input id="wc_notification_new_comment-wpdiscuzuniqueid" class="wc_notification_new_comment-wpdiscuzuniqueid wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input id="wpd-field-submit-wpdiscuzuniqueid" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Enviar" aria-label="Enviar"/> </div> </div> <div class="clearfix"></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-full"> <p class="es">Las opiniones expresadas por los autores de este blog son propias y no necesariamente reflejan las opiniones de LACNIC. Tenga en cuenta que este blog se rige por un <a href="https://www.lacnic.net/4038/1/lacnic/codigo-de-conducta-de-la-comunidad-de-lacnic">código de conducta.</a></p> <p class="en"> The views expressed by the authors of this blog are their own and do not necessarily reflect the views of APNIC. Please note a <a href="https://www.lacnic.net/4039/2/lacnic/lacnic-community-code-of-conduct">Code of Conduct </a> applies to this blog.</p> <p class="pt"> As opiniões expressas pelos autores deste blog são próprias e não refletem necessariamente as opiniões do APNIC. Leve em conta que um <a href="https://www.lacnic.net/4040/3/lacnic/codigo-de-conduta-da-comunidade-do-lacnic">código de conduta </a> é aplicado a este blog.</p> </div> <div class="clearfix"></div> </div> </div> <input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id"> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="f46bf5d32a" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="196"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p> </form> </div> </div> </div> <div id="wpd-threads" class="wpd-thread-wrapper"> <div class="wpd-thread-head"> <div class="wpd-thread-info " data-comments-count="0"> <span class='wpdtc' title='0'>0</span> Comments </div> <div class="wpd-space"></div> <div class="wpd-thread-filter"> <div class="wpd-filter wpdf-reacted wpd_not_clicked wpdiscuz-hidden" wpd-tooltip="Most reacted comment"> <i class="fas fa-bolt"></i></div> <div class="wpd-filter wpdf-hottest wpd_not_clicked wpdiscuz-hidden" wpd-tooltip="Hottest comment thread"> <i class="fas fa-fire"></i></div> <div class="wpd-filter wpdf-sorting wpdiscuz-hidden"> <span class="wpdiscuz-sort-button wpdiscuz-date-sort-asc wpdiscuz-sort-button-active" data-sorting="oldest">Oldest</span> <i class="fas fa-sort-down"></i> <div class="wpdiscuz-sort-buttons"> <span class="wpdiscuz-sort-button wpdiscuz-date-sort-desc" data-sorting="newest">Newest</span> <span class="wpdiscuz-sort-button wpdiscuz-vote-sort-up" data-sorting="by_vote">Most Voted</span> </div> </div> </div> </div> <div class="wpd-comment-info-bar"> <div class="wpd-current-view"><i class="fas fa-quote-left"></i> Inline Feedbacks </div> <div class="wpd-filter-view-all">View all comments</div> </div> <div class="wpd-thread-list"> <!-- // From wpDiscuz's Caches // --> <div class="wpdiscuz-comment-pagination"> </div> </div> </div> </div> </div> <div id="wpdiscuz-loading-bar" class="wpdiscuz-loading-bar-unauth"></div> <div id="wpdiscuz-comment-message" class="wpdiscuz-comment-message-unauth"></div> <br> </div> </article> </section> <aside> <nav class="related_notes"> <p> Notas relacionadas </p> <div class="items"> <div> <img width="300" height="146" src="https://blog.lacnic.net/wp-content/uploads/2023/03/ripe-atlas-raspberry-pi-2023-300x146.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://blog.lacnic.net/wp-content/uploads/2023/03/ripe-atlas-raspberry-pi-2023-300x146.png 300w, https://blog.lacnic.net/wp-content/uploads/2023/03/ripe-atlas-raspberry-pi-2023.png 680w" sizes="(max-width: 300px) 100vw, 300px" /> <a href="https://blog.lacnic.net/instalacion-de-una-sonda-ripe-atlas-en-un-dispositivo-raspberry-pi-4b/">Instalación de una sonda RIPE Atlas en un dispositivo Raspberry PI 4B</a> </div> </div> </nav> <nav class="tag_cloud "><ul><p>Tags</p><li><a href="https://blog.lacnic.net/tag/capacitaciones/">Capacitaciones</a></li><li><a href="https://blog.lacnic.net/tag/ciberseguridad/">Ciberseguridad</a></li><li><a href="https://blog.lacnic.net/tag/dns/">DNS</a></li><li><a href="https://blog.lacnic.net/tag/enrutamiento/">Enrutamiento</a></li><li><a href="https://blog.lacnic.net/tag/eventos/">Eventos</a></li><li><a href="https://blog.lacnic.net/tag/institucional/">Institucional</a></li><li><a href="https://blog.lacnic.net/tag/interconexion/">Interconexión</a></li><li><a href="https://blog.lacnic.net/tag/investigacion/">Investigación</a></li><li><a href="https://blog.lacnic.net/tag/ipv6/">IPv6</a></li><li><a href="https://blog.lacnic.net/tag/labs/">Labs</a></li><li><a href="https://blog.lacnic.net/tag/mediciones-de-internet/">Mediciones de Internet</a></li><li><a href="https://blog.lacnic.net/tag/podcast/">Podcast</a></li><li><a href="https://blog.lacnic.net/tag/programa-frida/">Programa FRIDA</a></li><li><a href="https://blog.lacnic.net/tag/public-policy/">Public Policy</a></li></ul></nav> <div class="secondary"><nav class="previous_editions en"><a href="https://news.lacnic.net/en/editions"><i class="far fa-long-arrow-left"></i>Older posts</a></nav> <nav class="previous_editions es"><a href="https://news.lacnic.net/ediciones"><i class="far fa-long-arrow-left"></i>Notas previas</a></nav> <nav class="previous_editions pt"><a href="https://news.lacnic.net/pt-br/edicoes-anteriores"><i class="far fa-long-arrow-left"></i>Notas anteriores<br /> </a></nav> </div><div class="secondary"><nav class="previous_editions es"><a class="lacnicBlogContributors" href="https://blog.lacnic.net/como-colaborar-con-un-articulo">¿Te gustaría contribuir con un artículo?</a></nav> <nav class="previous_editions en"><a class="lacnicBlogContributors" href="https://blog.lacnic.net/en/guidelines-for-lacnic-blog-contributors"> Would you like to contribute an article?</a></nav> <nav class="previous_editions pt"><a class="lacnicBlogContributors" href="https://blog.lacnic.net/pt-br/diretrizes-para-contribuir-com-um-artigo">Você gostaria de contribuir com um artigo?</a></nav> </div><script> function copiarAlPortapapeles() { var input = document.createElement('textarea'); input.value = 'https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/'; document.body.appendChild(input); input.select(); document.execCommand('copy'); document.body.removeChild(input); } </script> <div class="ShareOn"> <p>Compartir en</p> <div> <a href="https://www.facebook.com/sharer/sharer.php?u=https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" target="_blank" rel="noopener noreferrer"><i class="icon-facebook-f" aria-hidden="true"></i></a> <a href="https://twitter.com/intent/tweet?url=https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/&text=HowTo: Como levantar un peering en IPv6 Only v1.0" target="_blank" rel="noopener noreferrer"><i class="icon-x-twitter" aria-hidden="true"></i></a> <a href="https://www.linkedin.com/shareArticle?url=https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" target="_blank" rel="noopener noreferrer"><i class="icon-linkedin-in" aria-hidden="true"></i></a> <a href="https://api.whatsapp.com/send?text=HowTo: Como levantar un peering en IPv6 Only v1.0%20https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/" target="_blank" rel="noopener noreferrer"><i class="icon-whatsapp" aria-hidden="true"></i></a> <a href="mailto:?subject=HowTo: Como levantar un peering en IPv6 Only v1.0&body=https://blog.lacnic.net/howto-como-levantar-un-peering-en-ipv6-only-v1-0/"><i class="icon-envelope" aria-hidden="true"></i></a> <button onclick="copiarAlPortapapeles()"><i class="icon-link" aria-hidden="true"></i></button> </div> </div> </aside> </main> <footer> <div> <nav class="foot_navigation"> <ul id="foot_org" class="foot_org"><li class="menu-item"><a href="#">Organización</a></li> <li class="menu-item"><a href="https://www.lacnic.net/966/1/lacnic/acerca-de-lacnic">Acerca de LACNIC</a></li> <li class="menu-item"><a href="https://www.lacnic.net/491/1/lacnic/casa-de-internet">Casa de Internet</a></li> <li class="menu-item"><a href="https://www.lacnic.net/1975/1/lacnic/cultura-organizacional">Cultura Organizacional</a></li> <li class="menu-item"><a href="https://www.lacnic.net/18/1/lacnic/reporte-anual">Reporte Anual</a></li> <li class="menu-item"><a href="https://www.lacnic.net/490/1/lacnic/empleo">Empleo</a></li> </ul> <ul id="foot_contact" class="foot_contact"><li class="menu-item"><a href="#">Contactar</a></li> <li class="menu-item"><a href="https://www.lacnic.net/3907/1/lacnic/sugerencias">Sugerencias</a></li> <li class="menu-item"><a href="https://www.lacnic.net/997/1/lacnic/listas-de-discusion">Listas de Discusión</a></li> <li class="menu-item"><a href="https://www.lacnic.net/492/1/lacnic/contacto">Contacto</a></li> <li class="menu-item"><a href="https://www.lacnic.net/1126/1/lacnic/faq">FAQ</a></li> </ul> <ul id="foot_nro" class="foot_nro"><li class="menu-item"><a href="#">The Number Resource Organization</a></li> <li class="menu-item"><a href="https://www.lacnic.net/5296/1/lacnic/nro-news">NRO News</a></li> <li class="menu-item"><a href="https://www.lacnic.net/2409/1/lacnic/comite-de-revision">Comité de Revisión</a></li> <li class="menu-item"><a href="https://www.lacnic.net/998/1/lacnic/aso-nro">ASO, NRO</a></li> </ul> <ul id="foot_security" class="foot_security"><li class="menu-item"><a href="#">Ciberseguridad</a></li> <li class="menu-item"><a target="_blank" rel="noopener" href="https://www.lacnic.net/5297/1/lacnic/lacnic-csirt">LACNIC CSIRT</a></li> <li class="menu-item"><a href="https://www.lacnic.net/4660/1/lacnic/informacion-para-leas">Información para LEAs</a></li> <li class="menu-item"><a target="_blank" rel="noopener" href="https://www.lacnic.net/5298/1/lacnic/reportar-incidente">Reportar Incidente</a></li> </ul> </nav> <nav class="foot_social"> <p class="es">Seguinos en</p> <p class="en">Follow us</p> <p class="pt">Siga-nos</p> <ul> <li><a href="https://twitter.com/lacnic" target="_blank" rel="nofollow"><i class="icon-x-twitter" aria-hidden="true"></i></a></li> <li><a href="https://facebook.com/lacnic" target="_blank" rel="nofollow"><i class="icon-facebook-f" aria-hidden="true"></i></a></li> <li><a href="https://www.instagram.com/lacnic/?hl=es-la" target="_blank" rel="nofollow"><i class="icon-instagram" aria-hidden="true"></i></a></li> <li><a href="https://uy.linkedin.com/company/lacnic" target="_blank" rel="nofollow"><i class="icon-linkedin-in" aria-hidden="true"></i></a></li> <li><a href="https://www.youtube.com/user/lacnicstaff" target="_blank" rel="nofollow"><i class="icon-youtube" aria-hidden="true"></i></a></li> <li><a href="https://www.lacnic.net/podcast" target="_blank" rel="nofollow"><i class="icon-podcast" aria-hidden="true"></i></a></li> </ul> </nav> <nav class="foot_legal"> <ul id="foot_legal" class="foot_legal"><li class="menu-item"><a href="https://www.lacnic.net/967/1/lacnic/politica-de-la-calidad">Política de la Calidad</a></li> <li class="menu-item"><a href="https://www.lacnic.net/2923/1/lacnic/politica-de-privacidad">Política de privacidad</a></li> <li class="menu-item"><a href="https://www.lacnic.net/615/1/lacnic/transparencia">Transparencia</a></li> <li class="menu-item"><a href="https://www.lacnic.net/5299/1/lacnic/archivo">Archivo</a></li> </ul> </nav> <p class="foot_iso"> <a href="https://lsqa.com.uy/Institucional/Clientes" target="_blank" rel="nofollow">SYSTEM CERTIFICATION ISO 9001 LSQA</a> </p> </div> </footer> </div> <div id='wpd-editor-source-code-wrapper-bg'></div><div id='wpd-editor-source-code-wrapper'><textarea id='wpd-editor-source-code'></textarea><button id='wpd-insert-source-code'>Insert</button><input type='hidden' id='wpd-editor-uid' /></div> <script type='text/javascript'> jQuery( function( $ ) { function navegacionFooter(){ let navegacionFooterElemento = $('nav.foot_navigation ul li:first-child a') navegacionFooterElemento.removeAttr('href').wrap('<p></p>').each(function(){ var textoDelFoot = $(this).text(); $(this).replaceWith( textoDelFoot ); $(this).wrap('<p></p>') }); let navegacionLegal = $('.foot_legal ul li a'); navegacionLegal.each(function(){ $(this).wrap('<p></p>') }) } navegacionFooter(); function easyWpPageNav(){ $('.next,.prev').text(''); $('.next').append('<i class="icon-chevron-right-solid"></i>'); $('.prev').append('<i class="icon-chevron-left-solid"></i>'); } easyWpPageNav() }); </script> <style> /* easy wp page nav */ .easy-wp-page-navigation { margin: 40px 0; display: grid; justify-content: center; } ul.easy-wp-page-nav { display: flex; padding: 5px 6px; border-radius: 8px; background: #eff2f5; } ul.easy-wp-page-nav li { margin: 0; padding: 0; } .easy-wp-page-navigation a, .easy-wp-page-navigation span { padding: 7px 12px; border: 0; font-size: 12pt; font-weight: 700; background: transparent; } .easy-wp-page-navigation a:hover { background: transparent; color: #007ae6; } .easy-wp-page-navigation span.current { background: transparent; color: #007ae6; } ul.easy-wp-page-nav .last-page, ul.easy-wp-page-nav .first-page { display:none; } .wp-block-embed iframe { width: 100%; } </style> <script> jQuery(document).ready(function($) { // Manejar clic en el enlace "Responder" $('.comment-reply-link').on('click', function(e) { e.preventDefault(); // Obtener el ID del comentario al que se está respondiendo var commentID = $(this).data('comment-id'); // Mostrar u ocultar el formulario de comentarios correspondiente $('#comment-form-' + commentID).toggle(); }); }); </script> <script type="text/javascript" id="wpdiscuz-combo-js-js-extra"> /* <![CDATA[ */ var wpdiscuzAjaxObj = {"wc_hide_replies_text":"Hide Replies","wc_show_replies_text":"View Replies","wc_msg_required_fields":"Please fill out required fields","wc_invalid_field":"Some of field value is invalid","wc_error_empty_text":"please fill out this field to comment","wc_error_url_text":"url is invalid","wc_error_email_text":"email address is invalid","wc_invalid_captcha":"Invalid Captcha Code","wc_login_to_vote":"You Must Be Logged In To Vote","wc_deny_voting_from_same_ip":"You are not allowed to vote for this comment","wc_self_vote":"You cannot vote for your comment","wc_vote_only_one_time":"You've already voted for this comment","wc_voting_error":"Voting Error","wc_banned_user":"You are banned","wc_comment_edit_not_possible":"Sorry, this comment is no longer possible to edit","wc_comment_not_updated":"Sorry, the comment was not updated","wc_comment_not_edited":"You've not made any changes","wc_msg_input_min_length":"Input is too short","wc_msg_input_max_length":"Input is too long","wc_spoiler_title":"Spoiler Title","wc_cannot_rate_again":"You cannot rate again","wc_not_allowed_to_rate":"You're not allowed to rate here","wc_confirm_rate_edit":"Are you sure you want to edit your rate?","wc_follow_user":"Follow this user","wc_unfollow_user":"Unfollow this user","wc_follow_success":"You started following this comment author","wc_follow_canceled":"You stopped following this comment author.","wc_follow_email_confirm":"Please check your email and confirm the user following request.","wc_follow_email_confirm_fail":"Sorry, we couldn't send confirmation email.","wc_follow_login_to_follow":"Please login to follow users.","wc_follow_impossible":"We are sorry, but you can't follow this user.","wc_follow_not_added":"Following failed. Please try again later.","is_user_logged_in":"","commentListLoadType":"0","commentListUpdateType":"0","commentListUpdateTimer":"60","liveUpdateGuests":"0","wordpressThreadCommentsDepth":"5","wordpressIsPaginate":"","commentTextMaxLength":"0","replyTextMaxLength":"0","commentTextMinLength":"1","replyTextMinLength":"1","storeCommenterData":"100000","socialLoginAgreementCheckbox":"1","enableFbLogin":"0","fbUseOAuth2":"0","enableFbShare":"0","facebookAppID":"","facebookUseOAuth2":"0","enableGoogleLogin":"0","googleClientID":"","googleClientSecret":"","cookiehash":"63646323e4e8b2a9f671e5c8bd9cd5a6","isLoadOnlyParentComments":"0","scrollToComment":"1","commentFormView":"collapsed","enableDropAnimation":"1","isNativeAjaxEnabled":"1","enableBubble":"0","bubbleLiveUpdate":"0","bubbleHintTimeout":"45","bubbleHintHideTimeout":"10","cookieHideBubbleHint":"wpdiscuz_hide_bubble_hint","bubbleHintShowOnce":"1","bubbleHintCookieExpires":"7","bubbleShowNewCommentMessage":"1","bubbleLocation":"content_left","firstLoadWithAjax":"0","wc_copied_to_clipboard":"Copied to clipboard!","inlineFeedbackAttractionType":"blink","loadRichEditor":"1","wpDiscuzReCaptchaSK":"","wpDiscuzReCaptchaTheme":"light","wpDiscuzReCaptchaVersion":"2.0","wc_captcha_show_for_guest":"0","wc_captcha_show_for_members":"0","wpDiscuzIsShowOnSubscribeForm":"0","wmuEnabled":"1","wmuInput":"wmu_files","wmuMaxFileCount":"1","wmuMaxFileSize":"2097152","wmuPostMaxSize":"8388608","wmuIsLightbox":"1","wmuMimeTypes":{"jpg":"image\/jpeg","jpeg":"image\/jpeg","jpe":"image\/jpeg","gif":"image\/gif","png":"image\/png","bmp":"image\/bmp","tiff":"image\/tiff","tif":"image\/tiff","ico":"image\/x-icon"},"wmuPhraseConfirmDelete":"Are you sure you want to delete this attachment?","wmuPhraseNotAllowedFile":"Not allowed file type","wmuPhraseMaxFileCount":"Maximum number of uploaded files is 1","wmuPhraseMaxFileSize":"Maximum upload file size is 2MB","wmuPhrasePostMaxSize":"Maximum post size is 8MB","wmuPhraseDoingUpload":"Uploading in progress! Please wait.","msgEmptyFile":"File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.","msgPostIdNotExists":"Post ID not exists","msgUploadingNotAllowed":"Sorry, uploading not allowed for this post","msgPermissionDenied":"You do not have sufficient permissions to perform this action","wmuKeyImages":"images","wmuSingleImageWidth":"auto","wmuSingleImageHeight":"200","isUserRated":null,"version":"7.6.27","wc_post_id":"20383","isCookiesEnabled":"1","loadLastCommentId":"0","dataFilterCallbacks":[],"phraseFilters":[],"scrollSize":"32","is_email_field_required":"1","url":"https:\/\/blog.lacnic.net\/wp-admin\/admin-ajax.php","customAjaxUrl":"https:\/\/blog.lacnic.net\/wp-content\/plugins\/wpdiscuz\/utils\/ajax\/wpdiscuz-ajax.php","bubbleUpdateUrl":"https:\/\/blog.lacnic.net\/wp-json\/wpdiscuz\/v1\/update","restNonce":"c35b9a374c","is_rate_editable":"0","menu_icon":"https:\/\/blog.lacnic.net\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg.svg","menu_icon_hover":"https:\/\/blog.lacnic.net\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg_hover.svg"}; var wpdiscuzUCObj = {"msgConfirmDeleteComment":"Are you sure you want to delete this comment?","msgConfirmCancelSubscription":"Are you sure you want to cancel this subscription?","msgConfirmCancelFollow":"Are you sure you want to cancel this follow?","additionalTab":"0"}; /* ]]> */ </script> <script type="text/javascript" id="wpdiscuz-combo-js-js-before"> /* <![CDATA[ */ var wpdiscuzEditorOptions = { modules: { toolbar: "", counter: { uniqueID: "", commentmaxcount : 0, replymaxcount : 0, commentmincount : 1, replymincount : 1, }, }, wc_be_the_first_text: "Be the First to Comment!", wc_comment_join_text: "Join the discussion", theme: 'snow', debug: 'error' }; /* ]]> */ </script> <script type="text/javascript" src="https://blog.lacnic.net/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz-combo.min.js?ver=7.6.27" id="wpdiscuz-combo-js-js"></script> <script type="text/javascript" src="https://stats.wp.com/e-202448.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script type="text/javascript" id="jetpack-stats-js-after"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"182898185\",\"post\":\"20383\",\"tz\":\"0\",\"srv\":\"blog.lacnic.net\",\"j\":\"1:13.9.1\"}") ]); _stq.push([ "clickTrackerInit", "182898185", "20383" ]); /* ]]> */ </script> <script type="text/javascript" id="ivory-search-scripts-js-extra"> /* <![CDATA[ */ var IvorySearchVars = {"is_analytics_enabled":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://blog.lacnic.net/wp-content/plugins/add-search-to-menu/public/js/ivory-search.min.js?ver=5.5.7" id="ivory-search-scripts-js"></script> <script defer type="text/javascript" src="https://blog.lacnic.net/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1721224895" id="akismet-frontend-js"></script> <script src="https://blog.lacnic.net/wp-content/themes/lacnicnews/js/clipboard.js"></script> <script src="https://blog.lacnic.net/wp-content/themes/lacnicnews/js/email-address.js"></script> </body> </html>