Show My Network State

Read the github page first!

Download the jar showMyNS_v0.3.3.jar ... now with JSON output!

What's the goal of "Show My Network State" ?

The goal of the "Show My Network State" application is to graphically display the virtual/physical network topology inside a single host.

You can see additional info by moving the mouse over the network elements and waiting for the tooltip to appear.

Press F5 to refresh the graph or to save the layout. The position of graph elements is saved in a file named .showmynslayout; the network info is retrieved by parsing the bash commands output.

UPDATE (19-03-2016)

Jiri Benc wrote a wonderful application called plotnetcfg. It has no runtime dependencies and support multiple frontends. Have a look!

UPDATE (11-5-2015)

The JSON output format is finally available!

Instead of only having a graphical tool, now "Show My Network State" can give information in a machine readable form, that can be parsed by other programs.

UPDATE (5-11-2014)

I've added on slideshare some slides explaining basic and advanced concepts about OpenStack virtual network infrastructure, with pictures taken with "Show My Network State" tool . Have a look!

UPDATE (4-3-2014)

OVS ports now show vlan trunking/access. The application has not "sudo" hardcoded any more, and now the permissions must be given by the user at the invocation of the java interpreter.

UPDATE (11-2-2014)

I've added a popup menu with some basic functionality.

Some execution tips

I usually run it via ssh with X forwarding with the hosts that are in my LAN, so the connection is good. However if you want to run it using a remote machine through the Internet you may experience an exaggerated lag. No workaround exists, but a future version of this application is planned to use a web interface as a frontend, or to use it in "batch mode", returning a network information file that can be later visualized.

You can use this commands:

user@laptop:~$ ssh -X user@host

user@host:~$ wget --content-disposition https://sites.google.com/site/showmynetworkstate/showMy1.jar

user@host:~$ sudo java -jar showMy1.jar

user@host:~$ sudo nohup java -jar showMy1.jar & disown %1 #alternative command: this allows you to continue using your current ssh remote terminal session (but you will not be able to see the bash commands that are printed in STDOUT by the application)

user@laptop:~$ ssh -tX user@gateway-host ssh -X user@controller sudo java -jar showMy1.jar #this allows you to do double X forwarding (for example if your host is behind a gateway).

Some sample network topologies: