<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Notfound on Wirez</title>
    <link>https://wirez.top/tags/notfound/</link>
    <description>Recent content in Notfound on Wirez</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 20 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://wirez.top/tags/notfound/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>RPKI route checks: Stop Invalid BGP announcements</title>
      <link>https://wirez.top/posts/rpki-route-checks-stop-invalid-bgp-announcements/</link>
      <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://wirez.top/posts/rpki-route-checks-stop-invalid-bgp-announcements/</guid>
      <description>&lt;!-- wp:html --&gt;&#xA;&lt;meta charset=&#34;utf-8&#34;&gt;&#xA;&lt;style&gt;&#xA;/* Platform CSS v3.0 */&#xA;:root {&#xA;  --primary-color: #4285f4;&#xA;  --primary-dark: #0057cc;&#xA;  --success-color: #34a853;&#xA;  --warning-color: #fbbc05;&#xA;  --error-color: #ea4335;&#xA;  --text-primary: #333333;&#xA;  --text-secondary: #666666;&#xA;  --text-light: #888888;&#xA;  --border-color: #e0e0e0;&#xA;  --background-light: #f8f9fa;&#xA;  --background-card: #ffffff;&#xA;  --background-code: #f5f5f5;&#xA;  --spacing-xs: 0.5rem;&#xA;  --spacing-sm: 1rem;&#xA;  --spacing-md: 1.5rem;&#xA;  --spacing-lg: 2rem;&#xA;  --border-radius: 8px;&#xA;  --border-radius-sm: 4px;&#xA;  --box-shadow: 0 2px 8px rgba(0,0,0,0.08);&#xA;  --box-shadow-hover: 0 4px 16px rgba(0,0,0,0.12);&#xA;}&#xA;.section-title {&#xA;  color: var(--text-primary);&#xA;  margin: var(--spacing-lg) 0 var(--spacing-sm);&#xA;  font-size: clamp(1.2rem, 3vw, 1.4rem);&#xA;  font-weight: 600;&#xA;  line-height: 1.3;&#xA;}&#xA;.subsection-title {&#xA;  color: var(--text-primary);&#xA;  margin: var(--spacing-md) 0 var(--spacing-xs);&#xA;  font-size: clamp(1.1rem, 2.5vw, 1.2rem);&#xA;  font-weight: 600;&#xA;}&#xA;.std-text {&#xA;  font-size: 1rem;&#xA;  line-height: 1.6;&#xA;  margin-bottom: var(--spacing-sm);&#xA;  color: var(--text-primary);&#xA;}&#xA;.card {&#xA;  border: 1px solid var(--border-color);&#xA;  padding: var(--spacing-sm);&#xA;  background: var(--background-card);&#xA;  border-radius: var(--border-radius);&#xA;  margin-bottom: var(--spacing-md);&#xA;  box-shadow: var(--box-shadow);&#xA;  transition: transform 0.2s ease, box-shadow 0.2s ease;&#xA;}&#xA;.card:hover {&#xA;  transform: translateY(-2px);&#xA;  box-shadow: var(--box-shadow-hover);&#xA;}&#xA;.emoji-list {&#xA;  font-size: 1rem;&#xA;  line-height: 1.7;&#xA;  margin-bottom: 0.8rem;&#xA;  padding: 0.8rem 0;&#xA;  border-bottom: 1px solid var(--border-color);&#xA;  color: var(--text-primary);&#xA;}&#xA;.emoji-list:last-child { border-bottom: none; }&#xA;.emoji-list strong { color: var(--primary-color); font-weight: 600; }&#xA;.table-container {&#xA;  width: 100%;&#xA;  overflow-x: auto;&#xA;  margin-bottom: var(--spacing-md);&#xA;  border-radius: var(--border-radius);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;.table-container + .table-container {&#xA;  margin-top: 1.5rem;&#xA;}&#xA;.data-table {&#xA;  width: 100%;&#xA;  min-width: 600px;&#xA;  border-collapse: collapse;&#xA;  background: white;&#xA;}&#xA;.data-table th, .data-table td {&#xA;  padding: var(--spacing-sm);&#xA;  border: 1px solid var(--border-color);&#xA;  font-size: 0.9rem;&#xA;  text-align: left;&#xA;}&#xA;.data-table th {&#xA;  background: var(--primary-color);&#xA;  color: white;&#xA;  font-weight: 700;&#xA;  white-space: nowrap;&#xA;}&#xA;.data-table td:first-child { font-weight: 700; }&#xA;.data-table tbody tr:nth-child(even) { background: #f8f9ff; }&#xA;.data-table tbody tr:nth-child(even) td { background: #f8f9ff !important; }&#xA;.data-table tbody tr:nth-child(odd) td { background: white !important; }&#xA;.data-table tr:hover td { background: #e8f0fe !important; }&#xA;.responsive-img {&#xA;  max-width: 100%;&#xA;  height: auto;&#xA;  border-radius: var(--border-radius);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;figure {&#xA;  margin: var(--spacing-lg) auto;&#xA;  text-align: center;&#xA;  width: 100%;&#xA;  max-width: 100%;&#xA;  display: block;&#xA;}&#xA;figure img { margin: 0 auto; display: block; max-width: 100%; height: auto; }&#xA;.img-caption {&#xA;  font-size: 0.9rem;&#xA;  color: var(--text-secondary);&#xA;  text-align: center;&#xA;  margin-top: var(--spacing-xs);&#xA;  font-style: italic;&#xA;}&#xA;.responsive-list {&#xA;  padding-left: 1.5rem;&#xA;  margin: var(--spacing-sm) 0;&#xA;  line-height: 1.7;&#xA;}&#xA;.responsive-list li { margin-bottom: var(--spacing-xs); padding-left: 0.5rem; }&#xA;.responsive-list a { color: var(--primary-color); text-decoration: none; font-weight: 600; }&#xA;.responsive-list a:hover { color: var(--primary-dark); text-decoration: underline; }&#xA;.callout { display:flex; gap:16px; padding:20px; border-radius:12px; margin:24px 0; border-left:4px solid; }&#xA;.callout-icon { font-size:24px; flex-shrink:0; }&#xA;.callout-content { flex:1; }&#xA;.callout-expert { background:#f0f7ff; border-color:#2563eb; }&#xA;.callout-info { background:#f0fdf4; border-color:#16a34a; }&#xA;.callout-warning { background:#fffbeb; border-color:#d97706; }&#xA;.faq-section {&#xA;  margin: var(--spacing-lg) 0;&#xA;  padding: var(--spacing-lg) 0;&#xA;  border-top: 2px solid var(--border-color);&#xA;}&#xA;.faq-section-title {&#xA;  color: var(--text-primary);&#xA;  font-size: clamp(1.2rem, 3vw, 1.4rem);&#xA;  font-weight: 700;&#xA;  margin-bottom: var(--spacing-lg);&#xA;  text-align: center;&#xA;}&#xA;.faq-item {&#xA;  background: var(--background-card);&#xA;  border: 1px solid var(--border-color);&#xA;  border-radius: var(--border-radius);&#xA;  margin-bottom: var(--spacing-sm);&#xA;  overflow: hidden;&#xA;  transition: all 0.3s ease;&#xA;}&#xA;.faq-item:hover {&#xA;  border-color: var(--primary-color);&#xA;  box-shadow: var(--box-shadow-hover);&#xA;  transform: translateY(-2px);&#xA;}&#xA;.faq-question {&#xA;  background: var(--background-light);&#xA;  padding: var(--spacing-sm) var(--spacing-md);&#xA;  cursor: pointer;&#xA;  position: relative;&#xA;  transition: all 0.3s ease;&#xA;  border: none;&#xA;  width: 100%;&#xA;  text-align: left;&#xA;  font-family: inherit;&#xA;}&#xA;.faq-question:hover { background: #e8f0fe; }&#xA;.faq-question-text {&#xA;  color: var(--text-primary);&#xA;  font-size: 1rem;&#xA;  font-weight: 600;&#xA;  line-height: 1.5;&#xA;  margin: 0;&#xA;  padding-right: 2rem;&#xA;}&#xA;.faq-answer {&#xA;  max-height: 0;&#xA;  overflow: hidden;&#xA;  transition: max-height 0.4s ease, padding 0.4s ease;&#xA;  padding: 0 var(--spacing-md);&#xA;}&#xA;.faq-item.active .faq-answer {&#xA;  max-height: 1000px;&#xA;  padding: 0 var(--spacing-md) var(--spacing-md);&#xA;}&#xA;.faq-answer-text {&#xA;  color: var(--text-secondary);&#xA;  font-size: 1rem;&#xA;  line-height: 1.7;&#xA;  margin: var(--spacing-sm) 0 0;&#xA;}&#xA;.about-section {&#xA;  background: var(--background-light);&#xA;  border-left: 4px solid var(--primary-color);&#xA;  border-radius: var(--border-radius);&#xA;  padding: var(--spacing-md) var(--spacing-lg);&#xA;  margin: var(--spacing-lg) 0;&#xA;}&#xA;.about-section .std-text {&#xA;  color: var(--text-secondary);&#xA;  font-size: 0.95rem;&#xA;  margin-bottom: 0;&#xA;}&#xA;.conclusion-section {&#xA;  border-top: 2px solid var(--border-color);&#xA;  padding-top: var(--spacing-lg);&#xA;  margin-top: var(--spacing-lg);&#xA;}&#xA;.conclusion-section .std-text {&#xA;  font-size: 1.05rem;&#xA;  line-height: 1.7;&#xA;}&#xA;@media (max-width: 768px) {&#xA;  .card { padding: 0.75rem; }&#xA;  .data-table { min-width: 100%; font-size: 0.8rem; }&#xA;  .data-table th, .data-table td { padding: 0.5rem 0.25rem; }&#xA;  .emoji-list { font-size: 0.95rem; }&#xA;}&#xA;@media (max-width: 480px) {&#xA;  .section-title { margin: var(--spacing-sm) 0 0.5rem; }&#xA;  .card { padding: 0.5rem; }&#xA;  .data-table th, .data-table td { padding: 0.4rem 0.2rem; font-size: 0.75rem; }&#xA;}&#xA;@media (prefers-reduced-motion: reduce) {&#xA;  *, *::before, *::after {&#xA;    animation-duration: 0.01ms !important;&#xA;    transition-duration: 0.01ms !important;&#xA;  }&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;!-- wp:html --&gt;&#xA;&lt;style&gt;&#xA;/* CSS переменные для единообразного стиля */&#xA;:root {&#xA;  --primary-color: #4285f4;&#xA;  --primary-dark: #0057cc;&#xA;  --success-color: #34a853;&#xA;  --warning-color: #fbbc05;&#xA;  --error-color: #ea4335;&#xA;  --text-primary: #333333;&#xA;  --text-secondary: #666666;&#xA;  --text-light: #888888;&#xA;  --border-color: #e0e0e0;&#xA;  --background-light: #f8f9fa;&#xA;  --background-card: #ffffff;&#xA;  --background-code: #f5f5f5;&#xA;  --warning-bg: #fff8f8;&#xA;  --spacing-xs: 0.5rem;&#xA;  --spacing-sm: 1rem;&#xA;  --spacing-md: 1.5rem;&#xA;  --spacing-lg: 2rem;&#xA;  --border-radius: 8px;&#xA;  --border-radius-sm: 4px;&#xA;  --box-shadow: 0 2px 8px rgba(0,0,0,0.08);&#xA;  --box-shadow-hover: 0 4px 16px rgba(0,0,0,0.12);&#xA;}&#xA;&#xA;/* Основные стили */&#xA;.article-marker {&#xA;  background: var(--primary-color);&#xA;  color: white;&#xA;  text-align: center;&#xA;  padding: var(--spacing-sm);&#xA;  margin: var(--spacing-lg) 0;&#xA;  font-size: 1rem;&#xA;  font-weight: 700;&#xA;  border-radius: var(--border-radius-sm);&#xA;  border: 2px dashed var(--primary-dark);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;&#xA;.main-title {&#xA;  margin-bottom: var(--spacing-md);&#xA;  font-size: clamp(1.5rem, 4vw, 2rem);&#xA;  font-weight: 700;&#xA;  color: var(--text-primary);&#xA;  line-height: 1.2;&#xA;}&#xA;&#xA;.section-title {&#xA;  color: var(--text-primary);&#xA;  margin: var(--spacing-lg) 0 var(--spacing-sm);&#xA;  font-size: clamp(1.2rem, 3vw, 1.4rem);&#xA;  font-weight: 600;&#xA;  line-height: 1.3;&#xA;}&#xA;&#xA;.subsection-title {&#xA;  color: var(--text-primary);&#xA;  margin: var(--spacing-md) 0 var(--spacing-xs);&#xA;  font-size: clamp(1.1rem, 2.5vw, 1.2rem);&#xA;  font-weight: 600;&#xA;}&#xA;&#xA;.std-text {&#xA;  font-size: 1rem;&#xA;  line-height: 1.6;&#xA;  margin-bottom: var(--spacing-sm);&#xA;  color: var(--text-primary);&#xA;}&#xA;&#xA;/* Улучшенные карточки */&#xA;.card {&#xA;  border: 1px solid var(--border-color);&#xA;  padding: var(--spacing-sm);&#xA;  background: var(--background-card);&#xA;  border-radius: var(--border-radius);&#xA;  margin-bottom: var(--spacing-md);&#xA;  box-shadow: var(--box-shadow);&#xA;  transition: transform 0.2s ease, box-shadow 0.2s ease;&#xA;}&#xA;&#xA;.card:hover {&#xA;  transform: translateY(-2px);&#xA;  box-shadow: var(--box-shadow-hover);&#xA;}&#xA;&#xA;.warning-box {&#xA;  border: 1px solid var(--error-color);&#xA;  padding: var(--spacing-sm);&#xA;  background: var(--warning-bg);&#xA;  border-radius: var(--border-radius);&#xA;  margin-bottom: var(--spacing-lg);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;&#xA;.warning-title {&#xA;  color: var(--error-color);&#xA;  margin-bottom: var(--spacing-xs);&#xA;  font-weight: 700;&#xA;  font-size: 1.1rem;&#xA;}&#xA;&#xA;/* Emoji списки с лучшими отступами */&#xA;.emoji-list {&#xA;  font-size: 1rem;&#xA;  line-height: 1.7;&#xA;  margin-bottom: 0.8rem;&#xA;  padding: 0.8rem 0;&#xA;  border-bottom: 1px solid var(--border-color);&#xA;  color: var(--text-primary);&#xA;  background: transparent;&#xA;}&#xA;&#xA;.emoji-list:last-child {&#xA;  border-bottom: none;&#xA;  margin-bottom: 0;&#xA;}&#xA;&#xA;.emoji-list strong {&#xA;  color: var(--primary-color);&#xA;  font-weight: 600;&#xA;}&#xA;&#xA;/* Адаптивные таблицы */&#xA;.table-container {&#xA;  width: 100%;&#xA;  overflow-x: auto;&#xA;  margin-bottom: var(--spacing-md);&#xA;  border-radius: var(--border-radius);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;&#xA;.data-table {&#xA;  width: 100%;&#xA;  min-width: 600px;&#xA;  border-collapse: collapse;&#xA;  background: white;&#xA;}&#xA;&#xA;.data-table th,&#xA;.data-table td {&#xA;  padding: var(--spacing-sm);&#xA;  border: 1px solid var(--border-color);&#xA;  font-size: 0.9rem;&#xA;  text-align: left;&#xA;}&#xA;&#xA;.data-table th {&#xA;  background: var(--primary-color);&#xA;  color: white;&#xA;  font-weight: 700;&#xA;  white-space: nowrap;&#xA;}&#xA;&#xA;.data-table td:first-child {&#xA;  font-weight: 700;&#xA;  font-size: 0.9rem;&#xA;}&#xA;&#xA;.data-table tbody tr:nth-child(even) {&#xA;  background: #f8f9ff;&#xA;}&#xA;&#xA;/* Убираем синий фон с первой строки tbody */&#xA;.data-table tbody tr:first-child {&#xA;  background: transparent !important;&#xA;  color: inherit !important;&#xA;}&#xA;&#xA;.data-table tbody tr:first-child td {&#xA;  background: transparent !important;&#xA;  color: inherit !important;&#xA;}&#xA;&#xA;/* Правильное чередование строк */&#xA;.data-table tbody tr:nth-child(even) td {&#xA;  background: #f8f9ff !important;&#xA;}&#xA;&#xA;.data-table tbody tr:nth-child(odd) td {&#xA;  background: white !important;&#xA;}&#xA;&#xA;.data-table tr:hover td {&#xA;  background: #e8f0fe;&#xA;}&#xA;&#xA;.data-table-caption {&#xA;  font-size: 0.9rem;&#xA;  color: var(--text-secondary);&#xA;  text-align: center;&#xA;  margin-top: var(--spacing-xs);&#xA;  font-style: italic;&#xA;}&#xA;&#xA;/* Улучшенные статус-теги */&#xA;.status-tag {&#xA;  display: inline-block;&#xA;  padding: 4px 8px;&#xA;  color: white;&#xA;  border-radius: 16px;&#xA;  font-size: 0.75rem;&#xA;  font-weight: 600;&#xA;  text-transform: uppercase;&#xA;  letter-spacing: 0.5px;&#xA;  box-shadow: 0 2px 4px rgba(0,0,0,0.2);&#xA;}&#xA;&#xA;.status-green { background: linear-gradient(135deg, var(--success-color), #2d8f47); }&#xA;.status-blue { background: linear-gradient(135deg, var(--primary-color), #3367d6); }&#xA;.status-yellow { background: linear-gradient(135deg, var(--warning-color), #f9ab00); color: #333; }&#xA;.status-red { background: linear-gradient(135deg, var(--error-color), #d33b2c); }&#xA;&#xA;/* Адаптивные блоки кода */&#xA;.code-block {&#xA;  font-family: &#39;Courier New&#39;, Consolas, Monaco, monospace;&#xA;  font-size: 0.85rem;&#xA;  background: var(--background-code);&#xA;  color: var(--text-primary);&#xA;  padding: var(--spacing-sm);&#xA;  border: 1px solid var(--border-color);&#xA;  border-radius: var(--border-radius);&#xA;  margin-bottom: var(--spacing-md);&#xA;  overflow-x: auto;&#xA;  line-height: 1.5;&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;&#xA;/* Адаптивные изображения */&#xA;.responsive-img {&#xA;  max-width: 100%;&#xA;  height: auto;&#xA;  border-radius: var(--border-radius);&#xA;  box-shadow: var(--box-shadow);&#xA;}&#xA;&#xA;.img-caption {&#xA;  font-size: 0.9rem;&#xA;  color: var(--text-secondary);&#xA;  text-align: center;&#xA;  margin-top: var(--spacing-xs);&#xA;  font-style: italic;&#xA;}&#xA;&#xA;/* Адаптивные списки */&#xA;.responsive-list {&#xA;  padding-left: 1.5rem;&#xA;  margin: var(--spacing-sm) 0;&#xA;  line-height: 1.7;&#xA;}&#xA;&#xA;.responsive-list li {&#xA;  margin-bottom: var(--spacing-xs);&#xA;  padding-left: 0.5rem;&#xA;}&#xA;&#xA;.responsive-list a {&#xA;  color: var(--primary-color);&#xA;  text-decoration: none;&#xA;  font-weight: 600;&#xA;  transition: color 0.2s ease;&#xA;}&#xA;&#xA;.responsive-list a:hover {&#xA;  color: var(--primary-dark);&#xA;  text-decoration: underline;&#xA;}&#xA;&#xA;/* Медиа-запросы для мобильных устройств */&#xA;@media (max-width: 768px) {&#xA;  .article-marker {&#xA;    font-size: 0.9rem;&#xA;    padding: 0.75rem;&#xA;    margin: var(--spacing-sm) 0;&#xA;  }&#xA;&#xA;  .card, .warning-box {&#xA;    padding: 0.75rem;&#xA;    margin-bottom: var(--spacing-sm);&#xA;  }&#xA;&#xA;  .data-table {&#xA;    min-width: 100%;&#xA;    font-size: 0.8rem;&#xA;  }&#xA;&#xA;  .data-table th,&#xA;  .data-table td {&#xA;    padding: 0.5rem 0.25rem;&#xA;  }&#xA;&#xA;  .status-tag {&#xA;    font-size: 0.7rem;&#xA;    padding: 3px 6px;&#xA;  }&#xA;&#xA;  .code-block {&#xA;    font-size: 0.8rem;&#xA;    padding: 0.75rem;&#xA;  }&#xA;&#xA;  .emoji-list {&#xA;    font-size: 0.95rem;&#xA;    line-height: 1.6;&#xA;  }&#xA;&#xA;  .responsive-list {&#xA;    padding-left: 1rem;&#xA;  }&#xA;}&#xA;&#xA;@media (max-width: 480px) {&#xA;  .section-title {&#xA;    margin: var(--spacing-sm) 0 0.5rem;&#xA;  }&#xA;&#xA;  .subsection-title {&#xA;    margin: var(--spacing-sm) 0 0.5rem;&#xA;  }&#xA;&#xA;  .card, .warning-box {&#xA;    padding: 0.5rem;&#xA;  }&#xA;&#xA;  .data-table th,&#xA;  .data-table td {&#xA;    padding: 0.4rem 0.2rem;&#xA;    font-size: 0.75rem;&#xA;  }&#xA;&#xA;  .code-block {&#xA;    font-size: 0.75rem;&#xA;    padding: 0.5rem;&#xA;  }&#xA;}&#xA;&#xA;/* Улучшение доступности */&#xA;@media (prefers-reduced-motion: reduce) {&#xA;  .card, .status-tag, .responsive-list a {&#xA;    transition: none;&#xA;  }&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;!-- /wp:html --&gt;&#xA;&lt;style&gt;:root{--text-primary:var(--text,#333333);--background-card:var(--bg-card,#ffffff);--background-light:var(--bg-subtle,#f8f9fa);--background-code:var(--bg-subtle,#f5f5f5);--border-color:var(--border,#e0e0e0)}&lt;/style&gt;&#xA;&lt;!-- /wp:html --&gt;&#xA;&lt;!-- wp:html --&gt;&#xA;&lt;script type=&#34;application/ld+json&#34;&gt;&#xA;{&#xA;  &#34;@context&#34;: &#34;https://schema.org&#34;,&#xA;  &#34;@type&#34;: &#34;FAQPage&#34;,&#xA;  &#34;mainEntity&#34;: [&#xA;    {&#xA;      &#34;@type&#34;: &#34;Question&#34;,&#xA;      &#34;name&#34;: &#34;What causes most RPKI invalid route detections in production networks?&#34;,&#xA;      &#34;acceptedAnswer&#34;: {&#xA;        &#34;@type&#34;: &#34;Answer&#34;,&#xA;        &#34;text&#34;: &#34;Configuration errors like wrong ASNs cause most invalid flags. Studies show greater than a portion of detected invalid prefixes are false positives from such mistakes, requiring careful ROA review before enforcing strict drop policies on your border routers.&#34;&#xA;      }&#xA;    },&#xA;    {&#xA;      &#34;@type&#34;: &#34;Question&#34;,&#xA;      &#34;name&#34;: &#34;How frequently do routers refresh validation data from the RPKI cache?&#34;,&#xA;      &#34;acceptedAnswer&#34;: {&#xA;        &#34;@type&#34;: &#34;Answer&#34;,&#xA;        &#34;text&#34;: &#34;Routers typically refresh validation data every 600 seconds via the RTR protocol. This interval balances security responsiveness with network stability, ensuring your Cisco or FRRouting devices receive regular updates without overwhelming the validator server during peak traffic periods.&#34;&#xA;      }&#xA;    },&#xA;    {&#xA;      &#34;@type&#34;: &#34;Question&#34;,&#xA;      &#34;name&#34;: &#34;What is the current global coverage of routed prefix-AS pairs by ROAs?&#34;,&#xA;      &#34;acceptedAnswer&#34;: {&#xA;        &#34;@type&#34;: &#34;Answer&#34;,&#xA;        &#34;text&#34;: &#34;Current ROA coverage remains near a portion of routed prefix-AS pairs globally. This gap means most routes still appear as NotFound, so operators must accept these unknown routes while gradually encouraging peers to publish ROAs to improve overall internet routing security posture.&#34;&#xA;      }&#xA;    },&#xA;    {&#xA;      &#34;@type&#34;: &#34;Question&#34;,&#xA;      &#34;name&#34;: &#34;Why are there zero valid router certificates despite hundreds of thousands of ROAs?&#34;,&#xA;      &#34;acceptedAnswer&#34;: {&#xA;        &#34;@type&#34;: &#34;Answer&#34;,&#xA;        &#34;text&#34;: &#34;Zero valid router certificates exist because infrastructure for cryptographic verification remains incomplete. While over 375,000 valid ROAs authorize origin ASes, the lack of router certificates proves that final step enforcement is largely absent from today&#39;s deployed BGP security architectures.&#34;&#xA;      }&#xA;    },&#xA;    {&#xA;      &#34;@type&#34;: &#34;Question&#34;,&#xA;      &#34;name&#34;: &#34;What operational risk arises from setting incorrect max-length values in ROAs?&#34;,&#xA;      &#34;acceptedAnswer&#34;: {&#xA;        &#34;@type&#34;: &#34;Answer&#34;,&#xA;        &#34;text&#34;: &#34;Incorrect max-length settings trigger invalid states that block legitimate traffic. Since greater than a portion of invalid detections stem from configuration errors, operators must precisely define prefix lengths to avoid self-inflicted outages while protecting against unauthorized sub-prefix hijack attempts on their network.&#34;&#xA;      }&#xA;    }&#xA;  ]&#xA;}&#xA;&lt;/script&gt;&#xA;&lt;!-- /wp:html --&gt;&#xA;&lt;!-- wp:html --&gt;&#xA;&lt;style&gt;&#xA;.faq-section { margin: 24px 0; padding: 24px 0; border-top: 2px solid #e5e7eb; }&#xA;.faq-section-title { color: #1a1a1a; font-size: clamp(1.2rem, 3vw, 1.4rem); font-weight: 700; margin-bottom: 24px; text-align: center; }&#xA;.faq-item { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; margin-bottom: 12px; overflow: hidden; transition: all 0.3s ease; }&#xA;.faq-item:hover { border-color: #2563eb; box-shadow: 0 4px 6px rgba(0,0,0,0.05); transform: translateY(-2px); }&#xA;.faq-question { background: #f9fafb; padding: 12px 16px; cursor: pointer; position: relative; transition: all 0.3s ease; border: none; width: 100%; text-align: left; font-family: inherit; display: block; }&#xA;.faq-question:hover { background: #e8f0fe; }&#xA;.faq-question-text { color: #1a1a1a; font-size: 1rem; font-weight: 600; line-height: 1.5; margin: 0; padding-right: 2rem; display: inline-block; }&#xA;.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; padding: 0 16px; }&#xA;.faq-item.active .faq-answer { max-height: 1000px; padding: 0 16px 16px; }&#xA;.faq-answer-text { color: #4b5563; font-size: 1rem; line-height: 1.7; margin: 12px 0 0; }&#xA;&lt;/style&gt;&#xA;&lt;script&gt;&#xA;(function() {&#xA;  function initFAQ() {&#xA;    var qs = document.querySelectorAll(&#34;.faq-question&#34;);&#xA;    for (var i = 0; i &lt; qs.length; i++) {&#xA;      qs[i].addEventListener(&#34;click&#34;, function() {&#xA;        var item = this.closest(&#34;.faq-item&#34;);&#xA;        var wasActive = item.classList.contains(&#34;active&#34;);&#xA;        var allItems = document.querySelectorAll(&#34;.faq-item&#34;);&#xA;        for (var j = 0; j &lt; allItems.length; j++) { allItems[j].classList.remove(&#34;active&#34;); }&#xA;        if (!wasActive) item.classList.add(&#34;active&#34;);&#xA;        this.setAttribute(&#34;aria-expanded&#34;, String(!wasActive));&#xA;      });&#xA;    }&#xA;  }&#xA;  if (document.readyState === &#34;loading&#34;) {&#xA;    document.addEventListener(&#34;DOMContentLoaded&#34;, initFAQ);&#xA;  } else {&#xA;    initFAQ();&#xA;  }&#xA;})();&#xA;&lt;/script&gt;&#xA;&lt;!-- /wp:html --&gt;&#xA;&lt;!-- wp:html --&gt;&#xA;&lt;script type=&#34;application/ld+json&#34;&gt;&#xA;{&#xA;  &#34;@context&#34;: &#34;https://schema.org&#34;,&#xA;  &#34;@type&#34;: &#34;TechArticle&#34;,&#xA;  &#34;headline&#34;: &#34;The Role of RPKI in Modern BGP Security Architecture&#34;,&#xA;  &#34;description&#34;: &#34;As of June 2026, zero valid router certificates exist in the RPKI system despite over 375,000 valid Route Origin Authorizations. This disparity proves that w...&#34;,&#xA;  &#34;author&#34;: {&#xA;    &#34;@type&#34;: &#34;Person&#34;,&#xA;    &#34;name&#34;: &#34;Evgeny Sevastyanov&#34;&#xA;  },&#xA;  &#34;datePublished&#34;: &#34;2026-03-20&#34;,&#xA;  &#34;url&#34;: &#34;https://oneuptime.com/blog/post/2026-03-20-rpki-route-origin-validation-bgp/view&#34;,&#xA;  &#34;inLanguage&#34;: &#34;en&#34;,&#xA;  &#34;wordCount&#34;: 3363,&#xA;  &#34;publisher&#34;: {&#xA;    &#34;@type&#34;: &#34;Organization&#34;,&#xA;    &#34;name&#34;: &#34;InterLIR&#34;&#xA;  },&#xA;  &#34;speakable&#34;: {&#xA;    &#34;@type&#34;: &#34;SpeakableSpecification&#34;,&#xA;    &#34;cssSelector&#34;: [&#xA;      &#34;.article-intro&#34;,&#xA;      &#34;.faq-answer&#34;&#xA;    ]&#xA;  },&#xA;  &#34;about&#34;: [&#xA;    {&#xA;      &#34;@type&#34;: &#34;Thing&#34;,&#xA;      &#34;name&#34;: &#34;RPKI Route Origin Validation&#34;&#xA;    }&#xA;  ]&#xA;}&#xA;&lt;/script&gt;&#xA;&lt;!-- /wp:html --&gt;&#xA;&lt;!-- wp:paragraph {&#34;className&#34;:&#34;std-text&#34;} --&gt;&#xA;&lt;!-- /wp:paragraph --&gt;&#xA;&lt;!-- wp:paragraph {&#34;className&#34;:&#34;std-text&#34;} --&gt;&#xA;&lt;p class=&#34;std-text&#34;&gt;As of June 2026, the math doesn&amp;#039;t add up. We have over 375,000 valid Route Origin Authorizations sitting in the global system, yet zero valid router certificates exist to enforce them. This isn&amp;#039;t a gap; it&amp;#039;s a chasm. IP holders are signing &lt;strong&gt;ROA&lt;/strong&gt; records, but the infrastructure to cryptographically verify &lt;strong&gt;BGP&lt;/strong&gt; announcements at the router level remains critically incomplete. The industry relies on &lt;strong&gt;Regional Internet Registries&lt;/strong&gt; like &lt;strong&gt;ARIN&lt;/strong&gt; and &lt;strong&gt;RIPE&lt;/strong&gt; to publish data, but that data dies in the validator unless we force the final step of enforcement.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
