Guest User!

You are not Sophos Staff.

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

4 Byte AS Number Support for BGP

I am configuring BGP on a Sophos XG Firewall (18.5.2 MR-2-Build380). 

Our ISP has assigned a 4 Byte AS Number.  For the purpose of this discussion, let's say it's 4000012345  (Binary: 1110 1110 0110 1011 0101 1000 0011 1001 )

The issue I'm having is that when I enter this AS number (or any AS number upward of 2147483648) into the BGP configuration as a local-as, the XG always changes the AS number to 2147483647 (Binary: 0111 1111 1111 1111 1111 1111 1111 1111)

eg.  # neighbor x.x.x.x local-as 4000012345

# do show run

The command is shown in the config as:

neighbor x.x.x.x local-as 2147483647

So it appears that the AS number variable has been declared as a signed 32 bit integer when it should be an unsigned 32 bit integer.  This is causing the XG unit to effectively only support 31 bit AS numbers, as the 32nd bit is interpreted as a negation bit.  Any AS number greater than 2147483648 is reduced to the maximum value that can be expressed with only 31 bits: 2147483647.

As an experiment, I tried entering the equivalent signed 32 bit integer value as negative number to see if it would be accepted, but this did not work.  I would be still be wary of it even if it did.

Any chance of a new firmware or hot-fix to address this issue?  I'm aware that 18.5.2 MR-3 is available but I don't see anything about the issue above in the release notes, so I assume it has not been addressed. 



This thread was automatically locked due to age.
Parents
  • I have managed to implement a work-around for this issue.

    Fortunately, our other AS number is a local legacy 16bit AS number, so I have swapped the AS numbers between the BGP instance and the local-as directive.

    eg. 
    Original config:
    router bgp 65001
       ...
       neighbor x.x.x.x local-as 4000012345   <This does not work>
       ...

    Work-around config:
    router bgp 4000012345   <This works>
       ...
       neighbor x.x.x.x local-as 65001
       ...

    Note that we're only able to use this work-around because we have a legacy 16 bit AS number.  If we wanted to set up parallel BGP sessions using two or more 32 bit AS numbers greater than 2147483648, then we would not be able to complete the config until we received a fix for this issue.

Reply
  • I have managed to implement a work-around for this issue.

    Fortunately, our other AS number is a local legacy 16bit AS number, so I have swapped the AS numbers between the BGP instance and the local-as directive.

    eg. 
    Original config:
    router bgp 65001
       ...
       neighbor x.x.x.x local-as 4000012345   <This does not work>
       ...

    Work-around config:
    router bgp 4000012345   <This works>
       ...
       neighbor x.x.x.x local-as 65001
       ...

    Note that we're only able to use this work-around because we have a legacy 16 bit AS number.  If we wanted to set up parallel BGP sessions using two or more 32 bit AS numbers greater than 2147483648, then we would not be able to complete the config until we received a fix for this issue.

Children
No Data
Share Feedback
×

Submitted a Tech Support Case lately from the Support Portal?