CINXE.COM

War Story: RPKI is Working as Intended | RIPE Labs

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"> <title>War Story: RPKI is Working as Intended | RIPE Labs</title> <meta name="description" content="Three weeks ago, Fastly was the target of a BGP hijack similar to a far more widely-reported incident that happened back in 2008. But this time, barely anyone noticed. Why is that?"> <link rel="apple-touch-icon" sizes="180x180" href="/static/icons/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/static/icons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/static/icons/favicon-16x16.png"> <link rel="manifest" href="/static/icons/site.webmanifest"> <link rel="shortcut icon" href="/favicon.ico"> <link rel="alternate" type="application/rss+xml" title="RIPE Labs - RSS 2.0" href="/feed.xml"> <link rel="alternate" type="application/atom+xml" title="RIPE Labs - Atom" href="/atom.xml"> <meta name="msapplication-TileColor" content="#2a4587"> <meta name="msapplication-config" content="/static/icons/browserconfig.xml"> <meta name="theme-color" content="#2a4587"> <meta property="og:site_name" content="RIPE Labs"> <meta name="twitter:site" content="@ripelabs"> <meta property="og:type" content="article"> <meta property="og:url" content="https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"> <meta property="og:title" content="War Story: RPKI is Working as Intended"> <meta property="og:description" content="Three weeks ago, Fastly was the target of a BGP hijack similar to a far more widely-reported incident that happened back in 2008. But this time, barely anyone noticed. Why is that?"> <meta property="og:image" content="https://labs.ripe.net/images/smb80QKLff0-Q-6tN0eFUMrkq5U=/9021/width-500/Internet_map_1024.jpg"> <meta name="twitter:title" content="War Story: RPKI is Working as Intended"> <meta name="twitter:description" content="Three weeks ago, Fastly was the target of a BGP hijack similar to a far more widely-reported incident that happened back in 2008. But this time, barely anyone noticed. Why is that?"> <meta name="twitter:image" content="https://labs.ripe.net/images/smb80QKLff0-Q-6tN0eFUMrkq5U=/9021/width-500/Internet_map_1024.jpg"> <meta name="twitter:card" content="summary"> <script data-default-providers="acast, google, flourish, observable, twitter, youtube" src="https://www-static.ripe.net/static/webcomponents/embed-consent-v1.1.4.min.js"></script> <link rel="preload" href="/static/fonts/open-sans-latin-variable-wghtOnly-normal.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <link rel="stylesheet" href="/static/CACHE/css/style.954fceedcc9a.css" type="text/css"> <script type="text/javascript"> var _paq = window._paq || []; _paq.push(['requireCookieConsent']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://www-analytics.ripe.net/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '10']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> </head> <body class="flex flex-col min-h-full mt-burger bg-white"> <script src="/static/CACHE/js/ripe-app-webcomponents.25dc0bb1d2b2.js"></script> <ripe-header skipnav class="h-0"> <svg slot="logo-app" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1821 392"><path fill="#25316a" d="M457 80h93c49 0 77 28 77 67 0 26-13 52-41 63l49 83h-58l-42-75h-24v75h-54V80zm86 99c20 0 32-12 32-29 0-18-12-28-32-28h-32v57h32zm116-99h54v213h-54V80zm90 0h97c47 0 75 29 75 69 0 35-22 71-74 71h-44v73h-54V80zm88 99c20 0 32-12 32-29 0-18-13-28-32-28h-34v57h34zm110-99h158v44h-104v40h87v43h-87v43h104v43H947V80zm270 213V80h25v191h94v22h-119zm250 0-5-22h-1c-8 10-16 16-24 20s-18 5-30 5c-16 0-28-4-37-12s-14-20-14-35c0-32 26-49 78-51l27-1v-9c0-13-3-22-8-28-6-6-14-9-26-9-13 0-28 4-45 12l-8-19a115 115 0 0 1 54-13c19 0 34 4 43 12 9 9 14 22 14 41v109h-18zm-55-17c15 0 27-4 35-12 9-8 13-20 13-35v-14l-24 1c-19 0-33 3-42 9-8 5-12 13-12 24 0 9 2 16 8 20 5 5 12 7 22 7zm197-145c21 0 37 7 49 21 12 15 18 35 18 61s-6 47-18 61a59 59 0 0 1-49 22c-10 0-20-2-28-5-9-4-16-10-22-18h-2l-5 20h-17V66h24v55l-1 34h1c11-16 28-24 50-24zm-3 20c-17 0-29 5-36 14-8 10-11 26-11 48 0 23 4 39 11 48 8 10 20 15 36 15 15 0 26-5 33-16 8-11 11-27 11-47 0-21-3-36-11-47-7-10-18-15-33-15zm215 99c0 15-5 26-17 34-11 8-26 12-46 12-21 0-38-3-50-10v-22a120 120 0 0 0 50 12c13 0 23-2 30-6 6-4 10-10 10-18 0-6-3-12-8-16-6-5-16-10-32-16-15-5-25-10-32-14-6-5-11-9-14-15-3-5-4-11-4-18 0-13 5-24 16-31 10-8 25-12 43-12 17 0 34 4 51 11l-9 20c-16-7-30-10-44-10-11 0-20 2-26 5-5 4-8 9-8 15 0 4 1 8 3 11s6 6 11 9l28 11c19 7 31 14 38 21s10 16 10 27z"/><linearGradient id="a" x1="17.4" x2="275.6" y1="361.6" y2="81.4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#25316a"/><stop offset=".1" stop-color="#293269"/><stop offset=".1" stop-color="#343468"/><stop offset=".2" stop-color="#453764"/><stop offset=".2" stop-color="#5b3c60"/><stop offset=".3" stop-color="#764459"/><stop offset=".4" stop-color="#964d4f"/><stop offset=".4" stop-color="#bf5a3d"/><stop offset=".5" stop-color="#f36c21"/><stop offset="1" stop-color="#9c9c9c"/></linearGradient><path fill="url(#a)" d="m249 319-146-84V66l91-52-24-14L0 98v196l170 98 170-98v-28l-91 53zm-79 45L24 280V112l55-32v169l146 84-55 31z"/><linearGradient id="b" x1="37.4" x2="295.7" y1="380" y2="99.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#25316a"/><stop offset=".1" stop-color="#293269"/><stop offset=".1" stop-color="#343468"/><stop offset=".2" stop-color="#453764"/><stop offset=".2" stop-color="#5b3c60"/><stop offset=".3" stop-color="#764459"/><stop offset=".4" stop-color="#964d4f"/><stop offset=".4" stop-color="#bf5a3d"/><stop offset=".5" stop-color="#f36c21"/><stop offset="1" stop-color="#9c9c9c"/></linearGradient><path fill="url(#b)" d="M249 9 126 80v141l123 71 122-71V80L249 9zm98 198-98 57-98-57V94l98-57 98 57v113z"/></svg> <app-switcher appenv="prod" current="labs"></app-switcher> <user-login accessurl="access.ripe.net" logoutredirecturl="https://labs.ripe.net/"></user-login> </ripe-header> <app-nav-bar class="fixed top-0 z-50 mt-burger"></app-nav-bar> <app-cookie-consent></app-cookie-consent> <script type="text/javascript"> var RIPE_MENU = { main: [ { title: "Home", url: "/", icon: '<svg width="26" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 26"><path fill="currentColor" d="m16 20.6-9.1-5.2V5l5.6-3.2L11 .9.5 6.9v12.2L11 25l10.5-6v-1.7L16 20.6Zm-5 2.9-9-5.3V7.8l3.4-2v10.4l9 5.3-3.4 2Z"/><path fill="currentColor" d="M16 1.4 8.2 5.8v8.8l7.6 4.3 7.6-4.3V5.8l-7.6-4.4Zm6 12.3-6 3.5-6.2-3.5v-7L15.9 3 22 6.6v7.1Z"/></svg>', }, { title: "Categories", icon: '<svg width="26" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 26"><path fill="currentColor" d="m16 20.6-9.1-5.2V5l5.6-3.2L11 .9.5 6.9v12.2L11 25l10.5-6v-1.7L16 20.6Zm-5 2.9-9-5.3V7.8l3.4-2v10.4l9 5.3-3.4 2Z"/><path fill="currentColor" d="M16 1.4 8.2 5.8v8.8l7.6 4.3 7.6-4.3V5.8l-7.6-4.4Zm6 12.3-6 3.5-6.2-3.5v-7L15.9 3 22 6.6v7.1Z"/></svg>', id: "categories", }, { title: "Network Operations", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" viewBox="0 0 24 22" fill="currentColor"><path d="M17.6 10.9a1.1 1.1 0 1 1 2.3 0 1.1 1.1 0 0 1-2.3 0ZM15.7 12a1.1 1.1 0 1 0 0-2.3 1.1 1.1 0 0 0 0 2.3ZM24 6a2 2 0 0 1-.6 1.5c.4.4.6 1 .6 1.5v3.8c0 .5-.2 1-.6 1.4.4.4.6 1 .6 1.6v3.7c0 1.2-1 2.3-2.3 2.3H2.4c-1.3 0-2.3-1-2.3-2.3v-3.8c0-.5.2-1 .6-1.4-.4-.4-.6-1-.6-1.6V9c0-.6.2-1.1.6-1.5A2 2 0 0 1 0 6V2.2C0 1 1 0 2.3 0h19.4C23 0 24 1 24 2.3V6ZM1.5 6c0 .4.3.8.8.8h19.4c.5 0 .8-.4.8-.8V2.2c0-.4-.3-.7-.8-.7H2.4c-.5 0-.8.3-.8.8V6Zm20.3 2.3H2.1c-.4 0-.7.3-.7.7v3.8c0 .4.3.7.8.7h19.4c.5 0 .8-.3.8-.8V9c0-.4-.3-.8-.8-.8Zm.7 7.4c0-.4-.3-.7-.8-.7H2.4c-.5 0-.8.3-.8.8v3.7c0 .4.3.8.8.8h19.4c.5 0 .8-.4.8-.8v-3.8ZM18.7 5.3a1.1 1.1 0 1 0 0-2.3 1.1 1.1 0 0 0 0 2.3Zm-3 0a1.1 1.1 0 1 0 0-2.3 1.1 1.1 0 0 0 0 2.3Zm3 11.2a1.1 1.1 0 1 0 0 2.3 1.1 1.1 0 0 0 0-2.3Zm-3 0a1.1 1.1 0 1 0 0 2.3 1.1 1.1 0 0 0 0-2.3Z"/></svg>', url: "/category/network-operations/", parent: "categories", }, { title: "Measurements and Statistics", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" viewBox="0 0 24 18" fill="currentColor"><path d="M23.6 16.5H1.5V.4c0-.2-.2-.4-.4-.4H.4C.2 0 0 .2 0 .4v16.9c0 .4.3.7.8.7h22.8c.2 0 .4-.2.4-.4V17c0-.2-.2-.4-.4-.4Zm-19-7.2v.6l.5.5h.6L9 7l4 4c.2.3.7.3 1 0l4.4-4.4 2 2c.3.3.6.4.9.4.5 0 1.1-.5 1.1-1.1V2.3c0-.5-.3-.8-.8-.8H16c-1 0-1.5 1.2-.8 2l2.1 2-3.8 3.9-4-4a.7.7 0 0 0-1 0l-4 4ZM17 3h4v4l-4-4Z"/></svg>', url: "/category/measurements-and-statistics/", parent: "categories", }, { title: "Internet Governance", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24Zm9.3 7.4h-4a14 14 0 0 0-2-5.3c2.6.9 4.8 2.8 6 5.3Zm-5 4.6c0 1.1-.1 2.1-.3 3.1H8a22.9 22.9 0 0 1 0-6.2h8c.2 1 .3 2 .3 3.1ZM12 1.5c1.3 0 3 2.2 3.8 5.9H8.2C9 3.7 10.7 1.5 12 1.5Zm-3.3.6c-.9 1.3-1.6 3.1-2 5.3h-4C3.9 4.9 6 3 8.7 2ZM1.5 12c0-1 .2-2.1.5-3.1h4.4a24.5 24.5 0 0 0 0 6.2H2c-.3-1-.5-2-.5-3.1Zm1.2 4.6h4a14 14 0 0 0 2 5.3c-2.6-.9-4.8-2.8-6-5.3Zm9.3 5.9c-1.3 0-3-2.2-3.8-5.9h7.6c-.8 3.7-2.5 5.9-3.8 5.9Zm3.3-.6a14 14 0 0 0 2-5.3h4a10.5 10.5 0 0 1-6 5.3Zm2.3-6.8a24.5 24.5 0 0 0 0-6.2H22a10.4 10.4 0 0 1 0 6.2h-4.4Z"/></svg>', url: "/category/internet-governance/", parent: "categories", }, { title: "Technology and Innovation", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="28" viewBox="0 0 640 512" fill="currentColor"><path d="M638 197 564 20a32 32 0 0 0-42-18L414 47c-16 7-23 23-18 39L75 241c-9 5-13 14-10 22l9 21-64 26a16 16 0 0 0-9 21l20 49a16 16 0 0 0 21 8l64-26 9 21c4 10 15 10 22 8l134-46 4 4-51 152a8 8 0 0 0 8 11h17a8 8 0 0 0 7-5l47-141c13 3 22 3 34 0l47 141a8 8 0 0 0 7 5h17a8 8 0 0 0 8-11l-51-152a64 64 0 0 0 19-43l90-32c7 9 21 17 38 10l108-45a32 32 0 0 0 18-42ZM45 353l-8-19 49-21 8 19Zm275-17a32 32 0 1 1 32-32 32 32 0 0 1-32 32Zm56-62a64 64 0 0 0-119 42l-118 41-38-92 306-149 54 129Zm123-20L426 77l109-45 73 177Z"/></svg>', url: "/category/technology-and-innovation/", parent: "categories", }, { title: "Community and Events", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="26" viewBox="0 0 24 17" fill="currentColor"><path d="M20.4 7.2a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0-4.8a1.8 1.8 0 1 1 0 3.6 1.8 1.8 0 0 1 0-3.6Zm-8.4 6A4.2 4.2 0 1 0 12 0a4.2 4.2 0 0 0 0 8.4Zm0-7.2a3 3 0 1 1 0 6 3 3 0 0 1 0-6Zm9.1 7.2h-1.5a3 3 0 0 0-1.5.5l1 .8.5-.1h1.5c1 0 1.7.8 1.7 1.8 0 .3.3.6.6.6s.6-.3.6-.6a3 3 0 0 0-2.9-3ZM3.6 7.2a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0-4.8a1.8 1.8 0 1 1 0 3.6 1.8 1.8 0 0 1 0-3.6ZM15 9.2c-1.2 0-1.6.4-3 .4s-1.8-.4-3-.4a4.1 4.1 0 0 0-4.2 4.1V15c0 1 .8 1.8 1.8 1.8h10.8c1 0 1.8-.8 1.8-1.8v-1.7c0-.9-.3-1.7-.7-2.4A4.1 4.1 0 0 0 15 9.1Zm3 5.8c0 .3-.3.6-.6.6H6.6A.6.6 0 0 1 6 15v-1.7c0-.6.2-1.2.5-1.7A3 3 0 0 1 9 10.3c1 0 1.4.5 3 .5s2-.5 3-.5 2 .5 2.5 1.3c.3.5.5 1.1.5 1.7V15ZM5.9 8.9a3 3 0 0 0-1.6-.5H3a3 3 0 0 0-2.9 3c0 .3.3.6.6.6s.6-.3.6-.6c0-1 .7-1.8 1.7-1.8h1.4l.6.1L6 9Z"/></svg>', url: "/category/community-and-events/", parent: "categories", }, { title: "RIPE NCC", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800" fill="currentColor"><path d="M591 341V135L401 26 209 135v206L33 443v221l190 110 178-103 177 103 191-110V443L591 341zm-190 95-152-88 152-88 151 88-151 88zm-165-65 152 87v175l-152-88V371zm178 87 152-87v174l-152 88V458zM236 150l165-95 165 95v176l-165-96-165 96V150zM58 649V458l151-87v189l165 95-152 88-164-94zm684 0-165 95-152-88 165-95V372l152 87v190z"/></svg>', url: "/category/ripe-ncc/", parent: "categories", }, { title: "Podcasts", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 24" fill="currentColor"><path d="m15 14.7-.5-.8v-.3c.6-.9 1-2 1-3.1 0-3-2.5-5.4-5.4-5.2a5.2 5.2 0 0 0-5 5c0 1.2.4 2.4 1 3.3v.3l-.5.8c0 .2-.3.2-.5 0a6.8 6.8 0 0 1-1.4-4.2c0-3.7 3-6.8 6.6-6.7 3.6 0 6.5 3 6.6 6.6 0 1.6-.5 3.1-1.5 4.3-.1.2-.3.2-.4 0ZM10.3 0C4.6 0 0 4.7 0 10.5c0 3.8 2 7.2 5 9 .1.1.4 0 .4-.3a30 30 0 0 1-.3-1.4 9 9 0 0 1 5-16.3 9 9 0 0 1 5.3 16.4l-.2 1.3c0 .2.2.4.4.3 3-1.8 5-5.1 5-9C20.6 4.7 16 0 10.3 0Zm3 16.7c0 1.5-.7 4.9-1 6.2-.3.9-1.1 1.1-2 1.1-.9 0-1.8-.2-2-1.1-.4-1.3-1-4.7-1-6.2 0-1.7 1.5-2 3-2s3 .3 3 2Zm-1.5 0c0-.8-3-.8-3 0 0 1.3.5 4.4.9 5.7h1.2c.3-1.3.9-4.4.9-5.7Zm1.4-6.2a3 3 0 0 1-3 3 3 3 0 0 1-2.9-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3Zm-1.4 0c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5.7 1.5 1.5 1.5 1.5-.7 1.5-1.5Z"/></svg>', url: "/category/podcasts/", parent: "categories", }, { title: "Tools", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M503 390 378 265a80 80 0 0 0-101-10l-85-86V96L64 0 0 64l96 128h73l86 86a80 80 0 0 0 10 100l125 125a32 32 0 0 0 45 0l68-68c12-13 12-33 0-45zM160 158v2h-48L42 67l25-25 93 70v46zm252 322L288 356a48 48 0 0 1 0-68 48 48 0 0 1 67 0l125 124-68 68zM64 432c0 9 7 16 16 16s16-7 16-16-7-16-16-16-16 7-16 16zM277 67a118 118 0 0 1 104-33l-69 69 14 83 83 14 69-69a118 118 0 0 1-63 126l24 23a150 150 0 0 0 69-166c-3-9-10-16-20-19-9-3-19 0-26 7l-64 64-45-8-7-44 64-64a27 27 0 0 0-13-45 150 150 0 0 0-173 83v68l22 22c-10-40 2-82 31-111zM107 467a45 45 0 0 1-62 0 44 44 0 0 1 0-62l146-146-23-23L22 382a76 76 0 0 0 54 130c20 0 39-8 54-22l101-102c-6-9-11-19-15-30L107 467z"/></svg>', url: "/category/tools/", parent: "categories", }, { title: "Hackathons", url: "/hackathons/", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M368 88a56 56 0 1 0 56 56 56 56 0 0 0-56-56Zm0 80a24 24 0 1 1 24-24 24 24 0 0 1-24 24ZM505.3 19.3a18 18 0 0 0-12.5-12.4C460.7 0 435.5 0 410.5 0 307.3 0 245.4 55.2 199.2 128H95c-16.3 0-35.6 12-42.9 26.5L2.7 253.3A28.4 28.4 0 0 0 .2 264a24 24 0 0 0 24 24h104a96 96 0 0 1 96 96v104a24 24 0 0 0 24 24 28.5 28.5 0 0 0 10.6-2.6l98.7-49.4a52.6 52.6 0 0 0 26.5-42.8V312.8c72.6-46.3 128-108.4 128-211.1 0-25.2 0-50.3-6.8-82.4ZM37.2 256l43.6-87.2A22.3 22.3 0 0 1 95 160h85.1c-14 28-31.7 64-47.6 96l.1.4-95.4-.4ZM352 417.2c0 4.1-5 12.4-8.8 14.2l-87 43.6c0-23.9-.5-94-.5-95.6h.3l96-47.4h.1Zm-102-70.5a127.6 127.6 0 0 0-84.7-84.6C217.3 158.1 265 32 410.5 32c21.1 0 41.2 0 65.4 4.2 4.2 24.4 4.2 44.4 4 65.5 0 145-126.9 193.5-230 245ZM102.3 320C54.4 320 2 359.3.2 480H0v32h32v-.2c171.6-3.4 184.9-115 133.8-166.4a91.5 91.5 0 0 0-63.4-25.4Zm53 109.4c-12.9 31.1-57.7 49.4-123.4 50.5 0-3.5-1.1-127.9 70.4-127.9a60 60 0 0 1 40.8 16 59.4 59.4 0 0 1 12.1 61.4Z"/></svg>', }, { title: "NOGs", url: "/nogs/", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" fill="currentColor"><path d="M184 119c0-7-6-12-13-12l-9 3-28 29c-3 2-4 5-4 9 0 7 6 12 13 12h18l9-3 10-11c3-2 4-5 4-9v-18zM248 8a248 248 0 1 0 0 496 248 248 0 0 0 0-496zm48 458v-34c0-26-21-48-48-48h-20c-4 0-13-3-16-5l-23-17c-3-3-5-7-5-11v-24c0-4 3-9 7-11l42-26 7-2h32c3 0 6 1 8 3l53 45h30l17 17c10 10 22 15 36 15h16c-30 49-78 85-136 98zm153-130h-33c-5 0-10-2-13-5l-18-18c-6-6-14-9-22-9h-18l-44-37c-8-7-18-11-29-11h-32c-8 0-16 2-23 6l-43 26c-14 8-22 23-22 39v24c0 14 7 28 18 36l22 17c9 7 25 12 36 12h20c9 0 16 7 16 16v39l-16 1a216 216 0 0 1-1-432l-15 11c-10 8-16 19-16 32v23c0 6 3 17 6 22l-25 19c-8 8-13 20-13 32v16c0 25 20 45 45 45h26c11 0 21-3 29-10l13 2h13c26 0 32-20 36-22 5 10 14 17 24 20-5 14-1 30 10 42l18 19c9 9 20 14 33 14h27c-2 10-5 21-9 31zm-18-64c-4 0-7-1-10-4l-18-19a10 10 0 0 1 0-14c12-13 10-9 10-18 0-2-1-5-3-7l-7-7c-2-2-5-3-7-3h-14c-8 0-12-11-6-16l8-8c1-2 4-3 6-3h9c5 0 9-4 9-9v-10c0-5-4-10-9-10h-29c-7 0-13 6-13 14v5c0 6-4 11-9 13l-27 9c-4 1-4 5-4 8 0 4-3 7-7 7h-13c-4 0-7-3-7-7 0-8-13-9-15-3-9 12-12 18-20 18h-26c-7 0-13-6-13-13v-17c0-3 1-7 4-9 19-14 30-18 30-32 0-3 1-5 4-6l34-11 3-3 23-22c5-5 3-15-7-15h-17l-14 19v7c0 3-3 6-6 6h-15c-4 0-7-3-7-6V83c0-3 1-5 3-6l44-32a216 216 0 0 1 168 227h-32z"/></svg>', }, { title: "Tools", url: "/category/tools/", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M503 390 378 265a80 80 0 0 0-101-10l-85-86V96L64 0 0 64l96 128h73l86 86a80 80 0 0 0 10 100l125 125a32 32 0 0 0 45 0l68-68c12-13 12-33 0-45zM160 158v2h-48L42 67l25-25 93 70v46zm252 322L288 356a48 48 0 0 1 0-68 48 48 0 0 1 67 0l125 124-68 68zM64 432c0 9 7 16 16 16s16-7 16-16-7-16-16-16-16 7-16 16zM277 67a118 118 0 0 1 104-33l-69 69 14 83 83 14 69-69a118 118 0 0 1-63 126l24 23a150 150 0 0 0 69-166c-3-9-10-16-20-19-9-3-19 0-26 7l-64 64-45-8-7-44 64-64a27 27 0 0 0-13-45 150 150 0 0 0-173 83v68l22 22c-10-40 2-82 31-111zM107 467a45 45 0 0 1-62 0 44 44 0 0 1 0-62l146-146-23-23L22 382a76 76 0 0 0 54 130c20 0 39-8 54-22l101-102c-6-9-11-19-15-30L107 467z"/></svg>', }, { title: "Podcasts", url: "/category/podcasts/", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 24" fill="currentColor"><path d="m15 14.7-.5-.8v-.3c.6-.9 1-2 1-3.1 0-3-2.5-5.4-5.4-5.2a5.2 5.2 0 0 0-5 5c0 1.2.4 2.4 1 3.3v.3l-.5.8c0 .2-.3.2-.5 0a6.8 6.8 0 0 1-1.4-4.2c0-3.7 3-6.8 6.6-6.7 3.6 0 6.5 3 6.6 6.6 0 1.6-.5 3.1-1.5 4.3-.1.2-.3.2-.4 0ZM10.3 0C4.6 0 0 4.7 0 10.5c0 3.8 2 7.2 5 9 .1.1.4 0 .4-.3a30 30 0 0 1-.3-1.4 9 9 0 0 1 5-16.3 9 9 0 0 1 5.3 16.4l-.2 1.3c0 .2.2.4.4.3 3-1.8 5-5.1 5-9C20.6 4.7 16 0 10.3 0Zm3 16.7c0 1.5-.7 4.9-1 6.2-.3.9-1.1 1.1-2 1.1-.9 0-1.8-.2-2-1.1-.4-1.3-1-4.7-1-6.2 0-1.7 1.5-2 3-2s3 .3 3 2Zm-1.5 0c0-.8-3-.8-3 0 0 1.3.5 4.4.9 5.7h1.2c.3-1.3.9-4.4.9-5.7Zm1.4-6.2a3 3 0 0 1-3 3 3 3 0 0 1-2.9-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3Zm-1.4 0c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5.7 1.5 1.5 1.5 1.5-.7 1.5-1.5Z"/></svg>', }, ], footer: [ { title: "About Us", url: "/about-us/", icon: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 26 22"><path fill="currentColor" d="M13 2.8c-1.2 0-2.4.5-3.2 1.4a5 5 0 0 0-1.4 3.4l.2.4c.2.2.3.3.5.3s.3-.1.5-.3l.2-.4c0-1 .3-1.8.9-2.5.6-.6 1.4-1 2.3-1 .2 0 .3 0 .5-.2l.2-.5-.2-.4a.6.6 0 0 0-.5-.2ZM13 0C8.8 0 5.8 3.6 5.8 7.6c0 1.8.7 3.6 1.8 5 1 1.2 2 3.2 2.2 3.9v3.6l1 1.6.3.2.3.1h3.5l.2-.3 1-1.6.1-.4v-3.2c.1-.7 1.1-2.7 2.2-4 .9-1 1.5-2.4 1.7-3.8a8 8 0 0 0-.6-4.3A7.5 7.5 0 0 0 17 1.2 6.9 6.9 0 0 0 13 0Zm2 19.5-.7 1.1h-2.6l-.6-1v-.4h3.8v.3Zm0-1.6h-4v-1.4h4v1.4Zm2.4-6.3c-.6.7-1.5 2.1-2 3.5h-4.7c-.6-1.4-1.5-2.8-2.1-3.5a6.4 6.4 0 0 1-1.4-4c0-3.3 2.4-6.2 5.8-6.2a6 6 0 0 1 5.9 6.2c0 1.5-.6 3-1.5 4Zm-13.5-4c0-.2 0-.4-.2-.5a.6.6 0 0 0-.5-.2H.6c-.1 0-.3 0-.4.2l-.2.5c0 .1 0 .3.2.4.1.2.3.3.4.3h2.7l.4-.3.2-.4Zm17.5-4.8.3-.1 2.6-1.4c.2 0 .3-.2.4-.4a.7.7 0 0 0-.2-.7l-.2-.2h-.5l-2.6 1.4c-.2.1-.3.2-.3.4-.1.1-.1.3 0 .4l.1.4.4.2Zm4 4h-2.6c-.2 0-.4.1-.5.3l-.2.5c0 .1 0 .3.2.4.1.2.3.3.4.3h2.7l.4-.3.2-.4c0-.2 0-.4-.2-.5a.6.6 0 0 0-.4-.2ZM4.8 1.5 2.2.1a.6.6 0 0 0-.5 0c-.1 0-.3.1-.3.3v.5c0 .2.1.3.3.4l2.6 1.4a.6.6 0 0 0 .7-.1l.2-.4v-.4l-.4-.4Zm19.5 12.4-2.6-1.4h-.5c-.1 0-.3.2-.3.4v.5c0 .2.1.3.3.4l2.6 1.4h.5c.1 0 .3-.2.3-.4v-.5c0-.2-.1-.3-.3-.4ZM4.5 12.4h-.2l-2.6 1.4-.4.4a.7.7 0 0 0 .2.8h.7l2.6-1.3c.2 0 .3-.2.3-.3v-.5l-.1-.4a.6.6 0 0 0-.5-.1Z"/></svg>', }, { title: "Feedback", subtitle: "Tell us what you think", url: "/contact/", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M448 0H64A64 64 0 0 0 0 64v288a64 64 0 0 0 64 64h96v84a12 12 0 0 0 19 10l125-94h144a64 64 0 0 0 64-64V64a64 64 0 0 0-64-64zm32 352a32 32 0 0 1-32 32H293l-8 6-93 70v-76H64a32 32 0 0 1-32-32V64a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32v288z"/></svg>', }, { title: "Legal", subtitle: "Copyright, Privacy, Terms, Cookies", url: "/legal/", icon: '<svg width="80" height="80" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="m634.4 375-109-175.9a16.1 16.1 0 0 0-26.7 0l-109.1 176a31 31 0 0 0-5.5 19.6A128.2 128.2 0 0 0 512 512c67.3 0 122.5-51.6 128-117.3.5-6.9-1.7-13.8-5.6-19.6zM512 238.3 602.3 384H421l91-145.8zm0 241.8c-41.3 0-77-26.8-90.4-64h181.2a97.2 97.2 0 0 1-90.8 64zm17.9-317.2 5-15.2a8 8 0 0 0-5-10.1L379.5 87.2A64 64 0 0 0 320 0a63.8 63.8 0 0 0-61.3 46.7L120.2.4a8 8 0 0 0-10 5L105 20.7a8 8 0 0 0 5 10.2l148.4 49.6a63.8 63.8 0 0 0 45.6 45.3V480H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h224a8 8 0 0 0 8-8V125.7a63.4 63.4 0 0 0 23.3-11.5l160.5 53.6a8 8 0 0 0 10-5zM320 96a32 32 0 1 1 0-64 32 32 0 0 1 0 64zm-64 170.7a31 31 0 0 0-5.6-19.6l-109-176C138.2 66.4 133 64 128 64s-10.2 2.4-13.3 7.1L5.6 247.1a31 31 0 0 0-5.5 19.6 128.4 128.4 0 0 0 255.9 0zM128 110.2 218.3 256H37l91-145.8zM37.6 288h181.2a97.2 97.2 0 0 1-90.8 64c-41.3 0-77-26.8-90.4-64z"/></svg>', }, ], }; </script> <main id="main" class="flex-1"> <div class=" w-full bg-white border-t border-b h-14 md:border-t-0 border-ncc-inactive md:relative print:hidden"> <nav id="menu-bar" class="container grid items-center justify-between h-full grid-cols-2 pr-6 md:grid-cols-3"> <div class="hidden md:block md:col-span-1"> <ul class="flex items-baseline list-none whitespace-nowrap"> <li class="flex items-baseline text-sm text-primary"> <a class="mr-2 link" href="/" title="Labs"> <svg width="18" height="17" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 576 412"><path fill="currentColor" d="M280 148 96 300v164a16 16 0 0 0 16 16h112a16 16 0 0 0 16-16v-96a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v96a16 16 0 0 0 16 16h112a16 16 0 0 0 16-16V300L296 148a12 12 0 0 0-16 0zm292 103-84-68V44a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v73l-90-74a48 48 0 0 0-61 0L4 251a12 12 0 0 0-1 17l25 31a12 12 0 0 0 17 2l235-194a12 12 0 0 1 16 0l235 194a12 12 0 0 0 17-2l25-31a12 12 0 0 0-1-17z"/></svg> </a> <span ><svg class="stroke-current text-neutral-mid mr-2" width="6" height="9" viewBox="0 0 6 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 8.5L5 4.5L1 0.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span> </li> <li class="flex items-baseline text-sm text-primary"> <a class="mr-2 link" href="/author/job_snijders/" title="Job Snijders"> Job Snijders </a> <span class="hidden xl:block"><svg class="stroke-current text-neutral-mid mr-2" width="6" height="9" viewBox="0 0 6 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 8.5L5 4.5L1 0.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span> </li> <li class="hidden text-sm truncate text-accent xl:block">War Story: RPKI is Working as Intended</li> </ul> </div> <div class="md:text-center col-span-1 "> <p class="whitespace-nowrap lg:px-0">Want to contribute? <a class="font-semibold text-ncc-orange" href="/contributing-to-ripe-labs/">Learn how</a></p> </div> <div class="flex w-full md:space-x-6 justify-end "> <a href="/search/" title="Search RIPE Labs"><svg class="fill-current icon icon-neutral" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m19.86 18.81-5.04-5.04a.46.46 0 0 0-.33-.13h-.4a8.12 8.12 0 1 0-.45.46v.4c0 .12.05.23.13.32l5.04 5.04c.19.19.48.19.67 0l.38-.38a.47.47 0 0 0 0-.67ZM8.12 15a6.87 6.87 0 1 1 0-13.74 6.87 6.87 0 0 1 0 13.74Z" opacity=".9"/></svg></a> </div> </nav> </div> <div class="flex items-center h-12 border-b border-white md:hidden bg-gradient-to-l from-ncc-blue to-[#080037] print:hidden"> <a class="container flex items-center space-x-4 text-ncc-babyblue" href="/author/job_snijders/"><svg width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="#fff" stroke-linecap="round" d="M7 1 1.8 6.2C1 7 1 7 1.8 7.8L7 13"/></svg> <span>Job Snijders</span></a> </div> <div id="messagesContainer" class="sticky z-40 top-burger"> </div> <div class="w-full lg:min-h-64 lg:article-gradient lg:flex"> <div class="lg:container layout"> <div class="container order-2 col-span-12 lg:px-0 lg:col-span-8 lg:order-1"> <h1 class="pb-6 mt-10 text-3xl text-ncc-blue lg:text-neutral-low lg:mb-5">War Story: RPKI is Working as Intended</h1> <div class="flex items-center py-4"> <img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="w-10 h-10 mr-4 rounded-full"> <div> <div class="js-popper-on-hover"> <span class="text-base text-accent lg:text-white"> <a class="js-popper-reference" href="/author/job_snijders/">Job Snijders</a><time datetime="2024-11-07 12:27:01" class="text-sm text-neutral-mid lg:text-ncc-babyblue" title="2024-11-07 12:27:01"> — 7 Nov 2024</time> </span> <div class="popover w-84 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white rounded"> <div class="flex items-center px-4 py-4"> <a href="/author/job_snijders/"><img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="rounded-full h-12 w-12 mr-5"></a> <div> <h4 class="text-xl leading-6"> <a href="/author/job_snijders/" class="text-accent">Job Snijders</a> </h4> <p class="text-xs leading-6 text-neutral-mid"> Based in Amsterdam, Netherlands </p> </div> </div> <p class="text-neutral-mid text-xs leading-5 px-4 py-3"> Job Snijders is an Internet Engineer at Fastly where he analyzes and architects global networks for future growth. Job has been actively involved in the Internet community in both operational, engineering, and architectural capacity, as a frequent presenter at network operator events such as NANOG, ITNOG, DKNOG, RIPE, NLNOG &amp; … <a class="text-accent" href="/author/job_snijders/">More</a> </p> </div> </div> </div> <small class="text-sm text-neutral-mid lg:text-ncc-babyblue">Contributors: <span class="text-sm text-accent lg:text-white">Joel Jaeggli, </span> <span class="text-sm text-accent lg:text-white">Tony Tauber, </span> <span class="text-sm text-accent lg:text-white">Doug Madory</span> </small> <p class="text-sm text-neutral-mid lg:text-ncc-babyblue">8 min read</p> </div> </div> <div class="flex flex-col md:flex-row justify-between mb-4"> <div class="flex flex-wrap mr-4"> <a href="/search/tag/bgp/" class="m-0.5 tag lg:tag-alt">bgp</a> <a href="/search/tag/rpki/" class="m-0.5 tag lg:tag-alt">rpki</a> <a href="/search/tag/outages/" class="m-0.5 tag lg:tag-alt">outages</a> </div> <div class="flex self-end mt-2 md:mt-0 md:self-auto "> <div class="flex flex-row items-center space-x-3 md:space-x-5"> <form data-page-id="4540" data-user-count="0" class="flex js-like"><input type="hidden" name="csrfmiddlewaretoken" value="YMlviNrXZXezS1FThVUQaDVgcVzSGNzYvFtbw52VIf5alGFqF9pI6vhUdO0i5Ece"> <button aria-label="Submit" class="flex items-center -mr-1"> <span title="This article has received 52 likes." data-count="52" class="text-xs text-neutral-mid lg:text-ncc-babyblue mr-2 select-none">52</span> <svg class="stroke-current text-neutral-mid icon icon-primary lg:icon-white" width="22px" height="21px" viewBox="0 0 22 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Click to like, and right click to unlike this article</title> <defs> <path d="M10 19.2a.5.5 0 0 0 .3-.1c.3-.2 6.6-5.3 8.9-9.6.5-1 .8-2 .8-3.2C20 2.8 17.5 0 14.5 0 12.7 0 11 1 10 2.5A5.4 5.4 0 0 0 5.5 0C2.5 0 0 2.8 0 6.3c0 1.1.3 2.2.8 3.2a42.5 42.5 0 0 0 9.2 9.7Z" id="path-1"></path> <path d="M10 19.2a.5.5 0 0 0 .3-.1c.3-.2 6.6-5.3 8.9-9.6.5-1 .8-2 .8-3.2C20 2.8 17.5 0 14.5 0 12.7 0 11 1 10 2.5A5.4 5.4 0 0 0 5.5 0C2.5 0 0 2.8 0 6.3c0 1.1.3 2.2.8 3.2a42.5 42.5 0 0 0 9.2 9.7Z" id="path-3"></path> </defs> <g stroke="none" stroke-width="1.5" fill="none" fill-rule="evenodd"> <g id="likes" transform="translate(1.000000, 1.000000)"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <rect class="fill-current" mask="url(#mask-2)" x="0" y="20" width="20" height="20"></rect> <use stroke="currentColor" xlink:href="#path-3"></use> </g> </g> </svg> </button> </form> <div class="flex items-center"> <span title="This article has received 0 comments." class="text-xs text-neutral-mid lg:text-ncc-babyblue mr-2 select-none">0</span> <a title="Go to comments" href="#comments"> <svg aria-hidden="true" class="stroke-current icon icon icon-primary lg:icon-white" width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21 14.3a2.2 2.2 0 0 1-2.2 2.3H5.4L1 21V3.2A2.2 2.2 0 0 1 3.2 1h15.6A2.2 2.2 0 0 1 21 3.2v11.1Z" stroke-width="1.5" /></svg> </a> </div> <div class="js-share-btn js-popper-on-click print:hidden"> <button class="flex items-center js-popper-reference"><svg class="icon stroke-current icon icon-primary lg:icon-white hover:fill-current" width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg"><title>Share</title><path stroke-width="1.5" d="M15.9 7a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3ZM4 14a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3Zm11.9 7a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3Zm-9.4-8.5 6.8 4m0-11-6.8 4"/></svg></button> <div class="js-sharing-menu popover w-40 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white text-neutral-dark rounded px-6 text-sm"> <h4 class="text-center my-2">Share</h4> <hr aria-hidden="true" class="text-neutral-light"> <div class="sharing-links flex flex-col my-4 select-none"> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://twitter.com/share?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/twitter.svg"> <span>Twitter</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://www.linkedin.com/sharing/share-offsite/?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/linkedin.svg"> <span>LinkedIn</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://www.facebook.com/sharer.php?u=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/facebook.svg"> <span>Facebook</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://mastodonshare.com/?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/mastodon.svg"> <span>Mastodon</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://vk.com/share.php?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/vk.svg"> <span>Vkontacte</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://t.me/share/url?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/telegram.svg"> <span>Telegram</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://wa.me/?text=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/whatsapp.svg"> <span>Whatsapp</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="mailto:?subject=War%20Story%3A%20RPKI%20is%20Working%20as%20Intended&body=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/email.svg"> <span>Email</span></a> <button class="js-copy-link js-secondary hidden hover:bg-neutral-lighter px-6 -mx-6 py-2 items-center" data-url="https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/copy-link.svg"> <span class="ml-4">Copy link</span></button> </div> <button aria-label="Show more" class="js-show-more cursor-pointer text-accent text-center mb-4 hidden">More</button> </div> </div> </div> <a class="print:hidden" title="Login to add this article to your bookmarks" href="https://access.ripe.net?originalUrl=https%3A%2F%2Flabs.ripe.net%2Fauthor%2Fjob_snijders%2Fwar-story-rpki-is-working-as-intended%2F"><svg class="icon stroke-current icon icon-primary lg:icon-white hover:fill-current" aria-hidden="true" width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.197 21L8.0985 15.4444L1 21V3.22222C1 2.63285 1.21368 2.06762 1.59403 1.65087C1.97438 1.23413 2.49025 1 3.02814 1H13.1689C13.7068 1 14.2226 1.23413 14.603 1.65087C14.9833 2.06762 15.197 2.63285 15.197 3.22222V21Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> </div> </div> </div> </div> <div class="order-1 col-span-12 lg:col-span-4 lg:order-2 lg:relative"> <picture> <source media="(min-width: 992px)" srcset="/images/WU2D_Xk4iB9vcRJeXNUdnq2rFWA=/9021/fill-450x450-c100/Internet_map_1024.jpg, /images/HxT4DUBnsJ42K0rvQYHiwlhR2BU=/9021/fill-900x900-c100/Internet_map_1024.jpg 2x"> <source media="(max-width: 991px)" srcset="/images/6RGEy8yJ7uPPO1ICanbgU3Qgapk=/9021/fill-992x320-c100/Internet_map_1024.jpg, /images/AVHqgGOZgaBHLw2Ue-jCAHSLGEo=/9021/fill-1984x640-c100/Internet_map_1024.jpg 2x"> <source srcset="/images/6NBXiJnvOGMg-FUQSQN6VoEeqDw=/9021/fill-576x160-c100/Internet_map_1024.jpg, /images/8_dUkYZitAhsqMA1mPqsWXhlQ_k=/9021/fill-1152x320-c100/Internet_map_1024.jpg 2x"> <img src="/images/6NBXiJnvOGMg-FUQSQN6VoEeqDw=/9021/fill-576x160-c100/Internet_map_1024.jpg" alt="" class="object-cover w-full h-40 sm:h-56 lg:h-full lg:absolute"> </picture> </div> </div> </div> <div class="container relative z-10 mt-10 isolate layout lg:mt-12"> <div class="col-span-12 lg:col-span-8 print:col-span-12"> <article class="prose"> <p class="font-sans">Three weeks ago, Fastly was the target of a BGP hijack similar to a far more widely-reported incident that happened back in 2008. But this time, barely anyone noticed. Why is that?</p> <hr class="w-32 h-1 mt-8 mb-12 border-none text-accent bg-accent"> <section class="block-paragraph"> <p data-block-key="k0ta9">To be very forward, this really is a story about something that turned out to be no problem at all. But sometimes boring stories deserve to be told. To provide context for this one, we have to go back to February 2008.</p><p data-block-key="emq44">Back then - through no fault of their own - one of the world’s most popular video-sharing platforms suffered a disastrous multi-hour outage, interrupting millions of video viewings. The impact was so significant that even mainstream media reported extensively on what was essentially an arcane routing incident.</p><p data-block-key="5t5o">But, nowadays we’re hearing less and less about incidents like these, even though the Internet is bigger than ever. Three weeks ago Fastly was the target of a BGP hijack, similar to what happened in 2008, but this time barely anyone noticed. Why is that? Something has changed. In this article, I’ll delve into one of the Internet’s most remarkable, yet untold, success stories.</p><h2 data-block-key="1k4ff">A crash course on how Internet routing works</h2><p data-block-key="6qm88">At its core, the Internet is a <a href="https://en.wikipedia.org/wiki/Internet_backbone" target="_blank" rel="nofollow noopener">backbone</a> spanning hundreds of thousands of interconnected <a href="https://en.wikipedia.org/wiki/Router_(computing)" target="_blank" rel="nofollow noopener">routers</a> managed by roughly 85,000 organisations to deliver data to millions of digital destinations. To establish what part of the Internet is attached where — what direction to send data packets to reach a given Internet destination (an IP address) — all these routers exchange messages with each other using an industry-standard protocol format called <a href="https://en.wikipedia.org/wiki/Border_Gateway_Protocol" target="_blank" rel="nofollow noopener">BGP</a>. The totality of this whooshing exchange of routing information oftentimes is referred to as <i>the global Internet routing system</i>.</p><p data-block-key="eibj0">One of the key factors for routers to decide which of many paths to use for sending data is the <a href="https://en.wikipedia.org/wiki/Longest_prefix_match" target="_blank" rel="nofollow noopener">Longest Prefix Match</a> (LPM) algorithm. In a nutshell: more detailed information about a destination is preferred over less granular information. Think of punching into your car’s navigation system your destination’s street and city versus inputting only the city name. Both approaches will bring you closer to your destination, but of course, being more specific is likely to result in a better route. Put differently, the Internet would not work without LPM.</p><p data-block-key="ci93l">A major contributor to the Internet’s amazing year-to-year growth is that basically anyone can easily connect to it and almost immediately start sending and receiving data. You hook your router up to neighbouring routers from other organisations and then use BGP to send a message into the routing system. In doing so, you tell the Internet that your IP addresses are now reachable via a specified &quot;nexthop&quot;. The corollary is that the most obvious vulnerability in the routing system is unauthorised origination of routes to IP addresses. More on that thorny aspect in the next section!</p> </section> <section class="block-paragraph"> <h2 data-block-key="k0ta9">What happened in 2008?</h2><p data-block-key="clqr3">A large nation-state&#x27;s incumbent telecommunications operator was instructed to censor a popular video-sharing platform within its national borders. Of the various mechanisms to block access to a particular internet service, BGP is one of the simpler (albeit blunter) ways to blackhole undesired traffic. In the course of normal network operations, not every BGP message is intended or expected to be distributed into the global system. A network operator might intend for some BGP messages to only be distributed to its own routers for its own private purposes, constraining the scope to its own administrative domain.</p><p data-block-key="2ia1j">Unfortunately — due to a configuration mistake — the BGP messages intended to comply with the country’s censorship order were also passed on to adjacent networks outside of the country, who, in turn, distributed them to their adjacent networks, and so on. In the blink of an eye, routers around the world received BGP messages that a specific set of the video platform’s IP addresses (remember the LPM algorithm!) were now being served from infrastructure in Pakistan. As that wasn’t at all where the video platform was actually attached, Internet data packets ended up being dropped on the floor, globally disrupting this video platform’s online presence. RIPE NCC did a good <a href="https://www.ripe.net/about-us/news/youtube-hijacking-a-ripe-ncc-ris-case-study/" target="_blank" rel="nofollow noopener">write-up</a> on the technical details and <a href="https://www.nytimes.com/2008/02/26/technology/26tube.html" target="_blank" rel="nofollow noopener">NY Times</a>, <a href="https://www.cnet.com/culture/how-pakistan-knocked-youtube-offline-and-how-to-make-sure-it-never-happens-again/" target="_blank" rel="nofollow noopener">CNET</a>, <a href="https://arstechnica.com/uncategorized/2008/02/insecure-routing-redirects-youtube-to-pakistan/" target="_blank" rel="nofollow noopener">Ars Technica</a>, and <a href="https://www.nbcnews.com/id/wbna23339712" target="_blank" rel="nofollow noopener">NBC News</a> also covered the incident.</p> </section> <section class="block-paragraph"> <h2 data-block-key="k0ta9">Fast forward to 2024</h2><p data-block-key="c0hf2">A very similar routing incident happened to Fastly just last week, but this time around no headlines were made. While this incident would’ve severely affected Fastly a few years ago, this time the impact was negligible. What gives? While the specific players and motivations differ from the famous 2008 incident, at its heart, the technical details were the same. In this more recent case, the state incumbent of another large nation generated BGP messages hijacking some of Fastly’s IP address space for the purpose of disrupting Internet traffic. What makes now different from then?</p> </section> <section class="block-paragraph"> <h2 data-block-key="k0ta9">RPKI improves the routing system’s reliability</h2><p data-block-key="dqe2t">The big difference between 2008 and 2024 is that nowadays the Internet industry uses a cryptographically verifiable mechanism called <a href="https://www.fastly.com/blog/fastly-drives-improved-internet-routing-security-with-global-push-to-adopt" target="_blank" rel="nofollow noopener">RPKI</a> to assess plausibility of BGP messages in a fully automated fashion. The RPKI is a distributed database through which networks can publish their routing intentions in <a href="https://www.rfc-editor.org/rfc/rfc9582.html" target="_blank" rel="nofollow noopener">Route Origin Authorizations (ROAs)</a>, in turn enabling other networks to validate BGP messages against this database using a service called Route Origin Validation (ROV). By rejecting messages that fail this validation, the RPKI-invalid routes can be <a href="https://www.kentik.com/blog/how-much-does-rpki-rov-reduce-the-propagation-of-invalid-routes/" target="_blank" rel="nofollow noopener">kept out of circulation</a>, limiting their ability to cause disruption.</p><p data-block-key="2gocc">Publishing ROAs is easy! All five <a href="https://nro.net/" target="_blank" rel="nofollow noopener">RIRs</a> offer RPKI certification services as part of their standard membership services. Since Fastly publishes ROAs for all of its IP addresses, Internet Exchanges and major carriers like NTT, Comcast, AT&amp;T, Cogent, Arelion, and Lumen can automatically ignore problematic BGP messages (like as the ones that were hijacking Fastly’s IP space in this latest incident!). <i>Because</i> the industry at large is using RPKI, the only measurable impact on our traffic delivery was towards the disruptor itself, the rest of the world remained oblivious of this incident. A very serious BGP hijack happened and Fastly came out just fine. RPKI works as intended.</p> </section> <section class="block-paragraph"> <h2 data-block-key="k0ta9">RPKI is a mature technology</h2><p data-block-key="flk27">RPKI’s story started two decades ago when X.509 certificate syntax was extended to support encoding IP addresses and Autonomous System numbers via <a href="https://datatracker.ietf.org/doc/html/rfc3779" target="_blank" rel="nofollow noopener">RFC 3779</a>. (X.509 is the underpinning of web security mechanisms like &quot;https://&quot; that we’re all familiar with.) In the following years, a design for an architecture materialised,  imposing order on the unwieldy ever-growing global routing system (<a href="https://datatracker.ietf.org/doc/html/rfc6480" target="_blank" rel="nofollow noopener">RFC 6480</a>). Then the five RIRs (APNIC, ARIN, RIPE NCC, LACNIC, and AfriNIC) got to work to build user-facing systems through which operators can configure ROAs. In 2018 and 2019, open-source projects like <a href="https://www.rpki-client.org/" target="_blank" rel="nofollow noopener">rpki-client</a> and <a href="https://www.nlnetlabs.nl/projects/routing/routinator/" target="_blank" rel="nofollow noopener">routinator</a> were kicked off to securely bridge the gap between the RIR systems and BGP routers. And finally, in the year 2020, there was a <a href="https://rpki-monitor.antd.nist.gov/ROV#div2" target="_blank" rel="nofollow noopener">sharp increase</a> in the adoption of RPKI by the largest ISPs, IXPs, and cloud providers enabling the RPKI system to be more effective in providing broad benefits to the Internet.</p> </section> <section class="block-paragraph"> <h2 data-block-key="k0ta9">Conclusion</h2><p data-block-key="b3hj6">Realising fundamental changes, like what RPKI did for the Internet, is a matter of extreme patience and perseverance. This is because the Internet, by design, has no centralized or top-down administration. The Internet’s routing system is a voluntary collaboration between close to 100,000 organisations. Change comes from leading by example, educational outreach to peers and business partners, and an iterative engineering approach to resolve any obstacles discovered along the way. Hundreds of engineers and scientists cumulatively dedicated hundreds of years to meticulously perform heart surgery on a running system, embracing RPKI and improving Internet reliability. Even now work continues in the <a href="https://www.ietf.org/" target="_blank" rel="nofollow noopener">IETF</a> to further improve the dependability and performance of the RPKI.</p><p data-block-key="emoht">It came as no surprise to me when the <a href="https://www.whitehouse.gov/oncd/briefing-room/2024/09/03/press-release-white-house-office-of-the-national-cyber-director-releases-roadmap-to-enhance-internet-routing-security/" target="_blank" rel="nofollow noopener">Executive Branch</a> of the US Government recognised the societal benefits of using RPKI and endorsed the technology to begin to address the vulnerabilities inherent in BGP. Ultimately, the RPKI is a system that helps networks stay in their own lane, allowing everyone to safely zip along the digital highway.</p><p data-block-key="qc0h"></p><hr/><p data-block-key="47vtl"><i>This post</i> <a href="https://www.fastly.com/blog/war-story-rpki-is-working-as-intended" target="_blank" rel="nofollow noopener"><i>originally</i></a><i> appeared on Fastly&#x27;s blog. Joel Jaeggli (Fastly), Tony Tauber (Comcast), and Doug Madory (Kentik) contributed to this article.</i></p> </section> </article> <div class="mt-10 flex flex-col md:flex-row justify-between mb-4"> <div class="flex flex-wrap mr-4"> <a href="/search/tag/bgp/" class="m-0.5 tag">bgp</a> <a href="/search/tag/rpki/" class="m-0.5 tag">rpki</a> <a href="/search/tag/outages/" class="m-0.5 tag">outages</a> </div> <div class="flex self-end mt-2 md:mt-0 md:self-auto "> <div class="flex flex-row items-center space-x-3 md:space-x-5"> <form data-page-id="4540" data-user-count="0" class="flex js-like"><input type="hidden" name="csrfmiddlewaretoken" value="YMlviNrXZXezS1FThVUQaDVgcVzSGNzYvFtbw52VIf5alGFqF9pI6vhUdO0i5Ece"> <button aria-label="Submit" class="flex items-center -mr-1"> <span title="This article has received 52 likes." data-count="52" class="text-xs text-neutral-mid mr-2 select-none">52</span> <svg class="stroke-current text-neutral-mid icon icon-primary" width="22px" height="21px" viewBox="0 0 22 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Click to like, and right click to unlike this article</title> <defs> <path d="M10 19.2a.5.5 0 0 0 .3-.1c.3-.2 6.6-5.3 8.9-9.6.5-1 .8-2 .8-3.2C20 2.8 17.5 0 14.5 0 12.7 0 11 1 10 2.5A5.4 5.4 0 0 0 5.5 0C2.5 0 0 2.8 0 6.3c0 1.1.3 2.2.8 3.2a42.5 42.5 0 0 0 9.2 9.7Z" id="path-1"></path> <path d="M10 19.2a.5.5 0 0 0 .3-.1c.3-.2 6.6-5.3 8.9-9.6.5-1 .8-2 .8-3.2C20 2.8 17.5 0 14.5 0 12.7 0 11 1 10 2.5A5.4 5.4 0 0 0 5.5 0C2.5 0 0 2.8 0 6.3c0 1.1.3 2.2.8 3.2a42.5 42.5 0 0 0 9.2 9.7Z" id="path-3"></path> </defs> <g stroke="none" stroke-width="1.5" fill="none" fill-rule="evenodd"> <g id="likes" transform="translate(1.000000, 1.000000)"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <rect class="fill-current" mask="url(#mask-2)" x="0" y="20" width="20" height="20"></rect> <use stroke="currentColor" xlink:href="#path-3"></use> </g> </g> </svg> </button> </form> <div class="flex items-center"> <span title="This article has received 0 comments." class="text-xs text-neutral-mid mr-2 select-none">0</span> <a title="Go to comments" href="#comments"> <svg aria-hidden="true" class="stroke-current icon icon icon-primary" width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21 14.3a2.2 2.2 0 0 1-2.2 2.3H5.4L1 21V3.2A2.2 2.2 0 0 1 3.2 1h15.6A2.2 2.2 0 0 1 21 3.2v11.1Z" stroke-width="1.5" /></svg> </a> </div> <div class="js-share-btn js-popper-on-click print:hidden"> <button class="flex items-center js-popper-reference"><svg class="icon stroke-current icon icon-primary hover:fill-current" width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg"><title>Share</title><path stroke-width="1.5" d="M15.9 7a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3ZM4 14a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3Zm11.9 7a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3Zm-9.4-8.5 6.8 4m0-11-6.8 4"/></svg></button> <div class="js-sharing-menu popover w-40 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white text-neutral-dark rounded px-6 text-sm"> <h4 class="text-center my-2">Share</h4> <hr aria-hidden="true" class="text-neutral-light"> <div class="sharing-links flex flex-col my-4 select-none"> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://twitter.com/share?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/twitter.svg"> <span>Twitter</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://www.linkedin.com/sharing/share-offsite/?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/linkedin.svg"> <span>LinkedIn</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://www.facebook.com/sharer.php?u=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/facebook.svg"> <span>Facebook</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex" href="https://mastodonshare.com/?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/mastodon.svg"> <span>Mastodon</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://vk.com/share.php?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/vk.svg"> <span>Vkontacte</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://t.me/share/url?url=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/telegram.svg"> <span>Telegram</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="https://wa.me/?text=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/whatsapp.svg"> <span>Whatsapp</span></a> <a rel="nofollow noreferrer noopener" target="_blank" class="flex js-secondary" href="mailto:?subject=War%20Story%3A%20RPKI%20is%20Working%20as%20Intended&body=https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/email.svg"> <span>Email</span></a> <button class="js-copy-link js-secondary hidden hover:bg-neutral-lighter px-6 -mx-6 py-2 items-center" data-url="https://labs.ripe.net/author/job_snijders/war-story-rpki-is-working-as-intended/"><img width="18" height="18" alt="" src="/static/images/copy-link.svg"> <span class="ml-4">Copy link</span></button> </div> <button aria-label="Show more" class="js-show-more cursor-pointer text-accent text-center mb-4 hidden">More</button> </div> </div> </div> <a class="print:hidden" title="Login to add this article to your bookmarks" href="https://access.ripe.net?originalUrl=https%3A%2F%2Flabs.ripe.net%2Fauthor%2Fjob_snijders%2Fwar-story-rpki-is-working-as-intended%2F"><svg class="icon stroke-current icon icon-primary hover:fill-current" aria-hidden="true" width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.197 21L8.0985 15.4444L1 21V3.22222C1 2.63285 1.21368 2.06762 1.59403 1.65087C1.97438 1.23413 2.49025 1 3.02814 1H13.1689C13.7068 1 14.2226 1.23413 14.603 1.65087C14.9833 2.06762 15.197 2.63285 15.197 3.22222V21Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> </div> </div> </div> </div> <div class="flex flex-col order-last col-span-12 mb-24 lg:col-span-4 lg:order-none lg:mb-0 print:hidden"> <div class="z-10 section-title-bar "> <h2 class="hidden lg:block">More from this author</h2> <h2 class="lg:hidden">You may also like</h2> <a href="/author/job_snijders/">View more</a> </div> <div class="w-full h-auto"> <div class="js-carousel z-0 anchor w-full flex lg:flex-col flex-nowrap snap-x snap-mandatory overflow-x-scroll lg:overflow-x-initial "> <div class="js-carousel-page anchor w-full shrink-0 flex flex-nowrap lg:flex-col snap-center"> <div id="article-4126" class="flex flex-col lg:flex-row my-3 w-1/2 px-2 lg:px-0 lg:w-full shrink-0"> <a href="/author/job_snijders/rpki-2023-review-growth-governments-and-innovation/" class="block w-full h-30 sm:h-32 lg:w-24 lg:h-24 shrink-0"> <picture> <source media="(min-width: 992px)" srcset="/images/HF8ra7bins7wXGiPdhKRKNtm5js=/8458/fill-128x128-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png, /images/qB7tbmj6JA-2oJhiUypHddm444Q=/8458/fill-256x256-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png 2x"> <source media="(min-width: 576px)" srcset="/images/GDtMesMThq4GCbxJjbO9nWxGfzM=/8458/fill-409x128-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png, /images/sx87w-C5tWWZE-uyUozZLAndmQ8=/8458/fill-818x256-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png 2x"> <source srcset="/images/AZrV1L68VmSPCgm7QdNUPNQVVpk=/8458/fill-256x128-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png, /images/KJCnvFzMZcJSY6R7OsuIPsXyaB4=/8458/fill-512x256-c100%7Cformat-webp/Screenshot_2024-01-08_at_09.44.18.png 2x"> <source media="(min-width: 992px)" srcset="/images/K7cnUciRhqql29n7EmQVGgYbJiA=/8458/fill-128x128-c100/Screenshot_2024-01-08_at_09.44.18.png, /images/c0kTCz2UdeFJclueI3WeYi7Rrkg=/8458/fill-256x256-c100/Screenshot_2024-01-08_at_09.44.18.png 2x"> <source media="(min-width: 576px)" srcset="/images/O_xOTrkrCGIbLflQjvajaL92aV0=/8458/fill-409x128-c100/Screenshot_2024-01-08_at_09.44.18.png, /images/Pij5TokQWe0_kdLHOAs7CxCgoOY=/8458/fill-818x256-c100/Screenshot_2024-01-08_at_09.44.18.png 2x"> <source srcset="/images/zqO92vVpkN8fODYl6EOCfTXmO1s=/8458/fill-256x128-c100/Screenshot_2024-01-08_at_09.44.18.png, /images/05SsY7o3AdO-hb8rU73Oysol9Es=/8458/fill-512x256-c100/Screenshot_2024-01-08_at_09.44.18.png 2x"> <img src="/images/zqO92vVpkN8fODYl6EOCfTXmO1s=/8458/fill-256x128-c100/Screenshot_2024-01-08_at_09.44.18.png" alt="RPKI 2023 Review - Growth, Governments, and Innovation" class="h-full w-full object-cover object-center" loading="lazy"> </picture> </a> <div class="flex flex-col pt-4 lg:pt-0 lg:px-3 lg:justify-between"> <h3 class="card-title lg:min-h-12"><a href="/author/job_snijders/rpki-2023-review-growth-governments-and-innovation/">RPKI 2023 Review - Growth, Governments, and Innovation</a></h3> <div class="mt-2 flex items-center relative"> <img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="w-5 h-5 md:w-6 md:h-6 rounded-full mr-2"> <div class="js-popper-on-hover"> <a class="js-popper-reference link text-sm" href="/author/job_snijders/">Job Snijders</a> <div class="popover w-84 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white rounded"> <div class="flex items-center px-4 py-4"> <a href="/author/job_snijders/"><img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="rounded-full h-12 w-12 mr-5"></a> <div> <h4 class="text-xl leading-6"> <a href="/author/job_snijders/" class="text-accent">Job Snijders</a> </h4> <p class="text-xs leading-6 text-neutral-mid"> Based in Amsterdam, Netherlands </p> </div> </div> <p class="text-neutral-mid text-xs leading-5 px-4 py-3"> Job Snijders is an Internet Engineer at Fastly where he analyzes and architects global networks for future growth. Job has been actively involved in the Internet community in both operational, engineering, and architectural capacity, as a frequent presenter at network operator events such as NANOG, ITNOG, DKNOG, RIPE, NLNOG &amp; … <a class="text-accent" href="/author/job_snijders/">More</a> </p> </div> </div> </div> </div> <time class="text-sm text-neutral-mid hidden lg:block" datetime="2024-01-08 09:39:44" title="2024-01-08 09:39:44">8 Jan 2024</time> </div> </div> <div id="article-4098" class="flex flex-col lg:flex-row my-3 w-1/2 px-2 lg:px-0 lg:w-full shrink-0"> <a href="/author/job_snijders/using-timestamps-inside-rpki-objects-to-optimise-rrdp-rsync-transport-switchovers/" class="block w-full h-30 sm:h-32 lg:w-24 lg:h-24 shrink-0"> <picture> <source media="(min-width: 992px)" srcset="/images/CScmY0ivaHDhb3FV_QWjSGPalrw=/8434/fill-128x128-c100%7Cformat-webp/rpki-client_1_36dsTGx.png, /images/cixD0PTD2p66xjTi8CzxMpDOciE=/8434/fill-256x256-c100%7Cformat-webp/rpki-client_1_36dsTGx.png 2x"> <source media="(min-width: 576px)" srcset="/images/MCJ78x84o7ir76YxfSbU5tmg4P8=/8434/fill-409x128-c100%7Cformat-webp/rpki-client_1_36dsTGx.png, /images/2Q9HZrliUXSNqBcSny4W6JWxBhE=/8434/fill-818x256-c100%7Cformat-webp/rpki-client_1_36dsTGx.png 2x"> <source srcset="/images/CKeJxKC7_8OMtg0TpWBA-OfuEEw=/8434/fill-256x128-c100%7Cformat-webp/rpki-client_1_36dsTGx.png, /images/47qT4DAHw2Ag5GE7ES_5Fu8SGic=/8434/fill-512x256-c100%7Cformat-webp/rpki-client_1_36dsTGx.png 2x"> <source media="(min-width: 992px)" srcset="/images/cneH-6g7rz2vj7EcAi8DiJaugCU=/8434/fill-128x128-c100/rpki-client_1_36dsTGx.png, /images/mKvLQiFBi2KG5kUVAws-aVDZePY=/8434/fill-256x256-c100/rpki-client_1_36dsTGx.png 2x"> <source media="(min-width: 576px)" srcset="/images/em6r02JmWXQVAC3kxK5URmN66BE=/8434/fill-409x128-c100/rpki-client_1_36dsTGx.png, /images/8T9-MwS5VmRO0hBib2EvSXpNDHw=/8434/fill-818x256-c100/rpki-client_1_36dsTGx.png 2x"> <source srcset="/images/WrF2GYY4bAbIGoAkkMTZHQ42MyY=/8434/fill-256x128-c100/rpki-client_1_36dsTGx.png, /images/6heHvyRmTXefIKV9SBksK8Fas9Q=/8434/fill-512x256-c100/rpki-client_1_36dsTGx.png 2x"> <img src="/images/WrF2GYY4bAbIGoAkkMTZHQ42MyY=/8434/fill-256x128-c100/rpki-client_1_36dsTGx.png" alt="Using Timestamps Inside RPKI Objects to Optimise RRDP-RSYNC Transport Switchovers" class="h-full w-full object-cover object-center" loading="lazy"> </picture> </a> <div class="flex flex-col pt-4 lg:pt-0 lg:px-3 lg:justify-between"> <h3 class="card-title lg:min-h-12"><a href="/author/job_snijders/using-timestamps-inside-rpki-objects-to-optimise-rrdp-rsync-transport-switchovers/">Using Timestamps Inside RPKI Objects to Optimise RRDP-RSYNC Transport Switchovers</a></h3> <div class="mt-2 flex items-center relative"> <img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="w-5 h-5 md:w-6 md:h-6 rounded-full mr-2"> <div class="js-popper-on-hover"> <a class="js-popper-reference link text-sm" href="/author/job_snijders/">Job Snijders</a> <div class="popover w-84 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white rounded"> <div class="flex items-center px-4 py-4"> <a href="/author/job_snijders/"><img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="rounded-full h-12 w-12 mr-5"></a> <div> <h4 class="text-xl leading-6"> <a href="/author/job_snijders/" class="text-accent">Job Snijders</a> </h4> <p class="text-xs leading-6 text-neutral-mid"> Based in Amsterdam, Netherlands </p> </div> </div> <p class="text-neutral-mid text-xs leading-5 px-4 py-3"> Job Snijders is an Internet Engineer at Fastly where he analyzes and architects global networks for future growth. Job has been actively involved in the Internet community in both operational, engineering, and architectural capacity, as a frequent presenter at network operator events such as NANOG, ITNOG, DKNOG, RIPE, NLNOG &amp; … <a class="text-accent" href="/author/job_snijders/">More</a> </p> </div> </div> </div> </div> <time class="text-sm text-neutral-mid hidden lg:block" datetime="2023-12-05 11:09:28" title="2023-12-05 11:09:28">5 Dec 2023</time> </div> </div> </div> <div class="js-carousel-page anchor w-full shrink-0 flex flex-nowrap lg:flex-col snap-center"> <div id="article-980" class="flex flex-col lg:flex-row my-3 w-1/2 px-2 lg:px-0 lg:w-full shrink-0"> <a href="/author/job_snijders/dont-terminate-peoples-internet-connections/" class="block w-full h-30 sm:h-32 lg:w-24 lg:h-24 shrink-0"> <picture> <source media="(min-width: 992px)" srcset="/images/NzyKwZz-MMQNi9oRPAGeJYy1drg=/2992/fill-128x128-c100%7Cformat-webp/COVID-19.jpg, /images/wRPtvJ8OYEnyyjOUkIC22OIWodA=/2992/fill-256x256-c100%7Cformat-webp/COVID-19.jpg 2x"> <source media="(min-width: 576px)" srcset="/images/5wo63Ski-kMUCUzS-mikajU8msk=/2992/fill-409x128-c100%7Cformat-webp/COVID-19.jpg, /images/_t1F3YLwobYR9l8fKj4wvEGKHKc=/2992/fill-818x256-c100%7Cformat-webp/COVID-19.jpg 2x"> <source srcset="/images/ktnV0FgfdSf8JHBg85FbxkjgJ9k=/2992/fill-256x128-c100%7Cformat-webp/COVID-19.jpg, /images/I4iyoxp1YgtwieRv2vsw-pTkw2M=/2992/fill-512x256-c100%7Cformat-webp/COVID-19.jpg 2x"> <source media="(min-width: 992px)" srcset="/images/EdIKlcnsSKeppU4CyDFEdOTSUsc=/2992/fill-128x128-c100/COVID-19.jpg, /images/wq7mtfC9zPJyyYz_MR95UJOPAvo=/2992/fill-256x256-c100/COVID-19.jpg 2x"> <source media="(min-width: 576px)" srcset="/images/uyj_Zw9TWCOOxmKPckQgmc-J3pE=/2992/fill-409x128-c100/COVID-19.jpg, /images/BBpSRLsYiO84obWDqLabdNaW05w=/2992/fill-818x256-c100/COVID-19.jpg 2x"> <source srcset="/images/tMJ7aid9XhumnxetlScAJyLtv60=/2992/fill-256x128-c100/COVID-19.jpg, /images/opv8Q6whWfsSPhFslP5OHZB3QHs=/2992/fill-512x256-c100/COVID-19.jpg 2x"> <img src="/images/tMJ7aid9XhumnxetlScAJyLtv60=/2992/fill-256x128-c100/COVID-19.jpg" alt="Don&#x27;t Terminate People&#x27;s Internet Connections" class="h-full w-full object-cover object-center" loading="lazy"> </picture> </a> <div class="flex flex-col pt-4 lg:pt-0 lg:px-3 lg:justify-between"> <h3 class="card-title lg:min-h-12"><a href="/author/job_snijders/dont-terminate-peoples-internet-connections/">Don&#x27;t Terminate People&#x27;s Internet Connections</a></h3> <div class="mt-2 flex items-center relative"> <img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="w-5 h-5 md:w-6 md:h-6 rounded-full mr-2"> <div class="js-popper-on-hover"> <a class="js-popper-reference link text-sm" href="/author/job_snijders/">Job Snijders</a> <div class="popover w-84 rounded" role="tooltip"> <div class="popover-arrow" data-popper-arrow></div> <div class="flex flex-col bg-white rounded"> <div class="flex items-center px-4 py-4"> <a href="/author/job_snijders/"><img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="rounded-full h-12 w-12 mr-5"></a> <div> <h4 class="text-xl leading-6"> <a href="/author/job_snijders/" class="text-accent">Job Snijders</a> </h4> <p class="text-xs leading-6 text-neutral-mid"> Based in Amsterdam, Netherlands </p> </div> </div> <p class="text-neutral-mid text-xs leading-5 px-4 py-3"> Job Snijders is an Internet Engineer at Fastly where he analyzes and architects global networks for future growth. Job has been actively involved in the Internet community in both operational, engineering, and architectural capacity, as a frequent presenter at network operator events such as NANOG, ITNOG, DKNOG, RIPE, NLNOG &amp; … <a class="text-accent" href="/author/job_snijders/">More</a> </p> </div> </div> </div> </div> <time class="text-sm text-neutral-mid hidden lg:block" datetime="2020-03-16 13:06:00" title="2020-03-16 13:06:00">16 Mar 2020</time> </div> </div> </div> </div> </div> <div class="js-pagination flex lg:hidden justify-center mt-4 space-x-4 relative"> <button aria-hidden="true" data-page="0"><svg class="pointer-events-none text-primary fill-current cursor-pointer" width="12" height="12" viewBox="0 0 8 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 8a3 3 0 1 1 0-7 3 3 0 0 1 0 7Z" class="stroke-current"/></svg></button> <button aria-hidden="true" data-page="1"><svg class="pointer-events-none text-primary opacity-50 cursor-pointer" width="12" height="12" viewBox="0 0 8 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 8a3 3 0 1 1 0-7 3 3 0 0 1 0 7Z" class="stroke-current"/></svg></button> </div> </div> <div class="z-10 col-span-12 px-4 py-12 mt-12 -mx-4 lg:col-span-8 bg-neutral-low md:px-burger md:-mx-burger lg:py-0 lg:mx-0 lg:px-0 lg:bg-transparent print:hidden"> <div class="section-title-bar"> <h2>About the author</h2> </div> <div class="flex flex-col lg:flex-row "> <div class="flex w-full "> <div class="flex-shrink-0 w-24 h-24 mr-8"> <img src="https://access.ripe.net/picture/23b3da16-b7bb-477a-996b-9a55f64c09a9" alt="" loading="lazy" class="object-cover object-center w-full h-full rounded-full"> </div> <div class="flex flex-col"> <div class="flex flex-col justify-center mb-2 min-h-20"> <span class="text-2xl text-primary hover:text-accent"> <a href="/author/job_snijders/">Job Snijders</a> </span> <span class="text-sm text-neutral-mid"> Based in <span class="text-accent">Amsterdam, Netherlands</span> </span> </div> <div class="mt-8 -ml-32 text-sm text-neutral-mid lg:ml-0 lg:-mr-32 lg:mt-0"> <p class="lg:max-w-lg">Job Snijders is an Internet Engineer at Fastly where he analyzes and architects global networks for future growth. Job has been actively involved in the Internet community in both operational, engineering, and architectural capacity, as a frequent presenter at network operator events such as NANOG, ITNOG, DKNOG, RIPE, NLNOG &amp; APRICOT, and in a number of community projects for over 15 years. Job is co-chair of the IETF GROW &amp; SSHM working groups, director of the Route Server Support Foundation, and developer for the OpenBSD project. Job&#x27;s special interests are BGP routing policies, RPKI based routing security, and large Internet scale PKIX-RPKI &amp; BGP deployments. Job helps maintain several software projects such as rpki-client, StayRTR, &amp; bgpq4, and is active in the IETF where he have coauthored and contributed to numerous Internet-Drafts and RFCs. Job has experience with the implementation and operation of RPKI Certificate Authorities, Publication Servers, and Relying Parties.</p> </div> </div> </div> </div> </div> <div id="comments" class="z-0 col-span-12 my-12 lg:col-span-8 print:hidden"> <div class="section-title-bar section-title-bar-pb-0 pt-8 lg:pt-0"> <h2>Comments <span class="text-sm lg:text-base text-neutral-mid">0</span></h2> <button aria-label="Toggle comments" id="toggle-comments" class="lg:hidden -ml-100 pl-100"><svg class="icon icon-neutral stroke-current " width="13" height="7" viewBox="0 0 13 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path class="js-chevron-closed" d="M0.999023 1L5.58902 5.59C6.28809 6.29999 6.28809 6.29999 6.99902 5.59L11.589 1" stroke-linecap="round"/><path class="hidden js-chevron-open" d="M12 6L7.41 1.41C6.71094 0.700012 6.71094 0.700012 6 1.41L1.41 6" stroke-linecap="round"/></svg></button> </div> <div id="comment-section" class="hidden lg:block"> <div class="new-comment"> <form data-page-id="4540" id="baseCommentForm" class="flex flex-col js-comment-form" method="POST" action="/c/post/"><input type="hidden" name="csrfmiddlewaretoken" value="YMlviNrXZXezS1FThVUQaDVgcVzSGNzYvFtbw52VIf5alGFqF9pI6vhUdO0i5Ece"> <div class="flex items-center mb-6 transition-opacity duration-500 js-user-info"> <img class="rounded-full h-10 w-10" src="/static/images/profile-placeholder.svg" loading="lazy" aria-hidden="true" > <div class="ml-4"> <p class="font-semibold text-primary text-sm"> Guest <time class="text-neutral-mid font-normal text-xs" datetime="" title=""> • 01 Dec 2024</time> </p> <p class="text-xs">Already have a RIPE NCC Access account? <a href="https://access.ripe.net?originalUrl=https%3A%2F%2Flabs.ripe.net%2Fauthor%2Fjob_snijders%2Fwar-story-rpki-is-working-as-intended%2F" class="font-semibold text-accent">Log in</a>.</p> </div> </div> <div> <input aria-hidden="true" type="hidden" name="next" value="/c/sent/"> <div class="alert alert-danger hidden" data-comment-element="errors"></div> <div><input type="hidden" name="content_type" value="wagtailcore.page" id="id_content_type"></div> <div><input type="hidden" name="object_pk" value="4540" id="id_object_pk"></div> <div><input type="hidden" name="timestamp" value="1733029971" id="id_timestamp"></div> <div><input type="hidden" name="security_hash" value="f81ce21735d7032250728b7d3f576bca4b42cb45" id="id_security_hash"></div> <div><input type="hidden" name="reply_to" value="0" id="id_reply_to"></div> <div class="hidden" aria-hidden="true"><input type="text" name="honeypot" id="id_honeypot"></div> <div class="flex flex-col md:flex-row js-credentials "> <div class="w-full mr-0 mb-4 md:w-1/2 md:mr-2"> <input type="text" required id="name" name="name" class="w-full h-10 opacity-100 transition-opacity duration-500 " placeholder="Name" aria-label="Name" maxlength="50" value="" > </div> <div class="w-full md:w-1/2 ml-0 md:ml-2 mb-4"> <input type="email" required id="email" name="email" class="w-full h-10 opacity-100 transition-opacity duration-500 " placeholder="Email" aria-label="Email" value="" > </div> </div> <textarea class="w-full h-10 transition-height duration-500" id="comment" name="comment" aria-label="Add comment" placeholder="Add comment" maxlength="3000" required ></textarea> </div> <div class="flex justify-between items-center mt-4"> <div class="js-comment-status flex items-center pr-4"> <div aria-hidden="true" class="js-comment-status-icon h-5 w-5 mr-3"></div> <p class="js-comment-status-msg"></p> </div> <div class="flex"> <input type="button" name="cancel" value="Cancel" class="btn btn-secondary h-10 w-20 mr-4"> <input type="submit" name="submit" value="Submit" class="btn btn-primary h-10 w-20"> </div> </div> </form> </div> <div class="mt-6"> </div> </div> </div> <hr class="h-1 col-span-12 px-4 -mx-4 -mt-8 bg-neutral-lighter border-neutral-lighter md:px-burger md:-mx-burger lg:hidden print:hidden"> </div> </main> <div class="js-last-item-overlay relative bg-ncc-blue print:hidden"> <div class="container relative flex items-center overflow-x-auto md:overflow-hidden"> <ul class="py-2 space-x-6 text-white md:py-6 whitespace-nowrap md:truncate"> <li class="inline">Explore Categories:</li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/network-operations/">Network Operations</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/measurements-and-statistics/">Measurements and Statistics</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/internet-governance/">Internet Governance</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/technology-and-innovation/">Technology and Innovation</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/community-and-events/">Community and Events</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/ripe-ncc/">RIPE NCC</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 " href="/category/podcasts/">Podcasts</a> </li> <li class="inline"> <a class="outline-none focus:ring focus:ring-low focus:ring-opacity-60 js-last-item" href="/category/tools/">Tools</a> </li> </ul> <a href="/categories/" class="hidden ml-10 text-sm font-semibold outline-none md:block text-accent-light whitespace-nowrap focus:ring focus:ring-low focus:ring-opacity-60">View all</a> </div> <div class="js-overlay last-item-overlay absolute inset-y-0 right-0 z-10 w-24 h-full -mb-12 transition-opacity duration-150 pointer-events-none md:hidden"></div> </div> <footer class="print:hidden"> <div class="py-10 text-center text-white border-t-2 border-b-2 border-white bg-ncc-blue md:text-left"> <div class="container flex flex-col flex-wrap items-center space-y-6 md:h-48 md:space-y-0"> <div class="flex flex-col items-center self-start order-1 w-full md:w-1/3 md:block"> <img alt="RIPE Labs" src="/static/images/logo-white.svg"> </div> <div class="w-full md:w-1/3 md:h-full flex flex-col items-center md:block self-start order-2"> <div class="flex flex-col max-w-xs md:max-w-none whitespace-nowrap"> <a class="hover:underline" href="/">Home</a> <a class="hover:underline" href="/sitemap.xml">Sitemap</a> <a class="hover:underline" href="/about-us/">About us</a> <a class="hover:underline" href="/contact/">Contact us</a> <a class="hover:underline" href="/legal/">Legal</a> </div> </div> <div class="order-3 w-full md:w-1/3 flex flex-col"> <h2 class="text-xl">Stay connected</h2> <div class="flex self-center justify-between w-full max-w-xs mt-4 md:self-auto social-buttons"> <a rel="nofollow noreferrer noopener" target="_blank" title="Facebook" href="http://facebook.com/ripencc"><svg width="10" height="18" viewBox="0 0 10 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="m9.2 10 .5-3h-3V5c0-.8.5-1.6 1.8-1.6h1.3V.8L7.5.6c-2.4 0-4 1.4-4 4V7H.8v3h2.7v7.4h3.3v-7.3h2.4Z"/></svg></a> <a rel="nofollow noreferrer noopener" target="_blank" title="Twitter" href="https://twitter.com/ripelabs"><svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="M17.4 2.3c-.6.3-1.3.5-2 .5A3 3 0 0 0 17 .9c-.7.4-1.5.7-2.2.9C14 1 13.2.7 12.2.7s-1.7.3-2.4 1-1 1.5-1 2.4V5a9.6 9.6 0 0 1-7-3.6c-.4.6-.5 1.1-.5 1.8A3.4 3.4 0 0 0 2.8 6a3 3 0 0 1-1.5-.5c0 .9.2 1.6.7 2.2.6.7 1.2 1 2 1.2a3.6 3.6 0 0 1-1.5 0 3.4 3.4 0 0 0 3.2 2.4 6.8 6.8 0 0 1-5.1 1.5 10 10 0 0 0 11.5-.6 10.4 10.4 0 0 0 3.6-7.7v-.4c.7-.5 1.2-1 1.7-1.8Z"/></svg></a> <a rel="nofollow noreferrer noopener" target="_blank" title="LinkedIn" href="https://www.linkedin.com/company/ripe-ncc"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="M4.3 17.4H1V6.2h3.4v11.2ZM2.6 4.6a2 2 0 0 1-2-2 2 2 0 0 1 4 0 2 2 0 0 1-2 2Zm14.8 12.8H14V12c0-1.3 0-3-1.8-3s-2 1.5-2 3v5.5H6.4V6.2H10v1.5c.5-.9 1.6-1.8 3.3-1.8 3.6 0 4.2 2.3 4.2 5.3v6.2Z"/></svg></a> <a rel="nofollow noreferrer noopener" target="_blank" title="YouTube" href="http://www.youtube.com/user/RIPENCC"><svg width="18" viewBox="0 0 14 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" fill-rule="evenodd" d="M13.5 2.2c-.2-.5-.7-1-1.2-1.1C11.3.8 7 .8 7 .8S2.8.8 1.7 1c-.5.1-1 .6-1.2 1.1-.2 1-.2 3.2-.2 3.2s0 2.2.2 3.2c.2.6.7 1 1.2 1.2 1 .3 5.3.3 5.3.3s4.2 0 5.3-.3a2 2 0 0 0 1.2-1.2c.2-1 .2-3.2.2-3.2s0-2.1-.2-3.2ZM5.3 7.5V3.3l3.4 2.1-3.4 2.1Z" clip-rule="evenodd"/></svg></a> <a rel="nofollow noreferrer noopener" target="_blank" title="Github" href="https://github.com/RIPE-NCC"><svg width="18" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="m4.9 11.1-.2.1h-.1l.1-.2.2.1ZM4 11l.1.1h.2l-.1-.2H4Zm1.3 0H5c0 .1.1.2.2.1h.1l-.1-.2ZM7 .2C3.2.3.3 3.2.3 7c0 3 2 5.7 4.7 6.6.3 0 .5-.1.5-.3v-1.7s-2 .4-2.4-.9c0 0-.3-.8-.8-1 0 0-.6-.4 0-.4 0 0 .8 0 1.1.7.7 1 1.7.8 2 .6l.5-1c-1.5-.1-3.1-.3-3.1-3 0-.8.2-1.2.7-1.7-.1-.1-.4-.9 0-1.8.6-.2 2 .7 2 .7a6.5 6.5 0 0 1 3.4 0s1.4-1 2-.7c.3 1 .1 1.7 0 1.8.5.5.8 1 .8 1.7 0 2.7-1.7 2.9-3.2 3 .2.3.4.7.4 1.4v2.3c0 .2.2.4.5.3A7 7 0 0 0 14.1 7 7 7 0 0 0 7 .3ZM3 9.9v.1Zm-.3-.3v.2H3l-.1-.2h-.1Zm.9 1v.2h.2v-.1c-.1-.1-.2-.1-.2 0Zm-.3-.4v.2h.1v-.1s-.1-.1-.1 0Z"/></svg></a> <a rel="nofollow noreferrer noopener" target="_blank" title="RSS Feed" href="/feed.xml"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" fill-rule="evenodd" d="M.76.26a13.48 13.48 0 0 1 12.98 12.98.5.5 0 0 1-.48.5H11.8a.48.48 0 0 1-.48-.47A11.07 11.07 0 0 0 .73 2.67a.48.48 0 0 1-.47-.48V.75c0-.28.23-.5.5-.49ZM9.4 13.23A9.14 9.14 0 0 0 .77 4.6a.48.48 0 0 0-.5.48v1.45c0 .25.19.46.44.48A6.74 6.74 0 0 1 7 13.3c.02.25.23.45.48.45h1.45c.27 0 .5-.23.48-.5Zm-5.28-1.42a1.93 1.93 0 1 1-3.86 0 1.93 1.93 0 0 1 3.86 0Z" clip-rule="evenodd"/></svg></a> </div> </div> </div> </div> <div class="bg-ncc-blue h-18"></div> </footer> <script src="/static/CACHE/js/js.70550276523f.js" defer></script> <noscript><img src="https://www-analytics.ripe.net/matomo.php?idsite=10&amp;rec=1" style="border:0;" alt=""></noscript> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10