labunix's blog

labunixのラボUnix

dotコマンドによるネットワーク図(subgraph編)


 
 

■前回、サブグラフの手前で疲れてしまったw。

 debtreeとdotコマンドでvmnetのイメージ図を作る
 http://labunix.hateblo.jp/entry/2012/05/04/155322


■私のDMZ配下のネットワークは以下のような感じ。

 みなさんも大体こんな感じだと思うw。

f:id:labunix:20120506224652p:plain

■上記のようなネットワークが計13台のサーバ/クライアントで構成されている。

 本当はこの配下にもVirtualBoxのネットワークを含めて、
 普段使わない仮想マシンが沢山あるのだけれど、それは省略した。
 
 また、上位のイントラより先はセキュリティ上、お見せできないw。
 青のフォントが普段、というか最近よく使うマシン。紫に白フォントは実ルータ。
 
 実際にはホスト名と役割を記載しているがソースは変わらない。
 ※labelの使い方は間違っているかもしれない。。。

$ cat mynetwork.txt
digraph "network" {
  graph [ranksep=0.8];
  rankdir=TB;
  node [shape=box,sizefixed=true,width=3.2,height=0.8];
  subgraph "host0" {
    label="Intra Zone";
    "Intra" [shape=box,style=filled,fillcolor=purple,fontsize=16,fontcolor=white];
  }
  subgraph "host1" {
    label="Squeeze out FW";
    "squeeze1 eth0" -> "WAN";
    "squeeze1 eth0" -> "vmsqueeze1 vmnet1";
    "squeeze1 eth0" -> "vmsqueeze1 vmnet8";
    "vmsqueeze1 vmnet1" -> "Intra Test squeeze1";
    "vmsqueeze1 vmnet8" -> "Intra Test squeeze2";
    "Intra Test squeeze1" -> "Intra Test squeeze2" [dir=both];
  }
  subgraph "host2" {
    label="DMZ Router";
    "dmz router" [shape=box,style=filled,fillcolor=purple,fontsize=16,fontcolor=white];
    "WAN" -> "dmz router";
    "dmz router" -> "LAN";
  }
  subgraph "host3" {
    label="Squeeze DMZ FW";
    "squeeze2 eth0" -> "vmsqueeze2 vmnet1";
    "squeeze2 eth0" -> "vmsqueeze2 vmnet8";
    "vmsqueeze2 vmnet1" -> "vmsqueeze DMZ Test squeeze1";
    "vmsqueeze DMZ Test squeeze1" -> "vmsqueeze DMZ Test squeeze2";
    "vmsqueeze DMZ Test squeeze2" -> "vmsqueeze DMZ Test squeeze1";
    "vmsqueeze2 vmnet8" -> "vmsqueeze DMZ Test squeeze2";
    "vmsqueeze-amd64-DMZ1" [shape=box,fontcolor=blue];
    "vmsqueeze-amd64-DMZ2" [shape=box,fontcolor=blue];
    "vmsqueeze2 vmnet8" -> "vmsqueeze-amd64-DMZ1";
    "vmsqueeze2 vmnet8" -> "vmsqueeze-amd64-DMZ2";
    "vmsqueeze-amd64-DMZ1" -> "vmsqueeze-amd64-DMZ2" [dir=both];
  }
  subgraph "host4" {
    label="WinXP Client";
    "winxp1 Local Network" -> "vmwinxp1 vmnet1";
    "winxp1 Local Network" -> "vmwinxp1 vmnet8";
    "vmwinxp1 vmnet1" -> "vmsqueeze i686-1";
    "vmwinxp1 vmnet1" -> "vmsqueeze i686-2";
    "vmsqueeze i686-1" -> "vmsqueeze i686-2";
    "vmsqueeze i686-2" -> "vmsqueeze i686-1";
    "vmcent6 i686-1" [shape=box,fontcolor=blue];
    "vmwinxp1 vmnet8" -> "vmcent6 i686-1";
    "vmwinxp1 vmnet8" -> "vmlenny i686-1";
    "vmcent6 i686-1" -> "vmlenny i686-1";
    "vmlenny i686-1" -> "vmcent6 i686-1";
  }
  subgraph "host5" {
    label="Test Server";
    "Win2008R2 Local Network" -> "vmr2 vmnet1";
    "Win2008R2 Local Network" -> "vmr2 vmnet8";
    "vmr2 vmnet1" -> "vmsqueeze-kfreebsd-amd64";
    "vmr2 vmnet8" -> "vmsqueeze-kfreebsd-x86";
  }
  "Intra" -> "squeeze1 eth0";
  //"squeeze1 eth0" -> "WAN";
  "LAN" -> "squeeze2 eth0";
  "squeeze2 eth0" -> "winxp1 Local Network";
  "squeeze2 eth0" -> "Win2008R2 Local Network";

$ cat mynetwork.txt | dot -T png mynetwork.png