Hi Alexander,

Thanks for reporting this.

You are hitting onto a (known) limitation of the LG (server / lookup), in fact in bgp_lg_daemon_ip_lookup() there is this note in the code: https://github.com/pmacct/pmacct/blob/4a70a5b41195afc904d77efa61987bcb80023512/src/bgp/bgp_lookup.c#L843

The enhancement belongs to the C part of the code. Would you have some spare cycles to code this? If so, i'd be happy to support you. If not, this would be best tracked as an Issue on GitHub so that we don't loose track of it.

Paolo


On 30/1/23 12:10, Alexander Brusilov wrote:
Hi everyone, Paolo,

I am trying to set up a Looking Glass server, everything works good, but bgp multipath. Here is part of logs:

nfacctd[13959]: INFO ( default/core ):  '--prefix=/opt/pmacct-1.7.8' '--enable-geoipv2' '--enable-jansson' '--enable-zmq' '--enable-pgsql' 'PKG_CONFIG_PATH=/usr/pgsql-14/lib/pkgconfig' '--enable-l2' '--enable-traffic-bins' '--enable-bgp-bins' '--enable-bmp-bins' '--enable-st-bins' nfacctd[13959]: INFO ( default/core ): Reading configuration file '/opt/pmacct-1.7.8/etc/nfacctd.conf'. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/sampling.map] (re)loading map. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/sampling.map] map successfully (re)loaded. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/agent_to_peer.map] (re)loading map. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/agent_to_peer.map] map successfully (re)loaded. nfacctd[13959]: INFO ( default/core/lg ): Looking Glass listening on 192.168.X.X:1791
nfacctd[13959]: INFO ( default/core/BGP ): maximum BGP peers allowed: 3
nfacctd[13959]: INFO ( default/core/BGP ): bgp_daemon_pipe_size: obtained=33554432 target=16777216. nfacctd[13959]: INFO ( default/core/BGP ): waiting for BGP data on 192.168.X.X:179
nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] BGP peers usage: 3/3
nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] Capability: MultiProtocol [1] AFI [1] SAFI [1] nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] Capability: MultiProtocol [1] AFI [2] SAFI [1] nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] Capability: 4-bytes AS [65] ASN [XX] nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] Capability: ADD-PATHs [69] AFI [1] SAFI [1] SEND_RECEIVE [2] nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] Capability: ADD-PATHs [69] AFI [2] SAFI [1] SEND_RECEIVE [2] nfacctd[13959]: INFO ( default/core/BGP ): [10.X.X.X1] BGP_OPEN: Local AS: XX Remote AS: XX HoldTime: 90 nfacctd[13959]: INFO ( nfacct_bgp_v4/pgsql ): cache entries=524288 base cache memory=214005504 bytes nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] (re)loading map. nfacctd[13959]: INFO ( nfacct_bgp_v6/pgsql ): cache entries=524288 base cache memory=214005504 bytes nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] map successfully (re)loaded. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] (re)loading map. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] map successfully (re)loaded. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] (re)loading map. nfacctd[13959]: INFO ( default/core ): [/opt/pmacct/etc/pretag.map] map successfully (re)loaded. nfacctd[13959]: INFO ( default/core ): waiting for NetFlow/IPFIX data on :::9995 nfacctd[13959]: INFO ( default/core/BGP ): *** Dumping BGP tables - START (PID: 13991 RID: 1) *** nfacctd[13959]: INFO ( default/core/BGP ): *** Dumping BGP tables - END (PID: 13991 RID: 1 TABLES: 3 ENTRIES: 3345336 ET: 53) ***

ADD-PATHs successfully negotiated and present in dump file:
$ sudo grep 'X.X.X.0/24' /opt/pmacct/var/nfacct-bgp-20230130-131675075080-10_X_X_X.json {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 1, "bgp_nexthop": "<NH1>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20} {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 3, "bgp_nexthop": "<NH2>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20} {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 5, "bgp_nexthop": "<NH3>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20} {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 4, "bgp_nexthop": "<NH4>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20} {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 2, "bgp_nexthop": "<NH5>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20} {"seq": 0, "timestamp": "1675075080", "peer_ip_src": "10.X.X.X", "peer_tcp_port": 50573, "event_type": "dump", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 6, "bgp_nexthop": "<NH6>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20}
$
But Looking Glass always response with one prefix:
$ ./pmbgp.py -g -u pmacct -p <passwd>
b'{"results": 3, "query_type": 2}'
b'{"peer_ip_src": "10.X.X.X3", "peer_id": "10.X.X.X3", "peer_tcp_port": 65164, "peer_as": <AS>}' b'{"peer_ip_src": "10.X.X.X2", "peer_id": "10.X.X.X2", "peer_tcp_port": 62339, "peer_as": <AS>}' b'{"peer_ip_src": "10.X.X.X1", "peer_id": "10.X.X.X1", "peer_tcp_port": 50573, "peer_as": <AS>}' $ ./pmbgp.py -a 91.233.216.0/24 <http://91.233.216.0/24> -r 10.X.X.X1 -u pmacct -p <passwd>
b'{"results": 1, "query_type": 1}'
b'{"peer_ip_src": "10.X.X.X1", "peer_tcp_port": 50573, "event_type": "lglass", "afi": 1, "safi": 1, "ip_prefix": "X.X.X.0/24", "as_path_id": 1, "bgp_nexthop": "<NH1>", "as_path": "<AS>", "comms": "<COMM>", "origin": "i", "local_pref": 100, "med": 20}'
$

It's pmacct/pmbgp.py limitation or I missed something? Can anyone help me, please?

_______________________________________________
pmacct-discussion mailing list
http://www.pmacct.net/#mailinglists

_______________________________________________
pmacct-discussion mailing list
http://www.pmacct.net/#mailinglists

Reply via email to