【windows10】VPN接続で中々接続できなかったときの備忘録
VPN用のアカウントや事前共有キーなどをもらったんだけど、windows10で上手くVPN接続ができなかった時の備忘録
windows10でVPN接続するための流れ
参考サイト通りやれば問題ないのでざっくりとした流れだけ書いておく
VPNの追加
まず、「VPN」とはVirtual Private Network」の略で、「仮想専用線」を用意し安全な経路を使ってデータをやり取りする仕組み
「認証」「暗号化」「トンネリング」の3つの技術から成り立っており、昨今だと在宅ワークしながら社内サーバーにアクセスする時に使ったりする
実際の追加方法
- 「設定」→「ネットワークとインターネット」→「VPN」→「VPN接続を追加する」をクリックして「VPN接続を追加」画面を呼ぶ
- 「VPNプロバイダー」→Windows(ビルトイン)
「接続名」→任意(○○-VPNとか)
「サーバー名またはアドレス」→DOS名かIPアドレス
「VPNの種類」→事前共有キーを使ったL2TP/IPsec(事前共有キーを貰ってたので)
「サインイン情報の種類」→ユーザー名とパスワード(事前に貰ってたので)
「ユーザー名」と「パスワード」をそれぞれ入力
上記が終わったら「保存」→VPNが追加される
次にアダプターの設定を操作する必要性があるよう
アダプターの設定
アダプターとは「仲介役」という意味で、今回はVPNという「仮想専用線」がアダプターということでVPNの設定をしていく
- 関連設定にある「アダプターのオプションを変更する」をクリック
- エクスプローラーと同じレイアウトで「ネットワーク接続」が開くので、追加されたVPNを右クリックして「プロパティ」をクリック
- プロパティの「セキュリティ」タブを開き「VPNの種類→IPsecを利用した…(L2TP/IPsec)」を選択、直下の「詳細設定」で「認証に事前共有キーを使う」をチェックして「キー」を入力(「VPN接続を追加」で使ったものと同じものが入る)、「次のプロトコルを許可する」をチェック、「チャレンジハンドシェイク認証プロトコル(CHAP)(H)」と「Microsoft CHAP version 2(MS-CHAP v2)」のみチェック
- 「ネットワーク」タブを開き「インターネットプロトコルバージョン6(TCP/IPv6)」のチェックを外して「ok」ボタンを押す
L2TP(Layer 2 Tunneling Protocol)とIPsec(Security Architecture for Internet Protocol)
L2…OSI参照モデルというコンピュータ間通信の第2層「データリンク層」を指す。要は通信回線
トンネリング(Tunneling)…仮想回線を利用して離れた2点間を同一であるかのように扱えるようにする
プロトコル(Protocol)…通信するときの約束事
IPsec…暗号化と相手のホストと事前にIPsecで使う暗号の種類や暗号鍵を取り決めることで安全な通信を実現する仕組み
CHAP(Challenge Handshake Authentication Protocol)
PPP/P2P(Point-to-Point Protocol)という仮想専用線を用意して機器間を通信する時のユーザー認証方法
サーバがChallenge Valueという乱数を生成し、接続しようとしている側に渡し、その乱数とユーザー名、パスワードを基にして関数値を計算(メッセージダイジェスト関数値)
サーバー側も同じように計算して同じであれば通信を許可するという仕組み
一般的にはクライアント→サーバーで処理→クライアントみたいな仕組みだけど、PPP/P2Pはサーバーを通さないからサーバーの負荷が少なくそれを利用したサービスは無料で提供することができたりするみたい、lineとかskypeとかがそう
僕はここまでやっても相変わらず繋げることができなかったので「レジストリ」の設定を行った
レジストリを操作
Macなんかだとすんなり接続しているWi-FiとVPNの優先順位を変更してVPNを優先すれば解決するけど、windowsは「レジストリ」というWindowsの設定、ユーザー情報、アプリケーション情報、ハードウェア情報など、パソコンに関するあらゆる情報が格納されているデータベースに「AssumeUDPEncapsulationContextOnSendRule」というファイルを追加する必要性がある
- windowsキーを押し「レジストリ エディター」を検索し起動するか、「ファイル名を指定して実行」を検索して「regedit」を入力し「レジストリエディター」を起動する
- 「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent」へ移動
- 「編集」→「新規」→「DWORD(32ビット)値」をクリックし「PolicyAgent」ディレクトリ内に
AssumeUDPEncapsulationContextOnSendRule
を作成する - 作成したファイルを「右クリック」→「修正」→「値のデータ」を「2」にして「ok」
- 「レジストリエディター」を閉じ、再起動をするとVPN接続ができるようになる
「AssumeUDPEncapsulationContextOnSendRule」の値を「2」にすることでサーバーとクライアントがNATデバイスの背後にあっても紐づけができて接続できるようになるみたい
最初にも書いてるけど参考サイト↓