<div dir="ltr">Hi Maria,<div><br></div><div>Thanks for the reply</div><div><br></div><div><a href="http://23.172.216.0/24">23.172.216.0/24</a>      unicast [I_ZJ1 10:32:48.661 from 2a13:aac7:13:7::2] * (100) [AS398741i]<br>        via 10.0.29.2 on CN-ZJ1<br>        Type: BGP univ<br>        BGP.origin: IGP<br>        BGP.as_path: 398741 60539 60539 (65000) 60539 398741<br>        BGP.next_hop: 10.0.29.2<br>        BGP.med: 101<br>        BGP.local_pref: 400<br>        BGP.large_community: (60539, 2, 1) (60539, 6, 65000) (60539, 6, 52000)</div><div><br></div><div>After I enabled is_bogon() function, this route from our downstream would be filtered.</div><div><br></div><div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">function is_bogon() {
</span><br>    if is_bogon_asn() then return true;
<br>    if is_bogon_prefix() then return true;
<br>    if net_len_too_long() then return true;
<br>    return false;
<br>}<br>
<br></span><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><b><br></b></div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">function bgp_export()
</span><br>{
<br><span style="color:rgb(24,178,178)">    # my_opt_prefix();</span><span style="color:rgb(0,0,0)">
</span><br>    if is_bogon() then return false; #关闭以防止过滤bgp conf的内部ASN
<br>    if bgp_large_community ~ [(LOCAL_ASN, 4, NODE_ID)] then return false;
<br>    if is_local_prefix()  then return true;
<br><span style="color:rgb(24,178,178)">    # if proto = "BGP_Prefix_play" then return true;</span><span style="color:rgb(0,0,0)">
</span><br>    if source != RTS_BGP then return false;
<br>    if bgp_large_community !~ [(LOCAL_ASN, 2, 1)] then return false;
<br>    return true;
<br>}<br>
<br></span>I always remember that in BIRD, BGP Confederation internal ASNs cannot be counted in bgp_path.len. But BGP Confederation internal ASNs can be treated as 'normal' ASNs for filtering?</div><div dir="ltr"><br></div><div dir="ltr">Best,<br><div><b>Brandon Zhi</b><br></div><div>HUIZE LTD</div><div><a href="https://huize.asia/" target="_blank"><span>www.huize.asia</span> </a><span style="color:rgb(0,0,0);font-family:Helvetica,sans-serif;font-size:10.6667px">| </span><a href="https://www.ixp.su/" target="_blank"><span>www.ixp.su</span></a><span style="color:rgb(0,0,0);font-family:Helvetica,sans-serif;font-size:10.6667px"> | Twitter</span></div><div><img src="https://ci3.googleusercontent.com/mail-sig/AIorK4w5mVhfW4gNpNNG4wjzSr6YXLPGstLI3_79RkgqnXaG2nuFEB1nkGeXOqUOO3ma96TcEVR3iaA" width="200" height="43"><br></div><div>This e-mail and any attachments or any reproduction of this e-mail in whatever manner are confidential and for the use of the addressee(s) only. HUIZE LTD can’t take any liability and guarantee of the text of the email message and virus.</div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 1 Jun 2024 at 22:36, Maria Matejka <<a href="mailto:maria.matejka@nic.cz">maria.matejka@nic.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg628212724536549619"><u></u>


  
  
  
  

<div>
<p>Hello Brandon,</p>
<p>On Thu, May 30, 2024 at 09:52:53PM +0800, Brandon Zhi wrote:</p>
<blockquote>
<p>I am writing to inquire about the capabilities of the new version of
BIRD regarding BGP Confederation internal ASNs. Specifically, I would
like to know:</p>
<ol type="1">
<li>Can the new BIRD version filter BGP Confederation internal
ASNs?</li>
<li>Does it support calculating the total AS path length, including
internal ASNs within a BGP Confederation?</li>
</ol>
</blockquote>
<p>You are probably looking for something like
<code>bgp_path.filter()</code> or <code>bgp_path.len</code>, or maybe
<code>for int p in bgp_path do { … }</code></p>
<blockquote>
<p>Additionally, I have encountered an issue while using the
<code>is_bogon()</code> function. It currently filters a route with the
AS path (65000) 398741. I suspect this is because (65000) is being
treated as a BOGON ASN.</p>
<p>Below is the <code>define BOGON_ASNS</code> I am using:</p>
<pre><code>define BOGON_ASNS = [
    0,                      # RFC 7607
    23456,                  # RFC 4893 AS_TRANS
    64496..64511,           # RFC 5398 and documentation/example ASNs
    64512..65534,           # RFC 6996 Private ASNs
    65535,                  # RFC 7300 Last 16 bit ASN
    65536..65551,           # RFC 5398 and documentation/example ASNs
    65552..131071,          # RFC IANA reserved ASNs
    4200000000..4294967294, # RFC 6996 Private ASNs
    4294967295              # RFC 7300 Last 32 bit ASN
];</code></pre>
</blockquote>
<p>Yes, this includes 65500. I can’t see your <code>is_bogon()</code>
function definition though so I can’t help you more.</p>
<p>Hoping that this helps.</p>
<p>Maria</p>
<p>– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</p>
</div>

</div></blockquote></div>