IPv6, V6プラス(IPoE/IPv4 over IPv6)

IPv6, V6プラス(IPoE/IPv4 over IPv6)についてのメモ

Understanding IPv4 over IPv6 Tunnel Technology

https://support.huawei.com/enterprise/en/doc/EDOC1100059461/7b714d10/understanding-ipv4-over-ipv6-tunnel-technology

ipv4-ipv6

Example for Configuring an IPv4 over IPv6 Tunnel

https://support.huawei.com/enterprise/en/doc/EDOC1100125859/e12880d3/example-for-configuring-an-ipv4-over-ipv6-tunnel

V6プラスによる光ケーブルネット接続サービス

以下V6プラス対応のルータを提供しているTP−LINK社のモデル一覧と、V6プラスサービスを提供しているプロバイダ一覧です(07-26-2022時点)。

V6プラス限定のサービスであるSo-net光minicoのトライアルキャンペーンに申し込みました。

注意点

V6プラス対応の専用のルータが必要。

プロバイダから通常クライアント側に割り当てられるグローバルIPは1つですが、ポートは 0番~65535番まで原則自由に使用できます。このため標準ポート番号でクライアント側で各種サーバを公開することが可能です(ウェブサーバであれば80番と443番)。

V6プラスの場合、固定のグローバルIP(IPv4,IPv6)は割当てられますが、IPv4のみ使用出来るポートに制限が設けられています。割当てられているポート総数は240個で、番号は16個の連番が15組です。こちらから番号の指定は出来ません。

サーバを公開したり外部からのアクセス用途で本サービスを導入する場合、ポートフォワーディングの設定が必須となります。オンラインゲームや会議など特定のポートを指定したサービスを利用する際は注意が必要です(利用できない、または利用する際にひと手間かかる)。

速度に関しては上下共に100-200Mbps前後出るときはありますが、プライムタイムは速度が1/10程まで低下、速度のバラツキが大きくストリーミング視聴中に低解像度へ移行または頻繁に途切れます。(ちなみにファミリータイプで契約)。午後12-16時の時間帯で速度が大幅に低下(1-2時間続く。有線LANでも確認。下り1Mbps以下、上りは50-80Mbps。上りが速いだけで実質この時間は利用できません)、お勧めできるサービスではありません。

—> 速度制限が1Mbps以下まで落ち込む頻度が高いです。速度制限中はADSL並の1Mbps前後にしているようで、やはり加入しない方が良いでしょう。ちなみにヘビーユーザではありません。解約検討中。

混雑時でも下り数10Mbpsの速度は保証すると謳うべきでしょう。ADSL並はさすがに酷すぎます。

以下MTUの調整は、上記の速度低下とは無関係の内容です。

パケットのヘッダーのためか、MTU 値が速度に大きく影響します。MTU:1400 前後が最適値。MTUの設定については下記参照(Ubuntu 20.04, 22.04)。

MTUの最適値の求め方 : How to read, calculate and set MTU in Windows, Linux and OSX
https://en.code-bude.net/2017/02/20/how-to-read-calculate-and-set-mtu-in-windows-linux-and-osx/

LInuxにおけるMTU値の最適値の確認は、pingコマンドによるトライアンドエラーで行います。

$ ping -c 2 -M do -s 1432 www.google.com

上記値に28 bytes (20 bytes TCP header, 8 bytes ICMP (Ping) header) を加えた値がMTUの最適値となります。


徹底解説v6プラス(JPNE:日本ネットワークイネイブラー株式会社)

IPv6アドレス

Private network IPv6

RFC 4193

RFC 4193: Unique Local IPv6 Unicast Addresses

3.  Local IPv6 Unicast Addresses

3.1.  Format

   The Local IPv6 addresses are created using a pseudo-randomly
   allocated global ID.  They have the following format:

      | 7 bits |1|  40 bits   |  16 bits  |          64 bits           |
      +--------+-+------------+-----------+----------------------------+
      | Prefix |L| Global ID  | Subnet ID |        Interface ID        |
      +--------+-+------------+-----------+----------------------------+

   Where:

      Prefix            FC00::/7 prefix to identify Local IPv6 unicast
                        addresses.

      L                 Set to 1 if the prefix is locally assigned.
                        Set to 0 may be defined in the future.  See
                        Section 3.2 for additional information.

      Global ID         40-bit global identifier used to create a
                        globally unique prefix.  See Section 3.2 for
                        additional information.

      Subnet ID         16-bit Subnet ID is an identifier of a subnet
                        within the site.

      Interface ID      64-bit Interface ID as defined in [ADDARCH].

ローカルIPv6アドレスの作成例

PrefixLの箇所はローカルIPの場合 FD となります。これにGlobal IDの箇所の40ビット(5バイト)を組合せてIPv6のアドレス空間を定義します。

この40ビットは、タイムスタンプマシンIDを組合せた文字列をSHA-1アルゴリズムによりハッシュした値から抜出します。

タイムスタンプ

$ date +%s%N
1667828524739484659

ホストマシンID

$ cat /var/lib/dbus/machine-id
610cef4946ed46da8f71dba9d66c67fb

タイムスタンプにホストマシンIDを追加してハッシュ(16進数x40桁)

$ printf 1667828524739484659610cef4946ed46da8f71dba9d66c67fb | sha1sum
ac4bebe3c52239cffc4909223ac08d16286349e8  -

必要なのは40ビット(5バイト)なので、ここから下位の40ビット(10桁分)を抜出します。

16286349e8

これをPrefixと組合せ、IPv6のローカルIPアドレス空間を定義します。サブネットを固定するため /64 を追加します。

fd16:2863:49e8::/64

So-net光minico IPv6グローバルアドレス

無料提供のAterm WG1200HP4の使い勝手は非常に悪いです(詳細設定項目、表示される情報の乏しさ、些細な設定変更でも90秒の再起動を促されるなど)。

自前で世界市場でシェアの高いメーカ製のルータを購入したほうが良いでしょう。

IPv6グローバルアドレスについては、ダイレクトに接続する端末全てに割当てられます。
これら接続する端末は、IPv6専用のファイヤーウォールで守られているため、IPv6アドレス指定で外部からアクセスするためには、ルータの設定でこれを解除する必要があります。IPv6についてはポートの制限はありません(AAAAでのドメイン名とIPv6アドレスの紐付けには、ネームサーバへの登録が必要となります)。

注) ルータのDHCP固定割当エントリの設定で、特定の端末とDHCPから割当てられるIPv4アドレスを紐付けることにより、このIPv4アドレスに相当するポートが開放されたグローバルIPv6アドレスが割当てられるようです。

注) IPv6アドレスが割当てられていない端末(IPv6非対応)からは、IPv6のみ対応のサーバへのアクセスは出来ません。現状NUROモバイル、UQ mobile、BIGLOBE mobileなど非対応です(2023/2/14時点)。

Google PagesSpeedサービスについて

https://developers.google.com/speed/pagespeed/service/faq#ipv6enduser

現時点で、PageSpeed Service は、IPv6 アドレスのみを持つオリジン サーバーをサポートしていません。ただし、DNS A-Record と AAAA レコードを指定して、IPv4 アドレスと IPv6 アドレスを使用するように送信元サーバーを構成できます。ページ上のリソースが外部 IPv6 専用ドメインから提供される場合、ページは継続して機能しますが、リソースが書き換えられることはありません。

curlコマンドによるリモートからの動作チェック

How to check IPv6 address via command line?

What’s the proper way to use IPv6 and IPv4 DNS resolver nginx?

https://serverfault.com/questions/987029/whats-the-proper-way-to-use-ipv6-and-ipv4-dns-resolver-nginx

DNS AAAA Record

https://www.cloudflare.com/learning/dns/dns-records/dns-aaaa-record/

Cloudfrare Support for IPv6-only networks

IPv4 ダミーIP

ドキュメント中の例示として確保されたIPアドレス範囲

https://community.cloudflare.com/t/are-there-any-dummy-ips/163487

Documentation Address Blocks
 The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2),
 and 203.0.113.0/24 (TEST-NET-3) are provided for use in
 documentation.

IPv6サイトアドレス確認(AAAA Record)

Google DNS 8.8.8.8

$ dig @8.8.8.8 +short -t AAAA example.com
2001:db8:f61:a1ff:0:0:0:80