{"id":1816,"date":"2026-10-05T05:48:29","date_gmt":"2026-10-05T05:48:29","guid":{"rendered":"https:\/\/ip4.market\/blog\/?p=1816"},"modified":"2026-10-05T05:48:29","modified_gmt":"2026-10-05T05:48:29","slug":"securing-your-border-router-filtering-unwanted-announcements","status":"publish","type":"post","link":"https:\/\/ip4.market\/blog\/securing-your-border-router-filtering-unwanted-announcements\/","title":{"rendered":"Securing Your Border Router: Filtering Unwanted Announcements"},"content":{"rendered":"<p>Filtering announcements at your border router is one of the better defenses you have against route hijacking, accidental leaks, and upstream neighbors who misconfigure things. And misconfigured things happen constantly. IPv4 scarcity keeps pushing address blocks from one organization to another, which means your routing perimeter shifts more often than most operators admit \u2014 and every unfiltered session is an open door for bad routes, both coming in and, worse, going out and propagating worldwide. This guide walks through how to harden your border router step by step, from understanding your exposure to writing prefix-lists and route-maps that actually enforce your policy.<\/p>\n<h2>Why New IPv4 Space Is Vulnerable to Route Hijacking<\/h2>\n<p>Recently transferred IPv4 blocks are prime targets for hijackers, and it&#8217;s not a coincidence \u2014 it&#8217;s structural. When a block moves from one organization to another, routing databases such as IRR registries and RPKI repositories often lag behind the official transfer records. During that gap, the legitimate new owner announces the prefix while legacy route objects still point at the previous holder. Ambiguity, in other words. Exactly the kind hijackers go looking for.<\/p>\n<ul>\n<li><strong>Stale IRR objects:<\/strong> Aut-num and route objects referencing the old holder cause downstream networks to filter the legitimate announcement while accepting a fraudulent one from somewhere else entirely.<\/li>\n<li><strong>Missing ROAs:<\/strong> No RPKI authorization means anyone can announce the prefix, and validating networks have no cryptographic basis to reject the impostor.<\/li>\n<li><strong>Inactive prefix detection:<\/strong> Hijackers scan for allocated but unannounced space \u2014 a common situation for buyers who purchase blocks and then delay deployment. An unannounced \/24 is silent prey.<\/li>\n<\/ul>\n<p>Practical advice? The moment you acquire IPv4 space, update your IRR objects, create ROAs for every prefix and its common sub-prefixes (a \/24 ROA with maxLength 24 is the usual minimum), and start announcing promptly. Marketplaces such as IP4 Market support buyers through this transition by ensuring clean, documented transfers with verified sellers \u2014 a critical first step, since blocks with disputed provenance attract both registry scrutiny and hijack attempts.<\/p>\n<h2>Understanding BGP Announcements and Prefix Visibility<\/h2>\n<p>Before you can filter anything, you need to know what your network is actually announcing. And accepting. BGP is chatty by design: every session exchanges the full table (roughly 950,000+ IPv4 routes today), and a single misconfiguration can silently export prefixes you never intended to originate.<\/p>\n<ol>\n<li><strong>Audit your own origins.<\/strong> Use looking glasses and services like RIPEstat or RouteViews to confirm exactly which prefixes the world sees from your ASNs. Unexpected sub-prefixes \u2014 a \/25 leaking out of an internal summarization error \u2014 are surprisingly common.<\/li>\n<li><strong>Monitor inbound received routes.<\/strong> Log everything accepted from each peer for at least a week. You will almost certainly find more-specific prefixes, martian space, and routes you have no business path for.<\/li>\n<li><strong>Track your visibility.<\/strong> Routing analytics platforms (BGPlay, GRIP, Cloudflare Radar) let you spot third parties announcing overlapping space before customers notice blackholing.<\/li>\n<\/ol>\n<h2>Filtering Unwanted Announcements: Prefix-Lists and Route-Maps Explained<\/h2>\n<p>The core mechanism here is a two-layer approach: prefix-lists define <em>what<\/em> is permitted, and route-maps define <em>how<\/em> matches are handled and what attributes get applied.<\/p>\n<p>Outbound, maintain a prefix-list of only the prefixes you&#8217;re authorized to originate, and apply it to every eBGP neighbor. Never rely on a default &#8220;advertise what&#8217;s in the table&#8221; posture. One redistributed static or connected route can leak an entire customer&#8217;s space to the internet. Inbound, deny bogons and your own prefixes coming back at you, then apply per-peer filters based on the peer&#8217;s authorized prefixes \u2014 ideally generated from IRR data with tools like bgpq4.<\/p>\n<div class=\"result-box\">\n<p><strong>Tip:<\/strong> Combine prefix-lists with route-maps so you can set local-preference, add communities, or tag accepted routes. And keep your filters in version control, so policy changes get reviewed rather than improvised at 2 a.m.<\/p>\n<\/div>\n<p>Applied consistently on every session, this layered filtering turns your border router from a passive conduit into an active policy enforcement point. Which is where it should have been all along.<\/p>\n<h2>Implementing RPKI and ROA Validation for Your Prefixes<\/h2>\n<p>Of all the defenses against prefix hijacking, Route Origin Authorization (ROA) statements \u2014 published through the RPKI framework \u2014 are the ones that actually bite. A ROA is a cryptographic declaration of which Autonomous System (AS) is allowed to originate a given prefix, plus the maximum prefix length permitted. Once it&#8217;s out there, relying parties (major transit providers, big content networks, the operators who matter) can automatically reject any announcement that violates it.<\/p>\n<h3>Publishing ROAs correctly<\/h3>\n<ul>\n<li><strong>Set maxLength precisely:<\/strong> If you announce 203.0.113.0\/24 as a single prefix, maxLength should be 24. Nothing more. An overly permissive maxLength of 32 hands an attacker the ability to announce deaggregated subprefixes \u2014 and those can end up preferred over your legitimate route.<\/li>\n<li><strong>Cover every announced prefix:<\/strong> Check that each prefix in your allocations has a valid ROA, including any more-specifics you use for traffic engineering. One missing ROA and that route sits classified as &#8220;NotFound.&#8221; Vulnerable.<\/li>\n<li><strong>Update before re-homing:<\/strong> Moving address space or switching upstreams? Publish the new ROA before withdrawing the old one. Otherwise you&#8217;ve created a validation gap for no reason.<\/li>\n<\/ul>\n<h3>Enforcing RPKI on your own border<\/h3>\n<p>There&#8217;s a flip side to this, and it&#8217;s the one people forget. Publishing ROAs protects your prefixes; enforcing RPKI protects everyone else, including you. Run RTR synchronization against one or more trusted RPKI validators (Fort, FRR&#8217;s built-in RTR, a Routinator instance \u2014 any of them work) and apply origin validation on all your eBGP sessions. Drop &#8220;invalid&#8221; routes outright, and think about depreferring &#8220;unknowns&#8221; until global coverage improves. It&#8217;s a stronger posture than static allow-lists, because you&#8217;re working with cryptographic proof instead of a list someone hand-maintained and forgot to update.<\/p>\n<h2>Monitoring and Detecting Unauthorized BGP Announcements<\/h2>\n<p>Filtering and RPKI handle your outbound policy. But they won&#8217;t tell you when someone else is out there announcing your space. Only continuous monitoring catches hijacks, leaks, and misconfigurations in near real time.<\/p>\n<h3>Practical detection methods<\/h3>\n<ul>\n<li><strong>Route collectors and looking glasses:<\/strong> RIPE RIS, RouteViews, commercial platforms like RIPEstat, BGStream, or Cloudflare Radar \u2014 all let you query the global visibility of your prefixes. Schedule regular checks for origins and AS-paths you don&#8217;t recognize.<\/li>\n<li><strong>Automated alerting:<\/strong> Set up alerting tools \u2014 ARIN\/RIPE alarm services, Monarb, ARTEMIS \u2014 so you get notified the moment your prefix shows up with an unexpected origin AS. This matters more than it sounds: fast detection can shorten a hijack from hours to minutes.<\/li>\n<li><strong>RPKI invalid monitoring:<\/strong> Keep an eye out for your prefixes being flagged &#8220;invalid&#8221; by third parties. That usually means someone announced your space without authorization.<\/li>\n<li><strong>Peering session telemetry:<\/strong> Sudden changes in announced prefix counts, unexpected route refreshes, a spike in withdrawals from a peer \u2014 in my experience these quiet anomalies are often the first sign of a leak upstream of you.<\/li>\n<\/ul>\n<h3>Responding to a hijack<\/h3>\n<p>So it happened. An unauthorized announcement is live. Now what? Contact the originating AS&#8217;s NOC immediately (abuse and peering contacts are in WHOIS or PeeringDB), notify your transit providers, and double-check that your own ROA is accurate \u2014 if it is, RPKI-invalid filtering works in your favor and containment spreads on its own. And document everything: timestamps, affected prefixes. Your post-incident review will thank you.<\/p>\n<div class=\"result-box\">\n<p><strong>Tip:<\/strong> Test your detection pipeline deliberately. Announce a test prefix with a bogus origin from a lab environment and verify your alerts fire within minutes. An untested monitoring setup is an unproven one \u2014 and unproven means it will fail exactly when you need it.<\/p>\n<\/div>\n<h2>Conclusion: Building a Secure Routing Foundation for Your IPv4 Space<\/h2>\n<p>Securing a border router isn&#8217;t a single configuration. It&#8217;s a discipline \u2014 strict prefix filters on every session, max-prefix limits, IRR-based policy, RPKI both published and enforced, monitoring running continuously to close the loop. Each layer covers the blind spots of the others. Together, they cut your exposure to hijacks, leaks, and plain accidental outages down to something you can actually live with.<\/p>\n<p>The same rigor applies to acquisition, by the way. If your organization is building or expanding its IPv4 holdings, verify prefix provenance, confirm a clean routing history, and make sure RPKI resources transfer correctly. IP4 Market provides a trusted platform for IPv4 transactions, with verified sellers, full due-diligence support, and competitive pricing \u2014 so the space you secure at the border is space you acquired with confidence.<\/p>\n<div class=\"ip4-cta\" style=\"margin:2em 0;padding:1.2em 1.5em;border:1px solid #d8dee9;border-left:4px solid #00b8d4;border-radius:6px;background:#f8fafc\">\n<p style=\"margin:0\"><strong>Need IPv4 space?<\/strong> Lease RIPE-verified \/24&ndash;\/22 subnets at a flat \u20ac0.50\/IP per month &mdash; LOA + RPKI\/ROA in minutes, instant company verification, automatic renewals. <a href=\"https:\/\/panel.ip4.market\/marketplace?utm_source=blog&amp;utm_medium=cta&amp;utm_campaign=post-footer\" rel=\"nofollow\">Browse available subnets &rarr;<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Filtering announcements at your border router is one of the better defenses you have against route hijacking, accidental leaks, and upstream neighbors who misconfigure things. And misconfigured things happen constantly&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":1818,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking"],"_links":{"self":[{"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/posts\/1816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/comments?post=1816"}],"version-history":[{"count":1,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/posts\/1816\/revisions"}],"predecessor-version":[{"id":1817,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/posts\/1816\/revisions\/1817"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/media\/1818"}],"wp:attachment":[{"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/media?parent=1816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/categories?post=1816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ip4.market\/blog\/wp-json\/wp\/v2\/tags?post=1816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}