<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-bensley-rpsl-exclude-members-01" category="std" consensus="true" xml:lang="en" updates="2622, 4012">
  <front>
    <title abbrev="Excluding objects from RPSL sets">Explicitly excluding objects from RPSL sets</title>

    <author initials="J." surname="Bensley" fullname="James Bensley">
      <organization>Inter.link GmbH</organization>
      <address>
        <postal>
          <street>Boxhagener Str. 80</street>
          <city>Berlin</city>
          <code>10245</code>
          <country>Germany</country>
        </postal>
        <email>james@inter.link</email>
      </address>
    </author>
    <author initials="S." surname="Romijn" fullname="Sasha Romijn">
      <organization>Reliably Coded</organization>
      <address>
        <postal>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>sasha@reliablycoded.nl</email>
      </address>
    </author>

    <date year="2026" month="October" day="31"/>

    
    
    <keyword>rpsl</keyword>

    <abstract>


<?line 43?>

<t>This document updates RFC 2622 and RFC 4012 by defining the <spanx style="verb">excl-members</spanx> attribute on the as-set and route-set classes in the Routing Policy Specification Language (RPSL). A set that references another set includes everything the referenced set contains, however deeply nested. RPSL currently has no way for the set owner to make an exception. The <spanx style="verb">excl-members</spanx> attribute lets a set owner exclude specific members, including ones brought in by a referenced set.</t>



    </abstract>



  </front>

  <middle>


<?line 47?>

<section anchor="introduction"><name>Introduction</name>

<t>The Routing Policy Specification Language (RPSL) <xref target="RFC2622"/> defines the as-set and route-set classes, whose objects are held in the Internet Routing Registry (IRR). A set can reference direct members, such as an AS number or address prefix, and it can reference other sets. Those sets can reference further sets, recursively. Server and client software resolve a set by following these references until it is reduced to a set of prefixes or AS numbers. The result is used mainly to build filters on routers.</t>

<section anchor="existing-methods-of-inclusion"><name>Existing Methods of Inclusion</name>

<t>Existing RPSL syntax offers several ways to include members in an as-set or route-set:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">members</spanx> attribute. On an as-set it holds AS numbers and as-set primary keys (<xref section="5.1" sectionFormat="of" target="RFC2622"/>).  <vspace blankLines='1'/>
A route-set's members are address prefixes. Its <spanx style="verb">members</spanx> attribute contains an IPv4 address prefix or a route-set primary key, each optionally followed by a range operator (<xref section="5.2" sectionFormat="of" target="RFC2622"/>). It may also contain an AS number or an as-set primary key, which per <xref section="5.3" sectionFormat="of" target="RFC2622"/> stand for the routes originated by that AS, or by the ASes in that as-set.</t>
  <t>The <spanx style="verb">mp-members</spanx> attribute for route-sets (<xref section="4.2" sectionFormat="of" target="RFC4012"/>), which takes the same values as <spanx style="verb">members</spanx> and adds IPv6 address prefixes. Like <spanx style="verb">members</spanx>, this may contain an AS number or an as-set primary key.</t>
  <t>The <spanx style="verb">mbrs-by-ref</spanx> and <spanx style="verb">member-of</spanx> attributes. These add an AS to an as-set through its aut-num object, or a route object's prefix to a route-set, when that object's <spanx style="verb">member-of</spanx> names the set and the set's <spanx style="verb">mbrs-by-ref</spanx> lists one of the object's maintainers or <spanx style="verb">ANY</spanx>, per Sections <xref target="RFC2622" section="5.1" sectionFormat="bare"/> and <xref target="RFC2622" section="5.2" sectionFormat="bare"/> of <xref target="RFC2622"/>. <xref section="3" sectionFormat="of" target="RFC4012"/> extends this to route6 objects.</t>
</list></t>

</section>
<section anchor="resolving-members-of-a-set"><name>Resolving Members of a Set</name>

<t>Resolving a set means working out which AS numbers or prefixes it includes. A resolver reads the set object and, wherever a member names another set, reads that set as well, continuing until it reaches members that are AS numbers or address prefixes. Those members are the result. In practice, implementations place limits on the depth and detect loops.</t>

<t>A set that names another as-set or route-set in <spanx style="verb">(src/mp-)members</spanx> is called the including set, and the set it names the included set. Everything an included set resolves to becomes part of what the including set resolves to.</t>

<t>In <xref target="fig-resolving"/>, AS-EXAMPLE-A1 lists a single member. It resolves to AS64500, AS64501 and AS64502:</t>

<figure title="A three-level as-set hierarchy" anchor="fig-resolving"><sourcecode type="rpsl"><![CDATA[
as-set: AS-EXAMPLE-A1
members: AS-EXAMPLE-B1

as-set: AS-EXAMPLE-B1
members: AS64500, AS64501, AS-EXAMPLE-C1

as-set: AS-EXAMPLE-C1
members: AS64502
]]></sourcecode></figure>

<t>This also applies when a route-set references another route-set or as-set.</t>

</section>
<section anchor="existing-methods-of-exclusion"><name>Existing Methods of Exclusion</name>

<t>The filter-set class (<xref section="5.4" sectionFormat="of" target="RFC2622"/>) defines a set of routes by describing what its <spanx style="verb">filter</spanx> attribute matches. <xref section="4.3" sectionFormat="of" target="RFC4012"/> adds <spanx style="verb">mp-filter</spanx>, which covers both address families. A network applies such a set in its own policy, accepting the routes the filter matches or, where the filter is negated, all others. Routes that a route-set contributed can be dropped this way.</t>

<t>The <spanx style="verb">mbrs-by-ref</spanx> and <spanx style="verb">member-of</spanx> pairing described above also limits which objects join a set. The set owner can restrict to specific maintainers in <spanx style="verb">mbrs-by-ref</spanx>, and an object's owner can leave the set out of its <spanx style="verb">member-of</spanx>.
However, this does not affect other sets in the hierarchy.</t>

<t>Consumers of a set, meaning the operators and tools that resolve it to build filters, also exclude members by means outside RPSL. Some filter-generation tooling and IRR servers offer options to drop named sets during expansion, so that a network can, for example, keep IXP route-server sets out of its filters. Such exclusions are chosen by the party building the filter and apply to a single resolution. They are not published to other consumers.</t>

</section>
<section anchor="missing-exclusion-options"><name>Missing Exclusion Options</name>

<t>None of the existing options gives a set owner a way to exclude an AS number, address prefix, as-set or route-set that was included recursively through <spanx style="verb">(src/mp-)members</spanx>. An owner can only control the members the object lists directly.</t>

<t>Consumers encounter problems such as:</t>

<t><list style="numbers" type="1">
  <t>A set somewhere in the hierarchy includes a member its owner has no relationship with. Consumers build filters that accept those routes. The set's owner can then make advertisements it is not authorised to make, whether a route hijack (intentional) or a route leak (accidental). The inclusion may be nested many levels down, where the consumer has no direct relationship with the owner that made it, and so no practical way to get it removed.</t>
  <t>A member intended to be a downstream is instead a peer or upstream. The IRR now shows the including set's owner as that member's transit provider. Filters can then expand massively, even to the whole global routing table. They become too large to program onto devices and too broad to offer useful protection.</t>
  <t>A member is added whose actions violate a law, a geo-political agreement, sanctions, or a peer or upstream's terms. Peers and upstreams of the including set's owner may now forward traffic for that member. If the including set belongs to a direct peer of the consumer, the two can discuss an alternative between themselves. If the member instead sits many levels down under a peer, that peer usually cannot help, having no relationship with the member itself, and the consumer is left with fragile manual workarounds. The same applies where a peer or upstream already serves the added member directly and a regulation forbids that peer or upstream from serving it via a third party.</t>
</list></t>

<t>The <spanx style="verb">excl-members</spanx> attribute lets a set owner name AS numbers, address prefixes, as-sets and route-sets to exclude when its own set is resolved, including ones an included set brings in. The included set itself is unchanged. Because the attribute is published with the object rather than chosen by the consumer, every resolver that implements this document applies the same exclusions.</t>

<t><spanx style="verb">excl-members</spanx> does not change how a route is validated against a Route Origin Authorization <xref target="RFC9582"/> or an Autonomous System Provider Authorization <xref target="I-D.ietf-sidrops-aspa-verification"/>, or how the roles defined in <xref target="RFC9234"/> apply.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The terms upstream, downstream, peer and transit provider are used as defined in <xref target="I-D.ietf-grow-routing-ops-terms"/>.</t>

</section>
</section>
<section anchor="the-excl-members-attribute"><name>The <spanx style="verb">excl-members</spanx> Attribute</name>

<t><spanx style="verb">excl-members</spanx> is a new attribute on the as-set and route-set classes. It builds on the <spanx style="verb">src-members</spanx> attribute defined in <xref target="I-D.ietf-grow-rpsl-registry-scoped-members"/>. Readers should be familiar with <spanx style="verb">src-members</spanx> and its motivation before continuing.</t>

<section anchor="the-as-set-class"><name>The as-set Class</name>

<t>On an as-set, <spanx style="verb">excl-members</spanx> uses almost the same syntax as <spanx style="verb">members</spanx> (<xref section="5.1" sectionFormat="of" target="RFC2622"/>): one or more AS numbers or as-set primary keys. The only difference is that an as-set key <bcp14>MUST</bcp14> be prefixed with a registry name and a double colon, for example <spanx style="verb">EXAMPLE::</spanx>. This removes the ambiguity of as-set primary keys without a registry scope, described in <xref target="I-D.ietf-grow-rpsl-registry-scoped-members"/>.</t>

<dl newline="true">
  <dt>Attribute:</dt>
  <dd>
    <t><spanx style="verb">excl-members</spanx></t>
  </dd>
  <dt>Value:</dt>
  <dd>
    <t>list of ([<spanx style="verb">as-number</spanx>] or [<spanx style="verb">registry-name</spanx>]::[<spanx style="verb">as-set-name</spanx>])</t>
  </dd>
  <dt>Type:</dt>
  <dd>
    <t>optional, multi-valued</t>
  </dd>
</dl>

</section>
<section anchor="the-route-set-class"><name>The route-set Class</name>

<t>On a route-set, <spanx style="verb">excl-members</spanx> uses almost the same syntax as <spanx style="verb">mp-members</spanx> (<xref section="4.2" sectionFormat="of" target="RFC4012"/>, which extends Sections <xref target="RFC2622" section="5.2" sectionFormat="bare"/> and <xref target="RFC2622" section="5.3" sectionFormat="bare"/> of <xref target="RFC2622"/>): one or more IPv4 or IPv6 address prefixes, AS numbers, as-set primary keys, or route-set primary keys. An address prefix or route-set key may be followed by a range operator. An as-set or route-set key <bcp14>MUST</bcp14> be prefixed with a registry name and a double colon, for example <spanx style="verb">EXAMPLE::</spanx>, for the same reason as on the as-set class.</t>

<dl newline="true">
  <dt>Attribute:</dt>
  <dd>
    <t><spanx style="verb">excl-members</spanx></t>
  </dd>
  <dt>Value:</dt>
  <dd>
    <t>list of ([<spanx style="verb">ipv4-address-prefix-range</spanx>] or [<spanx style="verb">ipv6-address-prefix-range</spanx>] or [<spanx style="verb">registry-name</spanx>]::[<spanx style="verb">route-set-name</spanx>] or [<spanx style="verb">registry-name</spanx>]::[<spanx style="verb">as-set-name</spanx>] or [<spanx style="verb">as-number</spanx>] or [<spanx style="verb">registry-name</spanx>]::[<spanx style="verb">route-set-name</spanx>][<spanx style="verb">range-operator</spanx>])</t>
  </dd>
  <dt>Type:</dt>
  <dd>
    <t>optional, multi-valued</t>
  </dd>
</dl>

</section>
<section anchor="attribute-validation"><name>Attribute Validation</name>

<t>When an authoritative IRR registry processes the creation or update of an as-set or route-set with an <spanx style="verb">excl-members</spanx> attribute, it <bcp14>MUST</bcp14> validate the attribute's contents.</t>

<section anchor="registry-scopes-and-duplicate-keys"><name>Registry Scopes and Duplicate Keys</name>

<t>Every reference to an as-set or route-set in <spanx style="verb">excl-members</spanx> <bcp14>MUST</bcp14> contain a registry scope. AS numbers are globally unique and are written without one. IRR registry software <bcp14>MUST</bcp14> reject an <spanx style="verb">excl-members</spanx> attribute containing two keys that are identical once their registry scopes are removed:</t>

<figure title="Invalid object fragment using multiple registry scopes with the same RPSL primary key" anchor="fig-invalid-duplicate-keys"><sourcecode type="rpsl"><![CDATA[
excl-members: RIPE::AS-EXAMPLE, ARIN::AS-EXAMPLE
]]></sourcecode></figure>

<t>If this were allowed, the two entries would refer to two different sets, whereas <spanx style="verb">(mp-)members</spanx> can only hold one <spanx style="verb">AS-EXAMPLE</spanx>, leaving it ambiguous which set the exclusion refers to.</t>

<t>IRR registry software <bcp14>MUST</bcp14> also reject an object where <spanx style="verb">excl-members</spanx> and <spanx style="verb">src-members</spanx> contain an identical key with an identical registry scope:</t>

<figure title="Invalid object fragment including and excluding the same scoped key" anchor="fig-invalid-same-key"><sourcecode type="rpsl"><![CDATA[
members: AS-EXAMPLE
src-members: RIPE::AS-EXAMPLE
excl-members: RIPE::AS-EXAMPLE
]]></sourcecode></figure>

<t>This object would include a member and immediately exclude it again, which is meaningless and likely a mistake. The same key with different registry scopes is permitted, e.g. <spanx style="verb">src-members: RIPE::AS-EXAMPLE</spanx> with <spanx style="verb">excl-members: ARIN::AS-EXAMPLE</spanx>.</t>

</section>
<section anchor="no-membership-scope-or-existence-requirement"><name>No Membership, Scope or Existence Requirement</name>

<t>IRR registry software <bcp14>MUST NOT</bcp14> require that a key in <spanx style="verb">excl-members</spanx> is also a direct member of the object being created or updated. <spanx style="verb">excl-members</spanx> applies to everything reached through the object that contains it, and the object named may be referenced several levels further down.</t>

<t>IRR registry software also <bcp14>MUST NOT</bcp14> require the registry scope on an <spanx style="verb">excl-members</spanx> key to be one it recognises. An authoritative server's content may be mirrored to resolvers that see many more registries.</t>

<t>An <spanx style="verb">excl-members</spanx> entry may name an object that a resolver cannot retrieve, because no such object exists or because that registry is not among those it has data for. Exclusions are matched against during resolution, not during creation of the object.</t>

</section>
</section>
</section>
<section anchor="resolver-behaviour"><name>Resolver Behaviour</name>

<t>The <spanx style="verb">excl-members</spanx> value applies to everything reached through the set that contains it, down the tree. That means a set is resolved under its own exclusions and those of every object on the way to it, from the viewpoint of the set requested by the consumer. A member named by any of the exclusions <bcp14>MUST</bcp14> be ignored by the resolver.</t>

<t>Because more than one set may reference the same object, the same object can be excluded on one path and still included through a different path, where that exclusion does not exist.</t>

<t>A member that joined a set through <spanx style="verb">mbrs-by-ref</spanx> and <spanx style="verb">member-of</spanx> <bcp14>MUST</bcp14> be treated the same as one listed in <spanx style="verb">members</spanx> or <spanx style="verb">mp-members</spanx>. On an as-set, an excluded AS number <bcp14>MUST NOT</bcp14> be included. On a route-set, the resolver <bcp14>MUST NOT</bcp14> include such a prefix if there is an <spanx style="verb">excl-members</spanx> entry that names that prefix without a range operator.</t>

<t>The result of resolving a set <bcp14>MUST NOT</bcp14> depend on the order in which an implementation follows references.</t>

<t>An <spanx style="verb">excl-members</spanx> key that names an as-set or route-set contains a registry scope.</t>

<t><list style="numbers" type="1">
  <t>A key that contains no registry scope, in <spanx style="verb">members</spanx> or <spanx style="verb">mp-members</spanx>, <bcp14>MUST</bcp14> be compared against the <spanx style="verb">excl-members</spanx> key with that key's scope removed.</t>
  <t>A registry-scoped key in <spanx style="verb">src-members</spanx> (<xref target="I-D.ietf-grow-rpsl-registry-scoped-members"/>) <bcp14>MUST</bcp14> match a registry-scoped <spanx style="verb">excl-members</spanx> key exactly, with neither scope removed.</t>
  <t>Where <spanx style="verb">src-members</spanx> and <spanx style="verb">members</spanx> or <spanx style="verb">mp-members</spanx> on the same object define the same key, once the scope is stripped from the <spanx style="verb">src-members</spanx> entry, the <spanx style="verb">src-members</spanx> key <bcp14>MUST</bcp14> be compared against <spanx style="verb">excl-members</spanx> with both scopes present, and takes precedence over the <spanx style="verb">members</spanx> or <spanx style="verb">mp-members</spanx> entry.</t>
</list></t>

<t>Where a reference names a set without a registry scope and an exclusion matches it, that reference <bcp14>MUST NOT</bcp14> be followed. The resolver <bcp14>MUST NOT</bcp14> instead resolve that reference in another registry. Doing so could contribute members that would otherwise not have been included.</t>

<section anchor="matching-address-prefixes-and-range-operators"><name>Matching Address Prefixes and Range Operators</name>

<t>An <spanx style="verb">excl-members</spanx> entry containing address prefix, is compared with each member as written, including any range operator. The address <bcp14>MUST</bcp14> be compared after converting it to the text representation of <xref target="RFC5952"/>, so that <spanx style="verb">2001:DB8:0::/32</spanx> and <spanx style="verb">2001:db8::/32</spanx> are equal. The prefix length and the range operator <bcp14>MUST</bcp14> be compared as written. A resolver <bcp14>MUST NOT</bcp14> evaluate range operators when comparing. This means an <spanx style="verb">excl-members</spanx> entry <spanx style="verb">192.0.2.0/24^+</spanx> excludes a member <spanx style="verb">192.0.2.0/24^+</spanx>, but not <spanx style="verb">192.0.2.0/24</spanx>, <spanx style="verb">192.0.2.0/25</spanx> or <spanx style="verb">192.0.2.0/24^24-32</spanx>, even though some of these are an equivalent notation.</t>

<t>A range operator on a route-set key in <spanx style="verb">excl-members</spanx> is compared in the same way. <spanx style="verb">RIPE::RS-EXAMPLE^+</spanx> excludes a <spanx style="verb">src-members</spanx> reference written as <spanx style="verb">RIPE::RS-EXAMPLE^+</spanx>, but not one written as <spanx style="verb">RIPE::RS-EXAMPLE</spanx>.</t>

</section>
<section anchor="exclusions-on-an-as-set"><name>Exclusions on an as-set</name>

<t>When <spanx style="verb">excl-members</spanx> is populated on an as-set, a resolver <bcp14>MUST NOT</bcp14> follow a reference to any as-set that <spanx style="verb">excl-members</spanx> names, and <bcp14>MUST NOT</bcp14> include any AS number it names. The exclusion covers <spanx style="verb">members</spanx> and <spanx style="verb">src-members</spanx>, on the as-set that contains it and on every as-set reached through it.</t>

<t>Consider the as-sets in <xref target="fig-as-set-unresolved"/>:</t>

<figure title="An example as-set hierarchy" anchor="fig-as-set-unresolved"><sourcecode type="rpsl"><![CDATA[
as-set: AS-EXAMPLE-A1
members: AS-EXAMPLE-B1, AS64500
source: ARIN

as-set: AS-EXAMPLE-B1
members: AS64501, AS-EXAMPLE-C1
excl-members: RIPE::AS-EXAMPLE-D1, AS64504, AS64501
source: RIPE

as-set: AS-EXAMPLE-C1
members: AS64502, AS64504, AS-EXAMPLE-D1
src-members: RIPE::AS-EXAMPLE-D1
source: RIPE

as-set: AS-EXAMPLE-D1
members: AS64503
source: RIPE
]]></sourcecode></figure>

<t>The members of AS-EXAMPLE-A1, accounting for <spanx style="verb">excl-members</spanx>, are AS64500 and AS64502.</t>

<t><list style="symbols">
  <t>AS64501 is not included, because it is listed in both <spanx style="verb">members</spanx> and <spanx style="verb">excl-members</spanx> on AS-EXAMPLE-B1. An exclusion also takes effect on the same object.</t>
  <t>AS64504 is not included either, even though it is a member of AS-EXAMPLE-C1, one level below the object that excludes it. The exclusion applies to everything reached through AS-EXAMPLE-B1.</t>
  <t>AS64503 is the only member of AS-EXAMPLE-D1, and is not included. AS-EXAMPLE-C1 references that set in <spanx style="verb">src-members</spanx> as <spanx style="verb">RIPE::AS-EXAMPLE-D1</spanx>, which matches the <spanx style="verb">excl-members</spanx> entry on AS-EXAMPLE-B1 exactly, with both registry scopes present.</t>
</list></t>

</section>
<section anchor="exclusions-on-a-route-set"><name>Exclusions on a route-set</name>

<t>When <spanx style="verb">excl-members</spanx> is populated on a route-set, a resolver <bcp14>MUST NOT</bcp14> follow a reference to any as-set or route-set that <spanx style="verb">excl-members</spanx> names, and <bcp14>MUST NOT</bcp14> include any address prefix it names. The exclusion covers <spanx style="verb">(mp-)members</spanx> and <spanx style="verb">src-members</spanx> on the route-set that contains it and on every route-set reached through it, and <spanx style="verb">members</spanx> and <spanx style="verb">src-members</spanx> on every as-set reached through it.</t>

<t>Per <xref section="5.3" sectionFormat="of" target="RFC2622"/>, a <spanx style="verb">(mp-)members</spanx> or <spanx style="verb">src-members</spanx> entry naming an AS number stands for the routes originated by that AS. Where <spanx style="verb">excl-members</spanx> lists that AS number, a resolver <bcp14>MUST NOT</bcp14> expand such an entry. The resolver does not re-examine the origin of prefixes reached by other references.</t>

<t>Consider the route-sets in <xref target="fig-route-set-unresolved"/>:</t>

<figure title="An example route-set hierarchy" anchor="fig-route-set-unresolved"><sourcecode type="rpsl"><![CDATA[
route-set: RS-EXAMPLE-A1
members: 192.0.2.0/25, RS-EXAMPLE-B1
excl-members: RIPE::RS-EXAMPLE-C2, 192.0.2.128/25
source: ARIN

route-set: RS-EXAMPLE-B1
mp-members: 2001:db8::/33
mp-members: RS-EXAMPLE-C1, RS-EXAMPLE-C2
src-members: RIPE::RS-EXAMPLE-C2
source: RIPE

route-set: RS-EXAMPLE-C1
members: 192.0.2.128/25, RS-EXAMPLE-C2
source: RIPE

route-set: RS-EXAMPLE-C2
mp-members: 2001:db8:8000::/33
source: RIPE
]]></sourcecode></figure>

<t>The members of RS-EXAMPLE-A1, accounting for <spanx style="verb">excl-members</spanx>, are 192.0.2.0/25 and 2001:db8::/33.</t>

<t><list style="symbols">
  <t>2001:db8:8000::/33 is not included. RS-EXAMPLE-B1 scopes its reference with <spanx style="verb">src-members: RIPE::RS-EXAMPLE-C2</spanx>, which matches the <spanx style="verb">excl-members</spanx> entry on RS-EXAMPLE-A1 exactly, with both registry scopes present.</t>
  <t>RS-EXAMPLE-C1 references RS-EXAMPLE-C2 as well, without a scope. That reference is compared against the <spanx style="verb">excl-members</spanx> entry with the registry scope removed, so it matches and is excluded too.</t>
  <t>192.0.2.128/25 is not included. RS-EXAMPLE-C1 lists it as a member, written exactly as the <spanx style="verb">excl-members</spanx> entry on RS-EXAMPLE-A1. Had RS-EXAMPLE-C1 written it as <spanx style="verb">192.0.2.128/25^+</spanx>, or covered it in a <spanx style="verb">192.0.2.0/24^+</spanx> entry, the exclusion would not have matched.</t>
</list></t>

</section>
<section anchor="multiple-paths-to-a-set"><name>Multiple Paths to a Set</name>

<t>The exclusions of each object on the way accumulate as resolution descends. An implementation may therefore have to track several collections of exclusions at once, one for each path it is currently following, rather than a single one for the whole resolution.</t>

<t>Consider the as-sets in <xref target="fig-scope-unresolved"/>, in which AS-EXAMPLE-C2 can be reached both through AS-EXAMPLE-B1 and through AS-EXAMPLE-B2:</t>

<figure title="An as-set hierarchy in which AS-EXAMPLE-C2 can be reached two ways" anchor="fig-scope-unresolved"><sourcecode type="rpsl"><![CDATA[
as-set: AS-EXAMPLE-A1
members: AS-EXAMPLE-B1, AS-EXAMPLE-B2
excl-members: AS64505
source: ARIN

as-set: AS-EXAMPLE-B1
members: AS-EXAMPLE-C1
excl-members: RIPE::AS-EXAMPLE-C2
source: ARIN

as-set: AS-EXAMPLE-B2
members: AS-EXAMPLE-C2
source: ARIN

as-set: AS-EXAMPLE-C1
members: AS-EXAMPLE-C2, AS64503, AS64505
source: ARIN

as-set: AS-EXAMPLE-C2
members: AS64504
source: RIPE
]]></sourcecode></figure>

<t>Resolving AS-EXAMPLE-A1 reaches AS-EXAMPLE-C2 in two ways:</t>

<t><list style="symbols">
  <t>Through AS-EXAMPLE-B1 and then AS-EXAMPLE-C1. AS64505 is excluded by AS-EXAMPLE-A1, and AS-EXAMPLE-C2 by AS-EXAMPLE-B1, though AS-EXAMPLE-C2 is not a member of AS-EXAMPLE-B1 itself. This path contributes only AS64503.</t>
  <t>Through AS-EXAMPLE-B2. Only the exclusion of AS64505 applies here, so the reference to AS-EXAMPLE-C2 is followed. This path contributes AS64504.</t>
</list></t>

<t>AS-EXAMPLE-A1 resolves to AS64503 and AS64504. AS-EXAMPLE-C2 is still reached through AS-EXAMPLE-B2.</t>

<t>Implementations <bcp14>MUST NOT</bcp14> apply an exclusion to objects other than the object that contains it and those reached through it. If they did, the owner of an included set could add keys to its own <spanx style="verb">excl-members</spanx> and remove members from unrelated parts of the hierarchy.</t>

</section>
<section anchor="disabling-exclusions-in-queries"><name>Disabling Exclusions in Queries</name>

<t>IRR software <bcp14>MAY</bcp14> provide a query option to disable the
processing of <spanx style="verb">excl-members</spanx>. With that option, sets are resolved
without applying any exclusions, as software without
support for <spanx style="verb">excl-members</spanx> would.
This option helps users to compare results with those from software that does
not support <spanx style="verb">excl-members</spanx>, and debug unexpected resolving results.</t>

</section>
</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>This memo includes no request to IANA.</t>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t>A resolver that does not support <spanx style="verb">excl-members</spanx> will not apply exclusions in results. Operators who depend on exclusions should verify that the resolver they use supports the attribute.</t>

<t>The presence of the attribute does not indicate correct filtering, as tools using the IRR should be designed to ignore attributes they do not understand (<xref section="10.2" sectionFormat="of" target="RFC2622"/>).</t>

<t>A set owner cannot verify through the IRR that an exclusion has taken effect for any given consumer.</t>

<t>Resolving a set with exclusions costs more than resolving one without. An implementation has to track what is excluded separately for each part of the hierarchy. Combined with circular references, which resolvers must already detect, this can be used to consume resources. Implementations are <bcp14>RECOMMENDED</bcp14> to limit the depth or size of a resolution.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank Jeffrey Haas, Nick Hilliard and
Job Snijders for their helpful suggestions and review of this
document.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2622">
  <front>
    <title>Routing Policy Specification Language (RPSL)</title>
    <author fullname="C. Alaettinoglu" initials="C." surname="Alaettinoglu"/>
    <author fullname="C. Villamizar" initials="C." surname="Villamizar"/>
    <author fullname="E. Gerich" initials="E." surname="Gerich"/>
    <author fullname="D. Kessens" initials="D." surname="Kessens"/>
    <author fullname="D. Meyer" initials="D." surname="Meyer"/>
    <author fullname="T. Bates" initials="T." surname="Bates"/>
    <author fullname="D. Karrenberg" initials="D." surname="Karrenberg"/>
    <author fullname="M. Terpstra" initials="M." surname="Terpstra"/>
    <date month="June" year="1999"/>
    <abstract>
      <t>RPSL allows a network operator to be able to specify routing policies at various levels in the Internet hierarchy; for example at the Autonomous System (AS) level. At the same time, policies can be specified with sufficient detail in RPSL so that low level router configurations can be generated from them. RPSL is extensible; new routing protocols and new protocol features can be introduced at any time. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2622"/>
  <seriesInfo name="DOI" value="10.17487/RFC2622"/>
</reference>
<reference anchor="RFC4012">
  <front>
    <title>Routing Policy Specification Language next generation (RPSLng)</title>
    <author fullname="L. Blunk" initials="L." surname="Blunk"/>
    <author fullname="J. Damas" initials="J." surname="Damas"/>
    <author fullname="F. Parent" initials="F." surname="Parent"/>
    <author fullname="A. Robachevsky" initials="A." surname="Robachevsky"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This memo introduces a new set of simple extensions to the Routing Policy Specification Language (RPSL), enabling the language to document routing policies for the IPv6 and multicast address families currently used in the Internet. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4012"/>
  <seriesInfo name="DOI" value="10.17487/RFC4012"/>
</reference>
<reference anchor="RFC5952">
  <front>
    <title>A Recommendation for IPv6 Address Text Representation</title>
    <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
    <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
    <date month="August" year="2010"/>
    <abstract>
      <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5952"/>
  <seriesInfo name="DOI" value="10.17487/RFC5952"/>
</reference>

<reference anchor="I-D.ietf-grow-rpsl-registry-scoped-members">
   <front>
      <title>Registry scoped members for RPSL set objects</title>
      <author fullname="Sasha Romijn" initials="S." surname="Romijn">
         <organization>Reliably Coded</organization>
      </author>
      <author fullname="James Bensley" initials="J." surname="Bensley">
         <organization>Inter.link GmbH</organization>
      </author>
      <date day="22" month="April" year="2026"/>
      <abstract>
     <t>   This document updates RFC2622 and RFC4012 by specifying src-members,
   a new attribute on as-set and route-set objects in the Routing Policy
   Specification Language (RPSL).  This attribute allows a specific
   registry to be defined for each member in a set, avoiding problematic
   ambiguity when resolving set members.  A new validation rule allows
   gradual upgrades and backwards compatibility.

     </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-grow-rpsl-registry-scoped-members-00"/>
   
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC9234">
  <front>
    <title>Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages</title>
    <author fullname="A. Azimov" initials="A." surname="Azimov"/>
    <author fullname="E. Bogomazov" initials="E." surname="Bogomazov"/>
    <author fullname="R. Bush" initials="R." surname="Bush"/>
    <author fullname="K. Patel" initials="K." surname="Patel"/>
    <author fullname="K. Sriram" initials="K." surname="Sriram"/>
    <date month="May" year="2022"/>
    <abstract>
      <t>Route leaks are the propagation of BGP prefixes that violate assumptions of BGP topology relationships, e.g., announcing a route learned from one transit provider to another transit provider or a lateral (i.e., non-transit) peer or announcing a route learned from one lateral peer to another lateral peer or a transit provider. These are usually the result of misconfigured or absent BGP route filtering or lack of coordination between autonomous systems (ASes). Existing approaches to leak prevention rely on marking routes by operator configuration, with no check that the configuration corresponds to that of the External BGP (eBGP) neighbor, or enforcement of the two eBGP speakers agreeing on the peering relationship. This document enhances the BGP OPEN message to establish an agreement of the peering relationship on each eBGP session between autonomous systems in order to enforce appropriate configuration on both sides. Propagated routes are then marked according to the agreed relationship, allowing both prevention and detection of route leaks.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9234"/>
  <seriesInfo name="DOI" value="10.17487/RFC9234"/>
</reference>
<reference anchor="RFC9582">
  <front>
    <title>A Profile for Route Origin Authorizations (ROAs)</title>
    <author fullname="J. Snijders" initials="J." surname="Snijders"/>
    <author fullname="B. Maddison" initials="B." surname="Maddison"/>
    <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
    <author fullname="D. Kong" initials="D." surname="Kong"/>
    <author fullname="S. Kent" initials="S." surname="Kent"/>
    <date month="May" year="2024"/>
    <abstract>
      <t>This document defines a standard profile for Route Origin Authorizations (ROAs). A ROA is a digitally signed object that provides a means of verifying that an IP address block holder has authorized an Autonomous System (AS) to originate routes to one or more prefixes within the address block. This document obsoletes RFC 6482.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9582"/>
  <seriesInfo name="DOI" value="10.17487/RFC9582"/>
</reference>

<reference anchor="I-D.ietf-sidrops-aspa-verification">
   <front>
      <title>BGP AS_PATH Verification Based on Autonomous System Provider Authorization (ASPA) Objects</title>
      <author fullname="Alexander Azimov" initials="A." surname="Azimov">
         <organization>Yandex</organization>
      </author>
      <author fullname="Eugene Bogomazov" initials="E." surname="Bogomazov">
         <organization>Qrator Labs</organization>
      </author>
      <author fullname="Randy Bush" initials="R." surname="Bush">
         <organization>Internet Initiative Japan &amp; Arrcus, Inc.</organization>
      </author>
      <author fullname="Keyur Patel" initials="K." surname="Patel">
         <organization>Arrcus</organization>
      </author>
      <author fullname="Job Snijders" initials="J." surname="Snijders">
         <organization>BSD Software Development</organization>
      </author>
      <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
         <organization>USA National Institute of Standards and Technology</organization>
      </author>
      <date day="16" month="October" year="2026"/>
      <abstract>
     <t>   This document describes procedures that make use of Autonomous System
   Provider Authorization (ASPA) objects in the Resource Public Key
   Infrastructure (RPKI) to verify the Border Gateway Protocol (BGP)
   AS_PATH attribute of advertised routes.  This AS_PATH verification
   enhances routing security by adding means to detect and mitigate
   route leaks and AS_PATH manipulations.

     </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-verification-29"/>
   
</reference>

<reference anchor="I-D.ietf-grow-routing-ops-terms">
   <front>
      <title>Currently Used Terminology in Global Routing Operations</title>
      <author fullname="Tobias Fiebig" initials="T." surname="Fiebig">
         <organization>TU Wien</organization>
      </author>
      <author fullname="Wolfgang Tremmel" initials="W." surname="Tremmel">
         <organization>DE-CIX Management GmbH</organization>
      </author>
      <date day="2" month="October" year="2026"/>
      <abstract>
     <t>   Operating the global routing ecosystem entails a diverse set of
   interacting components, while operational practice evolved over time.
   In that time, terms emerged, disappeared, and sometimes changed their
   meaning.

   To aid operators and implementers in reading contemporary drafts,
   this document provides an overview of terms and abbreviations used in
   the global routing operations community.  The document explicitly
   does not serve as an authoritative source of correct terminology, but
   instead strives to provide an overview of practice.

     </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-grow-routing-ops-terms-03"/>
   
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
8hWoVQAA

-->

</rfc>

