フレッツ網の快適なIPv6でVPNを構築する方法

注: 色々あってQiitaからの移植記事です。この記事は 2017年12月21日 頃 公開したものです。

フレッツ網のIPv6って何

フレッツ網には網内でしか通用しない、グローバルスコープのIPv6網が存在する。

このグローバルスコープなのに外に出ていくことができない厄介なIPv6アドレスは、次のような「IPv6フォールバック問題」が発生するという理由で、海外(Google等)から日本に向けてIPv6はシャットアウトする等の対応を取られそうになっていたこともある厄介なIPv6アドレスである。

  1. クライアントにはIPv4アドレスとIPv6(フレッツ網)が割り当てられている
  2. ブラウザは google.com のIPアドレスDNSに問い合わせる
  3. DNSから、Aレコード(IPv4)とAAAAレコード(IPv6)が返される
  4. ブラウザはIPv6を優先して接続を開始する
  5. フレッツ網の IPv6 はインターネットに繋がらないため、Googleに接続できない
  6. 60秒経ってブラウザはIPv6接続をあきらめる(タイムアウト)
  7. IPv6接続で応答がないのでIPv4接続を試行する

参考資料: https://www.iijmio.jp/guide/outline/ipv6/ipv6_fallback/

現在では、次の状態でIPv6インターネットに接続することができる環境が多くなったため、このような問題は起こりづらくなっている。

  • IPoEの契約がある場合
  • NTTから300番台以降のHGW1がレンタルされており、プロバイダがIPv6(PPPoE)に対応しており、プロバイダが対応している
  • 上記HGWに対応プロバイダのIPv4(PPPoE)を設定すると、自動的にIPv6(PPPoE)へ接続するようになる

フレッツ以外の固定回線のIPv6接続性に関して

モバイル回線では、VPN接続を快適に行えることはめったにないので解説を省略する。

  • 電力系光回線(Pikara/コミファ/eoなど)を利用しており、HGWを利用している場合
    • BBIQIPv6 に対応する予定はないとのこと。 (2020/07/28 時点)
  • KDDI(auひかり)を利用していて、HGWがBL170HV以外の場合(電話でIPv6使いたいので交換してほしいと伝えれば交換してもらうことが可能)
  • マンション共有インターネットはつなぐまでわからない
  • CATVはプロバイダ次第。J:COMは実質2未対応
    • DHCPv6-PD で /56 を配布する例: 山梨CATV
    • ルータ広告(RA) で /64 を配布する例: イッツコム
    • /128 で1つのIPアドレスを配布する例: J:COM
    • RAとPDの両方に対応しているプロバイダもあり、非常に興味深かったりする。契約時に必ずどんな方法でIPv6アドレスが配布されるか確認するほうが良い
  • ADSLに関しては終息に向かっており、基本的に未対応

フレッツIPv6の特徴

半固定IPが割り当てられる

基本的に変わることはないが、NTT都合(例えば、交換器の工事や機器の入れ替え)で可変する可能性があるIPv6アドレスとなっているため、接続先としてIPv6アドレスを直指定している場合にIPv6が変わるとアクセスが困難になるという問題がある。 この問題は下記のDDNSを利用することで解決が可能である。

高品質で低遅延なネットワーク

このフレッツ網でしか通信ができないIPv6であるが、回線品質は他にないほど高品質であり、網内だけで終結する通信を行った場合、次のようなスペックを誇る。

  • 800Mbpsのようにほぼイーサネットの限界まで速度が出る
  • 新潟(見附) - 東京(浅草)/直線距離約250kmをpingが往復15ms
  • 山梨(甲府) - 東京(浅草)/直線距離約100kmをpingが往復8ms
  • 千葉(千葉) - 東京(浅草)/直線距離約30km をpingが往復7ms
  • 愛媛(松山) - 東京(浅草)/直線距離約800kmをpingが往復20ms (東西間通信はmfeed利用)

フレッツVPNなどのVPNサービスと比べて以下のような違いがある。 - 秘匿性は自力で確保しなければならない - IPSecで暗号化してしまえば問題ないと考えられる - 通信速品質が高くて快適なネットワークである。

本題: VPNを繋いでみよう

簡単にVPNを試す

VPNを超簡単3に実現する方法としては、フレッツ回線を引いた拠点2箇所とCD-R2枚、NICを2枚搭載した適当なPC 2台だけで超簡単にL2VPN4が実現できてしまう 広域イーサ ネクストという、SoftEtherのサービスを利用すると、次のような手順でとても簡単にL2VPNが構築できる。

  1. 広域イーサネクストページで VPN ネットワークIDを作成する
  2. センター用CD、ブランチ用CDの2つのISOイメージファイルをダウンロードする
  3. 手順2でダウンロードしたISOをCDに焼く
  4. 拠点1/拠点2にNICが2枚刺さっているPCを設置し、片方のNICをフレッツ回線に、もう片方をLANに接続する
  5. Center側 → Branch側の順でPCを起動する(もちろん、Centerを先に起動した状態で、後日Branchを起動することも可能)
  6. L2 VPNが構築される

本格的に運用してみたい

適当なPC 2台でVPNを何も考えずに構築するのも良いが、L2接続しか対応していないVPNでは、冗長構成にしたり、大規模なネットワークを構築するのは少し難しい。

HGWの種類によっては、VPNを利用できないことも……

三菱(400MIなど)

IPv6IPSecを利用したVPNを構築すると1日に3回ほど再起動が起こる。もちろん、ひかり電話やインターネットが再起動時に利用不能になってしまうため、この機種が割り当てられている場合は、NTTに交換してもらうなどの対応が必要。

NEC(400NEなど)

IPSecVPNを張ると15Mbps程度の速度しか出ない。IP電話の共有やメールの送受信のような速度を必要としない通信では問題なく利用できる。 IPIPトンネルで利用すると85Mbps程度の速度が出るが、いくら閉域ネットワークといえども、暗号化されていない状態で通信するのは怖い。また、YAMAHA RTXシリーズではFQDNを用いたIPIPトンネルが利用できないため、IPアドレスが変化した場合、接続ができなくなるという問題がある。

沖電気(400KIなど)

特に問題なく利用できる。

単体型ONU

単体型ONUはルーティング機能がないただのブリッジのため、このような心配は一切ない

実際にYAMAHA RTXシリーズでVPNを設定する

i.open.ad.jp でDDNS用のFQDNを取得する

フレッツ網では、外に接続することはできないため利用できるDDNSサービスは限定されている。 東日本地域では以下の2つが利用可能、西日本地域ではIPoEの契約がないと i.open.ad.jp は利用できない

NTT公式のDDNS

サービス情報サイトにログインを行い、1契約あたり1つだけ登録できる ◯◯◯.aoi.flets-east.jp 形式のドメインが割り当てられる。 IPアドレスが変更になった際の変更はサービス情報サイトにログインを行い、手動で変更する必要がある。つまり、最悪、IPが変化したら設置先まで「障害対応」を行う必要がある。流石に北海道に行くとかなってしまうと金銭的にも、時間的にもつらいことになるのでおすすめしない。

筑波大学、登先生のiopen.ad.jp

誰にでも、登録無しでサクッといくつでも登録が可能な ◯◯◯.i.open.ad.jp 形式のドメインが割り当てられる。 IPアドレスが変更になった場合、指定されたIPアドレスping / ntpdate / wget 等、任意の方法 で更新ができる。 IPアドレスが変化しても自動的に更新が行える。 毎分、指定されたIPアドレスに ntpで同期するように設定しておけば、最大60秒5で接続が復帰する。

https://i.open.ad.jp/ で、希望するサブドメインを指定することによって10秒で取得ができる。 ホストキーを紛失しないために、メールアドレスを登録しておくことを推奨する。

RTXの設定を行う

ここでは、IPv6はあくまでもVPNを通すだけの目的で利用し、クライアントにはIPv6アドレスを配布しない一番かんたんな設定である。 また、インターネット側の設定は一切行っていない。 ルーティングはRIPで自動的に行われるので、双方のIPアドレスはプライベートアドレスならどんなものを設定しても疎通が取れるようになっている。

対向側ルータはCIDRを 192.168.1.1/24 などの被らない帯域に変更し、[接続相手のFQDN].i.open.ad.jp の部分にこちら側のFQDNを設定すれば良い。

以下はRTX1100でも利用可能な IKEv1 での設定例になります。

> show config
# RTX1100 Rev.8.03.94 (Thu Dec  5 19:06:16 2013)
console lines infinity
console prompt kyoten1
login timer 900
ipv6 routing on
ip lan1 address 192.168.0.1/24
ipv6 lan2 address ra-prefix@lan2::2525/64
ipv6 lan2 dhcp service client ir=on
tunnel select 1
 ipsec tunnel 1
  ipsec sa policy 1 1 esp aes-cbc sha-hmac
  ipsec ike keepalive log 1 off
  ipsec ike keepalive use 1 on heartbeat 10 6
  ipsec ike pre-shared-key 1 [IPSec共有キー]
  ipsec ike remote address 1 [接続相手のFQDN].i.open.ad.jp
 ip tunnel rip send on version 2
 ip tunnel rip receive on version 1 2
 ip tunnel tcp mss limit auto
 tunnel enable 1
tunnel select 2
rip use on
rip preference 1000
ipsec auto refresh on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.0.101-192.168.0.200
dns server 192.168.0.1
schedule at 1 */* *:00 * ntpdate [i.open.ad.jpで発行された更新用IPアドレス]

RTX1200同士などで利用する場合は以下のように IKEv2 を設定すると良いです。(VPN部分のみの抜粋)

tunnel select 2
 ipsec tunnel 2
  ipsec sa policy 2 2 esp aes-cbc sha-hmac
  ipsec ike version 2 2
  ipsec ike keepalive log 2 off
  ipsec ike keepalive use 2 on heartbeat
  ipsec ike local name 2 [接続元(自分)のFQDN].i.open.ad.jp fqdn
  ipsec ike pre-shared-key 2 [IPSec共有キー]
  ipsec ike remote name 2 [接続相手のFQDN].i.open.ad.jp fqdn
 ip tunnel tcp mss limit auto
 tunnel enable 2

実際に接続して色々試してみる

VPN上で 東京 - 新潟 間をpingしてみる

12ms程度。専用線接続より遅いが、有料で提供されるフレッツVPNワイドなどと比べると圧倒的に高速であることがわかる。

$ ping 10.81.0.254
PING 10.81.0.254 (10.81.0.254) 56(84) bytes of data.
64 bytes from 10.81.0.254: icmp_seq=1 ttl=254 time=12.6 ms
64 bytes from 10.81.0.254: icmp_seq=2 ttl=254 time=12.3 ms
64 bytes from 10.81.0.254: icmp_seq=3 ttl=254 time=12.1 ms
64 bytes from 10.81.0.254: icmp_seq=4 ttl=254 time=12.7 ms
64 bytes from 10.81.0.254: icmp_seq=5 ttl=254 time=11.9 ms
^C
--- 10.81.0.254 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4833ms
rtt min/avg/max/mdev = 11.984/12.376/12.723/0.282 ms

Sambaでサーバからファイルをダウンロードしてみる

RTX1210 同士で 動画ファイルを送受信したときの速度は安定して22MB/s (176Mbps) 程度の速度が出る

f:id:notoken3331:20200728235454p:plain
RTX1210同士で動画ファイルを転送したときの速度

このくらい速度が出る場合、以下の様なことができる。

  • 地上放送をロケーションフリー等の高画質モードでストリーミングして新潟や北海道でTOKYO MXを見る
  • 巨大なファイルを友人と高速に共有する

HGWを利用して、IPv6 PPPoE接続を行っているの場合の注意事項

VPNが安定して接続できなくなってしまうため、以下の設定を行う必要がある。理由としては i.open.ad.jp の更新が PPPoE 経由となり、本来期待しているNGN網内向けのIPv6アドレスがDDNSに登録されない可能性があるため、以下の設定を行う必要がある。

※プロバイダがIPoEにも対応しているのであれば、IPoEを利用し、プロバイダが対応していないのであればプロバイダを変更することを強くおすすめします

i.open.ad.jpを利用して様々な場所とVPNをするときの方法

IPv6(インターネット)が利用できる回線

そのまま利用が可能。

NTT西日本の場合

i.open.ad.jpはNTT西日本NGNからは利用できないため、すべての拠点でIPoEの契約を行う必要がある。 このため、NTT西日本で利用する場合は必ずIPoEの契約が必要である。

NTT東日本

  • v6オプションを契約していない:情報サイトから契約して下さい
  • v6オプションを契約している:NTT東日本同士に限って接続可能
  • IPoEを契約している:対向がIPv6に対応していればどこでも接続可能

あとがき?

L2TPv3やSoftEherはVLANパススルーができたり、DLNA(DTCP-IP)が利用できたりする。 そのためこの環境を利用して、筆者は実家(山梨)に帰省した際に、自宅環境とほぼ同じ環境で自宅に設置しているネットワーク資源を利用することができ、例えば、録り溜めたアニメを視聴したり(※TOKYO MX山梨県ほぼ全域のCATVで視聴できるため、TSストリーミングのような回線業者の迷惑になるような使い方はしていません)、友人とVPN接続を行うことで、ネットワーク資源の共有(おもに仮想化ホストのリソース共有やActiveDirectory、DBなどのスレーブを配置することによるバックアップ、NASのデータのバックアップ)などを行っている。

4年程度この仕組みを利用してVPNを利用しているが、突然切れてしまったり、混雑時間帯に数Mbpsくらいしか速度が出ないなどと言った問題は発生しておらず、快適なVPN接続が維持されている。


  1. 具体的な型番で示すと、PR-300/RT-300/RV-340PR-400/RT-400/RV-440/PR-500/RT-500/RS-500で、の部分にはメーカー名がの略称がそれぞれ入る。 KI=沖電気、NE=NEC、 MI=三菱電機、SE=住友電気、HI=日立。100番台の数字によって採用されているメーカが違う(400番台はKI/NE/MIのみ、500番台はMI/KIのみ)。

  2. IPv4の契約台数と同じ数のIPv6がもらえるが、IPv6はNAPTできず、ルータがあっても1台のPCからしか使うことができないため実質未対応という表現をする(2020/07/28時点)

  3. 広域イーサネクストが利用できる環境はNTT東日本でv6オプションを契約しているフレッツ光ネクスト回線か、IPv6インターネットに接続可能なインターネット回線である。ただし、NTT東日本に収まらないネットワークを構築する場合は、Centerを設置する場所はIPoEを契約する必要がある。

  4. L2 VPNとは、ルーティングを行わない、スイッチ同士をLANケーブルで繋いだ状況と同じ接続を提供するVPNである。この場合、すべての拠点に接続されたクライアントはGWが設定されている回線を経由してインターネットに出ていく必要があるため、大規模なネットワークには向いていない。

  5. DDNSの更新設定を1分ごとにntpで同期したり、pingを発信した場合は実測値で2分程度で再接続される。なお、あまり現実的ではないので実際は10分~15分間隔で設定することをおすすめします。