SE_BOKUのITな日常

SE_BOKUが知ってること・勉強したこと・考えたことetc

MACアドレスとBlueToothアドレスの違いを整理する

f:id:arakan_no_boku:20220321221954p:plain

目次

MACアドレスBlueToothアドレスの違いを整理する

ネットワークの話題によく登場するMACアドレスBlueToothアドレスですが、あるとき、質問されて説明しようとしたら、僕自身が結構あいまいにしか理解できていないのに気づきました。

整理しておこうと思います。

 

MACアドレスとは

MACアドレス(Media Access Control address)は、ネットワークカード(パソコンやルータなどのネットワーク機器)に付いている番号です。

全世界で重複することがないことを前提として、MACアドレスがLANやインターネットでのイーサネット通信で利用されています。

通信データのヘッダー部分に「送信先MACアドレス」と「送信元MACアドレス」を格納することで宛先や戻し先を確定するわけです。

なので、MACアドレスが無いと通信ができなくなります。

 

MACアドレスの構造

48ビットで構成されます。

8ビット(1バイト)を「オクテット」として、6オクテットで構成されてます。

8ビットなので、00000000~11111111(00~FF)の値をとりえます。

表記するときは、各オクテットの区切りを「-(ハイフン)」で表記して、例えば以下のように表現します。

11-22-33-44-55-66

前半の3オクテット分が「ベンダーコード」

後半の3オクテット分が「ベンダが重複しないように管理している番号」です。

ベンダーコードは、OUI(Organizationally Unique Identifier)ともいい、標準化団体のIEEEが一元的に管理し、通信機器メーカーなどに発行しています。

後半の3オクテット(24ビット)がメーカーが個々の機器に重複しないよう割り当てた装置固有の番号となりますが、使い切ると新たに申請して取得することができるので、いくつかの大手通信機器メーカーは一社で複数のOUIを保有しています。

 

MACアドレスは枯渇しないのか ?

今のところMACアドレスの枯渇問題の話は聞いたことがないです。

まだまだたくさんあるのでしょうね。

MACアドレスは48ビットの数字列,つまり0と1が48個並んだもので、最初の2ビットは識別コードとして使うので,アドレスとして使えるのは46ビットになってます。

46ビットで表現できるアドレスの数は2の46乗分・・つまり、約70兆個以上・・ですから大丈夫なんですかね。

加えて。

MACアドレスは本来データリンク層のネットワーク,つまりルーターで区切られた範囲内で重複しなければ問題ない(同一サブネット内のみで利用されルータを経由する度に変更される)ようなので、ルーターで区切られた範囲内で使う機器に同じMACアドレスを割り振らないようにすれば,使い回せるということもあるみたいです。

 

BlueToothアドレス(Bluetooth Device Address)とは

Bluetooth対応デバイスを識別するために使われます。

BD_ADDR、BDアドレスなどと表記されることもあります。

MACアドレスと同じ48ビット(EUI-48)を使用します。

ただ、附番管理はMACアドレスとは別に独立してされています。

Public AddressとRandom Addressの2種類のアドレスがあります。

 

BlueToothアドレス:Public Address

IEEE 802準拠のアドレスです。

MACアドレスと同等で、機器を製造した企業や機器の個別アドレスを含みます。

製品製造時に機器ごとに書き込まれる固定のアドレスです。

 

BlueToothアドレス:Random Address

各端末(機器)で乱数を使って自動生成される端末アドレスです。

機器の製造工程で書き込む必要がありません。

どうも、こちらのほうが一般的のようです。

Random Addressには、さらに。

  • Static Device Address
  • Non-Resolvable Private Address
  • Resolvable Private Address

の3種類があります。

 

BlueToothアドレス:Random Address:Static Device Address

Random Static Addressと同じです。

再上位2ビットが「11」で、電源投入のたびに生成される乱数アドレスです。

電源再投入されないかぎり変更されません。

逆にいうと、電源が再投入されると変わってしまいます。

 

BlueToothアドレス:Random Address:Non-Resolvable Private Address

再上位2ビットは「00」です。

一定間隔で動的に再生成される乱数アドレスです。

Private Address 再生成間隔は15分が推奨されているようです。

 

BlueToothアドレス:Random Address:Resolvable Private Address

再上位2ビットは「10」で、一定間隔で動的に再生成される乱数アドレスであり、

Private Address 再生成間隔は15分が推奨されているようなのは、上記の「Non-Resolvable Private Address」と同じです。

ただ、こちらの乱数アドレスは鍵(IRK)に基づいて生成されるので、受信した側が IRK を用いることでアドレスの正当性を検証(Resolve)できるというところが違います。

このResolvable Private AddressはiPhoneで使われています。

このアドレスが使われるのはアドバタイジングのときだけです。

アドバタイズとはイーサネットでいうブロードキャスト通信のことで、不特定多数の相手にデータを送信する一方通行の通信方式です。

つまり、発信側はアドレスを生成して一定間隔でデータ送信を行い、受信する側はスキャンしたあと鍵(IRK)に基づき正当性が検証できたアドレスからのデータのみを受信することができる・・とまあ、こんな仕組みのようです。

 

まとめ

イーサネットMACアドレスBlueToothのBDアドレス。

体系的には48ビットで同じで、たまに、混在して使っているシステムを見ます。

でも、全然別物です。

しかも、MACアドレスは変わりません(無理やり変更しなければ・・)けど、BlueToothアドレスには動的に再生成されるものもあったりします。

このへんの違いをしっかり理解するのが大事だと思います。

今回はこんなところで。

ではでは。