Skip to content
This repository has been archived by the owner on Jun 27, 2020. It is now read-only.

Search feature #14

Open
acoul opened this issue Sep 27, 2016 · 11 comments
Open

Search feature #14

acoul opened this issue Sep 27, 2016 · 11 comments

Comments

@acoul
Copy link
Contributor

acoul commented Sep 27, 2016

is it possible to have a search feature, menu ?

it would be great to be able to select a specific node and also be able to set the depth of the next hops for each link to be solely displayed

something similar perhaps to http://bgpmap.ozo.com/?nodeID=3298

@nemesifier
Copy link
Member

I can't see that URL, you linked an hostname that is not public but used inside the AWMN network.

@acoul
Copy link
Contributor Author

acoul commented Sep 28, 2016

sorry about that, fixed the above link.

@nemesifier nemesifier changed the title search feature Search feature May 30, 2017
@acoul
Copy link
Contributor Author

acoul commented Jul 15, 2017

bumping this request with the following wishlist extra features:

1). select links by status: display only up or down links
2). when selecting a node, in the menu, additional display up & down links for that node
3). selecting a link, up or down, display the uptime/downtime

real time django-netjsongraph for AWMN here: http://nmsbgp.ozo.com/

@nemesifier
Copy link
Member

@acoul, thanks for sending your feedback! Unfortunately I can't see the link you posted, I get an internal server error.

Regarding 3), to display uptime/downtime we should start collecting this information somehow.
This can become a separate issue.

Regarding 2), which menu?

Regarding 1), you mean you want to be able to do this in the visualizer, right?

Bytheway: in general I think it's better to open one issue for each request.

We are working to improve this app and the visualizer (https://github.com/netjson/netjsongraph.js), but I can't say when we'll be able to address these issues.

Can you or someone of your community help out with contributions and patches?

@acoul
Copy link
Contributor Author

acoul commented Jul 17, 2017

Fixed the internal server error issue, you may now hopefully see it in action. It's a bit messy since it's trying to graph a big BGP network.

Regarding 2), when selecting a node, I mean the little display window that pops up on the upper right corner

Regarding 1), yes

as far as AWMN community, we are talking about a quite old community (15+ years) and we are going through a 4th generation participants who unfortunately lack the enthusiasm and commitment of the AWMN original pioneers.

Regards from the sunny Athens, Greece

@nemesifier
Copy link
Member

I've seen it in action, pretty impressive. You may benefit of the work we are doing in the next version of the visualizer (netjsongraph.js) because we are refactoring the javascript code to use canvas instead of SVG which is better suited for graphs with lots of points and lines.

For 1) I think we have to come up with some kind of filtering mechanism in the netjsongraph.js library.

For 2) also something may be needed to be done in netjsongraph.js before being able to implement it properly.

Regarding 3), could you open a separate issue on this repository please? That's doable and I may try to implement it in my free time in the coming weeks.

Regarding AWMN, I know the community, I've been to the battlemesh in Athens in 2012 :-). Glad to see the community is still alive and kicking, I know how hard it is to find contributors in this type of community. Let's keep in touch and if you find anybody interested in helping us out we will be here!

@nemesifier
Copy link
Member

@acoul PS: how did you convert the BGP network to NetJSON? If you wrote some software we could include it in netdiff (the library we are using in this app to convert OLSRd/Batman/etc to NetJSON)

@acoul
Copy link
Contributor Author

acoul commented Jul 18, 2017

Regarding 3), I opened a new ticket #43

for converting BGP network to NetJSON I used this handy tool: aspath_graph

@nemesifier
Copy link
Member

@acoul great to know you used @coxley's tool!

I suppose you are converting the BGP data to NetJSON and storing the NetJSON on some file and then feeding data file into this app. Is my supposition correct?

I ask this because I think that without too much effort we could add this mechanism so is available out of the box.

@acoul
Copy link
Contributor Author

acoul commented Jul 18, 2017

In order to have a better, more reliable view of the network, we created a so-called SupperQuagga. A passive BGP collector that multihop connects to 100+ different BGP speakers from all around the network.

after a bit of trial & error, here is the hackish script that generates a NetJSON output that makes django-netjsongraph happy :

vtysh -c "sh ip bgp 10.0.0.0/8 long" | cut -c 62-900 | grep " i" | awk -F " i" '{printf $1"\n"}' | awk 'NF > 1 && NF < 24' > /tmp/awmn-bgp-all
cat /tmp/awmn-bgp-all | tr ' ' '\n' | sort -n | uniq > /tmp/awmn-full-uniq-as
rm -f /tmp/awmn-tottal-full-links
for i in cat /tmp/awmn-full-uniq-as
do
    grep " $i | $i$" /tmp/awmn-bgp-all | awk -v FS=" ${i} | ${i}$" 'NF > 1 {print $1}' | awk -F " " '{printf $NF"\n"}' | grep -vw $i | grep . | sort -n | uniq > /tmp/as-tmp
    grep "^$i | $i " /tmp/awmn-bgp-all | awk -v FS="^${i} | ${i} " 'NF > 1 {print $2}' | awk -F " " '{printf $1"\n"}' | grep -vw $i | grep . | sort -n | uniq >> /tmp/as-tmp
    cat /tmp/as-tmp | sort -n | uniq | awk -v var="$i" '{printf var" "$0"\n"}' >> /tmp/awmn-tottal-full-links
done
rm -f /tmp/awmn-bgp-all /tmp/awmn-full-uniq-as /tmp/as-tmp
aspath_graph -m txt --pprint --yaml /opt/lg-bin/config-awmn-new.yaml -o /var/www/ozo.com/htdocs/cacti//awmn.json /tmp/awmn-tottal-full-links
cd /var/www/ozo.com/htdocs/cacti/birdlg/nmsbgp
./manage.py update_topology

and here is the NetJSON output: http://spq.ozo.com/awmn.json

@nemesifier
Copy link
Member

@acoul impressive work, thanks for sharing it. I think you guys should talk more about your work so other community networks can find out and reuse what you do because it's great stuff.
I think over time with more work we'll be able to make the process you are using to collect the BGP graph easier.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants