こんにちは、技術部ネットワーク課の上曽山です。
CiscoルータでACLやOSPFの設定をする時に必要となる情報の1つにワイルドカードマスクがあります。
ネットマスクをビット反転させるだけなのですが、設定の際よく間違いそうになるので確認を行うための良いツールがないか探していたところsipcalcというコマンドを見つけました。
簡単に使い方をご紹介します。
必要パッケージ
コマンドを実行するのに必要なパッケージは、コマンド名と同じsipcalcです。
rhel系OSの場合、epelリポジトリからインストールする必要がある点に注意してください。
基本的な使い方
sipcalc [オプション] <IPアドレス> [プリフィックス|ネットマスク]
- 実行例
$ sipcalc 192.168.1.1/26 -[ipv4 : 192.168.1.1/26] - 0 [CIDR] Host address - 192.168.1.1 Host address (decimal) - 3232235777 Host address (hex) - C0A80101 Network address - 192.168.1.0 Network mask - 255.255.255.192 Network mask (bits) - 26 Network mask (hex) - FFFFFFC0 Broadcast address - 192.168.1.63 Cisco wildcard - 0.0.0.63 Addresses in network - 64 Network range - 192.168.1.0 - 192.168.1.63 Usable range - 192.168.1.1 - 192.168.1.62 -
このようにCisco wildcardという項目が設けられているのでワイルドカードマスクが簡単に確認できます。
オプション機能
sipcalcのオプションをいくつか紹介し ます。
-w [ワイルドカードマスクからネットマスク/プリフィックスを求める]
$ sipcalc -w 0.0.0.31 -[ipv4 : 0.0.0.31] - 0 [WILDCARD] Wildcard - 0.0.0.31 Network mask - 255.255.255.224 Network mask (bits) - 27 -
-d [ホスト名からIPアドレス範囲を求める]
$ sipcalc -d localhost -[ipv4 : localhost] - 0 [CIDR] Host address - 127.0.0.1 Host address (decimal) - 2130706433 Host address (hex) - 7F000001 Network address - 127.0.0.1 Network mask - 255.255.255.255 Network mask (bits) - 32 Network mask (hex) - FFFFFFFF Broadcast address - 127.0.0.1 Cisco wildcard - 0.0.0.0 Addresses in network - 1 Network range - 127.0.0.1 - 127.0.0.1 - -[ipv6 : localhost] - 1 [IPV6 INFO] Expanded Address - 0000:0000:0000:0000:0000:0000:0000:0001 Compressed address - ::1 Subnet prefix (masked) - 0:0:0:0:0:0:0:1/128 Address ID (masked) - 0:0:0:0:0:0:0:0/128 Prefix address - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff Prefix length - 128 Address type - Reserved Comment - Loopback Network range - 0000:0000:0000:0000:0000:0000:0000:0001 - 0000:0000:0000:0000:0000:0000:0000:0001 -
-I [インターフェイスに割り当てられているIPアドレスから範囲を求める]
$ sipcalc -I lo -[int-ipv4 : lo] - 0 [CIDR] Host address - 127.0.0.1 Host address (decimal) - 2130706433 Host address (hex) - 7F000001 Network address - 127.0.0.0 Network mask - 255.0.0.0 Network mask (bits) - 8 Network mask (hex) - FF000000 Broadcast address - 127.255.255.255 Cisco wildcard - 0.255.255.255 Addresses in network - 16777216 Network range - 127.0.0.0 - 127.255.255.255 Usable range - 127.0.0.1 - 127.255.255.254 -
-s(IPv4)/-S(IPv6) [指定したアドレス範囲をさらに分割して表示]
以下の実行例では192.168.1.1/26の範囲をさらに/28単位に分割しています。
$ sipcalc -s 28 192.168.1.1/26 -[ipv4 : 192.168.1.1/26] - 0 [Split network] Network - 192.168.1.0 - 192.168.1.15 Network - 192.168.1.16 - 192.168.1.31 Network - 192.168.1.32 - 192.168.1.47 Network - 192.168.1.48 - 192.168.1.63 -
-r [IPv6の逆引きファイル名を求める]
$ sipcalc -r ::ffff:192.168.1.1 -[ipv6 : ::ffff:192.168.1.1] - 0 [IPV6 DNS] Reverse DNS (ip6.arpa) - 1.0.1.0.8.a.0.c.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. -
最後に
以上で紹介を終わります。
似たような効果を持つものにipcalcがありますが、rehl版のコマンドはワイルドカードマスクを表示する機能がありません。
ネットワーク設定でアドレス範囲は重要な意味を持つので、これらのコマンドを使って間違いなく設定を行うようにしたいですね。