BGP 4-Byte AS Number

Hello David

When using a 4-byte AS number in your BGP implementations, then the regular expressions that are used for BGP must conform to the format that has been configured in the local router. For example, if the format you are using is

When using regular expressions with BGP, if you are using a 4-byte format of the ASN, then the syntax must match the configured AS notation. For example, the default notation is ASplain. In such a situation, you must use the decimal number between 0 and 4294967295 in your regular expressions.

If you have configured the device to use ASdot notation, then you must use that notation in your regular expressions. I have confirmed this in the lab. Here you see a BGP table of R1 with the AS displayed using the default ASplain notation:

R1#show ip bgp | begin Network 
     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.12.2             0             0 12000013 i

To see what regular expression will match this, we try the following show commands:

R1#show ip bgp regexp ^183.6925$
R1#show ip bgp regexp ^12000013$
BGP table version is 2, local router ID is 192.168.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.12.2             0             0 12000013 i

Note that the first show command tries to display the prefixes that correspond to the ASdot notation of the AS, but there are no results. When using the ASplain notation, we get a result.

Let’s try it the other way around. Below I have changed the notation to ASdot, and have displayed the BGP table once again. You can see that the AS number is displayed as ASdot.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#router bgp 12000012
R1(config-router)#bgp asnotation dot
R1(config-router)#exit
R1(config)#exit
R1#show ip bgp | begin Network                  
     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.12.2             0             0 183.6925 i
R1#

Now let’s try to show the prefixes with the appropriate regular expression:

R1#show ip bgp regexp ^12000013$                
R1#show ip bgp regexp ^183.6925$                
BGP table version is 2, local router ID is 192.168.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.12.2             0             0 183.6925 i
R1#

Using the ASplain notation nothing shows up, but using the configured ASdot notation, it shows up.

So the format you should use in your regular expressions for the ASNs should match the configured format in the local router. This is why your regular expression containing ^1\.1$ only matches when the ASdot notation is configured.

I hope this has been helpful!

Laz