フレッツ 光ネクスト ファミリー・ハイスピードタイプ+ひかり電話+フレッツ・テレビを契約しホームゲートウェイ(HGW) PR-S300SE/GV-ONUがレンタルされている。PR-S300SEからは、ひかり電話線(主番号+マイナンバー(付加番号x2) ダブルチャネル)、TVアンテナ線、1GBTネットワーク線(ぷららV6エクスプレス/Transix)が接続されている。1GBTネットワークは、NetGear GS-116EスイッチのVLAN設定で下記のような構成で運用している。HGWのルーティング・スループット値を見つけられず性能が気になったので、HGW PR-S300SEのIPv6ルーティング・スループットを計測することにした。
ひかり電話サービスは、IPv4でHGWからNTT SIPサーバに接続される。接続情報は、DHCPで取得される。HGWのIP addressは、「118.AAA.0.0/16」のグローバルアドレスから30ビットマスクのサブネット「118.AAA.BBB.8/30」などが指定され、ゲートウェイ「118.AAA.BBB.9」、HGW「118.AAA.BBB.10」の順で設定される。指定されたサブネット内で他の機器が使用できるIPアドレスは無い。「118.AAA.0.0/16」が静的経路情報として指定されるため、HGWにdefault routeを指定してもひかり電話に影響を与える事はない。DHCP Request時にOption V-I Vendor Class(124)を指定する事で「ひかり電話関連情報」が返答される。YAMAHAのNVR500/510では、「ngn type lan2 ntt」でV-I Vendor Classが付加される。「HGWを置き換えてSIPサーバーを使う事ができる」との情報もある。
IPv6接続のPrefixは、PD(Prefix Delegation)によってHGWが取得し、DHCPv6-PDあるいは、RAによってLAN側へ広告される。
HGWは、IPv6 default gatewayをPrefix delegationを受けたDHCPv6サーバー(relay)リンクアドレスへ設定する。NGN側のgatewayは、委譲したPrefix(2409:10:XXXX:YY00::/56)宛先をDHCPv6-PD先gatewayのリンクアドレスに設定する。「ひかり電話関連情報」も「option V-I Vendor Class(16)」をDHCPv6 Requestすると返答される(現時点で「ひかり電話」は、IPv6を使用していないようだ)。
フレッツ光 IPv6接続のPrefix広告は、「ひかり電話有無によりサイズや配布方法が異なる」との情報がある。「ぷららのIPv6 PPPoE」は、「2400:7800:XXXX:YYYY::/56」だった。
HGW PR-S300SEのスループット計測方法
iperf3サーバー(Debian10(Core i7-2600)サーバー+インテル Pro/1000PT)を使い
・HGWのWAN、UNIとiperf3サーバーをブリッジ接続
・IPv6は、HGW WANからUNI先のDHCPv6 SolicitとRequestを遮断
・iperf3サーバーは、UNI先のDHCPv6からPrefix Delegationを受ける
・iperf3サーバーは、DHCPv6データを自身のDHCPv6サーバに渡す
・iperf3サーバーは、UNI先のDHCPv6をシュミレートしHGW WANからのDHCPv6に対応する
・iperf3サーバーは、「2409:10:XXXX:YY02::1/64」をiperf3アドレスとする
・インターネットからのiperf3アドレスへのアクセスを遮断する
IPv6通信は、iperf3サーバーが経路制御を行い、それ以外の通信は、ブリッジ接続でUNI先のNTT Alaxalaゲーウェイへ接続させる(下図)
「2409:10:XXXX:YY01:225:dcff:fe12:3456/64」は、DNSリクエスト・ソースアドレスとしてHGW PR-S300SEが暗黙設定している。
debian10でISC-DHCP-Clientが標準使用されているので、ISC-DHCP-Server[4.4.1-2]を使用した(ISC-DHCP-Relay[4.4.1-2]を試してみたが、Link Local Addressだと起動しなかった。ドキュメントでは、インターフェース指定で出来そう)。
DHCPv6サーバ設定「option dhcp6.vendor-opts」は、「VSIO(option Vendor-Specific Information(17))」で定義出来ると記述性も可読性も良いのだが、Multi vendorとしてDummy vendorを定義しないと有効にならず、生成されるvendor定義の順序も制御出来ない。「string」のarray定義も出来ないため、二つ以上のマイナンバー設定が出来ない。HGWでの確認をしていないが、NVR500のdhcp clientは、最初のvendor情報を暗黙的に有効データとするため、使えなかった。DHCPv6サーバは、ブリッジインターフェース「br0」での起動を予定したが、フィルタリングを考えDHCPV6クライアントと同一インターフェースを避け、「br0」と同一ネットワーク上の「enp6s0」インターフェースで起動した。
DHCPv6クライアント設定「option Vendor-Specific Information(17)」を得るためには、「option V-I Vendor Class(16)」をDHCP Requestに含める必要がある。codeを定義しsendするが送出されず。結果「ひかり電話」関連情報を得られない。Prefix Delegation応答が得られるので良しとした。
ブリッジ接続されたネットワークには、二つのDHCPv6サーバーが存在する事になるので、DHCPv6クライアントを起動しPrefix Delegationが完了してから、DHCPv6サーバを起動する事としている。一度bindされると「server-id」「client-id」が確定するため、リース元DHCPv6サーバーで「Renewal」が完了する。
iperf3サーバIPv6アドレス設定
経路情報設定
パケットフィルタは、ebtablesを使用した。
フィルタ設定「ebtables-save」で設定情報を保存し、「ebtables-restore」で再設定を試みたが、処理が完了しない。「ebtables --atomic-file someatomic.txt --atomic-save」で「--atomic-save」コマンドオプションが無いと言われ動作しない。
「DHCPv4」の動作を確認するためsyslog記録用ルールを記載している。debian10再起動でebtables設定が初期化される(/etc/network/interfacesの「br0」でifupコマンドで対応)。
GBTスイッチへ接続する各機器のPORT番号とVLAN番号
VLAN設定測定時にMacbook proをGBTスイッチPORT5(VLAN1)からPR-S300SE LAN1に接続してiperf3クライアントを起動して計測した。
IPv6通信時にHGW PR-S300SEとNTT ゲートウェイの間で「debian10 iper3サーバー」が経由されるか確認した。
計測結果
PR-S300SE(PPPoE接続未使用 / IPv6パケットフィルター使用 / 音声優先モード:なし)
各計測共iperf3で60秒間
Up/Downで若干の差異があるが、略GBTの最大スイッチ速度(926Mbps)。Retryは、Down時のサーバー側でのリトライ数。
htmlスピードテスト結果(参考値)
「電話設定」「ひかり電話共通設定」「ひかり電話設定」「音声優先モード」
(発信先がボイスワープで発信元と同じ別番号へ着信)
「音声優先」の設定でこれだけIPv6通信が制限されると思っていなかった。ひかり電話は、G.711(64Kbps)と理解していたが、iperf3計測のパケットサイズに依存するのだろうか。。。「音声優先モード」は、「なし」を選択。
ひかり電話とVPN共用でVPNスループット低下の記事を見かけた(2018/10/29の記事)。
ひかり電話サービスは、IPv4でHGWからNTT SIPサーバに接続される。接続情報は、DHCPで取得される。
DHCP
Option: (1) Subnet Mask (255.255.255.252)
Option: (3) Router (118.AAA.BBB.9)
Option: (120) SIP Servers (118.AAA.CCC.1)
Option: (121) Classless Static Route (118.AAA.0.0/16 - 118.AAA.BBB.9)
Option: (125) V-I Vendor-specific Information
Enterprise: NIPPON TELEGRAPH AND TELEPHONE CORPORATION (210)
Option 125 Suboption: 201 (HGWのMAC Address) (00:25:dc:12:34:57)
Option 125 Suboption: 202 (Tel Number) (0331231234)
Option 125 Suboption: 203 (Additional Tel Number) (0331231235)
Option 125 Suboption: 203 (Additional Tel Number) (0331231236)
Option 125 Suboption: 204 (SIP Domain) (ntt-east.ne.jp)
Option 125 Suboption: 210 (HGW Server) (www.verinfo.hgw.flets-east.jp)
Option: (51) IP Address Lease Time (14400s/4 hours)
Option: (58) Renewal Time Value (7200s/2 hours)
Option: (59) Rebinding Time Value (10800s/3 hours)
IPv6接続のPrefixは、PD(Prefix Delegation)によってHGWが取得し、DHCPv6-PDあるいは、RAによってLAN側へ広告される。
DHCPv6
Vendor-specific Information
Option: Vendor-specific Information (17)
Enterprise ID: NIPPON TELEGRAPH AND TELEPHONE CORPORATION (210)
option (201: HGWのMAC Address) (00:25:dc:12:34:57)
option (202: Tel Number) (0331231234)
option (203: Additional Tel Number) (0331231235)
option (203: Additional Tel Number) (0331231236)
option (204: SIP Domain) (ntt-east.ne.jp)
option (210: HGW Server) (www.verinfo.hgw.flets-east.jp)
Reconfigure Accept(20)
SIP Servers IPv6 Address List(22) (2404:1a8:YYYY:ZZZZ::1)
DNS recursive name server(23) (2404:1a8:7f01:a::3, 2404:1a8:7f01:b::3)
Domain Search List(24) (flets-east.jp, iptvf.jp)
Identity Association for Prefix Delegation(25)
IA Prefix(26) (2409:10:XXXX:YY00::/56,Valid lt=14400, Preferred lt=1260,T2=10800, T1=7200)
Simple Network Time Protocol Server(31) (2404:1a8:1102::a. 2404:1a8:1102::b)
フレッツ光 IPv6接続のPrefix広告は、「ひかり電話有無によりサイズや配布方法が異なる」との情報がある。「ぷららのIPv6 PPPoE」は、「2400:7800:XXXX:YYYY::/56」だった。
HGW PR-S300SEのスループット計測方法
iperf3サーバー(Debian10(Core i7-2600)サーバー+インテル Pro/1000PT)を使い
・HGWのWAN、UNIとiperf3サーバーをブリッジ接続
・IPv6は、HGW WANからUNI先のDHCPv6 SolicitとRequestを遮断
・iperf3サーバーは、UNI先のDHCPv6からPrefix Delegationを受ける
・iperf3サーバーは、DHCPv6データを自身のDHCPv6サーバに渡す
・iperf3サーバーは、UNI先のDHCPv6をシュミレートしHGW WANからのDHCPv6に対応する
・iperf3サーバーは、「2409:10:XXXX:YY02::1/64」をiperf3アドレスとする
・インターネットからのiperf3アドレスへのアクセスを遮断する
IPv6通信は、iperf3サーバーが経路制御を行い、それ以外の通信は、ブリッジ接続でUNI先のNTT Alaxalaゲーウェイへ接続させる(下図)
「2409:10:XXXX:YY01:225:dcff:fe12:3456/64」は、DNSリクエスト・ソースアドレスとしてHGW PR-S300SEが暗黙設定している。
debian10でISC-DHCP-Clientが標準使用されているので、ISC-DHCP-Server[4.4.1-2]を使用した(ISC-DHCP-Relay[4.4.1-2]を試してみたが、Link Local Addressだと起動しなかった。ドキュメントでは、インターフェース指定で出来そう)。
DHCPv6サーバ設定
/etc/dhcp/dhcpd6.conf
subnet6 fe80::/64 {
default-lease-time 14400;
preferred-lifetime 12600;
option dhcp-renewal-time 7200;
option dhcp-rebinding-time 10800;
option dhcp6.name-servers 2404:1a8:7f01:a::3,2404:1a8:7f01:b::3;
option dhcp6.domain-search "flets-east.jp","iptvf.jp";
option dhcp6.sip-servers-addresses 2404:1a8:YYYY:ZZZZ::1;
option dhcp6.sntp-servers 2404:1a8:1102::a,2404:1a8:1102::b;
option dhcp6.vendor-opts 00:00:00:d2:
00:c9:00:06:
00:25:dc:12:34:57:
00:ca:00:0a:
30:33:33:31:32:33:31:32:33:34:
00:cb:00:0a:
30:33:33:31:32:33:31:32:33:35:
00:cb:00:0a:
30:33:33:31:32:33:31:32:33:36:
00:cc:00:10:
08:6e:74:74:2d:65:61:73:74:02:6e:65:02:6a:70:00:
00:d2:00:1f:
03:77:77:77:07:76:65:72:69:6e:66:6f:03:68:67:77:0a:66:6c:65:74:73:2d:65:61:73:74:02:6a:70:00;
prefix6 2409:10:XXXX:YY00:: 2409:10:XXXX:YY00:: / 56;
}
DHCPv6クライアント設定
/etc/dhcp/dhclient.conf
option dhcp6.vendor-class code 16 = {integer 32, integer16, string};
interface "br0" {
request dhcp6.name-servers, dhcp6.domain-search, dhcp6.sntp-servers,
dhcp6.vendor-opts, dhcp6.sip-servers-addresses, dhcp6.ia-pd;
send dhcp6.vendor-class 210 6 00:15:17:34:ab:cd;
}
ブリッジ接続されたネットワークには、二つのDHCPv6サーバーが存在する事になるので、DHCPv6クライアントを起動しPrefix Delegationが完了してから、DHCPv6サーバを起動する事としている。一度bindされると「server-id」「client-id」が確定するため、リース元DHCPv6サーバーで「Renewal」が完了する。
iperf3サーバIPv6アドレス設定
ip address add 2409:10:XXXX:YY02::1/64 dev enp6s0
経路情報設定
ip -6 route add default via fe80::212:e2ff:feab:cdef dev br0
ip -6 route add 2409:10:XXXX:YY00::/56 via fe80::225:dcff:fe12:3457 dev br0
ip -6 route
2409:10:XXXX:YY00::/56 via fe80::225:dcff:fe12:3457 dev br0 metric 1024 pref medium
fe80::/64 dev enp6s0 proto kernel metric 256 pref medium
fe80::/64 dev br0 proto kernel metric 256 pref medium
default via fe80::212:e2ff:feab:cdef dev br0 metric 1024 pref medium
パケットフィルタは、ebtablesを使用した。
フィルタ設定
ebtables設定値
Bridge table: filter
Bridge chain: INPUT, entries: 1, policy: ACCEPT
-p 0x86dd -s 00:12:e2:ab:cd:ef -i enp1s0f0 --ip6-dst 2409:10:XXXX:YY02::1 -j DROP
Bridge chain: FORWARD, entries: 4, policy: ACCEPT
-p 0x86dd -s 00:25:dc:12:34:57 -o enp1s0f0 --ip6-proto udp --ip6-dport 547 --log-prefix "DHCPv6-PD" --log-ip6 -j DROP
-p 0x800 -d 00:25:dc:12:34:57 -i enp1s0f0 --ip-proto udp --ip-dport 68 --log-prefix "DHCPv4" --log-ip -j CONTINUE
-p 0x800 -s 00:25:dc:12:34:57 -o enp1s0f0 --ip-proto udp --ip-dport 67 --log-prefix "DHCPv4" --log-ip -j CONTINUE
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
「DHCPv4」の動作を確認するためsyslog記録用ルールを記載している。debian10再起動でebtables設定が初期化される(/etc/network/interfacesの「br0」でifupコマンドで対応)。
GBTスイッチへ接続する各機器のPORT番号とVLAN番号
VLAN設定
PR-S300SE UNI <-> PORT16(VLAN3)
WAN <-> PORT15(VLAN4)
LAN4 <-> PORT14(VLAN2)
NVR510 WAN(LAN2) <-> PORT13(VLAN2)
LAN1 <-> PORT12(VLAN1)
Debian10 br0-enp1s0f0 <-> PORT10(VLAN3)
enp1s0f1 <-> PORT9(VLAN4)
enp6s0 <-> PORT7(VLAN4)
IPv6通信時にHGW PR-S300SEとNTT ゲートウェイの間で「debian10 iper3サーバー」が経由されるか確認した。
macbook-pro:~ user1$ traceroute6 www11.plala.or.jp
traceroute6 to www11.plala.or.jp (2400:7800:0:3003::1:11) from 2409:10:XXXX:YY10:a0d3:4084:455a:16bf, 64 hops max, 12 byte packets
1 2409:10:XXXX:YY10::11:250 0.283 ms 0.261 ms 0.247 ms <-NVR510
2 2409:10:XXXX:YY00:225:dcff:fe12:3457 0.541 ms 0.513 ms 0.414 ms <-PR-S300SE
3 2409:10:XXXX:YY02::1 0.691 ms 0.844 ms 0.669 ms <-debian10
4 * * * <-Alaxala@NTT
5 * * *
6 * * *
7 2404:8e00:feed:ff10::2 7.567 ms <-VNE(Internet Multifeed)
2404:8e00:feed:ff0d::2 9.237 ms
2404:8e00:feed:ff0a::2 4.161 ms
8 2001:240:bb5c:101c::edfa 5.063 ms 4.590 ms 7.765 ms
9 tky009bb00.iij.net 8.546 ms 5.960 ms 7.360 ms
10 tky009ix02.iij.net 8.823 ms
tky009ix03.iij.net 6.814 ms
tky009ix02.iij.net 6.411 ms
11 * * *
12 2001:380:a110:1f::1 7.887 ms
2001:380:a080:e::1 5.778 ms
2001:380:a110:20::1 10.638 ms
13 2001:380:a060:11::2 14.410 ms
2001:380:a110:5::2 5.248 ms
2001:380:a060:11::2 9.220 ms
14 2001:380:0:501f::2 6.785 ms 12.202 ms 7.375 ms
15 2400:7800:0:50::2 8.056 ms 11.106 ms 9.138 ms
16 2400:7800:0:36::2 10.291 ms 9.412 ms 7.983 ms
17 2400:7800:0:2c::2 8.147 ms 11.239 ms 12.634 ms
18 * * *
19 * * *
20 * * *
計測結果
PR-S300SE(PPPoE接続未使用 / IPv6パケットフィルター使用 / 音声優先モード:なし)
各計測共iperf3で60秒間
Up/Downで若干の差異があるが、略GBTの最大スイッチ速度(926Mbps)。Retryは、Down時のサーバー側でのリトライ数。
htmlスピードテスト結果(参考値)
「電話設定」「ひかり電話共通設定」「ひかり電話設定」「音声優先モード」
(発信先がボイスワープで発信元と同じ別番号へ着信)
「音声優先」の設定でこれだけIPv6通信が制限されると思っていなかった。ひかり電話は、G.711(64Kbps)と理解していたが、iperf3計測のパケットサイズに依存するのだろうか。。。「音声優先モード」は、「なし」を選択。
ひかり電話とVPN共用でVPNスループット低下の記事を見かけた(2018/10/29の記事)。