Radar - AS-level connectivity and upstream providers on Cloudflare Radar
- Announced
- Tags
- Radar
- Severity
- info, set by
reef/rss-rule-v1 - Source
- https://developers.cloudflare.com/changelog/post/2026-08-07-radar-as-connectivity-upstreams/
<p><a href="https://developers.cloudflare.com/radar/"><strong>Radar</strong></a> expands its <a href="https://radar.cloudflare.com/routing" target="_blank" rel="noopener">Routing section<span class="external-link"> ↗︎</span></a> with two widgets on AS pages, such as <a href="https://radar.cloudflare.com/routing/as13335" target="_blank" rel="noopener">AS13335<span class="external-link"> ↗︎</span></a>, that describe how a network reaches the rest of the Internet: the paths it takes toward the <a href="https://en.wikipedia.org/wiki/Tier_1_network" target="_blank" rel="noopener">Tier-1<span class="external-link"> ↗︎</span></a> networks, and the mix of direct upstreams carrying its routes. Both are derived from <a href="https://www.routeviews.org/" target="_blank" rel="noopener">RouteViews<span class="external-link"> ↗︎</span></a> RIB snapshots, unioned across selected collectors.</p> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="as-level-connectivity">AS-level connectivity</h4><a class="anchor-link" href="#as-level-connectivity"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>The <strong>AS-level connectivity</strong> graph aggregates the BGP paths an AS uses to reach the Tier-1 networks, unioned across all the prefixes it announces, as observed by selected RouteViews collectors. It reads from left to right, starting at the queried AS and ending at the Tier-1 networks, and each node is labeled with its AS number, country, and organization name. Tier-1 nodes are marked so they stand apart from the intermediate networks that lead to them.</p> <p>By default, the graph shows the network's direct connections to Tier-1 networks plus the indirect paths, which keeps the view readable. A <strong>Show full paths</strong> toggle expands it to every observed path, including transit through Tier-1 networks the AS already connects to. An IP version selector switches between IPv4 and IPv6, because the paths reaching Tier-1 networks may differ between the two address families.</p> <img src="https://developers.cloudflare.com/cdn-cgi/image/onerror=redirect,width=1600,height=1526,format=webp/_astro/as-level-connectivity-graph.DGv8lrUx.png" alt="AS-level connectivity graph for AS13335, showing Tier-1 networks it reaches directly alongside paths that reach others through intermediate networks" loading="lazy" decoding="async" width="1600" height="1526"> <p>This is the AS-level counterpart to the <strong>Real-time connectivity</strong> graph on prefix pages, such as the one for <a href="https://radar.cloudflare.com/routing/prefix/1.1.1.0/24" target="_blank" rel="noopener">1.1.1.0/24<span class="external-link"> ↗︎</span></a>. Instead of covering a single prefix, it covers the union of paths for all prefixes an AS announces, which makes it a fast way to read a network's transit hierarchy: which providers it depends on, how many hops separate it from the core, and whether its paths to the core are diverse or concentrated. For more information on the prefix-level graph, refer to <a href="https://developers.cloudflare.com/radar/glossary/#bgp-real-time-routes">BGP real-time routes</a>.</p> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="upstream-providers">Upstream providers</h4><a class="anchor-link" href="#upstream-providers"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>The <strong>Upstream providers</strong> widget tracks the share of an AS's observed paths carried by each of its direct upstream networks over time, drawn as a stacked area chart. Up to 10 upstreams appear as their own series and the remaining ones are grouped into <strong>Other</strong>. Transit changes such as adding a provider, dropping one, or moving traffic between them appear as movement between bands rather than as a single aggregate number. As with the connectivity graph, an IP version selector switches between IPv4 and IPv6.</p> <img src="https://developers.cloudflare.com/cdn-cgi/image/onerror=redirect,width=1600,height=976,format=webp/_astro/as-upstream-providers-timeseries.BUc6CJaT.png" alt="Stacked area chart of the share of AS13335's observed paths carried by each of its top 10 direct upstreams, with the remainder grouped into Other" loading="lazy" decoding="async" width="1600" height="976"> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="api-endpoints">API endpoints</h4><a class="anchor-link" href="#api-endpoints"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>The data behind both widgets is also available through two new endpoints on the <a href="https://developers.cloudflare.com/api/resources/radar/subresources/bgp/"><code>BGP</code></a> API:</p> <ul> <li><a href="https://developers.cloudflare.com/api/resources/radar/subresources/bgp/subresources/routes/subresources/paths/methods/list/"><code>/bgp/routes/paths/{asn}</code></a> — Returns the ordered AS path segments an AS uses to reach the Tier-1 networks, each with its observed path count, peer count, and contributing collectors, alongside the name and country of every ASN in the response. Pass <code>collector</code> to scope the result to a single RouteViews collector.</li> <li><a href="https://developers.cloudflare.com/api/resources/radar/subresources/bgp/subresources/routes/subresources/upstreams/methods/timeseries/"><code>/bgp/routes/upstreams/{asn}/timeseries</code></a> — Returns the share of an AS's observed paths carried by each direct upstream over time. Use <code>limit</code> to control how many upstreams come back as separate series before the rest are grouped into an <code>OTHER</code> series, and <code>ipVersion</code> to select the address family.</li> </ul> <p>Visit the <a href="https://radar.cloudflare.com/routing/as13335" target="_blank" rel="noopener">AS13335 routing page<span class="external-link"> ↗︎</span></a> to explore both widgets, or swap in any other AS number.</p>
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.