8
21
2022
自宅のインターネット接続環境を検証してみる(NURO光編)
NURO光の検証環境の構築
今回のNURO光の検証環境は、現在自宅からのインターネット接続でメインで使用しているFLET’S光のIPoE環境とPPPoEによる固定IPv4サービスをNURO光に一本化可能かどうかを検証するためのもので、何かと制約の多い一般ユーザ向けNURO光の環境で、SSLVPN接続やプライベートIPv4 over IPv6 トンネル(DS-Liteのプライベート版のようなもの)が上手く動作するのか確かめてみることが目的だ.
NURO光には一般家庭用のサービス以外に、ビジネスタイプのインターネット接続サービスがあるが、残念ながらこちらは対象が法人のみで、費用も家庭用の数倍も高くなってしまうので一般家庭での利用は現実的ではない.こちらのビジネスタイプでは、NURO光から単純にONUだけの提供を受けることが可能なようで、ユーザの自前ルータ側でPrefix Delegationでユーザに配布される56bitのprefixを完全にコントロールする事が可能なようだ.
家庭用NURO光サービスを用いて、配下のLAN側の構成を複数のネットワークセグメントで構成する場合には、正体不明なNUROのONUルータと格闘する必要があるが、以前の記事『NURO光のIPv6環境下でNWをセグメント分割してみる』で紹介したように、NURO ONUルータ配下のルータとして、NEC IXシリーズなどの細かなIPv6の設定が可能な業務用クラスのルータを用いれば、それなりのネットワークを構築することが可能だ.
今回はNURO光側のルータ設定について、簡単に説明することにする.
先ずは、NURO光のONUルータ側の設定から確認しておく.NURO光から提供されるONUルータには、今回用いたZTE F660A以外に、HUAWEI HG8045シリーズ、SYNCLAYER SGP200W などが提供されている.基本的にはユーザ側でこれらの機種を指定することはできないようで、家庭内の回線工事に来る業者(最近は個人請負業者も増えている模様)が持ってくるONUルータ(その時の手持ちのONUルータ)となってしまう.
以前、NURO光を最初に契約したときは、F660Aが割り当てられたが、今回転居により新たにNURO光を契約した際には、SGP200Wが割り当てられた.実は、2〜3日ほどSGP200Wを使ってみたのだが、思ったようにIPv6のアドレスを設定できなかったので、NURO光のサポートに連絡して、以前使用していてIPv6での接続実績の有る F660Aに交換して貰った.
NUROのONUルータとして複数のメーカの製品が存在することは調達のリスクやコスト等を考慮しての事だろうが、メーカ毎に機能や仕様が異なるのはユーザに混乱を与えるだけで、サポートのコストも馬鹿にならないのではないだろうか.NTTのフレッツホームルータのように、ユーザ側でONUとルータ機能を分離可能な仕様に変更して欲しい.
NURO光の最大の欠点は、ONU、ルータに対するユーザ側の選択肢が無いことだろう.
F660A側の設定
今回の検証環境の構築に当たり、F660A側の設定で変更しなければならない箇所を中心に説明する.LANに関する設定とセキュリティ関連項目を設定する必要がある.
・[ Network >> LAN >> DHCP Binding ]
DHCPで配下のルータのMACアドレスを登録して固定IPでの割り当てを設定しておく
ここでは、F660AのLANポート側でIPv4アドレスをDHCPで固定するための設定で、DHCPを使わずに固定IPだけで運用する場合には必ずしもここで設定する必要はない.
・[ Network >> LAN >> DHCP Server ]
F660AのLANインタフェースのIPをここで設定しておく
DHCPを使わずに固定IPだけで運用する場合には必要ないが、F660AのLAN側のIPはここで固定のIPv4アドレスを割り当てておく必要がある.接続する配下のルータのデフォルトルートの向け先として必要になる.
・[ Network >> LAN >> DHCP Server(IPv6) ]
DHCPv6 サーバの設定(今回はデフォルト設定のまま)
ここでは、F660AのLAN配下のクライアントに対して、DHCPv6によるIPv6アドレスの設定に関わる部分のようだが、デフォルトの設定のままにしてある.今回の構成のようにF660AのLAN配下のクライアントがルータのみで、ルータ側の接続インタフェース側(GigaEthernet 0.0)で ipv6 nd proxy 機能で橋渡ししている場合は、DHCPサーバは不要だと思われる.(このDHCPサーバのON/OFFでどのような振る舞いをするのかは、また別な機会に検証してみるつもりだ)
・[ Network >> LAN >> Static Prefix (IPv6) ]
IPv6 Static Prefix の設定(ここもデフォルト設定のまま)
この Static Prefix (IPv6) の設定部分も使い方がよく解らないのだが、デフォルト設定(何も設定されていない)のままにしてある.試しに、ここで固定prefixを与えてみたが、ここで設定した値が、追加のprefixとして配下にアドバタイズされているようだが、prefix長を60bitに設定しても、何故か実際にアドバタイズされるprefix長は64bitだった.相変わらずF660AのIPv6の設定は謎だらけだ.
【実験君】固定Prefixとして “240d:xx:yyyy:zzf0::/60” を設定してみる
何故か”240d:xx:yyyy:zzf0::/64″ と “240d:xx:yyyy:zz00::/64″(固定Prefixを設定して居ないときの値)がRAされている
・[ Network >> LAN >> Prefix Delegation (IPv6) ]
Prefix Delegationの設定(ここもデフォルトの設定のまま)
この部分の設定は上位側のNUROルータからIPv6のアドレス情報(prefix)を受け取るための設定のようだ.ここはそのままデフォルトのままにしてある.IPv6の通信を行う必要が無ければ、RA, DHCPのチェックを外しておけば、IPv4だけの通信に限定することが可能になると思われる.(試しに一時的に外してみたところ、IPv6での通信ができなくなった)
・[ Network >> LAN >> RA Service ]
ルーターアドバタイズ(RA)に関する設定で、アドバタイズの間隔とRAのオプションフラグ(M, O)の設定で、ここもデフォルトのままの設定で問題ない.
RAに関するオプション設定(ここもデフォルトの設定のまま)
セキュリティ関連項目とポートフォワーディング関連の設定
・[ Security >> Firewall ]
セキュリティーの設定(今回はFirewall機能は働かせない)
一般的なF660Aの使用方法であれば、この部分はLAN側のセキュリティーを保つための機能なので、できる限りFirewallのセキュリティーレベルを高く保つ必要があるが、今回はF660AのLAN側(図のVL99)には一般的なクライアントデバイスを置かないので、F660A側のファイアウォール機能は全てOFFにしている.配下のIX2215やFortigate側で、より高度なFirewall機能を働かせているので、ここでFirewall機能を働かせても殆ど意味がないし、F660AのFirewallの正体が不明なので余計なお節介をされないようにしておく.
最後にアプリケーション関連項目の設定を行い、”DMZ Host” 項目でIPレベルでのフォワーディングと、”Port Forwarding” 項目でSSLVPN関連のポート転送を設定する.
・[ Application >> DMZ Host ]
F660AのLAN配下に接続された特定のDMZホスト(ここでは IX2215-2のGigaEthernet0.0ポート)に、F660Aが上流側のNUROルータから受け取ったIPパケットを、NAT変換を行いそっくりそのままDMZホストへ転送している.IPv4の設定とは別にIPv6の設定があるが、この設定は不要かもしれない.(IPv6でそのままL3ルーティングされる?)
・[ Application >> Port Forwarding ]
ポートフォワーディング設定では、アプリケーション単位のポート転送を設定する
ここでは、SSLVPNやテスト用のWEBサーバなど特定の外部公開アプリケーションに対して、F660A配下のNW機器やWEBサーバなどにポートフォワーディングさせるための設定を行っている.画面の例では、Fortgate #1 と検証用のWEBサーバに対する設定を行っている.F660A側のLANは無防備な状態なので、サーバ側のFirewallで一般からアクセスされないように接続元を制限してある.
この設定はNUROのONUルータ側の設定だけで簡単にできてしまうので、ネットワークの専門知識や特別なNW機器がなくても、NUROのユーザであれば設定を真似するだけで比較的簡単に外部にWEBカメラやサーバを公開できてしまう.一般的なレベルの人達がこの機能を使って安易にWEBカメラや各種サーバを外部に公開してしまう可能性があるので、敢えてここで警告しておくことにする.
【警告】
ネットワークやセキュリティーの専門知識を持たない人は、この機能を使って安易にWEBカメラやホムページサーバなどを外部に公開してはいけない.あっという間にWEBカメラやサーバが乗っ取られて、ボットネットの踏み台にされてしまい、あなた自身が犯罪に加担する立場(加害者)に立たされてしまう事になる.
IX2215-2 側の設定
基本的には、前の記事で紹介したFLET’S IPoEでの設定と、それ程大きな違いはないが、NURO側のF660Aに Prefix Delegation機能がないことや、IPv6のNSやRAの挙動が良く解らない(パケットキャプチャをしながらそれぞれの設定項目のON/OFFや設定を変えながら挙動を追って行くしか方法はなさそう)ので、IX2215側の設定も多少トリッキーなものになっているかもしれない.
とりあえず、IX2215側の各セグメントを固定IPv6アドレスに設定して、IX2215側のIPv6ルーティング機能を使用すれば、不完全ながらも配下に複数のIPv6によるLANセグメントを構成することが可能になった.
LAN配下の各セグメントが一つの64bit長のIPv6 prefixしか使えない場合は、IPv4のネットワークトポロジとIPv6のネットワークトポロジが一致しないという、おかしな事になり気持ちの事態となってしまうので、IPv6のネットワークを分割できるかどうかは重要な意味を持っている.
ip ufs-cache enable
ip route default 172.25.99.1. <-- IPv4 デフォルトルートをF660AのLANへ向ける
ip route 10.9.8.0/24 172.25.200.252
ip route 10.11.12.0/24 172.25.200.251
ip dhcp enable
ip dhcp-relay enable
ip access-list acl-vlan202 permit ip src 172.25.202.0/24 dest any
!
...
!
route-map rtmap-us2 permit 10 <-- プライベートトンネルのポリシールーティング
match ip address access-list acl-vlan202
set interface Tunnel0.0
!
...
[ DHCPv6 サーバの設定 ]
!
ipv6 dhcp server-profile dhcpv6-sv200
dns-server 2606:4700:4700::1111
dns-server 240d:10:4:5::33
!
ipv6 dhcp server-profile dhcpv6-sv202
dns-server 2606:4700:4700::1111
dns-server 240d:10:4:5::33
!
ipv6 dhcp server-profile dhcpv6-sv206
dns-server 2606:4700:4700::1111
dns-server 240d:10:4:5::33
!
...
[ インタフェースの設定 ]
interface GigaEthernet0.0 <-- F660AのDMZ Host設定でこのポートにIPパケットを転送する
description Nuro-DMZ
ip address dhcp <-- DHCPサーバ側で固定IP割り当てを設定してある
ip napt enable
ipv6 enable
ipv6 interface-identifier 00:00:00:00:00:00:00:fe
ipv6 nd ra enable
ipv6 nd ra other-config-flag
ipv6 nd proxy GigaEthernet1.0 <-- IPv6 ND Proxy 機能をダミーのGigaEthernet1.0との間で設定している
ipv6 filter dhcpv6-list 1 in
ipv6 filter icmp6-all 2 in
ipv6 filter icmp6-nd 4 in
ipv6 filter ip-tunnel-allow 5 in
ipv6 filter reject-all 100 in
ipv6 filter dhcpv6-list 1 out
ipv6 filter icmp6-all 2 out
ipv6 filter ip-tunnel-allow 5 out
ipv6 filter dyn-outbound 100 out
no shutdown
!
interface GigaEthernet1.0 <-- 今回はこのポートは使用していない(ダミー)
description IPv6-NDProxy-Client
no ip address
ipv6 enable
ipv6 interface-identifier 00:00:00:00:00:00:c7:fe
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
...
interface GigaEthernet2:1.1
description VLAN200-Nuro-Dual
encapsulation dot1q 200 tpid 8100
auto-connect
ip address 172.25.200.254/24
ip dhcp binding vlan200profile
ipv6 enable
ipv6 address 240d:xx:yyyy:zzc8::fe/64 <-- 固定IPv6アドレスを設定
ipv6 dhcp server dhcpv6-sv200
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
interface GigaEthernet2:1.2
description VLAN202-Nuro-IPv4-USGW
encapsulation dot1q 202 tpid 8100
auto-connect
ip address 172.25.202.254/24
ip dhcp binding vlan202profile
ip policy route-map rtmap-us2
ipv6 enable
ipv6 address 240d:xx:yyyy:zzca::fe/64 <-- 固定IPv6アドレスを設定 (RA, DHCPv6機能は OFF)
no shutdown
!
interface GigaEthernet2:1.3 <-- IPv4のみのVLAN(IPv6はOFF)
description VLAN204-Nuro-IPv4
encapsulation dot1q 204 tpid 8100
auto-connect
ip address 172.25.204.254/24
ip dhcp binding vlan204profile
no shutdown
!
interface GigaEthernet2:1.4 <-- IPv6のみのVLAN(IPv4はOFF)
description VLAN206
encapsulation dot1q 206 tpid 8100
auto-connect
no ip address
ipv6 enable
ipv6 address 240d:xx:yyyy:zzce::fe/64 <-- 固定IPv6アドレスを設定 (RA, DHCPv6機能はON)
ipv6 dhcp server dhcpv6-sv206
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
interface GigaEthernet2:1.7
description VLAN250
encapsulation dot1q 250 tpid 8100
auto-connect
ip address 172.25.250.253/24
no shutdown
!
...
[ プライベートTunnel インタフェース]
interface Tunnel0.0
description VPN-Gateway-US
tunnel mode 4-over-6
tunnel adjust-mtu 1400
tunnel destination 2001:----:----:----:----:----:----:8151
tunnel source GigaEthernet2:1.2
ip address 192.0.0.2/30
ip tcp adjust-mss auto
ip napt enable
no shutdown
!
IX2215-2の稼働状況を見てみる.
[ IPv6アドレス情報 ]
ix2215-02(config)# show ipv6 addr
Interface GigaEthernet0.0 is up, line protocol is up
Link-local address(es):
fe80::fe prefixlen 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:ff00:0
ff02::1:ff00:fe
Interface GigaEthernet1.0 is down, line protocol is down
Interface GigaEthernet2:1.1 is up, line protocol is up
Global address(es):
240d:xx:yyyy:zzc8::fe prefixlen 64
240d:xx:yyyy:zzc8:: prefixlen 64 anycast
Link-local address(es):
fe80::26a:fbff:fee3:dbfe prefixlen 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:2
ff02::1:ff00:0
ff02::1:ff00:fe
ff02::1:ffe3:dbfe
Interface GigaEthernet2:1.2 is up, line protocol is up
Global address(es):
240d:xx:yyyy:zzca::fe prefixlen 64
240d:xx:yyyy:zzca:: prefixlen 64 anycast
Link-local address(es):
fe80::26b:fbff:fee3:dbfe prefixlen 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:ff00:0
ff02::1:ff00:fe
ff02::1:ffe3:dbfe
Interface GigaEthernet2:1.4 is up, line protocol is up
Global address(es):
240d:xx:yyyy:zzce::fe prefixlen 64
240d:xx:yyyy:zzce:: prefixlen 64 anycast
Link-local address(es):
fe80::26d:fdff:fee3:dbfe prefixlen 64
fe80:: prefixlen 64 anycast
Multicast address(es):
ff02::1
ff02::2
ff02::1:2
ff02::1:ff00:0
ff02::1:ff00:fe
ff02::1:ffe3:dbfe
Interface Loopback0.0 is up, line protocol is up
Orphan address(es):
::1 prefixlen 128
Interface Loopback1.0 is up, line protocol is up
Interface Null0.0 is up, line protocol is up
Interface Null1.0 is up, line protocol is up
ix2215-02(config)#
[ DHCPv6 関連情報 ]
ix2215-02(config)# show ipv6 dhcp client
DHCPv6 client is disabled
System DUID 00:03:00:01:00:aa:bb:cc:db:fe
ix2215-02(config)# show ipv6 dhcp server
DHCPv6 server is enabled
System DUID 00:03:00:01:00:aa:bb:cc:db:fe
Statistics:
Information request-reply:
1 receive, 0 drops, 62852 seconds ago
1 send, 62852 seconds ago
Interface GigaEthernet2:1.1 is active
Neighbor fe80::18b4:aaaa:bbbb:f729 is active
Client identifier 00:01:00:01:aa:bb:cc:50:50:dd:ee:22:ef:ed
DNS Servers:
2606:4700:4700::1111
240d:10:4:5::33
Statistics:
Information request-reply:
1 receive, 0 drops, 62852 seconds ago
1 send, 62852 seconds ago
Interface GigaEthernet2:1.4 is active
No neighbor
[ プライベート IPv4 over IPv6 Tunnel の情報 ]
ix2215-02(config)# show int Tunnel1.0
Interface Tunnel1.0 is administratively down
Fundamental MTU is 0 octets
Current bandwidth 4G b/s, QoS is disabled
Datalink header cache type is none: 0/0 (standby/dynamic)
Dialer auto-connect is enabled
Inbound call is enabled
Outbound call is enabled
Dial on demand restraint is disabled, 0 disconnect
SNMP MIB-2:
ifIndex is 1204
Logical INTERFACE:
Elapsed time after clear counters 18:05:32
0 packets input, 0 bytes, 0 errors
0 unicasts, 0 non-unicasts, 0 unknown protos
0 drops, 0 misc errors
0 output requests, 0 bytes, 0 errors
0 unicasts, 0 non-unicasts
0 overflows, 0 neighbor unreachable, 0 misc errors
0 link-up detected, 0 link-down detected
Encapsulation TUNNEL:
Tunnel mode is not specified
Statistics:
0 packets input, 0 bytes, 0 errors
0 packets output, 0 bytes, 0 errors
ix2215-02(config)# ping 192.0.0.1
PING 192.0.0.2 > 192.0.0.1 56 data bytes
64 bytes from 192.0.0.1: icmp_seq=0 ttl=64 time=117.478 ms <-- FLET'S IPoE(Transix)より若干遅延が大きい
64 bytes from 192.0.0.1: icmp_seq=1 ttl=64 time=116.282 ms (FLET'Sは 88ms 程度)
64 bytes from 192.0.0.1: icmp_seq=2 ttl=64 time=117.366 ms
64 bytes from 192.0.0.1: icmp_seq=3 ttl=64 time=117.763 ms
64 bytes from 192.0.0.1: icmp_seq=4 ttl=64 time=115.657 ms
--- 192.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 115.657/116.909/117.763
ix2215-02(config)#
Nuroでもポートフォワード転送を使用すると、SSLVPNで外部から接続可能となる
VPN接続時にNuro側の経路で外部へ接続していることを確認(Split-Tunnelは設定していない)