IP アドレスのプレフィックス、サブネットマスク計算、面倒ですよね。
あんなの暗記したくないですよね。
私は暗記してません。
手元の環境で常に ipcalc.pl が使えるようにしてあります。
http://jodies.de/ipcalc
Perl のスクリプトなんで何処でも気軽に動かせるのでイイ!!
これさえあれば Cisco 機器へ設定するときに間違えることもない!!w
使用例
標準的な実行
./ipcalc.pl 10.1.1.123/24
Address: 10.1.1.123 00001010.00000001.00000001. 01111011
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 10.1.1.0/24 00001010.00000001.00000001. 00000000
HostMin: 10.1.1.1 00001010.00000001.00000001. 00000001
HostMax: 10.1.1.254 00001010.00000001.00000001. 11111110
Broadcast: 10.1.1.255 00001010.00000001.00000001. 11111111
Hosts/Net: 254 Class A, Private Internet
> ./ipcalc.pl 10.1.1.123 255.255.255.0
Address: 10.1.1.123 00001010.00000001.00000001. 01111011
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 10.1.1.0/24 00001010.00000001.00000001. 00000000
HostMin: 10.1.1.1 00001010.00000001.00000001. 00000001
HostMax: 10.1.1.254 00001010.00000001.00000001. 11111110
Broadcast: 10.1.1.255 00001010.00000001.00000001. 11111111
Hosts/Net: 254 Class A, Private Internet
- 取りあえず情報が全部出てくる
- prefix いれても、subnetmask どちらを入れてもOK
- 私はこの表示から、必要な情報をコピペして使ってます
/26 って /28 にするとどうなんだっけ?
> ./ipcalc.pl -b 10.1.1.123/26 28
Address: 10.1.1.123
Netmask: 255.255.255.192 = 26
Wildcard: 0.0.0.63
=>
Network: 10.1.1.64/26
HostMin: 10.1.1.65
HostMax: 10.1.1.126
Broadcast: 10.1.1.127
Hosts/Net: 62 Class A, Private Internet
Subnets after transition from /26 to /28
Netmask: 255.255.255.240 = 28
Wildcard: 0.0.0.15
1.
Network: 10.1.1.64/28
HostMin: 10.1.1.65
HostMax: 10.1.1.78
Broadcast: 10.1.1.79
Hosts/Net: 14 Class A, Private Internet
2.
Network: 10.1.1.80/28
HostMin: 10.1.1.81
HostMax: 10.1.1.94
Broadcast: 10.1.1.95
Hosts/Net: 14 Class A, Private Internet
3.
Network: 10.1.1.96/28
HostMin: 10.1.1.97
HostMax: 10.1.1.110
Broadcast: 10.1.1.111
Hosts/Net: 14 Class A, Private Internet
4.
Network: 10.1.1.112/28
HostMin: 10.1.1.113
HostMax: 10.1.1.126
Broadcast: 10.1.1.127
Hosts/Net: 14 Class A, Private Internet
Subnets: 4
Hosts: 56
-
-b
オプションでバイナリ情報非表示
Excel の設定シートにIPアドレス書くのめんどい
> ./ipcalc.pl -b 10.1.1.123/28 32 | awk '/Hostroute/{print $2}'
10.1.1.112
10.1.1.113
10.1.1.114
10.1.1.115
10.1.1.116
10.1.1.117
10.1.1.118
10.1.1.119
10.1.1.120
10.1.1.121
10.1.1.122
10.1.1.123
10.1.1.124
10.1.1.125
10.1.1.126
10.1.1.127
- awk と組み合わせて必要な情報だけ表示 --> Excel に貼り付け
IPv6 の場合
最近は使ってないけど、IPv6 を計算するときはipv6gen.pl使ってます。
-
https://github.com/vladak/ipv6gen
- このツール、16進数のローマ字が大文字になるのがちょっと好きじゃない
- 標準のオプションで小文字にして欲しいなぁ
- IPv6 の表記は小文字にしましょうって、どっかのRFCに書いてなかったっけ?
- この記事書くときに配布元見たら、version 1 になっててビックリした
え? IPv6 なんて使わないって??
。。。 ( TДT)
実行例
> ./ipv6gen.pl feC0::/10 12
FEC0::/12
FED0::/12
FEE0::/12
FEF0::/12
配布元にいっぱいサンプル掲載されてます
最後に
CentOS7 とかだと、ipcalc ってコマンドが入ってますが、あれってprefix
だとか、subnetmask
とか1個ずつしか表示してくれない(?)ですよね。
「取りあえず全部表示してくれ!! 必要な情報だけコピペするから!!」というのが個人的な意見。
他の人はどうしてんだろ?
暗記?
他のツール使ってる?
そもそもそんなの必要ない?w