Microsoft Edge 153以降で、PACスクリプトのmyIpAddress()がVPNではなくWi-Fiや有線LAN側のIPv4アドレスを返し、想定外のプロキシ判定になる場合があります。
この問題への基本的な対処は、EdgeポリシーのPacMyIpAddressIPv4ProbeAddressを設定し、組織がPAC判定に使いたいネットワークインターフェイスへルーティングされるIPv4アドレスを、プローブ先として明示することです。
重要なのは、単に到達可能なIPアドレスを設定するのではなく、WindowsやmacOSのルーティングテーブル上で、VPNや社内LANなど目的のインターフェイスが選ばれるアドレスを指定することです。設定後はEdgeの再起動が必要になります。(Microsoft Learn)
PacMyIpAddressIPv4ProbeAddressでEdgeのPAC判定を安定化
PacMyIpAddressIPv4ProbeAddressは、PACスクリプトからmyIpAddress()またはmyIpAddressEx()が呼び出された際に、EdgeがローカルIPv4アドレスを判断するための「ルートプローブ先」を指定するポリシーです。
このポリシーは、プロキシサーバーの接続先やPACファイルのURLを変更するものではありません。
処理の流れは次のようになります。
- PACスクリプトが
myIpAddress()などを呼び出す - Edgeが指定されたIPv4アドレスへのルートをOSに照会する
- OSがルーティングテーブルから送信インターフェイスを選ぶ
- そのインターフェイスの送信元IPv4アドレスがPACに返される
- PACが返されたアドレスを基に
PROXYやDIRECTを決定する
ルートプローブでは、指定したIPアドレスにアプリケーションデータが送信されるわけではありません。指定先のサーバーが応答するかを確認する機能でもなく、OSにルートと送信元アドレスを選ばせるために利用されます。(Microsoft Learn)
ポリシーの基本仕様
| 項目 | 内容 |
|---|---|
| ポリシー名 | PacMyIpAddressIPv4ProbeAddress |
| データ型 | 文字列 |
| Windows | Edge 153以降 |
| macOS | Edge 153以降 |
| Android・iOS | 非対応 |
| 推奨ポリシー | 非対応 |
| プロファイル単位 | 非対応 |
| 動的なポリシー更新 | 非対応 |
| 反映方法 | Edgeの再起動が必要 |
| 対象 | Edge内蔵のプロキシリゾルバーでPACを評価する場合 |
ネイティブまたはシステムのプロキシリゾルバーでPACを評価している構成では、このポリシーは適用されません。(Microsoft Learn)
Edge 153以降でIPv4インターフェイスが変わる理由
既定のIPv4プローブ先が変更される
Edgeはこれまで、PACのローカルIPv4アドレスを判断する際に、Edge独自の固定宛先を使用していました。
Edge 153の更新では、既定のIPv4プローブ先が次のように変更されます。
| 項目 | IPv4アドレス |
|---|---|
| 従来の既定値 | 20.76.201.171 |
| 新しい既定値 | 8.8.8.8 |
新しい値はChromiumの既定値に合わせたものです。ただし、ポリシーを未設定にした場合に使用される組み込みの宛先は、将来のバージョンで再び変更される可能性があります。(Microsoft Learn)
多くの端末では、この変更だけで問題が発生することはありません。しかし、次のような複数のネットワークインターフェイスを同時に使用する環境では影響が出る可能性があります。
- Wi-FiとVPNを同時に使用している
- 有線LANと無線LANの両方が有効になっている
- VPNがスプリットトンネル構成になっている
- Hyper-Vなどの仮想ネットワークアダプターが存在する
- VPNクライアントが特定の宛先にホストルートやポリシーベースルートを設定している
- セキュリティ製品が特定のパブリックIPアドレスにnullルートを設定している
例えば、8.8.8.8への通信がVPNではなくWi-Fi側のデフォルトルートを通る端末では、EdgeがWi-Fi側のIPv4アドレスをPACに返す可能性があります。
PACの分岐結果が変わる例
次のように、ローカルIPv4アドレスでプロキシ利用を切り替えるPACを考えます。
function FindProxyForURL(url, host) {
var localIp = myIpAddress();
if (isInNet(localIp, "10.20.0.0", "255.255.0.0")) {
return "PROXY proxy.example.com:8080";
}
return "DIRECT";
}
端末がVPN接続時に次の2つのIPv4アドレスを持っているとします。
| インターフェイス | IPv4アドレス |
|---|---|
| Wi-Fi | 192.168.1.25 |
| 社内VPN | 10.20.4.18 |
PACが10.20.4.18を受け取れば社内プロキシが選ばれます。一方、192.168.1.25を受け取るとDIRECTになり、社内サイトにアクセスできない、認証経路が変わる、通信がセキュリティゲートウェイを通らないといった問題につながります。
このような環境では、社内VPN側にルーティングされるIPv4アドレスをPacMyIpAddressIPv4ProbeAddressへ設定することで、PACに返されるインターフェイスを安定させられます。
このポリシーを設定すべき環境
すべての組織で設定が必要なわけではありません。まずPACファイルを開き、次の文字列が使われているか確認してください。
myIpAddress(
myIpAddressEx(
どちらも使用されていない場合、このポリシーを設定してもPACの判定結果は基本的に変わりません。
| 環境・症状 | 対応方針 |
|---|---|
| PACがローカルIPアドレスで分岐している | 設定を検討する |
| VPN接続時だけ誤ったプロキシが選ばれる | 優先的にルートを調査する |
| Edge 153以降でのみ挙動が変わった | 新旧プローブ先のルートを比較する |
| PACがURLやホスト名だけで分岐している | 通常は設定不要 |
| 単一インターフェイスで常に同じルートを使う | 問題がなければ設定不要 |
| Edge以外のアプリでも送信経路が誤っている | Edgeポリシーではなくルーティングを修正する |
| IPv6アドレスの選択が問題になっている | IPv6用ポリシーも確認する |
特に確認が必要なのは、VPN接続中でもインターネット通信をローカル回線へ直接流すスプリットトンネル環境です。8.8.8.8がローカル回線側へルーティングされる設計では、社内VPNのIPv4アドレスが選ばれない可能性があります。(Microsoft Learn)
プローブ先IPv4アドレスの決め方
目的のインターフェイスへルーティングされるアドレスを選ぶ
設定値は、次の条件を満たすIPv4アドレスが適しています。
- VPN接続中は目的のVPNインターフェイスへルーティングされる
- 社内LANでは社内側インターフェイスへルーティングされる
- 対象端末や拠点間でルートが安定している
- VPNクライアントの更新でルートが消えにくい
- 他のシステムや実在する外部サービスと競合しない
- 切断時や社外利用時の動作も事前に決められている
例えば、ネットワーク管理者が社内VPN向けに確実なホストルートを設定できる場合は、組織内で予約したプライベートIPv4アドレスをプローブ先として利用できます。
プローブ先の例:10.255.255.254
期待するルート:CorporateVPNインターフェイス
この場合、重要なのは10.255.255.254で実際にサーバーが稼働しているかではありません。ルーティングテーブル上で、その宛先に対する有効なルートがCorporateVPNへ向いていることが重要です。
このポリシーはルートを追加しない
PacMyIpAddressIPv4ProbeAddressを設定しても、WindowsやVPNクライアントに新しいルートが追加されるわけではありません。
候補アドレスへのルートが存在しなければ、デフォルトルートが使われ、結局Wi-Fiなど想定外のインターフェイスが選ばれる可能性があります。
また、指定先が到達不能になるルートやnullルートに一致した場合、Edgeは別のアドレス検出方法へフォールバックすることがあります。したがって、ポリシーの設定だけでなく、ルートの有効性も確認しなければなりません。(Microsoft Learn)
設定できる値と設定できない値
設定値には、CIDR表記やホスト名ではなく、単一の有効なIPv4アドレスリテラルを使用します。
設定できる形式:10.255.255.254
設定できない形式:10.255.255.254/32
設定できない形式:probe.example.com
Microsoftの仕様では、次の値は拒否されます。
- ホスト名
- 書式が不正な値
- IPv6アドレス
- ループバックアドレス
- リンクローカルアドレス
- マルチキャストアドレス
0.0.0.0/8内のアドレス- 予約済みの
240.0.0.0/4内のアドレス - 制限付きブロードキャストアドレス
プライベートIPv4アドレスはサポートされています。未設定または空文字列にすると、Edgeの組み込み既定値が使われます。(Microsoft Learn)
192.0.2.1をそのまま使わない
Microsoftのポリシードキュメントでは、設定例として192.0.2.1が示されています。ただし、これはあくまで値の形式を示す例として考えるべきです。
192.0.2.0/24は、RFC 5737でドキュメントや説明用に予約されているTEST-NET-1です。ネットワーク設計を確認せずに192.0.2.1をそのまま設定しても、目的のVPNインターフェイスが選ばれる保証はありません。(RFCエディタ)
本番環境では、次のどちらかを選ぶのが現実的です。
- 既に目的のインターフェイスへ安定してルーティングされている社内IPv4アドレス
- 組織でプローブ用として予約し、目的のインターフェイスへのルートを明示したIPv4アドレス
設定前にWindowsのルートを確認する
Windowsでは、PowerShellのFind-NetRouteを使うと、指定した宛先に対して選ばれるローカルIPv4アドレスとルートを確認できます。
まず、現在有効なインターフェイスとIPアドレスを確認します。
Get-NetIPConfiguration -All
続いて、従来のプローブ先、新しいプローブ先、設定候補の順に調査します。
Find-NetRoute -RemoteIPAddress "20.76.201.171"
Find-NetRoute -RemoteIPAddress "8.8.8.8"
Find-NetRoute -RemoteIPAddress "10.255.255.254"
Find-NetRouteは、指定したリモートアドレスへ到達するための最適なローカルIPアドレスとルートを返します。出力されたIPAddress、InterfaceAlias、DestinationPrefix、NextHopを確認してください。(Microsoft Learn)
例えば、8.8.8.8に対して次の結果が出る場合、新しい既定プローブではWi-Fi側のアドレスが選ばれると判断できます。
IPAddress : 192.168.1.25
InterfaceAlias : Wi-Fi
一方、設定候補に対して次の結果になるなら、VPN側のIPv4アドレスをPACへ返せる可能性があります。
IPAddress : 10.20.4.18
InterfaceAlias : CorporateVPN
Microsoftも、変更の影響を調査する際は、従来の宛先と新しい宛先の両方に対するルートを確認するよう案内しています。(Microsoft Learn)
グループポリシーで設定する手順
Edgeの管理用テンプレートを更新する
PacMyIpAddressIPv4ProbeAddressはEdge 153で追加されたポリシーです。グループポリシーエディターに表示されない場合は、Edgeの新しい管理用テンプレートへ更新します。
Edgeのポリシーテンプレートには、ブラウザー設定用のmsedge.admxと、言語別のmsedge.admlが含まれます。Active Directory環境では中央ストア、単体端末ではC:\Windows\PolicyDefinitionsへ配置します。(Microsoft Learn)
ポリシーを有効化する
グループポリシー管理エディターまたはローカルグループポリシーエディターを開き、次の場所へ移動します。
コンピューターの構成
└ 管理用テンプレート
└ Microsoft Edge
└ プロキシ サーバー
環境によっては、ユーザーの構成側でも設定できます。
次のポリシーを開きます。
PAC スクリプトの IPv4 ルート プローブ アドレスを設定する
設定手順は次のとおりです。
- ポリシーを「有効」にする
- IPv4アドレス欄に選定したアドレスを入力する
- 設定を保存する
- 必要に応じてグループポリシーを更新する
- Edgeを完全に終了して再起動する
gpupdate /force
ポリシーのADMX名はPacMyIpAddressIPv4ProbeAddressで、推奨設定としては利用できません。変更を有効にするにはEdgeの再起動が必要です。(Microsoft Learn)
レジストリで設定する方法
単体端末での事前検証では、レジストリから設定することもできます。
端末全体に設定する例は次のとおりです。コマンドプロンプトまたはPowerShellを管理者として起動してください。
reg add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "PacMyIpAddressIPv4ProbeAddress" /t REG_SZ /d "10.255.255.254" /f
設定内容は次のとおりです。
| 項目 | 値 |
|---|---|
| レジストリパス | SOFTWARE\Policies\Microsoft\Edge |
| 値の名前 | PacMyIpAddressIPv4ProbeAddress |
| 値の種類 | REG_SZ |
| 値のデータ | プローブ先IPv4アドレス |
元に戻す場合は、値を削除します。
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "PacMyIpAddressIPv4ProbeAddress" /f
レジストリを直接設定する方法は、検証やトラブルシューティングには便利です。本番環境で多数の端末へ展開する場合は、グループポリシーや組織で使用している端末管理サービスから配布した方が、設定の追跡やロールバックを行いやすくなります。レジストリの値名と型はMicrosoftのポリシー仕様で定義されています。(Microsoft Learn)
macOSで設定する場合
macOSでもEdge 153以降で利用できます。管理対象のEdge設定に、次のキーと文字列値を追加します。
<key>PacMyIpAddressIPv4ProbeAddress</key>
<string>10.255.255.254</string>
実際の配布では、組織で利用しているMDMの構成プロファイルに設定します。Windowsと同様に、設定後はEdgeを再起動してください。(Microsoft Learn)
設定後に確認するポイント
edge://policyで適用状況を確認する
Edgeを再起動したら、アドレスバーに次のURLを入力します。
edge://policy
ポリシー一覧にPacMyIpAddressIPv4ProbeAddressが表示され、値が意図したIPv4アドレスになっていることを確認します。
確認項目は次のとおりです。
- ポリシー名が表示されている
- 設定値が正しい
- ステータスにエラーが出ていない
- Edgeのバージョンが153以上
- 再起動後に確認している
Microsoftは、Edgeポリシーの適用確認にedge://policyを使用するよう案内しています。(Microsoft Learn)
接続状態ごとにテストする
オフィス内で一度成功しただけでは、十分な確認とはいえません。少なくとも次の状態でテストしてください。
| テスト状態 | 確認内容 |
|---|---|
| 社内LANのみ | 社内プロキシが正しく選ばれるか |
| 社外Wi-Fiのみ | 想定したDIRECTまたは外部用プロキシになるか |
| 社外Wi-Fi+VPN | VPN側のIPv4アドレスでPACが判定されるか |
| VPN切断後 | 通信不能や誤ったプロキシ固定が起きないか |
| VPN再接続後 | Edge再起動なしの接続変更でも期待する結果になるか |
| スリープ復帰後 | 古いインターフェイス情報の影響がないか |
特に、VPN接続、切断、再接続の順で確認することが重要です。起動直後は正常でも、VPNの再接続後にルートやインターフェイスメトリックが変わる製品があります。
設定しても改善しない場合の確認項目
| 症状 | 主な確認ポイント |
|---|---|
edge://policyに表示されない | Edgeのバージョン、ADMX、GPOの適用範囲を確認する |
| ポリシーにエラーが出る | ホスト名、CIDR、IPv6、不正なIPv4を入力していないか確認する |
| Wi-Fi側のIPが選ばれ続ける | プローブ先がデフォルトルートへ流れていないか確認する |
| VPN接続中だけ動作しない | VPNクライアントが対象ルートを追加しているか確認する |
| VPN切断後に挙動が不安定になる | プローブ先の切断時ルートとフォールバックを確認する |
| ポリシーを設定してもPAC結果が変わらない | PACがmyIpAddress()またはmyIpAddressEx()を使用しているか確認する |
| IPv6環境で判定が変わる | PacMyIpAddressIPv6ProbeAddressの必要性を確認する |
| Edge以外でも同じ問題が起きる | OS、VPN、ルーター側の経路設計を見直す |
ポリシーが適用済みでも、Edgeが内蔵プロキシリゾルバーではなくネイティブまたはシステムリゾルバーを使っている場合、この設定はPAC評価に影響しません。(Microsoft Learn)
Edgeポリシー・ルーティング・PAC修正の使い分け
PacMyIpAddressIPv4ProbeAddressは便利ですが、あらゆるネットワーク問題を解決するポリシーではありません。
| 問題の範囲 | 適した対応 |
|---|---|
| Edge 153以降でのみPAC判定が変わる | Edgeのプローブ先ポリシーを設定する |
| OS全体で誤ったインターフェイスが選ばれる | ルーティングやVPN設定を修正する |
| すべてのブラウザーでPAC判定が不安定 | PACロジックの見直しを検討する |
| ローカルIP依存の条件が複雑化している | PACからIP依存を減らす |
| IPv4とIPv6で経路が異なる | IPv4・IPv6を個別に設計する |
既存のPACを変更すると、Edge以外のブラウザーや業務アプリにも影響する可能性があります。そのため、Edgeの既定プローブ先変更だけが原因であれば、まずEdgeポリシーで影響を限定する方法が現実的です。
一方、すべてのアプリケーションで誤った経路が選ばれている場合は、Edgeだけを調整するより、VPNクライアントやルーティングテーブルを修正した方が根本的な解決になります。
まとめ
Edge 153以降でPACのmyIpAddress()やmyIpAddressEx()が想定外のIPv4インターフェイスを参照する場合は、PacMyIpAddressIPv4ProbeAddressを設定します。
設定時は、次の順番で進めてください。
- PACが
myIpAddress()またはmyIpAddressEx()を使用しているか確認する 20.76.201.171、8.8.8.8、設定候補へのルートを比較する- 目的のVPNまたは社内インターフェイスへ向くIPv4アドレスを選ぶ
- グループポリシーなどで設定する
- Edgeを完全に再起動する
edge://policyと実際のPAC判定を確認する- VPN接続、切断、再接続を含めてテストする
Microsoftの例にあるIPアドレスをそのまま設定するのではなく、組織のルーティング、VPN、プロキシ設計に合ったプローブ先を選ぶことが重要です。

コメント