Windows 7で接続タイプを変更することはできますか?「識別されていないネットワーク」として識別されるOpenVPN接続があり、ファイアウォール内の識別されていないすべてのネットワークに特定のルールを適用したくありません。
これをどのように克服するのですか?
Windows 7で接続タイプを変更することはできますか?「識別されていないネットワーク」として識別されるOpenVPN接続があり、ファイアウォール内の識別されていないすべてのネットワークに特定のルールを適用したくありません。
これをどのように克服するのですか?
回答:
OpenVPNネットワークインターフェイスのデフォルトゲートウェイを追加する必要があります。
私が見つけた方法は、OpenVPNを使用したネットワークインターフェースを介してターゲットアドレス0.0.0.0にルートを追加することです。
この例では、ネットワーク10.20.20.0/24のIPアドレス10.20.20.20の物理インターフェースと、ネットワーク10.1.1.0/24のIPアドレス10.1.1.10/24のOpenVPN TAPインターフェース(サーバーのIPアドレスVPNネットワークは10.1.1.1です)。
1)ネットワークインターフェイスと0.0.0.0への現在のルートに関する情報を確認します。
C:\>route print -4
===========================================================================
Interface List
15...00 ff 6c 3f 5b 0c ......TAP-Win32 Adapter V9
11...00 0e 0c d9 b5 c8 ......Intel(R) PRO/1000 GT Desktop Adapter
===========================================================================
IPv4 Route table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
10.20.20.0 255.255.255.0 On-link 10.20.20.20 266
...
現在、OpenVPNネットワークインターフェイス番号は15であることがわかっています。もう1つの重要な情報は、0.0.0.0への現在のルートのメトリックです。OpenVPNネットワークの0.0.0.0への新しいルートには、物理ネットワークではなくOpenVPN接続へのネットワークトラフィック全体のリダイレクトを回避するために、現在よりも高いメトリック値が必要です(同じルートの2つのルートの場合、低いメトリックのルートが選択されます) 。
2)OpenVPNインターフェース経由で0.0.0.0へのルートを追加します:
route -p add 0.0.0.0 mask 0.0.0.0 10.1.1.1 metric 50 if 15
このコマンドは、少なくとも50のメトリックとゲートウェイ10.1.1.1を使用して、インターフェイス15を介して0.0.0.0にルートを追加します。ゲートウェイを独自のゲートウェイ(VPNネットワーク上のサーバーのIPアドレス)に置き換えます。そしてもちろん、インターフェース番号を自分のものに置き換えてください。
-p引数は、ルートを永続的なものとして追加するため、システムの再起動後も保持されます。
3)VPNサーバーに(再)接続し、ルートテーブルを再度調べます。
C:\>route print -4
...
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
0.0.0.0 0.0.0.0 10.1.1.1 10.1.1.10 80
...
ネットワークはネットワークと共有センターで識別されるようになったため、「場所を設定...」ウィンドウが表示されます;-)
上記の解決策がなぜ複雑なのか、たとえば
route add -p commands
またはOpenVPN server.confファイルに追加する
route 0.0.0.0 vpn_subnet_mask default_gateway
エラーは次のように解決するだけで解決できます。
Control Panel\Network and Internet\Network Connections
(1)OpenVPN tun / tapインターフェースを右クリックして、ステータスを選択し、詳細を選択して、IPv4 DHCPサーバーのエントリをメモします。(2)でデフォルトゲートウェイとしてこれを入力する必要があります。
(2)OpenVPN tun / tapインターフェースを右クリックし、[プロパティ]> [TCP / IPv4プロパティを開く]を選択し、[詳細設定]をクリックします。デフォルトゲートウェイの下で、[追加]をクリックして、DHCPサーバーとして使用されているものとまったく同じエントリ、メトリック「自動」を入力します。ここで、アダプタが魔法のようにプライベートとして表示されるのを待ちます。
上記の2つのソリューションとまったく同じこと(永続的なルートの追加)を実行しただけですが、これはさらに優れています-Windowsで構成されているため、再起動後も存続します。実際に「route print」と入力してcmdをチェックインすると、ルーティングテーブルに1つのエントリが追加され、永続的なルートの下に1つのエントリが表示されます。新しいルートのメトリックが物理アダプタのメトリックよりも小さい場合は、やり直し(2)、メトリックを「自動」から物理アダプタよりも高い値に変更します。
ゲートウェイ(openvpnサーバーIP)が静的である場合、追加(2)するとジョブが実行されます。
これは一部のVPN接続ではうまく機能しますが、VPNのデフォルトゲートウェイは常に変化していると言えます。つまり、コンピューターをリセットするたびに、「route add」コマンドを何度も使用する必要があります。それは受け入れられません。
Windows 7でVMwareの問題を調査しているときに、* NdisDeviceTypeというレジストリドワードに出会いました。これは、特定の仮想ネットワークアダプターを識別しようとしないようにWindowsに指示します。必要なことは、レジストリに移動してに移動することだけHKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318
です。
そこに来たらDriverDesc
、「Tap-win」の値で呼び出された文字列のキーを調べます。これは、OpenVPNが使用する仮想アダプターを扱うキーです。次に、* NdisDeviceTypeという名前のdwordを作成し、値1を割り当てます。
最後にコンピューターを再起動します。これで、未確認のネットワークが表示されないはずです。この変更を試みる前に、レジストリをバックアップすることを忘れないでください。OpenVPNを使用していて、これを行うことに不安がある場合は、これを実現するスクリプトをダウンロードできます。
これを解決するための絶対に最も簡単で最良の方法はこれを行うことだと思います:
route 0.0.0.0 0.0.0.0 vpn_gateway 50
(vpn_gatewayは変更せず、環境変数です)保存します。secpol.msc
、「ネットワークリストマネージャーポリシー」に移動しますこれにより、VPNゲートウェイIPを気にする必要がなくなり、動的VPNゲートウェイでも機能します。
これは機能しますが、TAPアダプターのIP設定を手動で変更して、さらに一歩進んだ方が良いでしょう。を使用ipconfig
して適切な設定を把握し、DNSサーバーのゲートウェイを使用します。
更新:このステップは無視してください-実行しても、IPアドレスはマスクされません。その理由はわかりませんが、それを元に戻すために考えられることはすべて実行しましたが、唯一の方法は、この手順で行ったことを取り消してコンピューターを再起動することです。
更新:これに関する問題は、Windowsの起動時に接続を開始するようにWindows 7を構成したことです。コンピューターを再起動またはシャットダウンすると、ネットワークが不明な状態に戻ることがありました。ルートはまだテーブルにあります。これを回避するには、接続するVPNクライアントの構成ファイルを変更します。追加したコマンドは次のとおりです。
#Dummy default gateway to work around Windows 'unidentified network'/'unknown network' (put a "#" in front of this)
route-metric 30
route 0.0.0.0 0.0.0.0 10.0.0.1.
メトリックは、表示されるルートテーブルを読み取ることで取得されます。
route print -4
10.0.0.1は、VPNが接続するゲートウェイです。たとえば、VPNに接続している場合、ルートテーブルは次のようになります。
-------------------------------------------------------------------------
IPv4 Route Table
-------------------------------------------------------------------------
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.100 25
0.0.0.0 128.0.0.0 10.0.0.1 10.0.7.102 30
最初のエントリは、ルーターへのルートです。2つ目はVPN接続です。これで、VPN接続ファイル(この場合はvpn.ovpn)を変更するときに、ネットワーク宛先を使用し、ネットマスクを0.0.0.0にして、ゲートウェイとして10.0.0.1を使用します。次に、メトリックが30に設定されていることを確認し、構成ファイルで30に設定します。
(コマンドまたはWindows GUIを使用して)デフォルトゲートウェイの追加を完了した場合、プライベートまたはドメインの指定をネットワークに適用することをWindowsに指示する方法が必要になる場合があります。ネットワークを誤って既にパブリックとしてラベル付けしたか、何らかの理由で「場所の設定...」プロンプトで選択する機会がなかった可能性があります。Windows 10でこのシナリオに遭遇しました。
レジストリを介してこれを設定するには、でネットワークプロファイルキーに移動しHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
ます。ここから、Profiles
キーには、コンピューターが保存したすべてのネットワークに対応するGUIDを持つキーのリストが含まれます。これらのGUIDキーを調べてProfileName
、キーの値を照合してネットワークを見つけることができます。キーで正しいネットワークを見つけたら、ネットワークキーの値Profiles
を変更しCategory
ます。
の値のCategory
値0
は、パブリックネットワークを示します。この値を変更し1
て、ネットワークをプライベートとしてラベル付けしたり2
、ネットワークをドメインネットワークとして指定したりできます。この変更を適用するには、ネットワーク接続を再初期化する必要がある場合があります。
私のWindows 7マシンでは、「Unidentified Network」はOpenVPNの問題の症状であり、原因ではありません。私の場合、修正は管理者権限を使用してOpenVPNクライアントGUIを起動することです。