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