{"id":23757100,"url":"https://github.com/mmitch/bgpgraph","last_synced_at":"2025-09-05T04:31:28.100Z","repository":{"id":138318509,"uuid":"1473973","full_name":"mmitch/bgpgraph","owner":"mmitch","description":"graph BGP network and routing information from Bird and Quagga/vtysh","archived":false,"fork":false,"pushed_at":"2025-08-14T07:25:27.000Z","size":38,"stargazers_count":17,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-14T09:26:13.811Z","etag":null,"topics":["bgp","bird","dot","graph","graphviz","network-graph","perl","quagga","vtysh"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmitch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-03-13T08:37:58.000Z","updated_at":"2025-08-14T07:25:28.000Z","dependencies_parsed_at":"2023-12-17T21:44:19.202Z","dependency_job_id":null,"html_url":"https://github.com/mmitch/bgpgraph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mmitch/bgpgraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fbgpgraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fbgpgraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fbgpgraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fbgpgraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmitch","download_url":"https://codeload.github.com/mmitch/bgpgraph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fbgpgraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273713254,"owners_count":25154606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bgp","bird","dot","graph","graphviz","network-graph","perl","quagga","vtysh"],"created_at":"2024-12-31T19:37:48.488Z","updated_at":"2025-09-05T04:31:23.086Z","avatar_url":"https://github.com/mmitch.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"bgpgraph - print a network graph of routing information\n=======================================================\n\n[![Build status](https://github.com/mmitch/bgpgraph/workflows/Tests/badge.svg)](https://github.com/mmitch/bgpgraph/actions?query=workflow%3ATests)\n[![GPL 3+](https://img.shields.io/badge/license-GPL%203%2B-blue.svg)](http://www.gnu.org/licenses/gpl-3.0-standalone.html)\n\n\nlicense/copyright\n-----------------\n\nCopyright (C) 2011, 2014, 2015, 2018 Christian Garbs \u003cmitch@cgarbs.de\u003e  \nLicensed under GNU GPL 3 or later.\n\nbgpgraph is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nbgpgraph is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with bgpgraph.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n\nproject homepage\n----------------\n\n  https://github.com/mmitch/bgpgraph\n\n\ndependencies\n------------\n\n- ``vtysh`` from the [quagga](https://www.quagga.net/) package\n- ``dot`` from the [GraphViz](https://www.graphviz.org/) package\n\n\nusage\n-----\n\nRun\n\n```shell\nvtysh -c 'show ip bgp' | vtysh_bgp_to_dot 1234 | dot -Tpng \u003e graph.png\n```\n\nto generate a graph, where ``1234`` is your local AS and ``graph.png``\nwill be the generated graph.  You need read-access with ``vtysh``, of\ncourse.\n\n\n### excluding the local node from the graph\n\nIf you pass no local AS to ``vtysh_bgp_to_dot``, the local node will\nnot be included in the generated graph:\n\n```shell\nvtysh -c 'show ip bgp' | vtysh_bgp_to_dot | dot -Tpng \u003e graph_without_local_node.png\n```\n\n\n### add information to the nodes in the graph\n\nIf there is an ``info.conf`` in your current directory, it will be\nread to spice up the graph.  The format of ``info.conf`` is whitespace\ndelimited fields:\n\n- First field contains an AS number.\n- Second field contains a name describing the AS.\n- Third field optionally contains a flag for marking a node in the output.\n\n\n#### example ``info.conf``\n\n```\n60001  this_is_me\n60002  Network_A\n60003  Network_B  important\n60004  Network_C\n```\n\nThis configuration will add labels to the graph nodes 60001 to 60004\nand mark the node 60003 as important.\n\n\n### add status information to the graph\n\nIf you want to add additional information to the generated graph, you\ncould use ``convert`` from the [Imagemagick](http://imagemagick.org/)\npackage like this:\n\n```shell\nvtysh -c 'show ip bgp' | ./vtysh_bgp_to_dot 60001 | dot -Tpng | \\\nconvert - \\\n        -gravity Southwest -background white -splice 0x25 \\\n        -annotate +0+2 \"  `hostname -f` - `date`  \" graph.png\n```\n\nThis will add a status text to the bottom of the graph containing the\nhostname and the current date.\n\n\n### remote operation\n\nAs ``vtysh_bgp_to_dot`` reads from stdin, it does not need to be\ninstalled on your router.\n\nIf you have SSH access to the router, you can execute ``vtysh``\nremotely and execute everything else locally like this:\n\n```shell\nssh user@router 'vtysh -c \"show ip bgp\"' | vtysh_bgp_to_dot | ...\n```\n\nYou can use the ``command=`` setting in ``~/.ssh/authorized_keys`` to\nenable key-based login without password while restricting access to\nthe ``vtysh`` command.\n\nInstead of SSH you could also use ``netcat`` and ``(x)inetd`` or a\ncronjob plus some sort of network file exchange or even send the\n``vtysh`` output by email and process it with ``procmail`` or\n``maildrop``.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmitch%2Fbgpgraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmitch%2Fbgpgraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmitch%2Fbgpgraph/lists"}