ひかり電話契約で降ってくる ipv6 のアドレスを家庭内 LAN で分割してみる.
※2023/11/17 IP アドレスの一部を例示用 IP アドレスへ変更
やりたいこと
- ひかり電話ありの場合で降ってくる /56 のアドレス(の一部)を別のルータで利用できるようにする.具体的には,NTT 回線に接続されているルータの下の家庭内用セグメントと別のルータに接続されているサーバ用セグメントに別の IPv6 プレフィックスを自動的に割り当て IPv6 のルーティングを行う.自動的にというところがミソで手動で割り当てての通信はできている.
- IPv6 アドレスが変更されたときに自動的に変更する.これに関しては,IPv6 プレフィックスの委譲ができた時点でそうなるものと思っている.
フレッツ網での IPv6 アドレス割当のおさらい
ひかり電話契約ありの場合
ひかり電話契約ありでかつ HGW がない場合,DHCPv6-PD で /56 の IPv6 のアドレスが割り当てられる.
DHCPv6-PD で割り当てられた IPv6 アドレスを以下のとおりとする.
2001:db8:c:d00/56
このブロックで利用できるアドレスは以下のとおりで,その数は… 2 の 72 乗個.
2001:db8:c:d00::0
~
2001:db8:c:dff:ffff:ffff:ffff:ffff
また,以下の /64 ネットワーク (8 ビット分 = 256 個)を利用することができる.
2001:db8:c:d00::/64
~
2001:db8:c:dff::/64
ひかり電話契約なしの場合
ひかり電話契約がない場合,もしくはひかり電話契約があっても HGW を経由して接続する場合は,RA で /64 のアドレスが割り当てられる.
2001:db8:c:d00/64
ネットワーク分割するには
IPv6 では /64 のネットワークをひとつの (IPv4 的な)サブネットワークとして取り扱うのが基本である.この基本を踏まえるとひかり電話契約なしでは分割できないことになる.一般家庭においてグローバル IPv6 アドレスでネットワークを分割する場合は,ひかり電話契約ありにするのがいちばん簡単であろう.HGW がある場合はひかり電話契約があってもそれをスルーする必要があるが.(最近ではフレッツ光クロスが /56 のアドレスが割り当てられるという情報がある)
NVR はこれらのアドレスをどのように取り扱うのか
ひかり電話契約の有無で NVR にどのように IPv6 アドレスが割り当てられるのか,実際の定義と割り当てられたアドレスをみてみる.
NVR での IPv6 アドレスの割り当て(ひかり電話契約あり)
ひかり電話契約ありで NVR に小型 ONU を直収する場合,ONU1 には (DHCPv6-PD で) /56 のアドレス(プレフィクス)が割り当てられる.フィルタを除く ONU1(WAN) の定義は以下のとおり.
ipv6 onu1 address dhcp
ipv6 onu1 dhcp service client
ngn type onu1 ntt
これで ONU1 には以下のような /56 のグローバル IPv6 アドレスが割り当てられる.
ONU1 scope-id 3 [up]
Received: 463716 packets 149431579 octets
Transmitted: 39077760 packets 6661542244 octets
global 2001:db8:c:d00:dead:dead:dead:dead/56 (lifetime: INFINITY)
global 2001:db8:c:d00:dead:dead:dead:ad/56 (lifetime: 8491/10291)
LAN1 には /56 プレフィックスのうちの /64 を割り当てる.実際の定義は次のようになる.
ipv6 prefix 5 dhcp-prefix@onu1::4:0:0:0:1/64
ipv6 lan1 address dhcp-prefix@onu1::4:0:0:0:1/64
ipv6 lan1 prefix dhcp-prefix@onu1::4:0:0:0:1/64
ipv6 lan1 rtadv send 5 o_flag=on
ipv6 lan1 dhcp service server
論理的には /60 や /62 などのプレフィックスでもよさそうであるが,LAN1 に接続している PC などにグローバル IPv6 アドレスが割り当てられなかった.
このとき(/64)の LAN1 のグローバル IPv6 アドレスは以下のようになった.
LAN1 scope-id 1 [up]
Received: 543082 packets 71576437 octets
Transmitted: 469578 packets 152674456 octets
global 2001:db8:c:d04::1/64
global 2001:db8:c:d04:dead:dead:dead:dead/64
他の記事にも記載したが,ネットボランチ DNS に IPv6 アドレスを LAN1 インタフェースを指定して登録したところ, ONU1 に割り当てられる IPv6 アドレスが登録された.
NVR での IPv6 アドレスの割り当て(ひかり電話契約なし)
ONU1NVR には (RA で) /64 のアドレス(プレフィクス)が割り当てられる.フィルタを除く ONU1(WAN) の定義は以下のとおり.ひかり電話契約ありの場合と違うのは ONU1 にアドレスを割り当てる定義がないことである.(これがいわゆる ND プロキシ機能?)
ipv6 onu1 dhcp service client ir=on
ngn type onu1 ntt
これで ONU1 には以下のようにグローバル IPv6 アドレスは割り当てられない.
ONU1 scope-id 3 [up]
Received: 1834376 packets 269092127 octets
Transmitted: 373122525 packets 432898904563 octets
link-local fe80::dead:dead:dead:dead/64
link-local ff02::1/64
link-local ff02::2/64
link-local ff02::1:ffe6:eceb/64
LAN1 の定義は以下の通り.
ipv6 lan1 address ra-prefix@onu1::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
RA で取得したプレフィックスを利用して LAN1 のアドレスとしている.
LAN1 scope-id 1 [up]
Received: 1321909 packets 104401482 octets
Transmitted: 1075032 packets 227091437 octets
global 2001:db8:c:d00::1/64 (lifetime: 604707/2591907)
関連情報
残念ながら…
RTX(NVR) では再委譲はできないとの情報があった.(2023/2/9 時点の情報)
また、サーバセグメント用に利用している seilx86 について以下の記載があった.(2023/2/15 追記)
IIJのSEIL TECHNICAL MANUAL の DHCPv6 サーバの説明の注で
「IPv6 アドレス及び Prefix Delegation の配布はできません(クライアント向けの IPv6 アドレスの配布は、ルータ広告機能を使用してください)。」
ただ、これらの機器が DHCPv6-PD がまったく利用できないというわけではないのでその点は誤解なきように。
調べていくと…
NEC の UNIVERGE IX シリーズで委譲している事例があった.(2023/2/9追記)
今後の予定
IX2215 を入手したので,NVR と置き換えて試してみるつもり.→以下試してみた.
IX2215 は IPv6 アドレスをどのように取り扱うのか
ひかり電話契約あり(自宅)およびひかり電話なし(実家)環境の NVR を IX2215 に変更してみた.
IX2215 での IPv6 アドレスの割り当て(ひかり電話契約あり)
ひかり電話契約ありで IX2215~小型 ONU を直結メディアコンバータなどで接続する場合, IX の GigaEthernet0.0 には (DHCPv6-PD で) /56 のアドレス(プレフィクス)が割り当てられる.フィルタを除く GigaEthernet0.0 の定義は以下のとおり.
interface GigaEthernet0.0
no ip address
ipv6 enable
ipv6 address autoconfig receive-default
ipv6 dhcp client dhcpv6_cl_ge0.0
※no shutdown わすれがち.
dhcpv6_cl_ge0.0 は以下のようになっている.
ipv6 dhcp client-profile dhcpv6_cl_ge0.0
option-request dns-servers
option-request ntp-servers
ia-pd subscriber GigaEthernet0.0 ::1/64
ia-pd subscriber GigaEthernet1.0 ::10:0:0:0:1/64
ia-pd subscriber GigaEthernet2:1.0 ::20:0:0:0:1/64
ia-pd subscriber GigaEthernet2:2.0 ::30:0:0:0:1/64
shutdown-delay 100
!
実際に割り当てられたアドレスは,
Router(config)# show ipv6 address GigaEthernet0.0
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
2001:db8:c:d00::1 prefixlen 64
Valid lifetime 7580, preferred lifetime 5780
2001:db8:c:d00:dead:dead:dead:dead prefixlen 64
2001:db8:c:d00:: prefixlen 56 anycast
その他のインタフェースの情報.
Router(config)# show ipv6 address GigaEthernet1.0
Interface GigaEthernet1.0 is up, line protocol is up
Global address(es):
2001:db8:c:d10::1 prefixlen 64
Valid lifetime 8513, preferred lifetime 6713
2001:db8:c:d10:: prefixlen 64 anycast
(省略)
Router(config)# show ipv6 address GigaEthernet2:1.0
Interface GigaEthernet2:1.0 is up, line protocol is up
Global address(es):
2001:db8:c:d20::1 prefixlen 64
Valid lifetime 8499, preferred lifetime 6699
2001:db8:c:d20:: prefixlen 64 anycast
(省略)
Router(config)# show ipv6 address GigaEthernet2:2.0
Interface GigaEthernet2:2.0 is up, line protocol is up
Global address(es):
2001:db8:c:d30::1 prefixlen 64
Valid lifetime 8495, preferred lifetime 6695
2001:db8:c:d30:: prefixlen 64 anycast
(省略)
Router(config)#
IX2215 での IPv6 アドレスの割り当て(ひかり電話契約なし)
ひかり電話契約なしで小型 ONU ~メディコン~ IX2215 を接続している構成では,IX には RA で /64 のアドレス(プレフィクス)が割り当てられる.フィルタを除く GigaEthernet0.0 の定義は以下のとおり.こちらの定義のほうがヤマハの NVR に比べて nd プロキシ機能を利用しているというのがわかりやすい.
ipv6 dhcp client-profile dhcpv6_cl_ge0.0
information-request
option-request dns-servers
!
interface GigaEthernet0.0
no ip address
ipv6 enable
ipv6 dhcp client dhcpv6_cl_ge0.0
ipv6 nd proxy GigaEthernet2.0
no shutdown
!
また,GigaEthernet2.0 の定義は以下の通り.
ipv6 dhcp server-profile dhcpv6_sv_ge2.0
dns-server dhcp
!
interface GigaEthernet2.0
(ip関連定義略)
ipv6 enable
ipv6 interface-identifier 00:00:00:00:00:00:00:01
ipv6 dhcp server dhcpv6_sv_ge2.0
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
割り当てられているアドレスは以下のとおり.
Router(config)# show ipv6 address GigaEthernet0.0
Interface GigaEthernet0.0 is up, line protocol is up
Link-local address(es):
fe80::dead:dead:dead:dead prefix len 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:2
ff02::1:ff00:0
ff02::1:fffd:fff5
Router(config)# show ipv6 address GigaEthernet2.0
Interface GigaEthernet2.0 is up, line protocol is up
Global address(es):
2001:db8:c:d00::1 prefixlen 64
2001:db8:c:d00:: prefixlen 64 anycast
Link-local address(es):
fe80::1 prefixlen 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:ff00:0
ff02::1:ff00:1
Router(config)#
IPv6 プレフィックスを委譲してみる
一台目の IX2215 で /56 の IPv6 のアドレスを受けて、二台目の IX2215 に /60 の IPv6 アドレスを委譲してみる。
二台目の IX 入手
実家用に IX2215 とメディコンを入手したのでこの機材を利用して,IPv6 プレフィックスの委譲の試験を行う.
検証用ネットワーク構成
Flet’s~(GigaEthernet0.0)IX2215-01(GigaEthernet2:3.0)~(GigaEthernet0.0)IX2215-02(GigaEthernet1.0)~(WAN)NVR700W
なお本題とは直接関係ないが,ひかり電話用にブリッジ設定(IPv4 のみ)を行う。

IX2215-01 の追加定義
GigaEthernet2 の分割
以下のように GigaEthernet2 を分割し,GigaEthernet2:3.0 を作成する.
device GigaEthernet2
vlan-group 1 port 1 2 3 4 5 6
vlan-group 2 port 7
vlan-group 3 port 8
この段階で WRITE MEMORY して再起動する.(外のアドレスが変わるけどしかたない)
DHCPv6 クライアントプロファイルの修正
DHCPv6 の client profile に以下の一行を追加する.
ipv6 dhcp client-profile dhcpv6_cl_ge0.0
(略)
ia-pd redistribute pool dhcpv6_pd_pool_ge2_3.0 0:0:0:80::/60 nla-length 3
(略)
!
GigaEthernet2:3.0 の定義
以下のように定義する.GigaEthernet0.0 とおなじブリッジグループを設定する.
interface GigaEthernet2:3.0
no ip address
ipv6 enable
ipv6 dhcp server dhcpv6_sv_ge2_3.0
ipv6 nd ra enable
ipv6 nd ra other-config-flag
bridge-group 1
no shutdown
!
IX2215-02 の定義
ブリッジ設定
ひかり電話用のブリッジを設定する.
bridge irb enable
no bridge 1 bridge ipv6
DHCPv6 クライアントプロファイルの定義
ipv6 dhcp client-profile dhcpv6_cl_ge0.0
option-request dns-servers
option-request ntp-servers
ia-pd subscriber GigaEthernet0.0 ::1/64
ia-pd subscriber GigaEthernet1.0 ::81:0:0:0:1/64
ia-pd subscriber GigaEthernet2.0 ::82:0:0:0:1/64
shutdown-delay 100
!
DHCPv6 サーバプロファイルの定義
ipv6 dhcp server-profile dhcpv6_sv_ge2.0
dns-server dhcp
!
ipv6 dhcp server-profile dhcpv6_sv_ge1.0
dns-server dhcp
!
GigaEthernet0.0 の定義
interface GigaEthernet0.0
no ip address
ipv6 enable
ipv6 address autoconfig receive-default
ipv6 dhcp client dhcpv6_cl_ge0.0
ipv6 traffic-class tos 0
bridge-group 1
no shutdown
!
経路情報の定義
特に設定していない.
確認その 1
ここまでの設定で IX2215-02 に IPv6 のアドレスが割り当てられているはずである.
アドレスの確認
Router(config)# show ipv6 address
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
2001:db8:c:d80::1 prefixlen 64
Valid lifetime 11030, preferred lifetime 9230
2001:db8:c:d80:: prefixlen 60 anycast
(以下略)
Router(config)#
疎通確認
実家の Linux マシンから IX2215-02 の IPv6 アドレスに対して ssh で接続できることを確認した.
状況終了?
上記で一応やりたいことができることが検証できた.がひかり電話の検証がまだだし,せっかくなのでNVR をつなげてそこまで自動で割り当てできるか確認してみよう.
検証の続き(RA 編)
IX2215-02 の GE1 に NVR を接続し以下の定義を実施する.
DHCPv6 クライアントプロファイルの修正
修正なし.
DHCPv6 サーバプロファイルの修正
修正なし.
GigaEthernet0.0 の定義
変更なし.
GigaEthernet2.0 の定義
検証時ここには機器は接続されない.
interface GigaEthernet2.0
no ip address
ipv6 enable
ipv6 dhcp server dhcpv6_sv_ge2.0
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
GigaEthernet1.0 の定義
GigaEthernet1.0 に NVR の WAN ポートを接続する.
interface GigaEthernet1.0
no ip address
ipv6 enable
ipv6 dhcp server dhcpv6_sv_ge1.0
ipv6 nd ra enable
ipv6 nd ra other-config-flag
bridge-group 1
no shutdown
!
NVR の定義 (RA 編)
NVR の定義は以下の通り.
ipv6 prefix 1 ra-prefix@lan2::/64
ip lan1 address 192.0.2.252/24
ipv6 lan1 address ra-prefix@lan2::3/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ip lan2 address dhcp
ipv6 lan2 dhcp service client ir=on
ngn type lan2 ntt
telnetd host none
dns server dhcp lan2
dns private address spoof on
httpd host none
analog sip arrive permit 1 myname
analog sip call myname 1 sip:0987654321
analog sip arrive permit 2 off
analog sip call permit 2 off
analog supplementary-service pseudo call-waiting
analog extension emergency-call-dial type normal-number
analog extension dial prefix sip prefix="9#"
analog extension dial prefix port=1 ngn lan2
analog extension dial prefix port=2 ngn lan2
alarm entire off
sip use on
sip codec permit lan2 g711u
sshd host none
確認その 2
実家環境から IX2215-02 と NVR のグローバル IPv6 アドレスへの ping 疎通 OK.ひかり電話 OK.
検証の続き (DHCPv6-PD 編)
申し訳ないが,RA 編の結果で満足してしまって PD 編の実験は行っていない.ただし,これからこの後のことを実験する人のために私がやろうとしたことだけ記載しておく.
DHCPv6 クライアントプロファイルの修正
ipv6 dhcp client-profile dhcpv6_cl_ge0.0
option-request dns-servers
option-request ntp-servers
ia-pd redistribute pool dhcpv6_pd_pool_ge1.0 0:0:0:84::/60 nla-length 2
ia-pd subscriber GigaEthernet0.0 ::1/64
ia-pd subscriber GigaEthernet2.0 ::82:0:0:0:1/64
shutdown-delay 100
!
DHCPv6 サーバプロファイルの修正
ipv6 dhcp server-profile dhcpv6_sv_ge2.0
dns-server dhcp
!
ipv6 dhcp server-profile dhcpv6_sv_ge1.0
dns-server dhcp
ia-pd redistribute-prefix pool dhcpv6_pd_pool_ge1.0
!
GigaEthernet2.0 の定義
interface GigaEthernet2.0
no ip address
ipv6 enable
ipv6 dhcp server dhcpv6_sv_ge2.0
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
上記の定義ができれば,IX2215-02 の下につなぐ予定の NVR に(ひかり電話契約ありの定義をすれば)委譲できるはずである.
コメント