rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

ひかり電話HGW PR-S300SEのIPv6スループットを確認する

2020-03-28 10:00:00 | ひかり電話
フレッツ 光ネクスト ファミリー・ハイスピードタイプ+ひかり電話+フレッツ・テレビを契約しホームゲートウェイ(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で取得される。
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)
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側へ広告される。
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)
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サーバ設定
/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;
}
「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クライアント設定
/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;
}
「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アドレス設定
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
「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設定
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)
測定時にMacbook proをGBTスイッチPORT5(VLAN1)からPR-S300SE LAN1に接続してiperf3クライアントを起動して計測した。
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の記事)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Synology DS-216J LetsEncryp... | トップ | ひかり電話 HGW PR-S300SEのD... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ひかり電話」カテゴリの最新記事