IPv6アドレスプレフィックスを委譲(再委譲、再委任とも)できる環境をIX2215で構築することができた。これで運用中でもDHCPv6-PD関連の検証できることができるようになった。
今回はこの環境を利用して、NVR700WのポートベースVLANを切りつつIPv6のルータとして利用可能かどうかを検証してみる。これができるとこれ一台で3セグメント以上(家庭内LANが2セグメント以上)のルータとして利用できてうれしい。(でももうIX2215に置き換えていて不要だけど…)
※2023/11/17 IPアドレスの一部を例示用IPアドレスへ変更
NVR700WでポートベースVLAN設定
ポートベースVLANを設定する。なお、これはマニュアルの中では「LAN インターフェースの動作タイプの設定」の機能の中の「LAN 分割機能」と記載されている。またマニュアルのその項には、「この機能はNVR510では利用できない」と記載がある。NVR510時代は、サーバセグメント用のルータを別途用意していた。
初期化
NVR700Wを初期化するため以下のコマンドを実行する.
# cold start
以下のプロンプトが出たらadministratorのパスワードを入力する.
Password:
起動ログ
RTFS formatting..... Done.
Restarting ...
NVR700W BootROM Ver. 1.00
Copyright (c) 2016 Yamaha Corporation. All Rights Reserved.
Press 'Enter' or 'Return' to select a firmware and a configuration.
Default settings : exec0 and config0
Starting with default settings.
Starting with exec0 and config0 ...
NVR700W Rev.15.00.23 (Mon Jun 13 12:40:35 2022)
Copyright (c) 1994-2022 Yamaha Corporation. All Rights Reserved.
To display the software copyright statement, use 'show copyright' command.
00:
Memory 256Mbytes, 2LAN, 1ONU, 1WWAN
Password:
NVR700W Rev.15.00.23 (Mon Jun 13 12:40:35 2022)
Copyright (c) 1994-2022 Yamaha Corporation. All Rights Reserved.
To display the software copyright statement, use 'show copyright' command.
00:
Memory 256Mbytes, 2LAN, 1ONU, 1WWAN
The login password is factory default setting. Please request an administrator to change the password by the 'login password' command.
>
初期設定(sshログインできるまで)
sshログインできる環境設定.
login password *
administrator password *
login user root *
user attribute connection=serial,remote,http gui-page=dashboard login-timer=300 host=192.0.2.0
user attribute root connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=1800
console character en.ascii
console columns 200
console lines infinity
analog supplementary-service pseudo call-waiting
analog extension dial prefix sip prefix="9#"
sshd service on
sshd host key generate *
DHCP設定やDNS設定は削除しておく.
ポートベースVLAN設定
ポートベースVLANを設定するには以下のコマンドを実行する.これでLAN1の4ポートがvlan1からvlan4までの4つのVLANとして利用可能となる.
lan type lan1 port-based-option=divide-network
lan1の定義が自動的にvlan1に引き継がれる.
lan type lan1 port-based-option=divide-network
ip vlan1 address 192.0.2.254/24
vlan1~vlan4のポートは割り当てを変更することができる.なお,lan1.1はLAN1の一番左のポート,…,lan1.4はLAN1の一番右の物理ポートをさす.vlan port mappingを明に行わない場合は,以下の定義が行われているものとして動作する.
vlan port mapping lan1.1 vlan1
vlan port mapping lan1.2 vlan2
vlan port mapping lan1.3 vlan3
vlan port mapping lan1.4 vlan4
DHCPv6-PDによる割り当ての場合
各VLANにIPv6アドレスを割り当ててみる。IPv4に関しては定義を行っていない。
WANとvlan1の定義
まずvlan1のみにIPv6アドレスを割り当ててみよう.NVRに次のような定義を投入し,IX2215のポートとNVRのWANポート(LAN2)を接続してみる.なお,IXの定義はこちらのものを利用している.
ipv6 routing on
ipv6 route default gateway dhcp lan2
ipv6 prefix 1 dhcp-prefix@lan2::1/64
ipv6 prefix 2 dhcp-prefix@lan2::1:0:0:0:1/64
ipv6 prefix 3 dhcp-prefix@lan2::2:0:0:0:1/64
ipv6 prefix 4 dhcp-prefix@lan2::3:0:0:0:1/64
ipv6 prefix 5 dhcp-prefix@lan2::4:0:0:0:1/64
ipv6 vlan1 address dhcp-prefix@lan2::1:0:0:0:1/64
ipv6 vlan1 prefix dhcp-prefix@lan2::1:0:0:0:1/64
ipv6 vlan1 rtadv send 2 o_flag=on
ipv6 vlan1 dhcp service server
ip lan2 address dhcp
ipv6 lan2 address dhcp
ipv6 lan2 dhcp service client
以下のようになった。
# show ipv6 address
VLAN1 scope-id 1 [down]
Received: 129 packets 28869 octets
Transmitted: 12 packets 936 octets
global 2001:db8:0:81::1/64 (tentative)
global 2001:db8:0:81:dead:dead:dead:dead/64 (tentative)
(略)
LAN2 scope-id 2 [up]
Received: 13 packets 1130 octets
Transmitted: 6 packets 616 octets
global 2001:db8:0:80:dead:dead:dead:dead/60 (lifetime: 12587/14387)
(略)
LAN2のプレフィックスは/60になっている。
vlan2~vlan4の定義
vlan2~vlan4にもipv6向けの以下の定義を設定してみる.
ipv6 vlan2 address dhcp-prefix@lan2::2:0:0:0:1/64
ipv6 vlan2 prefix dhcp-prefix@lan2::2:0:0:0:1/64
ipv6 vlan2 rtadv send 3 o_flag=on
ipv6 vlan2 dhcp service server
ipv6 vlan3 address dhcp-prefix@lan2::3:0:0:0:1/64
ipv6 vlan3 prefix dhcp-prefix@lan2::3:0:0:0:1/64
ipv6 vlan3 rtadv send 4 o_flag=on
ipv6 vlan3 dhcp service server
ipv6 vlan4 address dhcp-prefix@lan2::4:0:0:0:1/64
ipv6 vlan4 prefix dhcp-prefix@lan2::4:0:0:0:1/64
ipv6 vlan4 rtadv send 5 o_flag=on
ipv6 vlan4 dhcp service server
以下のようになった.
# show ipv6 address
VLAN1 scope-id 1 [down]
Received: 129 packets 28869 octets
Transmitted: 12 packets 936 octets
global 2001:db8:0:81::1/64 (tentative)
global 2001:db8:0:81:dead:dead:dead:dead/64 (tentative)
(略)
LAN2 scope-id 2 [up]
Received: 17 packets 1588 octets
Transmitted: 10 packets 1076 octets
global 2001:db8:0:80:dead:dead:dead:dead/60 (lifetime: 12592/14392)
(略)
ONU1 scope-id 3 [down]
Received: 0 packet 0 octet
Transmitted: 0 packet 0 octet
link-local ff02::1/64
link-local ff02::2/64
VLAN2 scope-id 5 [down]
Received: 1 packet 109 octets
Transmitted: 0 packet 0 octet
global 2001:db8:0:82::1/64 (tentative)
global 2001:db8:0:82:dead:dead:dead:dead/64 (tentative)
(略)
VLAN3 scope-id 6 [down]
Received: 0 packet 0 octet
Transmitted: 0 packet 0 octet
global 2001:db8:0:83::1/64 (tentative)
global 2001:db8:0:83:dead:dead:dead:dead/64 (tentative)
(略)
VLAN4 scope-id 7 [down]
Received: 174 packets 38138 octets
Transmitted: 0 packet 0 octet
global 2001:db8:0:84::1/64 (tentative)
global 2001:db8:0:84:dead:dead:dead:dead/64 (tentative)
(略)
意図どおりの割り当てになっているようだ.これで通信ができればいいが…結果は?
疎通確認
LAN1ポートの右から二番目(port 2)にPCをさしたところ,2001:db8:0:82のアドレスが割り当てられ,右から三番目(port 3)だと2001:db8:0:83のアドレスが割り当てられた.双方,実家側のサーバのグローバルIPv6アドレスに向けてssh接続が可能であった.その後,port 1とport 4にPCを接続しそれぞれのIPv6アドレスにpingを投げたところそれぞれ応答があった.(IPv4に関しては,リンクローカルアドレスが設定されていた)
なお,その時の経路情報は以下のとおり.
# show ipv6 route
Destination Gateway Interface Type
default fe80::dead:dead:dead:dead LAN2(DHCP) static
2001:db8:0:80::/60 - LAN2 implicit
2001:db8:0:81::/64 - VLAN1 implicit
2001:db8:0:82::/64 - VLAN2 implicit
2001:db8:0:83::/64 - VLAN3 implicit
2001:db8:0:84::/64 - VLAN4 implicit
#
結論
DHCPv6-PDとポートベースVLANの組合せは問題なく動作する.ただし,ここからMAP-EやDS-Liteのトンネルを掘れるかどうかは未検証.
RAによる割り当ての場合
RAによる割り当てだから/64のプレフィックスを一つしかもらえないんだから,4つのVLANに割当ることってどうしても無理だと思う.おそらく,どれか一つのVLANにNDプロキシできるのだろう.
コメント