All Projects → jonnystorm → giraphe

jonnystorm / giraphe

Licence: Unknown, MPL-2.0 licenses found Licenses found Unknown LICENSE.EX_DOC MPL-2.0 COPYING.MPL
Discover and visualize layer-2 and layer-3 network topology

Programming Languages

elixir
2628 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to giraphe

Phpipam
phpipam development repository
Stars: ✭ 1,578 (+10420%)
Mutual labels:  network-visualization, network-discovery
Scapy
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3.
Stars: ✭ 6,932 (+46113.33%)
Mutual labels:  network-visualization, network-discovery
Sigmajs
Σ sigma.js for R
Stars: ✭ 58 (+286.67%)
Mutual labels:  network-visualization
graphviz network
Creating network diagrams with Graphviz
Stars: ✭ 72 (+380%)
Mutual labels:  network-diagram
Graphlayouts
new layout algorithms for network visualizations in R
Stars: ✭ 176 (+1073.33%)
Mutual labels:  network-visualization
Pynms
A vendor-agnostic NMS for carrier-grade network simulation and automation
Stars: ✭ 73 (+386.67%)
Mutual labels:  network-visualization
Awesome Network Analysis
A curated list of awesome network analysis resources.
Stars: ✭ 2,525 (+16733.33%)
Mutual labels:  network-visualization
Gem
Stars: ✭ 1,070 (+7033.33%)
Mutual labels:  network-visualization
Netvisix
Netvisix visualizes the network packet flow between hosts
Stars: ✭ 65 (+333.33%)
Mutual labels:  network-visualization
Home-Lab
This is the network diagrams, configuration guides, and hardware used for my home lab.
Stars: ✭ 62 (+313.33%)
Mutual labels:  network-diagram
Workbase
Grakn Workbase (Knowledge IDE)
Stars: ✭ 106 (+606.67%)
Mutual labels:  network-visualization
Cytoscape.js Expand Collapse
A Cytoscape.js extension to expand/collapse nodes for better management of complexity of compound graphs
Stars: ✭ 83 (+453.33%)
Mutual labels:  network-visualization
Deepgraph
Analyze Data with Pandas-based Networks. Documentation:
Stars: ✭ 232 (+1446.67%)
Mutual labels:  network-visualization
Openwisp Network Topology
Network topology collector and visualizer. Collects network topology data from dynamic mesh routing protocols or other popular networking software like OpenVPN, allows to visualize the network graph, save daily snapshots that can be viewed in the future and more.
Stars: ✭ 67 (+346.67%)
Mutual labels:  network-visualization
MeshNetSimulator
A simulator for sketching mesh network routing strategies
Stars: ✭ 71 (+373.33%)
Mutual labels:  network-visualization
Netdiffuser
netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks
Stars: ✭ 57 (+280%)
Mutual labels:  network-visualization
Particles
A particle simulation engine based on a port of d3-force
Stars: ✭ 104 (+593.33%)
Mutual labels:  network-visualization
Ggnet
Network visualization with ggplot2
Stars: ✭ 182 (+1113.33%)
Mutual labels:  network-visualization
pep map site
🐍 Web page that visualizes the reference relation between PEPs (Python Enhancement Proposals).
Stars: ✭ 17 (+13.33%)
Mutual labels:  network-visualization
multigraph
multigraph: Plot and Manipulate Multigraphs in R
Stars: ✭ 18 (+20%)
Mutual labels:  network-visualization

Build Status

Discover and visualize layer-2 and layer-3 network topology.

See the API documentation.

Installation

To use giraphe as an escript:

  1. Install Erlang/OTP

  2. Install GraphViz

  3. Install nmap

  4. Clone the giraphe repository

git clone https://gitlab.com/jonnystorm/giraphe.git
  1. Add nmap command to sudoers
Cmnd_Alias NMAP = /usr/bin/nmap -n -oG - -sU -p *

%wheel ALL=(root) NOPASSWD: NMAP

Defaults!NMAP !requiretty
  1. Run from within the giraphe directory
$ cd giraphe
$ ./giraphe
Usage: giraphe [-qv] -c <credentials_path> -o <output_file>
               [-r <routers_file>] [-h <hosts_file>] [-i <ignore_file>]
               [-2 <gateway_ip> [<subnet_cidr>]] [-3 [<router_ip> ...]]

  -q: quiet
  -v: verbose ('-vv' is more verbose)

  -o: output file (must end in .png or .svg)
  -r: export routers to file
  -h: discover hosts and export to file (slow!)
  -i: do not discover hosts for CIDRs listed in file

  -c: Specify file containing credentials
    <credentials_path>: path to file containing credentials

    Valid lines in this file will look like one of the following:
      snmp v2c 'r34D0n1Y!'
      snmp v3 noAuthNoPriv 'admin'
      snmp v3 authNoPriv 'admin' md5 '$3cR3t!'
      snmp v3 authPriv 'admin' sha '$3cR3t!' aes 'pR1v473!'

  -2: generate layer-2 topology
     <gateway_ip>: IP address of target subnet gateway
    <subnet_cidr>: Specifies switch subnet to graph

  -3: generate layer-3 topology
    <router_ip>: IP address of seed target router; with no seed specified,
                 this machines's default gateway is used

To use giraphe as a library:

  1. Add giraphe to your list of dependencies in mix.exs:
def deps do
  [ {:giraphe, git: "https://gitlab.com/jonnystorm/giraphe.git"},
  ]
end
  1. Ensure giraphe is started before your application:
def application do
  [ applications: [
      :giraphe,
    ],
  ]
end

Example

L3

$ ./giraphe -c ~/creds -o ~/new-l3-diagram.png -3 198.51.100.1
Seeding targets 198.51.100.1/32
New routers discovered: R1
Next targets: 192.0.2.2/31, 198.51.100.2/32, 198.51.100.3/32

12:50:25.494 [warn]  Unable to query target '198.51.100.3/32' for object 'routes': :etimedout

12:50:31.524 [warn]  Unable to query target '198.51.100.3/32' for object 'addresses': :etimedout

12:50:37.553 [warn]  Unable to query target '198.51.100.3/32' for object 'sysname': :etimedout
New routers discovered: 192.0.2.2, R2, 198.51.100.3
Next targets: 198.51.100.4/32, 198.51.100.5/32
New routers discovered: R4, R5
Next targets: 
Done!

L2

$ ./giraphe -c ~/creds -o ~/new-l2-diagram.svg -2 192.0.2.1
Found subnet '192.0.2.0/24' for gateway '192.0.2.1/32'.
Inducing ARP entries on '192.0.2.0/24'...
Retrieving ARP entries for '192.0.2.0/24'...
Found the following hosts: 192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4, 192.0.2.5, 192.0.2.6, 192.0.2.7, 192.0.2.8

12:36:57.896 [warn]  Unable to query target '192.0.2.5/32' for object 'fdb': :etimedout

12:37:04.112 [warn]  Unable to query target '192.0.2.7/32' for object 'sysname': :etimedout

12:37:11.680 [warn]  Unable to query target '192.0.2.8/32' for object 'sysname': :snmperr_unknown_user_name
Done!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].