はじめに
iPhoneではL2TP/IPsecでのIPv6を使用したリモートアクセスVPNがなぜか利用できず、だったらIKEv2を使ってみたらできたぜ!!!というお話です。
みなさんの参考になればと思います。
前提条件
- RTX830環境で構築しています。Configを改変すれば、リモートアクセスVPNのIKEv2が対応している機種であれば普通に使えるかと思います。(あくまで参考程度にお願いします。)
- インターネットの基本的な設定は完了しており、IPv6インターネットができる状態とします。
- IKEv2とL2TP/IPsecは共存する前提といたします。
- Tunnel 10をIKEv2とし、Tunnel 11をL2TP/IPsecのトンネルといたします。
- IPv6のDDNSはi.open.ad.jpを使用し、すでにDDNS設定が完了していることとします。
- L2TP/IPsecトンネルはIPv4での通信を前提とし、すでに設定している状態とします。
- あくまで参考情報としての設定となります。
IPフィルターの設定
まずIPv6のIPフィルターを使用し、必要なポートを開放します。IPv6のすべてのアドレスのポートを開放している設定になるため、セキュリティレベルを上げるのであれば、ルーターのIPのみの開放をおすすめします。
これは余談ですが、RTX830で1つだけIPv6アドレスを設定しているのであれば、i.open.ad.jpで登録されているIPv6アドレスはそのアドレスしかないので問題はありませんが、複数のアドレスを設定している場合どのアドレスがi.open.ad.jpに登録されるのか正直不明なところがあるので、フルで入力するのがいいのかもしれません。
すべてのIPv6アドレスのポートを開放する場合
ipv6 filter 1040 pass * * udp * 500
ipv6 filter 1041 pass * * esp
ipv6 filter 1042 pass * * udp * 4500
#ポート番号1701はリモートアクセスVPNでL2TP/IPsecを使用する場合に使います。
ipv6 filter 1043 pass * * udp * 1701
ルーターのIPv6アドレスをra-prefix@lan2::1で設定している場合
(実はra-prefix@lan2のコマンドはIPフィルターでも使える!!!)
ipv6 filter 1040 pass * ra-prefix@lan2::1 udp * 500
ipv6 filter 1041 pass * ra-prefix@lan2::1 esp
ipv6 filter 1042 pass * ra-prefix@lan2::1 udp * 4500
#ポート番号1701はリモートアクセスVPNでL2TP/IPsecを使用する場合に使います。
ipv6 filter 1043 pass * ra-prefix@lan2::1 udp * 1701
トンネル設定
IKEv2トンネルの設定
IKEv2のトンネル設定を行います。ローカルネームは一応i.open.ad.jpと同等のものにしていますが、多分違うやつでも行けそうな気がしています。
事前共有キーとリモートネームは、任意の値でOKです。
IKEv2ではipsec auto refresh はoffで設定してください。
tunnel select 10
description tunnel iPhone
tunnel encapsulation ipsec
ipsec tunnel 10
ipsec sa policy 10 1 esp
ipsec ike version 10 2
ipsec ike keepalive log 10 off
ipsec ike keepalive use 10 on rfc4306 10 3
#ローカルネームは別途作成しても問題ないと思います。
ipsec ike local name 10 "設定したi.open.ad.jpホスト" fqdn
#事前共有キーは任意のパスワードで入力するといいと思います。
#強力なパスワードでセキュリティレベルを上げるのも一つの手だと思います。
ipsec ike pre-shared-key 10 text 事前共有キー
#任意のリモートアドレスを設定します。端末名にするとわかりやすいと思います。
ipsec ike remote name 10 (例:iphone_15_pro.com) fqdn
ipsec ike mode-cfg address 10 1
ipsec auto refresh 10 off
tunnel enable 10
#端末に割り当てるIPアドレス範囲を設定します。DHCPスコープ範囲と被らないよう注意。
ipsec ike mode-cfg address pool 1 192.168.1.200-192.168.1.210/24
L2TP/IPsecトンネルの設定
L2TP/IPsecと共存する設定を入れます。
使用しない場合、いれる必要はありませんが、複数の選択肢を入れておきたいという意味では入れておくと良いと思います。
また、L2TP/IPsecのトンネルでは必ずipsec transport udp1701を必ず入れましょう。入れないと繋がりません。
#ユーザー設定
pp select anonymous
pp bind tunnel11
pp auth request (認証方式)
pp auth username (ユーザー名) (パスワード)
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type none
ip pp remote address pool dhcp
pp enable anonymous
#L2TP/IPsecトンネルの設定
tunnel select 11
tunnel encapsulation l2tp
ipsec tunnel 11
ipsec sa policy 11 11 esp aes256-cbc sha256-hmac
ipsec ike keepalive use 11 off
ipsec ike nat-traversal 11 on
ipsec ike pre-shared-key 11 text 事前共有キー
ipsec ike remote address 11 any
l2tp tunnel disconnect time off
ip tunnel tcp mss limit auto
tunnel enable 11
ipsec transport 11 11 udp 1701
ipsec auto refresh on
iPhoneでVPNトンネルの設定
iPhoneのVPN設定を行います。簡単です。すぐにできます。
iPhoneの設定から[一般]→[VPNとデバイス管理]→[VPN]へ行き、[VPN構成を追加]を選択し、以下の項目を入力します。
タイプ | IKEv2 |
説明 | VPNの接続名(任意の値でわかりやすいもの) |
サーバ | i.open.ad.jpの設定ホスト名 |
リモートID | ipsec ike local nameで設定した値 |
ローカルID | ipsec ike remote nameで設定した値 |
ユーザ認証 | なし |
証明証を使用 | オフ |
シークレット | ipsec ike pre-shared-keyで設定した事前共有キー |
設定が完了したら、接続をしてみましょう。問題なく接続ができれば、設定は完了です。
IPv6アドレスの設定次第によっては、ローカルからのVPN接続ができない可能性があります。
別回線からテストしたら確実です。
実はIPv4/IPv6のデュアルスタックでVPN接続ができる
余談ですが、今回はIPv6をベースにお話をしていますが、IPv4のポートがすべて使える環境であれば、このトンネル設定したあと、IPフィルターとNATの設定を行えば、IPv4でも接続が可能になります。
ぜひお試しください。
終わりに
この方法はフレッツ網にて、IPv4での通信が制限されている環境(MAP-E,DS-Lite)で一番有効的な解決方法だと思います。
今のところ、iOS端末、Android端末でしか利用できない方法だと思います。Windowsではユーザー認証なしで接続することができませんでした。MacはもしかしたらiOSとほぼ同じOSなのでできるかも!?
しかしながら、Free Wi-FiではIPv6が使えるところは割と限られている印象で、あまり意味はないかもしれないですが、環境を作っとくだけでもまだいいのかなと思います。
IPv4が制限されている環境でVPNを行いたい場合、有名どころはWireGuardを使用したVPNで制限下でも通信はできますが、別途サーバを立てたりしないといけないため、結構敷居が高いかつサーバの知識が必要になります。
そのため、ルーターのみで完結できるのは結構シンプルに運用できるのかなと思います。
ご参考までに。
参考情報
この記事が役に立ったと思ったらなにかいただけると嬉しいです。
ブログランキングクリックお願いします!
コメント