Exa-Networks / exabgp

The BGP swiss army knife of networking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ExaBGP service failed

thomaspreilly opened this issue · comments

We are experiencing BGP flaps between our Ubuntu Server hosting exabgp, and our Cisco Router.
We have narrowing this down to an issue with the exabgp service running on the Server.
When the exabgp service is restarted, the services are running with the following messages:

● exabgp.service - ExaBGP
Loaded: loaded (/lib/systemd/system/exabgp.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2022-08-24 14:42:33 UTC; 32s ago
Docs: man:exabgp(1)
man:exabgp.conf(5)
https://github.com/Exa-Networks/exabgp/wiki
Main PID: 3653 (exabgp)
Tasks: 3 (limit: 2314)
CGroup: /system.slice/exabgp.service
├─3653 /usr/bin/python3 /usr/sbin/exabgp /etc/exabgp/exabgp.conf
├─3671 /usr/bin/php /opt/voipbl/src/voipbl.php voipbl-unicast.conf
└─3690 python2 ./etc/exabgp/blocklists_simple.py

Aug 24 14:43:04 BL-SERVER exabgp[3653]: fetch()
Aug 24 14:43:04 BL-SERVER exabgp[3653]: File "./etc/exabgp/blocklists_simple.py", line 39, in fetch
Aug 24 14:43:04 BL-SERVER exabgp[3653]: a.add(makeprefix(linefilter(line)))
Aug 24 14:43:04 BL-SERVER exabgp[3653]: File "./etc/exabgp/blocklists_simple.py", line 29, in makeprefix
Aug 24 14:43:04 BL-SERVER exabgp[3653]: net = IP(ip, make_net=True)
Aug 24 14:43:04 BL-SERVER exabgp[3653]: File "/usr/lib/python2.7/dist-packages/IPy.py", line 246, in init
Aug 24 14:43:04 BL-SERVER exabgp[3653]: (self.ip, parsedVersion) = parseAddress(ip)
Aug 24 14:43:04 BL-SERVER exabgp[3653]: File "/usr/lib/python2.7/dist-packages/IPy.py", line 1431, in parseAddress
Aug 24 14:43:04 BL-SERVER exabgp[3653]: raise ValueError("IP Address format was invalid: %s" % ipstr)
Aug 24 14:43:04 BL-SERVER exabgp[3653]: ValueError: IP Address format was invalid: You

However after around 30 seconds, the service fails on the Server, with the following:
● exabgp.service - ExaBGP
Loaded: loaded (/lib/systemd/system/exabgp.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-08-24 14:43:57 UTC; 18s ago
Docs: man:exabgp(1)
man:exabgp.conf(5)
https://github.com/Exa-Networks/exabgp/wiki
Process: 3653 ExecStart=/usr/sbin/exabgp /etc/exabgp/exabgp.conf (code=exited, status=1/FAILURE)
Main PID: 3653 (code=exited, status=1/FAILURE)

Aug 24 14:43:57 BL-SERVER exabgp[3653]: File "/usr/lib/python2.7/dist-packages/IPy.py", line 246, in init
Aug 24 14:43:57 BL-SERVER exabgp[3653]: (self.ip, parsedVersion) = parseAddress(ip)
Aug 24 14:43:57 BL-SERVER exabgp[3653]: File "/usr/lib/python2.7/dist-packages/IPy.py", line 1431, in parseAddress
Aug 24 14:43:57 BL-SERVER exabgp[3653]: raise ValueError("IP Address format was invalid: %s" % ipstr)
Aug 24 14:43:57 BL-SERVER exabgp[3653]: ValueError: IP Address format was invalid: You
Aug 24 14:43:57 BL-SERVER exabgp[3653]: 14:43:57 | 3653 | process | Too many death for droproutes (5) terminating program
Aug 24 14:43:57 BL-SERVER exabgp[3653]: 14:43:57 | 3653 | reactor | Problem when sending message(s) to helper program, stopping
Aug 24 14:43:57 BL-SERVER exabgp[3653]: 14:43:57 | 3653 | reactor | performing shutdown
Aug 24 14:43:57 BL-SERVER systemd[1]: exabgp.service: Main process exited, code=exited, status=1/FAILURE
Aug 24 14:43:57 BL-SERVER systemd[1]: exabgp.service: Failed with result 'exit-code'.

Can you help me decode what's going wrong please?
Thanks,
Tom

While the issue is reported by ExaBGP, it has nothing to do with ExaBGP, the issue comes from the code your team wrote within the file ./etc/exabgp/blocklists_simple.py.

The data source, a list of IP addresses (it seems), seems to be fetched from the network (guessing from the function name fetch) and has the word "You" somewhere - which is not an IP. Good luck figuring out the problem.

ValueError: IP Address format was invalid: You.