
<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, 11 Apr 2026 04:53:07 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Supporting the transition to IPv6-only networking services for iOS]]></title>
            <link>https://blog.cloudflare.com/supporting-the-transition-to-ipv6-only-networking-services-for-ios/</link>
            <pubDate>Tue, 07 Jun 2016 18:55:29 GMT</pubDate>
            <description><![CDATA[ Early last month Apple announced that all apps submitted to the Apple Store June 1 forward would need to support IPv6-only networking as they transition to IPv6-only network services in iOS 9.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Early last month Apple announced that all apps submitted to the Apple Store June 1 forward would need to support IPv6-only networking as they transition to IPv6-only network services in iOS 9. <a href="https://developer.apple.com/news/?id=05042016a">Apple reports</a> that “Most apps will not require any changes”, as these existing apps support IPv6 through Apple's <a href="https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/">NSURLSession</a> and <a href="https://developer.apple.com/library/mac/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html">CFNetwork</a> APIs.</p><p>Our goal with IPv6, and any other emerging networking technology, is to make it ridiculously easy for our customers to make the transition. Over 2 years ago, we published <a href="/eliminating-the-last-reasons-to-not-enable-ipv6/">Eliminating the last reasons to not enable IPv6</a> in celebration of World IPv6 Day. CloudFlare has been offering full IPv6 support as well as our IPv6-to-IPv4 gateway to all of our customers since 2012.</p>
    <div>
      <h2>Why is the transition happening?</h2>
      <a href="#why-is-the-transition-happening">
        
      </a>
    </div>
    <p>IPv4 represents a technical limitation, a hard stop to the number of devices that can access the Internet. When the Internet Protocol (IP) was first introduced by Vint Cerf and Bob Kahn in the late 1970s, Internet Protocol Version 4 (IPv4) used a 32-bit (four-byte) number, allowing about 4 billion unique addresses. At the time, IPv4 seemed more than sufficient to power the World Wide Web. On January 31, 2011, the top-level pool of Internet Assigned Numbers Authority (IANA) IPv4 addresses was officially exhausted. On September 24th 2015, The American Registry for Internet Numbers (ARIN) officially ran out of IPv4 addresses.</p><p>It was clear well before 2011 that 4 billion addresses would not be nearly enough for all of the people in the world—let alone all of the phones, tablets, TVs, cars, watches, and the upcoming slew of devices that would need to access the Internet. In 1998, the Internet Engineering Task Force (IETF) had formalized IPv4’s successor, IPv6. IPv6 uses a 128-bit address, which theoretically allows for approximately 340 trillion trillion trillion or 340,000,000,000,000,000,000,000,000,000,000,000,000 unique addresses.</p><p>So here we are nearly 20 years since IPv6 and… we’re at a little over <a href="https://www.google.com/intl/en/ipv6/statistics.html">10% IPv6 adoption</a>. :/</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7auUBz1f5QI5zQ6RshjzIQ/bc922b95265c50403926469f23493fcf/ipv6-adoption.png" />
            
            </figure><p>(<a href="http://www.google.com/intl/en/ipv6/statistics.html">source</a>)</p><p>The good news, as the graph above indicates, is that the rate of IPv6 adoption has increased significantly; last year being a record year with a 4% increase, according to Google. The way Google derives these numbers is by having a small number of their users execute JavaScript code that tests whether a computer can load URLs over IPv6.</p>
    <div>
      <h2>What’s up with the delay?</h2>
      <a href="#whats-up-with-the-delay">
        
      </a>
    </div>
    <p>Transitioning from IPv4 to IPv6 is a complex thing to execute on a global scale. When data gets sent through the Internet, packets of data are sent using the IP protocol. Within each packet you have a number of elements besides the payload (the actual data you’re sending), including the source and destination.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3QaaHehStrAqmqeUfDkgdF/23ebb39301d30906d76a564757e031e0/IPv4-Header.png" />
            
            </figure><p>In order for the transmission to get to its destination, each device passing it along (clients/servers, routers, firewalls, load balancers, etc) needs to be able to communicate with the other. Traditionally, these devices communicate with IPv4, the universal language on the Internet. IPv6 represents an entirely new language. In order for all of these devices to be able to communicate, they all need to talk IPv6 or have some sort of translator involved.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3ldIqoD4iT6MrFRJEUVMaP/75e3c62e41ded36b7271ddcea3e55a9c/IPv6-Header.png" />
            
            </figure><p>Translation requires technologies such as NAT64 and DNS64. NAT64 allow IPv6 hosts to communicate with IPv4 servers by creating a NAT-mapping between the IPv6 and the IPv4 address. DNS64 will synthesize AAAA records from A records. DNS64 has some known issues like DNSSEC validation failure (because the DNS server doing the translation is not the owner’s domain server). For service providers, supporting IPv4/IPv6 translation means providing separate IPv4 and IPv6 connectivity thus incurring additional complexity as well as <a href="/amazon-2bn-ipv4-tax-how-avoid-paying">additional operational and administrative costs</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6n6te48e8rLh9NVwIdUqS1/fdc1bd1eb37eb8bfc7d73811e3038a31/IPv6.png" />
            
            </figure>
    <div>
      <h2>Making the move</h2>
      <a href="#making-the-move">
        
      </a>
    </div>
    <p>Using IP literals (hard coded IP addresses) in your code is a common pitfall to meeting Apple's IPv6 support requirement. Developers should check their configuration files for any IP literals and replace them with domain names. Literals should not be embedded in protocols either. Although literals may seem unavoidable when using certain low-level APIs in communications protocols like SIP, WebSockets, or P2PP, Apple offers <a href="https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW13">high-level networking frameworks</a> that are easy to implement and less error prone.</p><p>Stay away from network preflighting and instead simply attempt to connect to a network resource and gracefully handle failures. Preflighting often attempts to check for Internet connectivity by passing IP addresses to network <a href="https://developer.apple.com/library/mac/documentation/SystemConfiguration/Reference/SCNetworkReachabilityRef/index.html#//apple_ref/doc/uid/TP40007260">reachability APIs</a>. This is bad practice both in terms of introducing IP literals in your code and misusing reachability APIs.</p><p>For iOS developers, it’s important to review <a href="https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html">Supporting IPv6 DNS64/NAT64 Networks</a> to ensure code compatibility. Within Apple’s documentation you’ll find a list of IPv4-specific APIs that need to be eliminated, IPv6 equivalents for IPv4 types, system APIs that can synthesize IPv6 addresses, as well as how to set up a local IPv6 DNS64/NAT64 network so you can regularly test for IPv6 DNS64/NAT64 compatibility.</p><p>CloudFlare offers a number of IPv6 features that developers can take advantage of during their migration. If your domain is running through CloudFlare, enabling IPv6 support is as simple as enabling IPv6 Compatibility in the dashboard.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4T5GBCooyN3nfHgu3lfLvM/c033cbedb4f3f4f497fcd2f60811ebf9/turning-on-ipv6.png" />
            
            </figure><p>Certain legacy IPv4 applications may be able to take advantage of CloudFlare's Pseudo IPv4. Pseudo IPv4 works by adding an HTTP header to requests established over IPv6 with a "pseudo" IPv4 address. Using a hashing algorithm, Pseudo IPv4 will create a <a href="https://en.wikipedia.org/wiki/Classful_network">Class E</a> IPv4 address which always produces the same output for the same input; the same IPv6 address will always result in the same Pseudo IPv4 address. Using the Class E IP space, we have access to 268,435,456 possible unique IPv4 addresses.</p><p>Pseudo IPv4 offers 2 options: Add Header or Overwrite Headers. Add Header will automatically add a header (Cf-Pseudo-IPv4), that can be parsed by software as needed. Overwrite Headers will overwrite the existing Cf-Connecting-IP and X-Forwarded-For headers with a Pseudo IPv4 address. The overwrite option has the advantage (in most cases), of not requiring any software changes. If you choose the overwrite option, we'll append a new header (Cf-Connecting-IPv6) in order to ensure you can still find the actual connecting IP address for debugging.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7mrxwvi0fTQXYOvzaOSddj/30e338e4a96449dc6b8f0311f6170b98/pseudo-ipv4.png" />
            
            </figure><p>For iOS developers under the gun to make the transition to IPv6, there are benefits to the move apart from compliance with Apple’s policy. Beyond the inherent security benefits of IPv6 like mandatory IPSec, many companies have seen performance gains as well. Real User Measurement studies conducted by <a href="https://code.facebook.com/posts/1192894270727351/ipv6-it-s-time-to-get-on-board/">Facebook</a> show IPv6 made their site 10-15 percent faster and <a href="https://www.youtube.com/watch?v=FUtG89C8h_A">LinkedIn</a> realized 40 percent gains on select mobile networks in Europe.</p><p>For domains currently running through CloudFlare, since we currently do not enable IPv6 by default you’ll want to go into your account and make sure IPv6 Compatibility is enabled under the Network tab. CloudFlare has been offering rock solid IPv6 since 2012 with one-click IPv6 provisioning, an IPv4-to-IPv6 translation gateway, Pseudo IPv4, and much more. For more information, be sure to check out our IPv6 page: <a href="https://www.cloudflare.com/ipv6/">https://www.cloudflare.com/ipv6/</a></p> ]]></content:encoded>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[IPv4]]></category>
            <category><![CDATA[iOS]]></category>
            <category><![CDATA[Mobile]]></category>
            <guid isPermaLink="false">3lLu53EgnErBiBadIuef0s</guid>
            <dc:creator>Dragos Bogdan</dc:creator>
        </item>
        <item>
            <title><![CDATA[iOS 9 — How did the launch really go?]]></title>
            <link>https://blog.cloudflare.com/ios-9-how-did-the-launch-really-go/</link>
            <pubDate>Tue, 22 Sep 2015 22:53:00 GMT</pubDate>
            <description><![CDATA[ On September 16 2015 at 10:00AM PST, Apple released their latest update to the iPhone: iOS 9. For several days after the announcement, ISPs and customers reported problems downloading iOS 9 due to overloaded servers. ]]></description>
            <content:encoded><![CDATA[ <p>On September 16 2015 at 10:00AM PST, Apple released their latest update to the iPhone: iOS 9. For several days after the announcement, ISPs and customers reported problems downloading iOS 9 due to overloaded servers. Obviously, the demand for iOS 9 was higher than even Apple anticipated, but how much higher? Few organizations outside of Apple have any idea what the actual iOS 9 adoption rates look like.</p><p>By analyzing the user agent strings of requests passing through the CloudFlare network, we were able to piece together a pretty good picture of iOS 9 uptake. Here’s an hour-by-hour look at requests from iOS 8 devices (blue) and iOS 9 devices (orange) for the first 24 hours after the announcement.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2evKuvfY86P7afmY5e1I1/305d979b400f4d66f3fee1aed100b63f/image_0-1.jpg" />
            
            </figure><p>We started seeing small amounts of iOS 9 usage <i>before</i> it was officially released, followed by a spike immediately after the launch (times are shown in UTC, so the 10:00AM announcement shows up as hour 18). You can also see a second spike at 10:00 UTC when Europe started waking up.</p>
    <div>
      <h3>What about iOS 9.1?</h3>
      <a href="#what-about-ios-9-1">
        
      </a>
    </div>
    <p>Even though the official release was for iOS 9.0, we also found beta iOS 9.1 in the wild. Curious about the comparative traffic between the two?</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6k72S5uVWVMg9eFUOPbRE/34a49bebad7df0c18e97953f1361b724/image_1.jpg" />
            
            </figure><p>iOS 9.0 is shown in blue, while 9.1 is shown in orange. As you can see, 9.0 adoption exploded after Apple’s official launch, while the 9.1 beta requests remained steady.</p>
    <div>
      <h3>Current Adoption Rates</h3>
      <a href="#current-adoption-rates">
        
      </a>
    </div>
    <p>Fast-forward five days, and it’s clear that iOS 9 adoption didn’t slow down after the launch. As of September 21st, the relative traffic of iOS 9 (orange) to iOS 8 (blue) on the CloudFlare network is around 30-35%.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7mPQ7f7gXseuluOTyxNdIa/01eb29509017d42b9fb9c5557e4efc28/image_2-2.png" />
            
            </figure>
    <div>
      <h3>IPv6 and iOS 9</h3>
      <a href="#ipv6-and-ios-9">
        
      </a>
    </div>
    <p>A key part of the iOS 9 announcement was that all iOS apps running on 9.0+ will require IPv6 support. The IPv4 address space is nearly exhausted, and switching to IPv6 is the only way to keep adding more devices to the global Internet.</p><p>iOS 9’s IPv6 requirement compliments CloudFlare’s mission to make a better Internet. We’ve been doing our part to encourage IPv6 adoption by providing <a href="https://www.cloudflare.com/ipv6">free IPv6 support</a> to all web properties on our network.</p><p>Although it’s still pretty early, we can already see an uptick in IPv6 requests due to iOS 9:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/CUgWWvcpZYinzb6e4h4ds/ff46afadf69fac1dea24d2421c7828ea/image_3.png" />
            
            </figure><p>The first chart shows the number of IPv4 vs. IPv6 requests for iOS 8, while the second shows iOS 9. Even after only a few days, we’re seeing a 1.07% increase in IPv6 requests thanks to iOS 9.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Seeing over 5% of global Internet requests gives us an interesting perspective on current events. We get to watch the worldwide impact of everything from product launches like iOS 9 to hiccups in the Internet infrastructure like the <a href="/the-internet-is-a-cooperative-system-dns-outage-of-6-july-2015/">Dyn outage</a> of last July and even <a href="/how-syria-turned-off-the-internet/">governments turning off the Internet</a>. We try our best to use our unique vantage point to better the Internet as a whole and raise awareness for critical technologies like IPv6.</p> ]]></content:encoded>
            <category><![CDATA[iOS]]></category>
            <category><![CDATA[Data]]></category>
            <category><![CDATA[Analytics]]></category>
            <guid isPermaLink="false">vQNdhSnKWFxlfJahe1PK8</guid>
            <dc:creator>Timothy Fong</dc:creator>
        </item>
        <item>
            <title><![CDATA[iOS Developers — Migrate to iOS 9 with CloudFlare]]></title>
            <link>https://blog.cloudflare.com/ios-developers-migrate-to-ios-9-with-cloudflare/</link>
            <pubDate>Thu, 11 Jun 2015 10:31:29 GMT</pubDate>
            <description><![CDATA[ Thousands of developers use CloudFlare to accelerate and secure the backend of their mobile applications and websites. This week is WWDC, where thousands of Apple developers come to San Francisco to talk, learn and share best practices for developing software for Apple platforms.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Thousands of developers use CloudFlare to accelerate and secure the backend of their mobile applications and websites. This week is Apple’s <a href="https://developer.apple.com/wwdc/">Worldwide Developers Conference (WWDC)</a>, where thousands of Apple developers come to San Francisco to talk, learn and share best practices for developing software for Apple platforms. New announcements from Apple this week make CloudFlare an even more obvious choice for application developers.</p>
    <div>
      <h3>New operating systems, new application requirements</h3>
      <a href="#new-operating-systems-new-application-requirements">
        
      </a>
    </div>
    <p>The flagship announcement of WWDC 2015 was a new version of Apple’s mobile operating system, iOS 9, to be released in September with a developer preview <a href="http://www.apple.com/ios/ios9-preview/">available now</a>. They also announced a new Mac operating system, OS X El Capitan, launching in the fall. Apple has a track record of developing and supporting technologies that enhance user privacy and security with <a href="https://www.apple.com/privacy/privacy-built-in/">iMessage and Facetime</a> and the trend is continuing with these new operating systems. In both cases, Apple is requiring application developers to make use of two network technologies that CloudFlare is big fan of: <a href="https://www.cloudflare.com/ssl">HTTPS</a> and <a href="/eliminating-the-last-reasons-to-not-enable-ipv6/">IPv6</a>.</p><p><i>For iOS 9 and El Capitan, all applications submitted to the iOS and Mac App Stores </i><a href="http://www.internetsociety.org/deploy360/blog/2015/06/apple-will-require-ipv6-support-for-all-ios-9-apps/"><i>must work over IPv6</i></a><i>. In previous versions, applications were allowed that only worked with IPv4.</i></p><p>From [Sebastien Marineau, Apple’s VP of Core OS](<a href="https://developer.apple.com/v219">https://developer.apple.com/v219</a> commitsideos/wwdc/2015/?id=102): "Because IPv6 support is so critical to ensuring your applications work across the world for every customer, we are making it an AppStore submission requirement, starting with iOS 9."</p><p><i>By default, all network connections in third party applications compiled for on iOS 9 and El Capitan use a new feature called App Transport Security. This feature forces the application to connect to backend APIs and the web via HTTPS. Plain unencrypted HTTP requests are disallowed unless the developer specifically modifies a configuration file to allow it.</i></p><p>From the <a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html">iOS 9 developer documentation</a>: "If you're developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible."</p><p>What does this mean for application developers? If your application has a web backend component, you will need to update the backend to support these protocols. This can be difficult to do since not all hosting providers support IPv6, and HTTPS certificates can be tricky to obtain and difficult to configure correctly, not to mention maintain.</p>
    <div>
      <h3>Free and automatic IPv6 and SSL</h3>
      <a href="#free-and-automatic-ipv6-and-ssl">
        
      </a>
    </div>
    <p>One of the best things CloudFlare does well is to take modern network protocols and make them affordable (or free) and accessible to everyone. Every CloudFlare-backed website and API backend has support for both IPv6 and HTTPS automatically, and with no configuration necessary.</p><p>With <a href="/introducing-universal-ssl/">Universal SSL</a>, this is now true even for customers on CloudFlare’s free plan. We also make sure your HTTPS configuration is the latest and greatest with <a href="https://support.cloudflare.com/hc/en-us/articles/200311920-What-SSL-protocols-does-CloudFlare-support-">TLS 1.2 support</a> and <a href="/staying-on-top-of-tls-attacks/">Forward secrecy</a>.</p><p>CloudFlare provides its Automatic IPv6 Gateway for <a href="/introducing-cloudflares-automatic-ipv6-gatewa/">free</a> to all CloudFlare users. This makes any content or API required by an Apple iOS app instantly available using IPv4 and IPv6 independent of the inability of your hosting provider to supply IPv6 support. More information about CloudFlare’s IPv6 support can be found <a href="https://www.cloudflare.com/ipv6">here</a>.</p><p>Not only does CloudFlare help keep application service components up to date with the latest Apple requirements, it provides the performance benefits of a globally distributed network and protection against malicious attacks.</p><p>If you’re an iOS developer looking to upgrade your application backend to meet Apple’s new requirements, you can sign up for CloudFlare <a href="https://cloudflare.com/a/sign-up">here</a>.</p><p>To verify that IPv6 is enabled, open your DNS settings and ensure that the IPv6 toggle is on:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1dTaeTvqYSQNGeNuqaZx5y/dcc2fca2216c4cd3f48f1188af495418/image01.png" />
            
            </figure><p>CloudFlare offers HTTPS to the backend, so if you already have HTTPS, you can keep full end-to-end encryption with CloudFlare’s Strict SSL mode. If your backend doesn’t support HTTPS, you can select the Flexible mode to encrypt the communication between your App and CloudFlare. These setting are available in your Crypto settings:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1pPgweR8FUtcY8Xaalie4X/3b1e82aaef376fbcdc8d928cff7b7096/image00.png" />
            
            </figure><p>CloudFlare and iOS 9 were made for each other.</p><p><i>P.S.: We provide the same service to Android apps as well.</i></p> ]]></content:encoded>
            <category><![CDATA[Mobile]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[IPv6]]></category>
            <category><![CDATA[HTTPS]]></category>
            <category><![CDATA[API]]></category>
            <category><![CDATA[iOS]]></category>
            <category><![CDATA[Cloudflare Apps]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">5yhF96zEJdHrZWZpA2hc6R</guid>
            <dc:creator>Nick Sullivan</dc:creator>
        </item>
    </channel>
</rss>