batfish でダミーホストを利用する
batfish でルーティングや ACL のテストを実施する際、ルータやファイアウォールとは別にダミーのホストを利用したい場合があります。 こういった場合は .json ファイルを用意することで簡単にダミーホストを用意出来ます。 Modeling hosts に .json ファイルのフォーマットが書かれています。
ディレクトリ構造
ダミーホスト用の .json ファイルは hosts
というディレクトリを作成し、その中に配置します。
| ./example/
├── configs
│ ├── r1.cfg
│ └── r2.cfg
└── hosts
├── host1.json
└── host2.json
|
ダミーホスト用 .json ファイルのフォーマット
Modeling hosts に掲載されているサンプルは以下の通りです。
| {
"hostname" : "host1",
"iptablesFile" : "iptables/host1.iptables",
"hostInterfaces" : {
"eth0" : {
"name": "eth0",
"prefix" : "2.128.0.101/24"
}
}
}
|
「同一インターフェイスにセカンダリアドレスを割り当てる」やり方は分からなかったのですが、インターフェイスを複数増やし、それを全て同じネットワークにすることは可能です。 その為、「セカンダリアドレスを利用したい」といった場合は以下のように (セカンダリアドレスではありませんが) 回避することが可能です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | {
"hostname": "host1",
"hostInterfaces": {
"eth1": {
"name": "eth1",
"prefix": "192.168.1.1/24",
"gateway": "192.168.1.254"
},
"eth2": {
"name": "eth2",
"prefix": "192.168.1.2/24",
"gateway": "192.168.1.254"
},
"eth3": {
"name": "eth3",
"prefix": "192.168.1.3/24",
"gateway": "192.168.1.254"
}
}
}
|
コンフィグ
今回のテストコンフィグは以下の通りです。
r1.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | hostname r1
!
interface GigabitEthernet0/0
ip address 192.168.1.254 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.0.0.1 255.255.255.0
no shutdown
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
!
end
|
r2.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | hostname r2
!
interface GigabitEthernet0/0
ip address 192.168.2.254 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.0.0.2 255.255.255.0
no shutdown
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
!
end
|
host1.json
| {
"hostname": "host1",
"hostInterfaces": {
"eth0": {
"name": "eth0",
"prefix": "192.168.1.100/24",
"gateway": "192.168.1.254"
}
}
}
|
host2.json
| {
"hostname": "host2",
"hostInterfaces": {
"eth0": {
"name": "eth0",
"prefix": "192.168.2.100/24",
"gateway": "192.168.2.254"
}
}
}
|