2026年9月16日水曜日

IPv6 サブネット

NECUNIVERGE IXシリーズ ルータにおいて、dhcpv6-clDHCPv6クライアントプロファイル)を使用して、ひかり電話(DHCPv6-PD)などから取得したプレフィックスを各インターフェースに切り出して割り当てる場合、ia-pd subscriber コマンドで異なるサブネットをそれぞれのインターフェースに指定します。

GE2宛てに最初のサブネット(::/64)を割り当て、GE3宛てに異なるサブネット(::1:0:0:0:0/64、すなわち ::1/64 のネットワーク)を割り当てたい場合 の設定例は以下のようになります。

⚙️ 設定手順とコマンド例

ipv6 dhcp client-profile の中に、それぞれのインターフェース(GE2およびGE3)に向けたサブネットの割り当て定義を追加します。

!

ipv6 dhcp client-profile dhcpv6-cl

  option-request dns-servers

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

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

!

上記のように設定することで、上位(光回線等)から受け取ったプレフィックスの値をベースとして、以下のように自動計算されたIPv6アドレスが各インターフェースへ割り当てられます。

  • GigaEthernet2.0 [取得したプレフィックス]::[GE2EUI-64]/64
  • GigaEthernet3.0 [取得したプレフィックスの第4ブロック+1]::[GE3EUI-64]/64
    (
    : 取得プレフィックスが 2001:db8:aaaa:bbb0::/60 であれば、GE3には 2001:db8:aaaa:bbb1::/64 系統が割り当たります)

💡 インターフェース側の基本設定

LAN側インターフェース(GE2GE3)にIPv6アドレスを自動生成・適用させ、配下の端末にRA(ルータ広告)でIPを配るための、インターフェース側の標準的なコンフィグもあわせて記載します。

!

interface GigaEthernet2.0

  no ip address

  ipv6 enable

  ipv6 nd ra enable

  no shutdown

!

interface GigaEthernet3.0

  no ip address

  ipv6 enable

  ipv6 nd ra enable

  no shutdown

!

フレッツ 光ネクスト向け IPv6インターネット接続 設定 ... - NEC

本設定例は「IX2105」を前提に記載しておりますが、その他ギガビットイーサネット対応機種(「IX2207」など)

 

自前ルータで直収しながら HGW でひかり電話を収容するために

2023/04/08 — DHCPv6 サーバ・クライアントの定義. Copied! ipv6 dhcp client-profile dhcpv...

::/64)を割り当て、GE3宛てに異なるサブネット(::1:0:0:0:0/64、すなわち ::1/64 のネットワーク)

上記の記述のルールを詳しく教えてください

IXルータの ia-pd subscriber コマンドで指定する ::1:0:0:0:0/64 という記述のルール(計算方法) について詳しく解説します。

これは、プロバイダから取得したプレフィックス(ネットワークの頭の部分)に対して、「ルータ自身が何番目のサブネット(子ネットワーク)を切り出すか」を指定する足し算(ビットシフト)のルール に基づいています。


1. IPv6アドレスの「16進数」の構造

IPv6アドレスは、16ビット(4桁の16進数)ごとに コロン(::)で8つのブロック に区切られています。

  • 本来のフル表記(8ブロック)
    0000:0000:0000:0000 : 0000:0000:0000:0000
  • 前半4ブロック:プロバイダから割り当てられる「プレフィックス」(例: /56 /60
  • 後半4ブロック:機器固有の「インターフェースID」(eui-64 などで自動生成)

ひかり電話などの回線では、通常 前半の4番目のブロック(第4ブロック) をルータが自由に分割して利用できるようになっています。


2. なぜ ::1:0:0:0:0/64 になるのか?

IXルータのこのコマンドでは、「最下位(右端)のビットから数えて、どこに数値を足すか」 をゼロで埋めて指定する必要があります。

右側からブロックを書き出してみます。

ブロック位置

4ブロック (サブネット)

5ブロック

6ブロック

7ブロック

8ブロック

アドレス表記

1

0

0

0

0

これをコロンで繋ぐと、1:0:0:0:0 となります。
IPv6
の省略ルール(先頭のゼロは省略できる)を適用し、前半(第13ブロック)はプロバイダの値が入るため :: で省略した結果、::1:0:0:0:0/64 という記述になります。

💡 なぜ ::1/64 ではダメなのか?

もし ia-pd subscriber インターフェース名 ::1/64 と書いてしまうと、ルータは 一番右端(第8ブロック)の値を「1」にしよう と判断してしまいます。
しかし、/64 のネットワークを分ける境界線は 4ブロック です。そのため、第4ブロックに「1」を足すために、右側に5つのブロック分(第48ブロック分)の位置関係を明示してあげる必要があります。


3. サブネットをさらに増やす場合の書き方一覧

4ブロックの値を 1, 2, 3 ... と増やしていくことで、複数のインターフェースに異なるネットワークを割り当てられます。16進数なので 9 の次は a になります。

  • 1番目のネットワーク (GE2など)
    ::/64
    (何も足さない、基本のネットワーク)
  • 2番目のネットワーク (GE3など)
    ::1:0:0:0:0/64
    (第4ブロックに 1 を足す)
  • 3番目のネットワーク (GE4など)
    ::2:0:0:0:0/64
    (第4ブロックに 2 を足す)
  • 11番目のネットワーク
    ::a:0:0:0:0/64
    (第4ブロックに a = 10進数の10 を足す)

まとめ

この記述ルールは、「プロバイダから貰ったネットワークの第4ブロックに『1』を足して、後ろ(第58ブロック)はゼロのままで /64 に区切る」 という指示を、ルータが誤解しないように正確な位置(ブロック数)で表現するためのIXルータ特有の構文です。

このサブネットの計算ルールについて、さらに詳しく知りたい点(例えば、プロバイダから提供されているプレフィックス長が /56 /60 の場合の違い など)はありますか?
もし現在のネットワーク構成割り当てたいインターフェースの数を教えていただければ、最適なコマンドを具体的に作成します。

略さないで正式のアドレスで書くとどうなりますか?

ia-pd subscriber コマンドで指定する値を、IPv6の省略ルールを一切使わずに 16進数4×8ブロック(合計32桁)の正式なアドレス表記(フルスペル) で書くと、以下のようになります。

0000:0000:0000:0001:0000:0000:0000:0000/64


🔍 各ブロックの構成解説

このアドレスをコロン(:)ごとに分解すると、構造がよりはっきりと分かります。

ブロック

表記

役割

1ブロック

0000

プロバイダから割り当てられる部分(プレフィックス)に置き換わるため、ベースは全てゼロ

2ブロック

0000

同上

3ブロック

0000

同上

4ブロック

0001

ここが重要です! プロバイダのプレフィックスに 1 を足す指定 をしています。

5ブロック

0000

インターフェースID(端末側)の部分。ルータが自動計算するため、ベースは全てゼロ

6ブロック

0000

同上

7ブロック

0000

同上

8ブロック

0000

同上

💡 補足:IXルータの設定に組み込む場合

ルータのコンフィグ(設定画面)に直接入力する際は、省略形(::1:0:0:0:0/64)でも、この正式表記でも全く同じ意味としてルータに認識されます。

ia-pd subscriber GigaEthernet3.0 0000:0000:0000:0001:0000:0000:0000:0000/64 eui-64

コードは注意してご使用ください。

この正式表記を見ることで、「第4ブロックに『1』を足している」 という仕組みはイメージしやすくなりましたでしょうか

 

 

0 件のコメント:

コメントを投稿

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