3115 lines
164 KiB
HTML
3115 lines
164 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr" class="resp_fonts">
|
||
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
||
<script>
|
||
window.labClientAPIReady = new Promise(function (resolve) {
|
||
document.addEventListener(
|
||
'labClientAPIReady',
|
||
function () { resolve(window.labClientAPI); },
|
||
{ once: true }
|
||
);
|
||
});
|
||
</script>
|
||
<script type="module">
|
||
import { ClientAPI } from '/view-resources/baseview/public/common/ClientAPI/index.js?v=1789115797-L4';
|
||
window.labClientAPI = new ClientAPI({
|
||
pageData: {
|
||
url: 'https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109',
|
||
pageType: 'article',
|
||
pageId: '495109',
|
||
section: 'on_prem',
|
||
subsection: '',
|
||
title: 'This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed',
|
||
seotitle: 'This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed',
|
||
sometitle: 'This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed',
|
||
description: 'When you meant to type /127 but entered /12 instead',
|
||
seodescription: 'When you meant to type /127 but entered /12 instead',
|
||
somedescription: 'When you meant to type /127 but entered /12 instead',
|
||
device: 'desktop',
|
||
cms: 'labrador',
|
||
cmsVersion: '4.2.22',
|
||
contentLanguage: 'en-US',
|
||
published: '2019-07-02T21:09:20.000Z',
|
||
modified: '2019-07-08T17:00:13.000Z',
|
||
|
||
|
||
tags: ["on_prem", "networks", "cloudflare"],
|
||
bylines: ["Kieren McCarthy"],
|
||
site: {
|
||
domain: 'https://www.theregister.com',
|
||
id: '2',
|
||
alias: 'theregister',
|
||
name: 'theregister'
|
||
},
|
||
paid: 0,
|
||
paywall: 'internal'
|
||
},
|
||
debug: false
|
||
});
|
||
document.dispatchEvent(new Event('labClientAPIReady'));
|
||
</script>
|
||
<title>This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed</title>
|
||
<meta name="title" content="This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed">
|
||
<meta name="description" content="When you meant to type /127 but entered /12 instead">
|
||
<link rel="canonical" href="https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta property="og:type" content="article">
|
||
<meta property="og:title" content="This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed">
|
||
<meta property="og:description" content="When you meant to type /127 but entered /12 instead">
|
||
<meta property="og:locale" content="en-US">
|
||
<meta property="og:site_name" content="theregister">
|
||
<meta property="article:published_time" content="2019-07-02T21:09:20.000Z">
|
||
<meta property="article:modified_time" content="2019-07-08T17:00:13.000Z">
|
||
<meta property="article:author" content="Kieren McCarthy">
|
||
<meta property="article:tag" content="on_prem">
|
||
<meta property="article:tag" content="networks">
|
||
<meta property="article:tag" content="cloudflare">
|
||
<meta property="og:image" content="https://image.theregister.com/227625.jpg?imageId=227625&panox=0&panoy=0&panow=0&panoh=0&width=1200&height=683">
|
||
<meta property="og:image:width" content="1200">
|
||
<meta property="og:image:height" content="684">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
|
||
<meta name="twitter:title" content="This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed">
|
||
<meta name="twitter:description" content="When you meant to type /127 but entered /12 instead">
|
||
<meta name="twitter:image" content="https://image.theregister.com/227625.jpg?imageId=227625&panox=0&panoy=0&panow=0&panoh=0&width=1200&height=683">
|
||
<link rel="alternate" type="application/json+oembed" href="https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109?lab_viewport=oembed">
|
||
|
||
|
||
<script >// OOPS slot definition v2 — same code on all sites, only SITE_KEY changes:
|
||
// theregister.com → 'thereg'
|
||
// blocksandfiles.com → 'bandf'
|
||
// devclass.com → 'devclass'
|
||
// nextplatform.com → 'nextplatform'
|
||
|
||
window.googletag = window.googletag || { cmd: [] };
|
||
googletag.cmd.push(function () {
|
||
const SITE_KEY = 'thereg'; // CHANGE PER SITE
|
||
const context = document.querySelector('meta[property="og:type"]')?.content === "article" ? "article" : "front";
|
||
const device = window.Dac.clientData.labDevice === "mobile" ? "mobile" : "desktop";
|
||
const bwidth = window.innerWidth || 0;
|
||
const test = new URLSearchParams(window.location.search).get('test');
|
||
const author = document.querySelector('meta[property="article:author"]')?.content;
|
||
const canonicalUrl = document.querySelector("link[rel=canonical]")?.getAttribute("href");
|
||
const articleId = canonicalUrl?.split("/").pop();
|
||
googletag.setConfig({
|
||
targeting: {
|
||
device,
|
||
...(bwidth && { bwidth: bwidth + '' }),
|
||
...(test && { test }),
|
||
...(author && { author }),
|
||
...(canonicalUrl && { canonicalUrl }),
|
||
...(articleId && { articleId }),
|
||
}
|
||
});
|
||
function createOops() {
|
||
if (document.getElementById('oops')) return;
|
||
const oopsDiv = document.createElement('div');
|
||
oopsDiv.id = 'oops';
|
||
oopsDiv.style.cssText = 'width:0;height:0;overflow:hidden;';
|
||
document.body.prepend(oopsDiv);
|
||
}
|
||
if (document.body) {
|
||
createOops();
|
||
} else {
|
||
document.addEventListener('DOMContentLoaded', createOops);
|
||
}
|
||
googletag.defineOutOfPageSlot('/6978/labrador/' + SITE_KEY + '/' + context + '/' + device + '/oops', 'oops')
|
||
.addService(googletag.pubads())
|
||
.setConfig({ targeting: { is_oops: '1' } });
|
||
});</script><script type="module">import { setArticlePagePostCount } from "https://cdn.theregister.com/assets/javascript/forum_post_counts.cade00e6.js";
|
||
setArticlePagePostCount();</script><script type="module" src="https://cdn.theregister.com/assets/javascript/article.2d9d928c.js"></script><script >window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
|
||
gtag('consent', 'default', {
|
||
'analytics_storage': 'granted',
|
||
'ad_storage': 'denied',
|
||
'ad_user_data': 'denied',
|
||
'ad_personalization': 'denied',
|
||
'wait_for_update': 500
|
||
});
|
||
|
||
window.googlefc = window.googlefc || {};
|
||
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
|
||
|
||
window.googlefc.callbackQueue.push({
|
||
'CONSENT_DATA_READY': function() {
|
||
if (typeof __tcfapi === 'undefined') return;
|
||
|
||
__tcfapi('ping', 2, function(pingData) {
|
||
if (pingData && pingData.gdprApplies === false) {
|
||
gtag('consent', 'update', {
|
||
'ad_storage': 'granted',
|
||
'ad_user_data': 'granted',
|
||
'ad_personalization': 'granted'
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});</script><script type="module">import { initAccountLink } from "https://cdn.theregister.com/assets/javascript/account_link.9903a027.js";
|
||
initAccountLink();</script><script type="module">import { applyDevMode } from "https://cdn.theregister.com/assets/javascript/dev_mode.54481a06.js";
|
||
applyDevMode();</script>
|
||
<style >.bodytext .column.google-ad.widthFull {
|
||
padding-top: 40px;
|
||
padding-bottom: 50px;
|
||
}
|
||
|
||
/* Prevents GAM from pushing the footer up automatically */
|
||
body {
|
||
padding-bottom: 0px !important;
|
||
margin-bottom: 0px !important;
|
||
}</style>
|
||
<link rel="stylesheet" href="https://cdn.theregister.com/assets/css/forum_post_counts.4501b489.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/article.8855f7fa.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/account_link.74f9c2bd.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/labrador_overrides.c9e9a0ef.css">
|
||
|
||
<script>
|
||
const PROVIDER_CONFIG = null
|
||
;
|
||
|
||
if (PROVIDER_CONFIG && !window.__labradorPaywallClientAPIInitialized) {
|
||
window.__labradorPaywallClientAPIInitialized = true;
|
||
|
||
const LOG_PREFIX = '[Paywall:' + PROVIDER_CONFIG.provider + ']';
|
||
|
||
function checkAuthState() {
|
||
if (!window.userStatus) {
|
||
return;
|
||
}
|
||
window.userStatus.verify().then(function() {
|
||
var status = window.userStatus.getStatus(PROVIDER_CONFIG.right);
|
||
var engagentlyToken = window.userStatus.getEngagently();
|
||
|
||
if (status >= 2) {
|
||
window.labClientAPI.emit('accessGranted', {
|
||
provider: PROVIDER_CONFIG.provider,
|
||
paid: status,
|
||
engagentlyToken: engagentlyToken
|
||
});
|
||
} else {
|
||
var data = { provider: PROVIDER_CONFIG.provider, paid: status || 0 };
|
||
if (engagentlyToken) data.engagentlyToken = engagentlyToken;
|
||
window.labClientAPI.emit('accessDenied', data);
|
||
}
|
||
}).catch(function(err) {
|
||
window.labClientAPI.emit('accessDenied', { provider: PROVIDER_CONFIG.provider, paid: 0 });
|
||
});
|
||
}
|
||
|
||
window.labClientAPIReady.then(function(api) {
|
||
api.set(PROVIDER_CONFIG.provider + 'PaywallHelper', {
|
||
checkNow: function() { return (window.userStatus && window.userStatus.getStatus(PROVIDER_CONFIG.right)) || 0; },
|
||
getStatus: checkAuthState
|
||
});
|
||
checkAuthState();
|
||
});
|
||
}
|
||
</script>
|
||
<meta property="og:url" content="https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109">
|
||
<link type="image/x-icon" rel="icon" href="/view-resources/dachser2/public/theregister/favicons/favicon.ico">
|
||
<link type="image/svg+xml" rel="icon" href="/view-resources/dachser2/public/theregister/favicons/favicon.svg">
|
||
<link type="image/png" rel="icon" sizes="16x16" href="/view-resources/dachser2/public/theregister/favicons/favicon-16x16.png">
|
||
<link type="image/png" rel="icon" sizes="32x32" href="/view-resources/dachser2/public/theregister/favicons/favicon-32x32.png">
|
||
<link type="image/png" rel="icon" sizes="48x48" href="/view-resources/dachser2/public/theregister/favicons/favicon-48x48.png">
|
||
<link type="image/png" rel="icon" sizes="96x96" href="/view-resources/dachser2/public/theregister/favicons/favicon-96x96.png">
|
||
<link type="image/png" rel="icon" sizes="192x192" href="/view-resources/dachser2/public/theregister/favicons/web-app-manifest-192x192.png">
|
||
<link type="image/png" rel="icon" sizes="512x512" href="/view-resources/dachser2/public/theregister/favicons/web-app-manifest-512x512.png">
|
||
<link type="image/png" rel="apple-touch-icon" sizes="180x180" href="/view-resources/dachser2/public/theregister/favicons/apple-touch-icon.png">
|
||
<link rel="manifest" href=/view-resources/dachser2/public/theregister/favicons/manifest.json />
|
||
<link href="https://fonts.googleapis.com/css?family=Merriweather:300,400,700,900" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link rel="stylesheet" href="/view-resources/view/css/grid.css?v=1789115797-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/main.css?v=1789115797-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/colors.css?v=1789115797-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/print.css?v=1789115797-L4" media="print">
|
||
<link rel="stylesheet" href="/view-resources/view/css/foundation-icons/foundation-icons.css?v=1789115797-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/site/theregister.css?v=1789115797-L4">
|
||
<style data-key="custom_properties">
|
||
:root{--primary: rgba(0,0,0,1);--secondary: rgba(255,255,255,1);--tertiary: rgba(214,0,0,1);--quaternary: rgba(0,0,0,1);--bg-secondary: rgba(255,255,255,1);--bg-tertiary: rgba(239,239,239,1);--bg-quaternary: rgba(0,0,0,1);--bg-quinary: rgba(22,22,22,1);--bg-senary: rgba(255,235,235,1);--bg-septenary: rgba(214,0,0,1);--bg-octonary: rgba(248,248,248,1);--bg-nonary: rgba(208, 200, 200, 1);--bg-primary: rgba(255,0,0,1);--bg-septenary-light: rgba(230,102,102,1);--bg-septenary-dark: rgba(150,0,0,1);--bg-nonary-light: rgba(227,222,222,1);--bg-nonary-dark: rgba(146,140,140,1);}
|
||
</style>
|
||
<style data-key="background_colors">
|
||
.bg-secondary {background-color: rgba(255,255,255,1);}.bg-tertiary {background-color: rgba(239,239,239,1);}.bg-quaternary {background-color: rgba(0,0,0,1);color: #fff;}.bg-quinary {background-color: rgba(22,22,22,1);color: #fff;}.bg-senary {background-color: rgba(255,235,235,1);}.bg-septenary {background-color: rgba(214,0,0,1);color: #fff;}.bg-octonary {background-color: rgba(248,248,248,1);}.bg-nonary {background-color: rgba(208, 200, 200, 1);}.bg-primary {background-color: rgba(255,0,0,1);color: #fff;}.bg-septenary-light {background-color: rgba(230,102,102,1);}.bg-septenary-dark {background-color: rgba(150,0,0,1);color: #fff;}.bg-nonary-light {background-color: rgba(227,222,222,1);}.bg-nonary-dark {background-color: rgba(146,140,140,1);}@media (max-width: 1023px) { .color_mobile_bg-secondary {background-color: rgba(255,255,255,1);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary {background-color: rgba(239,239,239,1);}}@media (max-width: 1023px) { .color_mobile_bg-quaternary {background-color: rgba(0,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary {background-color: rgba(22,22,22,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-senary {background-color: rgba(255,235,235,1);}}@media (max-width: 1023px) { .color_mobile_bg-septenary {background-color: rgba(214,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-octonary {background-color: rgba(248,248,248,1);}}@media (max-width: 1023px) { .color_mobile_bg-nonary {background-color: rgba(208, 200, 200, 1);}}@media (max-width: 1023px) { .color_mobile_bg-primary {background-color: rgba(255,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light {background-color: rgba(230,102,102,1);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark {background-color: rgba(150,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light {background-color: rgba(227,222,222,1);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark {background-color: rgba(146,140,140,1);}}
|
||
</style>
|
||
<style data-key="background_colors_opacity">
|
||
.bg-secondary.op-bg_20 {background-color: rgba(255, 255, 255, 0.2);}.bg-secondary.op-bg_40 {background-color: rgba(255, 255, 255, 0.4);}.bg-secondary.op-bg_60 {background-color: rgba(255, 255, 255, 0.6);}.bg-secondary.op-bg_80 {background-color: rgba(255, 255, 255, 0.8);}.bg-tertiary.op-bg_20 {background-color: rgba(239, 239, 239, 0.2);}.bg-tertiary.op-bg_40 {background-color: rgba(239, 239, 239, 0.4);}.bg-tertiary.op-bg_60 {background-color: rgba(239, 239, 239, 0.6);}.bg-tertiary.op-bg_80 {background-color: rgba(239, 239, 239, 0.8);}.bg-quaternary.op-bg_20 {background-color: rgba(0, 0, 0, 0.2);color: #fff;}.bg-quaternary.op-bg_40 {background-color: rgba(0, 0, 0, 0.4);color: #fff;}.bg-quaternary.op-bg_60 {background-color: rgba(0, 0, 0, 0.6);color: #fff;}.bg-quaternary.op-bg_80 {background-color: rgba(0, 0, 0, 0.8);color: #fff;}.bg-quinary.op-bg_20 {background-color: rgba(22, 22, 22, 0.2);color: #fff;}.bg-quinary.op-bg_40 {background-color: rgba(22, 22, 22, 0.4);color: #fff;}.bg-quinary.op-bg_60 {background-color: rgba(22, 22, 22, 0.6);color: #fff;}.bg-quinary.op-bg_80 {background-color: rgba(22, 22, 22, 0.8);color: #fff;}.bg-senary.op-bg_20 {background-color: rgba(255, 235, 235, 0.2);}.bg-senary.op-bg_40 {background-color: rgba(255, 235, 235, 0.4);}.bg-senary.op-bg_60 {background-color: rgba(255, 235, 235, 0.6);}.bg-senary.op-bg_80 {background-color: rgba(255, 235, 235, 0.8);}.bg-septenary.op-bg_20 {background-color: rgba(214, 0, 0, 0.2);color: #fff;}.bg-septenary.op-bg_40 {background-color: rgba(214, 0, 0, 0.4);color: #fff;}.bg-septenary.op-bg_60 {background-color: rgba(214, 0, 0, 0.6);color: #fff;}.bg-septenary.op-bg_80 {background-color: rgba(214, 0, 0, 0.8);color: #fff;}.bg-octonary.op-bg_20 {background-color: rgba(248, 248, 248, 0.2);}.bg-octonary.op-bg_40 {background-color: rgba(248, 248, 248, 0.4);}.bg-octonary.op-bg_60 {background-color: rgba(248, 248, 248, 0.6);}.bg-octonary.op-bg_80 {background-color: rgba(248, 248, 248, 0.8);}.bg-nonary.op-bg_20 {background-color: rgba(208, 200, 200, 0.2);}.bg-nonary.op-bg_40 {background-color: rgba(208, 200, 200, 0.4);}.bg-nonary.op-bg_60 {background-color: rgba(208, 200, 200, 0.6);}.bg-nonary.op-bg_80 {background-color: rgba(208, 200, 200, 0.8);}.bg-primary.op-bg_20 {background-color: rgba(255, 0, 0, 0.2);color: #fff;}.bg-primary.op-bg_40 {background-color: rgba(255, 0, 0, 0.4);color: #fff;}.bg-primary.op-bg_60 {background-color: rgba(255, 0, 0, 0.6);color: #fff;}.bg-primary.op-bg_80 {background-color: rgba(255, 0, 0, 0.8);color: #fff;}.bg-septenary-light.op-bg_20 {background-color: rgba(230, 102, 102, 0.2);}.bg-septenary-light.op-bg_40 {background-color: rgba(230, 102, 102, 0.4);}.bg-septenary-light.op-bg_60 {background-color: rgba(230, 102, 102, 0.6);}.bg-septenary-light.op-bg_80 {background-color: rgba(230, 102, 102, 0.8);}.bg-septenary-dark.op-bg_20 {background-color: rgba(150, 0, 0, 0.2);color: #fff;}.bg-septenary-dark.op-bg_40 {background-color: rgba(150, 0, 0, 0.4);color: #fff;}.bg-septenary-dark.op-bg_60 {background-color: rgba(150, 0, 0, 0.6);color: #fff;}.bg-septenary-dark.op-bg_80 {background-color: rgba(150, 0, 0, 0.8);color: #fff;}.bg-nonary-light.op-bg_20 {background-color: rgba(227, 222, 222, 0.2);}.bg-nonary-light.op-bg_40 {background-color: rgba(227, 222, 222, 0.4);}.bg-nonary-light.op-bg_60 {background-color: rgba(227, 222, 222, 0.6);}.bg-nonary-light.op-bg_80 {background-color: rgba(227, 222, 222, 0.8);}.bg-nonary-dark.op-bg_20 {background-color: rgba(146, 140, 140, 0.2);}.bg-nonary-dark.op-bg_40 {background-color: rgba(146, 140, 140, 0.4);}.bg-nonary-dark.op-bg_60 {background-color: rgba(146, 140, 140, 0.6);}.bg-nonary-dark.op-bg_80 {background-color: rgba(146, 140, 140, 0.8);}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_20 {background-color: rgba(255, 255, 255, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_40 {background-color: rgba(255, 255, 255, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_60 {background-color: rgba(255, 255, 255, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_80 {background-color: rgba(255, 255, 255, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_20 {background-color: rgba(239, 239, 239, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_40 {background-color: rgba(239, 239, 239, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_60 {background-color: rgba(239, 239, 239, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_80 {background-color: rgba(239, 239, 239, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_20 {background-color: rgba(0, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_40 {background-color: rgba(0, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_60 {background-color: rgba(0, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_80 {background-color: rgba(0, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_20 {background-color: rgba(22, 22, 22, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_40 {background-color: rgba(22, 22, 22, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_60 {background-color: rgba(22, 22, 22, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_80 {background-color: rgba(22, 22, 22, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_20 {background-color: rgba(255, 235, 235, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_40 {background-color: rgba(255, 235, 235, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_60 {background-color: rgba(255, 235, 235, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_80 {background-color: rgba(255, 235, 235, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_20 {background-color: rgba(214, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_40 {background-color: rgba(214, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_60 {background-color: rgba(214, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_80 {background-color: rgba(214, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_20 {background-color: rgba(248, 248, 248, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_40 {background-color: rgba(248, 248, 248, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_60 {background-color: rgba(248, 248, 248, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_80 {background-color: rgba(248, 248, 248, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_20 {background-color: rgba(208, 200, 200, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_40 {background-color: rgba(208, 200, 200, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_60 {background-color: rgba(208, 200, 200, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_80 {background-color: rgba(208, 200, 200, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_20 {background-color: rgba(255, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_40 {background-color: rgba(255, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_60 {background-color: rgba(255, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_80 {background-color: rgba(255, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_20 {background-color: rgba(230, 102, 102, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_40 {background-color: rgba(230, 102, 102, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_60 {background-color: rgba(230, 102, 102, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_80 {background-color: rgba(230, 102, 102, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_20 {background-color: rgba(150, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_40 {background-color: rgba(150, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_60 {background-color: rgba(150, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_80 {background-color: rgba(150, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_20 {background-color: rgba(227, 222, 222, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_40 {background-color: rgba(227, 222, 222, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_60 {background-color: rgba(227, 222, 222, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_80 {background-color: rgba(227, 222, 222, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_20 {background-color: rgba(146, 140, 140, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_40 {background-color: rgba(146, 140, 140, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_60 {background-color: rgba(146, 140, 140, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_80 {background-color: rgba(146, 140, 140, 0.8);}}
|
||
</style>
|
||
<style data-key="border_colors">
|
||
.border-bg-secondary{--border-color: var(--bg-secondary);}.mobile_border-bg-secondary{--mobile-border-color: var(--bg-secondary);}.border-bg-tertiary{--border-color: var(--bg-tertiary);}.mobile_border-bg-tertiary{--mobile-border-color: var(--bg-tertiary);}.border-bg-quaternary{--border-color: var(--bg-quaternary);}.mobile_border-bg-quaternary{--mobile-border-color: var(--bg-quaternary);}.border-bg-quinary{--border-color: var(--bg-quinary);}.mobile_border-bg-quinary{--mobile-border-color: var(--bg-quinary);}.border-bg-senary{--border-color: var(--bg-senary);}.mobile_border-bg-senary{--mobile-border-color: var(--bg-senary);}.border-bg-septenary{--border-color: var(--bg-septenary);}.mobile_border-bg-septenary{--mobile-border-color: var(--bg-septenary);}.border-bg-octonary{--border-color: var(--bg-octonary);}.mobile_border-bg-octonary{--mobile-border-color: var(--bg-octonary);}.border-bg-nonary{--border-color: var(--bg-nonary);}.mobile_border-bg-nonary{--mobile-border-color: var(--bg-nonary);}.border-bg-primary{--border-color: var(--bg-primary);}.mobile_border-bg-primary{--mobile-border-color: var(--bg-primary);}.border-bg-septenary-light{--border-color: var(--bg-septenary-light);}.mobile_border-bg-septenary-light{--mobile-border-color: var(--bg-septenary-light);}.border-bg-septenary-dark{--border-color: var(--bg-septenary-dark);}.mobile_border-bg-septenary-dark{--mobile-border-color: var(--bg-septenary-dark);}.border-bg-nonary-light{--border-color: var(--bg-nonary-light);}.mobile_border-bg-nonary-light{--mobile-border-color: var(--bg-nonary-light);}.border-bg-nonary-dark{--border-color: var(--bg-nonary-dark);}.mobile_border-bg-nonary-dark{--mobile-border-color: var(--bg-nonary-dark);}
|
||
</style>
|
||
<style data-key="font_colors">
|
||
.primary {color: rgba(0,0,0,1) !important;}.secondary {color: rgba(255,255,255,1) !important;}.tertiary {color: rgba(214,0,0,1) !important;}.quaternary {color: rgba(0,0,0,1) !important;}@media (max-width: 1023px) { .color_mobile_primary {color: rgba(0,0,0,1) !important;}}@media (max-width: 1023px) { .color_mobile_secondary {color: rgba(255,255,255,1) !important;}}@media (max-width: 1023px) { .color_mobile_tertiary {color: rgba(214,0,0,1) !important;}}@media (max-width: 1023px) { .color_mobile_quaternary {color: rgba(0,0,0,1) !important;}}
|
||
</style>
|
||
<style data-key="image_gradient">
|
||
.image-gradient-bg-secondary{--background-color: var(--bg-secondary);}.color_mobile_image-gradient-bg-secondary{--mobile-background-color: var(--bg-secondary);}.image-gradient-bg-tertiary{--background-color: var(--bg-tertiary);}.color_mobile_image-gradient-bg-tertiary{--mobile-background-color: var(--bg-tertiary);}.image-gradient-bg-quaternary{--background-color: var(--bg-quaternary);}.color_mobile_image-gradient-bg-quaternary{--mobile-background-color: var(--bg-quaternary);}.image-gradient-bg-quinary{--background-color: var(--bg-quinary);}.color_mobile_image-gradient-bg-quinary{--mobile-background-color: var(--bg-quinary);}.image-gradient-bg-senary{--background-color: var(--bg-senary);}.color_mobile_image-gradient-bg-senary{--mobile-background-color: var(--bg-senary);}.image-gradient-bg-septenary{--background-color: var(--bg-septenary);}.color_mobile_image-gradient-bg-septenary{--mobile-background-color: var(--bg-septenary);}.image-gradient-bg-octonary{--background-color: var(--bg-octonary);}.color_mobile_image-gradient-bg-octonary{--mobile-background-color: var(--bg-octonary);}.image-gradient-bg-nonary{--background-color: var(--bg-nonary);}.color_mobile_image-gradient-bg-nonary{--mobile-background-color: var(--bg-nonary);}.image-gradient-bg-primary{--background-color: var(--bg-primary);}.color_mobile_image-gradient-bg-primary{--mobile-background-color: var(--bg-primary);}.image-gradient-bg-septenary-light{--background-color: var(--bg-septenary-light);}.color_mobile_image-gradient-bg-septenary-light{--mobile-background-color: var(--bg-septenary-light);}.image-gradient-bg-septenary-dark{--background-color: var(--bg-septenary-dark);}.color_mobile_image-gradient-bg-septenary-dark{--mobile-background-color: var(--bg-septenary-dark);}.image-gradient-bg-nonary-light{--background-color: var(--bg-nonary-light);}.color_mobile_image-gradient-bg-nonary-light{--mobile-background-color: var(--bg-nonary-light);}.image-gradient-bg-nonary-dark{--background-color: var(--bg-nonary-dark);}.color_mobile_image-gradient-bg-nonary-dark{--mobile-background-color: var(--bg-nonary-dark);}
|
||
</style>
|
||
<style data-key="custom_css_variables">
|
||
:root {
|
||
--lab_page_width: 1200px;
|
||
--lab_columns_gutter: 11px;
|
||
--lab_focus_ring_color: #005fcc;
|
||
--lab_social_hover_color: #008cba;
|
||
--space-top: 0;
|
||
--space-top-adnuntiusAd: ;
|
||
}
|
||
|
||
@media(max-width: 767px) {
|
||
:root {
|
||
--lab_columns_gutter: 10px;
|
||
}
|
||
}
|
||
|
||
@media(min-width: 767px) {
|
||
:root {
|
||
}
|
||
}
|
||
</style>
|
||
<script src="/view-resources/public/common/JWTCookie.js?v=1789115797-L4"></script>
|
||
<script src="/view-resources/public/common/Paywall.js?v=1789115797-L4"></script>
|
||
<script>
|
||
window.Dac = window.Dac || {};
|
||
(function () {
|
||
if (navigator) {
|
||
window.Dac.clientData = {
|
||
language: navigator.language,
|
||
userAgent: navigator.userAgent,
|
||
innerWidth: window.innerWidth,
|
||
innerHeight: window.innerHeight,
|
||
deviceByMediaQuery: getDeviceByMediaQuery(),
|
||
labDevice: 'desktop', // Device from labrador
|
||
device: 'desktop', // Device from varnish
|
||
paywall: {
|
||
isAuthenticated: isPaywallAuthenticated(),
|
||
toggleAuthenticatedContent: toggleAuthenticatedContent,
|
||
requiredProducts: [],
|
||
},
|
||
page: {
|
||
id: '495109',
|
||
extId: 'theregister-203690'
|
||
},
|
||
siteAlias: 'theregister',
|
||
debug: window.location.href.includes('debug=1')
|
||
};
|
||
function getDeviceByMediaQuery() {
|
||
if (window.matchMedia('(max-width: 767px)').matches) return 'mobile';
|
||
if (window.matchMedia('(max-width: 1023px)').matches) return 'tablet';
|
||
return 'desktop';
|
||
}
|
||
|
||
function isPaywallAuthenticated() {
|
||
if (window.Dac && window.Dac.JWTCookie) {
|
||
var JWTCookie = new Dac.JWTCookie({ debug: false });
|
||
return JWTCookie.isAuthenticated();
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function toggleAuthenticatedContent(settings) {
|
||
if (!window.Dac || !window.Dac.Paywall) {
|
||
return;
|
||
}
|
||
var Paywall = new Dac.Paywall();
|
||
var updateDOM = Paywall.updateDOM;
|
||
|
||
if(settings && settings.displayUserName) {
|
||
var userName = Paywall.getUserName().then((userName) => {
|
||
updateDOM(userName !== false, userName, settings.optionalGreetingText);
|
||
});
|
||
} else {
|
||
updateDOM(window.Dac.clientData.paywall.isAuthenticated);
|
||
}
|
||
}
|
||
}
|
||
}());
|
||
</script>
|
||
|
||
<script type="module" src="/view-resources/baseview/public/common/baseview/moduleHandlers.js?v=1789115797-L4" data-cookieconsent="ignore"></script>
|
||
<!-- DataLayer -->
|
||
<script>
|
||
|
||
var dataLayerData = {};
|
||
|
||
dataLayerData['id'] = '495109';
|
||
dataLayerData['title'] = 'This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed';
|
||
dataLayerData['subtitle'] = 'When you meant to type /127 but entered /12 instead';
|
||
dataLayerData['kicker'] = 'Networks';
|
||
dataLayerData['created_by'] = '15';
|
||
dataLayerData['created_by_name'] = 'Inglis, James';
|
||
dataLayerData['page_template_alias'] = 'default';
|
||
dataLayerData['published'] = '1562101760';
|
||
dataLayerData['published_url'] = '/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109';
|
||
dataLayerData['tags'] = 'on_prem,networks,cloudflare';
|
||
dataLayerData['modified'] = '1562605213';
|
||
dataLayerData['article_authors'] = 'Kieren McCarthy';
|
||
dataLayerData['testfield'] = 'testvalue';
|
||
dataLayerData['section'] = 'on_prem';
|
||
dataLayerData['original_url'] = 'https://www.theregister.com/2019/07/02/ipv6_routing_error/';
|
||
dataLayerData['type'] = 'page_article';
|
||
|
||
dataLayer = [dataLayerData];
|
||
</script><!-- Google Tag Manager -->
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
</script>
|
||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||
})(window,document,'script','dataLayer','GTM-KVXB44');</script>
|
||
|
||
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
|
||
<script>
|
||
window.googletag = window.googletag || {cmd: []};
|
||
|
||
googletag.cmd.push(function() {
|
||
var handleAsTablet = (Dac.clientData.device === 'tablet' || Dac.clientData.innerWidth < 1316);
|
||
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/a', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [728,91], [970,251], [1200,271], [970,91]], 'labrador/thereg/article/desktop/a')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/f', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [728,96], [970,256], [1200,276], [970,96], [1200,600], [970,254], [728,94], [970,94], [300,254], [1200,274]], 'labrador/thereg/article/desktop/f')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/b', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [1200,600], [728,92], [970,252], [1200,272], [970,92], [1200,602]], 'labrador/thereg/article/desktop/b')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/c', [[300,250], [300,600], [300,253], [300,603]], 'labrador/thereg/article/desktop/c')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/d', [[300,250], [300,254]], 'labrador/thereg/article/desktop/d')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/e', [[300,250], [300,255]], 'labrador/thereg/article/desktop/e')
|
||
.addService(googletag.pubads());
|
||
}
|
||
|
||
var pageTargeting = {
|
||
env: "prod",
|
||
site: "theregister",
|
||
section: "on_prem",
|
||
context: "article"
|
||
};
|
||
pageTargeting.tags = "on_prem,networks,cloudflare";
|
||
googletag.setConfig({ targeting: pageTargeting });
|
||
|
||
var useLazyLoading = true || false;
|
||
if (useLazyLoading) {
|
||
googletag.setConfig({
|
||
lazyLoad: {
|
||
fetchMarginPercent: 200 || 150, // Fetch ad content when it is within 1.5 viewports of the visible area
|
||
renderMarginPercent: 150 || 150, // Render ads when they are within 1.5 viewports of the visible area
|
||
mobileScaling: 2 || 2.0 // Scale the above values by 2.0 on mobile devices to account for slower connections and rendering times
|
||
}
|
||
});
|
||
}
|
||
|
||
googletag.setConfig({ singleRequest: true });
|
||
googletag.setConfig({ collapseDiv: "ON_NO_FILL" });
|
||
googletag.enableServices();
|
||
});
|
||
</script>
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto:regular,italic,700,900,600" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:regular,italic,700,900" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Flex:regular" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono:regular,100,200,300,100italic,300italic,200italic,500,italic,500italic,700,600,600italic,700italic" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<style id="dachser-vieweditor-styles">
|
||
header#nav, header.pageHeader { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; color: #000000; }
|
||
.articleList .article-list-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.1875rem; text-transform: none; letter-spacing: normal; }
|
||
.pageHeader .search .search-container input[type=text]::placeholder { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.bodytext { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .bodytext {font-size: calc(0.262vw * 16); } }
|
||
.articleHeader .headline { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 2.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .headline {font-size: calc(0.262vw * 24); } }
|
||
article.column .content .headline { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.5rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article.column .content .headline {font-size: calc(0.262vw * 20); } }
|
||
.byline .name { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.8125rem; text-transform: none; letter-spacing: normal; color: #000000; }@media (max-width: 767px) { .resp_fonts .byline .name {font-size: calc(0.262vw * 13); } }
|
||
.articleHeader .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .subtitle {font-size: calc(0.262vw * 16); } }
|
||
article.column .content .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.byline .name .description { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.byline .extended_description { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .bodytext figure .caption { font-family: "Roboto Condensed"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .articleHeader .caption { font-family: "Roboto Condensed"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .meta .dates { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article .meta .dates {font-size: calc(0.262vw * 12); } }
|
||
article .meta .dates .dateLabel { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article .meta .dates .dateLabel {font-size: calc(0.262vw * 12); } }
|
||
.articleFooter .tags a { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: uppercase; letter-spacing: normal; }
|
||
body { font-family: "Roboto"; font-weight: normal; font-style: normal; line-height: 1.6; text-transform: none; letter-spacing: normal; }
|
||
.articleList .article-list-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleList .article-list-title {font-size: calc(0.262vw * 16); } }
|
||
.articleList ul li a .al-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleList ul li a .al-title {font-size: calc(0.262vw * 16); } }
|
||
.topBarMenu ul li a, topBarMenu ul li span, .pageHeader .hamburger .hamburger-container .topBarMenu ul li { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.25rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .topBarMenu ul li a, topBarMenu ul li span, .pageHeader .hamburger .hamburger-container .topBarMenu ul li {font-size: calc(0.262vw * 12); line-height: 1.0; } }
|
||
.customMenu1 ul li a, .customMenu1 ul li span, .pageHeader .hamburger .hamburger-container .customMenu1 ul li a, .pageHeader .hamburger .hamburger-container .customMenu1 ul li span { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; }
|
||
.articleHeader .kicker { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: uppercase; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .kicker {font-size: calc(0.262vw * 16); } }
|
||
article.column .content .kicker { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: uppercase; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article.column .content .kicker {font-size: calc(0.262vw * 16); } }
|
||
footer.page { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; text-decoration: none; hyphens: auto; }@media (max-width: 767px) { .resp_fonts footer.page {font-size: calc(0.262vw * 12); } }
|
||
.bodytext>p a, .bodytext>ul a, .bodytext>ol a, .bodytext>h2 a, .bodytext>h3 a, .bodytext>h4 a { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; color: #333333; text-decoration: underline; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .bodytext>p a, .bodytext>ul a, .bodytext>ol a, .bodytext>h2 a, .bodytext>h3 a, .bodytext>h4 a {font-size: calc(0.262vw * 16); } }
|
||
.toplist ul li .text h4 { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.125rem; line-height: 1.5; text-transform: none; letter-spacing: normal; hyphens: auto; }
|
||
.articlescroller ul li h3 { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.1875rem; letter-spacing: normal; hyphens: auto; }
|
||
.articlescroller ul li .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; letter-spacing: normal; hyphens: auto; }
|
||
.articleHeader .lab-article-section { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .articleHeader .lab-article-section {font-size: calc(0.262vw * 15); } }
|
||
article.column .content .section { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts article.column .content .section {font-size: calc(0.262vw * 15); } }
|
||
.bodytext > h2 { font-family: "Roboto"; font-weight: 600; font-style: normal; font-size: 1.5625rem; line-height: 1.2; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .bodytext > h2 {font-size: calc(0.262vw * 25); line-height: 1.2; } }
|
||
.font-Roboto { font-family: "Roboto" !important; }
|
||
.font-Roboto.font-weight-normal { font-weight: normal !important; }
|
||
.font-Roboto.font-weight-bold { font-weight: 700 !important; }
|
||
.font-Roboto.font-weight-black { font-weight: 900 !important; }
|
||
.font-RobotoCondensed { font-family: "Roboto Condensed" !important; }
|
||
.font-RobotoCondensed.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoCondensed.font-weight-bold { font-weight: 700 !important; }
|
||
.font-RobotoCondensed.font-weight-black { font-weight: 900 !important; }
|
||
.font-RobotoFlex { font-family: "Roboto Flex" !important; }
|
||
.font-RobotoFlex.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoMono { font-family: "Roboto Mono" !important; }
|
||
.font-RobotoMono.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoMono.font-weight-light { font-weight: 100 !important; }
|
||
.font-RobotoMono.font-weight-bold { font-weight: 700 !important; }
|
||
</style>
|
||
<style id="css_variables"></style>
|
||
<script>
|
||
window.dachserData = {
|
||
_data: {},
|
||
_instances: {},
|
||
get: function(key) {
|
||
return dachserData._data[key] || null;
|
||
},
|
||
set: function(key, value) {
|
||
dachserData._data[key] = value;
|
||
},
|
||
push: function(key, value) {
|
||
if (!dachserData._data[key]) {
|
||
dachserData._data[key] = [];
|
||
}
|
||
dachserData._data[key].push(value);
|
||
},
|
||
setInstance: function(key, identifier, instance) {
|
||
if (!dachserData._instances[key]) {
|
||
dachserData._instances[key] = {};
|
||
}
|
||
dachserData._instances[key][identifier] = instance;
|
||
},
|
||
getInstance: function(key, identifier) {
|
||
return dachserData._instances[key] ? dachserData._instances[key][identifier] || null : null;
|
||
},
|
||
reflow: () => {}
|
||
};
|
||
</script>
|
||
|
||
|
||
<script type="application/ld+json">
|
||
[{"@context":"http://schema.org","@type":"WebSite","name":"theregister","url":"https://www.theregister.com"},{"@context":"https://schema.org","@type":"NewsArticle","headline":"This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed","description":"When you meant to type /127 but entered /12 instead","url":"https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109","inLanguage":[{"@type":"Language","alternateName":"en-US"}],"image":[{"@type":"ImageObject","url":"https://image.theregister.com/?imageId=253187&width=1200","@id":"https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109#primaryimage","width":1200,"height":806}],"keywords":"on_prem, networks, cloudflare","thumbnailUrl":"https://image.theregister.com/?imageId=253187&width=400","articleSection":"on_prem","author":[{"@type":"Person","name":"Kieren McCarthy","url":"https://www.theregister.com/author/Kieren-McCarthy"}],"publisher":{"@type":"Organization","name":"theregister","url":"https://www.theregister.com","logo":{"@type":"ImageObject","url":"https://www.theregister.com/view-resources/dachser2/public/theregister/logo.svg"}},"mainEntityOfPage":"https://www.theregister.com/on-prem/2019/07/02/this-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed/495109","datePublished":"2019-07-02T21:09:20.000Z","dateModified":"2019-07-08T17:00:13.000Z","isAccessibleForFree":true}]
|
||
</script>
|
||
|
||
|
||
<style >@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext>p,
|
||
.custom-bodytext-alignment .bodytext>h2,
|
||
.custom-bodytext-alignment .bodytext>h3,
|
||
.custom-bodytext-alignment .bodytext>h4,
|
||
.custom-bodytext-alignment .bodytext>ul,
|
||
.custom-bodytext-alignment .bodytext>ol {
|
||
padding-left: 220px;
|
||
padding-right: 320px;
|
||
}
|
||
}
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext .articleList {
|
||
padding-left: 230px !important;
|
||
width: 880px;
|
||
}
|
||
}
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext .google-ad.floatRight {
|
||
position: sticky;
|
||
top: 125px;
|
||
}
|
||
}
|
||
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .column.google-ad.widthFull,
|
||
.custom-bodytext-alignment .placement-top > .column.google-ad,
|
||
body.article section.related .large-12.google-ad,
|
||
body.front .placement-top > .column.google-ad,
|
||
body.front .large-12.google-ad {
|
||
padding-left: 0;
|
||
padding-right: 0;
|
||
}
|
||
}</style>
|
||
|
||
|
||
|
||
|
||
|
||
<meta property="article:section" content="on_prem">
|
||
<script>
|
||
var k5aMeta = { "paid": 0, "author": ["Kieren McCarthy"], "tag": ["on_prem", "networks", "cloudflare"], "title": "This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed", "teasertitle": "This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed", "kicker": "Networks", "url": "https://www.theregister.com/a/495109", "login": (Dac.clientData.paywall.isAuthenticated ? 1 : 0), "subscriber": (Dac.clientData.paywall.isAuthenticated ? 1 : 0), "subscriberId": (Dac.clientData.subscriberId ? `"${ Dac.clientData.subscriberId }"` : "") };
|
||
</script>
|
||
<script>
|
||
(function () {
|
||
var sources = [
|
||
'//cl.k5a.io/6156b8c81b4d741e051f44c2.js',
|
||
];
|
||
|
||
function load() {
|
||
for (var i = 0; i < sources.length; i++) {
|
||
var script = document.createElement('script');
|
||
script.src = sources[i];
|
||
script.async = true;
|
||
document.head.appendChild(script);
|
||
}
|
||
}
|
||
|
||
// Kilkaya reads k5aMeta once, when it boots. On a paid article behind a
|
||
// client-side paywall the reader's access is not known while the head is
|
||
// parsed, so partial/lab4/analytics/kilkaya_metadata publishes k5aMetaReady
|
||
// and we hold off until the metadata is correct. Everywhere else the values
|
||
// are right already and Kilkaya loads immediately.
|
||
if (window.k5aMetaReady) {
|
||
window.k5aMetaReady.then(load);
|
||
} else {
|
||
load();
|
||
}
|
||
}());
|
||
</script>
|
||
|
||
<style>
|
||
:root {
|
||
|
||
|
||
}
|
||
</style>
|
||
|
||
|
||
</head>
|
||
|
||
<body class="l4 article site_theregister section_on_prem"
|
||
data-tag="on_prem,networks,cloudflare"
|
||
|
||
|
||
data-lab-imported="true"
|
||
|
||
>
|
||
|
||
<!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KVXB44"
|
||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) -->
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", (event) => {
|
||
setScrollbarWidth();
|
||
window.addEventListener('resize', setScrollbarWidth);
|
||
});
|
||
function setScrollbarWidth() {
|
||
const root = document.querySelector(':root');
|
||
const width = (window.innerWidth - document.body.offsetWidth < 21) ? window.innerWidth - document.body.offsetWidth : 15;
|
||
root.style.setProperty('--lab-scrollbar-width', `${ width }px`);
|
||
}
|
||
</script>
|
||
|
||
|
||
<a href="#main" class="skip-link">Jump to main content</a>
|
||
|
||
<header class="pageElement pageHeader">
|
||
<div class="row mainrow">
|
||
<div class="hamburger to-be-expanded" data-id="pageElements-3">
|
||
<div class="positionRelative">
|
||
<span class="hamburger-button hamburger-expander ">
|
||
<button class="burger-btn" aria-label="Open menu" aria-expanded="false" aria-controls="hamburger-container" aria-haspopup="menu">
|
||
<i class="open fi-list"></i>
|
||
<i class="close fi-x"></i>
|
||
</button>
|
||
</span>
|
||
<div class="hamburger-container" id="hamburger-container">
|
||
<div data-id="pageElements-4" class="search visible dac-hidden-desktop-up">
|
||
|
||
<form class="search-container" action="/cse" method="get" role="search">
|
||
<label for="search-input-4" class="visuallyhidden">Search</label>
|
||
<input type="text" id="search-input-4" name="q" placeholder="Search...">
|
||
<button type="submit" class="search-button" aria-label="Search">
|
||
<i class="open fi-magnifying-glass"></i>
|
||
</button>
|
||
</form>
|
||
|
||
</div>
|
||
|
||
<nav class="navigation mainMenu expandable">
|
||
<p class="lab-menu-name dac-hidden-desktop-down">TOPICS</p>
|
||
<ul class="menu-list">
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Security</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/security" target="_self">All Security</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cyber_crime" target="_self">Cyber-crime</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/patches" target="_self">Patches</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/research" target="_self">Research</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cso" target="_self">CSO</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Off-Prem</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/off_prem" target="_self">All Off-Prem</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/edge_iot" target="_self">Edge and IoT</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/channel" target="_self">Channel</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/paas-iaas" target="_self">PaaS and IaaS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/saas" target="_self">SaaS</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">On-Prem</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/on_prem" target="_self">All On-Prem</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/systems" target="_self">Systems</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/storage" target="_self">Storage</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/networks" target="_self">Networks</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/hpc" target="_self">HPC</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/personal_tech" target="_self">Personal Tech</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cxo" target="_self">Cx0</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/public-sector" target="_self">Public Sector</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Software</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/software" target="_self">All Software</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/ai%20and%20ml" target="_self">AI and ML</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/applications" target="_self">Applications</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/databases" target="_self">Databases</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/devops" target="_self">DevOps</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/os%20platforms" target="_self">OS Platforms</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/virtualization" target="_self">Virtualization</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Offbeat</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/offbeat" target="_self">All Offbeat</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/columnists" target="_self">Columnists</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/science" target="_self">Science</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/bofh" target="_self">BOFH</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/legal" target="_self">Legal</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/site_news" target="_self">Site News</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://www.theregister.com/about_us" target="_self">About Us</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
<script>
|
||
(function () {
|
||
// This is only called when the user presses the escape key.
|
||
function closeElement(event, element) {
|
||
if (event.key === 'Escape') {
|
||
window.removeEventListener('keydown', closeElement);
|
||
|
||
// Get all expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.mainMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
expanded[i].classList.remove('expanded');
|
||
|
||
// Traverse up from the element the user has selected to see if it is a child of the expanded element
|
||
// If it is, set focus to the first child, as that is the span element with tabindex.
|
||
// This is so that if the user has moved on from the menu, we shouldn't mess with the focus and flow
|
||
if (document.activeElement.closest('.has-children') === expanded[i]) {
|
||
expanded[i].children[0].focus();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function toggleElement(event, element) {
|
||
// Prevent the default link behavior
|
||
event.preventDefault();
|
||
|
||
// Check if there are other expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.mainMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
if (expanded[i] !== element.parentElement) {
|
||
expanded[i].classList.remove('expanded');
|
||
}
|
||
}
|
||
|
||
// Toggle the class "expanded" on the parent element
|
||
// We toggle instead of add/remove the class because we don't know if we are opening or closing the element
|
||
element.parentElement.classList.toggle('expanded');
|
||
|
||
window.addEventListener('keydown', closeElement);
|
||
}
|
||
|
||
// Add extra element for carat and toggle functionality after the span or a element
|
||
function addCarat(element) {
|
||
const carat = document.createElement('span');
|
||
carat.classList.add('carat');
|
||
carat.tabIndex = '0';
|
||
const sibling = element.querySelector(':scope > a') || element.querySelector(':scope > span');
|
||
element.insertBefore(carat, sibling.nextSibling);
|
||
element.tabIndex = '-1';
|
||
if (sibling.tagName === 'A') {
|
||
sibling.tabIndex = '0';
|
||
} else if (sibling.tagName === 'SPAN') {
|
||
sibling.tabIndex = '-1';
|
||
}
|
||
}
|
||
|
||
// Get all elements with class "has-children" and add two events - one click event and one keydown event
|
||
// Allow for the same expandable menu to be reused in different viewports by using different classes
|
||
let classes = '';
|
||
if (classes) {
|
||
classes = '.' + classes.trim().split(' ').join('.');
|
||
}
|
||
|
||
const hasChildren = document.querySelectorAll(`nav.mainMenu${ classes }.expandable .has-children > span`);
|
||
for (let i = 0; i < hasChildren.length; i++) {
|
||
hasChildren[i].addEventListener('click', function(e) {
|
||
toggleElement(e, this);
|
||
});
|
||
|
||
hasChildren[i].addEventListener('keydown', function (e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, this);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Get all elements with class "has-children" when toggleChildren is enabled and carat and toggle functionality
|
||
const hasChildrenToggle = document.querySelectorAll(`nav.mainMenu${ classes }.expandable.toggleChildren .has-children > span, nav.mainMenu${ classes }.expandable.toggleChildren .has-children > a`);
|
||
for (let i = 0; i < hasChildrenToggle.length; i++) {
|
||
|
||
// Add carat to the element
|
||
addCarat(hasChildrenToggle[i].parentElement);
|
||
|
||
if (hasChildrenToggle[i].tagName === 'A' || hasChildrenToggle[i].tagName === 'SPAN') {
|
||
hasChildrenToggle[i].nextSibling.addEventListener('click', function(e) {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
});
|
||
|
||
hasChildrenToggle[i].nextSibling.addEventListener('keydown', function(e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
}
|
||
});
|
||
|
||
// Use with caution - ensure that parent li overlaps with child ul to avoid prematurely triggering leave
|
||
if (hasChildrenToggle[i].closest('nav').classList.contains('toggleOnHover')) {
|
||
hasChildrenToggle[i].addEventListener('mouseenter', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.add('expanded');
|
||
});
|
||
|
||
hasChildrenToggle[i].parentElement.addEventListener('mouseleave', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.remove('expanded');
|
||
});
|
||
}
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.mainMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
<nav class="navigation bottomBarMenu expandable">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Special Features</span>
|
||
<ul class="children">
|
||
<li class="dac-hidden-desktop-up">
|
||
<a href="/special_features" target="_self">All Special Features</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/vmware_explore_2026" target="_self">VMware Explore 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/cloud_infrastructure_month_2026" target="_self">Cloud Infrastructure Month 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/explainer/ai-explainer" target="_self">HPE: AI Explainers</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/agentic_ai" target="_self">Agentic AI</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/future_of_the_datacenter" target="_self">The Future of the Datacenter</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/aws_reinvent" target="_self">AWS:Reinvent</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/nvidia_gtc" target="_self">Nvidia GTC</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/2025_11_supercomputing_month" target="_self">Supercomputing Month</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/computex" target="_self">Computex 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/ai_infrastructure_month_2026" target="_self">AI Infrastructure Month 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/state_of_storage_2026" target="_self">The State of Storage 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/rsa" target="_self">RSA Conference</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Vendor Voice</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/" target="_self">All Vendor Voice</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_fis_capital_markets/" target="_self">Modernizing Financial Services with FIS and AWS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/barco/" target="_self">Barco</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/infinidat/" target="_self">Infinidat</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/everpure/" target="_self">Everpure</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/rubrik/" target="_self">Rubrik</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_capgemini/" target="_self">Make it real with Capgemini and AWS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_fis/" target="_self">Money Movement Hub</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/zte_news_and_stories/" target="_self">ZTE</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/nutantix_cloud_native_apps/" target="_self">Nutanix: Scale Kubernetes. Not Chaos.</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_new_horizon/" target="_self">AWS New Horizon</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/digicert" target="_self">Digicert</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/netscout" target="_self">Netscout</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Resources</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="https://intelligence.theregister.com" target="_self">Intelligence</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://intelligence.theregister.com/events/list/" target="_self">Webinars & Events</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://account.theregister.com/login?r=https%3A%2F%2Faccount.theregister.com%2Fedit%2Fnewsletter%2F" target="_self">Newsletters</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
<script>
|
||
(function () {
|
||
// This is only called when the user presses the escape key.
|
||
function closeElement(event, element) {
|
||
if (event.key === 'Escape') {
|
||
window.removeEventListener('keydown', closeElement);
|
||
|
||
// Get all expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.bottomBarMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
expanded[i].classList.remove('expanded');
|
||
|
||
// Traverse up from the element the user has selected to see if it is a child of the expanded element
|
||
// If it is, set focus to the first child, as that is the span element with tabindex.
|
||
// This is so that if the user has moved on from the menu, we shouldn't mess with the focus and flow
|
||
if (document.activeElement.closest('.has-children') === expanded[i]) {
|
||
expanded[i].children[0].focus();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function toggleElement(event, element) {
|
||
// Prevent the default link behavior
|
||
event.preventDefault();
|
||
|
||
// Check if there are other expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.bottomBarMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
if (expanded[i] !== element.parentElement) {
|
||
expanded[i].classList.remove('expanded');
|
||
}
|
||
}
|
||
|
||
// Toggle the class "expanded" on the parent element
|
||
// We toggle instead of add/remove the class because we don't know if we are opening or closing the element
|
||
element.parentElement.classList.toggle('expanded');
|
||
|
||
window.addEventListener('keydown', closeElement);
|
||
}
|
||
|
||
// Add extra element for carat and toggle functionality after the span or a element
|
||
function addCarat(element) {
|
||
const carat = document.createElement('span');
|
||
carat.classList.add('carat');
|
||
carat.tabIndex = '0';
|
||
const sibling = element.querySelector(':scope > a') || element.querySelector(':scope > span');
|
||
element.insertBefore(carat, sibling.nextSibling);
|
||
element.tabIndex = '-1';
|
||
if (sibling.tagName === 'A') {
|
||
sibling.tabIndex = '0';
|
||
} else if (sibling.tagName === 'SPAN') {
|
||
sibling.tabIndex = '-1';
|
||
}
|
||
}
|
||
|
||
// Get all elements with class "has-children" and add two events - one click event and one keydown event
|
||
// Allow for the same expandable menu to be reused in different viewports by using different classes
|
||
let classes = '';
|
||
if (classes) {
|
||
classes = '.' + classes.trim().split(' ').join('.');
|
||
}
|
||
|
||
const hasChildren = document.querySelectorAll(`nav.bottomBarMenu${ classes }.expandable .has-children > span`);
|
||
for (let i = 0; i < hasChildren.length; i++) {
|
||
hasChildren[i].addEventListener('click', function(e) {
|
||
toggleElement(e, this);
|
||
});
|
||
|
||
hasChildren[i].addEventListener('keydown', function (e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, this);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Get all elements with class "has-children" when toggleChildren is enabled and carat and toggle functionality
|
||
const hasChildrenToggle = document.querySelectorAll(`nav.bottomBarMenu${ classes }.expandable.toggleChildren .has-children > span, nav.bottomBarMenu${ classes }.expandable.toggleChildren .has-children > a`);
|
||
for (let i = 0; i < hasChildrenToggle.length; i++) {
|
||
|
||
// Add carat to the element
|
||
addCarat(hasChildrenToggle[i].parentElement);
|
||
|
||
if (hasChildrenToggle[i].tagName === 'A' || hasChildrenToggle[i].tagName === 'SPAN') {
|
||
hasChildrenToggle[i].nextSibling.addEventListener('click', function(e) {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
});
|
||
|
||
hasChildrenToggle[i].nextSibling.addEventListener('keydown', function(e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
}
|
||
});
|
||
|
||
// Use with caution - ensure that parent li overlaps with child ul to avoid prematurely triggering leave
|
||
if (hasChildrenToggle[i].closest('nav').classList.contains('toggleOnHover')) {
|
||
hasChildrenToggle[i].addEventListener('mouseenter', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.add('expanded');
|
||
});
|
||
|
||
hasChildrenToggle[i].parentElement.addEventListener('mouseleave', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.remove('expanded');
|
||
});
|
||
}
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.bottomBarMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
(function(){
|
||
const burgerButton = document.querySelector('[data-id="pageElements-3"] .burger-btn');
|
||
const dropdownCloseSection = document.querySelector('[data-id="pageElements-3"] .dropdown-close-section');
|
||
const hamburgerContainer = document.querySelector('[data-id="pageElements-3"] .hamburger-container');
|
||
|
||
function toggleDropdown() {
|
||
// Toggle the expanded class and aria-expanded attribute
|
||
document.querySelector('[data-id="pageElements-3"].hamburger.to-be-expanded').classList.toggle('expanded');
|
||
burgerButton.setAttribute('aria-expanded', burgerButton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true');
|
||
burgerButton.setAttribute('aria-label', burgerButton.getAttribute('aria-expanded') === 'true' ? 'Close menu' : 'Open menu');
|
||
|
||
// This doesn't seem to do anything? But there's styling dependent on it some places
|
||
document.body.classList.toggle('hamburger-expanded');
|
||
}
|
||
|
||
function getFocusableElements() {
|
||
if (!hamburgerContainer) return [];
|
||
return Array.from(hamburgerContainer.querySelectorAll(
|
||
'a[href], button:not([disabled]), input:not([disabled]), ' +
|
||
'select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
||
)).filter(function(el) {
|
||
if (el.closest('[hidden]')) return false;
|
||
if (getComputedStyle(el).visibility === 'hidden') return false;
|
||
const rect = el.getBoundingClientRect();
|
||
return rect.width > 0 || rect.height > 0;
|
||
});
|
||
}
|
||
|
||
// Called via the event listener - handles Escape (close menu, restore focus) and
|
||
// Tab (trap focus within the open menu)
|
||
function handleKeydown(e) {
|
||
if (e.key === 'Escape') {
|
||
toggleDropdown();
|
||
// Set the focus back on the button when clicking escape, so the user can continue tabbing down
|
||
// the page in a natural flow
|
||
burgerButton.focus();
|
||
window.removeEventListener('keydown', handleKeydown);
|
||
return;
|
||
}
|
||
|
||
if (e.key === 'Tab') {
|
||
const focusable = getFocusableElements();
|
||
if (focusable.length === 0) return;
|
||
|
||
if (!e.shiftKey && document.activeElement === focusable[focusable.length - 1]) {
|
||
// Tab past last item → burger button
|
||
e.preventDefault();
|
||
burgerButton.focus();
|
||
} else if (e.shiftKey && document.activeElement === burgerButton) {
|
||
// Shift+Tab from burger button → last item
|
||
e.preventDefault();
|
||
focusable[focusable.length - 1].focus();
|
||
}
|
||
}
|
||
}
|
||
|
||
if(burgerButton) {
|
||
burgerButton.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
toggleDropdown();
|
||
|
||
// If the menu gets expanded, add the event listener that will close it on pressing Escape
|
||
// else, remove the event listener otherwise it will continue to listen for escape even if the menu is closed.
|
||
if(burgerButton.getAttribute('aria-expanded') === 'true') {
|
||
window.addEventListener('keydown', handleKeydown);
|
||
} else {
|
||
window.removeEventListener('keydown', handleKeydown);
|
||
}
|
||
})
|
||
}
|
||
if (dropdownCloseSection) {
|
||
dropdownCloseSection.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
toggleDropdown();
|
||
});
|
||
}
|
||
|
||
document.querySelectorAll('.hamburger .hamburger-expander, .hamburger .hamburger-container, .stop-propagation').forEach(function (element) {
|
||
element.addEventListener('click', function (e) {
|
||
e.stopPropagation();
|
||
});
|
||
});
|
||
}());
|
||
</script><div data-id="pageElements-7" class="search to-be-expanded dac-hidden-desktop-down bonusButton">
|
||
|
||
<form class="search-container" action="/cse" method="get" role="search">
|
||
<label for="search-input-7" class="visuallyhidden">Search</label>
|
||
<input type="text" id="search-input-7" name="q" placeholder="Search...">
|
||
<button id="bonusButton" class="bonusButton">
|
||
<i class="fi-magnifying-glass" aria-hidden="true"></i>
|
||
</button>
|
||
</form>
|
||
|
||
<button class="search-button search-expander" aria-label="Search" aria-expanded="false" aria-controls="search-input-7">
|
||
<i class="open fi-magnifying-glass"></i>
|
||
<i class="close fi-x"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<script>
|
||
// Do the check for the search button inside the if statement, so we don't set a global const if there are multiple search buttons
|
||
if (document.querySelector('[data-id="pageElements-7"] .search-button')) {
|
||
// Now we can set a const that is only available inside the if scope
|
||
const searchButton = document.querySelector('[data-id="pageElements-7"] .search-button');
|
||
let searchWasExpanded = false;
|
||
let hadPointerDown = false;
|
||
searchButton.addEventListener('pointerdown', () => {
|
||
searchWasExpanded = searchButton.getAttribute('aria-expanded') === 'true';
|
||
hadPointerDown = true;
|
||
});
|
||
searchButton.addEventListener('click', (event) => {
|
||
event.preventDefault();
|
||
event.stopPropagation();
|
||
|
||
// For pointer interactions (mouse/touch), use the state captured at pointerdown time,
|
||
// before focusout could collapse the search. For keyboard interactions, pointerdown
|
||
// never fires, so read aria-expanded directly — focusout doesn't fire on keyboard
|
||
// so the current state is still accurate.
|
||
const wasExpanded = hadPointerDown ? searchWasExpanded : searchButton.getAttribute('aria-expanded') === 'true';
|
||
hadPointerDown = false;
|
||
|
||
const shouldOpen = !wasExpanded;
|
||
searchButton.parentElement.classList.toggle('expanded', shouldOpen);
|
||
searchButton.setAttribute('aria-expanded', shouldOpen ? 'true' : 'false');
|
||
searchButton.setAttribute('aria-label', shouldOpen ? 'Close search' : 'Open search');
|
||
|
||
// Set focus to the input.
|
||
// This might be dodgy due to moving focus automatically, but we'll keep it in for now.
|
||
if (shouldOpen) {
|
||
document.getElementById('search-input-7').focus();
|
||
}
|
||
}, false);
|
||
}
|
||
|
||
if (document.getElementById('bonusButton')) {
|
||
document.getElementById('bonusButton').addEventListener('pointerdown', (event) => {
|
||
event.preventDefault();
|
||
});
|
||
document.getElementById('bonusButton').addEventListener('click', (event) => {
|
||
document.querySelector('[data-id="pageElements-7"] .search-container').submit();
|
||
}, false);
|
||
}
|
||
|
||
// Wrap in a block so const doesn't conflict when multiple search widgets are on the same page
|
||
{
|
||
const searchWrapper = document.querySelector('[data-id="pageElements-7"]');
|
||
if (searchWrapper) {
|
||
const searchButton = document.querySelector('[data-id="pageElements-7"] .search-button');
|
||
searchWrapper.addEventListener('focusout', (event) => {
|
||
if (searchWrapper.classList.contains('expanded') && !searchWrapper.contains(event.relatedTarget)) {
|
||
searchWrapper.classList.remove('expanded');
|
||
if (searchButton) {
|
||
searchButton.setAttribute('aria-expanded', 'false');
|
||
searchButton.setAttribute('aria-label', 'Open search');
|
||
}
|
||
}
|
||
});
|
||
|
||
searchWrapper.addEventListener('keydown', (event) => {
|
||
if (event.key === 'Escape' && searchWrapper.classList.contains('expanded')) {
|
||
searchWrapper.classList.remove('expanded');
|
||
if (searchButton) {
|
||
searchButton.setAttribute('aria-expanded', 'false');
|
||
searchButton.setAttribute('aria-label', 'Open search');
|
||
searchButton.focus();
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
</script>
|
||
<figure class="logo logo--mobile">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
|
||
<figure class="logo logo--primary">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
|
||
<figure class="logo logo--secondary">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
<nav class="navigation topBarMenu">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item login-btn">
|
||
<a href="https://account.theregister.com/login" target="_self">Sign in</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.topBarMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
<div class="row dac-hidden-desktop-down bottom-row">
|
||
<div class="section">
|
||
<nav class="navigation customMenu1">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item ">
|
||
<a href="/tag/ai%20and%20ml" target="_self">AI</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/security" target="_self">Security</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/software" target="_self">Software</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/microsoft" target="_self">Microsoft</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/devops" target="_self">Developer</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/open%20source" target="_self">Open Source</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/bofh" target="_self">BOFH</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/who%20me" target="_self">Who, Me?</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/on%20call/" target="_self">On Call</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/science" target="_self">Science</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.customMenu1 ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
if (!'IntersectionObserver' in window) { return; }
|
||
|
||
var scrollEvents = scrollEvents || [];
|
||
|
||
if (scrollEvents) {
|
||
const domInterface = {
|
||
classList: {
|
||
remove: () => {},
|
||
add: () => {}
|
||
},
|
||
style: {
|
||
cssText: ''
|
||
}
|
||
};
|
||
|
||
scrollEvents.forEach(function(event) {
|
||
if (!event.directional) {
|
||
var callback = function(entries, observer) {
|
||
if (!entries[0]) { return; }
|
||
if (entries[0].isIntersecting) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = "";
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.remove(classname);
|
||
});
|
||
});
|
||
} else {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = item.style;
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.add(classname);
|
||
});
|
||
});
|
||
}
|
||
};
|
||
|
||
var observer = new IntersectionObserver(callback, {
|
||
rootMargin: event.offset,
|
||
threshold: 1
|
||
});
|
||
var target = document.querySelector(event.target);
|
||
if (target) {
|
||
observer.observe(target);
|
||
}
|
||
}
|
||
|
||
if (event.directional) {
|
||
let previousTop = 0;
|
||
window.addEventListener('scroll', function() {
|
||
setTimeout(function() {
|
||
const currentTop = window.pageYOffset || document.documentElement.scrollTop;
|
||
if (currentTop > previousTop + 10) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = item.style;
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.add(classname);
|
||
});
|
||
});
|
||
} else if (currentTop < previousTop - 10) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = "";
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.remove(classname);
|
||
});
|
||
});
|
||
}
|
||
previousTop = currentTop;
|
||
}, 200);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
}());
|
||
|
||
window.Dac.clientData.paywall.toggleAuthenticatedContent();
|
||
</script>
|
||
</header>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section id="mainArticleSection" class="main article">
|
||
<div data-element-guid="736ab285-505f-4551-9455-d16691336551" class="placeholder placement-top">
|
||
<div data-element-guid="1cd62a40-df2a-4461-e3e9-b6f881c083f2" class="column google-ad small-12 large-12 small-abs-12 large-abs-12" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/a" style="min-height:90px;"></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/a');
|
||
});
|
||
</script>
|
||
</div>
|
||
|
||
</div>
|
||
<main class="pageWidth">
|
||
<article class=" "
|
||
|
||
>
|
||
|
||
<section class="main article k5a-article" id="main">
|
||
|
||
<div></div>
|
||
<script>
|
||
(function() {
|
||
let windowUrl = window.location.href;
|
||
windowUrl = windowUrl.substring(windowUrl.indexOf('?') + 1);
|
||
let messageElement = document.querySelector('.shareableMessage');
|
||
if (windowUrl && windowUrl.includes('code') && windowUrl.includes('expires')) {
|
||
messageElement.style.display = 'block';
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<div data-element-guid="aeef89ba-a6fe-4a40-bf0a-acd2cab94760" class="articleHeader column">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText"> </div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<p class="kicker below" style="">
|
||
<a href="/tag/networks">Networks</a>
|
||
</p>
|
||
|
||
<h1 class="headline mainTitle below" style="">
|
||
This major internet routing blunder took A WEEK to fix. Why so long? It was IPv6 – and no one really noticed
|
||
</h1>
|
||
|
||
<p class="subtitle below" style="">
|
||
When you meant to type /127 but entered /12 instead
|
||
</p>
|
||
|
||
|
||
<div data-element-guid="e32662b5-504b-4d8b-a8c0-f91b20481918" class="meta">
|
||
|
||
|
||
<div class="bylines">
|
||
<div data-element-guid="4940aa7b-264d-4be2-b94e-dc69a6d0d78c" class="byline column" itemscope itemtype="http://schema.org/Person">
|
||
|
||
<div class="content">
|
||
|
||
<address class="name lab-name-flex">
|
||
<span class="lab-hidden-byline-name" itemprop="name">Kieren McCarthy</span>
|
||
<a rel="author" itemprop="url" href="https://www.theregister.com/author/Kieren-McCarthy">
|
||
<span class="firstname ">Kieren</span>
|
||
<span class="lastname ">McCarthy</span>
|
||
</a>
|
||
</address>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="dates">
|
||
<span class="dateGroup datePublished">
|
||
<span class="dateLabel">Published</span>
|
||
<time datetime="2019-07-02T21:09:20.000Z">tue 2 Jul 2019 // 22:09 UTC</time>
|
||
</span>
|
||
</div>
|
||
|
||
|
||
<div class="social">
|
||
<a target="_blank" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-facebook" aria-label="Share on Facebook"></a>
|
||
<a target="_blank" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-twitter" aria-label="Share on X (Twitter)"></a>
|
||
<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-linkedin" aria-label="Share on LinkedIn"></a>
|
||
<a target="_blank" href="https://bsky.app/intent/compose?text=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-bluesky" aria-label="Share on Bluesky"></a>
|
||
<a target="_blank" href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109&title=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed" class="fi-social-reddit" aria-label="Share on Reddit"></a>
|
||
<a target="_blank" href="https://api.whatsapp.com/send?text=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-whatsapp" aria-label="Share on WhatsApp"></a>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="07dded19-fe0c-41b4-a2f9-bfb1927ba8a7" class="bodytext large-12 small-12 medium-12"
|
||
>
|
||
|
||
|
||
|
||
<p><span class="tertiary color_mobile_tertiary" data-lab-text_color="tertiary">COMMENT</span> Last week, an internet routing screw-up propagated by Verizon for three hours <a href="https://www.theregister.com/2019/06/24/verizon_bgp_misconfiguration_cloudflare/" target="_blank">sparked havoc online</a>, leading to significant press attention and industry calls for greater network security.</p>
|
||
<p>A few weeks before that, another <a href="https://www.theregister.com/2019/06/10/bgp_route_hijack_china_telecom/" target="_blank">packet routing blunder</a>, this time pushed by China Telecom, lasted two hours, caused significant disruption in Europe and prompted some to wonder whether Beijing's spies were abusing the internet's trust-based structure to carry out surveillance.</p>
|
||
<p>In both cases, internet engineers were shocked at how long it took to fix traffic routing errors that normally only last minutes or even seconds. Well, that was nothing compared to what happened this week.</p>
|
||
<div data-element-guid="ab1d7a7a-6a8a-4ac1-e621-64d4d033da11" class="column google-ad widthFull" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/b" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/b');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>Cloudflare's director of network engineering Jerome Fleury has revealed that the routing for a big block of IP addresses was wrongly announced for an ENTIRE WEEK and, just as amazingly, the company that caused it didn't notice until the major blunder was pointed out by another engineer at Cloudflare. (This cock-up is completely separate to <a href="https://www.theregister.com/2019/07/02/cloudflare_down/" target="_blank">today's Cloudflare outage</a>.)</p>
|
||
<div data-element-guid="922d95b9-bc16-4272-93bf-4bbaa2a2180e" class="column google-ad floatRight widthAuto" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/c" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/c');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>How is it even possible for network routes to remain completely wrong for several days? Because, folks, it was on IPv6.</p>
|
||
<p>"So Airtel AS9498 announced the entire IPv6 block 2400::/12 for a week and no-one notices until Tom Strickx finds out and they confirm it was a typo of /127," Fleury <a href="https://twitter.com/Jerome_UZ/status/1145136294835523584" target="_blank">tweeted</a> over the weekend, complete with graphic showing the massive routing error.</p>
|
||
<p>That /12 represents 83 decillion IP addresses, or four quadrillion /64 networks. The /127 would be 2. Just 2 IP addresses. Slight difference. And while this demonstrates the expansiveness of IPv6's address space, and perhaps even its robustness seeing as nothing seems to have actually broken during the routing screw-up, it also hints at just how sparse IPv6 is right now.</p>
|
||
<p>To be fair to Airtel, it often takes someone else to notice a network route error – typically caused by simple typos like failing to add a "7" – because the organization that messes up the tables tends not to see or feel the impact directly.</p>
|
||
<p>But if ever there was a symbol of how miserably the transition from IPv4 to IPv6 is going, it's in the fact that a fat IPv6 routing error went <a href="https://stat.ripe.net/widget/bgplay#w.ignoreReannouncements=false&w.resource=2400%3A%3A%2F12&w.starttime=1560981599&w.endtime=1561773599&w.rrcs=0%2C1%2C2%2C5%2C6%2C7%2C10%2C11%2C13%2C14%2C15%2C16%2C18%2C20&w.instant=null&w.type=bgp" rel="nofollow" target="_blank">completely unnoticed for a week</a> while an IPv4 error will usually result in phone calls, emails, and outcry on social media within minutes.</p>
|
||
<p>And sure, IPv4 space is much, much more dense than IPv6 so obviously people will spot errors much faster. But no one at all noticed the advertisement of a /12 for days? That may not bode well for the future, even though, yes, this particular /127 typo had no direct impact.</p>
|
||
<h2 class="crosshead">
|
||
<span>Everyday experience</span>
|
||
</h2>
|
||
<p>Y'know what? Maybe it was noticed, and people have grown so used to IPv6 being a little unreliable thanks to countless fudges and fixes that engineers keep imposing on the existing system – instead of shifting to IPv6 properly – that it didn’t seem too out of the ordinary.</p>
|
||
<div data-element-guid="3728b3e4-05cb-4348-ff95-65635db0f3a9" class="column google-ad widthFull" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/d" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/d');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>Perhaps it went unnoticed because automated systems ignored it in preference of more specific, working, routes, and nothing at all raised any alarms.</p>
|
||
<article data-element-guid="666e9b1b-ba1c-4268-c49c-6908803f4a35" class="column desktop-floatRight mobile-floatRight small-6 large-2 small-abs-6 large-abs-2 " data-site-alias="" data-section="" data-instance="4993826" itemscope>
|
||
|
||
<div class="content" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/2018/09/04/aussie_broadband_ipv6/" data-k5a-url="/a/undefined" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<figure data-element-guid="e37132a1-89ac-40f1-fe63-9bfb3902f3eb" class="" >
|
||
<div class="img fullwidthTarget">
|
||
<picture>
|
||
<source srcset="https://image.theregister.com/253187.webp?imageId=253187&width=354&height=238&format=webp"
|
||
width="177"
|
||
height="119"
|
||
media="(min-width: 768px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/253187.webp?imageId=253187&width=354&height=238&format=jpg"
|
||
width="177"
|
||
height="119"
|
||
media="(min-width: 768px)"
|
||
type="image/jpeg">
|
||
<source srcset="https://image.theregister.com/253187.webp?imageId=253187&width=480&height=324&format=webp"
|
||
width="240"
|
||
height="162"
|
||
media="(max-width: 767px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/253187.webp?imageId=253187&width=480&height=324&format=jpg"
|
||
width="240"
|
||
height="162"
|
||
media="(max-width: 767px)"
|
||
type="image/jpeg">
|
||
<img src="https://image.theregister.com/253187.webp?imageId=253187&width=480&height=324&format=jpg"
|
||
width="240"
|
||
height="162"
|
||
alt="Big bill"
|
||
loading="lazy"
|
||
style=""
|
||
>
|
||
</picture>
|
||
</div>
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline "
|
||
style=""
|
||
>Strewth! Aussie ISP gets eye-watering IPv4 bill, shifts to IPv6 addresses
|
||
</h2>
|
||
<div
|
||
style=""
|
||
class="kicker belowTitle ">
|
||
Read more
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<p>There are now quite a few different sources on how IPv6 adoption is going: the Internet Society has compiled most of the good ones in <a href="https://www.internetsociety.org/deploy360/ipv6/statistics/" target="_blank">a single place</a>. But while internet organizations continue to insist that things are going well, with, say the Americas offering 31 per cent IPv6 capability, it may be time to start digging into the stats that really matter: actual usage.</p>
|
||
<p>Google currently claims that 28 per cent of its visitors <a href="https://www.google.com/intl/en/ipv6/statistics.html" target="_blank">are using IPv6</a>. We don't buy it. More likely that it's 28 per cent of connections, rather than actual users. And we wonder how much of that is automated traffic that comes from Google's own systems.</p>
|
||
<p>Just as routing errors have drawn attention to the fact that the internet is too strongly reliant on trust and is often held together by string and willpower, this error reveals that IPv6, more than 20 years after its inception, is still dangerously lagging in actual adoption.</p>
|
||
<p>And considering an entire block went AWOL, it only strengthens the argument that every internet provider and infrastructure organization needs to get on board with the Mutually Agreed Norms for Routing Security (<a href="https://www.manrs.org/about/" rel="nofollow" target="_blank">MANRS</a>), add filtering and anti-spoofing, and do more coordination and validation. ®</p>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="73a73949-0548-4c8d-832d-77d1cc423ef5" class="column articleFooter">
|
||
<span class="tags">
|
||
<a href="/tag/on_prem" data-tag="on_prem">on_prem</a>
|
||
<a href="/tag/networks" data-tag="networks">networks</a>
|
||
<a href="/tag/cloudflare" data-tag="cloudflare">cloudflare</a>
|
||
</span>
|
||
|
||
</div>
|
||
|
||
|
||
<div class="row social">
|
||
<div class="column large-12 small-12">
|
||
<a target="_blank" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-facebook" aria-label="Share on Facebook"></a>
|
||
<a target="_blank" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-twitter" aria-label="Share on X (Twitter)"></a>
|
||
<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-linkedin" aria-label="Share on LinkedIn"></a>
|
||
<a target="_blank" href="https://bsky.app/intent/compose?text=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-bluesky" aria-label="Share on Bluesky"></a>
|
||
<a target="_blank" href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109&title=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed" class="fi-social-reddit" aria-label="Share on Reddit"></a>
|
||
<a target="_blank" href="https://api.whatsapp.com/send?text=This%20major%20internet%20routing%20blunder%20took%20A%20WEEK%20to%20fix.%20Why%20so%20long%3F%20It%20was%20IPv6%20%E2%80%93%20and%20no%20one%20really%20noticed%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2019%2F07%2F02%2Fthis-major-internet-routing-blunder-took-a-week-to-fix-why-so-long-it-was-ipv6-and-no-one-really-noticed%2F495109" class="fi-social-whatsapp" aria-label="Share on WhatsApp"></a>
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
</article>
|
||
<section class="related desktop-fullWidth mobile-fullWidth fullwidthTarget">
|
||
<div data-element-guid="b11523ac-e688-4f14-a580-adaecf344fc7" class="page-content"><div data-element-guid="1eb175f6-b4fc-4a20-9083-7c2cc55d1108" class="row small-12 large-12" style="">
|
||
<div data-element-guid="49ca9416-fb90-4a83-9993-e5e1a463569f" class="column google-ad small-12 large-12 small-abs-12 large-abs-12 large-12 small-12" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/f" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/f');
|
||
});
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="d22aa264-f7ad-4f25-f486-e1d764e4b24c" class="row small-12 large-12" style="">
|
||
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="0540e613-f3f7-44de-d1fc-d4001cf36eb1" class="front_rows small-12 large-12 small-abs-12 large-abs-12 large-6 small-12 large-12 small-12">
|
||
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
<div data-element-guid="06b3fb90-9516-4852-9951-35e6c1258027" class="row small-12 large-12" style="">
|
||
<div data-element-guid="d6e8ebeb-3092-49e9-b1f2-d58d8201ff65" id="markup_5253783" class="markupbox column small-12 large-12 small-abs-12 large-abs-12">
|
||
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="4bbed283-a2c5-4166-9180-f14b373db0ee" class="row small-12 large-12 desktop-space-outsideTop-small mobile-space-outsideTop-small desktop-space-outsideBottom-medium mobile-space-outsideBottom-medium bg-tertiary color_mobile_bg-tertiary op-bg_80 color_mobile_op-bg_80 hasContentPadding mobile-hasContentPadding" style="">
|
||
<div data-element-guid="c613a685-236f-4105-8a50-8126cec1f926" class="columns small-12 large-4 small-abs-12 large-abs-4"><div data-element-guid="0ab19c22-f064-4243-94db-ad9523462ffe" class="row small-12 large-12" style="">
|
||
<article data-element-guid="a9be01e0-5084-4618-a6e5-bc5051e67bc3" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="ai and ml" data-tag="artificial intelligence,ai safety,harvestbench,llms,openai,ai and ml" data-instance="5248919" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_40 color_mobile_op-bg_40 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/ai-and-ml/2026/09/11/ai-more-likely-to-kill-animals-if-it-saves-fuel-or-money/5295993" data-k5a-url="https://www.theregister.com/a/5295993" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<figure data-element-guid="0ee86205-d05f-412e-8463-ef472188c588" class="" >
|
||
<div class="img fullwidthTarget">
|
||
<picture>
|
||
<source srcset="https://image.theregister.com/5296007.jpg?imageId=5296007&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=webp"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5296007.jpg?imageId=5296007&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=jpg"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/jpeg">
|
||
<source srcset="https://image.theregister.com/5296007.jpg?imageId=5296007&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=webp"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5296007.jpg?imageId=5296007&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/jpeg">
|
||
<img src="https://image.theregister.com/5296007.jpg?imageId=5296007&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
alt=""
|
||
loading="lazy"
|
||
style=""
|
||
>
|
||
</picture>
|
||
</div>
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
<div
|
||
style=""
|
||
class="kicker floating bg-primary color_mobile_bg-primary secondary color_mobile_secondary hasTextPadding mobile-hasTextPadding hasTextColor hasTextColorMobile">
|
||
ai and ML
|
||
</div>
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>AI more likely to kill animals if it saves fuel or money
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
Machine learning models still have a lot to learn about the value of life
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T23:49:59+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="d5752714-6923-482a-acff-6c7be1ba49a1" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="security" data-tag="security,vulnerability,cyber-crime" data-instance="5248921" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/security/2026/09/11/more-jfrog-artifactory-bugs-under-attack-and-all-3-have-patches/5295943" data-k5a-url="https://www.theregister.com/a/5295943" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
security
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>More JFrog Artifactory bugs under attack, and all 3 have patches
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
If you're waiting for a sign to upgrade to a fixed version: this is it
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T19:43:30+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="bb22098e-9b3c-4782-b74c-7711294fcf2a" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="storage" data-tag="storage" data-instance="5248923" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-septenary mobile_border-bg-septenary mobile_no_border_side border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/storage/2026/09/08/partner-content-hpe-makes-its-unified-storage-claim-real-as-b10000-r6-hits-ga/5294566" data-k5a-url="https://www.theregister.com/a/5294566" rel="sponsored nofollow">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>HPE makes its “unified storage” claim real as B10000 R6 hits GA
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
PARTNER CONTENT: Pairs block and adjacent file workloads with independent scaling of performance and capacity
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-08T10:00:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div><div data-element-guid="f6ddbf86-659e-49fc-a8b1-49335cdab812" class="columns small-12 large-4 small-abs-12 large-abs-4"><div data-element-guid="0bc148e8-a10f-48d0-a80c-9cb123d20afe" class="row small-12 large-12" style="">
|
||
<article data-element-guid="757c9104-16dd-484d-b68d-5426da1adfef" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="offbeat" data-tag="mars,space,offbeat,science" data-instance="5248925" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/offbeat/2026/09/11/mars-astronauts-could-live-in-houses-made-of-yeast-and-jello-say-scientists/5295931" data-k5a-url="https://www.theregister.com/a/5295931" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
offbeat
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>Mars astronauts could live in houses made of yeast and jello, say scientists
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
Low-energy 3D printing could turn Martian dirt into sturdy structures
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T18:50:01+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="9e6258d2-802b-484c-8eee-51bc92196816" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="columnists" data-tag="ai and ml,security,columnists,openai,opinion,hugging face" data-instance="5248927" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_40 color_mobile_op-bg_40 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/columnists/2026/09/07/openais-rebel-agent-swarm-died-young-but-its-chilling-logs-live-on/5294446" data-k5a-url="https://www.theregister.com/a/5294446" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<figure data-element-guid="1958528f-18fc-4f52-8a68-18ef1aa447d8" class="" >
|
||
<div class="img fullwidthTarget">
|
||
<picture>
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=webp"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=jpg"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/jpeg">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=webp"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/jpeg">
|
||
<img src="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
alt=""
|
||
loading="lazy"
|
||
style=""
|
||
>
|
||
</picture>
|
||
</div>
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
<div
|
||
style=""
|
||
class="kicker floating bg-primary color_mobile_bg-primary secondary color_mobile_secondary hasTextPadding mobile-hasTextPadding hasTextColor hasTextColorMobile">
|
||
COLUMNISTS
|
||
</div>
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>OpenAI's rebel agent swarm died young, but its chilling logs live on
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
'The Collective' learned to communicate, organize, cheat, and apparently sacrifice its own
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-07T10:30:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="b8d1c518-25f5-4e1e-b9b0-92bec0bde645" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="offbeat" data-tag="coinbase,offbeat,cryptocurrency,open source" data-instance="5248929" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/offbeat/2026/09/11/disembodied-fruit-fly-brain-joins-the-crypto-speculation-swarm/5295914" data-k5a-url="https://www.theregister.com/a/5295914" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
OFFBEAT
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>Disembodied fruit fly brain joins the crypto speculation swarm
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
Coinbase engineer gives simulated insect $100 and lets its neurons make the trades
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T18:03:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="b0b79df7-305b-4d35-9581-2ac153eddd40"
|
||
id="toplist_5248931"
|
||
class="column toplist layout_vertical small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content bg-secondary color_mobile_bg-secondary hasContentPadding mobile-hasContentPadding"
|
||
style="--active-tab-background-color: var(--bg-primary);">
|
||
|
||
|
||
<h3 class="headline t32 font-weight-bold m-font-weight-bold bg-primary color_mobile_bg-primary align-center mobile_text_align_align-center font-Roboto hasTextPadding mobile-hasTextPadding">
|
||
TOP STORIES
|
||
</h3>
|
||
|
||
|
||
|
||
<ul class="toplist-results toplist-counter">
|
||
<li
|
||
data-section="personal tech"
|
||
data-tags="consumer rights,european union,personal tech,repairability,right to repair,smartphones"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/personal-tech/2026/09/07/smartphone-makers-dont-bother-to-comply-with-eu-repairability-requirements/5294532">
|
||
<img src="//image.theregister.com/4093968.jpg?imageId=4093968&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/personal-tech/2026/09/07/smartphone-makers-dont-bother-to-comply-with-eu-repairability-requirements/5294532">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">PERSONAL TECH</span>
|
||
</div>
|
||
<h4>Smartphone makers don't bother to comply with EU repairability requirements</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="off-prem"
|
||
data-tags="cloud computing,google cloud,off-prem,router"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/off-prem/2026/09/04/google-engineer-unplugged-every-fiber-they-could-see-and-surprise-took-down-a-chunk-of-the-g-cloud/5294418">
|
||
<img src="//image.theregister.com/5263102.jpg?imageId=5263102&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/off-prem/2026/09/04/google-engineer-unplugged-every-fiber-they-could-see-and-surprise-took-down-a-chunk-of-the-g-cloud/5294418">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">OFF-PREM</span>
|
||
</div>
|
||
<h4>Google engineer unplugged every fiber they could see and – surprise! – took down a chunk of the G-Cloud</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="networks"
|
||
data-tags="atmail,broadband,email services,exclusive,junara,networks,virgin media"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/networks/2026/09/09/virgin-media-offloads-email-services-to-third-party-provider/5295230">
|
||
<img src="//image.theregister.com/1681267.jpg?imageId=1681267&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/networks/2026/09/09/virgin-media-offloads-email-services-to-third-party-provider/5295230">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">NETWORKS</span>
|
||
</div>
|
||
<h4>Virgin Media offloads email services to third-party provider</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="offbeat"
|
||
data-tags="analog,hardware,offbeat,retro computing"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/08/retired-man-turns-spare-room-into-soviet-era-supercomputer/5295046">
|
||
<img src="//image.theregister.com/5295094.jpg?imageId=5295094&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/08/retired-man-turns-spare-room-into-soviet-era-supercomputer/5295046">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">offbeat</span>
|
||
</div>
|
||
<h4>Retired man turns spare room into Soviet-era supercomputer</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="software"
|
||
data-tags="ai and ml,microsoft,microsoft edge,software,vibe coding,web browser"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/software/2026/09/09/another-microsoft-team-admits-its-struggling-to-handle-flood-of-ai-generated-code/5295185">
|
||
<img src="//image.theregister.com/5271891.jpg?imageId=5271891&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/software/2026/09/09/another-microsoft-team-admits-its-struggling-to-handle-flood-of-ai-generated-code/5295185">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">software</span>
|
||
</div>
|
||
<h4>Another Microsoft team admits it’s struggling to handle flood of AI-generated code</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="offbeat"
|
||
data-tags="drone,ministry of defence,offbeat"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/04/uk-military-wants-lasers-to-stop-drone-swarms-without-running-out-of-ammo/5294176">
|
||
<img src="//image.theregister.com/5294183.jpg?imageId=5294183&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/04/uk-military-wants-lasers-to-stop-drone-swarms-without-running-out-of-ammo/5294176">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">OFFBEAT</span>
|
||
</div>
|
||
<h4>UK military wants lasers to stop drone swarms without running out of ammo</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="text/javascript">
|
||
(function() {
|
||
function initializeToplistTabs_5248931() {
|
||
const container = document.getElementById('toplist_5248931');
|
||
if (!container) return;
|
||
|
||
const nav = container.querySelector('.tab-navigation');
|
||
const contentItems = container.querySelectorAll('ul > li:not(.no-results)');
|
||
const firstTab = nav ? nav.querySelector('.tab') : null;
|
||
|
||
const activeTab = nav ? nav.querySelector('.tab.active') : null;
|
||
if (nav && !activeTab) {
|
||
handleTabClick(firstTab);
|
||
}
|
||
|
||
if (!firstTab || contentItems.length === 0) {
|
||
// If there are no tabs, make sure all content is visible.
|
||
contentItems.forEach(item => item.style.display = '');
|
||
return;
|
||
}
|
||
|
||
// This function handles the filtering logic.
|
||
function handleTabClick(clickedTab) {
|
||
if (!clickedTab) return;
|
||
const targetDomain = clickedTab.getAttribute('data-domain');
|
||
const allTabs = nav.querySelectorAll('.tab');
|
||
allTabs.forEach(tab => tab.classList.remove('active'));
|
||
clickedTab.classList.add('active');
|
||
|
||
// Show or hide content items based on the selected tab
|
||
contentItems.forEach(item => {
|
||
const tabMode = 'default';
|
||
const itemTabContent = item.getAttribute('data-tab-content');
|
||
|
||
if (tabMode === 'hostname' || tabMode === 'tags') {
|
||
if (itemTabContent && itemTabContent.trim().toLowerCase() === targetDomain.trim().toLowerCase()) {
|
||
item.style.display = '';
|
||
} else {
|
||
item.style.display = 'none';
|
||
}
|
||
} else {
|
||
item.style.display = '';
|
||
}
|
||
});
|
||
}
|
||
|
||
// Use a single event listener on the navigation container.
|
||
if (nav) {
|
||
nav.addEventListener('click', function(event) {
|
||
event.preventDefault();
|
||
const clickedTab = event.target.closest('.tab');
|
||
if (clickedTab) {
|
||
handleTabClick(clickedTab);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
// Make function globally accessible for editor
|
||
window.initializeToplistTabs_5248931 = initializeToplistTabs_5248931;
|
||
|
||
// Initialize on load
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', initializeToplistTabs_5248931);
|
||
} else {
|
||
initializeToplistTabs_5248931();
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
</div>
|
||
<div data-element-guid="ea3e891d-a254-4fa5-9e86-0042e6799ec6" class="row small-12 large-12 desktop-space-outsideTop-medium mobile-space-outsideTop-medium" style="">
|
||
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="5867f2f9-d789-4ebd-ac97-87265a1e9759" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black font-Roboto underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/tag/ai" aria-label="AI">AI</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/security/2026/09/10/watch-out-apple-timepiece-can-grab-snippets-of-conversation-without-both-speakers-consent/5295666">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SECURITY</p>
|
||
<h4 class="abt-title">Watch out: Apple timepiece can grab snippets of conversation without both speakers' consent</h4>
|
||
<p class="abt-subtitle">War is peace. Freedom is slavery. Privacy is surveillance</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/systems/2026/09/10/d-matrix-drinks-the-nvidia-kool-aid-with-nvlink-fusion-and-mgx-rack-designs/5295403">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SYSTEMS</p>
|
||
<h4 class="abt-title">d-Matrix drinks the Nvidia Kool-Aid with NVLink Fusion and MGX rack designs</h4>
|
||
<p class="abt-subtitle">AI infrastructure startup joins Qualcomm, Arm, Marvell, Amazon, Fujitsu, and MediaTek as NVLink true believers</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/ai-and-ml/2026/09/10/anthropic-reveals-fourth-likely-crime-committed-by-its-ai/5295412">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">ai and ml</p>
|
||
<h4 class="abt-title">Anthropic reveals fourth likely crime committed by its AI</h4>
|
||
<p class="abt-subtitle">Claude's Felony Bench rap sheet is now as long as OpenAI's</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/systems/2026/09/09/samsung-to-help-fortify-openais-semiconductor-supply-chain/5295374">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SYSTEMS</p>
|
||
<h4 class="abt-title">Samsung to help fortify OpenAI's semiconductor supply chain</h4>
|
||
<p class="abt-subtitle">Semiconductor supply chains are hard, but Samsung offers OpenAI relief in many forms spanning compute and memory</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/ai-and-ml/2026/09/08/google-deepmind-rises-above-the-ai-scrum-with-genome-atlas/5295137">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">AI+ML</p>
|
||
<h4 class="abt-title">Google DeepMind rises above the AI scrum with genome atlas</h4>
|
||
<p class="abt-subtitle">See, AI can be used for good ... or at the very least, a useful distraction from the bad</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- placeholder(#2) -->
|
||
<div data-element-guid="e5d90dd5-e92e-472a-9948-b2389698e07e" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black font-Roboto underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/security" aria-label="InfoSec">Infosec</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/security/2026/03/22/russians-posing-as-signal-support-to-launch-phishing-raids/5221189">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">Russians are posing as Signal support to launch phishing attacks</h4>
|
||
<p class="abt-subtitle">PLUS: US takes down Iranian propaganda sites; Marketing company asks 'Why Do We Have Your Information?' And more!</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/security/2025/07/21/microsoft-warns-on-prem-sharepoint-users-of-a-zero-day/550805">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">Microsoft patches failed to fix on-prem SharePoint, which is now under zero-day attack</h4>
|
||
<p class="abt-subtitle">PLUS: China upgrades smartphone surveillance tools; Ring eases anti-snooping stance; and more</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/special-features/2024/08/12/def-con-launches-public-policy-report-volunteer-program/408600">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Black Hat and DEF CON</p>
|
||
<h4 class="abt-title">DEF CON Franklin project enlists hackers to harden critical infrastructure</h4>
|
||
<p class="abt-subtitle">Voting village reports have been so successful, says Jeff Moss, that the whole of DEF CON will now be included</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/security/2024/08/07/eqt-buys-majority-share-in-cybersecurity-outfit-acronis/853853">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">EQT buys majority share in Swiss cybersecurity biz Acronis</h4>
|
||
<p class="abt-subtitle">Went at equivalent of $3.5B+ valuation for entire firm, though portion sold not specified</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/special-features/2024/05/08/10-years-since-the-first-corp-ransomware-and-no-end-in-sight/1259096">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Malware Month</p>
|
||
<h4 class="abt-title">Ten years since the first corp ransomware, Mikko Hyppönen sees no end in sight</h4>
|
||
<p class="abt-subtitle">On the plus side, infosec's a good bet for a long, stable career</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- placeholder(#3) -->
|
||
<div data-element-guid="83da923f-416e-4549-8d8f-1b9302e80c05" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/tag/FOSS">FOSS</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/devops/2026/09/10/shopify-extends-lifeline-to-tailwind-as-vibe-coding-erodes-web-dev-platforms-bottom-line/5295672">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Shopify extends lifeline to Tailwind as vibe coding erodes web dev platform's bottom line</h4>
|
||
<p class="abt-subtitle">Acquisition gives open source CSS framework 'a stable long-term home'</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/09/switzerland-tests-a-foss-escape-route-from-microsoft-365/5294878">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Switzerland tests a FOSS escape route from Microsoft 365</h4>
|
||
<p class="abt-subtitle">Swiss Army sticks a knife in American cloud apps with its own FOSS push</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/07/feel-peak-windows-was-7-you-might-like-kumander-linux/5294760">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Feel peak Windows was 7? You might like Kumander Linux</h4>
|
||
<p class="abt-subtitle">Debian and Xfce – solid, sensible choices – with a pretty skin</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/04/canonical-shuttering-some-of-its-legacy-chat-channels/5294524">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Canonical shuttering some of its legacy chat channels</h4>
|
||
<p class="abt-subtitle">The Ubuntu Pastebin went in June, IRC gets demoted next</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/personal-tech/2026/09/03/audacity-audio-editing-app-no-longer-looks-like-its-from-the-early-2000s/5294270">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Audacity audio-editing app no longer looks like it's from the early 2000s</h4>
|
||
<p class="abt-subtitle">The FOSS tool for audio editing has a fresh coat of paint, and new features to boot</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/03/haiku-os-rises-/-beta-6-sails-open-web-/-virtual-winds-fly-fast/5294184">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Haiku OS rises / Beta 6 sails open web / Virtual winds fly fast</h4>
|
||
<p class="abt-subtitle">A real alternative to running some kind of FOSS Unix clone</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
</main>
|
||
|
||
|
||
</section>
|
||
|
||
<template class="definitionTemplate">
|
||
<div class="definitionPopup">
|
||
<div class="definitionInfo">
|
||
<p></p>
|
||
<span></span>
|
||
<button class="definitionClose">✕</button>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
|
||
|
||
<script>
|
||
(function() {
|
||
const audioPlayers = document.querySelectorAll('.dacInlineAudio');
|
||
for (const audioPlayer of audioPlayers) {
|
||
window.dachserData.push('audioInline', audioPlayer);
|
||
}
|
||
|
||
window.addEventListener('load', function() {
|
||
if (window.Dac && window.Dac.Definition) {
|
||
const definition = new Dac.Definition();
|
||
definition.setup();
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
<script>
|
||
window.lab_article_data = window.lab_article_data || {};
|
||
if (lab_article_data[495109]) {
|
||
lab_article_data[495109].tagsString = 'on_prem,networks,cloudflare';
|
||
lab_article_data[495109].section = 'on_prem';
|
||
lab_article_data[495109].pageType = 'article';
|
||
} else {
|
||
lab_article_data[495109] = {
|
||
tagsString: 'on_prem,networks,cloudflare'
|
||
, section: 'on_prem'
|
||
, pageType: 'article'
|
||
};
|
||
|
||
}
|
||
</script>
|
||
|
||
|
||
|
||
<footer class="page">
|
||
<div data-element-guid="1b2aade5-2711-4202-83e0-c1ee17a28b9b" class="row-section desktop-space-outsideBottom-none mobile-space-outsideBottom-none bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div class="row small-12 large-12 desktop-space-outsideBottom-none mobile-space-outsideBottom-none desktop-space-insideTop-none mobile-space-insideTop-none bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div data-element-guid="342e5400-b668-48dd-b811-7f53040cac1f" id="markup_102602" class="markupbox column small-12 large-12 small-abs-12 large-abs-12 desktop-fullWidth mobile-fullWidth">
|
||
<style></style>
|
||
<div class="content fullwidthTarget bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div style="display: flex; justify-content: center; margin-top: -0.5rem; margin-bottom: -0.5rem;">
|
||
<img src="https://www.theregister.com/files/2025/10/15/The_register_full_icon_white.svg" alt="Logo" width="120" style="margin-bottom: 0.25rem;">
|
||
<p style="font-family: Roboto; font-size: 14px; margin-bottom: 0.25rem; margin-left: 0.5rem; font-weight: 700;">Biting the hand that feeds IT</p>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="652fb46f-93f4-42cd-8110-7307542d326a" class="row-section desktop-space-outsideTop-none mobile-space-outsideTop-none bg-quinary color_mobile_bg-quinary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div class="row small-12 large-12 desktop-space-outsideTop-none mobile-space-outsideTop-none bg-quinary color_mobile_bg-quinary hasContentPadding mobile-hasContentPadding" style="">
|
||
<article data-element-guid="eb364ced-8795-41d6-ac71-8c68f9bb5aa7" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100744" itemscope>
|
||
<style></style>
|
||
<div class="content" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16 font-Roboto"
|
||
style=""
|
||
>About Us
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.theregister.com/profile/contact" aria-label="Contact our reporters securely and safely" data-lab-underline="" class="">Contact us</a><br><a href="https://situationpublishing.com/contact/" target="_blank">Advertise with us</a><br><a href="https://www.theregister.com/profile/about_the_register">Who we are</a><br><a href="https://account.theregister.com/register/?product=reg_weekly">Newsletter</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="93b271a3-0687-4bc8-8aa0-f8608675b096" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100745" itemscope>
|
||
<style></style>
|
||
<div class="content" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16 font-Roboto"
|
||
style=""
|
||
>Our Websites
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.nextplatform.com/" target="_blank">The Next Platform</a><br><a href="https://devclass.com/" target="_blank">DevClass</a><br><a href="https://blocksandfiles.com/" target="_blank">Blocks and Files</a><br><a href="https://situationpublishing.com/" target="_blank">Situation Publishing</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="95965a77-7ca7-4314-ad6b-45263a326748" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100746" itemscope>
|
||
<style></style>
|
||
<div class="content mobile_no_border_color mobile_no_border_side" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16"
|
||
style=""
|
||
>Your Privacy
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.theregister.com/Profile/cookies">Cookies Policy</a><br><a href="https://www.theregister.com/profile/privacy" aria-label="Privacy Policy">Privacy Policy</a><br><a href="https://www.theregister.com/profile/terms_and_conditions_of_use">Ts & Cs</a><br><a href="https://www.theregister.com/Profile/privacy_policy_california_residents/">Do not share my personal information</a><br><a href="https://www.theregister.com/profile/terms_and_conditions_of_use" aria-label="Your Consent Options">Your Consent Options</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="cf683f5c-2c72-45ed-adc7-1d2b49035294" class="column small-12 large-4 small-abs-12 large-abs-4 " data-site-alias="" data-section="" data-instance="102499" itemscope>
|
||
<style></style>
|
||
<div class="content mobile_no_border_color mobile_no_border_side" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm14"
|
||
style=""
|
||
>Archives<br class="newline newline-mobile"><br class="newline newline-desktop"><span data-lab-font_weight_desktop="font-weight-normal" class="font-weight-normal m-font-weight-normal t14" data-lab-text_size_desktop="14"><a href="https://www.theregister.com/archive" aria-label="Archives" target="_blank">27 years of articles</a></span>
|
||
</h2>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="181414e4-8d1d-4724-9997-6e1172b8476c" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="2918009" itemscope>
|
||
<style>@media (max-width: 1023px) { [data-element-guid="181414e4-8d1d-4724-9997-6e1172b8476c"] .content { margin-right:14% !important; margin-left:12% !important; } }</style>
|
||
<div class="content color_mobile_no_bg_color border-side-left mobile_border-side-top border_width_2 border_width_mobile_2" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="2f5fde96-d7da-483d-abd8-5991a1502f25" id="markup_2918010" class="markupbox column small-12 large-12 small-abs-12 large-abs-2">
|
||
<style></style>
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div>
|
||
<img src="https://beta.theregister.com/files/2025/10/09/SituationPublishing_Logo_Evolution_Twolines-White-Barlow (1).svg" alt="Situation Publishing Logo" style="max-width: 200px; height: auto; display: block; margin: 0 auto 0.5rem;">
|
||
<p style="font-family: Roboto, sans-serif; font-size: 12px; color: #FFFFFF; margin: 0;">
|
||
Copyright. All rights reserved © 1998-2026.
|
||
</p>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
|
||
</footer>
|
||
|
||
|
||
|
||
<script src="/view-resources/baseview/public/common/build/baseview_dependencies_dom.js?v=1789115797-L4" data-cookieconsent="ignore"></script>
|
||
<script src="/view-resources/baseview/public/common/adLabel.js?v=1789115797-L4"></script>
|
||
|
||
<script>
|
||
window.dachserData.handlers = {
|
||
parallax: function(item) {
|
||
if (window.Dac && window.Dac.Parallax) {
|
||
new Dac.Parallax(item);
|
||
} else {
|
||
console.warn('parallax: Missing required class Dac.Parallax. Content will not animate.');
|
||
}
|
||
},
|
||
swipehelper: function(item) {
|
||
if (window.Dac && window.Dac.SwipeHelper) {
|
||
var element = document.querySelector(item.selector);
|
||
if (!element) {
|
||
console.warn('SwipeHelper: Missing element for selector: "' + item.selector + '".');
|
||
return null;
|
||
}
|
||
return new Dac.SwipeHelper(element, item);
|
||
} else {
|
||
console.warn('SwipeHelper: Missing required function Dac.SwipeHelper.');
|
||
return null;
|
||
}
|
||
},
|
||
readprogress: function(item) {
|
||
if (window.Dac && window.Dac.ReadProgress) {
|
||
var element = document.querySelector(item.selector);
|
||
if (!element) {
|
||
console.warn('ReadProgress: Missing element for selector: "' + item.selector + '".');
|
||
return;
|
||
}
|
||
new Dac.ReadProgress(element, item);
|
||
} else {
|
||
console.warn('ReadProgress: Missing required function Dac.ReadProgress.');
|
||
}
|
||
},
|
||
tabnavigation: function(item) {
|
||
if (window.Dac && window.Dac.TabNavigation) {
|
||
new Dac.TabNavigation(item);
|
||
} else {
|
||
console.warn('TabNavigation: Missing required function Dac.Tabnavigation.');
|
||
}
|
||
},
|
||
elementattributetoggler: function(item) {
|
||
if (window.Dac && window.Dac.ElementAttributeToggler) {
|
||
new Dac.ElementAttributeToggler(item);
|
||
} else {
|
||
console.warn('ElementAttributeToggler: Missing required class Dac.ElementAttributeToggler.');
|
||
}
|
||
},
|
||
articlelists: (item) => {
|
||
if (window.Dac && window.Dac.ArticleLists) {
|
||
new Dac.ArticleLists(item);
|
||
} else {
|
||
console.warn('ElementAttributeToggler: Missing required class Dac.ArticleLists.');
|
||
}
|
||
}
|
||
};
|
||
|
||
window.dachserData.execute = () => {
|
||
|
||
// Parallax
|
||
// Register each element requiering js-animations
|
||
const parallaxQueue = window.dachserData.get('parallax') || [];
|
||
parallaxQueue.forEach(item => {
|
||
window.dachserData.handlers.parallax(item);
|
||
});
|
||
|
||
// SwipeHelper, used by several components like ArticleScroller etc.
|
||
// Register each element using SwipeHelper:
|
||
const swipehelperQueue = window.dachserData.get('swipehelper') || [];
|
||
swipehelperQueue.forEach(item => {
|
||
window.dachserData.setInstance(
|
||
'swipehelper',
|
||
item.selector,
|
||
window.dachserData.handlers.swipehelper(item)
|
||
);
|
||
});
|
||
|
||
// ReadProgress
|
||
const readprogressQueue = window.dachserData.get('readprogress') || [];
|
||
readprogressQueue.forEach(item => {
|
||
window.dachserData.handlers.readprogress(item);
|
||
});
|
||
|
||
// Tab-navigation
|
||
const tabnavigationQueue = window.dachserData.get('tabnavigation') || [];
|
||
tabnavigationQueue.forEach(item => {
|
||
window.dachserData.handlers.tabnavigation(item);
|
||
});
|
||
|
||
// ElementAttributeToggler
|
||
const elementAttributeTogglerQueue = window.dachserData.get('elementattributetoggler') || [];
|
||
elementAttributeTogglerQueue.forEach(item => {
|
||
window.dachserData.handlers.elementattributetoggler(item);
|
||
});
|
||
|
||
const articlelistsQueue = window.dachserData.get('articlelists') || [];
|
||
articlelistsQueue.forEach(item => {
|
||
window.dachserData.handlers.articlelists(item);
|
||
});
|
||
};
|
||
|
||
(function () {
|
||
|
||
window.dachserData.execute();
|
||
|
||
}());
|
||
</script>
|
||
|
||
|
||
|
||
<script id="twitter-wjs" type="text/javascript" async defer src="//platform.twitter.com/widgets.js"></script><script >document.addEventListener("DOMContentLoaded", () => {
|
||
const link = document.querySelector('[aria-label="Your Consent Options"]');
|
||
if (!link) return;
|
||
|
||
let ready = false;
|
||
|
||
link.addEventListener("click", (e) => {
|
||
e.preventDefault();
|
||
if (ready) {
|
||
googlefc.callbackQueue.push(googlefc.showRevocationMessage);
|
||
}
|
||
});
|
||
|
||
let attempts = 0;
|
||
const check = setInterval(() => {
|
||
if (typeof googlefc !== "undefined" && googlefc.callbackQueue) {
|
||
clearInterval(check);
|
||
ready = true;
|
||
} else if (++attempts >= 6) {
|
||
clearInterval(check);
|
||
link.remove();
|
||
}
|
||
}, 1000);
|
||
});</script>
|
||
|
||
</body>
|
||
</html>
|