Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config of AS112 with bird2 rejects advertisements from a route server #804

Open
frankhabicht opened this issue May 20, 2022 · 0 comments
Open

Comments

@frankhabicht
Copy link

ISSUE TYPE

Bug Report

OS

Ubuntu 20.04.4 LTS

VERSION
define( 'APPLICATION_VERSION', '6.0.0' );
define( 'APPLICATION_VERDATE', '2021071400' );
ENVIRONMENT

PHP 8.0.16 (cli) (built: Feb 21 2022 14:42:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies


ii  libapache2-mod-php8.0                 8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  php-common                            2:75                                                                 all          Common files for PHP packages
ii  php-composer-ca-bundle                1.2.6-1                                                              all          utility library to find a path to the system CA bundle
ii  php-composer-semver                   1.5.1-1                                                              all          utilities, version constraint parsing and validation
ii  php-composer-spdx-licenses            1.5.3-1                                                              all          SPDX licenses list and validation library
ii  php-composer-xdebug-handler           1.4.0-1                                                              all          Restarts a process without Xdebug
ii  php-json-schema                       5.2.9-1                                                              all          implementation of JSON schema
ii  php-pear                              1:1.10.9+submodules+notgz-1ubuntu0.20.04.3                           all          PEAR Base System
ii  php-psr-container                     1.0.0-2                                                              all          Common Container Interface (PHP FIG PSR-11)
ii  php-psr-log                           1.1.2-1                                                              all          common interface for logging libraries
ii  php-symfony-console                   4.3.8+dfsg-1ubuntu1                                                  all          run tasks from the command line
ii  php-symfony-filesystem                4.3.8+dfsg-1ubuntu1                                                  all          basic filesystem utilities
ii  php-symfony-finder                    4.3.8+dfsg-1ubuntu1                                                  all          find files and directories
ii  php-symfony-process                   4.3.8+dfsg-1ubuntu1                                                  all          execute commands in sub-processes
ii  php-symfony-service-contracts         1.1.8-1                                                              all          Generic abstractions related to writing services
ii  php8.0                                8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                all          server-side, HTML-embedded scripting language (metapackage)
ii  php8.0-bcmath                         8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        Bcmath module for PHP
ii  php8.0-cgi                            8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        server-side, HTML-embedded scripting language (CGI binary)
ii  php8.0-cli                            8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        command-line interpreter for the PHP scripting language
ii  php8.0-common                         8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        documentation, examples and common module for PHP
ii  php8.0-curl                           8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        CURL module for PHP
ii  php8.0-gd                             8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        GD module for PHP
ii  php8.0-igbinary                       3.2.6+2.0.8-6+ubuntu20.04.1+deb.sury.org+10                          amd64        igbinary PHP serializer
ii  php8.0-intl                           8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        Internationalisation module for PHP
ii  php8.0-mbstring                       8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        MBSTRING module for PHP
ii  php8.0-memcache                       8.0+4.0.5.2+3.0.9~20170802.e702b5f9+-7+ubuntu20.04.1+deb.sury.org+10 amd64        memcache extension module for PHP
ii  php8.0-memcached                      3.1.5+2.2.0-14+ubuntu20.04.1+deb.sury.org+10                         amd64        memcached extension module for PHP, uses libmemcached
ii  php8.0-msgpack                        2.2.0~rc1+2.1.2+0.5.7-6+ubuntu20.04.1+deb.sury.org+10                amd64        PHP extension for interfacing with MessagePack
ii  php8.0-mysql                          8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        MySQL module for PHP
ii  php8.0-opcache                        8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        Zend OpCache module for PHP
ii  php8.0-readline                       8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        readline module for PHP
ii  php8.0-snmp                           8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        SNMP module for PHP
ii  php8.0-xml                            8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        DOM, SimpleXML, XML, and XSL module for PHP
ii  php8.0-zip                            8.0.16-1+ubuntu20.04.1+deb.sury.org+1                                amd64        Zip module for PHP
CONFIGURATION
APP_DEBUG=false
APP_URL="http://ixpmanager.ix.ne.tz"
APP_TIMEZONE="UTC"
APP_LOG="single"
IXP_API_JSONEXPORTSCHEMA_PUBLIC=true
IXP_MULTIIXP_ENABLED=false
IXP_RESELLER_ENABLED=false
IXP_AS112_UI_ACTIVE=true
GRAPHER_BACKENDS="dummy"
CACHE_DRIVER=memcached
SESSION_DRIVER=file
DOCTRINE_PROXY_AUTOGENERATE=true
DOCTRINE_CACHE=memcached
DOCTRINE_CACHE_NAMESPACE=IXPMANAGERNAMESPACE
IXP_IRRDB_BGPQ3_PATH="/usr/bin/bgpq3"
IXP_FE_FRONTEND_DISABLED_LOOKING_GLASS=false
IXP_FE_FRONTEND_DISABLED_LOGO=false
IXP_FE_FRONTEND_DISABLED_FILTERED_PREFIXES=false
GRAPHER_ACCESS_TRUNK=3
GRAPHER_ACCESS_SWITCH=1
IXP_FE_LAYER2_ADDRESSES_CUST_CAN_EDIT=true
IXP_FE_LAYER2_ADDRESSES_CUST_PARAMS_MIN_ADDRESSES=1
IXP_FE_LAYER2_ADDRESSES_CUST_PARAMS_MAX_ADDRESSES=2
IXP_FE_LAYER2_ADDRESSES_EMAIL_ON_SUPERUSER_CHANGE=true
IXP_FE_LAYER2_ADDRESSES_EMAIL_ON_CUSTOMER_CHANGE=true
IXP_FE_LAYER2_ADDRESSES_EMAIL_ON_CHANGE_DEST=tech@tix.or.tz
IXP_FE_CUSTOMER_BILLING_UPDATES_NOTIFY="tech@tix.or.tz"
SUMMARY

bird2 router configuration for AS112 includes filter that rejects advertisements from route server.

STEPS TO REPRODUCE

generate AS112 router configuration for bird2

EXPECTED RESULTS

advertisements from route server to be accepted by AS112 bird2.

ACTUAL RESULTS

advertisements from route server are received but filtered (rejected) by bird2 of AS112.

confident this is caused by:
/resources/views/api/v4/router/as112/bird2/neighbors.foil.php lines 13-16

# Peer ASN == route's first ASN?
if (bgp_path.first != remote_as ) then {
    return false;
}

[which makes sense, except for filtering what we get from route servers not prepending their ASN.]
this seems to me to get unconditionally into each AS112 bird2 config.

Probably best (if available) to test there if remote_as is also different from (any?) route server ASN on the vlan...?
Don't know myself which variables are available there. :-(

quick look at bird (non-version-2) files for AS112 seems to show that this doesn't apply there, filters are much more basic, only martians.

IMPORTANCE

It is affecting in production. But we all know how important AS112 traffic is... not!

RELEVANT LOGS

[geier@as112 ~]$ birdc -s /var/run/bird/bird-as112-tix-ipv4.ctl show route protocol pb_as33791_vli50_ipv4 count
BIRD 2.0.9 ready.
0 of 169 routes for 169 networks in table master4
[geier@as112 ~]$

[geier@as112 ~]$ grep -C 2 bgp_path.first /usr/local/etc/bird/bird-as112-tix-ipv4.conf

# Peer ASN == route's first ASN?
if (bgp_path.first != remote_as ) then {
    return false;
}

[geier@as112 ~]$ grep -C 2 bgp_path.first /usr/local/etc/bird/bird-as112-tix-ipv6.conf

# Peer ASN == route's first ASN?
if (bgp_path.first != remote_as ) then {
    return false;
}

[geier@as112 ~]$

these will reject the route from a normal IXP route server which does not prepend its own ASN to the AS_PATH.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant