These are chat archives for Exa-Networks/exabgp

23rd
Feb 2016
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:05
Hi, folks!
Thomas, could you suggest some way to dump received flow spec announces in log file in debug mode?
I've just receiving: exabgp: 1088 wire session 1 outgoing 10.0.3.9 / 10.0.3.115 RECEIVED ( 99) 0000 0024 4002 0040 0504 0000 0064 4001 0102 800E 1300 0185 0000 0D03 8111 0118 0A00 0002 1814 0000
But I want more information for debugging purposes...
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:14
Use the run command with json raw ?
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:20
I need something deeper...
because Wireshark could parse this announce
but ExaBGP could not
run command with json output haven't saw anything
From my point of view exabgp could not parse this announce correctly because it's not well crafted (but Wireshark could)
and trying to find where ExaBGP could write components are not sent in the right order :)
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:29
ok - I am now on a computer ...
I will look at this payload
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:30
Perfect!
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:30
./sbin/exabgp qa/conf/flow.conf --decode "0000 0024 4002 0040 0504 0000 0064 4001 0102 800E 1300 0185 0000 0D03 8111 0118 0A00 0002 1814 0000"
Ok indeed this is where it barfs
Notify: UPDATE message error / Invalid Network Field / components are not sent in the right order [3, 1]
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:31
but why I haven't this information in my exabgp.log even with debug mode ? :(
I could reproduce it with my latest exabgp
sbin/exabgp qa/conf/flow.conf --decode "0000 0024 4002 0040 0504 0000 0064 4001 0102 800E 1300 0185 0000 0D03 8111 0118 0A00 0002 1814 0000" 2>&1|tail -n 5
Tue, 23 Feb 2016 21:32:18 | INFO | 1358 | parser | return cls.registered_nlri[key].unpack_nlri(afi,safi,data,action,addpath)
Tue, 23 Feb 2016 21:32:18 | INFO | 1358 | parser | File "/usr/src/exabgp/lib/exabgp/bgp/message/update/nlri/flow.py", line 637, in unpack_nlri
Tue, 23 Feb 2016 21:32:18 | INFO | 1358 | parser | raise Notify(3,10,'components are not sent in the right order %s' % seen)
Tue, 23 Feb 2016 21:32:18 | INFO | 1358 | parser | Notify: UPDATE message error / Invalid Network Field / components are not sent in the right order [3, 1]
Tue, 23 Feb 2016 21:32:18 | INFO | 1358 | parser |
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:32
removing this check
Tue, 23 Feb 2016 18:32:20 | INFO | 3404 | parser | decoded update 1 flow destination-ipv4 10.0.0.0/24 source-ipv4 20.0.0.0/24 protocol =udp origin incomplete local-preference 100
Tue, 23 Feb 2016 18:32:20 | INFO | 3404 | parser | update json { "exabgp": "3.5.0", "time": 1456252340, "host" : "ptr-34.212.219.82.rev.exa.net.uk", "pid" : 3404, "ppid" : 52347, "counter": 1, "type": "update", "neighbor": { "address": { "local": "127.0.0.1", "peer": "127.0.0.1" }, "asn": { "local": "1", "peer": "1" }, "direction": "in", "message": { "update": { "attribute": { "origin": "incomplete", "local-preference": 100 }, "announce": { "ipv4 flow": { "no-nexthop": { "flow-11": { "destination-ipv4": [ "10.0.0.0/24" ], "source-ipv4": [ "20.0.0.0/24" ], "protocol": [ "=udp" ], "string": "flow destination-ipv4 10.0.0.0/24 source-ipv4 20.0.0.0/24 protocol =udp" } } } } } } } }
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:33
I'm not sure about it. Standard require strict order.
and my bgp damon violates standard this way
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:34
"Flow specification components must follow strict type ordering. A
given component type may or may not be present in the specification,
but if present, it MUST precede any component of higher numeric type
value."
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:35
Yep, definitely!
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:35
Wireshark is being nicer to you :-)
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:36
haha, I will fill bug report to they definitely!
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:36
No point - people do want to know what is inside - for them the order does not matter
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:36
broken order for multiple ports with complicated comparison logic (gt, lt, eq) will broke Whole Internet in case os broken order.
yep, I'm agree. But they definitely should add some notification about broken order ;)
But actually. Why I haven't this error message with --debug?
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:38
regarding the missing log .. hum, this should be there.
Unless I ‘eat’ the raise by accident in the code - I need to look - but my family is back home so it will have to wait
would you mind, please, opening a ticket for me to not forget to look into it ?
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:39
sure! thanks a lot for your help!
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:39
no issue - you are writing your own flowspec ?
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:40
I'm trying to run ExaBGP together with GoBGP and found ugly bug in GoBGP's flow spec crafter.
And yes, I have custom code which craft / read flow spec messages. But it's not yet daemon - just message parser :)
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:41
:smile:
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:43
We need more BGP daemons :)
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:43
LOL - Sorry I done my bit :-)
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:45
recently I visited CF at London and they like ExaBGP so much :)
Thomas Mangin
@thomas-mangin
Feb 23 2016 18:46
Nice to know that did three things right in my life : ExaBGP, my son and marrying my wife :-p
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:46
=)
you do all things right way!
thomas-mangin @thomas-mangin ego exploded
Pavel Odintsov
@pavel-odintsov
Feb 23 2016 18:53
it's very hard to underestimate your contribution to open source routing, really
but with exabgp we could write new bgp implementations in weeks instead of years
that's great
Filled issue Exa-Networks/exabgp#379
Thomas Mangin
@thomas-mangin
Feb 23 2016 19:00
Thank you
I think you should not underestimate yours neither