2026年9月16日水曜日

IPv6のアドレス記述でどこを省略

ia-pd subscriber GigaEthernet2.0 ::/64 eui-64

ia-pd subscriber GigaEthernet3.0 ::1:0:0:0:0/64 eui-64

 

上記の記述などでどこを省略してる? 省略に仕方教えてください

 

Ciscoのルータなどで設定されるIPv6のプレフィックス(インターフェースID自動生成)のコマンドですね。
結論から言うと、この設定はIPv6のアドレスプレフィックス(前半64ビット)の一部を省略しています。

省略されている部分の解説と、IPv6の省略のルールについて説明します。


1. どこを省略している?

具体的には、DHCPv6-PD(Prefix Delegation)などで割り当てられた親プレフィックス(例: 2001:db8:1234::/48 など)に対するサブネットID(後半の部分)を省略しています。

  • GigaEthernet2.0 ::/64
    • 省略しない表記: ::0:0:0:0/64 または ::0/64
    • 意味: 割り当てられたプレフィックスの「最初(0番目)のサブネット」を使うという意味です。
  • GigaEthernet3.0 ::1:0:0:0:0/64
    • 省略しない表記: ::1/64 (通常はこう書きます。この設定は少し冗長に書かれています)
    • 意味: 割り当てられたプレフィックスの「1番目のサブネット」を使うという意味です。

2. IPv6アドレスの省略ルール(仕組み)

IPv6アドレスは128ビットあり、16進数4桁ごとにコロン(:)で8つのブロックに区切って書きます。長すぎるため、以下の2つのルールで省略できます。

ルール①:各ブロックの先頭の「0」は省略できる

ブロック内の左側にある 0 は消すことができます。

  • 例: 0001 ➡ 1
  • 例: 0000 ➡ 0

ルール②:「0」が連続するブロックは「::」に置換できる(1回のみ)

0:0:0... と「0」のブロックが連続する場合、丸ごと ::(ダブルコロン) に置き換えることができます。ただし、どこが省略されたか分からなくなるのを防ぐため、1つのアドレスの中で1回しか使えません。


3. 省略の仕方の実践例

質問にある ::1:0:0:0:0 をルールに沿って綺麗に省略してみます。

  1. 元の状態(16ビット×8ブロックにばらしたと仮定)
    0000:0000:0000:0000:0001:0000:0000:0000
  2. ルール①(先頭の0を消す)
    0:0:0:0:1:0:0:0
  3. ルール②(連続する0を :: にする)
    左側の4つの 0 を縮めると ➡ ::1:0:0:0
    (※右側の3つの 0 を縮めて 0:0:0:0:1:: としても正解ですが、左側を縮めるのが一般的です。両方は縮められません)

コマンドでの最もスマートな書き方

Ciscoの ia-pd subscriber コマンドでサブネットを指定する場合、通常は以下のように最も短い形に省略して書きます。

  • 0番目のサブネット: ::/64
  • 1番目のサブネット: ::1/64
  • 10番目(16進数で a)のサブネット: ::a/64

設定しようとしているプロバイダから配布されるIPv6プレフィックス(/56 や /48 など)の具体的な値は分かりますか?

 

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。