unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

IPv6の基本

IPv4のアドレス数不足を解消するために策定されたIPv6ですが、あまり使う機会がなかったためよく理解していませんでした。今回は基本的な仕様を整理してみました。

IPパケットの変更点

  • アドレス領域:32ビット→128ビット
  • ヘッダ:IPv4であまり使用されていなかった項目が廃止・オプションとなった。

アドレス表示記法

  • 16ビットごとに8ブロックに区切り、各ブロックを16進法で表記して「:」で連結する。
  • ブロック内の先頭から連続する0は省略できる。
  • 連続する全て0のブロックは1つだけ「::」で置き換えられる。
  • 例:1234:56::7890:abcd:ef

グローバル・ユニキャスト・アドレス割り当て

  • 形式:ISP識別部(32) ISPユーザー識別部(x) サブネットID(32-x) インターフェイスID(64)

  • サブネットID:ローカルネットワークの識別に使う。

  • ISP識別部 ISPユーザー識別部はグローバル・ルーティング・プレフィックスと呼ばれ、ISPから割り当てられるネットワークの識別子となる。

  • インターフェイスIDは各ホストで生成でき、MACアドレスから生成する方法(EUI-64)とランダムに生成する方法(RFC4941)がある。(DHCPv6や手動で設定することもできる。)

特別なアドレス

  • リンクローカル・ユニキャスト・アドレス

    • 形式:fe80::インターフェースID
    • サブネット内のIPv6制御に使う。
      • 例:ホストが最初にゲートウェイへサブネット・プレフィックスを問い合わせるときの送信元アドレスとして使う。
  • マルチキャストアドレス

    • 形式:ffで始まるアドレス

    • グループIDを指定して特定のグループ内にマルチキャストするためのアドレス。

    • IPv4でのブロードキャストを置き換える。
  • エニーキャストアドレス

    • 複数のノードに同一のアドレスを割り当てることができる。
    • エニーキャストアドレス宛てに送信されたパケットはルーティングプロトコル上最も近いノードに送信される。

IPv4との共存方法