
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Mon, 30 Mar 2026 00:10:27 GMT</lastBuildDate>
        <item>
            <title><![CDATA[RPKI and the RTR protocol]]></title>
            <link>https://blog.cloudflare.com/rpki-and-the-rtr-protocol/</link>
            <pubDate>Tue, 03 Mar 2020 14:00:00 GMT</pubDate>
            <description><![CDATA[ Today’s Internet requires stronger protection within its core routing system and as we have already said: it's high time to stop BGP route leaks and hijacks by deploying operationally-excellent RPKI! ]]></description>
            <content:encoded><![CDATA[ <p>Today’s Internet requires stronger protection within its core routing system and as we have already said: it's high time to stop BGP route leaks and hijacks by deploying operationally-excellent RPKI!</p><p>Luckily, over the last year plus a lot of good work has happened in this arena. If you’ve been following the growth of RPKI’s validation data, then you’ll know that more and more networks are signing their routes and creating ROA’s or Route Origin Authorizations. These are cryptographically-signed assertions of the validity of an announced IP block and contribute to the further securing of the global routing table that makes for a safer Internet.</p><p>The protocol that we have not written much about is RTR. The Resource Public Key Infrastructure (RPKI) to Router Protocol - or RTR Protocol for short. Today we’re fixing that.</p>
    <div>
      <h2>RPKI rewind</h2>
      <a href="#rpki-rewind">
        
      </a>
    </div>
    <p>We have written a few times about RPKI (<a href="/rpki/">here</a> and <a href="/rpki-details/">here</a>). We have written about how Cloudflare both signs its announced routes and filters its routing inbound from other networks (both transits and peers) using RPKI data. We also added our efforts in the open-source software space with the release of the <a href="/cloudflares-rpki-toolkit/">Cloudflare RPKI Toolkit</a>.</p><p>The primary part of the RPKI (Resource Public Key Infrastructure) system is a cryptographically-signed database which is read and processed by a RPKI validator. The validator works with the published ROAs to build a list of validated routes. A ROA consists of an IP address block plus an ASN (Autonomous System Number) that together define who can announce which IP block.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1yv4LlkdkAiIazOsWgJgx7/8ae09ab6c5ad8e19787c06a23f6ad908/roas.png" />
            
            </figure><p>After that step, it is then the job of that validator (or some associated software module) to communicate its list of valid routes to an Internet router. That’s where the RTR protocol (the RPKI to Router Protocol) comes in. Its job is to communicate between the validator and device in charge of allowing or rejecting routes in its table.</p>
    <div>
      <h2>RTR</h2>
      <a href="#rtr">
        
      </a>
    </div>
    <p>The IETF defines the RTR protocol in <a href="https://tools.ietf.org/html/rfc8210">RFC 8210</a>. This blog post focuses on version 1 and ignores previous versions.</p><blockquote><p><i>In order to verifiably validate the origin Autonomous Systems and Autonomous System Paths of BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC 6480) prefix origin data and router keys from a trusted cache. This document describes a protocol to deliver them.</i></p></blockquote><blockquote><p>_This docume_nt describes version 1 of the RPKI-Router protocol.</p></blockquote><p>The Internet’s routers are, to put it bluntly, not the best place to run a routing table’s cryptographic processing. The RTR protocol allows the heavy lifting to be done outside of the valuable processing modules that routers have. RTR is a very lightweight protocol with a low memory footprint. The router simply decides yay-or-nay when a route is received (called “announce” in BGP speak) and hence the router never needs to touch the complex cryptographic validation algorithms. In many cases, it also provides some isolation between the outside world, where certificates need to be fetched from across the globe and then stored, checked, processed, and databased locally. In many cases the control plane (where RTR communication happens) exists on private or protected networks. Separation is a good thing.</p><p>Cloudflare’s open-source software for RPKI validation also includes <a href="https://github.com/cloudflare/gortr">GoRTR</a>, an implementation of the RTR protocol. As mentioned, in Cloudflare’s operational model, we separate the validation (done with OctoRPKI) from the RTR process.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4qSyBXe8BbiXvhAMRGwVAd/25fe3a325ab4ae5ba4867e698fd64094/octorpki-1.png" />
            
            </figure><p>RTR protocol implementations are also provided in other RPKI validation software packages. In fact, RPKI is unable to filter routes without the final step of running RTR (or something similar - should it exist). Here’s a current list of RPKI software packages that either validate or validate and run RTR.</p><ul><li><p>Cloudflare RPKI Validator Tools and Libraries (<a href="https://github.com/cloudflare/cfrpki">OctoRPKI</a> &amp; <a href="https://github.com/cloudflare/gortr">GoRTR</a>).</p></li><li><p>Dragon Research Labs <a href="https://github.com/dragonresearch/rpki.net">RPKI Toolkit</a>.</p></li><li><p>NIC Mexico and LACNIC <a href="https://fortproject.net/">FORT project</a> including the <a href="https://fortproject.net/validator">FORT validator</a>.</p></li><li><p>NLnet Labs <a href="https://github.com/NLnetLabs/routinator">Routinator 3000</a>.</p></li><li><p>RIPE NCC RPKI Validator <a href="https://github.com/RIPE-NCC/rpki-validator">version 2</a> (deprecated).</p></li><li><p>RIPE NCC RPKI Validator <a href="https://github.com/RIPE-NCC/rpki-validator-3">version 3</a>.</p></li><li><p><a href="https://medium.com/@jobsnijders/a-proposal-for-a-new-rpki-validator-openbsd-rpki-client-1-15b74e7a3f65">rpki-client</a> by OpenBSD</p></li></ul><p>Each of these open source software packages has its own specific database model and operational methods. Because GoRTR reads a somewhat common JSON file format, you can mix and match between different validators and GoRTR’s code.</p>
    <div>
      <h2>The RTR protocol</h2>
      <a href="#the-rtr-protocol">
        
      </a>
    </div>
    <p>The protocol's core is all about synchronizing a database between a validator and a router. This is done using serial-numbers and session-ids.</p><p>It’s kicked off with a router setting up a TCP connection towards a backend RTR server followed by a series of serial-number exchanges and data records exchanges such that a cache on the validator (or RTR server) can be synced fully with a cache on the router. As mentioned, the lightweight protocol is void of all the cryptographic data that RPKI is built upon and simply deals with the validated routing list, which consists of CIDRs, ASNs and maybe a MaxLength parameter.</p><p>Here’s a simple Cisco configuration for enabling RTR on a router:</p>
            <pre><code>router bgp 65001
 rpki server 192.168.1.100
  transport tcp port 8282
 !
!</code></pre>
            <p>The configuration can take additional parameters in order to enable SSH or similar transport options. Other platforms (such as Juniper, Arista, Bird 2.0, etc) have their own specific configuration language.</p><p>The RTR protocol supports IPv4 and IPv6 routing information (as you would expect).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3VXVQ9Ox0r0Xmhw6OxXQuD/4637bc72616546c90a6acce6b241e88a/rtr-ipv4-ipv6.png" />
            
            </figure><p>Being specified as a lightweight protocol, RTR allows the data to be transferred quickly. With a session-id created by the RTR cache server plus serial-numbers exchanged between cache servers and routers, there’s the solid ability for route authentication data on the router to be kept fresh with a minimum amount of actual data being transferred. Remember, as we said above, the router has much better things to do with its control plane processor like running the BGP convergence algorithm, or SRv6, or ISIS, or any of the protocols needed to manage routing tables.</p>
    <div>
      <h2>Is RTR a weak link in the RPKI story?</h2>
      <a href="#is-rtr-a-weak-link-in-the-rpki-story">
        
      </a>
    </div>
    <p>All aspects of RPKI data processing are built around solid cryptographic principles. The five RIRs each hold a root key called a Trust Anchor (TA). Each publishes data fully signed up/down so that every piece of information can be proven to be correct and without tampering. A validators job is to do that processing and spit out (or store) a list of valid ROAs (Route Origin Authorizations) that are assertions traceable back to a known source. If you want to study this protocol, you can start with <a href="https://tools.ietf.org/html/rfc6480">RFC6480</a> and work forward through all the other relevant RFCs (Hint: It’s at least thirty more RFCs from RFC6483 thru RFC8210 and counting).</p><p>However, RTR does not carry that trust through to the Internet router. All that complexity (and hence assertions) are stripped away before a router sees anything. It is 100% up to the network operator to build a reliable and secure path between validator or RTR cache and router so that this lightweight transfer is still trusted.</p><p>RTR helps somewhat in this space. It provides more than one way to communicate between cache server and router. The RFC defines various methods to communicate.</p><ul><li><p>A plain TCP connection (which is clearly insecure). In this case the RFC states: “the cache and routers MUST be on the same trusted and controlled network.”.</p></li><li><p>A TCP connection with TCP-AO transport.</p></li><li><p>A Secure Shell version 2 (SSHv2) transport.</p></li><li><p>A TCP connection with TCP MD5 transport (which is already obsoleted by TCP-AO).</p></li><li><p>A TCP connection over IPsec transport.</p></li><li><p>Transport Layer Security (TLS) transport.</p></li></ul><p>This plethora of options is all well and good; however, there’s no useful implementation of TCP-AO out in the production world and hence (ironically) a lot of early implementations are living with plain-text communications. SSH and TLS are much better options; however, this comes with classic operational problems to solve. For example, in SSH’s case, the RFC states:</p><blockquote><p><i>It is assumed that the router and cache have exchanged keys out of band by some reasonably secured means.</i></p></blockquote><p>For a TLS connection, there’s also some worthwhile security setup mentioned in the RFC. It starts off as follows:</p><blockquote><p><i>Client routers using TLS transport MUST present client-side certificates to authenticate themselves to the cache in order to allow the cache to manage the load by rejecting connections from unauthorized routers.</i></p></blockquote><p>Then the RFC continues with enough information to secure the connection fully. If implemented correctly, then security is correctly provided between RTR cache and router such that no MITM attack can take place.</p><p>Assuming that these operational issues are handled fully then the RTR protocol is a perfect protocol for operationally implementing RPKI’s final linkage into the routers.</p>
    <div>
      <h2>Testing the RTR protocol and open-source rpki-rtr-client</h2>
      <a href="#testing-the-rtr-protocol-and-open-source-rpki-rtr-client">
        
      </a>
    </div>
    <p>A modern router software stack can be configured to run RTR against a cache. If you have a test lab (as most modern networks do); then you have all you need to see RPKI route filtering (and the dropping of invalid routes).</p><p>However, if you are without a router and want to see RTR in action, Cloudflare has just placed <a href="https://github.com/cloudflare/rpki-rtr-client">rpki-rtr-client</a> on GitHub. This software, written in Python, performs the router portion of the RTR protocol and comes with enough debug output that it can also be used to help write new RTR caches, or test existing code bases. The code was written directly from the RFC and then tested against a public RTR cache that Cloudflare operates.</p>
            <pre><code>$ pip3 install netaddr
...
$ git clone https://github.com/cloudflare/rpki-rtr-client.git
...
$ cd rpki-rtr-client
$</code></pre>
            <p>Operating the client is easy (and doubly-so if you use the Cloudflare provided cache).</p>
            <pre><code>$ ./rtr_client.py -h rtr.rpki.cloudflare.com -p 8282
...
^C
$</code></pre>
            <p>As there is no router (and hence no dropping of invalids) this code simply creates data files for later review. See the README file for more information.</p>
            <pre><code>$ ls -lt data/2020-02
total 21592
-rw-r--r--  1 martin martin  5520676 Feb 16 18:22 2020-02-17-022209.routes.00000365.json
-rw-r--r--  1 martin martin  5520676 Feb 16 18:42 2020-02-17-024242.routes.00000838.json
-rw-r--r--  1 martin martin      412 Feb 16 19:56 2020-02-17-035645.routes.00000841.json
-rw-r--r--  1 martin martin      272 Feb 16 20:16 2020-02-17-041647.routes.00000842.json
-rw-r--r--  1 martin martin      643 Feb 16 20:36 2020-02-17-043649.routes.00000843.json
$</code></pre>
            <p>As the RTR protocol communicates and increments its serial-number, the rpki-rtr-client software writes the routing information is a fresh file for later review.</p>
            <pre><code>$ for f in data/2020-02/*.json ; do echo "$f `jq -r '.routes.announce[]|.ip' &lt; $f | wc -l` `jq -r '.routes.withdraw[]|.ip' &lt; $f | wc -l`" ; done
data/2020-02/2020-02-17-022209.routes.00000365.json   128483        0
data/2020-02/2020-02-17-024242.routes.00000838.json   128483        0
data/2020-02/2020-02-17-035645.routes.00000841.json        3        6
data/2020-02/2020-02-17-041647.routes.00000842.json        5        0
data/2020-02/2020-02-17-043649.routes.00000843.json        9        5
$</code></pre>
            <p>Valid ROAs are listed as follows:</p>
            <pre><code>$ jq -r '.routes.announce[]|.ip,.asn,.maxlen' data/2020-02/*0838.json | paste - - - | sort -V | head
1.0.0.0/24      13335   null
1.1.1.0/24      13335   null
1.9.0.0/16      4788    24
1.9.12.0/24     65037   null
1.9.21.0/24     24514   null
1.9.23.0/24     65120   null
1.9.31.0/24     65077   null
1.9.65.0/24     24514   null
1.34.0.0/15     3462    24
1.36.0.0/16     4760    null
$</code></pre>
            <p>The code can also dump the raw binary protocol and then replay that data to debug the protocol.</p><p>As the code is on GitHub, any protocol developer can feel free to expand on the code.</p>
    <div>
      <h2>Future of RTR protocol</h2>
      <a href="#future-of-rtr-protocol">
        
      </a>
    </div>
    <p>The present RFC defines version 1 of the protocol and it is expected that this lightweight protocol will progress to also include additional functions, but stay lightweight. RPKI is a Route Origin Validation protocol (i.e. mapping an IP route or CIDR to an ASN). It does not provide support for validating the AS-PATH. Neither does it provide any support for IRR databases (which are non-cryptographically-signed routing definitions). Presently IRR data is the primary method used for filtering routing on the global Internet. Today that is done by building massive filter lists within a router's configuration file and not via a lightweight protocol like RTR.</p><p>At the present time there’s an IETF proposal for RTR version 2. This is <a href="https://tools.ietf.org/html/draft-ymbk-8210bis-00">draft</a>, work alongside the ASPA (Autonomous System Provider Authorization) <a href="https://tools.ietf.org/html/draft-ietf-sidrops-aspa-verification-03">draft</a> and <a href="https://tools.ietf.org/html/draft-azimov-sidrops-aspa-profile-01">draft</a> work. These draft documents from Alexander Azimov et al. define ASPA extending the RPKI data structures to handle BGP path information. The version 2 of RTR protocol should provide the required messaging in order to move ASPA data into the router.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4V6DbOYRH1yqs94D1BcV0t/ea1d01ecffbac001a59b69fac5e84971/rtr-11-aspa.png" />
            
            </figure><p>Additionally, RPKI is going to potentially further expand, at some point, from today's singular data type (the ROA object). Just like with the ASPA draft, RTR will need to advance in lock-step. Hopefully the open-source code we have published will help this effort.</p>
    <div>
      <h2>Some final thoughts on RTR and RPKI</h2>
      <a href="#some-final-thoughts-on-rtr-and-rpki">
        
      </a>
    </div>
    <p>If RPKI is to become ubiquitous, then RTR support in all BGP speaking Internet routers is going to be required. Vendors need to complete their RTR software delivery and additionally support some of the more secure transport definitions from the RFC. Additionally, should the protocol advance, then timely support for the new version will be needed.</p><p>Cloudflare continues to be committed to a secure Internet; so should you also have the same thoughts and you like what you’ve read here or elsewhere on our blog; then please take a look at our <a href="https://www.cloudflare.com/careers/">jobs page</a>. We have software and network engineering open roles in many of our offices around the world.</p> ]]></content:encoded>
            <category><![CDATA[BGP]]></category>
            <category><![CDATA[RPKI]]></category>
            <guid isPermaLink="false">3SpLO8p4N36s0MoodHabVA</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[50 Years of The Internet. Work in Progress to a Better Internet]]></title>
            <link>https://blog.cloudflare.com/50-years-of-the-internet-work-in-progress-to-a-better-internet/</link>
            <pubDate>Tue, 29 Oct 2019 07:16:00 GMT</pubDate>
            <description><![CDATA[ Over fifty years ago, the first network packet took flight from the UCLA campus to the Stanford Research Institute. This kicked-off the world of packet networking, ARPANET, and the modern Internet. ]]></description>
            <content:encoded><![CDATA[ <p>It was fifty years ago when the very first network packet took flight from the Los Angeles campus at UCLA to the Stanford Research Institute (SRI) building in Palo Alto. Those two California sites had kicked-off the world of packet networking, of the Arpanet, and of the modern Internet as we use and know it today. Yet by the time the third packet had been transmitted that evening, the receiving computer at SRI had crashed. The “L” and “O” from the word “LOGIN” had been transmitted successfully in their packets; but that “G”, wrapped in its own packet, caused the death of that nascent packet network setup. Even today, software crashes, that’s a solid fact; but this historic crash, is exactly that — historic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2TTNW1HbwIXlZyszMky7js/c82b21d6cba3324249cb711fae72a979/G69Dec.png" />
            
            </figure><p>Courtesy of <a href="http://mercury.lcs.mit.edu/~jnc/tech/arpageo.html"><b>MIT Advanced Network Architecture Group</b></a> </p><p>So much has happened since that day (October 29’th to be exact) in 1969, in fact it’s an understatement to say “so much has happened”! It’s unclear that one blog article would ever be able to capture the full history of packets from then to now. Here at Cloudflare we say we are helping build a “<b>better Internet</b>”, so it would make perfect sense for us to honor the history of the Arpanet and its successor, the Internet, by focusing on some of the other folks that have helped build a <b>better Internet</b>.</p>
    <div>
      <h3>Leonard Kleinrock, Steve Crocker, and crew - those first packets</h3>
      <a href="#leonard-kleinrock-steve-crocker-and-crew-those-first-packets">
        
      </a>
    </div>
    <p>Nothing takes away from what happened that October day. The move from a circuit-based networking mindset to a packet-based network is momentus. The phrase <a href="https://www.wired.com/1996/10/atm-3/">net-heads vs bell-heads</a> was born that day - and it’s still alive today! The basics of why the Internet became a <a href="https://www.ietf.org/blog/permissionless-innovation/">permissionless innovation</a> was instantly created the moment that first packet traversed that network fifty years ago.</p><p>Professor Leonard (Len) Kleinrock continued to work on the very-basics of packet networking. The network used on that day expanded from two nodes to four nodes (in 1969, one IMP was delivered each month from BBN to various university sites) and created a network that spanned the USA from coast to coast and then beyond.</p><p>In the 1973 map there’s a series of boxes marked TIP. These are a version of the IMP that was used to connect computer terminals along with computers (hosts) to the ARPANET. Every IMP and TIP was managed by Bolt, Beranek and Newman (BBN), based in Cambridge Mass. This is vastly different from today’s Internet where every network is operated autonomously.</p><p>By 1977 the ARPANET had grown further with links from the United States mainland to Hawaii plus links to Norway and the United Kingdom.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2n5icuY7rTANONAut47vTw/88656911232d57e82de30a2a6a92ad5d/Arpanet_logical_map-_march_1977.png" />
            
            </figure><p>ARPANET logical map 1977 via <a href="https://en.wikipedia.org/wiki/ARPANET">Wikipedia</a></p><p>Focusing back to that day in 1969, Steve Crocker (who was a graduate student at UCLA at that time) headed up the development of the NCP software. The Network Control Program (later remembered as Network Control Protocol) provided the host to host transmission control software stack. Early versions of telnet and FTP ran atop NCP.</p><p>During this journey both Len Kleinrock, Steve Crocker, and the other early packet pioneers have always been solid members of the Internet community and continue to deliver daily to a better Internet.</p><p>Steve Crocker and Bill Duvall have written a <a href="/fifty-years-ago/">guest blog</a> about that day fifty years ago. Please read it after you've finished reading this blog.</p><p>BTW: Today, on this 50th anniversary, UCLA is celebrating history via this <a href="http://newsroom.ucla.edu/releases/internet-50-symposium-ucla">symposium</a> (see also <a href="https://samueli.ucla.edu/internet50/">https://samueli.ucla.edu/internet50/</a>).</p><p>Their collective accomplishments are extensive and still relevant today.</p>
    <div>
      <h3>Vint Cerf and Bob Kahn - the creation of TCP/IP</h3>
      <a href="#vint-cerf-and-bob-kahn-the-creation-of-tcp-ip">
        
      </a>
    </div>
    <p>In 1973 Vint Cerf was asked to work on a protocol to replace the original NCP protocol. The new protocol is now known as TCP/IP. Of course, everyone had to move from NCP to TCP and that was outlined in <a href="https://tools.ietf.org/html/rfc801">RFC801</a>. At the time (1982 and 1983) there were around 200 to 250 hosts on the ARPANET, yet that transition was still a major undertaking.</p><p>Finally, on January 1st, 1983, fourteen years after that first packet flowed, the NCP protocol was retired and TCP/IP was enabled. The ARPANET got what would become the Internet’s first large scale addressing scheme (IPv4). This was better in so many ways; but in reality, this transition was just one more stepping stone towards our modern and better Internet.</p>
    <div>
      <h3>Jon Postel - The RFCs, The numbers, The legacy</h3>
      <a href="#jon-postel-the-rfcs-the-numbers-the-legacy">
        
      </a>
    </div>
    <p>Some people write code, some people write documents, some people organize documents, some people organize numbers. Jon Postel did all of these things. Jon was the first person to be in charge of allocating numbers (you know - IP addresses) back in the early 80’s. In a way it was a thankless job that no-one else wanted to do. Jon was also the keeper of the early documents (Request For Comment or RFCs) that provide us with how the packet network should operate. Everything was available so that anyone could write code and join the network. Everyone was also able to write a fresh document (or update an existing document) so that the ecosystem of the Arpanet could grow. Some of those documents are still in existence and referenced today. <a href="https://tools.ietf.org/html/rfc791">RFC791</a> defines the IP protocol and is dated 1981 - it’s still an active document in-use today! Those early days and Jon’s massive contributions have been <a href="https://www.internethalloffame.org/inductees/jon-postel">well documented and acknowledged</a>. A better Internet is impossible without these conceptual building blocks.</p><p>Jon passed away in 1998; however, his legacy and his thoughts are still in active use today. He once said within the TCP world: “<i>Be conservative in what you send, be liberal in what you accept</i>”. This is called the <a href="https://en.wikipedia.org/wiki/Robustness_principle">robustness principle</a> and it’s still key to writing good network protocol software.</p>
    <div>
      <h3>Bill Joy &amp; crew - Berkeley BSD Unix 4.2 and its TCP/IP software</h3>
      <a href="#bill-joy-crew-berkeley-bsd-unix-4-2-and-its-tcp-ip-software">
        
      </a>
    </div>
    <p>What’s the use of a protocol if you don’t have software to speak it. In the early 80’s there were many efforts to build both affordable and fast hardware, along with the software to speak to that hardware. At the University of California, Berkeley (UCB) there was a group of software developers tasked in 1980 by the Defense Advanced Research Projects Agency (DARPA) to implement the brand-new TCP/IP protocol stack on the VAX under Unix. They not-only solved that task; but they went a long way further than just that goal.</p><p>The folks at UCB (Bill Joy, Marshall Kirk McKusick, Keith Bostic, Michael Karels, and others) created an operating system called 4.2BSD (Berkeley Software Distribution) that came with TCP/IP ingrained in its core. It was based on the AT&amp;T’s Unix v6 and Unix/32V; however it had significantly deviated in many ways. The networking code, or sockets as its interface is called, became the underlying building blocks of each and every piece of networking software in the modern world of the Internet. We at Cloudflare have written numerous times about <a href="/revenge-listening-sockets/">networking kernel code</a> and it all boils down to the code that was written back at UCB. Bill Joy went on to be a founder of Sun Microsystems (which commercialized 4.2BSD and much more). Others from UCB went on to help build other companies that still are relevant to the Internet today.</p><p>Fun fact: Berkeley’s Unix (or FreeBSD, OpenBSD, NetBSD as its variants are known) is now the basis of every iPhone, iPad and Mac laptops software in existence. Android’s and Chromebooks come from a different lineage; but still hold those BSD methodologies as the fundamental basis of all their networking software.</p>
    <div>
      <h3>Al Gore - The Information Superhighway - or retold as “funding the Internet”</h3>
      <a href="#al-gore-the-information-superhighway-or-retold-as-funding-the-internet">
        
      </a>
    </div>
    <p>Do you believe that Al Gore invented the Internet? It’s actually doesn’t matter which side of this statement you want to argue; the simple fact is that the US Government funded the National Science Foundation (NSF) with the task of building an “information superhighway”. Al Gore himself said: “<i>how do we create a nationwide network of information superhighways? Obviously, the private sector is going to do it, but the Federal government can catalyze and accelerate the process</i>. '' He said that statement on September 19, 1994 and this blog post author knows that fact because I was there in the room when he said it!</p><p>The United States Federal Government help fund the growth of the Arpanet into the early version of the Internet. Without the government's efforts, we may not have been where we are today. Luckily, just a handful of years later, the NSF decided that in fact the commercial world could and should be the main building blocks for the Internet and instantly the Internet as we know it today was born. Packets that fly across commercial backbones are paid for via commercial contracts. The parts that are still funded by the government (any government) are normally only the parts used by universities, or military users.</p><p>But this author is still going to thank Al Gore for helping create a better Internet back in the early 90’s.</p>
    <div>
      <h3>Sir Tim Berners-Lee - The World Wide Web</h3>
      <a href="#sir-tim-berners-lee-the-world-wide-web">
        
      </a>
    </div>
    <p>What can I say? In 1989 Tim Berners-Lee (who was later knighted and is now Sir Tim) invented the World Wide Web and we would not have billions of people using the Internet today without him. Period!</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7lWqjPOt0fjRD8A5Mnp7s9/97fb2df2b62ecd0b161506613d662095/pasted-image-0--1--1.png" />
            
            </figure><p>via <a href="https://www.reddit.com/r/pcmasterrace/comments/b086lz/tim_bernerslee_and_vint_cerf_wearing_funny_shirts/">Reddit</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6kgtCNxHJv59vs7lcxDNes/598897c195737d200d111105ad70a681/pasted-image-0--2--1.png" />
            
            </figure><p>via <a href="https://www.reddit.com/r/pcmasterrace/comments/b086lz/tim_bernerslee_and_vint_cerf_wearing_funny_shirts/">Reddit</a></p><p>Yeah, let's clear up that subtle point. Sir Tim invented the World Wide Web (WWW) and Vint Cerf invented the Internet. When folks talk about using one or the other, it’s worth reminding then there is a difference. But I digress!</p><p>Sir Tim’s creation is what provides everyday folks with a window into information on the Internet. Before the WWW we had textual interfaces to information; but only if you knew where to look and what to type. We really need to remember every time we click on a link or press submit to buy something, that the only way that is usable is such mass and uniform form is because of Sir Tim’s creation.</p>
    <div>
      <h3>Sally Floyd - The subtle art of dropping packets</h3>
      <a href="#sally-floyd-the-subtle-art-of-dropping-packets">
        
      </a>
    </div>
    <p>Random Early Detection (RED) is an algorithm that saved the Internet back in the early 90’s. Built on earlier work by Van Jacobson, it defined a method to drop packets when a router was overloaded, or more importantly about to be overloaded. Packet network, before Van Jacobson’s or Sally Floyd’s work, would congest heavily and slow down. It seemed natural to never throw away data; but between the two inventors of RED, that all changed. Her follow-up work is described in an August 1993 <a href="https://www.icir.org/floyd/papers/early.twocolumn.pdf">paper</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1wLPHC4YYSovaP5xyQYTok/fc7da8142c0b5249844ed839cf412b99/download.png" />
            
            </figure><p>Networks have become much more complex since August 1993, yet the RED code still exists and is used in nearly every Unix or Linux kernel today. See the <a href="http://man7.org/linux/man-pages/man8/tc-red.8.html">tc-red(8)</a> command and/or the Linux kernel <a href="https://github.com/torvalds/linux/blob/master/net/sched/sch_red.c">code</a> itself.</p><p>It’s with great sorrow that Sally Floyd <a href="https://www.nytimes.com/2019/09/04/science/sally-floyd-dead.html">passed away</a> in late August. But, rest assured, her algorithm will possibly be used to help keep a better Internet flowing smoothly forever.</p>
    <div>
      <h3>Jay Adelson and Al Avery - The datacenter that interconnect networks</h3>
      <a href="#jay-adelson-and-al-avery-the-datacenter-that-interconnect-networks">
        
      </a>
    </div>
    <p>Remember that comment by Al Gore above saying that the private sector would build the Internet. Back in the late 90’s that’s exactly what happened. Telecom companies were selling capacity to fledgling ISPs. Nationwide IP backbones were being built by the likes of PSI, Netcom, UUnet, Digex, CAIS, ANS, etc. The telco’s themselves like MCI, Sprint, but interestingly not AT&amp;T at the time, were getting into providing Internet access in a big way.</p><p>In the US everything was moving very fast. By the mid-90’s there was no way to get a connection anymore from a regional research network for your shiny new ISP. Everything had all gone commercial and the NSF funded parts of the Internet were not available for commercial packets.</p><p>The NSF, in it’s goal to allow commercial networks to build the Internet, had also specified that those networks should interconnect at four locations around the country. New Jersey, Chicago, Bay Area, California, and Washington DC area.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/J2XRuQgRjwo6FJLsLFkFC/3f4fd8bb86f17c0931dd213c37d79f75/NewNSFNETArchitecture.jpg" />
            
            </figure><p>Network Access Point via <a href="https://en.wikipedia.org/wiki/Network_access_point">Wikipedia</a></p><p>The NAP’s, as they were called, were to provide interconnection between networks and to provide the research networks a way to interconnect with commercial network along with themselves. The NAPs suddenly exploded in usage, near-instantly needing to be bigger, The buildings they were housed in ran out of space or power or both! Yet those networks needed homes, interconnections needed a better structure and the old buildings that were housing the Internet’s routers just didn’t cut it anymore.</p><p>Jay and Al had a vision. New massive datacenters that could securely house the growing need for the power-hungry Internet. But that’s only a small portion of the vision. They realized that if many networks all lived under the same roof then interconnecting them could indeed build a better Internet. They installed Internet Exchanges and a standardized way of cross-connecting from one network to another. They were carrier neutral, so that everyone was treated equal. It was, what became known as the “<i>network effect</i>” and it was a success. The more networks you had under one roof, the more that other networks would want to be housed within those same roofs. The company they created was (and still is) called Equinix. It wasn’t the first company to realize this; but it sure has become one of the biggest and most successful in this arena.</p><p>Today, a vast amount of the Internet uses Equinix datacenters, it’s IXs along with similar offerings from similar companies. Jay and Al’s vision absolutely paved the way to a better internet.</p>
    <div>
      <h3>Everyone who’s a member of The Internet Society 1992-Today</h3>
      <a href="#everyone-whos-a-member-of-the-internet-society-1992-today">
        
      </a>
    </div>
    <p>It turns out that people realized that the modern Internet is not all-commercial all-the-time. There is a need for other influences to be had. Civil society, governments, academics, along with those commercial entities should also have a say in how the Internet evolves. This brings into the conversation a myriad of people that have either been members of The Internet Society (ISOC) and/or have worked directly for ISOC over it’s 27+ years. This is the organization that manages and helps fund the IETF (where protocols are discussed and standardized). ISOC plays a decisive role at The Internet Governance Forum (IGF), and fosters a clear understanding of how the Internet should be used and protected to both the general public and regulators worldwide. ISOCs involvement with Internet Exchange development (vital as the Internet grows and connects users and content) has been a game changer for many-many countries, especially in Africa.</p><p>ISOC has an interesting funding mechanism centered around the dotORG domain. You may not have realized that you were helping the Internet grow when you <a href="https://www.cloudflare.com/products/registrar/">registered</a> and paid for your <a href="https://www.cloudflare.com/application-services/products/registrar/buy-org-domains/">.org domain</a>; however, you are!</p><p>Over the life of ISOC, the Internet has moved from being the domain of engineers and scientists into something used by nearly everyone; independent of technical skill or in-fact a full understanding of it’s inner workings. ISOC’s mission is "<i>to promote the open development, evolution and use of the Internet for the benefit of all people throughout the world</i>". It has been a solid part of that growth.</p><p>Giving voice to everyone on how the Internet could grow and how it should (or should not be) regulated, is front-and-center for every person involved with ISOC globally. Defining both an inclusive Internet and a better Internet is the everyday job for those people.</p>
    <div>
      <h3>Kanchana Kanchanasut - Thailand and .TH</h3>
      <a href="#kanchana-kanchanasut-thailand-and-th">
        
      </a>
    </div>
    <p>In the 1988, amongst other things, Professor Kanchana Kanchanasut registered and operated the country Top Level Domain .TH (which is the two-letter <a href="https://www.iso.org/iso-3166-country-codes.html">ISO 3166</a> code for Thailand). This was the first country to have a TLD; something all countries take for granted today.</p><p>Also in 1988, five Thai universities got dial-up connections to the Internet because of her work. However, the real breakthrough came when Prof. Kanchanasut’s efforts led to the first leased line interconnecting Thailand to the nascent Internet of the early 90’s. That was 1991 and since then Thailand’s connectivity has exploded. It’s an amazingly well connected country. Today it boasts a plethora of mobile operators, and international undersea and cross-border cables, along with Prof. Kanchanasut’s present-day work spearheading an independent and growing Internet Exchange within Thailand.</p><p>In 2013, the "<i>Mother of the Internet in Thailand</i>" as she is affectionately called, was <a href="https://www.eurekalert.org/pub_releases/2013-07/aiot-apk070813.php">inducted</a> into the Internet Hall of Fame by the Internet Society. If you’re in Thailand, or South East Asia, then she’s the reason why you have a better Internet.</p>
    <div>
      <h3>The list continues</h3>
      <a href="#the-list-continues">
        
      </a>
    </div>
    <p>In the fifty years since that first packet there have been heros, both silent and profoundly vocal that have moved the Internet forward. There’s no was all could be named or called out; however, you will find many listed if you go look. Wander through the thousands of RFC’s, or check out the <a href="https://www.internethalloffame.org/">Internet Hall of Fame</a>. The Internet today is a better Internet because anyone can be a contributor.</p>
    <div>
      <h3>Cloudflare and the better Internet</h3>
      <a href="#cloudflare-and-the-better-internet">
        
      </a>
    </div>
    <p>Cloudflare, or in fact any part of the Internet, would not be where it is today without the groundbreaking work of these people plus many others unnamed here. This fifty year effort has moved the needle in such a way that without all of them the runaway success of the Internet could not have been possible!</p><p>Cloudflare is just over <a href="/birthday-week-2019/">nine years old</a> (that’s only 18% of this fifty year period). Gazillions and gazillions of packets have flowed since Cloudflare started providing it services and we sincerely believe we have done our part with those services to build a better Internet.. Oh, and we haven’t finished our work, far from it! We still have a long way to go in helping build a better Internet. <a href="/founders-letter/">And we’re just getting started</a>!</p><blockquote><p>A letter from Matthew Prince (<a href="https://twitter.com/eastdakota?ref_src=twsrc%5Etfw">@eastdakota</a>) and Michelle Zatlyn (<a href="https://twitter.com/zatlyn?ref_src=twsrc%5Etfw">@zatlyn</a>) <a href="https://twitter.com/hashtag/BetterInternet?src=hash&amp;ref_src=twsrc%5Etfw">#BetterInternet</a> <a href="https://twitter.com/search?q=%24NET&amp;src=ctag&amp;ref_src=twsrc%5Etfw">$NET</a> <a href="https://t.co/BHLI8MuuTS">https://t.co/BHLI8MuuTS</a> <a href="https://t.co/Jirb0bPUzJ">pic.twitter.com/Jirb0bPUzJ</a></p><p>— Cloudflare (@Cloudflare) <a href="https://twitter.com/Cloudflare/status/1172495649042046976?ref_src=twsrc%5Etfw">September 13, 2019</a></p></blockquote><p>If you’re interested in helping build a better Internet and want to join Cloudflare in our offices in San Francisco, Singapore, London, Austin, Sydney, Champaign, Munich, San Jose, New York or our new Lisbon Portugal offices, then buzz over to our <a href="https://www.cloudflare.com/careers/">jobs</a> page and come join us! #betterInternet</p> ]]></content:encoded>
            <category><![CDATA[Better Internet]]></category>
            <category><![CDATA[History]]></category>
            <guid isPermaLink="false">5JGPsv6uz47ZFRnD7EAdGF</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[The deep-dive into how Verizon and a BGP Optimizer Knocked Large Parts of the Internet Offline Monday]]></title>
            <link>https://blog.cloudflare.com/the-deep-dive-into-how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-monday/</link>
            <pubDate>Wed, 26 Jun 2019 22:22:13 GMT</pubDate>
            <description><![CDATA[ On Monday we wrote about a painful Internet wide route leak. We wrote that this should never have happened because Verizon should never have forwarded those routes to the rest of the Internet. Today we will dive into the archived routing data and analyze it. ]]></description>
            <content:encoded><![CDATA[ 
    <div>
      <h3>A recap on what happened Monday</h3>
      <a href="#a-recap-on-what-happened-monday">
        
      </a>
    </div>
    <p>On Monday we <a href="/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/">wrote</a> about a painful Internet wide route leak. We wrote that this should never have happened because Verizon should never have forwarded those routes to the rest of the Internet. That blog entry came out around 19:58 UTC, just over seven hours after the route leak finished (which will we see below was around 12:39 UTC). Today we will dive into the archived routing data and analyze it. The format of the code below is meant to use simple shell commands so that any reader can follow along and, more importantly, do their own investigations on the routing tables.</p><p>This was a very public BGP route leak event. It was both reported online via many news outlets and the event’s BGP data was reported via social media as it was happening. Andree Toonk tweeted a quick list of 2,400 ASNs that were affected.</p><blockquote><p>Quick dumps through the data, showing about 2400 ASns (networks) affected. Cloudflare being hit the hardest. Top 20 of affected ASns below <a href="https://t.co/9J7uvyasw2">pic.twitter.com/9J7uvyasw2</a></p><p>— Andree Toonk (@atoonk) <a href="https://twitter.com/atoonk/status/1143143943531454464?ref_src=twsrc%5Etfw">June 24, 2019</a></p></blockquote><p>This blog contains a large number of acronyms and those are explained at the end of the blog.</p>
    <div>
      <h3>Using RIPE NCC archived data</h3>
      <a href="#using-ripe-ncc-archived-data">
        
      </a>
    </div>
    <p>The RIPE NCC operates a very useful archive of BGP routing. It runs collectors globally and provides an API for querying the data. More can be seen at <a href="https://stat.ripe.net/">https://stat.ripe.net/</a>. In the world of BGP all routing is public (within the ability of anyone collecting data to have enough collections points). The archived data is very valuable for research and that’s what we will do in this blog. The site can create some very useful data visualizations.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7GNF7gEDv0Q7yA6eYomf00/ab625e1fc607841d1c4579030199d083/396531-bgplay-3.png" />
            
            </figure>
    <div>
      <h3>Dumping the RIPEstat data for this event</h3>
      <a href="#dumping-the-ripestat-data-for-this-event">
        
      </a>
    </div>
    <p>Presently, the RIPEstat data gets ingested around eight to twelve hours after real-time. It’s not meant to be a real-time service. The data can be queried in many ways, including a full web interface and an API. We are using the API to extract the data in a JSON format.</p><p>We are going to focus only on the Cloudflare routes that were leaked. Many other ASNs were leaked (see the tweet above); however, we want to deal with a finite data set and focus on what happened to Cloudflare’s routing. All the commands below can be run with ease on many systems. Both the scripts and the raw data file are now available on <a href="https://github.com/cloudflare/the-deep-dive-into-how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-monda">GitHub</a>. The following was done on MacBook Pro running macOS Mojave.</p><p>First we collect 24 hours of route announcements and AS-PATH data that RIPEstat sees coming from AS13335 (Cloudflare).</p>
            <pre><code>$ # Collect 24 hours of data - more than enough
$ ASN="AS13335"
$ START="2019-06-24T00:00:00"
$ END="2019-06-25T00:00:00"
$ ARGS="resource=${ASN}&amp;starttime=${START}&amp;endtime=${END}"
$ URL="https://stat.ripe.net/data/bgp-updates/data.json?${ARGS}"
$ # Fetch the data from RIPEstat
$ curl -sS "${URL}" | jq . &gt; 13335-routes.json
$ ls -l 13335-routes.json
-rw-r--r--  1 martin  staff  339363899 Jun 25 08:47 13335-routes.json
$</code></pre>
            <p>That’s 340MB of data - which seems like a lot, but it contains plenty of white space and plenty of data we just don’t need. Our second task is to reduce this raw data down to just the required data - that’s timestamps, actual routes, and AS-PATH. The third item will be very useful. Note we are using <a href="https://stedolan.github.io/jq/">jq</a>, which can be installed on macOS with the  <a href="https://brew.sh/">brew package manager</a>.</p>
            <pre><code>$ # Extract just the times, routes, and AS-PATH
$ jq -rc '.data.updates[]|.timestamp,.attrs.target_prefix,.attrs.path' &lt; 13335-routes.json | paste - - - &gt; 13335-listing-a.txt
$ wc -l 13335-listing-a.txt
691318 13335-listing-a.txt
$</code></pre>
            <p>We are down to just below seven hundred thousand routing events, however, that’s not a leak, that’s everything that includes Cloudflare’s ASN (the number 13335 above). For that we need to go back to Monday’s blog and realize it was AS396531 (Allegheny Technologies) that showed up with 701 (Verizon) in the leak. Now we reduce the data further:</p>
            <pre><code>$ # Extract the route leak 701,396531
$ # AS701 is Verizon and AS396531 is Allegheny Technologies
$ egrep '701,396531' &lt; 13335-listing-a.txt &gt; 13335-listing-b.txt
$ wc -l 13335-listing-b.txt
204568 13335-listing-b.txt
$</code></pre>
            <p>At 204 thousand data points, we are looking better. It’s still a lot of data because BGP can be very chatty if topology is changing. A route leak will cause exactly that. Now let’s see how many routes were affected:</p>
            <pre><code>$ # Extract the actual routes affected by the route leak
$ cut -f2 &lt; 13335-listing-b.txt | sort -V -u &gt; 13335-listing-c.txt
$ wc -l 13335-listing-c.txt
101 13335-listing-c.txt
$</code></pre>
            <p>It’s a much smaller number. We now have a listing of at least 101 routes that were leaked via Verizon. This may not be the full list because route collectors like RIPEstat don’t have direct feeds from Verizon, so this data is a blended view with Verizon’s path and other paths. We can see that if we look at the AS-PATH in the above files. Please note that I had a typo in this script when this blog was first published and only 20 routes showed up because the -n vs -V option was used on sort. Now the list is correct with 101 affected routes. Please see this short article from <a href="https://stackoverflow.com/questions/42526860/bash-sort-nu-results-in-unexpected-behaviour">stackoverflow</a> to see the issue.</p><p>Here’s a partial listing of affected routes.</p>
            <pre><code>$ cat 13335-listing-c.txt
8.39.214.0/24
8.42.245.0/24
8.44.58.0/24
...
104.16.80.0/21
104.17.168.0/21
104.18.32.0/21
104.19.168.0/21
104.20.64.0/21
104.22.8.0/21
104.23.128.0/21
104.24.112.0/21
104.25.144.0/21
104.26.0.0/21
104.27.160.0/21
104.28.16.0/21
104.31.0.0/21
141.101.120.0/23
162.159.224.0/21
172.68.60.0/22
172.69.116.0/22
...
$</code></pre>
            <p>This is an interesting list, as some of these routes do not originate from Cloudflare’s network, however, they show up with AS13335 (our ASN) as the originator. For example, the 104.26.0.0/21 route is not announced from our network, but we do announce 104.26.0.0/20 (which covers that route). More importantly, we have an IRR (Internet Routing Registries) route object plus an RPKI ROA for that block. Here’s the IRR object:</p>
            <pre><code>route:          104.26.0.0/20
origin:         AS13335
source:         ARIN</code></pre>
            <p>And here’s the RPKI ROA. This ROA has Max Length set to 20, so no smaller route should be accepted.</p>
            <pre><code>Prefix:       104.26.0.0/20
Max Length:   /20
ASN:          13335
Trust Anchor: ARIN
Validity:     Thu, 02 Aug 2018 04:00:00 GMT - Sat, 31 Jul 2027 04:00:00 GMT
Emitted:      Thu, 02 Aug 2018 21:45:37 GMT
Name:         535ad55d-dd30-40f9-8434-c17fc413aa99
Key:          4a75b5de16143adbeaa987d6d91e0519106d086e
Parent Key:   a6e7a6b44019cf4e388766d940677599d0c492dc
Path:         rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-...</code></pre>
            <p>The Max Length field in an ROA says what the minimum size of an acceptable announcement is. The fact that this is a /20 route with a /20 Max Length says that a /21 (or /22 or /23 or /24) within this IP space isn’t allowed. Looking further at the route list above we get the following listing:</p>
            <pre><code>Route Seen            Cloudflare IRR &amp; ROA    ROA Max Length
104.16.80.0/21    -&gt;  104.16.80.0/20          /20
104.17.168.0/21   -&gt;  104.17.160.0/20         /20
104.18.32.0/21    -&gt;  104.18.32.0/20          /20
104.19.168.0/21   -&gt;  104.19.160.0/20         /20
104.20.64.0/21    -&gt;  104.20.64.0/20          /20
104.22.8.0/21     -&gt;  104.22.0.0/20           /20
104.23.128.0/21   -&gt;  104.23.128.0/20         /20
104.24.112.0/21   -&gt;  104.24.112.0/20         /20
104.25.144.0/21   -&gt;  104.25.144.0/20         /20
104.26.0.0/21     -&gt;  104.26.0.0/20           /20
104.27.160.0/21   -&gt;  104.27.160.0/20         /20
104.28.16.0/21    -&gt;  104.28.16.0/20          /20
104.31.0.0/21     -&gt;  104.31.0.0/20           /20</code></pre>
            <p>So how did all these /21’s show up? That’s where we dive into the world of BGP route optimization systems and their propensity to synthesize routes that should not exist. If those routes leak (and it’s very clear after this week that they can), all hell breaks loose. That can be compounded when not one, but two ISPs allow invalid routes to be propagated outside their autonomous network. We will explore the AS-PATH further down this blog.</p><p>More than 20 years ago, <a href="https://tools.ietf.org/html/rfc1997">RFC1997</a> added the concept of <i>communities</i> to BGP. Communities are a way of tagging or grouping route advertisements. Communities are often used to label routes so that specific handling policies can be applied. RFC1997 includes a small number of universal <i>well-known communities</i>. One of these is the NO_EXPORT community, which has the following specification:</p>
            <pre><code>    All routes received carrying a communities attribute
    containing this value MUST NOT be advertised outside a BGP
    confederation boundary (a stand-alone autonomous system that
    is not part of a confederation should be considered a
    confederation itself).</code></pre>
            <p>The use of the NO_EXPORT community is very common within BGP enabled networks and is a community tag that would have helped alleviate this route leak immensely.</p><p>How BGP route optimization systems work (or don’t work in this case) can be a subject for a whole other blog entry.</p>
    <div>
      <h3>Timing of the route leak</h3>
      <a href="#timing-of-the-route-leak">
        
      </a>
    </div>
    <p>As we saved away the timestamps in the JSON file and in the text files, we can confirm the time for every route in the route leak by looking at the first and the last timestamp of a route in the data. We saved data from 00:00:00 UTC until 00:00:00 the next day, so we know we have covered the period of the route leak. We write a script that checks the first and last entry for every route and report the information sorted by start time:</p>
            <pre><code>$ # Extract the timing of the route leak
$ while read cidr
do
  echo $cidr
  fgrep $cidr &lt; 13335-listing-b.txt | head -1 | cut -f1
  fgrep $cidr &lt; 13335-listing-b.txt | tail -1 | cut -f1
done &lt; 13335-listing-c.txt |\
paste - - - | sort -k2,3 | column -t | sed -e 's/2019-06-24T//g'
...
104.25.144.0/21   10:34:25  12:38:54
104.22.8.0/21     10:34:27  12:29:39
104.20.64.0/21    10:34:27  12:30:00
104.23.128.0/21   10:34:27  12:30:34
141.101.120.0/23  10:34:27  12:30:39
162.159.224.0/21  10:34:27  12:30:39
104.18.32.0/21    10:34:29  12:30:34
104.24.112.0/21   10:34:29  12:30:34
104.27.160.0/21   10:34:29  12:30:34
104.28.16.0/21    10:34:29  12:30:34
104.31.0.0/21     10:34:29  12:30:34
8.39.214.0/24     10:34:31  12:19:24
104.26.0.0/21     10:34:36  12:29:53
172.68.60.0/22    10:34:38  12:19:24
172.69.116.0/22   10:34:38  12:19:24
8.44.58.0/24      10:34:38  12:19:24
8.42.245.0/24     11:52:49  11:53:19
104.17.168.0/21   12:00:13  12:29:34
104.16.80.0/21    12:00:13  12:30:00
104.19.168.0/21   12:09:39  12:29:34
...
$</code></pre>
            <p>Now we know the times. The route leak started at 10:34:25 UTC (just before lunchtime London time) on 2019-06-24 and ended at 12:38:54 UTC. That’s a hair over two hours. Here’s that same time data in a graphical form showing the near-instant start of the event and the duration of each route leaked:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2mbErnzz2kF06AyBXG5cOH/9dea0b05a69f217477af11332e15c8d5/cloudflare-via-verizon-leak-timing-1.png" />
            
            </figure><p>We can also go back to RIPEstat and look at the activity graph for Cloudflare’s AS13335 network:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/18U3ID2tpK3ThuEKMvAgcF/3f26bc9f080c7a1be0c509e91bffdd02/cloudflare-route-activity.png" />
            
            </figure><p>Clearly between 10:30 UTC and 12:40 UTC there’s a lot of route activity - far more than normal.</p><p>Note that as we mentioned above, RIPEstat doesn’t get a full view of Verizon’s network routing and hence some of the propagated routes won’t show up.</p>
    <div>
      <h3>Drilling down on the AS-PATH part of the data</h3>
      <a href="#drilling-down-on-the-as-path-part-of-the-data">
        
      </a>
    </div>
    <p>Having the routes is useful, but now we want to look at the paths of these leaked routes to see which ASNs are involved. We knew the offending ASNs during the route leak on Monday. Now we want to dig deeper using the archived data. This allows us to see the extent and reach of this route leak.</p>
            <pre><code>$ # Extract the AS-PATH of the route leak
$ # Use the list of routes to extract the full AS-PATH
$ # Merge the results together to show an amalgamation of paths.
$ # We know (luckily) the last few ASNs in the AS-PATH are consistent
$ cut -f3 &lt; 13335-listing-b.txt | tr -d '[\[\]]' |\
awk '{
  n=split($0, a, ",");
  printf "%50s\n",
    a[n-5] "_" a[n-4] "_" a[n-3] "_" a[n-2] "_" a[n-1] "_" a[n];
}' | sort -u
   174_701_396531_33154_3356_13335
   2497_701_396531_33154_174_13335
   577_701_396531_33154_3356_13335
   6939_701_396531_33154_174_13335
  1239_701_396531_33154_3356_13335
  1273_701_396531_33154_3356_13335
  1280_701_396531_33154_3356_13335
  2497_701_396531_33154_3356_13335
  2516_701_396531_33154_3356_13335
  3320_701_396531_33154_3356_13335
  3491_701_396531_33154_3356_13335
  4134_701_396531_33154_3356_13335
  4637_701_396531_33154_3356_13335
  6453_701_396531_33154_3356_13335
  6461_701_396531_33154_3356_13335
  6762_701_396531_33154_3356_13335
  6830_701_396531_33154_3356_13335
  6939_701_396531_33154_3356_13335
  7738_701_396531_33154_3356_13335
 12956_701_396531_33154_3356_13335
 17639_701_396531_33154_3356_13335
 23148_701_396531_33154_3356_13335
$</code></pre>
            <p>This script clearly shows the AS-PATH of the leaked routes. It’s very consistent. Reading from the back of the line to the front, we have 13335 (Cloudflare), 3356 or 174 (Level3/CenturyLink or Cogent - both tier 1 transit providers for Cloudflare). So far, so good. Then we have 33154 (DQE Communications) and 396531 (Allegheny Technologies Inc) which is still technically not a leak, but trending that way. The reason why we can state this is still technically not a leak is because we don’t know the relationship between those two ASs. It’s possible they have a mutual transit agreement between them. That’s up to them.</p><p>Back to the AS-PATH’s. Still reading leftwards, we see 701 (Verizon), which is very very bad and clear evidence of a leak. It’s a leak for two reasons. First, this matches the path when a transit is leaking a non-customer route from a customer. This Verizon customer does not have 13335 (Cloudflare) listed as a customer. Second, the route contains within its path a tier 1 ASN. This is the point where a route leak should have been absolutely squashed by filtering on the customer BGP session. Beyond this point there be dragons.</p><p>And dragons there be! Everything above is about how Verizon filtered (or didn’t filter) its customer. What follows the 701 (i.e the number to the left of it) is the peers or customers of Verizon that have accepted these leaked routes. They are mainly other tier 1 networks of Verizon in this list: 174 (Cogent), 1239 (Sprint), 1273 (Vodafone), 3320 (DTAG), 3491 (PCCW), 6461 (Zayo), 6762 (Telecom Italia), etc.</p><p>What’s missing from that list are three networks worthy of mentioning - 1299 (Telia), 2914 (NTT), and 7018 (AT&amp;T). All three implement a very simple AS-PATH filter which saved the day for their network. They do not allow one tier 1 ISP to send them a route which has another tier 1 further down the path. That’s because when that happens, it’s officially a leak as each tier 1 is fully connected to all other tier 1’s (which is part of the definition of a tier 1 network). The topology of the Internet’s global BGP routing tables simply states that if you see another tier 1 in the path, then it’s a bad route and it should be filtered away.</p><p>Additionally we know that 7018 (AT&amp;T) operates a network which drops RPKI invalids. Because Cloudflare routes are <a href="/rpki-details/">RPKI signed</a>, this also means that AT&amp;T would have dropped these routes when it receives them from Verizon. This shows a clear win for RPKI (and for AT&amp;T when you see their bandwidth graph below)!</p><blockquote><p>BREAKING - AT&amp;T / AS 7018 is now rejecting RPKI Invalid BGP announcements they receive from their peering partners. This is big news for routing security! If AT&amp;T can do it - you can do it! :-) <a href="https://t.co/FhjmWByagO">https://t.co/FhjmWByagO</a></p><p>— Job Snijders (@JobSnijders) <a href="https://twitter.com/JobSnijders/status/1094976832267522048?ref_src=twsrc%5Etfw">February 11, 2019</a></p></blockquote><p>That all said, keep in mind we are still talking about routes that Cloudflare didn't announce. They all came from the route optimizer.</p>
    <div>
      <h3>What should 701 Verizon network accept from their customer 396531?</h3>
      <a href="#what-should-701-verizon-network-accept-from-their-customer-396531">
        
      </a>
    </div>
    <p>This is a great question to ask. Normally we would look at the IRR (Internet Routing Registries) to see what policy an ASN wants for it’s routes.</p>
            <pre><code>$ whois -h whois.radb.net AS396531 ; the Verizon customer
%  No entries found for the selected source(s).
$ whois -h whois.radb.net AS33154  ; the downstream of that customer
%  No entries found for the selected source(s).
$ </code></pre>
            <p>That’s enough to say that we should not be seeing this ASN anywhere on the Internet, however, we should go further into checking this. As we know the ASN of the network, we can search for any routes that are listed for that ASN. We find one:</p>
            <pre><code>$ whois -h whois.radb.net ' -i origin AS396531' | egrep '^route|^origin|^mnt-by|^source'
route:          192.92.159.0/24
origin:         AS396531
mnt-by:         MNT-DCNSL
source:         ARIN
$</code></pre>
            <p>More importantly, now we have a maintainer (the owner of the routing registry entries). We can see what else is there for that network and we are specifically looking for this:</p>
            <pre><code>$ whois -h whois.radb.net ' -i mnt-by -T as-set MNT-DCNSL' | egrep '^as-set|^members|^mnt-by|^source'
as-set:         AS-DQECUST
members:        AS4130, AS5050, AS11199, AS11360, AS12017, AS14088, AS14162,
                AS14740, AS15327, AS16821, AS18891, AS19749, AS20326,
                AS21764, AS26059, AS26257, AS26461, AS27223, AS30168,
                AS32634, AS33039, AS33154, AS33345, AS33358, AS33504,
                AS33726, AS40549, AS40794, AS54552, AS54559, AS54822,
                AS393456, AS395440, AS396531, AS15204, AS54119, AS62984,
                AS13659, AS54934, AS18572, AS397284
mnt-by:         MNT-DCNSL
source:         ARIN
$</code></pre>
            <p>This object is important. It lists all the downstream ASNs that this network is expected to announce to the world. It does not contain Cloudflare’s ASN (or any of the leaked ASNs). Clearly this as-set was not used for any BGP filtering.</p><p>Just for completeness the same exercise can be done for the other ASN (the downstream of the customer of Verizon). In this case, we just searched for the maintainer object (as there are plenty of route and route6 objects listed).</p>
            <pre><code>$ whois -h whois.radb.net ' -i origin AS33154' | egrep '^mnt-by' | sort -u
mnt-by:         MNT-DCNSL
mnt-by:     MAINT-AS3257
mnt-by:     MAINT-AS5050
$</code></pre>
            <p>None of these maintainers are directly related to 33154 (DQE Communications). They have been created by other parties and hence they become a dead-end in that search.</p><p>It’s worth doing a secondary search to see if any as-set object exists with 33154 or 396531 included. We turned to the most excellent <a href="http://irrexplorer.nlnog.net/">IRR Explorer</a> website run by NLNOG. It provides deep insight into the routing registry data. We did a simple search for 33154 using <a href="http://irrexplorer.nlnog.net/search/33154">http://irrexplorer.nlnog.net/search/33154</a> and we found these as-set objects.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4EYvX8VV7OrqAymwSwjOdl/6bc48a047ddf172b54b9bef773e3f488/as-set-containing-as33154.png" />
            
            </figure><p>It’s interesting to see this ASN listed in other as-set’s but none are important or related to Monday’s route-leak. Next we looked at 396531</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2pbNB1leCKaQmKCWAwBs2W/71b235476f02b24adc80457c9cfefaad/as-set-containing-as396531.png" />
            
            </figure><p>This shows that there’s nowhere else we need to check. AS-DQECUST is the as-set macro that controls (or should control) filtering for any transit provider of their network.</p><p>The summary of all the investigation is a solid statement that no Cloudflare routes or ASNs are listed anywhere within the routing registry data for the customer of Verizon. As there were 2,300 ASNs listed in the tweet above, we can conclusively state no filtering was in place and hence this route leak went on its way unabated.</p>
    <div>
      <h3>IPv6? Where is the IPv6 route leak?</h3>
      <a href="#ipv6-where-is-the-ipv6-route-leak">
        
      </a>
    </div>
    <p>In what could be considered the only plus from Monday’s route leak, we can confirm that there was no route leak within IPv6 space. Why?</p><p>It turns out that 396531 (Allegheny Technologies Inc) is a network without IPv6 enabled. Normally you would hear Cloudflare chastise anyone that’s yet to enable IPv6, however, in this case we are quite happy that one of the two protocol families survived. IPv6 was stable during this route leak, which now can be called an IPv4-only route leak.</p><p>Yet that’s not really the whole story. Let’s look at the percentage of traffic Cloudflare sends Verizon that’s IPv6 (vs IPv4). Normally the IPv4/IPv6 percentage holds steady.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/63WaYJLNsBep3X6n5GRQ1n/502818a8188dae908bd1e6bf1dbd60bc/verizon-ipv6-percentage.png" />
            
            </figure><p>This uptick in IPv6 traffic could be the direct result of Happy Eyeballs on mobile handsets picking a working IPv6 path into Cloudflare vs a non-working IPv4 path. Happy Eyeballs is meant to protect against IPv6 failure, however in this case it’s doing a wonderful job in protecting from an IPv4 failure. Yet we have to be careful with this graph because after further thought and investigation the percentage only increased because IPv4 reduces. Sometimes graphs can be misinterpreted, yet Happy Eyeballs still did a good job even as end users were being affected.</p><p>Happy Eyeballs, described in <a href="https://tools.ietf.org/html/rfc8305">RFC8305</a>, is a mechanism where a client (lets say a mobile device) tries to connect to a website both on IPv4 and IPv6 simultaneously. IPv6 is sometimes given a head-start. The theory is that, should a failure exist on one of the paths (sadly IPv6 is the norm), then IPv4 will save the day. Monday was a day of opposites for Verizon.</p><p>In fact, enabling IPv6 for mobile users is the one area where we can praise the Verizon network this week (or at least the Verizon mobile network), unlike the residential Verizon networks where IPv6 is almost non-existent.</p>
    <div>
      <h3>Using bandwidth graphs to confirm routing leaks and stability.</h3>
      <a href="#using-bandwidth-graphs-to-confirm-routing-leaks-and-stability">
        
      </a>
    </div>
    <p>As we have already stated,Verizon had impacted their own users/customers. Let’s start with their bandwidth graph:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/LsOAJ3xaEuv3Mg63gxn6V/035da03ad0895a84ada37b676cb890b1/verizon-bandwidth.png" />
            
            </figure><p>The red line is 24 June 2019 (00:00 UTC to 00:00 UTC the next day). The gray lines are previous days for comparison. This graph includes both Verizon fixed-line services like FiOS along with mobile.</p><p>The AT&amp;T graph is quite different.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3ez4gwmnd5nOXv7Mdj3M63/1dbad80ddfe70d34e79c9922cfa6d04e/att-bandwidth.png" />
            
            </figure><p>There’s no perturbation. This, along with some direct confirmation, shows that 7018 (AT&amp;T) was not affected. This is an important point.</p><p>Going back and looking at a third tier 1 network, we can see 6762 (Telecom Italia) affected by this route leak and yet Cloudflare has a direct interconnect with them.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/yOXzYla3Wj5fmY8I6I4dy/2e507a5c4919877b6b4964aba80bd6ab/telecomitalia-bandwidth.png" />
            
            </figure><p>We will be asking Telecom Italia to improve their route filtering as we now have this data.</p>
    <div>
      <h3>Future work that could have helped on Monday</h3>
      <a href="#future-work-that-could-have-helped-on-monday">
        
      </a>
    </div>
    <p>The IETF is doing work in the area of BGP path protection within the <a href="https://datatracker.ietf.org/wg/sidrops/about/">Secure Inter-Domain Routing Operations Working Group</a> (sidrops) area. The charter of this IETF group is:</p><blockquote><p>The SIDR Operations Working Group (sidrops) develops guidelines for the operation of SIDR-aware networks, and provides operational guidance on how to deploy and operate SIDR technologies in existing and new networks.</p></blockquote><p>One new effort from this group should be called out to show how important the issue of route leaks like today’s event is. The draft document from Alexander Azimov et al named <a href="https://tools.ietf.org/html/draft-ietf-sidrops-aspa-profile-00">draft-ietf-sidrops-aspa-profile</a> (ASPA stands for Autonomous System Provider Authorization) extends the RPKI data structures to handle BGP path information. This in ongoing work and Cloudflare and other companies are clearly interested in seeing it progress further.</p><p>However, as we said in Monday’s blog and something we should reiterate again and again: Cloudflare encourages all network operators to <a href="/rpki-details/">deploy RPKI</a> now!</p>
    <div>
      <h3>Acronyms used in the blog</h3>
      <a href="#acronyms-used-in-the-blog">
        
      </a>
    </div>
    <ul><li><p>API - Application Programming Interface</p></li><li><p>AS-PATH - The list of ASNs that a routes has traversed so far</p></li><li><p>ASN - Autonomous System Number - A unique number assigned for each network on the Internet</p></li><li><p>BGP - Border Gateway Protocol (version 4) - the core routing protocol for the Internet</p></li><li><p>IETF - Internet Engineering Task Force - an open standards organization</p></li><li><p>IPv4 - Internet Protocol version 4</p></li><li><p>IPv6 - Internet Protocol version 6</p></li><li><p>IRR - Internet Routing Registries - a database of Internet route objects</p></li><li><p>ISP - Internet Service Provider</p></li><li><p>JSON - JavaScript Object Notation - a lightweight data-interchange format</p></li><li><p>RFC - Request For Comment - published by the IETF</p></li><li><p>RIPE NCC - Réseaux IP Européens Network Coordination Centre - a regional Internet registry</p></li><li><p>ROA - Route Origin Authorization - a cryptographically signed attestation of a BGP route announcement</p></li><li><p>RPKI - Resource Public Key Infrastructure - a public key infrastructure framework for routing information</p></li><li><p>Tier 1 - A network that has no default route and peers with all other tier 1's</p></li><li><p>UTC - Coordinated Universal Time - a time standard for clocks and time</p></li><li><p>"there be dragons" - a mistype, as it was meant to be "<a href="https://en.wikipedia.org/wiki/Here_be_dragons">here be dragons</a>" which means dangerous or unexplored territories</p></li></ul> ]]></content:encoded>
            <category><![CDATA[RPKI]]></category>
            <category><![CDATA[BGP]]></category>
            <category><![CDATA[Deep Dive]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <guid isPermaLink="false">25XdE8zDvkBZIxNTDBXbOC</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Sad start to the new year in the Democratic Republic of the Congo]]></title>
            <link>https://blog.cloudflare.com/sad-start-to-the-new-year-in-the-congo/</link>
            <pubDate>Wed, 02 Jan 2019 22:11:56 GMT</pubDate>
            <description><![CDATA[ The calendar has barely flipped to 2019 and already we’re seeing Internet disruptions. Today, Cloudflare can quantitatively confirm that Internet access has been shut down in the Democratic Republic of the Congo, information already reported by many press organisations. ]]></description>
            <content:encoded><![CDATA[ <p>The calendar has barely flipped to 2019 and already we’re seeing Internet disruptions.</p><p>Today, Cloudflare can quantitatively confirm that Internet access has been shut down in the Democratic Republic of the Congo, information already reported by <a href="https://www.cnn.com/2019/01/02/africa/congo-internet-shutdown-china-intl/index.html">many</a> <a href="https://www.bbc.co.uk/news/world-africa-46721168">press</a> <a href="https://www.france24.com/en/20190101-western-powers-urge-dr-congo-restore-internet-access">organisations</a>. This shutdown occurred as the presidential election was taking place on December the 30th, and continues as the results are published.</p><p>Sadly, this act is far from unprecedented. We have published many posts about events like this in the past, including a different post about roughly three days of <a href="/large-drop-in-traffic-from-the-democratic-republic-of-congo/">Internet disruption</a> in the Democratic Republic of the Congo less than a year ago. A painfully familiar shape can be seen on our network monitoring platform, showing that the traffic in the country is barely reaching a quarter of its typical level:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3ROF5FinXvyDAEQ0CCTrUc/5d608c6314bbc0cab32ec43cce860ff4/Typical-Level.png" />
            
            </figure><p>Note that the graph is based on UTC and Democratic Republic of the Congo’s capital Kinshasa has the timezone of GMT+1.</p><p>The drop in bandwidth started just before midday on 31 December 2018 (around 10:30 UTC, 11:30 local time in Kinshasa). This can be clearly seen if we overlay each 24 hour day over each other:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5V9UIffoCO9JV0X4SEIXjR/365d59c11333a0c2c41bbf4a428bf6a3/Day-over-Day-Comparison-1.png" />
            
            </figure><p>The red line is 31 December, the gray lines the previous eight days. Looking at today’s overlay bandwidth graph, we can confirm this has continued and is an abnormal behaviour.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1vAgqhbZ75w6isa2OnOaHE/8c2da6b8d0158f51110eb473416ed654/Day-over-Day-Comparison-2.png" />
            
            </figure><p>Other actors on the Internet have also been <a href="https://twitter.com/InternetIntel/status/1080465195024158720">reporting similar figures</a>. We hope that we can soon inform our readers the country is normally connected to the Internet again.</p><p>While 85 million people live in the country, very few people have internet access (6.21% according to Wikipedia’s List of countries by number of Internet users <a href="https://en.wikipedia.org/wiki/List_of_countries_by_number_of_Internet_users">page</a>). The country is also very large (2,344,858 square kms or 905,355 sq miles) and the 11th largest country in the world - around a quarter the landmass of the USA and nearly twice as big as South Africa. These facts play together and because of limited fiber deployment within the country; there are many places that still use very limited and expensive satellite Internet access. We can see in our bandwidth kgraphs that traffic to these satellite connected locations was not affected by this shutdown:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1f6bAOHtQemHykbRToyiSR/2a15a12baa54ed1f34c152406662c690/Bandwidth-Levels.png" />
            
            </figure><p>Note that the bandwidth levels are very low and represent a very small percentage of the overall traffic into Democratic Republic of the Congo.</p><p>Comparing that graph to the one from the largest mobile provider in the country; we clearly see the distinct cutoff.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6eOOOybv6MBPfdeavWoEni/ca929b7122c2427e24eec87cbd75b70c/Distinct-Cutoff.png" />
            
            </figure>
    <div>
      <h3>Repeated across the world</h3>
      <a href="#repeated-across-the-world">
        
      </a>
    </div>
    <p>15 months ago we wrote about an outage in <a href="/the-story-of-two-outages/">Togo</a>, were we noted that this adds Togo to the list of countries like <a href="/syrian-internet-access-appears-partially-rees/">Syria</a> (twice), Iraq, Turkey, Libya, Tunisia, etc that have restricted or revoked Internet access. We have also written about unrest in <a href="/unrest-in-gabon-leads-to-internet-shutdown/">Gabon</a> (in 2016) and <a href="/will-autocrats-ever-learn-the-internet-blackout-in-gambia/">The Gambia</a> (also in 2016). In Gambia’s case, the incumbent president lost the election! In fact we wrote “<i>Rather than clamping down on the opposition by blocking the access to the Internet, it is quite possible that the blackout in Gambia may have infuriated voters and increased the vote against the president.</i>”. Let’s see what happens in Democratic Republic of the Congo.</p><p>We'll update this blog once we see changes to these traffic levels. The Congolese government <a href="https://www.reuters.com/article/us-congo-election/congo-cuts-internet-for-second-day-to-avert-chaos-before-poll-results-idUSKCN1OV1GL">says</a> they will restore internet access after election results are published on January 6th. That’s four days from now.</p>
    <div>
      <h3>Cloudflare’s Project Galileo and Athenian Project</h3>
      <a href="#cloudflares-project-galileo-and-athenian-project">
        
      </a>
    </div>
    <p>At Cloudflare, we’ll continue to do our part to try to ensure that vulnerable voices have access to the Internet. Cloudflare’s <a href="https://www.cloudflare.com/galileo/">Project Galileo</a> and <a href="https://www.cloudflare.com/athenian/">Athenian Project</a> help protect at risk websites -- such as those run by human rights organizations, journalists, and government entities reporting election results -- from being knocked offline by cyber attack.</p><p>We also support the principles for a <a href="https://contractfortheweb.org/">Contract for the Web</a>, which urge governments to commit to keeping all of the Internet available, all of the time, and Access Now’s <a href="https://www.accessnow.org/keepiton/">#KeepitOn campaign</a>. We can only hope that these efforts will yield more positive results in 2019.</p> ]]></content:encoded>
            <category><![CDATA[Freedom of Speech]]></category>
            <category><![CDATA[Africa]]></category>
            <category><![CDATA[Politics]]></category>
            <guid isPermaLink="false">55qoSYSRwORGCKUobTgWdm</guid>
            <dc:creator>Etienne Labaume</dc:creator>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Lagos, Nigeria - Cloudflare’s 155th city]]></title>
            <link>https://blog.cloudflare.com/lagos/</link>
            <pubDate>Tue, 30 Oct 2018 07:00:00 GMT</pubDate>
            <description><![CDATA[ At just shy of 200 million, Nigeria is the most populous country in Africa (Ethiopia is second and Egypt is third). That’s a lot of people to communicate with the world - and communicate they all do! ]]></description>
            <content:encoded><![CDATA[ <p>At just shy of 200 million, Nigeria is the most populous country in Africa (Ethiopia is second and Egypt is third). That’s a lot of people to communicate with the world - and communicate they all do!</p><p>According to a published report earlier this year, 84% of the Nigerian population own a mobile device (193 million population and 162 million mobile subscriptions). Again, that’s #1 for any country in Africa. But why so connected? Maybe because Nigeria (and Lagos specifically) is always on the move!</p><p>Lagos, as those that know the city say, never sleeps, it’s filled with color from the food to fashion to even the diverse people going about their business. The vibrancy of the city is like a hard slap to the face, no matter what you have been told, your first time here will still knock you out. In Lagos, anything is possible, from the sadness of poverty to the clearly visible upper class, the city sucks you in like a surfers dream wave. Visitor come into Lagos and leave feeling like they’ve been through a unique experience. The traffic is mind blowing and the same goes for the work pace.</p><p>Lagos, a city always on the move!</p>
    <div>
      <h3>Cloudflare lands in Lagos, Nigeria</h3>
      <a href="#cloudflare-lands-in-lagos-nigeria">
        
      </a>
    </div>
    <p>Cloudflare has now entered Lagos with a secure facility colocated and interconnected to one of the primary undersea cable operators along with a full connection to both the local Internet Exchange (<a href="https://ixp.net.ng/">IXPN</a>) and the newly announced <a href="https://www.wafix.net/">WAF-IX Lagos</a> exchange. With every data center we add, local users not only connect faster and more reliably to sites proxied by Cloudflare, but our global DDoS mitigation becomes stronger and more robust.  Instead of serving Nigeria from Europe (London, Lisbon, etc), content can be delivered locally from Lagos.</p><p>If you follow the African telecom industry; then you'll know that West Africa’s economy is dominated by Nigeria; but few outside the region know that Nigeria is dominated by the phrase mobile-first. A country thats mobile-first means that mobile has eclipsed all other connectivity methods. Other countries with this status include Indonesia, China, Kenya, Philippines, Myanmar and many others. Being mobile-first doesn’t mean smartphone dominance (Myanmar qualifies because of the availability of $20 phones); but it does mean dependence on mobile infrastructure. In fact SMS or texting is still the number one common communications method for most of these places. But smartphone penetration in Nigeria is growing fast and sitting at around 21 million according to the recent report referenced above.</p>
    <div>
      <h3>Nollywood</h3>
      <a href="#nollywood">
        
      </a>
    </div>
    <p>La la land has Hollywood, India has Bollywood and Nigeria has Nollywood. Yes, movie-making in Nigeria is a booming business with <a href="https://www.pbs.org/newshour/arts/inside-nollywood-the-booming-film-industry-that-makes-1500-movies-a-year">1,500 or more movies produced a year</a> and yet Nollywood is only twenty-five years old. That’s still less movies than Bollywood; but that doesn’t worry any of the Nigerian statisticians because they restate the revenue number based on a per-capita basis and that makes Nollywood bigger than Bollywood. But we digress.</p><p>The one thing that all that mobile penetration can provide is a distribution method for Nollywood’s movies and while this has nothing to do with Cloudflare’s commitment to Nigeria; it’s interesting to see that Netflix (the movie and tv streaming giant) has just <a href="https://southerntimesafrica.com/site/news/netflix-invests-us8b-in-nollywood">invested heavily</a> into Nollywood!</p><p>Even Hollywood has tapped Nigerians for major roles. David Oyelowo, the British actor of Nigerian descent, played Martin Luther King Jr. in the 2014 movie Selma. Danny Glover (of Lethal Weapon and The Color Purple fame) is of Nigerian descent and has acted in a Nigeria based movie called 93 Days. Then there’s Forest Whitaker (Last King of Scotland), John Boyega (Finn in Star Wars: The Force Awakens and The Last Jedi), and geek-favorite Richard Ayoade (Maurice Moss in the IT Crowd); all of Nigerian descent.</p>
    <div>
      <h3>Connectivity across and around Africa</h3>
      <a href="#connectivity-across-and-around-africa">
        
      </a>
    </div>
    <p>Lagos is well served by <a href="https://www.submarinecablemap.com/">undersea cables</a> that reach northwards to Europe and south towards South Africa. In fact every African west coast undersea cable lands in Lagos Nigeria.</p><ul><li><p>ACE (Africa Coast to Europe))</p></li><li><p>Glo-1 (and Glo-2)</p></li><li><p>MainOne</p></li><li><p>NCSCS (Nigeria Cameroon Submarine Cable System)</p></li><li><p>SAT-3/WASC</p></li><li><p>WACS (West African Cable System)</p></li></ul><p>While most of these cables are pumping bandwidth from North to South (i.e. Europe to Africa); some are now being used for inter-country connectivity at the IP backbone level. WACS has Nigeria, Angola, and South Africa connected. MainOne has Ghana and Nigeria connected, etc.</p>
    <div>
      <h3>Nigerian websites that instantly win</h3>
      <a href="#nigerian-websites-that-instantly-win">
        
      </a>
    </div>
    <p>When we look at the Alexa-top-50 list for Nigerian users we find that 18 of those sites are Cloudflare customers. That means an instant win for both consumers (those smartphone users) and the website or app operators. BTW: of the remaining 32 sites, 15 are owned by massive content players (search, online video, social media, operating systems or phones) and of the remaining 17 sites (Wikipedia being one of highest visited on that list); they are mainly non-CDN’ed websites that are hosted outside the country (Europe or USA).</p>
    <div>
      <h3>After Nigeria</h3>
      <a href="#after-nigeria">
        
      </a>
    </div>
    <p>Cloudflare in West Africa far from finished! We still have places like Senegal, Côte d’Ivoire, and Ghana to do (just to name a few). As always, stay tuned as Cloudflare grows the network! Oh, and by now any regular reader of our blogs will know that we are growing, both in network deployment and in fantastic staff. So pop over to the <a href="https://www.cloudflare.com/careers/departments/">jobs</a> page and see what interests you!</p> ]]></content:encoded>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Africa]]></category>
            <category><![CDATA[Network]]></category>
            <category><![CDATA[Cloudflare Network]]></category>
            <guid isPermaLink="false">716D7VPVzZALxfv5AHiY4J</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Ulaanbaatar, Mongolia]]></title>
            <link>https://blog.cloudflare.com/mongolia/</link>
            <pubDate>Tue, 02 Oct 2018 23:59:00 GMT</pubDate>
            <description><![CDATA[ Whenever you get into a conversation about exotic travel or ponder visiting the four corners of the globe, inevitably you end up discussing Ulaanbaatar in Mongolia.  ]]></description>
            <content:encoded><![CDATA[ <p>Whenever you get into a conversation about exotic travel or ponder visiting the four corners of the globe, inevitably you end up discussing Ulaanbaatar in Mongolia. Travelers want to experience the rich culture and vivid blue skies of Mongolia; a feature which gives the country its nickname of <a href="https://www.travelweekly.com/Asia-Travel/Mongolia-Pristine-beauty-in-the-Land-of-the-Eternal-Blue-Sky">“Land of the Eternal Blue Sky”</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6RKZanh8oMvKp79ISqf2dm/ddc68cb7236d18605143b38389647e41/Ulaanbaatar-Mongolia.png" />
            
            </figure><p>Ulaanbaatar (or Ulan Bator; but shortened to UB by many) is the capital of Mongolia and located nearly a mile above sea level just outside the <a href="https://en.wikipedia.org/wiki/Gobi_Desert">Gobi Desert</a> - a desert that spans a good percentage of Central Asia’s Mongolia. (The rest of the Gobi Desert extends into China). The country is nestled squarely between Russia to the north and China to the south. It’s also home to some of the richest and ancient customs and festivals around. It’s those festivals that successfully draw in the tourists who want to experience something quite unique. Luckily, even with all the tourists, Mongolia has managed to keep its local customs; both in the cities and within its nomadic tribes.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1mbsB7HMMapvzAaAk7Aajk/6eab4afd146f4b23d0e689c4e625659e/Mongolia_1996_CIA_map.jpg" />
            
            </figure><p><i>via </i><a href="https://commons.wikimedia.org/wiki/File:Mongolia_1996_CIA_map.jpg"><i>Wikipedia</i></a></p><p>History also has drawn explorers and conquerors to and from the region; but more on that later.</p>
    <div>
      <h3>Cloudflare is also drawn into Mongolia</h3>
      <a href="#cloudflare-is-also-drawn-into-mongolia">
        
      </a>
    </div>
    <p>Any avid reader of our blogs will know that we frequently explain that the expansion of our network provides customers and end-users with both more capacity and less latency. That goal (covering 95% of the Internet population with 10 milliseconds or less of latency) means that Mongolia was seriously on our radar.</p><p>Now we have a data center in Ulaanbaatar, Mongolia, latency into that blue sky country is significantly reduced. Prior to this data center going live we were shipping bits into the country via Hong Kong, a whopping 1,800 miles away (or 50 milliseconds if we talk latency). That's far! We know this new data center is a win-win for both mobile and broadband customers within the country and for Cloudflare customers as a whole.</p>
    <div>
      <h3>Just how did we get Cloudflare into Mongolia?</h3>
      <a href="#just-how-did-we-get-cloudflare-into-mongolia">
        
      </a>
    </div>
    <p>Ulaanbaatar is city number 154 on Cloudflare’s network. Our expansion into cities like Ulaanbaatar doesn’t just happen instantly; it takes many teams within Cloudflare in order to successfully deploy in a place like this.</p><p>However, before deploying, we need to negotiate a place to deploy into. A new city requires a secure data center for us to build into. A bandwidth partner is also required. We need to get access to the local networks and to also acquire cache-fill bandwidth in order to operate our CDN. Once we have those items negotiated, we can focus on the next steps. Any site we build has to match our own stringent security standards (we are <a href="https://www.cloudflare.com/learning/privacy/what-is-pci-dss-compliance/">PCI/DSS compliant</a> – hence all our data centers need to also be PCI/DSS compliant). That’s a paperwork process, which surprisingly takes longer than most other stages (because we care about security).</p><p>Then logistics kicks in. A BOM (Bill of Materials) is created. Serial numbers recorded. Power plugs chosen. Fun fact: Cloudflare data centers are nearly all identical, except the power cables. While we live in a world where fiber optic cables and connectors are universal, independent of location (or speed in some cases), the power connections we receive for our data centers vary widely as we expand around the globe.</p><p>The actual shipping is possibly the more interesting part of the logistics process. Getting a few pallets of hardware strapped up and ready to move is only a small part of the process. Paperwork again becomes the all-powerful issue. Each country has its own customs and import process, each shipping company has its own twist on how to process things, and each shipment needs to be coordinated with a receiving party. Our logistics team pulls off this miracle for new sites, upgrades for existing sites, replacement parts for existing sites, all while sometimes calmly listening to mundane on-hold music from around the globe.</p><p>Then our hardware arrives! Seriously, this is a biggie and those around the office that follow these new city builds are always celebrating on those days. The logistics team has done their part; now it’s time for the deployment team to kick-in.</p><p>The deployment team’s main goal is to get hardware racked-and-stacked in a site where (in most cases) we are contracting out the remote-hands to do this work. Sometimes we send people to a site to build it; however, that’s not a scalable process and hence we use local remote-hands contractors to do this heavy-lifting and cabling. There are diagrams, there are instructions, there are color-coded cables (‘cause the right cable needs to go into the right socket). Depending on the size of the build; it can be just a days work or up-to a weeks worth of work. We vary our data center sizes based on the capacity needs for each city. Once racked-and-stacked there is one more job to get done within the Infrastructure team. They get the initial private network connection enabled and secured. That single connection provides us with the ability to continue to the next step. Actually setting up the network and servers at the new site.</p><p>Every new data center site is shipped with zero configuration loaded into network hardware and compute servers. They all ship raw with no Cloudflare knowledge embedded into them. This is by design. The network teams first goal is to configure the routers and switches, which is mainly a bootstrap process in order for the hardware to phone-home and securely request its full configuration setup. We have previously written about our extensive <a href="https://www.cloudflare.com/network-automation-at-scale-ebook/">network automation</a> methods. In the case of a new site, it’s not that different. Once the site can communicate back home, it’s clear to the software base that its configuration is out of date. Updates are pushed to the site and <a href="https://www.cloudflare.com/network-services/solutions/network-monitoring-tools/">network monitoring</a> is automatically enabled.</p><p>But let's not paint a perfect rosy picture. There can still be networking issues. Just one is worth pointing-out as it’s a recurring issue and one that plagues the industry globally. Fiber optic cables can sometimes be plugged in with their receive and transmit sides reversed. It’s a 50:50 chance of being right. Sometimes it just amazes us that we can’t get this fixed; but … a quick swap of the two connectors and we are back in business!</p>
    <div>
      <h3>Those explorers and conquerors</h3>
      <a href="#those-explorers-and-conquerors">
        
      </a>
    </div>
    <p>No conversation about Mongolia would be valid unless we discuss Genghis Khan. Back in the 13th century, Genghis Khan founded the Mongol Empire. He unified the tribes of what is now Mongolia (and beyond). He established the largest land empire in history and is well described both online and via various TV documentaries (The History Channel doesn’t skimp when it comes to <a href="https://www.history.com/topics/china/genghis-khan">covering him</a>). Genghis Khan was a name of honor that he didn’t receive till 1206. Before that he was just named “Temujin”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2cvUCdM6c6ZEFTMwfsXzZc/5d751c72f8d759499f619c88273239ba/35367135654_1251f9fbf8_o.jpg" />
            
            </figure><p><a href="https://www.flickr.com/photos/120420083@N05/35367135654/"><i>Photo</i></a><i> by </i><a href="https://www.flickr.com/photos/120420083@N05/"><i>SarahTz</i></a><i> CC by/</i><a href="https://creativecommons.org/licenses/by/2.0/"><i>2.0</i></a></p><p>Around 30 miles outside Ulaanbaatar is the equestrian statue of Genghis Khan on the banks of the Tuul River in <a href="https://en.wikipedia.org/wiki/Gorkhi-Terelj_National_Park">Gorkhi Terelj National Park</a>. Pictured above, this statue is 131 feet tall and built from 250 tons of steel.</p>
    <div>
      <h3>Meanwhile back in Mongolia in present time</h3>
      <a href="#meanwhile-back-in-mongolia-in-present-time">
        
      </a>
    </div>
    <p>We get to announce our new city (and country) data center during a very special time. The Golden Eagle Festival takes place during the first weekend of October (that’s October 6 and 7 this year). It’s a test of a hunter’s speed and agility. In this case the hunters (nomads of Mongolia) are practicing an ancient technique of using Golden Eagles to hunt. It takes place in the far west of the country in the Altai Mountains.</p><p>The most famous festival in Mongolia is the Naadam Festival in mid-July. So many things going on within that festival, all of which is a celebration of Mongolian and nomadic culture. The festival celebrates the local sports (wrestling, archery, and horse racing) along with plenty of arts. The opening ceremony can be quite elaborate.</p><p>When discussing Mongolia, travelers nearly always want to make sure their itineraries overlap at least one of these festivals!</p>
    <div>
      <h3>Cloudflare continues to expand globally</h3>
      <a href="#cloudflare-continues-to-expand-globally">
        
      </a>
    </div>
    <p>Last week was Cloudflare’s Birthday Week and we announced many services and products. Rest-assured that everything we announced is instantly available in Ulaanbaatar, Mongolia (data center city 154) just like it’s available everywhere else on Cloudflare’s network.</p><p>One final trivia point regarding our Ulaanbaatar data center. With Ulaanbaatar live, we now have datacenters covering the letters <b>A</b> thru <b>Z</b> (from Amsterdam to Zurich), i.e. with <b>U</b> added, every letter is now fully represented.</p><p>If you like what you’ve read and want to come join our infrastructure team, our logistics team, our network team, our SRE team, or any of the teams that help with these global expansions, then we would love to see your resume or CV. Look <a href="https://www.cloudflare.com/careers">here</a> for job opening.</p> ]]></content:encoded>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Asia]]></category>
            <category><![CDATA[Network]]></category>
            <category><![CDATA[Growth]]></category>
            <category><![CDATA[Cloudflare Network]]></category>
            <guid isPermaLink="false">ek9tlQYUye5NB9Iy0IvoI</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[RPKI - The required cryptographic upgrade to BGP routing]]></title>
            <link>https://blog.cloudflare.com/rpki/</link>
            <pubDate>Wed, 19 Sep 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[ We have talked about the BGP Internet routing protocol before. We have talked about how we build a more resilient network and how we can see outages at a country-level via BGP. We have even talked about the network community that is vital to the operation of the global Internet. ]]></description>
            <content:encoded><![CDATA[ <p>We have talked about the BGP Internet routing protocol before. We have talked about how we build a <a href="/the-internet-is-hostile-building-a-more-resilient-network/">more resilient network</a> and how we can see <a href="/the-story-of-two-outages/">outages at a country-level</a> via BGP. We have even talked about the <a href="/nanog-the-art-of-running-a-network-and-discussing-common-operational-issues/">network community</a> that is vital to the operation of the global Internet.</p><p>Today we need to talk about why existing operational practices for BGP routing and filtering have to significantly improve in order to finally stop route leaks and hijacks; which are sadly pervasive in today’s Internet routing world. In fact, the subtle art of running a BGP network and the various tools (both online and within your a networks subsystems) that are vital to making the Internet routing world a safe and reliable place to operate need to improve.</p><p>Internet routing and BGP and security along with its operational expertise must improve globally.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5yV7wTNobUDVMktWwaoTPB/d4647c0bb9adfc12da795f208428eadf/33673974352_3085c34cb5_o.jpg" />
            
            </figure><p><a href="https://www.flickr.com/photos/30478819@N08/33673974352/">photo</a> by <a href="https://www.flickr.com/photos/30478819@N08/">Marco Verch</a> by/2.0</p><p>Nothing specific triggered today’s writing except the fact that Cloudflare has decided that it's high-time we took a leadership role to finally secure BGP routing. We believe that each and every network needs to change its mindset towards BGP security both on a day-by-day and a long-term basis.</p><p>It's time to stop BGP route leaks and hijacks by deploying operationally-excellent RPKI!</p>
    <div>
      <h3>Cloudflare commits to RPKI</h3>
      <a href="#cloudflare-commits-to-rpki">
        
      </a>
    </div>
    <p>Resource Public Key Infrastructure (RPKI) is a cryptographic method of signing records that associate a BGP route announcement with the correct originating AS number. RPKI is defined in <a href="https://tools.ietf.org/html/rfc6480">RFC6480</a> (An Infrastructure to Support Secure Internet Routing). Cloudflare commits to RPKI.</p><p>Because any route can be originated and announced by any random network, independent of its rights to announce that route, there needs to be an out-of-band method to help BGP manage which network can announce which route. That system exists today. It's part of the <a href="http://www.irr.net/">IRR</a> (Internet Routing Registry) system. Many registries exist, some run by networks, some by RIRs (Regional Internet Registries) and the grand daddy of IRRs, Merit's <a href="https://radb.net">RADB</a> service. This service provides a collective method to allow one network to filter another networks routes.</p><p>This works somewhat. An invalid announcement is normally squashed near-instantly as the route crosses an ASN boundary because one network is meant to filter the other network (based on rules created from the IRR database). This of course doesn’t happen perfectly - in fact, far from it. Route leaks or route hijacks happen more often than they should. A fact that is well documented. Here’s the highlights:</p><ul><li><p>1997 - AS7007 mistakenly (re)announces 72,000+ routes (becomes the poster-child for route filtering).</p></li><li><p>2008 - ISP in Pakistan <a href="https://www.wired.com/2008/02/pakistans-accid/">accidentally</a> announces IP routes for YouTube by blackholing the video service internally to their network.</p></li><li><p>2017 - Russian ISP leaks 36 prefixes for payments services owned by Mastercard, Visa, and major banks.</p></li><li><p>2018 - BGP hijack of Amazon DNS to <a href="/bgp-leaks-and-crypto-currencies/">steal crypto currency</a>.</p></li></ul><p>That’s just a partial list! Each route leak or hijack exposes a lack of route filtering by the network that peers or transits the offending network.</p><p>RPKI comes into the picture because the existing IRR system lacks any form of cryptographic signing for its data. In fact, today the IRR databases contain plenty of invalid data (both stale data and typo’ed data). There's very little control over the creation of invalid data.</p><p>Implementing RPKI is just the first step in better BGP route security because RPKI only secures the route origin; it doesn't secure the path. (Sadly the same is true for IRR data). When we want to secure the path; we are going to need something else; but that comes later.</p>
    <div>
      <h3>The RPKI TL;DR</h3>
      <a href="#the-rpki-tl-dr">
        
      </a>
    </div>
    <p>BGP routing isn’t secure. Its main hope, RPKI, uses a certificate system that’s akin to secure web browsing (or at-least its early days). While secure web browsing has moved on and is far more secure and is somewhat the <a href="/today-chrome-takes-another-step-forward-in-addressing-the-design-flaw-that-is-an-unencrypted-web/">default</a> these days, the state of BGP route validation has not moved forward. To secure BGP routing, all networks would need to be embrace RPKI (and more). Cloudflare proposes to plot a course to improve BGP routing-security globally by setting an example and implementing best practices, installing operationally excellent software and promoting its RPKI effort worldwide. RPKI is one of our focuses in 2018 and beyond!</p>
    <div>
      <h3>The simplest introduction to BGP possible</h3>
      <a href="#the-simplest-introduction-to-bgp-possible">
        
      </a>
    </div>
    <p>BGP isn’t simple. BGP on the global Internet doubly-so. This fact should not deter either the casual reader or the seasoned network engineer. What is important is to place the limit around what is worth knowing about and discarding all the minor items that make up the very complex world of BGP networking. In fact, to operate a BGP enabled network connected to a telco or ISP isn’t that complicated. It turns out that in the world of BGP, security is an afterthought.</p><p>Lets begin.</p><p>I’m going to pick a hypothetical example. The configuration of a single university within a country that operates an NREN (National Research &amp; Education Network) for all it's universities. This is not uncommon. The university in this case is connected via a single telecommunications link and (using BGP terminology) has a single upstream. The NREN provides all the connectivity to the local and global Internet for its countries universities, along with connectivity to other NRENs in other countries.</p><p>We start with some basics. BGP is about numbers. First off is a unique number called the Autonomous System Number or ASN. This number comes from a range of numbers that are managed by the RIRs (Regional Internet Registries). For example, Cloudflare has the AS number 13335 allocated for its network. ASNs were just 16-bit numbers, but are now 32-bit numbers (because the internet grew to the point of running out of the 65,536 or 2^16 initial allocation). For our university, we will use 65099 as our example ASN. This is from the reserved block of ASNs and used here for documentation reasons only.</p><p>The second number is the IP addresses allocated to the university. Most reader are familiar with IP addresses; however in the BGP world we use IP blocks called CIDRs (Classless Inter-Domain Routing). This is a range of IP addresses that are sequential and bonded on binary boundaries. Within Cloudflare, we have quite a few IP blocks allocated by the RIRs. For our example, we will assume the university has two blocks allocated. 10.0.0.0/8 and 2001:db8::/32 . Both these are private or documentation addresses and later-on you’ll see these show up again in a different manner when we talk about filtering.</p><p>This is enough for us to get this university ready to connect to the NREN. Or maybe not.</p>
    <div>
      <h3>Ready to connect</h3>
      <a href="#ready-to-connect">
        
      </a>
    </div>
    <p>Hold on a second - there’s paperwork to fill-in. Not actual paper; but close enough. While the internet is build on the concept of <a href="https://www.ietf.org/blog/2013/05/permissionless-innovation/">permissionless innovation</a>, there’s still good practices that still need to be adhered too.</p><p>Before you can announce a route via your BGP speaking router, you need to setup either an IRR route object or an RPKI ROA (or both).</p>
    <div>
      <h3>Internet Routing Registries</h3>
      <a href="#internet-routing-registries">
        
      </a>
    </div>
    <p>The IRR (Internet Routing Registries) is used to record a route that will be announced on the Internet and associate it with the ASN that will announce it. In this example we will use the private or documentation ranges of 10.0.0.0/8 and 2001:db8::/32 along with ASN 65099. The simplest IRR routing record looks like this:</p>
            <pre><code>route:	10.0.0.0/8
origin:	AS65099</code></pre>
            <p>In reality, we need a lot more to make it fully-functional and we need a place to upload this routing record. You could use your RIR to host your IRR data, or you could use global services like <a href="https://radb.net/">RADB</a> or <a href="https://altdb.net/">ALTDB</a>. You can also use your transit provider in some cases. Once you have an account setup on one of these services, you will be ready to upload these routing record (how you upload it is very specific to the IRR chosen).</p>
            <pre><code>route:	10.0.0.0/8
descr:	University of Blogging
descr:	Anytown, USA
origin:	AS65099
mnt-by:	MNT-UNIVERSITY
notify:	person@example.com
changed:	person@example.com 20180101
source:	RADB</code></pre>
            <p>That last line reflects where you store your IRR routing record.</p>
    <div>
      <h3>IRR for your ASN</h3>
      <a href="#irr-for-your-asn">
        
      </a>
    </div>
    <p>Just like your IP network blocks, its also good to place a record for your ASN in the IRR. When you networking gets more complex, this will be solidly needed. It doesn’t hurt to add it now.</p>
            <pre><code>aut-num:    AS65099
as-name:    UNIVERSITY-OF-BLOGGING-AS
descr:      University of Blogging
descr:      Anytown, USA
mnt-by:     MNT-UNIVERSITY
notify:     person@example.com
changed:    person@example.com 20180101
source:     RADB</code></pre>
            <p>You can check for their existence using the classic command line whois command (or the RADB website).</p><p>One last item needs to be completed; but not by you.</p><p>Your ASN needs to be placed in the as-set of your upstream ISP (or service provider). The entry in there will provide the rest of the global Internet an indication that your ASN is allowed to be routed via your upstream (the NREN in this case). If all goes well, something like this will show up in the IRRs.</p>
            <pre><code>as-set:     AS-NREN
descr:      NREN of country XX
members:    ...
members:    AS65099
members:    ...
mnt-by:     MNT-NREN
notify:     person@example.edu
changed:    person@example.edu 20180101
source:     RADB</code></pre>
            <p>The members area of this as-set provides a list of ASNs that are announced by the upstream (the ASN). We have not defined the upstreams ASN yet, so lets pretend they are ASN 65001 (this ASN is still from the documentation range).</p>
    <div>
      <h3>Getting the university online</h3>
      <a href="#getting-the-university-online">
        
      </a>
    </div>
    <p>BGP (like everything in networking) needs some configuration setup. This configuration would exist on a network router at the edge of your network, or whatever device is being used to connect the local network to the upstream (the NREN). We are using a very simple router config here to show the minimum configuration needed. Your configuration language could be different.</p>
            <pre><code>router bgp 65099
neighbor 192.168.0.2 remote-as 65001
neighbor 192.168.0.2 prefix-list as65001-listen in
neighbor 192.168.0.2 route-map as65001-listen in</code></pre>
            <p>This is a very trivial example (it’s missing a complete filter configuration that’s normally required). The key point is that the router doesn’t contain any code or language regarding the IRR entries shown above. That’s because the IRR entries are out-of-band. They exist outside of the BGP protocol. In other words, it takes more than just configuring a BGP session in order to actually connect to the global Internet.</p><p>The key filtering comes into play on the upstream (the NREN in this example). It’s the job of that network to confirm everything heard from its customer.</p>
    <div>
      <h3>RPKI vs IRR - why is it so important?</h3>
      <a href="#rpki-vs-irr-why-is-it-so-important">
        
      </a>
    </div>
    <p>Two global databases are being discussed today. IRR &amp; RPKI. While IRR is clearly in use today; it’s not the primary focus herein. However, it’s the de-facto bridging option for route filtering today.</p><p>As stated above, Internet Routing Registries (IRRs) have a very loose security model. This has been known for a long time. Records exist within IRRs that are both clearly wrong and/or are clearly missing. There’s no cryptographic signing of records. There are multiple suppliers of IRR data; some better than others. IRR still has some proponents that want to clean up its operational data (including the author of this blog). Efforts like <a href="https://github.com/irrdnet/irrd4/">IRRD4</a> (by Job Snijders @ NTT) could help clean-up IRR usage. IRR is not the main focus herein.</p><p>Resource Public Key Infrastructure (RPKI) is a cryptographic method of signing records that associate a route with an originating AS number. Presently the five RIRs (AFRINIC, APNIC, ARIN, LACNIC &amp; RIPE) provide a method for members to take an IP/ASN pair and sign a ROA (Route Origin Authorization) record. The ROA record is what we need to focus on.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5vo7EQoqPim1Fq7Qio5Wqg/81e59bf19ec648db71369a272374a69b/roas_3x-2.png" />
            
            </figure><p>Once a route is signed; it can propagate to anyone that wants to use the data to filter routing or monitor this data as ROAs are public. A ROA is a digitally signed object that makes use of <a href="https://tools.ietf.org/html/rfc3852">RFC3852</a> Cryptographic Message Syntax (CMS) as a standard encapsulation format. In fact ROAs are X.509 certificates as defined in <a href="https://tools.ietf.org/html/rfc5280">RFC5280</a> (Internet X.509 Public Key Infrastructure Certificate) and <a href="https://tools.ietf.org/html/rfc3779">RFC3779</a> (X.509 Extensions for IP Addresses and AS Identifiers).</p><p>As the ROA is a digitally signed object, it provides a means of verifying that an IP address block holder has authorized an AS (Autonomous System) to originate routes to that one or more prefixes within the address block. The RPKI system provides an attestation method for BGP routing.</p><blockquote><p>define attestation: ... the action of bearing witness ... something which bears witness, confirms or authenticates</p></blockquote><p>The existence of routing information (an IP block plus the matching ASN) within a valid certificate (i.e. something that can be validated against the RIRs authoritative data cryptographically) is the missing part of the BGP security system and something that the IRR system can't provide. You really know who should be doing what with a BGP route.</p>
    <div>
      <h3>Where are the certificates if they are not in the BGP protocol?</h3>
      <a href="#where-are-the-certificates-if-they-are-not-in-the-bgp-protocol">
        
      </a>
    </div>
    <p>Good question. As we said above, the routing databases are outside of the BGP protocol. Both IRR and RPKI use a third-party entities to hold the database information. The difference is that with RPKI the same entity that allocated or assigned a numeric resource (like an IP address or ASN) also holds the CA (Certificate Authority) used to validate the ROAs record.</p><p>In the RPKI world; CAs are called TAs, or Trust Anchors. However, if you are familiar with the web security model, then you are familiar with what a TA is.</p>
    <div>
      <h3>Who could operate a TA?</h3>
      <a href="#who-could-operate-a-ta">
        
      </a>
    </div>
    <p>Today the five RIRs are the TAs for RPKI. This makes sense. Only the RIRs know who is an owner of IP space (and ASs). The present day RPKI systems operate in conjunction with existing RIR login credentials. Once you can login to a portal and control your IP allocations and ASN allocations; then you can also create, edit, modify, and delete RPKI data in the forms of ROAs. This is the basis of how RPKI separates itself from the IRR. You can only sign your own resources. You can’t just randomly create data. If you lose your RIR allocation, then you lose the RPKI data.From a policy point of view, there are some interesting issues that become apparent pretty quickly. First off, an ISP with an allocation needs to keep its RIR membership up to date (i.e. pay its dues). Second, it needs to be aware that the RIR and the ISP could be legal entities based in different countries and hence international law plays a role in any dispute between the ISP and RIR or in fact any third party that gets involved in an IP address dispute. This has been a concern within the RIPE (Europe, the Middle East and parts of Central Asia) region as RIPE is based in The Netherlands. Similarly, ARIN (North America and parts of the Caribbean) is a US entity.</p>
    <div>
      <h3>Which RIR for which IP address?</h3>
      <a href="#which-rir-for-which-ip-address">
        
      </a>
    </div>
    <p>Presently, because of the large amount of IP address transfers occurring between some RIR regions, the RIRs changed their TA root certificates so that each RIR includes every available IP address (0.0.0.0/0 &amp; ::/0) and every available AS number (0-4,294,967,295). IP numeric space and ASN numeric space are well defined as follows:</p>
            <pre><code>IPv4: 0.0.0.0 - 255.255.255.255
IPv6: 0000:0000:0000:0000:0000:0000:0000:0000 - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
ASN:  1 - 4,294,967,295 (AS 0 is unused)</code></pre>
            <p><a href="https://www.iana.org/">IANA</a> (Internet Assigned Numbers Authority) holds the master list for this space and divvies it up the five RIRs as allocations or assignments. The IPv4 and IPv6 assignments can be seen <a href="https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml">here</a> and  <a href="https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml">here</a>. ASNs can be found <a href="https://www.iana.org/assignments/as-numbers/as-numbers.xhtml">here</a>. For example, here’s an abbreviated overview into how IPv6 space is allocated to various RIRs.</p>
            <pre><code>Prefix         Designation    Date          WHOIS         Status
2001:0000::/23 IANA        1999-07-01 whois.iana.org     ALLOCATED
2001:0200::/23 APNIC       1999-07-01 whois.apnic.net    ALLOCATED
2001:0400::/23 ARIN        1999-07-01 whois.arin.net     ALLOCATED
...
2001:1200::/23 LACNIC      2002-11-01 whois.lacnic.net   ALLOCATED
...
2001:4200::/23 AFRINIC     2004-06-01 whois.afrinic.net  ALLOCATED
...
2002:0000::/16 6to4        2001-02-01                    ALLOCATED
...
2a00:0000::/12 RIPE NCC    2006-10-03 whois.ripe.net     ALLOCATED
2c00:0000::/12 AFRINIC     2006-10-03 whois.afrinic.net  ALLOCATED
...</code></pre>
            <p>As stated above; each RIR holds a root key (a TA, or Trust Anchor) that provides them the ability to create signed records below their root. Below that TA there is a certificate that covers the exact space allocated or assigned to the specific RIR. This allows the TA to be somewhat static (or stable) and the RIR to update the underlying records as-needed.</p>
    <div>
      <h3>Who is implementing RPKI today?</h3>
      <a href="#who-is-implementing-rpki-today">
        
      </a>
    </div>
    <p>Sadly not enough people or networks. While each RIR is supporting RPKI for its members; the toolset for successfully operating a network with RPKI enabled route filtering is still very limited.</p><p>It turns out that IXP (Internet Exchange Points) have started to realize that filtering using RPKI is a valid option for their route-servers.</p><p>In addition, a handful of networks are also participating in both signing IP routes and verifying IP routes via RPKI. This isn’t quite enough to secure the global Internet yet.</p><p>Then there's the Dutch!</p><p>In early September, the NLNOG technical meeting featured a non-trivial number of RPKI-related talks. It seems that local Dutch operators and software developers are taking RPKI seriously and it’s possible that The Netherlands may contain some of the more forward-thinking RPKI networks around. Read more <a href="https://nlnog.net/nlnog-day-2018/">here</a>.</p>
    <div>
      <h3>Mutually Agreed Norms for Routing Security (MANRS)</h3>
      <a href="#mutually-agreed-norms-for-routing-security-manrs">
        
      </a>
    </div>
    <p>The Internet Society (Cloudflare is a strong supporter of this organization) has pushed an initiative called <a href="https://www.internetsociety.org/issues/manrs/">MANRS</a> (Mutually Agreed Norms for Routing Security) in order to convince the network operator community to implement routing security. It focuses on Filtering, Anti-spoofing, Coordination, and Global Validation. The Internet Society is doing a good job in educating networks on the importance of better routing security. While they do educate networks about various aspects of running a healthy BGP environment; it's not an effort that creates any of the required new technologies. MANRS simply promotes best-practices, which is a good start and something Cloudflare can collaborate on. That all said, we think it’s simply too-polite an effort as it doesn’t have enough teeth to quickly change how networks behave.</p><p>Cloudflare also wants to move the BGP community further along the RPKI path. Our operational efforts can, and should, coexist with The Internet Society’s MANRS initiative; however, we're focusing on operationally viable solutions that help move the global network community much further along.</p>
    <div>
      <h3>How is RPKI deployed in a real operational network</h3>
      <a href="#how-is-rpki-deployed-in-a-real-operational-network">
        
      </a>
    </div>
    <p>As network operators don’t want to run an cryptographic software on the control plane of a router (or even have RPKI data anywhere near the control plane), the normal deployment is to pair routers with a server.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5GM31tWc9wRdNWY9U631S7/5486760d30910a9288112ddc77720bb6/RPKI-diagram-_3x-3.png" />
            
            </figure><p>The server runs all the RPKI code (including the crypto processing of the TA, the certificate tree, and the ROAs). When the router sees a new route, the router send a simple message across a communications path (that includes the origin AS plus the IP route). The server, running a validator, responds with a yes/no answer that drives the filtering of that BGP route. This lightweight protocol is defined in <a href="https://tools.ietf.org/html/rfc6810">RFC6810</a>, then updated later to include some BGPsec support in <a href="https://tools.ietf.org/html/rfc8210">RFC8210</a> (The Resource Public Key Infrastructure (RPKI) to Router Protocol). This lightweight protocol is nicknamed “RTR”.</p><p>Present implementations include <a href="https://github.com/rtrlib/rtrlib">https://github.com/rtrlib/rtrlib</a> (in ‘C’) and NIST’s package <a href="https://www.nist.gov/services-resources/software/bgp-secure-routing-extension-bgp-srx-prototype">https://www.nist.gov/services-resources/software/bgp-secure-routing-extension-bgp-srx-prototype</a> which is based on quagga; hence not usable in production.</p><p>Operationally, neither are fully usable within production environments.The RIPE validator <a href="https://github.com/RIPE-NCC/rpki-validator-3">https://github.com/RIPE-NCC/rpki-validator-3</a> (written in Java) can produce filter sets similar to IRR tools and seems to be the most prevalent tool for the limited number of RPKI setups found in networks today. There's recently a software release from NLnet Labs research group which is Rust-based. Their RPKI validator is called <a href="https://github.com/NLnetLabs/routinator">Routinator 3000</a>.</p><p>The industry still needs some more operationally-focused software!</p>
    <div>
      <h3>Can everyone participate in RPKI routing filtering?</h3>
      <a href="#can-everyone-participate-in-rpki-routing-filtering">
        
      </a>
    </div>
    <p>Yes. No. Maybe. Ask your lawyers.</p><p>For many years there’s been a solid discussion about the role of the RIRs as holders of the private key of the CA at the top of their tree. Five trees. IANA was meant to run a single root above them (similar to how DNSSEC works with one key held at the DNS root - or dot); but that didn’t happen for many reasons including the fact that IANA/ICANN was essentially reporting to the US government back when this was all being setup. The RIR setup has stuck and at this point no-one expects IANA to ever hold a single root certificate, plus it’s all historic at this point and not worth rehashing here.</p><p>This is not a major operational issue; however it does have some slight consequences. While having five roots could be considered a messy setup, it actually matches the web space CA model.</p><p>Some RIR regions have special issues. <a href="https://arin.net/">ARIN</a> (in North America and portions of the Caribbean) has a TA and ROAs; but wants full indemnification should the data be wrong or used incorrectly. In the <a href="https://ripe.net/">RIPE</a> region (Europe, ME &amp; Russia), the members voted down full support for RPKI because they didn’t want to have a Dutch entity (RIPE NCC) hold a certificate for a non-Dutch entity and have a Dutch LEA letter shutdown a network by forcing that certificate to be invalidated. Read their respective terms of service:</p><ul><li><p>ARIN at <a href="https://www.arin.net/resources/rpki/tal.html">https://www.arin.net/resources/rpki/tal.html</a> &amp; <a href="https://www.arin.net/resources/rpki/rpa.pdf">https://www.arin.net/resources/rpki/rpa.pdf</a></p></li><li><p>RIPE at <a href="https://www.ripe.net/manage-ips-and-asns/resource-management/certification/legal/ripe-ncc-certification-repository-terms-and-conditions">https://www.ripe.net/manage-ips-and-asns/resource-management/certification/legal/ripe-ncc-certification-repository-terms-and-conditions</a></p></li></ul><p>The legal issues aren’t the focus of this blog entry; but it will be obvious later when implementing RPKI as-to-why the legal issues become an impediment to successful global RPKI deployment.</p>
    <div>
      <h3>IRR - legacy or bridging solution?</h3>
      <a href="#irr-legacy-or-bridging-solution">
        
      </a>
    </div>
    <p>Everyone assumes that IRR will ultimately go away; however, that’s a long long way out. There’s efforts underway to make IRR data cleaner, and in some cases, to (finally) link the underlying RPKI &amp; IRR data together. They are very similar data; but with different security models.</p><p>This blog post was written with RPKI as the go-forward methodology in mind and hence does not need to address all the subtle issues around IRR brokenness. It would be a whole fresh blog post to address the legacy issues within IRR. That said, it’s clear that RPKI isn’t today a complete substitute for all the IRR data (and RPSL/RPSLng data) that exists today. The good news is that there’s work within the IETF and drafts in-flight to cover that. RPKI is a good protocol to base route filtering on and Cloudflare will be rolling out full support for RPKI enabled filtering and route announcements within its global network.</p><p>If you look back at the examples above of the university and its NREN, then realize that in the RPKI world the same information is being stored; however, the validity and attestation of the data increases n-fold once RPKI becomes the universal mechanism of choice.</p><p>Cloudflare wants to see this happen and will push for RPKI to become mainstream within the BGP world. We want to squash the existence of BGP route leaks and hijacks forever!</p>
    <div>
      <h3>Next steps</h3>
      <a href="#next-steps">
        
      </a>
    </div>
    <p>Read the <a href="/rpki-details/">RPKI and BGP: securing our part of the Internet</a> blog entry to follow what we are doing on the technical side for Cloudflare’s RPKI implementation.</p><p><a href="/subscribe/"><i>Subscribe to the blog</i></a><i> for daily updates on our announcements.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/yhey6ViCRukh886HRpCSS/eb12006aa2e71a7b193284210dea17cb/Crypto-Week-1-1-2.png" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[Crypto Week]]></category>
            <category><![CDATA[BGP]]></category>
            <category><![CDATA[RPKI]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Cryptography]]></category>
            <guid isPermaLink="false">4NOd59Z9YIyJ6Lq7qxXZ58</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Kathmandu, Nepal is data center 123]]></title>
            <link>https://blog.cloudflare.com/kathmandu/</link>
            <pubDate>Fri, 23 Feb 2018 01:13:14 GMT</pubDate>
            <description><![CDATA[ We said that we would head to the mountains for Cloudflare’s 123rd data center, and they feature prominently as we talk about Kathmandu, Nepal, home of our newest deployment and our 42nd data center in Asia! ]]></description>
            <content:encoded><![CDATA[ <p></p><p>We said that we would head to the mountains for Cloudflare’s 123rd data center, and mountains feature prominently as we talk about Kathmandu, Nepal, home of our newest deployment and our 42nd data center in Asia!</p><p>Five and three quarter key facts to get started:</p><ul><li><p>Nepal is home to the highest mountain in the world.</p></li><li><p>Kathmandu has more UNESCO heritage sites in its immediate area than any other capital!</p></li><li><p>The Nepalese flag isn’t a rectangle. It’s not even close!</p></li><li><p>Nepal has never been conquered or ruled by another country.</p></li><li><p>Kathmandu, Nepal is where Cloudflare has placed its 123rd data center.</p></li><li><p>Nepal’s timezone is 5 hours 45 minutes ahead of GMT.</p></li></ul>
    <div>
      <h3>Mountains</h3>
      <a href="#mountains">
        
      </a>
    </div>
    <p>The mountainous nation of Nepal is home to Mount Everest, the highest mountain in the world, known in Nepali as <a href="https://en.wikipedia.org/wiki/Mount_Everest">Sagarmāthā</a>. Most of us learn that at school; however there’s plenty of other mountains located in Nepal. Here’s the ones above 8,000 meters (extracted from the full <a href="https://en.wikipedia.org/wiki/List_of_mountains_in_Nepal">list</a>) to get you started:</p><ul><li><p>Mount Everest at 8,848 meters</p></li><li><p>Kanchenjunga at 8,586 meters</p></li><li><p>Lhotse at 8,516 meters</p></li><li><p>Makalu at 8,463 meters</p></li><li><p>Cho Oyu at 8,201 meters</p></li><li><p>Dhaulagiri I at 8,167 meters</p></li><li><p>Manaslu at 8,156 meters</p></li><li><p>Annapurna I at 8,091 meters</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/y3qaG3RlrZASkNn3ZgIyn/96426613f9b11cd0e65f4a3b4cbb7da3/Annapurna-1.jpg" />
            
            </figure><p>Photo of Annapurna taken outside Pokhara by blog author</p><p>As we said, Kathmandu and Nepal are very mountainous region! Some of these mountains are shared with neighboring countries. In-fact, the whole Himalayan range stretches much further than just Nepal as it also encompasses neighboring countries such as Bhutan, China, India, and Pakistan.</p>
    <div>
      <h3>Nepal’s flag</h3>
      <a href="#nepals-flag">
        
      </a>
    </div>
    <p>The official flag of Nepal is not a rectangle, it’s a very unique shape. No other flag comes close to having this shape. At first viewing it looks simple, just two triangles (representing the Himalayas) placed vertically against the flagpole. Nope - the triangles have a very specific dimension.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2V08miylR35evbJmrUQTgs/474eb19dfefa65224fd126185bf5523f/Flag_of_Nepal.svg" />
            
            </figure><p>The flags symbolism goes beyond the mountains. The two white symbols represent the calming moon and fierce sun or sometimes the cool weather in the Himalayas and warm lowlands.</p><p>But back to those two triangles. Ignoring the old adage ("It was my understanding that there would be no <a href="https://en.wikiquote.org/wiki/Chevy_Chase">math</a>."), let’s grab what Wikipedia says about the shape of this flag and see if we can follow along.</p><p>First off, let’s explain irrational vs rational numbers (or ratios or fractions). A rational number is a simple P/Q number like 1/2 or 3/4 or 1/5 or even 16/9 etc etc. The numerator and denominator must both be integers. Even 100003/999983 (using prime numbers) is a rational number. If the denominator is 0 then the number isn’t rational.</p><p>An irrational number is everything else. If it can’t be written as P/Q, then it’s irrational. This means a number that doesn’t terminate or doesn’t become periodic. For example, π or Pi (3.141592653589793238462…), e or Euler's Number (2.718281828459045235360…), the square root of 2 (1.414213562373095…), etc. These are all irrational numbers. Don’t be fooled by 4/3. While it’s impossible to full write out (1.33333… continuing forever), yet it’s actually a rational number.</p><p>(Read up about <a href="https://en.wikipedia.org/wiki/Hippasus">Hippasus</a>, who’s credited with discovering the existence of irrational numbers, if you want an irrational <a href="https://esoterx.com/2014/12/03/murder-by-math-the-irrational-demise-of-hippasus/">murder story</a>!)</p><p>That’s enough math theory; now back to the Nepali flag. Each red triangle has a rational ratio. The flag is started with simple 1:1 and 3:4 ratios and that’s the easy part. We are all capable of grabbing paper or cloth and make a rectangle that’s 3 inches by 4 inches, or 1.5 meters by 2 meters or any 3:4 ratio. It’s simple math. What gets complicated is adding the blue border. For that, we need to read-up what was said by the On-Line Encyclopedia of Integer Sequences (OEIS Foundation) and Wikipedia. They both go into <a href="https://oeis.org/A230582">great depth</a> to describe the full mathematical dimensions of the flag. Let’s just paraphrase them slightly:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/uqQQ9I3fG4JYIRNEYDTZ7/ae28fa02df0f201c0e2a959e8553726b/nepal-flag-formula.png" />
            
            </figure><p>However the math (and geometry) award goes to the work done in order to produce "Calculation of the aspect ratio of the national flag of Nepal". The final geometric drawing is this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/779S5lpYn9k8E1QGWBVJf/5110c8b3e1401510a3ed5b705a3ca270/nepal-flag-geometry.png" />
            
            </figure><p><a href="https://0xc.de/flags/nepal/">Berechnung des Seitenverhältnisses der Nationalfahne von Nepal</a></p><p>Yeah - that’s going a bit too far for a Cloudflare blog! Let’s just say that Nepal’s flag is unique and quite interesting.</p>
    <div>
      <h3>APRICOT 2018</h3>
      <a href="#apricot-2018">
        
      </a>
    </div>
    <p>We are especially excited to announce our Kathmandu data center while attending <a href="https://2018.apricot.net/">APRICOT</a> conference, being held in Nepal this year. The event, supported by <a href="https://conference.apnic.net/45/">APNIC</a>, the local Regional Internet address Registry (RIR) for the Asia-Pacific region, attracts leaders from Internet industry technical, operational, and policy-making communities. Cloudflare's favorite part of APRICOT is the Peering Forum track on Monday.</p>
    <div>
      <h3>SAARC</h3>
      <a href="#saarc">
        
      </a>
    </div>
    <p>Nepal is just one of eight countries making up the <a href="http://www.saarc-sec.org/">SAARC</a> (South Asian Association for Regional Cooperation) organization. Headquartered in Kathmandu, it comprises Afghanistan, Bangladesh, Bhutan, India, Nepal, the Maldives, Pakistan and Sri Lanka.</p><p>Cloudflare has already deployed into neighboring <a href="/cloudflare-launches-in-india-with-data-centers-in-mumbai-chennai-and-new-delhi/">India</a>, and any astute reader of these blogs will know we are always working on adding sites where and when we can. The SAARC countries are in our focus.</p>
    <div>
      <h3>Build, build, build!</h3>
      <a href="#build-build-build">
        
      </a>
    </div>
    <p>For Cloudflare‘s next two data centers, we head to a different continent and way-south of the equator. Throughout 2018, we’ll announce a stream of deployments across many different cities that each improve the security and performance of millions of our customers.</p><p>If you’re motivated by the idea of helping build one of the world's largest networks, come <a href="https://www.cloudflare.com/careers/">join our team</a>!</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Asia]]></category>
            <guid isPermaLink="false">3gRZJDpA1UiXYQHWq2oBEs</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[McAllen, Texas: Cloudflare opens 119th Data Center just north of the Mexico border]]></title>
            <link>https://blog.cloudflare.com/mcallen/</link>
            <pubDate>Mon, 11 Dec 2017 22:43:58 GMT</pubDate>
            <description><![CDATA[ Cloudflare's newest date Center is in McAllen, Texas. While McAllen is close to the Mexican border, its importance goes well beyond that simple fact.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Five key facts to know about McAllen, Texas</p><ul><li><p>McAllen, Texas is on the southern tip of the Rio Grande Valley</p></li><li><p>The city is named after John McAllen, who provided land in 1904 to bring the <a href="https://en.wikipedia.org/wiki/St._Louis,_Brownsville_and_Mexico_Railway">St. Louis, Brownsville &amp; Mexico Railway</a> railway into the area</p></li><li><p>McAllen, Texas is named the City of Palms</p></li><li><p>The border between Mexico and the USA is less than nine miles away from the data center</p></li><li><p>McAllen, Texas is where Cloudflare has placed its 119th data center</p></li></ul>
    <div>
      <h3>Second datacenter in Texas; first on the border with Mexico</h3>
      <a href="#second-datacenter-in-texas-first-on-the-border-with-mexico">
        
      </a>
    </div>
    <p>While McAllen is close to the Mexican border, its importance goes well beyond that simple fact. The city is halfway between <a href="/alert-the-ewings-cloudflares-dallas-data-cent/">Dallas, Texas</a> (where Cloudflare has an existing datacenter) and Mexico City, the center and capital of Mexico. This means that any Cloudflare traffic delivered into Mexico is better served from McAllen. Removing 500 miles from the latency equation is a good thing. 500 miles equates to around 12 milliseconds of round-trip latency and when a connection operates (as all connections should), as a secure connection, then there can be many round trip communications before the first page starts showing up. Improving latency is key, even if we have a <a href="/introducing-0-rtt/">0-RTT</a> environment.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Zp1VPwH6gRq018JV4gpHG/6b80f8fe4449ee953ea78e7b118524d1/mcallen-mexico-map.png" />
            
            </figure><p>Image courtesy of gcmap service</p><p>However, it gets better! A significant amount of Mexican Cloudflare traffic is delivered to ISPs and telcos that are just south of the Mexican border, hence McAllen improves their performance even more-so. Cloudflare chose the McAllen Data Center in order to provide those ISPs and telcos a local interconnect point.</p>
    <div>
      <h3>Talking of interconnection - what’s needed is a solid IXP footprint</h3>
      <a href="#talking-of-interconnection-whats-needed-is-a-solid-ixp-footprint">
        
      </a>
    </div>
    <p>As astute readers of the Cloudflare blog know, the Cloudflare network interconnects to a large number of Internet Exchanges globally. Why should that be any different in McAllen, Texas. It’s not. As of last week, there was a brand new Internet Exchange (IX) in McAllen, Texas.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/LVY4nkkmZCbWIKpvSZqUb/230a7ae71559d21488a4ac0174c0527a/mcallen-ixp-install-1.jpg" />
            
            </figure><p>Image, with permission, from <a href="https://www.facebook.com/photo.php?fbid=10159793533710387&amp;set=a.10151069523530387.780604.794635386&amp;type=3&amp;theater">Joel Pacheco’s</a> Facebook page</p><p><a href="https://www.peeringdb.com/ix/2036">MEX-IX</a> is that new IX and it provides a whole new way to interconnect with Mexican carriers, many of which are present in McAllen already. Cloudflare will enable peering on that IX as quickly as we can.</p>
    <div>
      <h3>Next up, we go south!</h3>
      <a href="#next-up-we-go-south">
        
      </a>
    </div>
    <p>Cloudflare has plenty of datacenter presence in South America, however <a href="/panama-expands-cloudflare-network-to-50-countries/">Panama</a> is the only datacenter we have operating within Central America. That means that we still have to work on Belize, Costa Rica, El Salvador, Guatemala, Honduras, and Nicaragua.</p><p>But there’s one more place we need to deploy into in order to move the Mexican story forward and that’s Mexico City. More about that in a later blog.</p><p>Cloudflare will continue to build new datacenters, including the ones south of the border, and ones around the globe. If you enjoy the idea of helping build one of the world's largest networks, come <a href="https://www.cloudflare.com/careers/">join our team</a>!</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Texas]]></category>
            <category><![CDATA[USA]]></category>
            <guid isPermaLink="false">p4xSfU2cmwx4lEpQqjhU7</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cape Town (South Africa): Cloudflare Data Center #113]]></title>
            <link>https://blog.cloudflare.com/cape-town-south-africa/</link>
            <pubDate>Thu, 11 May 2017 04:13:38 GMT</pubDate>
            <description><![CDATA[ Back in December 2014, Cloudflare opened our first data center in Africa and our 30th datacenter globally. That was in Johannesburg, which has since seen over 10x growth in traffic delivered to South Africa and surrounding countries. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Five fun facts:</p><ul><li><p>Cape Town is where the Atlantic Ocean and the Indian Ocean meet deep in the Southern Hemisphere.</p></li><li><p>The city is the start of the <a href="https://www.southafrica.net/za/en/travel/article/discover-the-garden-route">Garden Route</a>, a 185 mile (300 km) glorious coastal drive brimming with native flowers and stunning vistas.</p></li><li><p>Cape Town is the gateway into the Stellenbosch and Franschhoek wine districts that make for very popular weekend excursions.</p></li><li><p>The imposing Table Mountain can be seen from most of Cape Town. When you take the cable car to the top of the mountain, the view from up there is even more stunning.</p></li><li><p>Cape Town is where Cloudflare has placed its 113th data center.</p></li></ul>
    <div>
      <h3>Second data center in South Africa</h3>
      <a href="#second-data-center-in-south-africa">
        
      </a>
    </div>
    <p>Back in December 2014, Cloudflare opened our first data center in Africa and our 30th datacenter globally. That was in <a href="/johannesburg-cloudflares-30th-data-center/">Johannesburg</a>, which has since seen over 10x growth in traffic delivered to South Africa and surrounding countries.</p><p>Now, we are expanding into our second city in South Africa — Cape Town, bringing us 870 miles (1,400km) closer to millions of Internet users. Only 15% smaller than Johannesburg by population, Cape Town commands a majority of the tourism business for the country.</p><p>For Cloudflare, our newest deployment reinforces our commitment to helping build a better Internet in South Africa and Southern Africa as a whole. Expanding on our existing peering at the <a href="https://wiki.inx.net.za/display/pub/JINX+-+Johannesburg+Internet+Exchange">JINX</a> and <a href="https://www.napafrica.net">NAPAfrica</a> Internet exchanges in Johannesburg, we are now also a member at NAPAfrica Cape Town. As we enable the interconnections with in-country hosts and ISPs, we will distribute and optimize traffic delivery, while providing in-country redundancy for millions of Internet properties.</p><p>Cloudflare now operates six data centers across Africa. Cape Town joins existing facilities in <a href="/cairo/">Cairo</a> (Egypt), <a href="/amsterdam-to-zhuzhou-cloudflare-global-network/">Luanda</a> (Angola), <a href="/mombasa-kenya-cloudflares-43rd-data-center/">Mombasa</a> (Kenya), <a href="/curacao-and-djibouti/">Djibouti</a> (Djibouti), and <a href="/johannesburg-cloudflares-30th-data-center/">Johannesburg</a> (South Africa).</p>
    <div>
      <h3>Cape Town and Johannesburg equally served</h3>
      <a href="#cape-town-and-johannesburg-equally-served">
        
      </a>
    </div>
    <p>In the graph below, Gauteng is the province containing Johannesburg and the nation's capital Pretoria, whereas the Western Cape province includes Cape Town and the aforementioned wine districts. With the second data center now operational in South Africa, we are seeing near equivalent performance over both major cities.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1zB2Wdym25nzydVeMouC33/8f233a07262518d8b001fac94e89c7db/Cape_Town_South_Africa_Cedexis_Weekly_Graph.png" />
            
            </figure><p><i>Latency (ms) decreases to Cloudflare customers. Source: Cedexis</i></p>
    <div>
      <h3>Two More Cities</h3>
      <a href="#two-more-cities">
        
      </a>
    </div>
    <p><a href="/colombo/">Colombo</a> and Cape Town are the first two of four data centers going live this week. Our next two deployments, yet to be revealed, will provide additional redundancy to existing facilities in North America. Can you guess the cities they are in?</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[South Africa]]></category>
            <category><![CDATA[Africa]]></category>
            <guid isPermaLink="false">4EUugvYtTiI8cHu0VAFFG</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Curaçao and Djibouti - two new Cloudflare data centers located where undersea cables meet]]></title>
            <link>https://blog.cloudflare.com/curacao-and-djibouti/</link>
            <pubDate>Mon, 10 Apr 2017 14:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare has just turned up two new datacenters (numbers 108 and 109). Both are around halfway between the Tropic of Cancer and the Equator.  ]]></description>
            <content:encoded><![CDATA[ <p>Cloudflare has just turned up two new datacenters (numbers 108 and 109). Both are around halfway between the <a href="https://en.wikipedia.org/wiki/Tropic_of_Cancer">Tropic of Cancer</a> and the <a href="https://en.wikipedia.org/wiki/Equator">Equator</a>. They are located continents-apart, yet share something very-much in common as both of these new data centers are deployed and associated with where undersea cables reach land. Undersea cables have been and still are a growing part of the interconnected world that the Internet represents.</p>
    <div>
      <h3>Curaçao, part of the Netherland Antilles in the Caribbean</h3>
      <a href="#curacao-part-of-the-netherland-antilles-in-the-caribbean">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3QHdFlmNUZd6XAZqnjHLF2/50485ca55f059741bb7f9c5093d42607/26208107762_87f7af840b_o.jpg" />
            
            </figure><p><a href="https://creativecommons.org/licenses/by/2.0/">CC-BY 2.0</a> <a href="https://flic.kr/p/FVVpmW">image</a> by <a href="https://www.flickr.com/photos/63122283@N06/">Nelo Hotsuma</a></p><p>Curaçao is located in the Southern Caribbean Sea (just north of Venezuela) and has a strong Dutch heritage. Along with Aruba and Bonaire, Curaçao is part of the Lesser Antilles (they are called the <a href="https://en.wikipedia.org/wiki/ABC_islands_(Lesser_Antilles)">ABC islands</a>).</p><p>More importantly, Willemstad - the capital of Curaçao is where the Amsterdam Internet Exchange operates <a href="https://cw.ams-ix.net/connect-to-ams-ix-caribbean/benefits-of-connecting">AMS-IX Caribbean</a>. Why AMS-IX? Because of that Dutch relationship!</p><p>It’s AMS-IX’s goal (along with its local partners) to promote Curaçao as an interconnection location for the Caribbean. Cloudflare is there with all its services ready for that day!</p>
    <div>
      <h3>Djibouti on the horn of Africa</h3>
      <a href="#djibouti-on-the-horn-of-africa">
        
      </a>
    </div>
    <p>Djibouti is a country of around 850,000 people with ~60% of the population living in the nation's capital, also called Djibouti. The country is about the same size as New Hampshire and its location (on the Horn of Africa) makes it a perfect location to bring ashore undersea fiber-optic cables.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1mk3FaMcuVHKQkA5IgdBwq/34c39eb96f62ba8f018a153d8e41dd44/wiocc-eassy-construction-two-thirds-complete-pulling-the-cable-djibouti2.jpg" />
            
            </figure><p>Image of <a href="https://wiocc.wordpress.com/2010/03/17/eassy-construction-two-thirds-complete/">landing the EASSy cable</a>, Djibouti, Feb. 2010 courtesy of <a href="http://wiocc.net/">WIOCC</a> &amp; <a href="http://www.eassy.org/">EASSy</a></p><p>In fact, the number of undersea fiber-optic cables that have become active in the last five years along the coast of Africa is impressive. The African west coast has seen a boom and, the East African coast (where Djibouti is located) has seen even more of a boom with fiber-optic cables radiating outwards towards the Middle East, India, Asia, Southern Africa and Europe from Djibouti. The list of submarine fiber-optic cables that land at Djibouti seems to be increasing year-over-year. Recently the SeaMeWe-5 cable was brought into service. SeaMeWe stands for “South East Asia–Middle East–Western Europe”. It connects <a href="/marseille/">Marseille France</a> (via a landing station in Toulon, France) through <a href="/cairo/">Egypt</a>, into Djibouti, then across to Sri Lanka and finaly finishing up in <a href="/cloudflares-singapore-data-center-now-online/">Singapore</a>. Interestingly, Cloudflare has data centers in four of those five locations.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Y4dv3yyTT21xOMjtY6w58/8bdb7e0b41bb851ff73bf86a756aad49/seamewe-5.png" />
            
            </figure><p><a href="http://www.submarinecablemap.com/#/submarine-cable/seamewe-5">SeaMeWe-5</a> courtesy of <a href="http://www.submarinecablemap.com/">Submarine Cable Map</a> from TeleGeography</p><p>Some of the existing undersea cables connecting Djibouti to the rest of the world include:</p><ul><li><p><a href="http://www.eassy.org/">Eastern Africa Submarine System (EASSy)</a> connecting South Africa to Sudan via landing points including Djibouti.</p></li><li><p><a href="https://www.europeindiagateway.com/webclient/common/html/newsandevent.html">Europe India Gateway (EIG)</a> connnecting India and UAE via Djibouti to the UK.</p></li><li><p><a href="http://www.mena-scs.com/Index.aspx?PID=7">Middle East North Africa (MENA) Cable System/Gulf Bridge International</a> connecting Oman via Djibouti to Italy.</p></li><li><p><a href="http://seacom.mu/network-map/">SEACOM/Tata TGN-Eurasia</a> connecting South Africa, India, Djibouti, Egypt and onto Europe.</p></li><li><p><a href="http://www.submarinecablemap.com/#/submarine-cable/seamewe-3">SeaMeWe-3</a> connecting Asia, India, Middle East and Europe via Djibouti.</p></li><li><p><a href="http://www.seamewe5.com/route/swm5-maps/">SeaMeWe-5</a> connecting Asia, Bangladesh, Sri Lanka, Middle East and Europe via Djibouti.</p></li></ul><p>The undersea cable business is always busy. There’s the following undersea cables being built, planned (or just dreamed about):</p><ul><li><p><a href="http://www.submarinecablemap.com/#/submarine-cable/asia-africa-europe-1-aae-1">Asia Africa Europe-1 (AAE-1)</a> RFS March 2017</p></li><li><p><a href="http://australiawestexpress.net/">Australia West Express (AWE)</a> RFS Q2 2018</p></li><li><p><a href="http://www.submarinecablemap.com/#/submarine-cable/djibouti-africa-regional-express-dare">Djibouti Africa Regional Express (DARE)</a> RFS May 2018</p></li><li><p><a href="http://www.submarinecablemap.com/#/submarine-cable/liquid-sea">Liquid Sea</a> RFC 2018</p></li></ul><p>Djibouti is also a vital communications gateway for landlocked countries like Ethiopia and South Sudan. Landlocked countries are highly dependent on their path towards an ocean for access to the global Internet. That makes Djibouti a perfect location to provide Cloudflare services for specific areas of Eastern or Central Africa.</p><p>Right next to the landing station in Djibouti is the <a href="https://peeringdb.com/ix/967">Djibouti Internet Exchange</a> (DjIX) which is located inside the <a href="http://www.djiboutidatacenter.com/en/page/about">Djibouti Data Center</a> (DDC). They are separate buildings; however, highly interconnected. Cloudflare is a member of the DjIX and because of that internet exchange we expect to increase our connectivity up and down the East Coast of Africa.</p><p>If you’re interested to learn more about global undersea cables, look forward to a follow up deep dive (pun intended) blog post.</p>
    <div>
      <h3>Railways and fiber</h3>
      <a href="#railways-and-fiber">
        
      </a>
    </div>
    <p>Back around the start of the 20th century, the French built a one-meter gauge railway between the Ethiopian capital of Addis Ababa and the deep-water port in Djibouti. This old railway was recently disbanded and finally last year it was replaced by the modern electrified <a href="http://africa.cgtn.com/2017/01/10/44393/">Addis Ababa-Djibouti Railway</a>. This standard gauge international railway connects Addis Ababa and the Port of Doraleh in Djibouti. It’s used for freight, passengers and communications. The two railways are somewhat parallel and are the perfect path for fiber-optic cables linking Addis Ababa and Djibouti and hence connecting Ethiopia to the rest of the world. It’s very common for railways to be associated with fiber-optic cables. Ethiopia's single telecom company (Ethio telecom) is connected via Djibouti’s single telecom company (Djibouti Telecom).</p>
    <div>
      <h3>Undersea cables are the lifeblood of the global Internet</h3>
      <a href="#undersea-cables-are-the-lifeblood-of-the-global-internet">
        
      </a>
    </div>
    <p>A long time ago the oceans were perceived as a barrier to efficient communications. Whilst they still represent significant distances and hence latency (the speed of light hasn’t changed as far as we can tell); they are not the economic barrier they once were. In fact, in some cases they can be very cost-effective at moving bits globally. Undersea cables have been pushing the barriers for Dense Wave Division Multiplexing (DWDM) and optical encoding for quite some time. A single fiber-optic cable can now encode data in the multi-Terabit range (16 or 32 Tbps is not complex to implement anymore). This eclipses anything that satellites can provide!</p><p>When an undersea cable surfaces (actually they are always buried, as they traverse the beaches on the ocean edges, before reaching the landing stations where the optical signal is converted into an electrical signal, as it ultimately reaches an Internet core router or Internet Exchange Point (IXP).</p><p>If you ever have the privilege of visiting a cable landing station, you’re in for a wonderful treat. Both the optical hardware and the power subsystems are normally some of the most interesting equipment in the Internet interconnection industry. Here’s <a href="http://andrewblum.net/">Andrew Blum</a> giving a <a href="https://www.ted.com/talks/andrew_blum_what_is_the_internet_really">TED talk</a> about undersea cables from his book Tubes; a great introduction to undersea cables.</p>
    <div>
      <h3>Not the first Cloudflare data centers between the Tropics of Cancer and Capricorn</h3>
      <a href="#not-the-first-cloudflare-data-centers-between-the-tropics-of-cancer-and-capricorn">
        
      </a>
    </div>
    <p>Earth (where Cloudflare is presently located) is tilted when compared to the Sun. This is why the sun rises and sets differently during the year. Two lines can be drawn around the globe because of this tilt. The <a href="https://en.wikipedia.org/wiki/Tropic_of_Cancer">Tropic of Cancer</a> is in the Northern Hemisphere and it's counterpart, the <a href="https://en.wikipedia.org/wiki/Tropic_of_Capricorn">Tropic of Capricorn</a> in the Southern Hemisphere.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3SStGL76P6G926XzqVJQO3/712fd9f59227cdc48a4026ffb76cb358/December_solstice_geometry.svg" />
            
            </figure><p>By <a href="https://commons.wikimedia.org/wiki/User:Peter_Mercator">Peter Mercator</a> <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY-SA 3.0</a></p><p>Both Curaçao and Djibouti are located between the Equator and the Tropic of Cancer; however, they aren't the only ones. Out of 109 datacenters so far, 20 are within these two lines. Here’s the list:</p>
            <pre><code>    Latitude     Longitude  IATA
  23°26'13"N   -----------   ---  Tropic of Cancer
  23°24'00"N   113°18'00"E   CAN  Guangzhou, China
  23°05'00"N   113°04'15"E   FUO  Foshan, China 
  22°38'00"N   113°49'00"E   SZX  Dongguan, China
  22°37'00"N   108°10'00"E   NNG  Nanning, China
  22°18'32"N   113°54'53"E   HKG  Hong Kong, Hong Kong
  19°05'19"N    72°52'05"E   BOM  Mumbai, India 
  14°30'31"N   121°01'10"E   MNL  Manila, Philippines
  13°40'52"N   100°44'50"E   BKK  Bangkok, Thailand
  12°59'40"N    80°10'50"E   MAA  Chennai, India
  12°11'20"N    68°57'35"W   CUR  Willemstad, Curaçao
  11°32'50"N    43°09'34"E   JIB  Djibouti, Djibouti
   9°04'17"N    79°23'00"W   PTY  Panama City, Panama
   6°09'52"N    75°25'23"W   MDE  Medellín, Colombia
   2°44'44"N   101°42'36"E   KUL  Kuala Lumpur, Malaysia
   1°21'33"N   103°59'22"E   SIN  Singapore, Singapore
   0°00'00"    -----------   ---  Equator
   0°06'48"S    78°21'31"W   UIO  Quito, Ecuador
   4°02'05"S    39°35'39"E   MBA  Mombasa, Kenya
   8°51'30"S    13°13'52"E   LAD  Luanda, Angola
  12°01'19"S    77°06'52"W   LIM  Lima, Peru    
  23°26'08"S    46°28'23"W   GRU  São Paulo, Brazil
  23°26'13"S   -----------   ---  Tropic of Capricorn</code></pre>
            <p>Just so, you the reader, are fully informed: our most northern data center is a close tie between Helsinki, Finland at 60°19'02"N and Oslo, Norway at 60°11'38"N coming in second. Our most southern data center is also somewhat close with Melbourne, Australia at 37°40'24"S and Auckland, New Zealand at 37°00'29"S followed by Buenos Aires, Argentina at 34°49'20"S coming in third.</p>
    <div>
      <h3>Not the first Cloudflare data centers to be close to undersea cables</h3>
      <a href="#not-the-first-cloudflare-data-centers-to-be-close-to-undersea-cables">
        
      </a>
    </div>
    <p>Cloudflare has previously deployed into locations like Fujairah, UAE (just less than 100 miles from Dubai), Mombasa Kenya, and Marseille France, which are strongly associated with undersea cables. They all have multiple landing stations that are well-connected to data centers where Cloudflare (and Internet Exchange Points) are present. Even cities like Hong Kong, Singapore, Los Angeles, New York and Miami are associated with undersea landing cables. You can explore plenty of undersea cables using the <a href="http://www.submarinecablemap.com/">Submarine Cable Map</a> from TeleGeography.</p>
    <div>
      <h3>The B, C, Ds of new Cloudflare locations</h3>
      <a href="#the-b-c-ds-of-new-cloudflare-locations">
        
      </a>
    </div>
    <p>According to Wikipedia, Binary-coded decimal (<a href="https://en.wikipedia.org/wiki/Binary-coded_decimal">BCD</a>) is a method of encodings decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/rHqeBZu1TNxz9j4Zno3JA/71fda678db023582c1cd05db305eddc2/109.png" />
            
            </figure><p>This is used heavily by classic LED and LCD displays on alarm clocks, microwaves and other wonderful legacy electronics. In the days of TTL circuits, every self-respecting circuit designer would know how to build a BCD-based circuit. Here’s an example of BCD in action with a TTL circuit feeding a seven-segment LCD.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/52sfaHeultGPBOfJ9vSZpf/7d8a6bae7ae2136b3c9e5fe3da9a2c9b/NV_0501_Marston_Figure11_edited.png" />
            
            </figure><p>Image courtesy of and with permission of <a href="http://www.nutsvolts.com/magazine/article/using-seven-segment-displays-part-1">Nuts &amp; Volts Magazine</a></p><p>Unrelated to anything binary, Cloudflare seems to like the letters B, C &amp; D recently. In fact datacenter number 107 was <a href="/belgrade-107th-datacenter/"><b>B</b>elgrade</a>, number 108 is <b>C</b>uraçao and number 109 <b>D</b>jibouti. It seems we like the letters BCD so much that we have four more BCD data center cities presently being deployed. There’s one <b>B</b>, two <b>C</b>s and one <b>D</b> within the upcoming weeks and months. Want to guess the cities? Here's a clue. Two north of the Equator, one close to the Equator and one quite south of the Equator. The Cloudflare deployment continues all over the globe!</p><p>If you’re interest in bringing the fast Internet infrastructure of Cloudflare into diverse locations like these, then check out the jobs we have <a href="https://www.cloudflare.com/careers/departments/">listed online</a>.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Africa]]></category>
            <guid isPermaLink="false">46WN1TJP6hP5LPEJoLF2WJ</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[NANOG - the art of running a network and discussing common operational issues]]></title>
            <link>https://blog.cloudflare.com/nanog-the-art-of-running-a-network-and-discussing-common-operational-issues/</link>
            <pubDate>Thu, 02 Feb 2017 12:15:26 GMT</pubDate>
            <description><![CDATA[ The North American Network Operators Group (NANOG) is the loci of modern Internet innovation and the day-to-day cumulative network-operational knowledge of thousands and thousands of network engineers. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The <a href="https://nanog.org/">North American Network Operators Group</a> (NANOG) is the loci of modern Internet innovation and the day-to-day cumulative network-operational knowledge of thousands and thousands of network engineers. NANOG itself is a non-profit membership organization; but you don’t need to be a member in order to attend the conference or <a href="https://nanog.org/list/join">join</a> the mailing list. That said, if you can become a member, then you’re helping a good cause.</p><p>The next NANOG conference starts in a few days (February 6-8 2017) in <a href="https://www.nanog.org/meetings/nanog69/agenda">Washington, DC</a>. Nearly 900 network professionals are converging on the city to discuss a variety of network-related issues, both big and small; but all related to running and improving the global Internet. For this upcoming meeting, Cloudflare has three network professionals in attendance. Two from the San Francisco office and one from the London office.</p><p>With the conference starting next week, it seemed a great opportunity to introduce readers of the blog as to why a NANOG conference is so worth attending.</p>
    <div>
      <h2>Tutorials</h2>
      <a href="#tutorials">
        
      </a>
    </div>
    <p>While it seems obvious how to do some network tasks (you unpack the spiffy new wireless router from its box, you set up its security and plug it in); alas the global Internet is somewhat more complex. Even seasoned professionals could do with a recap on how <a href="https://youtu.be/WL0ZTcfSvB4">traceroute</a> actually works, or how <a href="https://youtu.be/9ksfOUyvNi8">DNSSEC</a> operates, or this years subtle BGP complexities, or be enlightened about <a href="https://youtu.be/_KFpXuHqHQg">Optical Networking</a>. All this can assist you with deployments within your networks or datacenter.</p>
    <div>
      <h2>Peering</h2>
      <a href="#peering">
        
      </a>
    </div>
    <p>If there’s one thing that keeps the Internet (a network-of-networks) operating, it’s peering. Peering is the act of bringing together two or more networks to allow traffic (bits, bytes, packets, email messages, web pages, audio and video streams) to flow efficiently and cleanly between source and destination. The Internet is nothing more than a collection of individual networks. NANOG provides one of many forums for diverse network operators to meet face-to-face and negotiate and enable those interconnections.</p><p>While NANOG isn’t the only event that draws networks together to discuss interconnection, it’s one of the early forums to support these peering discussions.</p>
    <div>
      <h2>Security and Reputation</h2>
      <a href="#security-and-reputation">
        
      </a>
    </div>
    <p>In this day-and-age we are brutally aware that security is the number-one issue when using the Internet. This is something to think about when you choose your email password, lock screen password on your laptop, tablet or smartphone. Hint: you should always have a lock screen!</p><p>At NANOG the security discussion is focused on a much deeper part of the global Internet, in the very hardware and software practices, that operate and support the underlying networks we all use on a daily basis. An Internet backbone (rarely seen) is a network that moves traffic from one side of the globe to the other (or from one side of a city to the other). At NANOG we discuss how that underlying infrastructure can operate efficiently, securely, and be continually strengthened. The growth of the Internet over the last handful of decades has pushed the envelope when it comes to hardware deployments and network-complexity. Sometimes it only takes one compromised box to ruin your day. Discussions at conferences like NANOG are vital to the sharing of knowledge and collective improvement of everyone's networks.</p><p>Above the hardware layer (from a network stack point of view) is the Domain Name System (DNS). DNS has always been a major subject of discussion within the NANOG community. It’s very much up to the operational community to make sure that when you type a website name into web browser or type in someone’s email address into your email program that there’s a highly efficient process to convert from names to numbers (numbers, or IP address, are the address book and routing method of the Internet). DNS has had its fair share of focus in the security arena and it comes down to network operators (and their system administrator colleagues) to protect DNS infrastructure.</p>
    <div>
      <h2>Network Operations; best practices and stories of disasters</h2>
      <a href="#network-operations-best-practices-and-stories-of-disasters">
        
      </a>
    </div>
    <p>Nearly everyone knows that bad news sells. It’s a fact. To be honest, the same is the case in the network operator community. However, within NANOG, those stories of disasters are nearly always told from a learning and improvement point of view. There’s simply no need to repeat a failure, no-one enjoys it a second time around. Notable stories have included subjects like <a href="https://youtu.be/XNubCYBprjE">route-leaks</a>, <a href="https://youtu.be/_95pC8khh8Y?list=PLO8DR5ZGla8iHYAM_AL7ZcO8F2F4AcosD">BGP protocol hiccups</a>, <a href="https://www.nanog.org/meetings/nanog17/presentations/vixie.pdf">peering points</a>, and plenty more.</p><p>We simply can’t rule out failures within portions of the network; hence NANOG has spent plenty of time discussing redundancy. The internet operates using routing protocols that explicitly allow for redundancy in the paths that traffic travels. Should a failure occur (a hardware failure, or a fiber cut), the theory is that the traffic will be routed around that failure. This is a recurring topic for NANOG meetings. <a href="https://youtu.be/GMi3pP21nHc">Subsea cables</a> (and their occasional cuts) always make for good talks.</p>
    <div>
      <h2>Network Automation</h2>
      <a href="#network-automation">
        
      </a>
    </div>
    <p>While we learned twenty or more years ago how to type into Internet routers on the command line, those days are quickly becoming history. We simply can’t scale if network operational engineers have to type the same commands into hundreds (or thousands?) of boxes around the globe. We need automation. This is where NANOG has been a leader in this space. Cloudflare has been active in this arena and Mircea Ulinic presented our experience for <a href="https://youtu.be/gV2918bH5_c?list=PLO8DR5ZGla8hcpeEDSBNPE5OrZf70iXZg">Network Automation with Salt and NAPALM</a> at the previous NANOG meeting. Mircea (and Jérôme Fleury) will be giving a follow-up in-depth tutorial on the subject at next week’s meeting.</p>
    <div>
      <h2>Many more subjects covered</h2>
      <a href="#many-more-subjects-covered">
        
      </a>
    </div>
    <p>The first NANOG conference was held June 1994 in Ann Arbor, Michigan and the conference has grown significantly since then. While it’s fun to follow the <a href="https://www.nanog.org/history">history</a>, it’s maybe more important to realize that NANOG has covered a multitude of subjects since that start. Go scan the archives at <a href="https://www.nanog.org/">nanog.org</a> and/or watch some of the online <a href="https://www.youtube.com/user/TeamNANOG/playlists">videos</a>.</p>
    <div>
      <h2>The socials (downtime between technical talks)</h2>
      <a href="#the-socials-downtime-between-technical-talks">
        
      </a>
    </div>
    <p>Let’s not forget the advantages of spending time with other operators within a relaxed setting. After all, sometimes the big conversations happen when spending time over a beer discussing common issues. NANOG has long understood this and it’s clear that the Tuesday evening Beer ’n Gear social is set up specifically to let network geeks both grab a drink (soft drinks included) and poke around with the latest and greatest network hardware on show. The social is as much about blinking lights on shiny network boxes as it is about tracking down that network buddy.</p><p>Oh; there’s a fair number of vendor giveaways (so far there’s 15 hardware and software vendors signed up for next week’s event). After all, who doesn’t need a new t-shirt?</p><p>But there’s more to the downtime and casual hallway conversations. For myself (the author of this blog), I know that sometimes the most important work is done within the hallways during breaks in the meeting vs. standing in front of the microphone presenting at the podium. The industry has long recognized this and the NANOG organizers were one of the early pioneers in providing full-time coffee and snacks that cover the full conference agenda times. Why? Because sometimes you have to step out of the regular presentations to meet and discuss with someone from another network. NANOG knows its audience!</p>
    <div>
      <h2>Besides NANOG, there’s IETF, ICANN, ARIN, and many more</h2>
      <a href="#besides-nanog-theres-ietf-icann-arin-and-many-more">
        
      </a>
    </div>
    <p>NANOG isn’t the only forum to discuss network operational issues, however it’s arguably the largest. It started off as a “North American” entity; however, in the same way that the Internet doesn’t have country barriers, NANOG meetings (which take place in the US, Canada and at least once in the Caribbean) have fostered an online community that has grown into a global resource. The mailing list (well worth reviewing) is a bastion of networking discussions.</p><p>In a different realm, the <a href="https://www.ietf.org/about/">Internet Engineering Task Force</a> (IETF) focuses on protocol standards. Its existence is why diverse entities can communicate. Operators participate in IETF meetings; however, it’s a meeting focused outside of the core operational mindset.</p><p>Central to the Internet’s existence is ICANN. Meeting three times a year at locations around the globe, it focused on the governance arena and in domain names and related items. Within the meetings there’s an excellent <a href="https://www.icann.org/resources/pages/tech-day-archive-2015-10-15-en">Tech Day</a>.</p><p>In the numbers arena <a href="https://arin.net/">ARIN</a> is an example of a regional routing registry (an RIR) that runs members meeting. An RIR deals with allocating resources like IP addresses and AS numbers. ARIN focuses on the North American area and sometimes holds its meetings alongside NANOG meetings.</p><p>ARIN’s counterparts in other parts of the world also hold meetings. Sometimes they simply focus on resource policy and sometimes they also focus on network operational issues. For example RIPE (in Europe, Central Asia and the Middle East) runs a five-day meeting that covers operational and policy issues. APNIC (Asia Pacific), AFRINIC (Africa), LACNIC (Latin America &amp; Caribbean) all do similar variations. There isn’t one absolute method and that's a good thing. It’s worth pointing out that APNIC holds it’s members meetings once a year in conjunction with <a href="https://2017.apricot.net/">APRICOT</a> which is the primary operations meeting in the Asia Pacific region.</p><p>While NANOG is somewhat focused on North America, there are also the regional NOGs. These regional NOGs are vital to help the education of network operators globally. Japan has JANOG, Southern Africa has SAFNOG, MENOG in the Middle East, AUSNOG &amp; NZNOG in Australia &amp; New Zealand, DENOG in Germany, PHNOG in the Philippines, and just to be different, the UK has UKNOF (“Forum” vs. “Group”). It would be hard to list them all; but each is a worthwhile forum for operational discussions.</p><p>Peering specific meetings also exist. <a href="https://www.peeringforum.com/">Global Peering Forum</a>, <a href="https://www.peering-forum.eu/">European Peering Forum</a>, and <a href="http://www.lacnog.org/wg-peeringforum/">Peering Forum de LACNOG</a> for example. Those focus on bilateral meetings within a group of network operators or administrators and specifically focus on interconnect agreements.</p><p>In the commercial realms there’s plenty of other meetings that are attended by networks like Cloudflare. <a href="https://council.ptc.org/">PTC</a> and <a href="https://www.internationaltelecomsweek.com/">International Telecoms Week</a> (ITW) are global telecom meetings specifically designed to host one-to-one (bilateral) meetings. They are very commercial in nature and less operational in focus.</p>
    <div>
      <h2>NANOG isn’t the only forum Cloudflare attends</h2>
      <a href="#nanog-isnt-the-only-forum-cloudflare-attends">
        
      </a>
    </div>
    <p>As you would guess, you will find our network team at RIR meetings, sometimes at IETF meetings, sometimes at ICANN meetings, often at various regional NOG meetings (like SANOG in South East Asia, NoNOG in Norway, RONOG in Romania, AUSNOG/NZNOG in Australia/New Zealand and many other NOGs). We get around; however, we also run a global network and we need to interact with many many networks around the globe. These meetings provide an ideal opportunity for one-to-one discussions.</p><p>If you've heard something you like from Cloudflare at one of these operational-focused conferences, then check out our <a href="https://www.cloudflare.com/join-our-team/">jobs listings</a> (in various North American cities, London, Singapore, and beyond!)</p> ]]></content:encoded>
            <category><![CDATA[BGP]]></category>
            <category><![CDATA[Peering]]></category>
            <category><![CDATA[Events]]></category>
            <category><![CDATA[Salt]]></category>
            <category><![CDATA[Best Practices]]></category>
            <guid isPermaLink="false">510pAYiPNeGP55tWvRXwko</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Not one, not two, but three undersea cables cut in Jersey]]></title>
            <link>https://blog.cloudflare.com/not-one-not-two-but-three-undersea-cables-cut-in-jersey/</link>
            <pubDate>Wed, 30 Nov 2016 01:00:21 GMT</pubDate>
            <description><![CDATA[ Sometime before midnight Monday (UK local time) a ship dropped its anchor and broke, not one, not two, but three undersea cables serving the island of Jersey in the English Channel.  ]]></description>
            <content:encoded><![CDATA[ <p>Sometime before midnight Monday (UK local time) a ship dropped its anchor and broke, not one, not two, but three undersea cables serving the island of Jersey in the English Channel. Jersey is part of the Channel Islands along with Guernsey and some smaller islands.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7McpBN2dI62598u4CE05Ms/fdb9e1861bfc14d169698534f161f44a/telegeography-jersey-map.png" />
            
            </figure><p>Image courtesy <a href="http://www.submarinecablemap.com/">TeleGeography Submarine Cable Map</a></p><p>These things happen and that’s not a good thing. The cut was reported on the venerable <a href="http://www.bbc.com/news/world-europe-jersey-38141230">BBC news</a> website. For the telecom operators in Jersey (JT Global) this wasn’t good news. However looking at the traffic from Cloudflare’s point of view; we can see that while the cable cut removed the direct path from London to Jersey, it was replaced by the backup path from Paris to Jersey. The move was 100% under the control of the BGP routing protocol. It's a relief that there's a fallback for when these unpredictable events happen.</p><p>Here's a look at one network on the island.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4gPiH1cWZReoy8m8IU0QWm/c7626d3c18f4744570e43b582d746d74/as8681.png" />
            
            </figure><p>The red traffic is being served from our London data center (the normal location for all Jersey traffic) and the blue traffic is coming from our Paris data center. The step could well be caused by either a delayed break in one of the cables or the careful rerouting of traffic by JT Global network engineers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2sF4Iu3GoRJ5F3qiY2bidp/c8dc81388eee04041c6a154f6f29c210/wikipedia-jersey.png" />
            
            </figure><p><a href="https://commons.wikimedia.org/wiki/Category:CC-BY-SA-3.0">CC-BY-SA-3.0</a> <a href="https://commons.wikimedia.org/wiki/File:Europe-Jersey.svg">Wikipedia Jersey Map</a></p><p>Cloudflare is still serving traffic cleanly into Jersey. We will continue to monitor the traffic and services into the island.</p> ]]></content:encoded>
            <category><![CDATA[Outage]]></category>
            <category><![CDATA[France]]></category>
            <category><![CDATA[Europe]]></category>
            <category><![CDATA[Network]]></category>
            <guid isPermaLink="false">6oCcH4CmFEYt6mO4t4tteh</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[98.01% of sites on Cloudflare now use IPv6]]></title>
            <link>https://blog.cloudflare.com/98-percent-ipv6/</link>
            <pubDate>Mon, 21 Nov 2016 14:14:46 GMT</pubDate>
            <description><![CDATA[ It's 2016 and almost every site using Cloudflare (more than 4 million of them) is using IPv6. Cloudflare sees significant IPv6 traffic globally where networks have enabled IPv6 to the consumer. ]]></description>
            <content:encoded><![CDATA[ <p>It's 2016 and almost every site using Cloudflare (more than 4 million of them) is using IPv6. Because of this, Cloudflare sees significant IPv6 traffic globally where networks have enabled IPv6 to the consumer.</p><p>The top IPv6 networks are shown here.</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/cloudflare-ipv6-percentage-vs-traffic.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Gfc6hlj4FtLgaCXSKUIYC/000d16623fe3eabcef6ea100ef8ae4bb/cloudflare-ipv6-percentage-vs-traffic.png" />
            </a>
            </figure><p>The chart shows the percentage of IPv6 within a specific network vs. the relative bandwidth of that network. We will talk about specific networks below.</p>
    <div>
      <h3>Why IPv6? Because fast internet.</h3>
      <a href="#why-ipv6-because-fast-internet">
        
      </a>
    </div>
    <p>IPv6 is faster for two reasons. The first is that many major operating systems and browsers like <a href="https://www.ietf.org/mail-archive/web/v6ops/current/msg22455.html">iOS, macOS</a>, <a href="https://tools.ietf.org/html/rfc6555">Chrome and Firefox</a> impose anywhere from a 25ms to 300ms <a href="https://tools.ietf.org/html/rfc6555">artificial delay</a> on connections made over IPv4. The second is that some mobile networks won’t need to perform extra v4 → v6 and v6 → v4 translations to connect visitors to IPv6 enabled sites if the phone is only assigned an IPv6 address. (IPv6-only phones are becoming very common. If you have a phone on T-Mobile, Telstra, SK Telecom, Orange, or EE UK, to name a few, it’s likely you’re v6-only.)</p><p>How much faster is IPv6? Our data shows that visitors connecting over IPv6 were able to connect and load pages in 27% less time than visitors connecting over IPv4. LinkedIn found an even more dramatic effect, with up to a <a href="https://www.linkedin.com/pulse/ipv6-measurements-zaid-ali-kahn">40% performance boost</a> on mobile connections over IPv6. Facebook also found a significant performance increase, around <a href="https://code.facebook.com/posts/1192894270727351/ipv6-it-s-time-to-get-on-board/">10-15% on IPv6</a>.</p>
    <div>
      <h3>Who and what is driving IPv6?</h3>
      <a href="#who-and-what-is-driving-ipv6">
        
      </a>
    </div>
    <p>IPv6 is clearly important for driving a faster, better internet, so who is driving IPv6 adoption?</p><p>In terms of countries, Belgium leads by a mile. Over the last 30 days, 56.47% of traffic (in bytes) to Belgians on Cloudflare has been over IPv6. This is largely due to Telenet, an ISP in Belgium, doing almost 96.8% of their traffic over IPv6!</p><ol><li><p>Belgium, 56.47%</p></li><li><p>Ireland, 31.75%*</p></li><li><p>Greece, 20.79%</p></li><li><p>Germany, 15.87%</p></li><li><p>Ecuador, 15.62%</p></li><li><p>Luxembourg, 15.51%</p></li><li><p>Portugal, 14.07%</p></li><li><p>Estonia, 13.75%</p></li><li><p>India, 11.84%</p></li><li><p>Peru, 10.57%</p></li></ol><p>*The Irish numbers are artificially high due to <a href="http://bgp.he.net/search?search%5Bsearch%5D=facebook">several of Facebook’s IPv6 ranges being registered in Ireland</a>. Facebook does an enormous amount of traffic over IPv6 –– 81% of Facebook’s traffic through Cloudflare is IPv6. In fact, Facebook’s crawling over IPv6 actually accounts for 6.9% of Cloudflare’s total outbound IPv6 traffic.</p><p>If you look just 6 months ago, less than 1% of India’s traffic was over IPv6. India has experienced an amazing rise in IPv6 connectivity, especially over the last month and a half.</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-15-at-4.29.22-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/33dr4KAHjtOR7C4gntej7n/81780422e6745b0a0b9404a5fe1576f6/Screen-Shot-2016-11-15-at-4.29.22-PM.png" />
            </a>
            </figure><p>The US is ranked 17th on the global list at 8.78%. And since we have a Canadian co-founder (and three Canadian PoPs), it hasn’t gone unnoticed at Cloudflare that Canada is just beating the US in 16th place at 9.14%.</p><p>A handful of networks are responsible for the majority of IPv6 traffic through Cloudflare. In fact, the top 10 networks by IPv6 traffic to and from Cloudflare are responsible for over half (55.4%) of Cloudflare’s IPv6 traffic. Those networks are:</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-16-at-2.56.58-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1o79gdePPcYaejhm5OIhv6/be78b3e338e79f6258dee2cfde6bac43/Screen-Shot-2016-11-16-at-2.56.58-PM.png" />
            </a>
            </figure><p>The above chart shows which networks account for the highest percentage of IPv6 traffic through Cloudflare. In terms of which networks are promoting IPv6 on their own network traffic, these are the networks Cloudflare sees with the highest ratios of IPv6 to IPv4 traffic:</p><table><tr><td><p><b>#</b></p></td><td><p><b>IPv6 %</b></p></td><td><p><b>ASN</b></p></td><td><p><b>NAME</b></p></td></tr><tr><td><p>1</p></td><td><p>100.0%</p></td><td><p>AS43447</p></td><td><p>Orange Polska</p></td></tr><tr><td><p>2</p></td><td><p>100.0%</p></td><td><p>AS23910</p></td><td><p>China Next Generation Internet CERNET2</p></td></tr><tr><td><p>3</p></td><td><p>100.0%</p></td><td><p>AS17419</p></td><td><p>HiNet IPv6 (Taiwan)</p></td></tr><tr><td><p>4</p></td><td><p>96.8%</p></td><td><p>AS6848</p></td><td><p>Telenet (Belgium)</p></td></tr><tr><td><p>5</p></td><td><p>91.5%</p></td><td><p>AS12271</p></td><td><p>Time Warner Cable</p></td></tr><tr><td><p>6</p></td><td><p>88.9%</p></td><td><p>AS3651</p></td><td><p>Sprint</p></td></tr><tr><td><p>7</p></td><td><p>81.0%</p></td><td><p>AS32934</p></td><td><p>Facebook</p></td></tr><tr><td><p>8</p></td><td><p>74.0%</p></td><td><p>AS54500</p></td><td><p>EGIHosting</p></td></tr><tr><td><p>9</p></td><td><p>65.9%</p></td><td><p>AS21321</p></td><td><p>Areti Internet</p></td></tr><tr><td><p>10</p></td><td><p>63.9%</p></td><td><p>AS3598</p></td><td><p>Microsoft</p></td></tr><tr><td><p>11</p></td><td><p>61.8%</p></td><td><p>AS4250</p></td><td><p>Alentus</p></td></tr><tr><td><p>12</p></td><td><p>60.3%</p></td><td><p>AS21928</p></td><td><p>T-Mobile USA</p></td></tr><tr><td><p>13</p></td><td><p>58.8%</p></td><td><p>AS22394</p></td><td><p>Verizon Wireless</p></td></tr><tr><td><p>14</p></td><td><p>57.6%</p></td><td><p>AS18126</p></td><td><p>Chubu Telecommunications Company</p></td></tr><tr><td><p>15</p></td><td><p>48.5%</p></td><td><p>AS5607</p></td><td><p>Sky (UK)</p></td></tr><tr><td><p>16</p></td><td><p>47.8%</p></td><td><p>AS16591</p></td><td><p>Google Fiber</p></td></tr><tr><td><p>17</p></td><td><p>44.6%</p></td><td><p>AS133481</p></td><td><p>AIS Fibre (Thailand)</p></td></tr><tr><td><p>18</p></td><td><p>43.6%</p></td><td><p>AS7018</p></td><td><p>AT&amp;T</p></td></tr><tr><td><p>19</p></td><td><p>43.3%</p></td><td><p>AS6621</p></td><td><p>Hughes Network Systems</p></td></tr><tr><td><p>20</p></td><td><p>43.2%</p></td><td><p>AS15943</p></td><td><p>wilhelm.tel GmbH Norderstedt</p></td></tr></table><p>In terms of devices, mobile traffic is 50% more likely to use IPv6 than desktop traffic (21.4% of mobile traffic uses IPv6 traffic, whereas only 13.6% of desktop traffic is over IPv6).</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-15-at-4.40.29-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5m77EbJMCOtPQDZXENxGie/30f33fa5aaf285702b06efab91b25402/Screen-Shot-2016-11-15-at-4.40.29-PM.png" />
            </a>
            </figure><p>In mobile, iOS sends slightly more traffic than Android over IPv6, with iOS sending about a quarter of its traffic (23.5%) and Android sending about one fifth (18.7%).</p><p>For Windows, the newer the OS, the more traffic it sends over IPv6, with XP (2001) sending just 1.1% of requests over IPv6 and Windows 10 (2015) sending 18.7%, almost a fifth of all requests over IPv6.</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-15-at-3.25.02-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/11qopJH2aqMhCjlPCX6zZu/ad54713703d8eab7c29f2882659287af/Screen-Shot-2016-11-15-at-3.25.02-PM.png" />
            </a>
            </figure><p>Here’s the full breakdown of browsers and operating systems to explain the effect of OS and browser on the percentage of IPv6 traffic. In it, you can see some interesting things, for example, iOS and ChromeOS apps tend to use IPv6 a lot more than other operating systems. Also, Chrome on mobile sends about twice as much IPv6 traffic than Chrome on desktop.</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-15-at-4.12.19-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3VbCf50ROlGFxsFaRzLCy9/96b64e98522ab7e3fa574ae0a82f1e4b/Screen-Shot-2016-11-15-at-4.12.19-PM.png" />
            </a>
            </figure>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-15-at-4.07.32-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/19jQCF3xGUoAOwUHS8i7Fh/d321d0cbd90a40178f2468dcbe87d0fa/Screen-Shot-2016-11-15-at-4.07.32-PM.png" />
            </a>
            </figure><p>Below you can see the net effect of using a specific browser or operating system on IPv6 traffic:</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/effect-2.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/58ZZ9nTaYFemmvGCb6IWlY/d8f026b8621a204445d3da438a9a5cd8/effect-2.png" />
            </a>
            </figure><p>Even more interesting is that while only 10.97% of our total DNS traffic is over IPv6, 22.03% of our DNS packet floods are IPv6 as well as IPv4 (we see no IPv6-only attacks, all the attacks we see on IPv6 are also seen on IPv4).</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/Screen-Shot-2016-11-16-at-2.06.20-PM.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/77F3ATcp7zVdiI7RynKXaq/db18ace81134e4e286a5d375e155712f/Screen-Shot-2016-11-16-at-2.06.20-PM.png" />
            </a>
            </figure>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/dns-packet-floods.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5KuI9yTKtRmvnPBo0rQ7ll/f2e6af0b3e2dcfd443ec3127a869df6c/dns-packet-floods.png" />
            </a>
            </figure>
    <div>
      <h2>Making the push for IPv6</h2>
      <a href="#making-the-push-for-ipv6">
        
      </a>
    </div>
    <p>At Cloudflare, we weren’t happy with only hundreds of thousands of IPv6-enabled websites. We wanted the millions and millions of Cloudflare customers to have IPv6. Over the last few months, we have been carefully enabling IPv6 for around 100,000 sites a day, all the time monitoring how our systems operated and how our traffic behaved. We also monitored customer support and of course, social media.</p><p>People noticed. People were happy. People posted what they saw!</p>
            <figure>
            <a href="https://www.facebook.com/groups/2234775539/permalink/10154502857425540/">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2zk7ldYLMuufHuBoIV0ZP0/bad69a7358c3e9d17071e4710123aaed/Screen-Shot-2016-11-20-at-11.26.46-PM.png" />
            </a>
            </figure><p>Some with a long range view:</p><blockquote><p>there is rapid growth in number of AAAA websites from 76K (08/2016) to 109K (10/2016) (source <a href="https://twitter.com/dan_wing">@dan_wing</a> dataset: <a href="https://t.co/CRzN5TweKz">https://t.co/CRzN5TweKz</a> ) <a href="https://t.co/0KNhqBMFsS">pic.twitter.com/0KNhqBMFsS</a></p><p>— Vaibhav Bajpai (@bajpaivaibhav) <a href="https://twitter.com/bajpaivaibhav/status/791181419913572352">October 26, 2016</a></p></blockquote><p>Some zoomed into the last few months:</p><blockquote><p>there is rapid growth in number of AAAA websites from 76K (08/2016) to 134K (11/2016) (source <a href="https://twitter.com/dan_wing">@dan_wing</a> dataset: <a href="https://t.co/CRzN5TweKz">https://t.co/CRzN5TweKz</a>) <a href="https://t.co/ygFEVSNSps">pic.twitter.com/ygFEVSNSps</a></p><p>— Vaibhav Bajpai (@bajpaivaibhav) <a href="https://twitter.com/bajpaivaibhav/status/798558510086836224">November 15, 2016</a></p></blockquote><p>In both of the above graphs, you can really see the impact of Cloudflare enabling IPv6 for all of our customers’ sites, starting in August and wrapping up this week. Below is one more public measurement from <a href="https://www.vyncke.org/ipv6status/plotsite.php?metric=w&amp;global=y&amp;pct=y">Eric Vyncke</a> where you can see the effect on world IPv6 measurements:</p>
            <figure>
            <a href="http://staging.blog.mrk.cfdata.org/content/images/2016/11/plotsite-2016-11-21-1.png">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Q3XTCyc5YRUDIMEABnWHn/2089b5485a6c3b859de0b894277b7bcb/plotsite-2016-11-21-1.png" />
            </a>
            </figure>
    <div>
      <h3>The IETF and IPv6</h3>
      <a href="#the-ietf-and-ipv6">
        
      </a>
    </div>
    <p>As of a late 2016, the IETF’s Internet Architecture Board has taken one more step in its path towards v6 adoption. It's taken the bold step of saying that <a href="https://www.iab.org/2016/11/07/iab-statement-on-ipv6/">new protocols don't need to be v4 backward compatible</a>. This can usher-in some great new protocol designs and solutions that simply don't need to live in v4's <a href="https://tools.ietf.org/html/draft-howard-sunset4-v4historic-00">legacy world</a>. At Cloudflare, we've always been aggressive with our desire to provide our customers cutting edge solutions. We can't wait to see what's cooking!</p>
    <div>
      <h3>The growing IPv6 address usage</h3>
      <a href="#the-growing-ipv6-address-usage">
        
      </a>
    </div>
    <p>Along with the increased bandwidth observed, at Cloudflare, we are seeing a solid increase in unique IPv6 addresses seen.</p><blockquote><p>In June number of IPv6 addresses (/64 masked) crossed IPv4 addresses connecting to <a href="https://twitter.com/Cloudflare">@CloudFlare</a> for the first time. <a href="https://t.co/eTPFNoueHQ">pic.twitter.com/eTPFNoueHQ</a></p><p>— Matthew Prince (@eastdakota) <a href="https://twitter.com/eastdakota/status/765699957449895936">August 17, 2016</a></p></blockquote>
    <div>
      <h3>Final thoughts</h3>
      <a href="#final-thoughts">
        
      </a>
    </div>
    <p>Cloudflare is <a href="/evenly-distributed-future/">committed</a> to bringing the most up to date, fastest and most secure technologies to our customers. We are committed to IPv6, <a href="/tls-1-3-overview-and-q-and-a/">TLS 1.3</a> and <a href="/introducing-universal-dnssec/">ubiquitous DNSSEC</a>. Just like we'd never go back to an unencrypted life, there's no going back to a v4-only world.</p><p>PS - Want to live an IPv6 life? We’re <a href="https://www.cloudflare.com/join-our-team/">hiring</a>.</p><p><i>Big thanks to Dani Grant, Igor Postelnik, Lukasz Mierzwa and Marty Strong.</i></p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[IPv6]]></category>
            <guid isPermaLink="false">45IUNYDWNgQ5Fw1Ci96Mwb</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[python-cloudflare]]></title>
            <link>https://blog.cloudflare.com/python-cloudflare/</link>
            <pubDate>Mon, 09 May 2016 22:47:07 GMT</pubDate>
            <description><![CDATA[ Very early on in the company’s history we decided that everything that CloudFlare does on behalf of its customer-base should be controllable via an API. In fact, when you login to the CloudFlare control panel, you’re really just making API calls to our backend services. ]]></description>
            <content:encoded><![CDATA[ 
    <div>
      <h3>Using the CloudFlare API via Python</h3>
      <a href="#using-the-cloudflare-api-via-python">
        
      </a>
    </div>
    <p>Very early on in the company’s history we decided that everything that CloudFlare does on behalf of its customer-base should be controllable via an <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">API</a>. In fact, when you login to the CloudFlare control panel, you’re really just making API calls to our backend services. Over time that API has matured and improved. We are now on v4 of that API.</p><p>The current CloudFlare API is documented <a href="https://api.cloudflare.com">here</a> and it’s used by both the CloudFlare control panel and directly by umpteen customers every minute of every day. The new API is designed with a clean naming structure and consistent data representation for data. It’s also extensible.</p><p>This blog entry introduces <a href="https://github.com/cloudflare/python-cloudflare">python-cloudflare</a>, a Python wrapper providing full access to the CloudFlare v4 API.</p>
    <div>
      <h3>An example</h3>
      <a href="#an-example">
        
      </a>
    </div>
    <p>Let’s get right into the thick-of-it with the simplest coding example available to show python-cloudflare in action. This example lists all your domains (zones) and also checks some basic features for each zone.</p>
            <pre><code>#!/usr/bin/env python
import CloudFlare
def main():
    cf = CloudFlare.CloudFlare()
    zones = cf.zones.get(params={'per_page':50})
    for zone in zones:
        zone_name = zone['name']
        zone_id = zone['id']
        settings_ipv6 = cf.zones.settings.ipv6.get(zone_id)
        ipv6_on = settings_ipv6['value']
        print zone_id, ipv6_on, zone_name
    exit(0)
if __name__ == '__main__':
    main()</code></pre>
            <p>The structure of the CloudFlare class matches the API documentation. The <code>CloudFlare.zones.get()</code> method returns information about the zones as per the <a href="https://api.cloudflare.com/#zone-list-zones">list zones</a> documentation. The same for <code>CloudFlare.zones.settings.ipv6.get()</code> and its <a href="https://api.cloudflare.com/#zone-settings-get-ipv6-setting">documentation</a>.</p><p>Data is passed into the methods via standard Python structures and they are returned in Python structures that match the API documentation. That means if you see an API call in the documentation, then you can translate it into the Python code in a one-to-one manner.</p><p>For example, take a look at the <a href="https://api.cloudflare.com/#waf-rules-list-rules">WAF list rules</a> API call.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/58QXJkTf6PTJW4n69AsL1R/00031b7cac29a93d4da4d3816fd1171d/1-list_rules.png" />
            
            </figure><p>This codes into <code>CloudFlare.zones.dns_records.post()</code> method with the <code>zone_id</code> as the first argument, the <code>package_id</code> as the second argument and the optional parameters passed last (or if there aren’t any; then just drop the third argument for the call). Because this is a <code>GET</code> call there’s a <code>.get()</code> as part of the method name.</p>
            <pre><code>    r = cf.zones.firewall.waf.packages.rules.get(zone_id, package_id, params=params)</code></pre>
            <p>Here’s the much simpler <a href="https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record">Create DNS record</a> API call.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/giA1qSsZ55yOwwczVcXBk/5f7b3b2a9e56856ccd75af6e054791f2/2-create_dns_record.png" />
            
            </figure><p>This would be coded into the Python method <code>CloudFlare.zones.dns_records.post()</code> with the <code>zone_id</code> as the first argument and the required parameters passed as data. Because this is a <code>POST</code> call there’s a <code>.post()</code> as part of the method name.</p>
            <pre><code>    r = cf.zones.dns_records.post(zone_id, data=dns_record)</code></pre>
            <p>Here’s an example of that Create DNS record call in action. In this code, we add two records to an existing zone. We also show how the error is handled (in classic Python style).</p>
            <pre><code>    zone_name = 'example.com'
    try:
        r = cf.zones.get(params={'name': zone_name})
    except CloudFlare.CloudFlareAPIError as e:
        exit('/zones.get %s - %d %s' % (zone_name, e, e))
    except Exception as e:
        exit('/zones.get %s - %s' % (zone_name, e))
   zone_id = r['id']
   # DNS records to create
    dns_records = [
        {'name':'foo', 'type':'A',    'content':'192.168.100.100'}
        {'name':'foo', 'type':'AAAA', 'content':'2001:d8b::100:100'},
    ]
    for dns_record in dns_records:
        try:
            r = cf.zones.dns_records.post(zone_id, data=dns_record)
        except CloudFlare.CloudFlareAPIError as e:
            exit('/zones.dns_records.post %s - %d %s' % (record['name'], e, e))</code></pre>
            <p>There’s a whole folder of example code available on the GitHub repository.</p>
    <div>
      <h2>All on GitHub for anyone to use</h2>
      <a href="#all-on-github-for-anyone-to-use">
        
      </a>
    </div>
    <p>As we stated above (and as CloudFlare has done many times before) we have placed this code up on <a href="https://github.com/cloudflare/python-cloudflare">GitHub</a> for anyone to download and use. We welcome contributions and will review any pull requests. To install it, just clone it and follow the README instructions. For those that just want to get going right now; here’s the tl;dr install:</p>
            <pre><code>$ git clone https://github.com/cloudflare/python-cloudflare
$ cd python-cloudflare
$ ./setup.py build
$ sudo ./setup.py install</code></pre>
            
    <div>
      <h2>But wait; there’s more!</h2>
      <a href="#but-wait-theres-more">
        
      </a>
    </div>
    <p>Not only do you get the python API calls, you also get a fully functioning CLI (command line interface) that allows quick creation of scripts that interface with CloudFlare.</p><p>From the CLI command you can call any of the CloudFlare API calls. The command responds with the returned JSON data. If you want to filter the results you possibly also want to install the highly-versatile <a href="https://stedolan.github.io/jq/">jq</a> command. Here’s a command to check the nameservers for a specific domain hosted on CloudFlare and then process it via jq.</p>
            <pre><code>$ cli4 name=example.com /zones | jq -c '.[]|{"name_servers":.name_servers}'
{
  "name_servers":[
    "alice.ns.cloudflare.com",
    "bob.ns.cloudflare.com"
  ]
}
$</code></pre>
            <p>The CLI command will convert on-the-fly zone names into zone identifiers. For example; if you want to check the <a href="/dnssec-an-introduction/">DNSSEC</a> status on a zone your operate on CloudFlare; then use this command.</p>
            <pre><code>$ cli4 /zones/:example.com/dnssec | jq '{"status":.status,"ds":.ds}'
{
  "status": "active",
  "ds": "example.com. 3600 IN DS 2371 13 2 00000000000000000000000000000 ..."
}
$</code></pre>
            <p>You can issue <code>GET</code> <code>PUT</code> <code>POST</code> <code>PATCH</code> or <code>DELETE</code> calls into the API. You can pass data into a CloudFlare API call with the CLI command. All documented via the <code>README.md</code> and wiki examples in GitHub.</p><p>Here’s a useful command for customers that need to flush their cache files.</p>
            <pre><code>$ cli4 --delete purge_everything=true /zones/:example.com/purge_cache
{
  "id":"d8afaec3dd2b7f8c1b470e594a21a01d"
}
$</code></pre>
            <p>See how the commands arguments match the <a href="https://api.cloudflare.com/#zone-purge-all-files">purge_cache</a> API documentation.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3E5z7ixk8yXPm3sg4hYmGT/549732f7675c9a925056e141571ee9e6/3-purge.png" />
            
            </figure><p>Finally, here’s an example of turning on DNSSEC via the API.</p>
            <pre><code>$ cli4 --patch status=active /zones/:example.com/dnssec | jq -c '{"status":.status}'
{"status":"pending"}
$</code></pre>
            <p>There are plenty more examples available within the GitHub repo.</p>
    <div>
      <h3>CloudFlare API via other languages also available</h3>
      <a href="#cloudflare-api-via-other-languages-also-available">
        
      </a>
    </div>
    <p>Python isn’t the only language you can use to interact with CloudFlare’s API. If you’re a <code>Go</code>, or <code>Node.js</code> user, we also have client libraries you can use to interact with CloudFlare on our <a href="https://github.com/cloudflare/python-cloudflare">GitHub</a>. Find them here <a href="https://github.com/cloudflare/cloudflare-go">Go client</a> and here <a href="https://github.com/cloudflare/node-cloudflare">Node.js client</a>. Want to write something in a different language? Feel free to do that. The <a href="https://api.cloudflare.com/">API</a> spec is online and ready for you to code up.</p><p>If you like what you read here today and are interested in joining one of CloudFlare’s software teams, then checkout our <a href="http://www.cloudflare.com/join-our-team">Join Our Team</a> page.</p> ]]></content:encoded>
            <category><![CDATA[API]]></category>
            <category><![CDATA[WAF Rules]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[DNSSEC]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Python]]></category>
            <category><![CDATA[Programming]]></category>
            <guid isPermaLink="false">6BqiD9VfbJKeYp2SbfqE5w</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[CloudFlare launches new data centers in Oslo and Minneapolis]]></title>
            <link>https://blog.cloudflare.com/cloudflare-launches-new-data-centers-in-oslo-and-minneapolis/</link>
            <pubDate>Fri, 22 Jan 2016 08:20:00 GMT</pubDate>
            <description><![CDATA[ Four thousand miles (6,400 kilometers) separate CloudFlare’s latest two data centers: Oslo (#75) and Minneapolis (#76). ]]></description>
            <content:encoded><![CDATA[ <p>Four thousand miles (6,400 kilometers) separate CloudFlare’s latest two data centers: Oslo (#75) and Minneapolis (#76).</p>
    <div>
      <h3>Oslo</h3>
      <a href="#oslo">
        
      </a>
    </div>
    <p>In Oslo, we have now built our third data center in Scandinavia. This joins our existing facilities in <a href="/stockholm-sweden-cloudflares-21st-data-center/">Stockholm</a> and <a href="/copenhagen-denmark-cloudflares-65th-data-center/">Copenhagen</a>. With a data center in Norway, we recognize an important country that stands above others with a staggering 95.05% of the population having Internet connectivity. This Internet penetration rate is the <a href="https://en.wikipedia.org/wiki/List_of_countries_by_number_of_Internet_users">fourth best</a> in the world. For reference, the Internet penetration rate in the US is 84%, the UK is 90% and <a href="/cairo/">Egypt</a>, where we deployed our last data center it is only 50%</p><p>At 59.9500° N, Oslo is also the “northernmost” CloudFlare data center on our network map.</p><p>Oslo, according to the Norwegian Sagas is over 1,000 years old. CloudFlare has built itself into a facility just a handful of years old and while we respect all the wonderful history and tradition associated with Norway, we hope the locals appreciate our 21st century choice.</p><p>Norway has a very important position within the history of the Internet (well the ARPANET actually). In <a href="http://www.norsar.no/norsar/about-us/History/Internet/">June 1973</a>, the Royal Radar Establishment in Norway became one of the first international connections to the ARPANET. It seems CloudFlare is just catching up with that history.</p><p>Norwegian domains end in .NO and Norway’s country <a href="https://www.cloudflare.com/learning/dns/top-level-domain/">TLD</a> operator, NORID, recently <a href="https://www.norid.no/en/nytt/support-for-new-dnssec-algorithms/">upgraded</a> their support to allow CloudFlare users to correctly setup their domains with full <a href="https://www.cloudflare.com/dnssec/how-dnssec-works/">DNSSEC</a> protection. NORID added support for ECDSA Algorithm-13, which means that all .NO domains can now use DNSSEC with CloudFlare. We are grateful for their quick actions in this area and hope that returning the favor of adding Oslo to our map continues this road to better protection of DNS traffic.</p><p>In Oslo we have connected to the Norwegian Internet Exchange <a href="https://www.uio.no/tjenester/it/nett/fastnett/nix/">NIX</a> and the Free Internet Exchange Oslo <a href="http://fixo.no/">FIXO</a>. Both will provide us with excellent coverage of the local Norwegian networks.</p><p>Norway’s excellence in Internet penetration is not the only area they excel in. Norway is also a large oil producer. In typical Scandinavian fashion the country has collected the revenue carefully and thought about its impact on current and future generations. We admire that the Norwegians have been able to save enough to provide for future generations via the <a href="http://www.nbim.no/en/">"oil fund"</a>. CloudFlare, via its careful fiscal mindset, also expects to continue serving Internet customers, well into future generations.</p><p>We are excited about placing Oslo on the CloudFlare map as our 75th data center. The studious followers of CloudFlare’s expansion plans will realize we still have more Nordic countries to add to that ever-growing map. Stay tuned!</p>
    <div>
      <h3>Minneapolis</h3>
      <a href="#minneapolis">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2MSPTMAIGb3tnCEnXU5buK/06c53c0da3b578270ba911e4de32f74f/Oslo-to-Minneapolis-1.png" />
            
            </figure><p>Map courtesy of gcmap.com</p><p>And yet, as we pointed out above, around 4,000 miles to the west, CloudFlare has followed the path of nearly a million Norwegians and decided to also put down roots in Minneapolis. The Twin Cities of Minneapolis and St. Paul are on the map as data center number 76.</p><p>Minnesota has around <a href="https://en.m.wikipedia.org/wiki/Norwegian_Minnesotan">16.5%</a> of its population with an ancestry claimed from Norway. They migrated over the last two centuries and brought with them some of their culinary customs. (e.g. lutefisk and lefse). Lefse is a hand-rolled potato-based dough that produces a soft flatbread unique to Norway. It’s yummy. As for the gelatinous lutefisk (it’s an aged and dried cod) that’s served on top of that flatbread, it’s absolutely an acquired taste (and smell). A quick review shows there’s some CloudFlare employees that love it; some that don’t. We won’t share the exact results of that poll. You, the reader, can make your own decision.</p><p>Minnesota includes some pretty famous people with Norwegian descent. Garrison Keillor, of A Prairie Home Companion fame, comes to mind. Or is that just the personas depicted within the character's in Lake Wobegon that come off as Norwegian descendants? All we know is that there’s a statue of the Unknown Norwegian in <a href="https://en.wikipedia.org/wiki/Lake_Wobegon">Lake Wobegon</a>.</p><p>Gene Amdahl is one amazing computer guy with parents of Norwegian descent. He’s one of the greatest contributors to large scale computers there ever was. First at IBM and then his own mainframe company, Amdahl Corporation. He was born in South Dakota; but we mention him here because North and South Dakota will be well-served by our Minnesota-based Minneapolis data center.</p><p>Yes, our Minneapolis data center will be able to serve more than just Minnesota. With the Midwest Internet Cooperative Exchange <a href="http://www.micemn.net/">MICE</a>, a local peering point, having CloudFlare as a new participant, we know we will be able to provide our customers with excellent coverage of this area.</p><p>Its exciting to announce these two data centers with their wonderful historical linking; but like we always say: stay tuned to hear about the next one!</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[USA]]></category>
            <category><![CDATA[Europe]]></category>
            <category><![CDATA[North America]]></category>
            <guid isPermaLink="false">3gfvAEYCj4YqiEBfsvEC0g</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Four years later and CloudFlare is still doing IPv6 automatically]]></title>
            <link>https://blog.cloudflare.com/four-years-later-and-cloudflare-is-still-doing-ipv6-automatically/</link>
            <pubDate>Fri, 05 Jun 2015 18:42:40 GMT</pubDate>
            <description><![CDATA[ Over the past four years CloudFlare has helped well over two million websites join the modern web, making us one of the fastest growing providers of IPv6 web connectivity on the Internet.  ]]></description>
            <content:encoded><![CDATA[ <p>Over the past four years CloudFlare has helped well over two million websites join the modern web, making us one of the fastest growing providers of IPv6 web connectivity on the Internet. CloudFlare's <a href="/introducing-cloudflares-automatic-ipv6-gatewa/">Automatic IPv6 Gateway</a> allows IPv4-only websites to support IPv6-only clients with zero clicks. No hardware. No software. No code changes. And no need to change your hosting provider.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2V14CHrnFNob3rp8bKgyOh/eb4377b774b73ab7b8dee684b13292a6/Screen-Shot-2015-06-05-at-10-07-51-AM.png" />
            
            </figure><p><a href="http://cs.brown.edu/~adf/cerf/Cerf_ipv6_poster.pdf">Image</a> by <a href="http://cs.brown.edu/~adf/">Andrew D. Ferguson</a></p>
    <div>
      <h3>A Four Year Story</h3>
      <a href="#a-four-year-story">
        
      </a>
    </div>
    <p>The story of IPv6 support for customers of CloudFlare is about as long as the story of CloudFlare itself. June 6th, 2011 (four years ago) was the original World IPv6 Day, and CloudFlare participated. Each year since, the global Internet community has pushed forward with additional IPv6 deployment. Now, four years later, CloudFlare is celebrating June 6th knowing that our customers are being provided with a solid IPv6 offering that requires zero configuration to enable. CloudFlare is the only <a href="https://www.cloudflare.com/network-map">global CDN</a> that provides IPv4/IPv6 delivery of content by default and at scale.</p><p>IPv6 has been <a href="/eliminating-the-last-reasons-to-not-enable-ipv6/">featured</a> <a href="/three-years-after-world-ipv6-day/">in</a> <a href="/introducing-cloudflares-automatic-ipv6-gatewa/">our</a> <a href="/ipv6-challenge-to-the-web/">blog</a> various times over the last four years. We have provided support for legacy logging systems to handle IPv6 addresses, provided <a href="https://www.cloudflare.com/ddos">DDoS protection</a> on IPv6 alongside classic IPv4 address space, and provided the open source community with software to handle <a href="/path-mtu-discovery-in-practice/">ECMP load balancing</a> correctly.</p>
    <div>
      <h3>It's all about the numbers</h3>
      <a href="#its-all-about-the-numbers">
        
      </a>
    </div>
    <p>Today CloudFlare is celebrating four years of World IPv6 Day with a few new graphs:</p><p>First, let's measure IPv6 addresses (broken down by /64 blocks).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3g911dZxFjbTq0baNqsATc/41f4610aacbb4dcd3e9a2f2b6f29d1f6/Growth-of-IPv6-IPs-on-CloudFlare-over-the-last-year-2.png" />
            
            </figure><p>While CloudFlare operates the CDN portion of web traffic delivery to end-users, we don’t control the end-user's deployment of IPv6. We do, however, see IP addresses when they are used, and we clearly see an uptick in deployed IPv6 at the end-user sites. Measuring unique IP addresses is a good indicator of IPv6 deployment.</p><p>Next we can look at how end users, using IPv6, access CloudFlare customers' websites.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5XxlbrdqfSNuD7inHmj6rQ/9757467e882831bb824510eb68d56385/Percentage-of-IPv6-Traffic-by-Device-as-seen-by-CloudFlare.png" />
            
            </figure><p>With nearly 25% of our IPv6 traffic being delivered to mobile devices as of today, CloudFlare is happy to help demonstrate that mobile operators have embraced IPv6 with gusto.</p><p>The third graph looks at traffic based on destination country and is a measure of end-users (eyeballs as they are called in the industry) that are enabled for IPv6. The graph shows the top countries that CloudFlare delivers IPv6 web traffic to.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5YPKZmpdawhtnBYDIoJL1S/77a9aa36ec0ddca87e289f431663f53f/IPv6-as-percentage-of-all-traffic-by-country.png" />
            
            </figure><p>On the Y Axis, we have the percentage of traffic delivered via IPv6. On the X Axis we have each of the last eight months. Let's just have a shoutout to Latin America. In Latin America CloudFlare operates five data centers: <a href="/buenos-aires/">Argentina</a>, <a href="/parabens-brasil-cloudflares-27th-data-center-now-live/">Brazil</a>, <a href="/bienvenido-a-chile-cloudflares-24th-data-center-now-live/">Chile</a>, <a href="/listo-medellin-colombia-cloudflares-28th-data-center/">Columbia</a>, and <a href="/lima-peru-cloudflares-29th-data-center/">Peru</a>. CloudFlare would like to highlight our Peru datacenter because it has the highest percentage of traffic being delivered over IPv6 in Latin America. Others <a href="https://twitter.com/lacnic/status/596445340905152512">agree</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6zzlrIo11Q7M09KKW2ojDO/b8e43c1b1b43397dc128fd1e5bb1b3be/twitter-lacnic-peru-ipv6.png" />
            
            </figure>
    <div>
      <h3>What's next for IPv6?</h3>
      <a href="#whats-next-for-ipv6">
        
      </a>
    </div>
    <p>The real question is: What's next for users stuck with only IPv4? Because the RIRs have depleted their IPv4 address space pools, ISPs are simply out of options regarding the need to embrace IPv6. Basically, <a href="/amazon-2bn-ipv4-tax-how-avoid-paying">there are no more IPv4 addresses available</a>.</p><p>Supporting IPv6 is even more important today than it was four years ago and CloudFlare is happy that it provides this automatic IPv6 solution for all its customers. Come try it out and don’t let other web properties languish in the non-IPv6 world by telling a friend about our <a href="https://www.cloudflare.com/ipv6">automatic IPv6 support</a>.</p> ]]></content:encoded>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[IPv4]]></category>
            <category><![CDATA[World IPv6 Day]]></category>
            <guid isPermaLink="false">89RoHkcpxlReU78VRppFY</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[Three years after World IPv6 Day]]></title>
            <link>https://blog.cloudflare.com/three-years-after-world-ipv6-day/</link>
            <pubDate>Thu, 05 Jun 2014 14:00:00 GMT</pubDate>
            <description><![CDATA[ It’s been over 1,000 days since the Internet Society’s World IPv6 Day and a lot of positive things have happened in that world of IPv6 content delivery. At CloudFlare we have not been sitting still either.  ]]></description>
            <content:encoded><![CDATA[ <p>It’s been over 1,000 days since the <a href="http://www.worldipv6day.org/faq/">Internet Society’s World IPv6 Day</a> and a lot of positive things have happened in that world of IPv6 content delivery. At CloudFlare we have not been sitting still either. Providing IPv6 access is core to our services and each and every customer has full IPv4 and IPv6 services available when their website is CloudFlare enabled.</p><p>Starting three months ago <a href="/i-joined-cloudflare-on-monday-along-with-5-000-others">CloudFlare moved to make IPv6 enabled</a> the default setting for all new accounts and for existing accounts that had simply sat on the default settings mode. This resulted in an uptick in the IPv6 traffic stats from our network and <a href="http://www.internetsociety.org/deploy360/blog/2014/04/cloudflare-enabling-ipv6-for-all-customers/">was noticed globally</a>. Our support issues have been near zero; which makes sense as the previous three years has been a fantastic proving ground for IPv6 networking.</p><p>IPv6 is here today and it works.</p><p>But it's still not widely used. It's time for that to change.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6GYEmOh20uTb4JDz53fLUO/620707a8b72eea7d2826adf92679a90e/ipv6-2_1.png" />
            
            </figure>
    <div>
      <h3>20% of the IPv6 web uses CloudFlare IPv6</h3>
      <a href="#20-of-the-ipv6-web-uses-cloudflare-ipv6">
        
      </a>
    </div>
    <p>Looking at the top one million web sites tracked by Alexa we see that around 7% are accessible using IPv6. Of that 7% a full 20% are accessible using IPv6 because they are CloudFlare customers with IPv6 enabled.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4Av7ZVqPjum2qNxblp0vK0/7cc2bb41b750087a2ad23e2ce76b405a/ipv6-1.png" />
            
            </figure><p>We hope and expect that both those percentages will grow over time.</p>
    <div>
      <h3>The web logfile problem</h3>
      <a href="#the-web-logfile-problem">
        
      </a>
    </div>
    <p>However some complex sites, that use the origin server IP address within their codebase, have had issues enabling IPv6.</p><p>Many sites log the IP address of the visitor when a web page is accessed. This has caused some interesting headaches when migrating to IPv6. Why? Because when software developers hardcode a 4-byte IPv4-address into a database they will have a near-impossible time dealing with at 16-byteIPv6 address. Take a look at this IETF style graphic showing the overall size of the two addressing schemes.</p><p>IPv4 (32 bits)
+----+----+
|####|####|
+----+----+</p><p>IPv6 (128 bits)
+----+----+----+----+----+----+----+----+
|####|####|####|####|####|####|####|####|
+----+----+----+----+----+----+----+----+</p><p>When a developer uses a string (or character) area to store the IP address there’s a string length issue.</p><p>In IPv4, the maximum length could be represented by the IP address <code>255.255.255.255</code> (which is 15 bytes long). For IPv6 the address could be <code>FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF</code> (which is 39 bytes long). Some programming languages and databases can be string length agnostic; however most aren’t.</p>
    <div>
      <h3>Pseudo IPv4 to the (Temporary) Rescue</h3>
      <a href="#pseudo-ipv4-to-the-temporary-rescue">
        
      </a>
    </div>
    <p>As a stopgap measure CloudFlare has introduced a <a href="/eliminating-the-last-reasons-to-not-enable-ipv6">pseudo IPv4</a> address that is mapped from the real IPv6 address and can be used in place of the IPv6. It's not a perfect solution and software and databases are going to have to be upgraded to support IPv6, but in the meantime this pseudo IPv4 address can be used where an IPv4 format address is expected.</p>
    <div>
      <h3>Going forward</h3>
      <a href="#going-forward">
        
      </a>
    </div>
    <p>This workaround is now available for every CloudFlare customer and we promise to persuade as many of our users who have chosen to disable IPv6 to enable IPv6 fully. Those few remaining sites will want to be part of the new Internet.</p><p>Happy third anniversary World IPv6 Day!</p> ]]></content:encoded>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[IPv4]]></category>
            <category><![CDATA[World IPv6 Day]]></category>
            <guid isPermaLink="false">4I08xkISOnWLNlHJSg9vyE</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
        <item>
            <title><![CDATA[I joined CloudFlare on Monday along with 5,000 others]]></title>
            <link>https://blog.cloudflare.com/i-joined-cloudflare-on-monday-along-with-5-000-others/</link>
            <pubDate>Thu, 13 Mar 2014 09:00:00 GMT</pubDate>
            <description><![CDATA[ There are days when you feel quite ecstatic and know you have succeeded in completing each and every task set before you. Monday was one of those days - well nearly. ]]></description>
            <content:encoded><![CDATA[ <p>There are days when you feel quite ecstatic and know you have succeeded in completing each and every task set before you. Monday was one of those days - well nearly. What didn’t I complete? The pile of forty-plus pages that needed filling out; but I digress. Let me explain the day.</p><p>I'm the new Network Strategy guy at CloudFlare and my first day was Monday, March 10th, I arrived at the offices as instructed, not knowing what to expect. After all, this was a startup! My desk; my computer; my t-shirt; my miscellaneous office items were all laid-out ready for me to sit down. You can't ask for anything more. This is the type of welcome that simply makes you know you've arrived. I had arrived.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7oIcetNZyLBQDjJ7zqdS4T/d93de38a2c53c1d406d35645c570a5de/cloudflare_martin_levy.jpg" />
            
            </figure><p>Right away, without skipping a beat, I was being walked around the offices and introduced to the San Francisco-based people at CloudFlare. The company has nearly 80 employees. It was a little daunting at first; but well worth every minute. I was delighted to meet all the people I was going to spend copious amounts of time interacting with. By the end of the hour I had met with accounting and administration, then sales, some smart marketing folks, the heads-down operations team, a cool support team and of course the network engineering group that I will work with some day. After all, I am a network guy!</p><p>I've spent a lot of years working on IP networking. I started writing network software in the 80s. Next, I spent some years building networks and datacenters. Other careers included global internet routing and internet peering. In the past 10+ years I've been a strong proponent of IPv6--more of this later.</p><p>What about that 5,000 number I mentioned? That was the other addition to CloudFlare on Monday. I walked in the door to that carefully laid-out desk and 5,000 customers signed up to have their web properties accelerated and protected by CloudFlare. Yes, 5,000! That's not a daily sign-up record, however it's nice to know that I'm not the only person that believes in CloudFlare! I think those 5,000 web properties and myself are all in very good company. I know I'll do my part to help protect those 5,000 customers plus all the other CloudFlare customers.</p><p>I'm an IPv6 guy. I fully believe in IPv6. I've lived and breathed it for many-many years. People that know me know that IPv6 have been my passion for a long time. Luckily CloudFlare also shares that passion.</p><p>The Internet is running out of addresses (think area codes and phone number in the telephone world). IPv6 fixes that issue. The IPv6 protocol was defined by the IETF back in the late 90's and has spent the last decade minimally deployed. It is sadly overlooked by many network operators. It took the in-your-face realization that IPv4 address space (the IP addressing scheme defined at the birth of the Internet) is extremely close to being fully allocated and that no more space is available before IPv6 started being taken seriously. Events like <a href="http://internetsociety.org/ipv6/archive-2011-world-ipv6-day">World IPv6 Day</a> and <a href="http://www.worldipv6launch.org/">World IPv6 Launch</a> organized by Internet Society (ISOC) helped to finally drive home the message that IPv6 really worked and that it must be deployed if we want the Internet to continue to grow. For the last three years, CloudFlare has been running an IPv4/IPv6 gateway for its customers. What that means it any CloudFlare customer’s web property is available over both IPv4 and IPv6. It is already <a href="http:/ipv6-challenge-to-the-web">deployed</a>, available, working and being <a href="http:/ipv6-day-usage-attacks-rise">used</a>!</p><p>But that's not the full story because one of the configuration options that is build into the CloudFlare customer control panel is a switch that says "IPv6 off" or "IPv6 on." (the default is "IPv6 off").</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/72joJm1mLyTC2DY8d3G7cW/a1f797fa83c98b7ea73489ac1ac58173/ipv6-off.png" />
            
            </figure><p>Many customers have flipped the switch to enable IPv6. That's good; but it's time to make the default setting "IPv6 on." In this day and age this is a very safe thing to do. Over the next few weeks CloudFlare is going to make the default for new customer be "IPv6 on." No need to flip that switch to be enabled for the whole Internet (that's IPv4 and IPv6).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/60zRTyBMSGgcjLHfyh1hRB/aec5213a9ae07fbc609189acf3ac34c5/ipv6-full.png" />
            
            </figure><p>In the upcoming weeks CloudFlare will enable IPv6 for existing customers in a staggered release. CloudFlare takes the delivery of each and every bit very serious and you can be assured that every person at the company is involved in making this operation is successful. Yes there will be the option to turn off IPv6; but we strongly believe that at this point there's little need for that option to be exercised. By the time we finish this process, there will be more IPv6-enabled web presence than all CDNs, combined.</p><p>Finally, let's go back and talk about that first day. I hadn't completed all the new employee paperwork yet I left the offices feeling excited and happy and slightly drained. CloudFlare is not a sleepy-quiet-backwater-feet-up-on-the-desk company. It's a high-paced, innovative, going-places, dynamic place to work and it's filled with dedicated people ready to build the next best thing. I'm honored to have joined the company. It's going to be a wild ride! If you want to join me (along with those 5,000 other Monday signups) check out the <a href="https://www.cloudflare.com/join-our-team">careers page</a>. We are hiring!</p> ]]></content:encoded>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[Cloudflare History]]></category>
            <category><![CDATA[Life at Cloudflare]]></category>
            <guid isPermaLink="false">6RFQqQnkwMbQDi2ywpTbhe</guid>
            <dc:creator>Martin J Levy</dc:creator>
        </item>
    </channel>
</rss>