Skip to content

Latest commit

 

History

History
executable file
·
186 lines (145 loc) · 7.91 KB

README-02.md

File metadata and controls

executable file
·
186 lines (145 loc) · 7.91 KB

Here is the quickstart video clip.

TopoViewer - Quickstart video clip

How-to guides

  • See node Properties

    Simply click the node
  • See link Properties

    Simply click the node
  • Get to the node console

    web console
    terminal console
  • Packet capture

    Wireshark Client Helper

    There are two type of suported client here, Windows version and MAC version, both of the clients can be find in "Setting Menu, TopoViewer Helper App". Once the Wireshark client helper installed, simply click Cross Launch Button in link Properties.

    Using Windows version of Wireshark Client Helper:

    • Download and install the Windows version of Wireshark Client Helper.
    • Ensure PowerShell installed in Windows client side
    • Ensure the Wireshark is installed in client side, from client side, otherwise the password need tobe entered manually
    • Setup SSH keyless access to ContainerLab host
    • Copy clabcapture.bat and clab-capture.reg into C:\Program Files\clab-client
    • Merge clab-capture.reg into Windows Registry, simply double click it.

    Using MAC version of Wireshark Client Helper:

    • Download and install the MAC version of Wireshark Client Help, extract and copy the app into /Applications folder
    • Ensure iTerm installed in MAC client side
    • Ensure the Wireshark is installed in client side.
    • Setup SSH keyless access to ContainerLab host from client side, otherwise the password need tobe entered manually
    • From link properties, click Capture Source/Target Endpoint cross-launch button

  • Link impairment

Tested Environment

  • containerlab version: 0.41.2, 0.44.3, 0.46.0
  • docker-ce version: 24.0.2

Build TopoViewer Binary - Linux

build linux amd64 binary

vscode ➜ /workspaces/topoViewer (development) $ GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o topoviewer cloudshellwrap
per/cmd/main.go 

Run TopoViewer Binary

Ensure to run binary file in the same directory with html folder Running inside dist folder

vscode ➜ /workspaces/topoViewer/dist (development ✗) $ ./topoviewer clab -t topo-topoViewerDemo.yaml  

Create Distribution Folder

vscode ➜ /workspaces/topoViewer (development ✗) $ ./tools/dist.sh 

Run TopoViewer Code

vscode ➜ /workspaces/topoViewer (development ✗) go run go_cloudshellwrapper/cmd/main.go clab --allowed-hostnames 149.204.21.68 --clab-user aarafat  --server-port 8087 --topology-file-json ./rawTopoFile/clab/nokia-MultiAccessGateway-lab/clab-nokia-MAGc-lab/topology-data.json 

Run TopoViewer Binary

 [aarafat@nsp-clab1 topoViewer]$ sudo topoviewer clab --allowed-hostnames 149.204.21.68 --clab-user aarafat  --server-port 8087 --topology-file-json /home/aarafat/topoViewer/rawTopoFile/clab/nokia-MultiAccessGateway-lab/clab-nokia-MAGc-lab/topology-data.json

Run CloudshellWrapper Go Code

vscode ➜ /workspaces/topoViewer (development) $ pwd
/workspaces/topoViewer
vscode ➜ /workspaces/topoViewer (development) $ go run go_cloudshellwrapper/cmd/main.go --help
vscode ➜ /workspaces/topoViewer (development) $ go run go_cloudshellwrapper/cmd/main.go clab -H 138.203.40.63 -t rawTopoFile/clab-topo-file.yaml ## obsolete
vscode ➜ /workspaces/topoViewer (development) $ go run go_cloudshellwrapper/cmd/main.go clab -j rawTopoFile/clab-Vodafone-CO-HCO/topology-data.json   -H 138.203.
40.63 -u suuser ## obsolete
vscode ➜ /workspaces/topoViewer (development) $ go run go_cloudshellwrapper/cmd/main.go clab -j rawTopoFile/clab/bng-cups/clab-cups/topology-data.json   -H 138.2
03.40.63 -u root

138.203.26.59

vscode ➜ /workspaces/topoViewer (development ✗) $≈nsp  -H 138.203.40.63 --topology-ietf-l2-topo  rawTopoFile/topo-ietf-L2
.json --topology-ietf-l3-topo rawTopoFile/topo-ietf-L3-TopologyId-1\:65000\:1-isis.json --multi-layer enabled

Build TopoViewer Binary - Linux

build linux amd64 binary

vscode ➜ /workspaces/topoViewer (development) $ GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o topoviewer cloudshellwrapper/cmd/main.go 

Run TopoViewer Binary

Ensure to run binary file in the same directory with html folder Running inside dist folder

vscode ➜ /workspaces/topoViewer/dist (development ✗) $ ./topoviewer clab -t topo-topoViewerDemo.yaml  

Create Distribution Folder

vscode ➜ /workspaces/topoViewer (development ✗) $ ./tools/dist.sh 

BNG-CUPS

BNG-CUPS Deploy CLAB

[suuser@nsp-kvm-host-antwerp bng-cups]$ sudo clab deploy -t cups.yml --debug --export-template /home/suuser/topoViewer/rawTopoFile/clab-topo-export-template/c lab-topo-cytoscape.tmpl

NSP IETF L2 run topoViewer

[root@kvm-host-antwerp02 topoViewer]# go run cloudshellwrapper/cmd/main.go nsp -H 138.203.26.59 --topology-ietf-l2-topo rawTopoFile/ietf-topo-examples/ietf-L2 .json --multi-layer disable

BNG-CUPS run topoViewer inside docker

docker exec -it clab-nokia-MAGc-lab-topoviewer /opt/topoviewer/topoviewer clab -H 138.203.26.59 -P 8080 -u suuser -p Lab-Her0 -j local-bind/topo-file.json

Run TopoViewer Code

go run go_cloudshellwrapper/cmd/main.go clab --allowed-hostnames 149.204.21.68 --clab-user aarafat  --server-port 8087 --topology-file-json ./rawTopoFile/clab/nokia-MultiAccessGateway-lab/clab-nokia-MAGc-lab/topology-data.json 

vscode ➜ /workspaces/topoViewer/dist (development ✗) $ ./topoviewer clab -t topo-topoViewerDemo.yaml  
			<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
			<script src="https://unpkg.com/[email protected]/WebCola/cola.min.js"></script>
			<script src="https://unpkg.com/[email protected]/dist/umd/popper.js"></script>
			<script src="https://unpkg.com/[email protected]/dist/tippy.all.js"></script>
			<script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.19.0/cytoscape.min.js"></script>
			<script src="https://unpkg.com/[email protected]/cytoscape-cola.js"></script>
			<script src="https://unpkg.com/[email protected]/cytoscape-popper.js"></script>
			<script src="https://cdn.jsdelivr.net/npm/[email protected]/cytoscape-grid-guide.min.js"></script>
			<!-- Cytoscape Edgehandles plugin CDN -->
			<script src="https://cdn.jsdelivr.net/npm/cytoscape-edgehandles/cytoscape-edgehandles.min.js"></script>
			<script src="js/dev.js?ver=1"></script>
			<script src="https://cdn.jsdelivr.net/npm/[email protected]/min/vs/loader.js"></script>
			<script src="/js/backupRestore.js?ver=1"></script>
			<script src="/js/clabEditor.js?ver=1"></script>
			<script src="/js/common.js?ver=1"></script>