アドレスのちょっとした雑学

2 min read読了の目安(約2000字

最近教えてもらったアドレス雑学

ネットワークエンジニアをやっていながら最近まで知らなかったアドレスについての雑学です。
普通にこんなん知ってて当然だろ何年ネットワークエンジニアやってんだ!と言われると恥ずかしい限り...

まぁほぼ DHCP の勉強してる時に、メッセージの覚え方とかを先輩に聞いて知ったことです。

DHCP のメッセージの順序

DHCPについての説明は不要でしょう。ご存知の通り、IPv4ネットワークに置いて、通信に関わる各種設定を動的に行なってくれる便利なプロトコルです。

メッセージのやりとりは確かこんな感じ

今回のアドレス小咄はこのメッセージのやりとりの覚え方を教わっている時に聞いた話です。

Discoverメッセージの宛先と送信元のアドレスの意味

Discoverメッセージをclientが出すときの宛先と送信元のアドレスは以下の通り
・宛先 : 255.255.255.255
・送信元 : 0.0.0.0

このふたつのアドレスはブロードキャストのアドレスなのですが、一応特別に名前がつけられていて、リミテッドブロードキャストと言うものです。このアドレスにブロードキャストを送信すると、そのネットワークセグメントに接続されている機器全てにデータを送信します。セグメント超えはしません。
(引用元 ブロードキャストアドレスの種類を知る

255.255.255.255 も 0.0.0.0 もどちらもリミテッドブロードキャストなのですが、一応アドレスの意味が異なります。0.0.0.0 のアドレスは bit 全てが 0 つまり、何も設定されていない、初期設定状態を表現しているそうです。未定義のホストアドレスと言うことですね。

※ちなみに、ルーティングにおける0.0.0.0はデフォルトルートだったりするらしいですが、それはまた別の話で。

つまり、まだ何も設定されていない client のアドレスは 0.0.0.0 、同一セグメントにいるはずのDHCP Server は必ず設定があるはずだから 255.255.255.255 って覚えておけばいいです。

ディレクティッドブロードキャストアドレス

192.168.0.255/255.255.255.0 のようにホストアドレス部全てにbitが立っているブロードキャストアドレスです。リミテッドブロードキャストアドレスを紹介した今なら何となく想像がつくかもしれません。このブロードキャストアドレスは同じネットワークアドレスを持つアドレスに対してデータをブロードキャストします。
 商用環境とかじゃ恐ろしくて打てないアドレスですが、自宅の検証環境なんかだと地味に役に立ちます。

こんな感じにどの機器に通信通るんだっけ?って言うのが一目瞭然でわかります。
本来なら192.168.0.108まで検証機にいるはずなので、何で通信が通っていないのか今まさにトラシュしなければと慌てているところです。

169.254 〜

ちなみに、DHCP からアドレスを貰えないとき、PC のアドレスが、169.254 〜 のアドレスになることがありますが、あのアドレスは何なのか気になったことはないですか?DHCPからアドレスを貰えていないのになんでアドレスが振られているの?と。

Windows OS には大体、APIPA と言う IPアドレスの自動設定機能がデフォルトで働いており、APIPAによって振られる”リンクローカルアドレス”です。リンクローカルアドレスはローカルネットワークの範囲内の 1対1 通信でのみ機能するアドレスで、ルータはこのリンクローカルのアドレスがついたパケットをよそに転送しないという仕組みが存在します。
つまり、アドレスを振られなかったPCがよそにパケットをブロードキャストし続けたりしないように防止するために振られるものなんだそうです。

そういえば何でこのアドレス何だろう?って気になって聞いてみたら意外な豆知識が転がってたので、他にもアドレスだけでなく、暗黙の了解的に流して覚えてしまっていることを改めて疑問に思ってみると面白い話が見つかるかもしれませんね。

本当に小咄なのでここでおしまいです。