tag:blogger.com,1999:blog-44300305169794074392024-03-08T07:08:10.060-08:00Networking useful stuffSite dedicated mainly to internetworking. The goal is to share experiences, teach IP, IPv6. Talk about Linux, IP services, servers, promote IPv6 adoption, routing protocols, security and in some cases just some thoughts. Keywords: linux, cisco, ospf, bgp, eigrp, ip, ipv6, sla, link, routers, routings, telco, telecommunications, security, ipv4Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.comBlogger56125tag:blogger.com,1999:blog-4430030516979407439.post-84928245251683148322024-03-08T07:07:00.000-08:002024-03-08T07:07:21.616-08:00BGP Stream: An Analysis of One Year of BGP Incidents<h1 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 28pt; letter-spacing: 1px; line-height: 1; margin: 15px 0px 14px; outline: 0px; padding: 0px; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-size: 10pt; margin: 0px; outline: 0px; padding: 0px; text-align: justify; vertical-align: baseline;">04/03/2024</em></h1><figure style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; padding: 0px; vertical-align: baseline;"><br /></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">By <a href="https://blog.lacnic.net/en/author/alejandro-acosta" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;">Alejandro Acosta</a>, R&D Coordinator at LACNIC</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">LACNIC presents <a href="https://stats.labs.lacnic.net/BGP/bgpstream-lac-region.html" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">the first webpage</a> designed to show incidents and an analysis of Border Gateway Protocol (BGP) measurement data in Latin America and the Caribbean.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">MAIN INCIDENTS. </strong>In addition to a summary of the information, the page shows three main types of events: possible network hijacks, BGP outages, and route leaks.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Possible hijacks</strong> refers to the illegitimate takeover of groups of IP addresses by corrupting Internet routing tables. This typically occurs when an Autonomous System announces a prefix that it does not originate.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Outages</strong> refers to the loss of visibility of network prefixes by a majority group of sensors.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Route leaks</strong>, as the name suggests, refers to the —potentially— unintentional announcement of a network prefix via BGP. For example, in a private peering traffic exchange, when one of the participants announces the peer’s prefix to the Internet. This case is the most difficult for algorithms to detect, so some of these incidents are not identified.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">How is the data obtained?</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">This initiative uses <a href="https://bgpstream.crosswork.cisco.com/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">Cisco BGP Stream</a>, an automated process that selects the largest and most important incidents, providing information on the nature of the event and the ASNs involved.</p><div class="acf-view acf-view--id--21788 acf-view--object-id--24783" style="background: rgb(235, 254, 252); border-radius: 5px; border: 0px; color: #3c434a; display: grid; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; font-weight: 800; gap: 10px; grid-template-columns: max-content 1fr; margin: 8px 0px; outline: 0px; padding: 17px; vertical-align: baseline;"><div class="acf-view__texto_fijo acf-view__row" style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><div class="acf-view__texto_fijo-field acf-view__field" style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><div class="acf-view__texto_fijo-choice acf-view__choice" style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Additional reading:</div></div></div><div class="acf-view__enlace acf-view__row" style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><div class="acf-view__enlace-field acf-view__field" style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><a class="acf-view__enlace-link acf-view__link" href="https://blog.lacnic.net/en/interconnection/a-much-needed-bgp-rfc-as-path-prepending" style="background: transparent; border: 0px; color: #3291c8; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;" target="_self">A Much-Needed BGP RFC: AS Path Prepending</a></div></div></div><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">The information is openly published, as LACNIC believes that it is important for engineers, network administrators, and organizations to gain insights into the most common incidents in the region and raise awareness about the situation.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">This allows quickly investigating events, the rapid development of complex prototypes and tools, as well as large-scale monitoring applications (e.g., detecting connectivity outages, attacks, or BGP hijacks).</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Using a system developed by LACNIC’s R&D department, raw data is collected, plotted, identified, cleaned, stored in a database, and later used to produce statistics and graphs. This occurs automatically every 24 hours.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">RESULTS. </strong>During the study period —February 2023 to February 2024— we found the results shown in the charts below, which compare BGP events worldwide vs BGP events in our region.</p><figure class="wp-block-image size-large" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; padding: 0px; vertical-align: baseline;"><img alt="" class="wp-image-24768" decoding="async" fetchpriority="high" height="506" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide-1024x506.png" srcset="https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide-1024x506.png 1024w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide-300x148.png 300w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide-768x379.png 768w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide-1536x759.png 1536w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig1-bgp-events-worldwide.png 1842w" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; box-sizing: border-box; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: bottom;" width="1024" /></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">A comparison between the global chart and the chart specific to the LAC region shows a similar pattern in the order of the most common incidents, with outages being the most frequent type of incident, followed by possible hijacks, and finally prefix leaks. It should also be noted that outages represent a higher percentage of the total number of incidents in our region than at the global level.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">An analysis of the results table showing worldwide BGP events vs BGP events in our region reveals the following:</p><figure class="wp-block-image size-large" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; padding: 0px; vertical-align: baseline;"><img alt="" class="wp-image-24771" decoding="async" height="408" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-1024x408.png" srcset="https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-1024x408.png 1024w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-300x120.png 300w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-768x306.png 768w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-1536x612.png 1536w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig2-bgp-events-worldwide-2048x816.png 2048w" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; box-sizing: border-box; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: bottom;" width="1024" /></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">TOP 5 countries</strong> in our region with the highest number of BGP outages</p><figure class="wp-block-table" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline;"><table style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-spacing: 0px; border: 0px; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; width: 685.998px;"><tbody style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">Outages</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"> </td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">CC</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Events</strong></td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">781</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">AR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">99</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">HT</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">24</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">MX</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">22</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">CL</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">17</td></tr></tbody></table></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">TOP 5 countries</strong> in our region with the highest number of possible Hijacks</p><figure class="wp-block-table" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline;"><table style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-spacing: 0px; border: 0px; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; width: 685.998px;"><tbody style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Expected CC</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Detected CC</strong></td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Events</strong></td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">67</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">none</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">35</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">PY</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">24</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">US</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">22</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">BR</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">CN</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">9</td></tr></tbody></table></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">TOP 3 countries</strong> in our region with the highest number of route leaks</p><figure class="wp-block-table" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline;"><table style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-spacing: 0px; border: 0px; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; width: 685.998px;"><tbody style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Origin CC</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Leaker CC</strong></td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Events</strong></td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">VE</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">VE</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">7</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">MX</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">MX</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">5</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">CL</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">PA</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px solid; margin: 0px; outline: 0px; padding: 0.5em; vertical-align: baseline;">2</td></tr></tbody></table></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Impact</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In this first year of operation, LACNIC has observed a reduction in BGP incidents. Several reasons for this have been identified, including a) the deployment and adoption of Resource Certification (RPKI), b) LACNIC’s Internet Routing Registry (IRR), and the adoption of RFC 9234 (Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages).</p><figure class="wp-block-image size-large" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px 0px 1em; outline: 0px; padding: 0px; vertical-align: baseline;"><img alt="" class="wp-image-24774" decoding="async" height="209" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-1024x209.png" srcset="https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-1024x209.png 1024w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-300x61.png 300w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-768x157.png 768w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-1536x313.png 1536w, https://blog.lacnic.net/wp-content/uploads/2024/03/fig3-bgp-events-worldwide-2048x417.png 2048w" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; box-sizing: border-box; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: bottom;" width="1024" /></figure><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">The adoption of these tools is being driven by better operator practices and ISOC’s promotion of MANRS.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Conclusions</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Possible hijacks, outages, and route leaks are the most common types of BGP incidents. During the initial year of data collection, a decrease in the number of cases was observed. However, it is expected that they will not disappear entirely in the near future. Implementing robust redundancy and resiliency measures in networks is crucial, as is the early detection and prevention of possible hijacks to ensure the integrity and reliability of Internet routes.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">At LACNIC, our goal is to raise awareness and encourage ISPs and organizations to be prepared to handle these incidents efficiently when they occur.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">References</strong><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><a href="https://stats.labs.lacnic.net/BGP/bgpstream-lac-region.html" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">https://stats.labs.lacnic.net/BGP/bgpstream-lac-region.html</a></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><a href="https://stats.labs.lacnic.net/BGP/bgpstream.html" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">https://stats.labs.lacnic.net/BGP/bgpstream.html</a></p><p><a href="https://bgpstream.crosswork.cisco.com/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #007ae6; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; text-align: justify; text-decoration-line: none; vertical-align: baseline;" target="_blank">https://bgpstream.crosswork.cisco.com/</a> </p><p><br /></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-50945693970159300022024-02-27T18:27:00.000-08:002024-02-27T18:27:04.469-08:00This is the way to install the telnet command in Alpine Linux (very popular in the container world such as docker)<p>This is the way to install the telnet command in Alpine Linux (very popular in the container world such as docker)</p><p><i>#apk update</i></p><p><i>#apk add busybox-extras</i></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-85512468237275878742024-02-23T07:27:00.000-08:002024-02-23T07:27:53.478-08:00 The real solution to run ContainerLAB on MAC m1 or m2 apple silicon<p><b>Step 1: Install Canonical Multipass your MAC </b></p><p><i>$brew install multipass</i></p><p><br /></p><p><b>Step 2: Install the VM called docker</b></p><p><i>$multipass launch docker --name mydocker</i></p><p><br /></p><p><b>Step 3: Connect to the new VM</b></p><p><i>$multipass shell mydocker</i></p><p><br /></p><p><b>Step 4: Inside the VM install ContainerLab</b></p><p><i>$sudo su</i></p><p><i>#bash -c "$(curl -sL https://get.containerlab.dev)"</i></p><p><br /></p><p>Let's try this simple back2back topology of two Linux computers with FRR</p><p><br /></p><p>-- 2-frr-back2back.yml --</p><p><i>name: ipv6-ws</i></p><p><i>topology:</i></p><p><i> kinds:</i></p><p><i> linux:</i></p><p><i> image: ghcr.io/hellt/network-multitool</i></p><p><i> do not give:</i></p><p><i> ROUTERS ###</i></p><p><i> A1:</i></p><p><i> kind: linux</i></p><p><i> image: quay.io/frrouting/frr:8.4.1</i></p><p><i> exec:</i></p><p><i> - "sysctl -w net.ipv6.conf.all.forwarding=1"</i></p><p><i> - "ip address add dev eth1 2001:db8:ffab::1/64"</i></p><p><i> A2:</i></p><p><i> kind: linux</i></p><p><i> image: quay.io/frrouting/frr:8.4.1</i></p><p><i> exec:</i></p><p><i> - "ip address add dev eth1 2001:db8:ffab::2/64"</i></p><p><i> - "sysctl -w net.ipv6.conf.all.forwarding=1"</i></p><p><i> links:</i></p><p><i> - endpoints: ["R1:eth1", "R2:eth1"]</i></p><p>--- yml --</p><p><br /></p><p><b>Step 5: Let's build the topology with clab:</b></p><p><i>clab dep -t 2-frr-back2back.yml</i></p><p><br /></p><p><b>Step 6: finally we are going to connect to one of the VMs inside ContainerLAB</b></p><p><i>docker exec -i -t clab-ipv6-ws-R2 bash</i></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-85573249372527162882024-02-01T13:00:00.000-08:002024-02-01T13:00:12.933-08:00A Much-Needed BGP RFC: AS Path Prepending<p><b>Introduction</b></p><p>The Border Gateway Protocol (BGP) plays a critical role in building and maintaining Internet routing tables, so much so that it is considered the “glue” that holds the Internet together. In this context, a long-standing and very popular technique known as ‘AS Path Prepending’ has been devised as a key strategy for influencing route selection and optimizing an AS’s inbound and outbound traffic.</p><p>In this document, we will navigate through the IETF draft titled “AS Path Prepending” [1], which includes several ideas and concepts that are of great value to the community.</p><p><br /></p><p><b>About draft-ietf-grow-as-path-prepending</b></p><p>This draft has been under discussion within the Global Routing Operation (GROW) Working Group since 2020 and is currently on version 10. The document has seven co-authors: M. McBride, D. Madory, J. Tantsura, R. Raszuk, H. Li., J. Heitz, and G. Mishra. It predominantly received support on the discussion list (including my own). You can read the draft here.</p><p><br /></p><p><b>What is AS Path Prepending?</b></p><p>AS Path Prepending is a technique that involves repetitively adding one’s autonomous system identifier (ASN) to the list of ASs in a BGP route path (AS_PATH). Its goal is to influence route selection by making certain paths less attractive to inbound/outbound traffic. In other words, it consists of adding our autonomous system to the AS_PATH and therefore artificially “lengthening the path” to a prefix on the Internet.</p><p></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhz2b22od_STWrIYwkB0ypjRixVR8dexnyYqjn2g-QFqT52cGVmyKXdtuJPTWDJ8QXYL2IXfxoFoBKTlEQqoMqDGYVW89ZzsvyUzF4-f_miHeiUbVq--QjMituu8lZR2dxVfSqXZrBECrKhvjw4oWTFh7gxJiFy5RkZ08kX4tkmYVnJ-0P3TpU2D_z5g94" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="978" data-original-width="1516" height="206" src="https://blogger.googleusercontent.com/img/a/AVvXsEhz2b22od_STWrIYwkB0ypjRixVR8dexnyYqjn2g-QFqT52cGVmyKXdtuJPTWDJ8QXYL2IXfxoFoBKTlEQqoMqDGYVW89ZzsvyUzF4-f_miHeiUbVq--QjMituu8lZR2dxVfSqXZrBECrKhvjw4oWTFh7gxJiFy5RkZ08kX4tkmYVnJ-0P3TpU2D_z5g94" width="320" /></a></div><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><p>In the figure above, without prepends, Router A prefers to go to C via B. However, when three prepends are added on B, router A decides to reach C via D.</p><p><br /></p><p><b>Why is AS Path Prepending used and what is it used for?</b></p><p>AS Path prepending is used for multiple reasons. The main reason is undoubtedly traffic engineering, which in turn is used to influence an AS’s inbound and outbound traffic. It is very likely that the AS wishes to achieve one of the following goals:</p><p></p><ul style="text-align: left;"><li>to distribute traffic among two or more upstream providers, or</li><li>to have an upstream backup provider.</li><li>Whatever the case, the goal is traffic engineering.</li></ul><p></p><p><br /></p><p><b>To prepend or not to prepend, that is the question</b></p><p>Prepending is a bit like NAT in that it is often a necessary evil. As we will explain, its excessive and sometimes unnecessary use can become a vulnerability with significant implications for network stability.</p><p><br /></p><p><b>What’s wrong with using AS Path Prepending?</b></p><p>We all know that AS Path Prepending is a very common technique to influence BGP decisions. However, its excessive, incorrect, and sometimes unnecessary use can have negative consequences. For example:</p><p><br /></p><p></p><ul style="text-align: left;"><li>Creation of suboptimal traffic flows. In other words, we may achieve our goal of distributing traffic in the immediate links; however, beyond our immediate upstream, traffic is not optimized to reach our autonomous system and vice versa.</li><li>Prefix de-aggregation. When implementing traffic engineering, it is very common to de-aggregate prefixes, which affects the Internet ecosystem.</li><li>In the event of a route-leak, under normal circumstances, the as-path of our advertisements would be shorter than that of the leaked route. However, if we artificially lengthen the path by prepending, the as-path of the leaked routes may be shorter than those we are legitimately announcing for our legitimate prefix, which would have lower preference, leading to potential route hijacking, attacks, and a long etcetera.</li><li>Memory consumption. As expected, these AS Path Prepends are learned by BGP Speakers, thus increasing their memory usage. To this I would add that prepending introduces a small additional CPU usage penalty for each prefix.</li></ul><p></p><p><b><br /></b></p><p><b>Given that AS Path Prepend is no longer recommended, what alternatives are available?</b></p><p>There are many techniques for performing traffic engineering in BGP. I will mention some that appear in the draft:</p><p><br /></p><p></p><ul style="text-align: left;"><li>Leveraging BGP communities. In addition to the well-known BGP communities, I recommend talking to your BGP peers to optimize traffic. There are numerous BGP communities implemented by providers, which might certainly benefit your setup.</li><li>Announcing more specific routes to your main upstreams.</li><li>Manipulating the AS Origin Code. Remember that this attribute is also found in the BGP route selection algorithms.</li><li>Using Multi Exit Discriminator (MED), a non-transitive attribute that can be used with excellent results for manipulating inbound traffic when we have several links to the same provider</li><li>Using Local-Preference, another non-transitive attribute, perfect for influencing the traffic that leaves our autonomous system</li></ul><p></p><p><br /></p><p><b>This is all well and good, but I still need to use AS Path Prepending. Any suggestions?</b></p><p>The draft mentions the best current practices when using AS Pat Prepending, which I will summarize below:</p><p></p><ol style="text-align: left;"><li>Only use AS Path Prepending if it is absolutely necessary.</li><li>Due to some traffic manipulation techniques, when using AS Path Prepending, we may not see significant changes in the traffic distribution, which is why it is important to talk to our peers to see if they will honor the prepends.</li><li>Use local-preference on our network.</li><li>Don’t prepend ASNs that you don’t own.</li><li>Don’t prepend if you are connected to a single ISP using a single link, i.e., single homed (this one is not included in the draft).</li><li>If we prepend a prefix, it might not be necessary to use that prepend for all our peers.</li><li>There is no need to use more than five prepends. The reason for this is that more than 90% of path are five ASs or fewer in length.</li></ol><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjoKBK1CiiGpVkd3aJxR2kUvVQP_MRVYlYq_hhS-7xLIasWECNkCIOyOInMB48RACGjls0NfO66v3qFWZx-F0XXj59OWnlWfxo4LKIyUhX0rWwBTBl0b2kuply-pnxV74xVIw8LZ-flv0pPJ8Ir6o4C52ZBIcjPXM0zKtndtKYTKhlhZo4JSRlDaSkump8" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1218" data-original-width="1646" height="258" src="https://blogger.googleusercontent.com/img/a/AVvXsEjoKBK1CiiGpVkd3aJxR2kUvVQP_MRVYlYq_hhS-7xLIasWECNkCIOyOInMB48RACGjls0NfO66v3qFWZx-F0XXj59OWnlWfxo4LKIyUhX0rWwBTBl0b2kuply-pnxV74xVIw8LZ-flv0pPJ8Ir6o4C52ZBIcjPXM0zKtndtKYTKhlhZo4JSRlDaSkump8=w391-h258" width="391" /></a></div><br /><br /><p></p><p><b>Final Considerations</b></p><p>The use of AS Path Prepending is a valuable strategy but should be used only when necessary and with caution, following best practices. Excessive use of prepends may cause unforeseen events that may affect our autonomous system from a traffic and a security perspective.</p><p>We invite you to read the full draft (available here and to join the discussion on the LACNOG mailing list.</p><p>We also encourage you to comment on this post to let us know if you are prepending your ASN, as well as why and what you are using this for.</p><p><br /></p><p><b>References:</b></p><p>[1] https://datatracker.ietf.org/doc/draft-ietf-grow-as-path-prepending/</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-27481901216728066332024-01-08T05:22:00.000-08:002024-01-08T05:22:19.809-08:00Two very short jokes, one TCP and other UDP<p><b>TCP:</b></p><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;"> ” You wanna hear a TCP joke ?</span><br style="background-color: #f8f8f8; box-sizing: inherit; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;" /><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;"> You wanna hear a TCP joke ?</span><br style="background-color: #f8f8f8; box-sizing: inherit; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;" /><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;"> You wanna hear a TCP joke ?</span><br style="background-color: #f8f8f8; box-sizing: inherit; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;" /><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;"> You wanna hear a TCP joke ?</span><br style="background-color: #f8f8f8; box-sizing: inherit; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;" /><p><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;"> [...]”</span></p><p><br /></p><p><b>UDP:</b></p><p><span style="background-color: #f8f8f8; color: #1d1c1d; font-family: Slack-Lato, Slack-Fractions, appleLogo, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures;">I’d tell you a UDP joke, but you might not get it.</span> </p><p><br /></p><p><br /></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-11873073658638856352023-12-05T04:23:00.000-08:002023-12-05T05:15:45.953-08:00BGP: IPv6 Only example between OpenBGPD and FRR<p><b>FRR:</b></p><p><i>show run</i></p><p><i>frr# sh run </i></p><p><i>Building configuration...</i></p><p><i><br /></i></p><p><i>Current configuration:</i></p><p><i>!</i></p><p><i>frr version 8.1</i></p><p><i>frr defaults traditional</i></p><p><i>hostname frr</i></p><p><i>log syslog informational</i></p><p><i>service integrated-vtysh-config</i></p><p><i>!</i></p><p><i>interface l0</i></p><p><i> ipv6 address 2001:db8::1/128</i></p><p><i>exit</i></p><p><i>!</i></p><p><i>router bgp 65001</i></p><p><i> bgp router-id 1.1.1.1</i></p><p><i> no bgp ebgp-requires-policy</i></p><p><i> neighbor 2001:db8:12::2 remote-as 65002</i></p><p><i> !</i></p><p><i> address-family ipv6 unicast</i></p><p><i> redistribute connected</i></p><p><i> neighbor 2001:db8:12::2 activate</i></p><p><i> neighbor 2001:db8:12::2 soft-reconfiguration inbound</i></p><p><i> exit-address-family</i></p><p><i>exit</i></p><p><i>!</i></p><div><br /></div><p><br /></p><p><b>OpenBGPD</b></p><p>Archivo: /etc/bgpd.conf</p><p><i># macros</i></p><p><i>ASN="65002"</i></p><p><i>fib-update yes</i></p><p><i>log updates</i></p><p><i><br /></i></p><p><i># global configuration</i></p><p><i>AS $ASN</i></p><p><i>router-id 2.2.2.2</i></p><p><i><br /></i></p><p><i>network 2001:db8::2/128</i></p><p><i>network inet6 connected</i></p><p><i><br /></i></p><p><i>neighbor 2001:db8:12::1 {</i></p><p><i> descr "epa"</i></p><p><i> remote-as 65001</i></p><p><i> announce IPv6 unicast</i></p><p><i>}</i></p><p><i><br /></i></p><p><i>deny from any</i></p><p><i>deny to any</i></p><p><i>allow from 2001:db8:12::1</i></p><p><i>allow to 2001:db8:12::1</i></p><div><i><br /></i></div><div><i>#</i></div><div><br /></div><div><u>(please note the blank space between the last line and the second to last line)</u></div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-70759332606683009772023-12-04T11:07:00.000-08:002023-12-04T11:07:31.670-08:00How to create an IPv6 route to null/blackhole in Linux<p><b> Case:</b></p><p> How to create an IPv6 route to null/blackhole in Linux</p><p><b>Command:</b></p><p> ip -6 route add blackhole fd00:12:34::0/48</p><p><br /></p><p><br /></p><p><br /></p><p>I hope it is useful</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-74240385436652958852023-10-29T07:31:00.003-07:002023-10-29T07:31:32.268-07:00 How to temporarily disable IPv4 on an interface within Linux<p><b>Case:</b></p><p> We want to disable IPv4 on an interface</p><p><br /></p><p><b>Solution:</b></p><p> sudo ip -4 addr flush dev enp0s1</p><p><br /></p><p><b>Explanation:</b></p><p> The above command removes all IPv4 addresses for interface enp0s1. Important, remember that this disabling is only temporary.</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-34260450096265668472023-10-13T06:08:00.004-07:002023-10-29T07:27:43.036-07:00How to uninstall brew in MAC<p>How to uninstall brew in MAC</p><p><b> Option 1: </b></p><pre>/bin/bash -c <span class="pl-s"><span class="pl-pds">"</span><span class="pl-s"><span class="pl-pds">$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh<span class="pl-pds">)</span></span><span class="pl-pds">"</span></span></pre><pre><span class="pl-s"><br /></span></pre><pre><span style="font-size: medium;"><span class="pl-s"><span class="pl-pds"> </span></span><b>Option 2: </b></span></pre><div><pre>NONINTERACTIVE=1 /bin/bash -c <span class="pl-s"><span class="pl-pds">"</span><span class="pl-s"><span class="pl-pds">$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh<span class="pl-pds">)</span></span><span class="pl-pds">"</span></span></pre><pre><span class="pl-s"><br /></span></pre><pre><br /></pre></div><p><b>Tomado de:</b> https://github.com/homebrew/install#uninstall-homebrew</p><p><br /></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-21573479672521605892023-10-13T06:07:00.000-07:002023-10-13T06:07:19.121-07:00NGINX Reverse Proxy for an IPv6-Only Server Farm<p><b>Introduction</b></p><p>This work presents a very simple way to offer dual-stack web access to an IPv6-only server
farm using NGINX. The continued growth of the Internet and the gradual adoption of the
IPv6 protocol means that it is essential to ensure connectivity and accessibility for clients
using both IPv4 and IPv6.
We will explain how to configure NGINX to support dual-stack web access, we will address
how to configure NGINX as a reverse proxy that listens on both IPv4 and IPv6 addresses, as
well as how to correctly route incoming requests to backend servers with only IPv6
addresses. By the way, among many other benefits, what we will discuss in the following
article is an important step towards the preservation of IPv4 addresses.</p><span id="docs-internal-guid-0a455c43-7fff-095d-24cb-a595e55372fa"><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>What is a Reverse Proxy?</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">In [1], Cloudflare defines a Reverse Proxy Server as follows:
“A reverse proxy is a server that sits in front of web servers and forwards client (e.g. web
browser) requests to those web servers. Reverse proxies are typically implemented to help
increase security, performance, and reliability. In order to better understand how a reverse
proxy works and the benefits it can provide, let’s first define what a proxy server is.”</p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>What is a Proxy Server</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">In [1], Cloudflare also provides the following definition for a proxy server:
“A forward proxy, often called a proxy, proxy server, or web proxy, is a server that sits in
front of a group of client machines. When those computers make requests to sites and
services on the Internet, the proxy server intercepts those requests and then communicates
with web servers on behalf of those clients, like a middleman.”</p><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>What are the benefits of a Reverse Proxy?</b></span></span></p><ul style="margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">• A reverse proxy can offer IPv4 or transparent IPv6 to clients serviced from an IPv6-
only server farm (which is what we will focus on).
• Scalability: The use of a reverse proxy allows adding or removing backend servers
as needed without affecting end users. This makes it easier for applications to scale
out, allowing them to handle a larger number of concurrent users and requests.
• Static content caching: NGINX can cache static content such as images, CSS files,
and JavaScript, thus reducing the load on backend servers and increasing content
delivery speed. This decreases page load times and the required bandwidth.
• Security: NGINX acts as a point of entry to the application, providing an additional
layer of security. It can perform functions such as request filtering, DDoS attack
prevention, SQL injection protection, and client authentication. NGINX can also
enable the use of SSL/TLS encryption for communication between clients and the
backend server.
• Advanced routing: A reverse proxy allows performing advanced routing based on
various criteria, such as domain name, URL, or HTTP headers. This is useful when
we need to direct traffic to different backend servers based on the specific attributes
of the requests.
• Consolidation of services: NGINX can act as a single point of entry for various
backend services. This simplifies the infrastructure by consolidating multiple services
on a single server, thus simplifying management and maintenance.
• Enhanced performance: NGINX is lightweight and resource efficient by design. Its
streamlined architecture and ability to handle large numbers of concurrent
connections make it a popular choice for improving web app performance.
• Load balancing: A reverse proxy such as NGINX can distribute incoming traffic
across several backend servers. This helps balance the load and guarantees that no
server is overloaded, which improves an application's performance and
responsiveness. </p></li></ul><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>Topology</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="border: none; display: inline-block; height: 309px; overflow: hidden; width: 602px;"><img height="309" src="https://lh5.googleusercontent.com/nRXzxOTX9lCS3p120jIYggyrxa23oObu_ugXYD7ckl6wD1hbwIpIju6lTYeQyvkeRrtQY78EsBtDyc36oCXCt_4EtXg_X_Vo9ErpBk5KfD0xVYMHO5zD2qWNLav72jm40N1rQDeHluja9k2TsAsvsjQ" style="margin-left: 0px; margin-top: 0px;" width="602" /></span></span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>What is our Goal Today?</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">The edge server (Reverse Proxy Server) will be able to receive IPv4 and IPv6 HTTP
requests, and depending on the website a user wishes to visit (domain), will forward the
request to the right server. This is what will happen in our example: </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">The client visits: The request is sent to: </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-a.com → 2001:db8:123::1 </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-b.com → 2001:db8:123::2 </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-c.com → 2001:db8:123::3 </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-a.com → 2001:db8:123::101 </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-b.com → 2001:db8:123::102 </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">server-c.com → 2001:db8:123::103</p><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">Requirements</span></p><ul style="margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">• Linux with NGINX on the Reverse Proxy Server
• Super user access
• Web server on each of the servers in the farm
• IPv4 and IPv6 Internet connectivity
• Internal IPv6 connectivity</p></li></ul><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; white-space-collapse: preserve;"><b>Let's get started </b></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">Let's get started </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">1) Install NGINX in all servers
#apt update
#apt install nginx </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">2) Create the websites in the NGINX reverse proxy </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">File /etc/nginx/sites-available/server-a.com </p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>server {
listen 80;
listen [::]:80; </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i> server_name server-a.com; </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i> location / { </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i> proxy_pass http://[2001:db8:123::101];
} </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>} </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">File /etc/nginx/sites-available/server-b.com</p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">server {
listen 80;
listen [::]:80;
server_name server-b.com;
location / {
proxy_pass http://[2001:db8:123::102];
}
}</span></p><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">Archivo /etc/nginx/sites-available/server-b.com</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">server {</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"><span class="Apple-tab-span" style="text-wrap: nowrap;"> </span></span><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">listen 80;</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"><span class="Apple-tab-span" style="text-wrap: nowrap;"> </span></span><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">listen [::]:80;</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"> server_name server-b.com;</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"> location / {</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"> proxy_pass http://[2001:db8:123::102];</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;"> }</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">}</span></p><br /><br />File /etc/nginx/sites-available/server-c.com </span><div><span><i>server { </i></span></div><div><span><i> listen 80;
listen [::]:80; </i></span></div><div><span><i> server_name server-c.com; </i></span></div><div><span><i> location / { </i></span></div><div><span><i> proxy_pass http://[2001:db8:123::103]; </i></span></div><div><span><i> }</i></span></div><div><span><i>}<br /></i><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">3) Create symbolic links to enable the sites configured above:</p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>root@ProxyReverseSRV:/etc/nginx/sites-enabled# ln -s /etc/nginx/sitesavailable/server-a.com /etc/nginx/sites-enabled/server-a.com </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i><br /></i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>root@ProxyReverseSRV:/etc/nginx/sites-enabled# ln -s /etc/nginx/sitesavailable/server-b.com /etc/nginx/sites-enabled/server-b.com </i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i><br /></i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>root@ProxyReverseSRV:/etc/nginx/sites-enabled# ln -s /etc/nginx/sitesavailable/server-c.com /etc/nginx/sites-enabled/server-c.com</i></p><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space-collapse: preserve;">4) Remember to restart NGINX</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><i>$sudo systemctl restart nginx</i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; white-space-collapse: preserve;"><b>About the logs</b></span></p></span>Logs are extremely important for any company or ISP that wishes to review incoming
connections. </div><div><br /></div><div>By default, NGINX will use its own IP address for outgoing connections, which results in the
loss of the address of the client that originated the HTTP request. But don't worry. NGINX
has the solution: proxy_set_header. This requires configuring both the end server and the
Reverse Proxy server. </div><div><br /></div><div>1) On the Reverse Proxy Server, we must configure the website assets. </div><div># Example of nginx reverse proxy that allows logging the
client's </div><div># original address and port number </div><div><br /></div><div><i>location /examples { </i></div><div><i> proxy_pass http://[2001:db8:123::103]; </i></div><div><i> proxy_buffering off; </i></div><div><i> proxy_set_header X-Real-IP $remote_addr; </i></div><div><i> proxy_set_header X-Forwarded-Host $host; </i></div><div><i> proxy_set_header X-Forwarded-Port $server_port; </i></div><div><i> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; </i></div><div><i> } </i></div><div><br /></div><div>2) On the end server, add the following in the http section of the <i>/etc/nginx/nginx.conf
</i>file:</div><div><br /></div><div><i>set_real_ip_from 2001:db8:123::100; #replace the IP address
with that of the proxy </i></div><div><i>real_ip_header X-Forwarded-For; </i></div><div><i>real_ip_recursive on; </i></div><div><br /></div><div>Example: </div><div><i>http { </i></div><div><i> … </i></div><div><i> set_real_ip_from 2001:db8:123::100; </i></div><div><i> real_ip_header X-Forwarded-For;
real_ip_recursive on; </i></div><div><i> … </i></div><div><i> } </i></div><div><br /></div><div>With these settings, the receiving server will trust the X-Forwarded-For header set to
2001:db8:123::100 and will log the client's source IP to /var/log/nginx/access.log.</div><div><span><br /></span></div><div><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space-collapse: preserve;"><b>Summary</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">The proposed design allows managing a 100% IPv6-only web server farm with access to
both the IPv4 and the IPv6 worlds in a very simple, scalable, and efficient manner. This
results in various benefits, including having to manage only one TCP/IP stack, simplicity,
security, and even saving IPv4 addresses.</p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">References</span></p><ul style="margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;"></ul><div><span style="font-family: Arial, sans-serif;"><span style="font-size: 14.6667px; white-space: pre;"><br /></span></span></div><div>• [1] https://www.cloudflare.com/es-es/learning/cdn/glossary/reverse-proxy/
• https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-areverse-proxy-on-ubuntu-22-04 </div><div>• GitHub. LACNIC Blog Post Help Files for the entire project:
https://github.com/LACNIC/BlogPostHelpFiles/tree/main/2023_Ofreciendo_conectivid
ad_Dual_Stack_a_servidores_Web_en_una_granja_de_servidores_100_IPv6_Only</div></div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-19874966671569453732023-07-06T04:35:00.001-07:002023-07-06T04:35:16.475-07:00Google returns: 403. That's an error. Your client does not have permission to get URL / from this server. That's all we know.<p><b> Introduction:</b></p><p> You want to do a google search and the page returns: "403. That’s an error.</p><p> Your client does not have permission to get URL / from this server. That's all we know."</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEipcJ5xIoXCBuVxcEISsHVpiO3_ay0rt3lMJjilbYRcq3z1pN523jOFuYJmhsqm2gCKXpVZzhZerv4HNyfoGOySLW-SyUlMlYgylhlMljH6p3FWB9zQJaEfaXHYlMUrPiPnlzIl3BGx9SkqV2u_xG3ZmOswppTNMhfy-3lPtsFePOUsBJZo6eKm_8jtxAU" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="522" data-original-width="1242" height="134" src="https://blogger.googleusercontent.com/img/a/AVvXsEipcJ5xIoXCBuVxcEISsHVpiO3_ay0rt3lMJjilbYRcq3z1pN523jOFuYJmhsqm2gCKXpVZzhZerv4HNyfoGOySLW-SyUlMlYgylhlMljH6p3FWB9zQJaEfaXHYlMUrPiPnlzIl3BGx9SkqV2u_xG3ZmOswppTNMhfy-3lPtsFePOUsBJZo6eKm_8jtxAU" width="320" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p><br /></p><p>In my case I was using an IPv6 tunnel with Hurricane Electric, specifically the /64 that they deliver in the tunnels.</p><p><br /></p><p><b>Solution?</b></p><p> Ask Hurricane Electric at the portal for a /48 routed. That's it! Then I removed the old /64 prefix from the router's SLAAC, leaving only a /64 belonging to the /48.</p><p><br /></p><p>Good luck!</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-54077790003132857532023-06-29T03:31:00.004-07:002023-06-29T03:31:51.862-07:00Bar Chart Race IPv6 Deployment in LAC Region - May 2014 to June 2023<p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/ER51vrNRmL4" width="320" youtube-src-id="ER51vrNRmL4"></iframe></div><br /><p><br /></p><p><br /></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-31383636693016794332023-05-25T18:16:00.004-07:002023-05-25T18:16:25.817-07:00Strange ssh behavior on MAC - Copy/Paste Issues<p><b> Situation:</b></p><p> Strange behavior of SSH on MAC, problems with copy/paste in terminal during ssh. Does the clipboard work in other applications?</p><p><br /></p><p><b>Solution:</b></p><p> At least in "vi" the solution is very simple. Edit the file: ~/.vimrc and paste the following content:</p><p><br /></p><p><i>if !has("gui_running")</i></p><p><i> set mouse=</i></p><p><i>endif</i></p><p><br /></p><p>Luck!</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-7875193715225718772023-03-16T19:57:00.003-07:002023-03-16T19:57:33.671-07:00A Look at LACNIC’s IPv6-Only Members<p><b>Introduction</b></p><p>This paper seeks to analyze the announcement and status of the prefixes held by organizations known as IPv6-only LACNIC members. These are organizations that have received IPv6 prefixes, that may or may not have received an autonomous system (ASN), and that have not been assigned an IPv4 prefix by LACNIC. The results of this analysis will help us improve our understanding of the uses and needs of our members across the region.</p><p><br /></p><p><b>Information sources used in this analysis</b></p><p>The source of information used in this analysis was LACNIC whois, with data obtained throughout the month of January 2023. This information only includes those members who have been assigned IPv6 but not IPv4 resources by LACNIC. They may or may not have been assigned an autonomous system number.</p><p><br /></p><p><b>Data processing</b></p><p>Python3 on a Jupyter notebook. We used the public APIs of LACNIC and RIPE NCC.</p><p><br /></p><p>LACNIC WHOIS</p><p><br /></p><p>RIPE NCC API</p><p><br /></p><p>APNIC IPv6 Penetration by ASN</p><p><br /></p><p>LACNIC’s delegated-extended File:</p><p><br /></p><p><b>Findings</b></p><p>We found 483 organizations that are considered IPv6-only LACNIC members, which we divided into:</p><p><br /></p><p> IPv6-only members with ASN: 343 members</p><p><br /></p><p> IPv6-only members without ASN: 140 members</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj-swJ0piNMCMwmZSiuGgSVboS8Io5eUU8Y-LWANvn8ST4xRaGe5klNpqWdc86C4Jjy7ro79XHSySJh65bahoTlHNyqbHCNp5QwJmwRGuYdZ0EQjuVVsNr6Gbvi92Gddxfe6kyoQawh0iZl7cWfGRq47r2g7t2-8ppITkr4rPj3Ou8nj9ABSwXjYiwN" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="539" data-original-width="814" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEj-swJ0piNMCMwmZSiuGgSVboS8Io5eUU8Y-LWANvn8ST4xRaGe5klNpqWdc86C4Jjy7ro79XHSySJh65bahoTlHNyqbHCNp5QwJmwRGuYdZ0EQjuVVsNr6Gbvi92Gddxfe6kyoQawh0iZl7cWfGRq47r2g7t2-8ppITkr4rPj3Ou8nj9ABSwXjYiwN" width="320" /></a></div><br /><br /><p></p><p><br /></p><p>Results for the 483 IPv6-only members (with and without ASN):</p><p><br /></p><p>An analysis of the 483 members allowed us to obtain the following information:</p><p><br /></p><p>– 261 announce the entire or a portion of the prefix</p><p><br /></p><p>– 208 announce the entire prefix they received from LACNIC</p><p><br /></p><p>– 53 announce a portion of the prefix they received from LACNIC</p><p><br /></p><p>– 222 do not announce the prefix</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgJtoxx0rvTB_8TKffK2EU8X4iQhyTmQ5sOwlmBq1B9nZuExP_ODHUiubXImAn2BPr4_j5v5jd6NE7mO4-6Mw6vM4TCY--AgB_oJ8NO-nTT3blrdWB2LSbPk7TfuNKM8J7unAYsKpc2lHpF1SM-UsP0dCQ_kzNNDS_uUDpJXZSrM5FU5s5Caq-7QrH9" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="492" data-original-width="743" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEgJtoxx0rvTB_8TKffK2EU8X4iQhyTmQ5sOwlmBq1B9nZuExP_ODHUiubXImAn2BPr4_j5v5jd6NE7mO4-6Mw6vM4TCY--AgB_oJ8NO-nTT3blrdWB2LSbPk7TfuNKM8J7unAYsKpc2lHpF1SM-UsP0dCQ_kzNNDS_uUDpJXZSrM5FU5s5Caq-7QrH9" width="320" /></a></div><br /><br /><p></p><p><br /></p><p>Results for the 343 IPv6-only members with at least one ASN:</p><p><br /></p><p>A total of 343 of the 483 IPv6-only members have at least one ASN (71%).</p><p><br /></p><p>Out of the 343 members that have an ASN:</p><p><br /></p><p> 163 announce the prefix (47.52%)</p><p><br /></p><p>120 announce the entire IPv6 prefix (73.61%)</p><p><br /></p><p>43 announce a portion of the IPv6 prefix (26.38%)</p><p><br /></p><p>180 do not announce the IPv6 prefix (52.48%)</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgjpciF7zxbaq7e6XaF5GxffTEvoGWy6hnU-0G5YDamfX0Plq-raK9-b-1dOUzDTG2fmW5vNeqWaDgU9FUb7D7DwSnMCNP860SwN4LTGg66N8Yq87_HAJNvzl0dhbu9COgWw1J01X0QqyPjeMY4xVZH8zF914MIsQhaoI7almLBLPX8mMZnZ4OYmaA1" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="491" data-original-width="742" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEgjpciF7zxbaq7e6XaF5GxffTEvoGWy6hnU-0G5YDamfX0Plq-raK9-b-1dOUzDTG2fmW5vNeqWaDgU9FUb7D7DwSnMCNP860SwN4LTGg66N8Yq87_HAJNvzl0dhbu9COgWw1J01X0QqyPjeMY4xVZH8zF914MIsQhaoI7almLBLPX8mMZnZ4OYmaA1" width="320" /></a></div><br /><br /><p></p><p><br /></p><p>Results for the 140 IPv6-only members without an ASN:</p><p><br /></p><p>A total of 140 of the 483 IPv6-only members do not have an ASN (29%).</p><p><br /></p><p>Out of these 140 IPv6-only members with no ASN:</p><p><br /></p><p>98 announce the prefix (70%)</p><p><br /></p><p>82 announce the entire prefix (83.67%)</p><p><br /></p><p>16 announce a portion of the prefix (16.32%)</p><p><br /></p><p>42 do not announce the prefix (30%)</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgXxyAgrLbE5g9ADLFUb-ZZGX3R2EtkvjfSiybmUg3rJU8XX3O039fYggikp4Tsy7H1NtFUy06Xh7ufgofOYXZNoQ_iZIHKsZ41RiQ8Qbmtd-K6xgWlbwsU8Uwvd349qJBwBqq0sR0FDxIP5pSnZPZqY2NOEArayXfZrcuC3Ek11wE-Y50b1v2K8FXs" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="494" data-original-width="746" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEgXxyAgrLbE5g9ADLFUb-ZZGX3R2EtkvjfSiybmUg3rJU8XX3O039fYggikp4Tsy7H1NtFUy06Xh7ufgofOYXZNoQ_iZIHKsZ41RiQ8Qbmtd-K6xgWlbwsU8Uwvd349qJBwBqq0sR0FDxIP5pSnZPZqY2NOEArayXfZrcuC3Ek11wE-Y50b1v2K8FXs" width="320" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p><b>What can we conclude from the charts above?</b></p><p>The first thing that stands out is that IPv6-only members without an ASN have 23% more announcements than LACNIC members who do have an ASN. In other words, these members have asked another organization to announce their prefix.</p><p>In both cases, the number of unannounced prefixes is very high, and it might be interesting to find out whether there is a reason for this. </p><p>It is particularly striking that the percentage of partial announcements is almost identical (11% of members with an ASN and 12% of members without an ASN).</p><p><b>Trying to identify whether the ASNs have IPv6 traffic</b></p><p>Knowing that there are 343 ASNs with assigned IPv6 prefixes and considering that these are also IPv6-only members, one can presume that they must have “medium high” IPv6 traffic. Therefore, we analyzed each autonomous system to determine its IPv6 traffic on 23 January 2023.</p><p><br /></p><p><b>How do we find out if an ASN has IPv6 traffic?</b></p><p>As many of you know, APNIC has been measuring IPv6 traffic for each ASN for many years. You can learn more about these studies here: https://stats.labs.apnic.net/ipv6</p><p><br /></p><p>Based on the above, we wanted to find out if the known ASNs of IPv6-only LACNIC members actually had IPv6 traffic (beyond announcing their prefix). </p><p><br /></p><p>Unfortunately, we were unable to obtain information for 274 (79.88%) of the 343 autonomous systems that were analyzed. However, it is important to note that this does not necessarily mean that they have not deployed IPv6, but that the traffic generated is very low and does not appear in the measurements by APNIC. A total of 32 ASNs were reported with 0% IPv6 traffic and 1 ASN with 88% IPv6 traffic.</p><p><br /></p><p><b>Are our IPv6-only members actually IPv6-only?</b></p><p>Finally, we wanted to find out if our members (IPv6-only with an ASN) are truly as IPv6-only as their name implies.</p><p><br /></p><p>For this particular case, we relied on the RIPE NCC API to obtain the information presented below.</p><p><br /></p><p>Out of the 343 IPv6-only members with at least one ASN:</p><p><br /></p><p>– A total of 540 prefixes were being announced (including v4 and v6)</p><p><br /></p><p> IPv4 announcements: 220</p><p><br /></p><p> IPv6 announcements: 320</p><p><br /></p><p> In IPv4 announcements, the average prefix length is: 23.56</p><p><br /></p><p> In IPv6 announcements, the average prefix length is: 38.09</p><p><br /></p><p>– 66 members “became” DualStack, i.e., the ASN announces both IPv4 and IPv6</p><p><br /></p><p>– 90 members announce IPv6 only</p><p><br /></p><p>– 27 members announce IPv4 only</p><p><br /></p><p>– 160 do not announce any prefix</p><p><br /></p><p>And to which RIR do the IPv4 prefixes announced by IPv6-only LACNIC members belong?</p><p><br /></p><p>LACNIC<span style="white-space: pre;"> </span>ARIN<span style="white-space: pre;"> </span>RIPE NCC<span style="white-space: pre;"> </span>AFRINIC<span style="white-space: pre;"> </span>APNIC</p><p>28<span style="white-space: pre;"> </span>166<span style="white-space: pre;"> </span>17<span style="white-space: pre;"> </span>9<span style="white-space: pre;"> </span>0</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiCPyxM1Hb-cF4rzL1B8ijN1KEgVEjAjAg5HEGS5GgAQD7jyziyhtugqX6xzzz2uqsJ1YjRemRlGYujf2Jo5FJ6dMtfnevWleioYEEjL7Tux8L4jRaVU0aNjjDMp5qxjsyq_Laeefw67IOJRBATLw8gwu0Q99N-PnMHX4cQvmOZOwq8cnoAq1VJy2kR" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="453" data-original-width="685" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEiCPyxM1Hb-cF4rzL1B8ijN1KEgVEjAjAg5HEGS5GgAQD7jyziyhtugqX6xzzz2uqsJ1YjRemRlGYujf2Jo5FJ6dMtfnevWleioYEEjL7Tux8L4jRaVU0aNjjDMp5qxjsyq_Laeefw67IOJRBATLw8gwu0Q99N-PnMHX4cQvmOZOwq8cnoAq1VJy2kR" width="320" /></a></div><br /><br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiOXn1V5pNRkQM0cGQ3HwAvXUhJbzKSWVjn-Ru2n5_MTg-DkLSbMsqWGhmhrohCpskysXOFvrBiQnQoRLos6Z-H1Onu69VEK0F-E5qkeRYjEnhxyUdLCt859p6AvoCKUIZpTk6iTdHQOv2OJXhzfVzRED9PyDnDBK8PUqjoTaVwtGuOQIfZ6HA0DzKj" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="513" data-original-width="775" height="212" src="https://blogger.googleusercontent.com/img/a/AVvXsEiOXn1V5pNRkQM0cGQ3HwAvXUhJbzKSWVjn-Ru2n5_MTg-DkLSbMsqWGhmhrohCpskysXOFvrBiQnQoRLos6Z-H1Onu69VEK0F-E5qkeRYjEnhxyUdLCt859p6AvoCKUIZpTk6iTdHQOv2OJXhzfVzRED9PyDnDBK8PUqjoTaVwtGuOQIfZ6HA0DzKj" width="320" /></a></div><br /><br /><p></p><p><b>Sankey Diagram – A Look at LACNIC’s IPv6-Only Members</b></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgaVvqvBFd9B40kN5IMdOAf5R99hv2yZF2xaeiLL8J7J8ooh4AslprF3AClEBRAA2gdEw0ef22s2M5Zyf5Qm5tfdw9O8kvzZ7A9hp4FzGV04rhH9xpozoVrszXZFnlSoAD4pDv_5WGF81g6Lnhxxmd8oyqTASK6DnmA5ZzDm_2K7vhtomLebO7bcBI1" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="978" data-original-width="1562" height="200" src="https://blogger.googleusercontent.com/img/a/AVvXsEgaVvqvBFd9B40kN5IMdOAf5R99hv2yZF2xaeiLL8J7J8ooh4AslprF3AClEBRAA2gdEw0ef22s2M5Zyf5Qm5tfdw9O8kvzZ7A9hp4FzGV04rhH9xpozoVrszXZFnlSoAD4pDv_5WGF81g6Lnhxxmd8oyqTASK6DnmA5ZzDm_2K7vhtomLebO7bcBI1" width="320" /></a></div><br /><br /><p></p><p><br /></p><p><b>Conclusions</b></p><p>Results suggest that, while a significant number of LACNIC members consider themselves to be IPv6-only, we observed that more than 50% of these members have not started announcing their IPv6 prefix. At the same time, we noticed that many of those who have deployed IPv6 continue to use IPv4. This means that, although in recent years IPv6 adoption has grown in the region, there is still a long way to go to achieve widespread IPv6 deployment. In any case, it is important to continue to monitor the adoption of the new protocol.</p><p><br /></p><p>Finally, being an IPv6-only LACNIC member also allows an organization to participate in the Internet ecosystem.</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-52409954309856132562023-02-22T19:44:00.004-08:002023-02-22T19:44:41.708-08:00The Game of Dominoes and TCP/IP <p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">As many of us do, I have more than one passion: family, work, sports, a category in which I include the beautiful game of dominoes. I reached my best level in this game about 25 years ago, when I participated in several tournaments (a few of which I won) and the icing on the cake was that I took the sixth place in a national tournament. I should also mention that I come from a family with a certain tradition of domino fans, including two uncles, my father, and my brother.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Playing dominoes is one of the most beautiful things that family and close and not so close friends can share. But how is the game of dominoes similar to the TCP/IP protocol? Some of you must probably be thinking “Alejandro has gone crazy.” Perhaps I haven’t gone crazy but likely already was.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">But I digress… I will show you that TCP/IP and dominoes do have a lot in common.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">IBM [1] defines the TCP/IP protocols as follows:</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">“Protocols are sets of rules for message formats and procedures that allow machines and application programs <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">to exchange information</strong>. These rules must be followed by each machine involved in the communication in order for the receiving host to be able to understand the message.”</em></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Sounds interesting… but you probably still don’t see what this has to do with dominoes and think it’s crazy. Do not despair, we’ll get there in a moment!</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">This is what ChatGPT has to say about the game of dominoes:</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">“The game of dominoes is a board game in which players place tiles with numbers on both ends on a board. The object of the game is to place all the tiles before the other players.In the game of dominoes, <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">communication between players</strong> is based on strategy and planning. Players must communicate which tiles they have and which tiles they can play, and they must work together to find the best way to place the tiles on the board. Players must also pay attention to the other players’ moves and adapt their strategy accordingly. In short, <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">communication during a game of dominoes is essential to a team’s success</strong> and to winning the game.”</em></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Now, let’s think at the macro level. At this point, we can see that both involve elements that must be sent/played, and which must maintain an order to achieve successful communication. Likewise, both require strategy and planning to achieve the objective: one connects tiles, the other connects devices. Am I starting to convince you?</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Now let’s talk about communication and partnership dominoes, a game where players are paired into teams. This is at the heart of the topic that I want to get to.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Regardless of the style of dominoes (Cuban, Latino, Mexican, Chilean, etc.), partnership dominoes is a communication game and is <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">not</strong> different from a data network. A player needs to communicate with his partner (A → B, B → A) to specify which tiles he has or doesn’t have.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">But how do partners communicate if one of the rules is that you are not allowed to talk? Therein lies the greatness of any good player: just like TCP/IP —and any other communication protocol— there are certain rules that must be followed.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">After three decades of experience in both worlds, I will share with you what I believe are the main moves in the partnership dominoes ecosystem and their counterpart in TCP/IP:</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">The pose</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In a game of dominoes, the “pose” —the first tile to be placed on the board— is identical to a TCP SYN Packet, more specifically, a TCP Fast Open SYN with payload. This is a beautiful comparison, as in partnership dominoes the pose *always* transmits information, usually related to the suit (number) one most desires. TCP Fast Open —a thing of beauty from the world of TCP— is defined in RFC 7413 and its main objective is to be able to send information in the first packet with which all TCP communication begins (SYN).</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">The pauses</strong> (double ACK)</h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Payload is considered unnecessary in some networks, yet it may be worth the trouble. A player’s “pause” explicitly reveals that the player has more than one tile of the suit (number) they have played. With this, the player is efficiently communicating information to their partner, who should be aware of these pauses, much like those servers and networks where devices are configured to send more than one ACK in TCP (acknowledgment).</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Passing (packet dropped)</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In TCP, when a packet is dropped, the “Congestion Avoidance” phase begins. There, the TCP window decreases by 50% and so does transmission speed. Nothing more similar to passing in a game of dominoes. Of course, here a player goes into a panic, especially when they have a lot to transmit.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">The version</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In the world of IP, we are used to IPv4 and IPv6; in dominoes, the only difference is that versions range from 0 (blank) to 6. (Yes, I know, double-9 domino sets have the numbers 0 to 9, every rule has its exception ;-) </p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">False thinking</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">TCP Half-Open. Remember? This is when a three-way handshake (SYN, SYN+ACK, ACK) cannot be completed (but careful! this is the modern concept and, to be honest, it does not follow RFC 793). It is also commonly used to launch DoS attacks.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Load size (total length)</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">As we draw our tiles, how many points do we add?</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Source and destination address</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Here we are specifically in the Layer-3 world. This is a very interesting case where, just as in a communication network, one host communicates with another. The same thing happens in dominoes: while some “packets” are aimed at your partner, some may be aimed at our opponents, as needed (for example, if we are trying to find a specific suit).</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Thinking about each move</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Bufferbloat is a very particular situation, yet it occurs quite frequently. Basically, these are situations where hosts (mainly middleware, routers, firewalls, or switches) add delay (excess buffering) when switching packets. This creates unnecessary latency and jitters. If you manage a network, please be sure to check if you are suffering from bufferbloat.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Block the game/hand</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In dominoes, this is the moment when it is no longer possible to make a play. In TCP/IP, it means that the network is down, so packets cannot be sent.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Consequences of good and poor communication</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Just as in any network protocol, in partnership dominoes both proper and poor communication have their consequences. In a game of dominoes, if communication is good, it will most likely lead to victory. If communication is deficient, the team will lose the game. In TCP/IP, if communication is good, the connection will be properly established and the data will be delivered. If the communication is poor, the data will be corrupted and/or the connection will not be established.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Head and tail</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In dominoes, a “head and tail” (<em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">capicúa</em>) is when your last tile has two different numbers. What can this be compared to? Well, it can be compared to TCP Multipath (MPTCP), defined in RFC 8684, which allows operating connections through different paths. This is why MPTCP provides redundancy and efficiency in terms of bandwidth consumption.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Have I not convinced you yet? OK, I have one more chance to see if I can do it.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">The table below shows a layer-to-layer comparison of TCP/IP and dominoes.</p><div class="table-scroll" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><figure class="wp-block-table tabla" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; font-family: "Helvetica Neue", Helvetica, Arial, "sans-serif"; font-size: 14px; line-height: 18px; margin: 0px 0px 1em; outline: 0px; overflow-x: auto; padding: 0px; text-align: center; vertical-align: baseline; width: 686px;"><table style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-spacing: 0px; border: 0px; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; width: 686px;"><tbody style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><tr style="background: rgb(247, 247, 247); border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;"><strong style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">TCP/IP model (+ user layer)</strong></td><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;"><strong style="background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Domino model</strong></td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">User</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Player</td></tr><tr style="background: rgb(247, 247, 247); border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Application</td><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Set up the play</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Transport</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Select the tile</td></tr><tr style="background: rgb(247, 247, 247); border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Network</td><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Pick up the tiles</td></tr><tr style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Link</td><td style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Tiles</td></tr><tr style="background: rgb(247, 247, 247); border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Physical</td><td style="background: transparent; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-image: initial; border-left-color: initial; border-left-style: initial; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 1px; margin: 0px; outline: 0px; padding: 5px 10px; text-align: center; vertical-align: middle;">Place the tile on the table</td></tr></tbody></table></figure></div><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">In the TCP/IP model, a packet is built from the upper to the lower layers (it is then injected into the network, etc.), it is received by the destination host, and processed “in reverse”, from the physical to the application layer. The exact same thing happens in the domino model: the player sets up their move, selects their tile, picks it up, and then injects it into the game.</p><h2 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #009dca; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 20pt; margin: 0px; outline: 0px; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Conclusion</strong></h2><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">Comparing the game of partnership dominoes and the TCP/IP communication protocol may seem strange at first. However, a closer look reveals the similarities. In dominoes, there are two players who act as senders and receivers of information, as they each have their own set of tiles and must communicate with each other to decide which tile to play each turn. In the same way, in TCP/IP there are devices that act as senders and receivers of information.</p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #333333; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;">These contrasts illustrate how similarities can often exist between seemingly dissimilar systems, and that understanding these similarities can help us understand complex concepts and see things from a different perspective.</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-61364245047024593962023-01-23T11:56:00.005-08:002023-01-23T11:56:49.866-08:00Python: reading a text file - character <p><b>Situation:</b></p><p> Reading a text file in python3 (csv or txt) there is a character that can be appreciated using "<i>more</i>" in terminal but in python3 the situation is more complicated.</p><p><br /></p><p>Example:</p><p><i> $ more epa.csv</i></p><p><i><U+FEFF>the text</i></p><p><br /></p><p><b>Problem:</b></p><p> Python3 reads the file well, it doesn't throw an error, but that invisible "character" remains in the variables, the texts, etc. and can cause some inconvenience.</p><p><br /></p><p><b>Solution:</b></p><p> The solution is to read the file and specify the encoding, something as simple as:</p><p><br /></p><p><i>FILENAME="epa.csv"</i></p><p><i>with open(FILENAME, encoding='utf-8-sig') as file:</i></p><p><i> for line in file:</i></p><p><i> print(line)</i></p><p><br /></p><p><br /></p><p><br /></p><p><b>Explanation</b> (taken from: https://stackoverflow.com/questions/17912307/u-ufeff-in-python-string):</p><p><br /></p><p>The Unicode character U+FEFF is the byte order mark, or BOM, and is used to tell the difference between big- and little-endian UTF-16 encoding.</p><p><br /></p><p>Good luck,</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-54129391308047327802022-12-01T19:42:00.001-08:002022-12-01T19:42:24.835-08:00An Interesting Change Is Coming to BGP<p>A route leak is defined as the propagation of routing announcement(s) beyond their intended scope (RFC 7908). But why do route leaks occur? The reasons are varied and include errors (typos when entering a number), ignorance, lack of filters, social engineering, and others.</p><p><br /></p><p>Although there are several ways to prevent route leaks and, in fact, their number has decreased over the past three years (thanks to RPKI, IRR, and other mechanisms), I will try to explain what I believe BGP configurations will look like in the future. To do so, I will talk about RFC 9234, Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages. And the part I would like to highlight is “role detection” as, after this RFC, in the future, we will assign roles in our BGP configurations.</p><p><br /></p><p>To understand what we want to achieve, let’s recall some typical situations for an ISP: </p><p><br /></p><p>a new customer comes along with whom we will speak BGP,</p><p>a connection to an IXP,</p><p>the ISP buys capacity from a new upstream provider,</p><p>a new private peering agreement.</p><p>In all these cases decisions need to be made. There are multiple ways to configure BGP, including route maps, AS filters, prefix lists, communities, ACLS, and others. We may even be using more than one of these options. </p><p><br /></p><p>This is where RFC 9324 enters the picture: the document establishes the roles in the BGP OPEN message, i.e., it establishes an agreement of the relationship on each BGP session between autonomous systems. For example, let’s say that I am a router and I speak to another router and tell them that I am a “customer”; in turn, the other router’s BGP session can say “I am your provider.” Based on this exchange, all configurations (i.e., filters) will be automatic, which should help reduce route leaks.</p><p><br /></p><p>These capabilities are then negotiated in the BGP OPEN message.</p><p><br /></p><p><b>The RFC defines five roles:</b></p><p><br /></p><p>Provider – sender is a transit provider to neighbor;</p><p>Customer – sender is a transit customer of neighbor;</p><p>RS – sender is a Route Server, usually at an Internet exchange point (IX);</p><p>RS-client – sender is client of an RS;</p><p>Peer – sender and neighbor are peers.</p><p>How are these roles configured?</p><p>If, for example, on a relationship in a BGP session between ASes, the local AS role is performed by the Provider, the remote AS role must be performed by the Customer and vice versa. Likewise, if the local AS role is performed by a Route Server (RS), the remote AS role must be performed by an RS-Client and vice versa. Local and remote AS roles can also be performed by two Peers (see table).</p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://news.lacnic.net/wp-content/uploads/2022/11/figure1-allow-pairs-of-role-capabilities-nov-2022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="800" height="382" src="https://news.lacnic.net/wp-content/uploads/2022/11/figure1-allow-pairs-of-role-capabilities-nov-2022.png" width="478" /></a></div><br /><br /><br /></div><p><b>An example is included below.</b></p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://news.lacnic.net/wp-content/uploads/2022/11/figure2-example-bgp-session-nov-2022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="800" height="241" src="https://news.lacnic.net/wp-content/uploads/2022/11/figure2-example-bgp-session-nov-2022.png" width="492" /></a></div><br /><p></p><p><br /></p><p><br /></p><p><b>BGP Capabilities</b></p><p>BGP capabilities are what the router advertises to its BGP peers to tell them which features it can support and, if possible, it will try to negotiate that capability with its neighbors. A BGP router determines the capabilities supported by its peer by examining the list of capabilities in the OPEN message. This is similar to a meeting between two multilingual individuals, one of whom speaks English, Spanish and Portuguese, while the other speaks French, Chinese and English. The common language between them is English, so they will communicate in that language. But they will not do so in French, as only one of them speaks this language. This is basically what has allowed BGP to grow so much with only a minor impact on our networks, as it incorporates these backward compatibility notions that work seamlessly.</p><p><br /></p><p><b>This RFC has added a new capability.</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://news.lacnic.net/wp-content/uploads/2022/11/figure3-RFC-has-added-a-new-capability-nov-2022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="800" height="279" src="https://news.lacnic.net/wp-content/uploads/2022/11/figure3-RFC-has-added-a-new-capability-nov-2022.png" width="554" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /><br /></div><p><b>Does this code work? Absolutely. Here’s an example in FRR:</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://news.lacnic.net/wp-content/uploads/2022/11/figure4-code-frr-example-nov-2022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="481" data-original-width="800" height="266" src="https://news.lacnic.net/wp-content/uploads/2022/11/figure4-code-frr-example-nov-2022.png" width="442" /></a></div><br /><p><br /></p><p><b>Strict Mode</b></p><p>Capabilities are generally negotiated between the BGP speakers, and only the capabilities supported by both speakers are used. If the Strict Mode option is configured, the two routers must support this capability.</p><p><br /></p><p><b>In conclusion,</b> I believe the way described in RFC 9234 will be the future of BGP configuration worldwide, replacing and greatly improving route leaks and improper Internet advertisements. It will make BGP configuration easier and serve as a complement to RPKI and IRR for reducing route leaks and allowing for cleaner routing tables.</p><p><br /></p><p>Click here to watch the full presentation offered during LACNIC 38 LACNOG 2022.</p><p><br /></p><p>https://news.lacnic.net/en/events/an-interesting-change-is-coming-to-bgp</p><br /><div><br /></div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-21772928760409296042022-08-09T12:00:00.005-07:002022-08-09T12:00:57.063-07:00 DNSSEC Deployment in the Region – Statistics and Measurements <p>By Hugo Salgado, Research and Development at NIC Chile; Dario Gomez Technology Consultant; Alejandro Acosta R+D Coordinator at LACNIC</p><p><br /></p><p><b>Introduction</b></p><p>In this article we would like to talk about some recent studies we have conducted on a topic we are very passionate about: DNSSEC. Note that we are using the plural term “studies”, as there are two studies on DNSSEC that we began at the same time… please continue reading to find out what these two studies are about!</p><p><br /></p><p><b>About DNSSEC</b></p><p>DNSSEC incorporates additional security to the DNS protocol, as it allows checking the integrity and authenticity of the data, preventing spoofing and tampering attacks through the use of asymmetric cryptography, better known as public/private key cryptography. By using these keys and digital signatures based on public key cryptography, it is possible to determine whether a query has been altered, which allows guaranteeing the integrity and authenticity of the message. If these signatures are checked and they do not match, it means that the chain of trust has been broken and the query cannot be validated as legitimate.</p><p><br /></p><p>Having DNSSEC depends on your ISP or Internet service provider, who is the one responsible for configuring the protocol. There are several different tools to find out if you have DNSSEC, such as the following:</p><p><br /></p><p><a href="https://dnssec-analyzer.verisignlabs.com/">https://dnssec-analyzer.verisignlabs.com/</a></p><p><br /></p><p><a href="https://dnsviz.net/">https://dnsviz.net/</a></p><p><br /></p><p>As many already know, the DNSSEC protocol has been growing a lot in recent years. Four aspects have marked the growth of DNSSEC deployment:</p><p><br /></p><p> DNSSEC is enabled by default on some recursive servers (BIND).</p><p> Great progress has been achieved in making it easier for major registrars to enable DNSSEC on the different domains.</p><p> All major recursive DNS servers perform DNSSEC validation (Google Public DNS, Cloudflare, Quad9, etc.).</p><p> Apple very recently informed that iOS16 and macOS Ventura will allow DNSSEC validation at the stub resolver.</p><p><br /></p><p>DNSSEC has always been very important for LACNIC, and we have organized many events and activities around this topic. However, to date we had never conducted our own study on the matter.</p><p><br /></p><p><b>What is the study about?</b></p><p>LACNIC’s R&D department wanted to carry out a study to understand the status and progress of DNSSEC deployment in the region.</p><p><br /></p><p><b>Data sources</b></p><p>We have two very reliable data sources:</p><p><br /></p><p> We used RIPE ATLAS probes https://atlas.ripe.net/</p><p> We performed traffic captures (tcpdump) that were then anonymized on authoritative servers</p><p><br /></p><p>Dates:</p><p><br /></p><p>We began gathering data in November 2021. Currently, data is gathered automatically, and weekly and monthly reports are produced. [1]</p><p><br /></p><p>How can one identify if a server is performing DNSSEC?</p><p><br /></p><p>We need to look at two different things:</p><p><br /></p><p>Atlas probes:</p><p><br /></p><p>DNS resolution requests for a domain name that has intentional errors in its signatures and therefore cannot be validated with DNSSEC are sent to all available probes in Latin America and the Caribbean. An error response (SERVFAIL) means that the resolver used by that probe is using DNSSEC correctly. If, on the other hand, a response is obtained (NOERROR), the resolver is not performing any validation. Note that, interestingly, the goal is to obtain a negative response from the DNS server – this is the key to knowing whether the recursive server validates DNSSEC. Now, an example. If you visit dnssec-failed.org and can open the page, it means that your recursive DNS is not performing DNSSEC validation – you shouldn’t be able to open the page! :-)</p><p><br /></p><p>Traffic captures (tcpdump):</p><p><br /></p><p>Before sharing what we do with traffic captures, we will first expand a bit on the concept of DNSSEC. Just as DNS has traditional records (A, AAAA, MX, etc.), new records were added for DNSSEC: DS, RRSIG, NSEC, NSEC3, and DNSKEY. In other words, a recursive DNS server can query the AAAA record to learn the IPv6 address of a name and also the Delegation Signer (DS) record to check the authenticity of the child zones. The key to this study is that servers that don’t perform DNSSEC validation don’t query DNSSEC records!</p><p><br /></p><p>Based on the above, when making the capture, tcpdump is asked to take the entire packet (flag -s 0). Thus, we have all its content, from Layer 3 to Layer 7. While processing the packet, we look for specific DNSSEC records (again: DS, RRSIG, NSEC, NSEC3, and DNSKEY). If we can obtain any of these records, then the recursive server is indeed performing DNSSEC validation, otherwise it is not.</p><p><br /></p><p>Where is this capture performed?</p><p><br /></p><p>The capture is performed specifically in one of the instances of the reverse DNS D server (D.IP6-SERVERS.ARPA). The following command is used: /usr/sbin/tcpdump -i $INTERFAZ -c $CANTIDAD -w findingdnssecresolvers-$TODAY.pcap -s 0 dst port $PORT and ( dst host $IP1 or dst host $IP2 )</p><p><br /></p><p><b>Processing the data</b></p><p>First, processing the data comprises several steps, all of which are performed entirely using open-source software, specifically, Bash, Perl, and Python3 on Linux.</p><p><br /></p><p>Second, let’s not forget that there are two sources of information: traffic captures (PCAPs) and Atlas probes. Below is the methodology followed in each case.</p><p><br /></p><p> Processing of PCAPs: After obtaining the PCAPs, a series of steps are performed, including the following:</p><p> Processing of PCAP files in Python3 using the pyshark library.</p><p> Cleaning of unprocessable data (incorrectly formed, damaged, non-processable packets, etc.)</p><p> Elimination of duplicate addresses</p><p> Anonymization of the data</p><p> Generation of result.</p><p> Generation of charts and open data</p><p><br /></p><p> Processing of the information obtained in RIPE Atlas:</p><p><br /></p><p>Traffic data captures are performed with monthly measurements on the RIPE Atlas platform, using its command line API. They are then collected and processed using a series of Perl scripts and, finally, they are plotted using the Google Charts API. In addition, we always make the data available in open data format.</p><p><br /></p><p>Let’s keep in mind that, in order to determine if a probe is using a validating resolver, it uses a domain name with intentionally incorrect signatures. Because the name is not valid according to DNSSEC, a validating probe should return an error when attempting to resolve that name. On the contrary, a positive response is obtained for the name, the resolver is not validating, as it has ignored the incorrect signature.</p><p><br /></p><p><b>Results</b></p><p>The chart below shows the number of servers that were studied, specifying those that use DNSSEC and those that do not. The blue and red lines represent servers for which DNSSEC is and is not enabled, respectively.</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjP74kC8Wp4k85j0l2VvqBs2TzYh8qJeXrAPvtQFXAnXEyhJ1u1arogiVFxkL100GjsK74Ds9O47PHIpKNNbnMdOeiy6EDtKgWMe42POVjiYGBNkPXIes65m1SX8LWCURX1dXMMChUrxi3g0kL3VkdLSaQ6PgK8xTfj0rpfPxuskNfSNbo_1FpPfV2w" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="470" data-original-width="1999" height="138" src="https://blogger.googleusercontent.com/img/a/AVvXsEjP74kC8Wp4k85j0l2VvqBs2TzYh8qJeXrAPvtQFXAnXEyhJ1u1arogiVFxkL100GjsK74Ds9O47PHIpKNNbnMdOeiy6EDtKgWMe42POVjiYGBNkPXIes65m1SX8LWCURX1dXMMChUrxi3g0kL3VkdLSaQ6PgK8xTfj0rpfPxuskNfSNbo_1FpPfV2w=w591-h138" width="591" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p><br /></p><p><span style="font-size: x-small;">Nro de Servidores DNSs estudiados</span></p><p><span style="font-size: x-small;">Chart No. 1</span></p><p><br /></p><p>As the image shows, on 2 June 2022 there were more recursive servers that did not perform DNSSEC validation than servers that did. Between 33,000 and 55,000 IP addresses were analyzed each week. In general, an average of approximately 55% of servers that do not use the protocol and 45% of positive samples is maintained.</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi5U_huzwA8H0X_6fEETy0UdCv_M2takk3nH59mh6SBrJu4YrL5_PjizCljFR5Uk2jtyx5zGFnKImpmsTeUSBRQcFU2LhQNTFhXHm7oroXZA9b0mG02rJipTkA0Fp8AYaEAdrF0DW6eHFif8cC0WxBwhPKqWmYBH2SW3JmvoxkXyFqRYhtaM_VHXb9J" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="478" data-original-width="1999" height="115" src="https://blogger.googleusercontent.com/img/a/AVvXsEi5U_huzwA8H0X_6fEETy0UdCv_M2takk3nH59mh6SBrJu4YrL5_PjizCljFR5Uk2jtyx5zGFnKImpmsTeUSBRQcFU2LhQNTFhXHm7oroXZA9b0mG02rJipTkA0Fp8AYaEAdrF0DW6eHFif8cC0WxBwhPKqWmYBH2SW3JmvoxkXyFqRYhtaM_VHXb9J=w476-h115" width="476" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p><br /></p><p><span style="font-size: x-small;">Nro de Servidores IPv6 DNSs estudiados</span></p><p><span style="font-size: x-small;">Chart No. 2</span></p><p><br /></p><p>Chart No. 2 shows the history of DNSSEC queries over IPv6. It is worth noticing that for various sampling periods there were more DNSSEC queries over IPv6 than over IPv4. Undoubtedly, the intention is for the red line to gradually decrease and for the blue line to gradually increase.</p><p><br /></p><p>Ranking of countries with the highest DNSSEC validation rates</p><p><br /></p><p>Using the RIPE Atlas measurement platform, it is possible to measure each country’s ability to validate DNSSEC. Each measurement can be grouped by country to create a ranking:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgMldZ1rIGbt8NXVIZHxOIl_SGzwEUZiIH0eVNZxl2ZP5mGhqCKVsOEGWRa19lHwPrviaZJFu3gkLrFrjq6fUr1u4h4-Ksahd1w2wsPdXpyCQzs8CX7I1LPW98f5q1eVLZvjDGd18hTIkicztzYr-Dki2VNPHUlF0CNu0nfAxz6QLUTZlPMlQtHdGVC" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="745" data-original-width="952" height="383" src="https://blogger.googleusercontent.com/img/a/AVvXsEgMldZ1rIGbt8NXVIZHxOIl_SGzwEUZiIH0eVNZxl2ZP5mGhqCKVsOEGWRa19lHwPrviaZJFu3gkLrFrjq6fUr1u4h4-Ksahd1w2wsPdXpyCQzs8CX7I1LPW98f5q1eVLZvjDGd18hTIkicztzYr-Dki2VNPHUlF0CNu0nfAxz6QLUTZlPMlQtHdGVC=w453-h383" width="453" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><span style="font-size: x-small;">Ranking DNSSEC por pais</span></p><p><span style="font-size: x-small;">Chart No. 3</span></p><p><br /></p><p>Ranking based on average DNSSEC validation rates from networks in the countries of Latin America and the Caribbean corresponding to May 2022.</p><p><br /></p><p>The numbers inside the bars show the number of participating ASs for each country. Countries where we measured only one AS were not included.</p><p><br /></p><p><b>Summary</b></p><p>Based on the study of traffic captures with data obtained over a period of eight months, the graph suggests a slow decrease in the number of NO-DNSSEC servers. There also appears to be greater DNSSEC deployment in IPv6 than in IPv4 servers.</p><p><br /></p><p>It is to be expected that an analysis of the data obtained using Atlas probes suggests greater deployment of DNSSEC validation than other, more generic data sources, as these probes are usually hosted on more advanced networks or by users who would deliberately enable DNSSEC. However, it somehow represents the “upper limit” of DNSSEC penetration and is also an important indicator of its evolution over time.</p><p><br /></p><p><b>Open data</b></p><p>As usual, we at LACNIC want to make our information available so that anyone who wishes to do so can use it in their work:</p><p><br /></p><p><a href="https://stats.labs.lacnic.net/DNSSEC/opendata/">https://stats.labs.lacnic.net/DNSSEC/opendata/</a></p><p><a href="https://mvuy27.labs.lacnic.net/datos/">https://mvuy27.labs.lacnic.net/datos/</a></p><p><br /></p><p>This data is being provided in the spirit of “Time Series Data.” In other words, we are making available data collected over time, which will make it very easy for our statistics to fluctuate and to identify increases and/or drops in DNSSEC deployment by country, region, etc.</p><p><br /></p><p>As always when we work on this type of project, we welcome suggestions for the improvement of both the implementation and the visualization of the information obtained.</p><p><br /></p><p><b>References:</b></p><p>[1] https://stats.labs.lacnic.net/DNSSEC/dnssecstats.html</p><p>https://mvuy27.labs.lacnic.net/datos/dnssec-ranking-latest.html</p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-58354943157797570102022-07-13T20:47:00.009-07:002022-07-14T07:26:37.350-07:00Fixing/Solved "Unable to parse package file " after apt<b>Problem: </b><div> We get an error after executing any <i>apt</i> command in linux </div><div><br /></div><div><b>Solution </b></div><div> The solution is very easy, I spent so many hours fixing it. </div><div> You just have to delete the file mentioned in the error, in my case I got:
"E: Unable to parse package file <i>/var/lib/apt/extended_states</i> (1)" </div><div> I just deleted the file <i>/var/lib/apt/extended_states </i></div><div><br /></div><div><b> Example: </b></div><div><i> #sudo rm /var/lib/apt/extended_states </i></div><div><br /></div><div> That's it</div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-3119283245831885272022-02-24T08:02:00.004-08:002022-05-16T20:14:26.057-07:00Why Is IPv6 So Important for the Development of the Metaverse?<p><span style="color: white;"> <span face="-apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif" style="font-size: 16px; text-align: justify;">By</span><span face="-apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif" style="font-size: 16px; text-align: justify;"> </span><a href="http://www.galevy.com/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; text-align: justify; text-decoration-line: none; vertical-align: baseline;" target="_blank">Gabriel E. Levy B.</a><span face="-apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif" style="font-size: 16px; text-align: justify;"> </span><span face="-apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif" style="font-size: 16px; text-align: justify;">and</span><span face="-apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif" style="font-size: 16px; text-align: justify;"> </span><a href="http://blog.acostasite.com/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; margin: 0px; outline: 0px; padding: 0px; text-align: justify; text-decoration-line: none; vertical-align: baseline;" target="_blank">Alejandro Acosta</a></span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">Over almost half a century, the TCP/IP protocols have helped connect billions of people.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">Since the creation of the Internet, they have been the universal standards used to transmit information, making it possible for the Internet to function<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn3" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[3]</a>.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">The acronym ‘IP’ can refer to two different but interrelated concepts. The first is a protocol (the Internet Protocol) whose main function is to be used in bidirectional (source and destination) data transmission based on the Open System Interconnection (OSI) standard<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn4" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[4]</a><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">. </em>The second possible reference when talking about IP involves the assignment of physical addresses in the form of numbers known as ‘IP Addresses’. An IP address is a logical and hierarchical identifier assigned to a network device that uses the Internet Protocol (IP). It corresponds to the network layer, or layer 3 of the OSI model.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">IPv4 refers to the fourth version of the <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Internet Protocol</strong>, a standard for the interconnection of Internet-based networks which was implemented in 1983 for the operation of ARPANET and its subsequent migration to the Internet.<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn5" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[5]</a>.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">IPv4 uses 32-bit addresses, the equivalent of 4.3 billion unique numbering blocks, a figure that back in the 80s appeared to be inexhaustible. However, thanks to the enormous and unforeseen growth of the Internet, by 2011 the unexpected had happened: IPv4 addresses had been exhausted<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn6" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[6]</a>.</span></p><h4 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16pt; margin: 10px 0px; outline: 0px; overflow-wrap: break-word; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">IPv6 as a solution to the bottleneck</span></strong></h4><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">To address the lack of available address resources, the engineering groups responsible for the Internet have resorted to multiple solutions, ranging from the creation of private subnets so that multiple users can connect using a single address, to the creation of a new protocol called IPv6 which promises to be the definitive solution to the problem and which was officially launched on 6 June 2012<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn7" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[7]</a>:</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">“Anticipating IPv4 address exhaustion and seeking to provide a long-term solution to the problem, the organization that promotes and develops Internet standards (the Internet Engineering Task Force or IETF) designed a new version of the Internet Protocol, specifically version 6 (IPv6), with provides almost limitless availability based on a the use of 128-bit addresses, the equivalent to approximately 340 undecillion addresses”**[<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn8" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[8]</a>**.</span></em></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">It should be noted, however, that the creation of the IPv6 protocol did not anticipate a migration or shift from one protocol to another. Instead, a mechanism was designed to allow both protocols to coexist for a time.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">To ensure that the transition would be transparent to users and to allow a reasonable amount of time for vendors to incorporate the new technology and for Internet providers to implement the new version of the protocol in their own networks, along with the IPV6 protocol itself, the organization responsible for Internet protocol standardization — the IETF — designed a series of transition and coexistence mechanisms.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">“Imagine this is a weight scale where the plate carrying the heaviest weight currently represents IPv4 traffic. However, little by little and thanks to this coexistence, as more content and services become available over IPv6, the weight of the scale will shift to the other plate, until IPv6 traffic outweighs IPv4. This is what we call the transition”**<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn9" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[9]</a>**.</span></em></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">If both protocols (IPv4 and IPv6) are available, IPv6 is preferred by design. This is why the balance shifts naturally, depending on multiple factors and without us being able to determine how long IPv4 will continue to exist and in what proportion. If one had a crystal ball, one might say that IPv6 will become the dominant protocol in three or four years, and that IPv4 will disappear from the Internet — or at least from many parts of the Internet — in the same timeframe”<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn10" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[10]</a>.</span></p><h4 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16pt; margin: 10px 0px; outline: 0px; overflow-wrap: break-word; padding: 10px 10px 10px 0px; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">Without IPv6 there may be no Metaverse</span></strong></h4><h4 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16pt; margin: 10px 0px; outline: 0px; overflow-wrap: break-word; padding: 10px 10px 10px 0px; vertical-align: baseline;"><span style="color: white;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Metaverses</strong> or metauniverses are environments where humans interact socially and economically through their avatars in cyberspace, which is an amplified metaphor for the real world, except that there are no physical or economic limitations<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn11" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[11]</a>.</span></h4><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">“You can think about the Metaverse as an embodied Internet, where instead of just viewing content — you are in it. And you feel present with other people as if you were in other places, having different experiences that you couldn’t necessarily have on a 2D app or webpage.” Mark Zuckerberg, Facebook CEO**<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn12" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[12]</a>**.</span></em></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">The Metaverse</strong> necessarily runs on the Internet, which in turn uses the Internet Protocol (IP) to function.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">The Metaverse is a type of simulation where avatars allow users to have much more immersive and realistic connections by displaying a virtual universe that runs online. This is why it is necessary to ensure that the Metaverse is immersive, multisensory, interactive, that it runs in real time, that it allows each user to be precisely differentiated, and that it deploys simultaneous and complex graphic tools, among many other elements. All this would be impossible to guarantee with the IPv4 protocol, as the number of IP addresses would not be enough to cover each connection, nor would it be possible to guarantee that technologies such as NAT would function properly.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">Key elements:</span></strong></p><ul style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; list-style: initial; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px 0px 0px 50px; vertical-align: baseline;"><li style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-size: 12pt; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">IPv6 is the only protocol that can guarantee enough IP resources to support the Metaverse.</span></li><li style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-size: 12pt; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">IPv6 avoids the use of NAT mechanisms that would create technological difficulties for the deployment of the Metaverse.</span></li><li style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-size: 12pt; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">IPv6 links have lower RTT delay than IPv4 links, and this allows avatar representations, including holograms, to be displayed synchronously.</span></li><li style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-size: 12pt; line-height: 1.3; margin: 0px; outline: 0px; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">Considering the huge amount of data involved in the deployment of the Metaverse, it is necessary to ensure the least possible data loss. This is why IPv6 is the best option, as evidence shows that data loss is 20% lower when using IPv6 than when using IPv4<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn13" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[13]</a>.</span></li></ul><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">The role of small ISPs</span></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">Considering that small ISPs are responsible for the connectivity of millions of people across Latin America and that, as previously noted, they are largely responsible for reducing the digital divide<a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftn14" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">[14]</a>, it is very It is important for these operators to accelerate their migration/transition to IPv6, not only to remain competitive in relation to larger operators, but also to be able to guarantee their users that technologies such as the <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Metaverse</strong> will work on their devices without major technological headaches.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">In conclusion</strong>, while the true scope of the <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Metaverse</strong> remains to be seen, its deployment, implementation, and widespread adoption will be possible thanks to the IPv6 protocol, a technology that has provided a solution to the availability of IP resources, avoiding the cumbersome network address translation (NAT) process, improving response times, reducing RTT delay, and decreasing packet losses, while at the same time allowing simultaneous utilization by an enormous number of users.</span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><span style="color: white;">All of the above leads us to conclude that the <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Metaverse</strong> would not be possible without <strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">IPv6.</strong></span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">Disclaimer: This article contains a review and analysis undertaken in the context of the digital transformation within the information society and is duly supported by reliable and verified academic and/or journalistic sources, which have been delimited and published.</span></em></strong></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: -apple-system, system-ui, "system-ui", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.3; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 6px 0px; text-align: justify; vertical-align: baseline;"><em style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="color: white;">The information contained in this journalistic and opinion piece does not necessarily represent the position of Andinalink or of the organizations commercially related with Andinalink.</span></em></p><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/los-metauniversos-y-el-internet-del-futuro/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[1] Andinalink article: Metaversos y el Internet del Futuro (Metaverses and the Internet of the Future)</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/metaversos-expectativa-vs-realidad/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[2] Andinalink article: Metaversos: Expectativas VS Realidad (Metaverses: Expectations vs Reality)</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref3" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[3] In the article titled: El agotamiento del protocolo IP (The Exhaustion of the IP Protocol) we explain the characteristics of the TCP protocol. </span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref4" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[4] Standard reference document on the OSI connectivity model</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref5" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[5] The article titled: ¿Fue creada Arpanet para soportar una guerra nuclear? (Was Arpanet Created to Withstand a Nuclear War?) details the features and history of Arpanet.</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref6" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[6] LACNIC document on the Phases of IPv4 Exhaustion</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref7" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[7] Document published by the IETF about World IPv6 Launch on its sixth anniversary</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref8" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[8] Guide for the Transition to IPv6 published by the Colombian Ministry of Information and Communications Technology</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><span style="color: white;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref9" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;">[9]</a><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"> </strong><a href="http://www.mintic.govc.co/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">Guide for the Transition to IPv6 published by the Colombian Ministry of Information and Communications Technology</a></span></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><span style="color: white;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref10" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;">[10]</a><strong style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"> </strong><a href="http://www.mintic.govc.co/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank">Guide for the Transition to IPv6 published by the Colombian Ministry of Information and Communications Technology</a></span></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/metaversos-expectativa-vs-realidad/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[11] Andinalink article on Metaverses</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/el-metaverso-solo-sera-posible-sobre-ipv6/#_ftnref12" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[12] Mark in the Metaverse: Facebook’s CEO on why the social network is becoming ‘a metaverse company: The Verge Podcast</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://blog.acostasite.com/2020/07/internet-tactil-e-ipv6.html" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[13] Analysis by Alejandro Acosta (LACNIC) of the impact of IPv6 on tactile systems</span></a></h6><h6 style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: arial; font-size: 12px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 10px; vertical-align: baseline;"><a href="https://andinalink.com/las-wisp-disminuyen-la-brecha-digital/" rel="noreferrer noopener" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;" target="_blank"><span style="color: white;">[14] Andinalink article: Los WISP disminuyen la brecha digital (WISPs Reduce the Digital Divide)</span></a></h6><div><br /></div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-40107214949080691342022-02-22T10:13:00.004-08:002022-02-23T09:03:02.603-08:00IPv6 Is Not Encrypted but Respects Privacy<div class="separator" style="clear: both; text-align: left;"><iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="ZOM7twuyTWk" width="320" height="266" src="https://www.youtube.com/embed/ZOM7twuyTWk"></iframe></div>
<font size=-2>
<br/>
To know more <a href="https://kaizensk.com/pink-line-metro-route/" target="_blank">About pink line metro route</a> Visit
</font>
Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-6795956380654635962021-09-26T10:57:00.003-07:002021-09-26T11:01:44.550-07:00Solved: VBoxGuestAdditions.iso (VERR_PDM_MEDIA_LOCKED)Solved: <b>Situation: </b><div> When inserting Guest Additions CD Image in a Debian VM you are getting <i><u>VERR_PDM_MEDIA_LOCKED</u></i> </div><div><br /></div><div><b>Solution: </b></div><div> There are many solutions, like: </div><div>1) Executing </div><div> sudo apt-get upgrade </div><div> sudo apt-get install virtualbox-guest-additions-iso</div><div>2) Removing and inserting the cd from the VM configuration</div><div><br /></div><div>and a <u>third</u> one which is the one that worked with me:</div><div><br /></div><div>a) Start the VM</div><div>b) Open a terminal</div><div>c) Execute this:</div><div><i> sudo su</i></div><div><i> cd /media</i></div><div><i> mkdir cdrom</i></div><div><i> mount /dev/cdrom /media/cdrom</i></div><div><i> cd cdrom</i></div><div><i> sh VBoxLinuxAdditions.run</i></div><div><br /></div><div>Hope this helps.</div><div><br /></div><div>Alejandro,</div><div><br /></div><div><br /></div>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-32703067720129566842021-07-24T05:46:00.005-07:002021-07-24T05:46:37.079-07:00Solved: GNS3 - Private Vlan - non-operational - Cisco<p><b>Status:</b></p><p> In summary: private vlan are not working in GNS3, not even using IOU or VIRL</p><p><br /></p><p><b>Solution:</b></p><p> User IOU i86bi-linux-l2-adventerprisek9-15.2d.bin</p><p><br /></p><p><br /></p><p><b>Test:</b></p><p>IOU3#show vlan private-vlan </p><p>Primary Secondary Type Ports</p><p><br /></p><p>------- --------- ----------------- ------------------------------------------</p><p><br /></p><p>500 501 community Et0/1, Et0/2, Et1/0</p><p><br /></p><p>500 502 isolated Et0/0, Et0/3, Et1/0</p><p><br /></p><p><br /></p><p><br /></p><p>Good luck!,</p><p><br /></p><p><br /></p><p><br /></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-29484484265346123932021-06-30T17:14:00.005-07:002021-06-30T17:20:37.827-07:00Super easy script - Python3 & optimizing every table of a mysql db<p><i> <span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;">#!/usr/bin/python3.3</span></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>#The objetive of this script is to find all tables in a MYSQL DB and opmitize all of them</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>import dbconnect</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>import time</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>from datetime import datetime</i></span></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>## // VARIABLE DECLARATION ##//</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>startTime = datetime.now()</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>conn = dbconnect.dbconnect()</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>conn.autocommit(True)</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>cur = conn.cursor()</i></span></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>print ("Starting time: ", startTime)</i></span></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>SQLQUERY=("SHOW TABLES") #Find every table in the DB</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>cur.execute(SQLQUERY)</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>tables = cur.fetchall()</i></span></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>if len(tables)>0: #Prevent there are not tables in the list</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>for table in tables:<span class="Apple-converted-space"> </span>#For every table in the DB</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>try:</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>SQLQUERY="OPTIMIZE TABLE "+ table[0]<span class="Apple-converted-space"> </span>#Construct the SQL QUERY</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>print (" <span class="Apple-converted-space"> </span>Optimizing", table[0])</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>cur.execute(SQLQUERY)</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>except:</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i><span class="Apple-converted-space"> </span>pass</i></span></p><p class="p2" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><i><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br /></i></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>print ("Script execution time:",datetime.now()-startTime)</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>print ("Ending time: ", datetime.now())</i></span></p><p class="p1" style="font-family: Menlo; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><i>print ("******** ****** ")</i></span></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0tag:blogger.com,1999:blog-4430030516979407439.post-59105239298762457252021-06-25T06:44:00.007-07:002021-06-30T18:09:06.897-07:00IPv6 Deployment - LACNIC region<p>The video below shows the IPv6 deployment for the LACNIC region using a Bar Chart Race format</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/3e8Z4QfMufE" width="320" youtube-src-id="3e8Z4QfMufE"></iframe></div><br /><p><br /></p><p><span style="font-size: x-small;">Made with <a href="https://flourish.studio/">https://flourish.studio/</a></span></p>Alejandro Acostahttp://www.blogger.com/profile/17732615835343386873noreply@blogger.com0