
<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>Sat, 04 Apr 2026 13:40:38 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Building With Workers KV, a Fast Distributed Key-Value Store]]></title>
            <link>https://blog.cloudflare.com/building-with-workers-kv/</link>
            <pubDate>Fri, 28 Sep 2018 12:01:00 GMT</pubDate>
            <description><![CDATA[ Your Workers now have access to a low-latency key-value data store which lives inside our network all around the world! ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Your Workers now have access to a low-latency key-value data store which lives inside our network all around the world!</p><p>For those who don’t know, Cloudflare Workers is a new type of compute platform, built on top of our global network of 152+ data centers around the world. It allows you to write serverless code which runs in the fabric of the Internet itself, allowing you to engage with your users faster than other platforms can even get a packet to where your code is running. It’s built on a new architecture which eliminates cold starts and dramatically reduces the memory overhead of keeping your code running when compared to a platform like Amazon Lambda.</p><p>As powerful as this is, compute is just one component of what you need to build an application, you also need the ability to store data. We evaluated many of the available open source data stores on the market, but ultimately nothing was designed for a world with quite as many distributed nodes as our network. Instead, we have begun releasing our own vision for distributed storage, beginning today.</p><p>The Workers KV is a highly distributed, eventually-consistent, key value store. It will allow you to store up to a billion keys and values, and read them with ultra low latency anywhere in the world. It makes it possible to build entire applications with the performance traditionally associated with static content cached by a CDN.</p>
    <div>
      <h3>What can I do with Workers KV?</h3>
      <a href="#what-can-i-do-with-workers-kv">
        
      </a>
    </div>
    <p>First and foremost, you can build the same types of applications you build today, but in a more fault tolerant and performant way. Reading values from Workers KV is designed to have the same reliability as reading static files, making it much less likely to become unavailable than a traditional database. It’s designed to have the same performance as reading a file cached within our network, close to your users, giving it the speed of serving a static file as well.</p><p>That said, we do have some applications which we commonly see as a good entry point into writing code on the network itself. These use-cases combine a serious need for speed with a clean separation from the legacy components of your application which are stuck in a central location (for now!).</p><p>Here are just a few of those examples:</p>
    <div>
      <h3>API Gateway and Access Tokens</h3>
      <a href="#api-gateway-and-access-tokens">
        
      </a>
    </div>
    <p>An <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api-gateway/">API Gateway</a> sits between your visitors and your API. It commonly handles tasks which would be redundant, time consuming, or slow to implement in each and every service in your system. This includes tasks like rate limiting, access token validation, and routing. They work together to deliver only authenticated requests directly to the appropriate components of your system. It’s also the perfect entry point to developing code which runs everywhere. When you use Cloudflare Workers as an API Gateway, your access tokens get validated at the Cloudflare data center closest to the customer before the request is securely forwarded to your origin.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2XMwDVaHAC8SOvemALp3sw/969de9a7bfa632e3ee15c584f7e9f5d9/Workers-KV-Blog.svg" />
            
            </figure><p>In this example your authentication system will store a token when a user logs in. I'm using <code>curl</code>, but the backend code for your system is more likely to use whatever interface it has for making HTTPS requests. This request stores a blob of JSON identifying this token in a Worker KV namespace <code>$NAMESPACE_ID</code> with a key of <code>$TOKEN_ID</code>:</p>
            <pre><code>curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/$TOKEN_ID \
-X PUT \
-H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY" \
-H "X-Auth-Email: $CLOUDFLARE_AUTH_EMAIL" \
-d '{
  "userId": "bob",
  "expires": "2018-07-11T03:44:12Z"
}'</code></pre>
            <p>Your Worker code, which runs on every request, will check if the token the user provides matches one you have stored. A single line of code (<code>TOKEN_STORE.get()</code>) pulls the JSON stored above from the Worker KV</p>
            <pre><code>addEventListener('fetch', event =&gt; {
 event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
 const token = request.headers.get('Authorization')
 if (!token)
   return new Response("An Authorization header is required", {status: 401})

 const tokenInfo = await TOKEN_STORE.get(token, "json")
 if (!tokenInfo)
   return new Response("Invalid token", {status: 403})
 
 if (Date.parse(tokenInfo.expires) &lt; Date.now())
   return new Response(“Token expired”, {status: 403}) 

 request = new Request(request)
 request.headers.set("User-Id", tokenInfo.userId)
 return fetch(request)
}</code></pre>
            <p>A secure authentication system which adds virtually no latency at 1/7th the cost of Amazon API Gateway (with so much more flexibility and power)!</p>
    <div>
      <h3>Dynamic Data</h3>
      <a href="#dynamic-data">
        
      </a>
    </div>
    <p>Traditionally you’ve had to decide between showing a super fast static site to your visitors, or being able to include dynamic data customizing your site for each visitor. That customization could be showing different products based on the customer’s profile, A/B testing site variants, or even including the customer’s current shopping cart and account information. Rather than waiting for this information to be served from a central database, it’s now possible to store it close to every visitor, delivering a custom page as quickly as you could a static resource.</p><p>For example, let’s say we have translations of our site stored as JSON in the KV store. We can dynamically insert this translation data as Javascript into the HTML of our site. In this example our site has a block which looks like this:</p>
            <pre><code>&lt;html&gt;
 &lt;head&gt;
   &lt;script&gt;
     var TRANSLATION_DATA = TRANSLATION DATA HERE
   &lt;/script&gt;
 &lt;/head&gt;

 ...
&lt;/html&gt;</code></pre>
            <p>Our worker replaces that text with the content of our translations. You could alternatively use a Javascript templating engine or parse the content of the page to do something like Server-Side Includes.</p>
            <pre><code>addEventListener('fetch', event =&gt; {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const token = request.headers.get('Authorization')


  const translationsPromise = TRANSLATION_DATA.get(country)
  const response = await fetch(request)
  const translations = await translationsPromise

  let newBody = await response.text()
  const ct = response.headers.get('content-type')
  if (ct.startsWith('text/html') &amp;&amp; response.status === 200){
    newBody = newBody.replace('TRANSLATION DATA HERE', translations)
  }

  return new Response(newBody, response)
}</code></pre>
            <p>Workers is a full programming environment, meaning this is just the beginning. We have customers rendering their entire React App inside Workers, fully bootstrapping the data required to render their site.</p>
    <div>
      <h3>Configuration</h3>
      <a href="#configuration">
        
      </a>
    </div>
    <p>The Workers KV store creates a powerful way to configure your running Workers without having to redeploy them. You might want to implement feature flags to enable or disable features at will, or to dynamically update the data your code uses to make decisions. Workers deploy in under 30 seconds, but it’s common to have more data than can easily fit in Worker code. For example, we have customers interested in using Workers KV to block messages from lost or stolen IoT devices before they ever reach their origin:</p>
            <pre><code>addEventListener('fetch', event =&gt; {
 event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
 const deviceId = request.headers.get('device-id')
 const bannedEntry = await BANNED_DEVICES.get(deviceId)
 if (bannedEntry !== null){
   return new Response("This device has been banned", {status: 403})
 }

 return fetch(request)
}</code></pre>
            
    <div>
      <h3>Cloud Functions</h3>
      <a href="#cloud-functions">
        
      </a>
    </div>
    <p>One thing we’re excited about when we think about the Workers KV store is the potential for building beyond web applications. There are many situations where developers are looking for an easy way to execute code without worrying about provisioning or maintaining infrastructure. One of the most common cases we see is joining systems together.</p><p>For example, one of our customers is planning on using Workers KV to connect their Point of Sale system with their Delivery Service’s API:</p>
            <pre><code>// The endpoint we have bound this to is polled periodically
addEventListener('fetch', event =&gt; {
 event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
 const orderResp = await fetch(`https://api.pos-system.com/orders/active`, {
   headers: {
     'Authorization': 'POS_API_KEY'
   }
 })

 const orders = await orderResp.json()

 for (var i=0; i &lt; orders.length; i++){
   let order = orders[i]

   const syncedData = await SYNCED_ORDERS.get(order.id, "json")

   // If the order data is newer than the last data we sent to the delivery company,
   // update it.
   if (syncedData.modifiedAt &lt; order.modifiedAt) {
     await fetch(`https://api.delivery-system.com/orders/${ order.id }`, {
       method: 'POST',
       body: JSON.stringify(order),
       headers: {
         'Content-Type': 'application/json',
         'Authorization': 'DELIVERY_API_KEY'
       }
     })

     await SYNCED_ORDERS.put(order.id, JSON.stringify(order))
   }
 }

 return new Response("?")
}</code></pre>
            
    <div>
      <h3>Limits and Pricing</h3>
      <a href="#limits-and-pricing">
        
      </a>
    </div>
    <p>Workers KV is launching today in a limited beta. As we get feedback and operational experience we will be relaxing our storage limits and granting access to more users. While we may have more restrictive limits during beta, you can design your applications around the following characteristics:</p><ul><li><p>Up to 1 billion keys per namespace</p></li><li><p>Keys of up to 2 kB</p></li><li><p>Values of up to 64 kB</p></li><li><p>Eventually consistent, global consistency within 10 seconds</p></li><li><p>100k+ reads per second per key</p></li><li><p>Up to one write per second per key</p></li></ul><p>We worked hard to make the pricing of Workers KV easy to understand and affordable for virtually any use case. Your $5 monthly Workers compute minimum includes 1 GB of KV storage and up to 10 million KV reads. If you use less than the 10 million included Worker requests now, you can use KV without paying a single cent more.</p><p>Beyond the minimums, Workers KV is billed at $0.50 per GB-month of additional storage and $0.50 per million additional KV reads.</p><p>To get beta access <a href="https://goo.gl/forms/1xd57PdiR9DdhxZs1">sign up here</a>, we can’t wait to see what you build!</p><p><a href="/subscribe/"><i>Subscribe to the blog</i></a><i> for daily updates on all of our announcements.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/13ojPczyOItZyN4of0hmQB/096b0f32c5fffc9b10bf01a5aeb47885/Cloudflare-Birthday-Week-8.png" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Serverless]]></category>
            <category><![CDATA[Cloudflare Workers KV]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">4CrGgihX3gQogyxuRrZFG3</guid>
            <dc:creator>Stephen Pinkerton</dc:creator>
            <dc:creator>Zack Bloom</dc:creator>
        </item>
        <item>
            <title><![CDATA[Build and Deploy Functions to Cloudflare’s 152+ Data Centers with Serverless]]></title>
            <link>https://blog.cloudflare.com/serverless-cloudflare-workers/</link>
            <pubDate>Tue, 11 Sep 2018 13:00:00 GMT</pubDate>
            <description><![CDATA[ We’re very excited to announce that Cloudflare Workers are now integrated into the Serverless framework as a serverless cloud provider! ]]></description>
            <content:encoded><![CDATA[ <p></p><p>We’re very excited to announce that Cloudflare Workers are now integrated into the <a href="https://github.com/serverless/serverless">Serverless framework</a> as a serverless cloud provider! Serverless’ open source framework has become a must-have for many developers, and we want to make it as simple as possible to harness the power of Cloudflare’s distributed computing network.</p><p>Workers have become essential to the way people build applications on the web. The expressiveness of modern JavaScript combined with sub-30 second deploys to Cloudflare’s network of 152+ datacenters means that you can truly build your application <i>into</i> our global compute network. Up until this point, deploying Workers required doing all of your editing through our browser-based IDE or developing one’s own custom tooling on top of our API. But many developers have their own environments and are already familiar with the Serverless framework, so it seemed natural that we build first-class support for Workers into Serverless!</p><p>You can now define the entire structure and routing behavior of your Workers scripts in code and <a href="https://developers.cloudflare.com/workers/deploying-workers/serverless/">deploy</a> them with ease using <code>serverless deploy</code> from your own development environment. Store configuration files in version control alongside your application code. And feel more confident testing your application with <code>serverless invoke</code>, a new way to quickly send requests to endpoints of interest with specific arguments and headers.</p>
    <div>
      <h3>What is Serverless?</h3>
      <a href="#what-is-serverless">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/serverless/what-is-serverless/">Serverless</a> is a paradigm for building applications without concern for the underlying infrastructure. It lets developers focus on writing code and lets them deploy quickly and cheaply to a cloud provider which manages servers, networking, and configuration.</p><p>The Serverless framework takes this a step further. It empowers developers to write applications with consistent tooling and project structure, which speeds up development and simplifies deployment to common <a href="https://serverless.com/framework/docs/">cloud providers</a>.</p><p>Our new plugin lets you use <code>serverless</code> command line tool, which you may already be accustomed to, but with Cloudflare Workers! Define the structure of your Worker in <code>serverless.yml</code> and <code>serverless deploy</code> it to our 152+ data centers around the world.</p><p>How simple is it? Here’s a complete <code>serverless.yml</code> for a <a href="/building-a-serverless-slack-bot-using-cloudflare-workers/">Slackbot</a> running on Workers. Serverless uses the idea of functions (as in functions-as-service) to separate concerns within an application. For Workers, a function <i>is</i> your application, and the <code>script</code> field refers to the name of your Worker script locally on disk.</p>
            <pre><code>service:
    name: slack-bot
    config:
      accountId: CLOUDFLARE_ACCOUNT_ID 
      zoneId: CLOUDFLARE_ZONE_ID 
      workers:
        slackbot:
          routes:
            - slackbot.example.com

provider:
  name: cloudflare

plugins:
  - serverless-cloudflare-workers

functions:
  SlackBot:
    worker: slackbot
    script: bot</code></pre>
            <p><a href="https://developers.cloudflare.com/workers/api/config-api-for-enterprise/"><i>Learn how retrieve your Cloudflare account and zone IDs</i></a></p><p>To deploy your new Worker, simply run <code>serverless deploy</code> or <code>serverless deploy -f SlackBot</code>.</p>
    <div>
      <h4>Getting Started</h4>
      <a href="#getting-started">
        
      </a>
    </div>
    
            <pre><code>$ npm install -g serverless
$ serverless create --template cloudflare-workers --path new-project
$ cd new-project
$ npm install
$ export CLOUDFLARE_AUTH_EMAIL=you@example.com
$ export CLOUDFLARE_AUTH_KEY=YOUR_API_KEY
$ serverless deploy</code></pre>
            
    <div>
      <h4>Enterprise Features</h4>
      <a href="#enterprise-features">
        
      </a>
    </div>
    <p>Use the <code>cloudflare-workers-enterprise</code> template if you're on an enterprise plan in order to deploy multiple scripts to Workers.</p>
    <div>
      <h4>Learn More</h4>
      <a href="#learn-more">
        
      </a>
    </div>
    <p>Interested? Get started by <a href="https://github.com/serverless/serverless">reading the docs</a>.</p><p>Looking to build even more powerful Workers? Check out the <a href="https://developers.cloudflare.com/workers/recipes/">recipes</a> on the docs about <a href="https://developers.cloudflare.com/workers/writing-workers/using-npm-modules/">including NPM modules</a> in your project and performing additional <a href="https://developers.cloudflare.com/workers/recipes/conditional-routing/">routing</a> within your functions.</p><p>Are you building something cool with Workers? <a>Let us know!</a></p><hr /><p><i>If you are in the San Francisco Bay Area, and are interested in hearing from Bay Area serverless experts and explorers, you're invited to come by tonight's </i><a href="https://www.heavybit.com/events/serverless-meetup-real-world-serverless-with-cloudflare/"><i>Serverless Meetup. RSVP here!</i></a><i> Doors open at 6.</i></p> ]]></content:encoded>
            <category><![CDATA[Serverless]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">5FgcsQSEVmeV7wt6NZDAfa</guid>
            <dc:creator>Stephen Pinkerton</dc:creator>
        </item>
        <item>
            <title><![CDATA[Enable Private DNS with 1.1.1.1 on Android 9 Pie]]></title>
            <link>https://blog.cloudflare.com/enable-private-dns-with-1-1-1-1-on-android-9-pie/</link>
            <pubDate>Thu, 16 Aug 2018 15:01:15 GMT</pubDate>
            <description><![CDATA[ Android 9 Pie includes a slew of new features around digital well-being and privacy. Here's how to use the new Private DNS feature with 1.1.1.1. ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/57zPjGaEEfAzjR9eaXnnof/5c2c5cec12dcb52cea584149a32ca509/image2-1.png" />
            
            </figure><p>Recently, Google officially launched <a href="https://www.android.com/versions/pie-9-0/">Android 9 Pie</a>, which includes a slew of new features around digital well-being, security, and privacy. If you’ve poked around the network settings on your phone while on the beta or after updating, you may have noticed a new <a href="https://android-developers.googleblog.com/2018/04/dns-over-tls-support-in-android-p.html">Private DNS Mode</a> now supported by Android.</p><p>This new feature simplifies the process of configuring a custom secure DNS resolver on Android, meaning parties between your device and the websites you visit won’t be able to snoop on your DNS queries because they’ll be encrypted. The protocol behind this, TLS, is also responsible for the green lock icon you see in your address bar when visiting websites over HTTPS. The same technology is useful for encrypting DNS queries, ensuring they cannot be tampered with and are unintelligible to ISPs, mobile carriers, and any others in the network path between you and your DNS resolver. These new security protocols are called <a href="https://developers.cloudflare.com/1.1.1.1/dns-over-https/">DNS over HTTPS</a>, and <a href="https://developers.cloudflare.com/1.1.1.1/dns-over-tls/">DNS over TLS</a>.</p>
    <div>
      <h3>Configuring 1.1.1.1</h3>
      <a href="#configuring-1-1-1-1">
        
      </a>
    </div>
    <p>Android Pie only supports DNS over TLS. To enable this on your device:</p><ol><li><p>Go to Settings → Network &amp; internet → Advanced → Private DNS.</p></li><li><p>Select the Private DNS provider hostname option.</p></li><li><p>Enter <code>1dot1dot1dot1.cloudflare-dns.com</code> and hit Save.</p></li><li><p>Visit <a href="https://1.1.1.1/help">1.1.1.1/help</a> (or <a href="https://1.0.0.1/help">1.0.0.1/help</a>) to verify that “Using DNS over TLS (DoT)” shows as “Yes”.</p></li></ol><p>And you’re done!</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/75TkxmEoBX1RdWQx1Gjv9h/07d64cd4c8c7df85f294e81a4d281a05/Screenshot_20180807-102253-1.png" />
            
            </figure>
    <div>
      <h3>Why Use Private DNS?</h3>
      <a href="#why-use-private-dns">
        
      </a>
    </div>
    <p>So how do <a href="https://developers.cloudflare.com/1.1.1.1/dns-over-https/">DNS over HTTPS</a> and <a href="https://developers.cloudflare.com/1.1.1.1/dns-over-tls/">DNS over TLS</a> fit into the current state of internet privacy?</p><p><a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS</a> is the protocol that encrypts your traffic over an untrusted communication channel, like when browsing your email on a cafe’s wireless network. Even with TLS, there is still no way of knowing if your connection to the DNS server has been hijacked or is being snooped on by a third party. This is significant because a bad actor could configure an open WiFi hotspot in a public place that responds to DNS queries with falsified records in order to hijack connections to common email providers and online banks. <a href="https://www.cloudflare.com/dns/dnssec/how-dnssec-works/">DNSSEC</a> solves the problem of guaranteeing authenticity by signing responses, making tampering detectable, but leaves the body of the message readable by anyone else on the wire.</p><p>DNS over HTTPS / TLS solves this. These new protocols ensure that communication between your device and the resolver is encrypted, just like we’ve come to expect of HTTPS traffic.</p><p>However, there is one final insecure step in this chain of events: the revealing of the SNI (server name indication) during the initial TLS negotiation between your device and a specific hostname on a server. The requested hostname is not encrypted, so third parties still have the ability to see the websites you visit. It makes sense that the final step in completely securing your browsing activity involves <a href="https://tools.ietf.org/html/draft-ietf-tls-sni-encryption-03">encrypting SNI</a>, which is an in-progress standard that Cloudflare has joined other organizations to define and promote.</p>
    <div>
      <h3>DNS in an IPv6 World</h3>
      <a href="#dns-in-an-ipv6-world">
        
      </a>
    </div>
    <p>You may have noticed that the private DNS field does not accept an IP address like 1.1.1.1 and instead wants a hostname like 1dot1dot1dot1.cloudflare-dns.com. This doesn’t exactly roll off the tongue, so we’re working on deploying an easier to remember address for the resolver, and will continue to support 1.1.1.1, 1.0.0.1, and 1dot1dot1dot1.cloudflare-dns.com.</p><p>Google requires a hostname for this field because of how mobile carriers are adapting to a dual-stack world in which IPv4 and IPv6 coexist. Companies are adopting IPv6 <a href="https://www.internetsociety.org/resources/doc/2017/state-of-ipv6-deployment-2017/">much more rapidly</a> than generally expected, and all major mobile carriers in the US <a href="http://www.worldipv6launch.org/major-mobile-us-networks-pass-50-ipv6-threshold/">support it</a>, including T-Mobile who has <a href="https://www.internetsociety.org/resources/deploy360/2014/case-study-t-mobile-us-goes-ipv6-only-using-464xlat/">gone completely IPv6</a>. In a world where the <a href="https://www.statista.com/statistics/471264/iot-number-of-connected-devices-worldwide/">approximately 26 billion</a> internet-connected devices vastly outnumber the 4.3 billion IPv4 addresses, this is good news. And in a forward-thinking move, Apple requires that all new iOS apps <a href="/supporting-the-transition-to-ipv6-only-networking-services-for-ios/">must support</a> single-stack IPv6 networks.</p><p>However, we still live in a world with IPv4 addresses, so phone manufacturers and carriers have to architect their systems with backwards compatibility in mind. Currently, iOS and Android request both <a href="https://www.cloudflare.com/learning/dns/dns-records/dns-a-record/">A</a> and AAAA DNS records, which contain the IP address(es) corresponding to a domain in version 4 and version 6 format, respectively. Try it out yourself:</p>
            <pre><code>$ dig A +short 1dot1dot1dot1.cloudflare-dns.com
1.0.0.1
1.1.1.1

$ dig AAAA +short 1dot1dot1dot1.cloudflare-dns.com
2606:4700:4700::1001
2606:4700:4700::1111</code></pre>
            <p>To talk to a device with only an IPv4 address over an IPv6 only network, the DNS resolver has to translate IPv4 addresses into the IPv6 address using <a href="https://en.wikipedia.org/wiki/IPv6_transition_mechanism#DNS64">DNS64</a>. The requests to those translated IP addresses then go through the NAT64 translation service provided by the network operator. This is all completely transparent to the device and web server.</p><p>Learn more about this process <a href="https://blog.apnic.net/2016/06/09/lets-talk-ipv6-dns64-dnssec/">from APNIC</a>.</p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[Resolver]]></category>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Privacy]]></category>
            <guid isPermaLink="false">5YIdDI8hSCNXllagVrj1Di</guid>
            <dc:creator>Stephen Pinkerton</dc:creator>
        </item>
        <item>
            <title><![CDATA[1.1.1.1 for Your Organization]]></title>
            <link>https://blog.cloudflare.com/1-1-1-1-for-your-organization/</link>
            <pubDate>Wed, 25 Jul 2018 15:00:00 GMT</pubDate>
            <description><![CDATA[ Our fast, privacy-centric 1.1.1.1 project can secure your users on the Internet, and you’ll always know that they’ll be the first to benefit from the work of Internet standards bodies like the IETF. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>A few months ago, we <a href="/announcing-1111/">announced</a> the world’s fastest, privacy-first, recursive DNS resolver, <a href="https://1.1.1.1/">1.1.1.1</a>. It’s been exciting watching the community reaction to this project, and to be in a position where we can promote new standards around private DNS.</p><p>The Cloudflare network helps to make measurable improvements to the Internet by rolling out security updates to millions of websites at once. This allows us to provide <a href="https://www.cloudflare.com/application-services/products/ssl/">free SSL certificates</a> to any website, and to implement <a href="/you-get-tls-1-3-you-get-tls-1-3-everyone-gets-tls-1-3/">state-of-the-art security</a> for our customers.</p><p>We saw the same potential impact when deciding to build 1.1.1.1. From launch, we wanted people to be able to connect to their favorite websites faster, and to ensure that no entity between their computer and the origin web server was recording their browsing history. We’re proud to have achieved that goal with the <a href="https://www.dnsperf.com/#!dns-resolvers">fastest public DNS resolver in the world</a>.</p><p>Consumer adoption of the resolver has been strong, and it makes sense: new legislation allows ISPs to track and sell your web history. But not everyone feels comfortable changing the default DNS resolver on their computer or home network. <b>We want to empower IT departments and network administrators to change the default DNS resolver for their organization, at the network or device level.</b> Our fast, privacy-centric 1.1.1.1 project can secure your users on the Internet, and you’ll always know that they’ll be the first to benefit from the work of Internet standards bodies like the IETF.</p><p>If you, or your IT department, are interested, please <a href="https://goo.gl/forms/tEojnNLT9zRFfYr43">get in touch!</a> We’d be delighted to answer your questions and we'll try to send you some "trendy" 1.1.1.1 stickers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5GjdziTNxrZT4Smchix6pz/8437c817e104c45a206bc179909ad7e7/1.1.1.1CF.jpg" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[Resolver]]></category>
            <guid isPermaLink="false">4Oc0uakTMnAEDrXdbEd5eJ</guid>
            <dc:creator>Stephen Pinkerton</dc:creator>
        </item>
    </channel>
</rss>