この記事は、改訂&リニューアルして『P はプロトコルのP - ip subnet-zero - 何のために存在するのか?』へ移転しました。
ip subnet-zero - 何のために存在するのか?
ip subnet-zero …… ほとんどすべてのCisco ルータ、Catalyst に設定されています。
ルータを初期化しても必ず入っているこの設定。
気にはなっても、あえて触れなかった人も多いのではないでしょうか。
Building configuration...
Current configuration : 497 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router
!
!
clock timezone PST -8
ip subnet-zero
no ip domain lookup
!
クラスという枠の存在により、IP のアドレッシングが今よりもっと自由度が低かったころに話はさかのぼります。
インターネットに接続するためには、IP アドレスが必要になります。
割り当てられたアドレスブロックをそのまま使うのではなく、大抵の場合、複数のサブネットに分割して、ルータによりそれらのサブネットを束ねます。
ここに、220.220.220.0 というクラスC のネットワークアドレスを取得した企業があると仮定します。
8ビットあるホスト部から3ビット借りてくると、次の八つのサブネットができます。
220.220.220.000(000-00000)※
220.220.220.032(001-00000)
220.220.220.064(010-00000)
220.220.220.096(011-00000)
220.220.220.128(100-00000)
220.220.220.160(101-00000)
220.220.220.192(110-00000)
220.220.220.224(111-00000)
※ 括弧の中は2進数
1行目のサブネット番号は0 なので、このネットワークは220.220.220.0 になります。
サブネット分割するまえのクラスC ネットワークと同じですよね。
220.220.220.0 と書いても、本来のクラスC なのか、サブネットなのか区別ができません。
ルータの実装によっては、この「区別できない」ことが致命的になる場合もあります。
そのため、サブネット番号がゼロとなるようなサブネットは使わないことが推奨されていました(RFC 950)。
Cisco のIOS でも、従来は、サブネット番号がゼロとなるようなIP アドレスは設定ができませんでした。
Router(config-if)#
Router(config-if)#ip address 220.220.220.1 255.255.255.224
Bad mask /27 for address 220.220.220.1
Router(config-if)#
しかし、この制限はあくまで推奨に基づくもので、禁止事項ではありません。
そのような状況を踏まえてCisco は、ip subnet-zeroというコマンドを導入しました。
ip subnet-zero" を設定すると、サブネット番号がゼロとなるアドレスも設定可能となります。
Router(config)#
Router(config)#interface ethernet 0/0
Router(config-if)#ip address 220.220.220.1 255.255.255.224
Router(config-if)#
IOS Version 12.0 からは、ip subnet-zero がデフォルトで有効になっています。
もちろん、no ip subnet-zero を設定することで、無効にすることもできます。
ネットワークエンジニアになろう!のトップページへ戻る