ひかり電話契約で降ってくる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
なお,上記に示しているIX2215-01(自宅用)とIX2215-02(実家用)のインタフェースはひかり電話用にブリッジ設定(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)#
疎通確認
IX2215-02にssh(ipv6)を起動しフィルター設定を行い,実家のLinuxマシンから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に(ひかり電話契約ありの定義をすれば)委譲できるはずである.
コメント