Exa-Networks / exabgp

The BGP swiss army knife of networking
Other
2.07k stars 443 forks source link

ExaBGP service failed #1117

Closed ghost closed 2 years ago

ghost commented 2 years ago

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

thomas-mangin commented 2 years ago

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.