質問内容
MACアドレスのローカルアドレスとグローバルアドレスをG/Lビット以外で区別する方法について
詳細
MACアドレスの第1オクテットの下位から2番目のビット(G/Lビット)が「1」の場合、ローカルアドレスである、となっています。
(参考 https://ascii.jp/elem/000/000/417/417556/ )
そのため、16進数で表した第1オクテットの1桁目は「2」「6」「A」「E」になり「02-xx-xx-xx-xx-xx」等はローカルアドレスに当たると思います。
しかし、IEEEが公開しているベンダーIDのリストを見ると、「02」から始まるベンダーIDが登録されているようです。
例 02-C0-8C (hex) 3COM
RFC5342等を読み落としていて、実はG/Lビット以外にもローカルアドレスと判定する条件があるのかもしれないと思い、質問させていただきました。
###問題点
例えば仮想環境等で重複がないようにローカル用のMACアドレスを生成した場合、本来であればそこに物理的なNICを追加したとしても、アドレス重複は生じないはずです。
しかしながら、上記の「02」等から始まるMACアドレスがベンダーIDに割り当てられていると、想定外のアドレスの重複により障害が生じそうです。(確率的には低そうですが)
RFCを読んでも、G/Lビット以外にローカルアドレスとグローバルアドレスを区別する条件は見当たりませんでした。
G/Lビットが立っていて、かつ、ベンダーIDのリストと重複しない、という条件でローカルアドレスを生成すれば重複しないでしょうが、ベンダーIDは増える可能性があるため、インターネットに繋ぐ等、リスト更新の仕組みを追加しなければなりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/03/12 16:24