命令行下绘制网络拓扑图

简介:

Author:

陈景峰 (ㄔㄣ ㄐㄧㄥ ㄈㄥ)

Nickname:netkiller | English name: Neo chen | Nippon name: ちんけいほう (音訳) | Korean name: 천징봉 | Thailand name: ภูมิภาพภูเขา

Callsign: BG7NYT | QTH: ZONE CQ24 ITU44 ShenZhen, China

 

下面是我多年积累下来的经验整理文档供大家参考,欢迎您对我的文档提出建议和意见。

 

 

Netkiller Architect 手札 Netkiller Linux 手札 Netkiller Developer 手札 Netkiller Database 手札
Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller FreeBSD 手札 Netkiller Shell 手札
Netkiller Web 手札 Netkiller Monitoring 手札 Netkiller Storage 手札 Netkiller Mail System 手札
Netkiller MySQL 手札 Netkiller LDAP 手札 Netkiller Security 手札 Netkiller Version 手札
Netkiller Intranet 手札 Netkiller Cisco IOS 手札 Netkiller Writer 手札 Netkiller Studio Linux 手札

 

 

可以结合nmap,netcap 库等等做,自动发现,并绘制图

还可以实现ping,tracepath等到达情况显示,总之可以做很多东西。

 

neo@neo-OptiPlex-380:~/Test/Graphviz$ cat network.gv

 

digraph network {

 

ranksep=5;

ratio=auto;

 

graph [

rankdir = "LR"

];

 

node [color=lightblue, style=filled];

"idc";

subgraph firewall {

        rank = same;

        node[shape=box,color=green];

        "ASA5550-Master" [ label="ASA5550-A|SSM-4GE-INC",shape="record",style="filled",color="green" ];

        "ASA5550-Slave" [ label="ASA5550-B",shape="hexagon",style="filled",color="green" ];

        "ASA5550-Master"->"ASA5550-Slave" [label="Failover"];

        "ASA5550-Master"->idc

        "ASA5550-Slave"->idc

}

 

subgraph switch {

        rank = same;

 

        "SW4507RA" [label="Cisco Catalyst 4507R|WS-X4648-RJ45V+E|WS-X4606-X2-E|WS-X45-SUP7-E|WS-X4712-SFP+E" shape = "record"];

        "SW4507RB" [label="Cisco Catalyst 4507R" shape = "record"];

        "SW4507RA"->"SW4507RB" [label="HSRP"];

        "ASA5550-Master"->"SW4507RA" [label="1GB"];

        "ASA5550-Slave"->"SW4507RB" [label="1GB"];

 

        "SW4507RA"->O8

        "SW4507RB"->O8

 

        "O8"->O4

        "O8"->O7

        "O8"->O9

 

        "SW4507RA"->J9 [ label = "SFP+ 10G" ];

        "SW4507RA"->J10;

        "SW4507RA"->J11;

        "SW4507RA"->J12;

        "SW4507RA"->J13;

        "SW4507RA"->J14;

        "SW4507RA"->J15;

        "SW4507RA"->M12;

 

        "SW4507RB"->J9;

        "SW4507RB"->J10;

        "SW4507RB"->J11;

        "SW4507RB"->J12;

        "SW4507RB"->J13;

        "SW4507RB"->J14;

        "SW4507RB"->J15;

        "SW4507RB"->M12;

}

 

subgraph slb {

        rank = 2;

        slb1 [label="F5-Master",shape=circle];

        slb2 [label="F5-Backup",shape=circle];

        slb1->"SW4507RA";

        slb2->"SW4507RB";

        slb1->slb2 [label="VRRP"];

"10.10.0.3"    [label="cms.example.com preview.example.com publish.example.com"];

"10.10.0.4"    [label="media.example.com"];

"10.10.0.5"    [label="portal.example.com my.example.com login.example.com"];

"10.10.0.6"    [label="sso.example.com"];

 

slb1->"10.10.0.3"

slb1->"10.10.0.4"

slb1->"10.10.0.5"

slb1->"10.10.0.6"

slb1->"10.10.0.7"

slb1->"10.10.0.8"

slb1->"10.10.0.9"

 

}

subgraph service {

        nfs [label="NFSv4 NAS"];

        server->nfs;

}

 

subgraph server {

        rank = same;

        "10.10.10.2" [label="Monitor"];

        "10.10.10.3" [label="Backup"];

}

 

subgraph lvs {

        "10.10.10.6";

 

}

 

 

"O9"->"10.10.10.2" [label="Monitor"];

"O9"->"10.10.10.3" [label="Backup"];

"O9"->"10.10.10.5";

"O9"->"10.10.10.7";

"O9"->"10.10.10.14";

"O9"->"10.10.10.15";

"O9"->"10.10.10.11";

"O9"->"10.10.10.12";

"O9"->"10.10.10.27";

"O9"->"10.10.10.28";

"O9"->"10.10.10.71";

"O9"->"10.10.10.72";

 

"O8"->"10.10.10.20";

"O8"->"10.10.10.23";

"O8"->"10.10.10.19";

"O8"->"10.10.10.10";

"O8"->"10.10.10.74";

"O8"->"10.10.10.74";

"O8"->"10.10.10.75";

"O8"->"10.10.10.76";

"O8"->"10.10.10.216";

 

"O7"->"10.10.10.16";

"O7"->"10.10.10.46";

"O7"->"10.10.10.47";

"O7"->"10.10.10.48";

 

"O4"->"10.10.10.41";

"O4"->"10.10.10.42";

"O4"->"10.10.10.54";

 

 

"J9"->"10.10.0.21";

"J9"->"10.10.0.22";

"J9"->"10.10.0.23";

"J9"->"10.10.0.24";

"J9"->"10.10.0.25";

"J9"->"10.10.0.26";

"J9"->"10.10.0.27";

"J9"->"10.10.0.28";

"J9"->"10.10.0.29";

"J9"->"10.10.0.30";

"J9"->"10.10.0.31";

"J9"->"10.10.0.32";

 

"J10"->"10.10.0.41";

"J10"->"10.10.0.42";

"J10"->"10.10.0.43";

"J10"->"10.10.0.44";

"J10"->"10.10.0.45";

"J10"->"10.10.0.46";

"J10"->"10.10.0.47";

"J10"->"10.10.0.48";

"J10"->"10.10.0.49";

"J10"->"10.10.0.50";

"J10"->"10.10.0.51";

"J10"->"10.10.0.52";

 

"J11"->"10.10.0.61";

"J11"->"10.10.0.62";

"J11"->"10.10.0.63";

"J11"->"10.10.0.64";

 

"J12"->"10.10.0.254";

"J12"->"10.10.0.250";

 

"J13"->"10.10.0.81";

"J13"->"10.10.0.82";

"J13"->"10.10.0.83";

"J13"->"10.10.0.84";

"J13"->"10.10.0.85";

"J13"->"10.10.0.86";

"J13"->"10.10.0.87";

"J13"->"10.10.0.88";

"J13"->"10.10.0.89";

"J13"->"10.10.0.90";

"J13"->"10.10.0.91";

"J13"->"10.10.0.92";

"J13"->"10.10.0.93";

 

"J14"->"10.10.0.101";

"J14"->"10.10.0.102";

"J14"->"10.10.0.103";

"J14"->"10.10.0.104";

"J14"->"10.10.0.105";

"J14"->"10.10.0.106";

"J14"->"10.10.0.107";

"J14"->"10.10.0.108";

"J14"->"10.10.0.53";

"J14"->"10.10.0.54";

 

"J15"->"10.10.5.10";

"J15"->"10.10.5.11";

"J15"->"10.10.5.12";

"J15"->"10.10.5.13";

"J15"->"10.10.5.14";

"J15"->"10.10.5.15";

"J15"->"10.10.5.16";

"J15"->"10.10.5.17";

"J15"->"10.10.5.18";

"J15"->"10.10.5.19";

 

"M12"->"10.10.0.121";

"M12"->"10.10.0.122";

"M12"->"10.10.0.123";

"M12"->"10.10.0.124";

"M12"->"10.10.0.125";

"M12"->"10.10.0.126";

"M12"->"10.10.0.127";

"M12"->"10.10.0.128";

"M12"->"10.10.0.129";

"M12"->"10.10.0.130";

"M12"->"10.10.0.131";

"M12"->"10.10.0.132";

"M12"->"10.10.0.133";

}

 

 

$ twopi network.gv -Tpng > network.png

 


目录
相关文章
|
3月前
|
网络安全 API 数据安全/隐私保护
轻松掌握curl:命令行中的网络大杀器
轻松掌握curl:命令行中的网络大杀器
70 0
|
8月前
|
数据安全/隐私保护
深入解析 curl:掌握命令行的网络传输利器
当我们使用 `curl` 进行网络请求时,了解如何有效地使用参数是非常重要的。`curl` 提供了许多参数,用于控制请求的行为和配置。在这篇博客文章中,我们将详细解释一些常用的 `curl` 参数,帮助你更好地理解如何利用这个强大的工具。
173 2
深入解析 curl:掌握命令行的网络传输利器
|
Ubuntu 开发工具
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
710 0
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
|
C++
C/C++ Qt 命令行版网络通信
**实现简单的结构体传输:** 两端传输结构体。
113 0
|
Ubuntu 网络协议 Linux
如何用Linux命令行管理网络:11个你必须知道的命令
无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。这篇文章收集了久经考验靠谱的命令,也收集了几个比较新的命令。
236 0
如何用Linux命令行管理网络:11个你必须知道的命令
|
Linux Android开发
android命令行网络时间同步
一、简介 Android基于Linux平台的开源手机操作系统。 二、原理 既然是Linux,那就应该支持linux的各种命令行,高度的可配置,但实验发现Android是Google的一个高度阉割版的linux,很多命令都不支持,如rdate命令(网络同步时间命令)。
1613 0
|
存储 缓存 网络协议