NECの UNIVERGE IXシリーズ
ルータにおいて、dhcpv6-cl(DHCPv6クライアントプロファイル)を使用して、ひかり電話(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: [取得したプレフィックス]::[GE2のEUI-64]/64
- GigaEthernet3.0: [取得したプレフィックスの第4ブロック+1]::[GE3のEUI-64]/64
(例: 取得プレフィックスが 2001:db8:aaaa:bbb0::/60 であれば、GE3には 2001:db8:aaaa:bbb1::/64 系統が割り当たります)
💡 インターフェース側の基本設定
各LAN側インターフェース(GE2・GE3)に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の省略ルール(先頭のゼロは省略できる)を適用し、前半(第1〜3ブロック)はプロバイダの値が入るため :: で省略した結果、::1:0:0:0:0/64 という記述になります。
💡 なぜ ::1/64 ではダメなのか?
もし ia-pd subscriber インターフェース名 ::1/64 と書いてしまうと、ルータは 一番右端(第8ブロック)の値を「1」にしよう と判断してしまいます。
しかし、/64 のネットワークを分ける境界線は 第4ブロック
です。そのため、第4ブロックに「1」を足すために、右側に5つのブロック分(第4〜8ブロック分)の位置関係を明示してあげる必要があります。
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』を足して、後ろ(第5〜8ブロック)はゼロのままで /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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。