Edge 153以降でPACのIPv4判定を安定化|PacMyIpAddressIPv4ProbeAddress設定方法

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を変更するものではありません。

処理の流れは次のようになります。

  1. PACスクリプトがmyIpAddress()などを呼び出す
  2. Edgeが指定されたIPv4アドレスへのルートをOSに照会する
  3. OSがルーティングテーブルから送信インターフェイスを選ぶ
  4. そのインターフェイスの送信元IPv4アドレスがPACに返される
  5. PACが返されたアドレスを基にPROXYDIRECTを決定する

ルートプローブでは、指定したIPアドレスにアプリケーションデータが送信されるわけではありません。指定先のサーバーが応答するかを確認する機能でもなく、OSにルートと送信元アドレスを選ばせるために利用されます。(Microsoft Learn)

ポリシーの基本仕様

項目内容
ポリシー名PacMyIpAddressIPv4ProbeAddress
データ型文字列
WindowsEdge 153以降
macOSEdge 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-Fi192.168.1.25
社内VPN10.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アドレスとルートを返します。出力されたIPAddressInterfaceAliasDestinationPrefixNextHopを確認してください。(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 ルート プローブ アドレスを設定する

設定手順は次のとおりです。

  1. ポリシーを「有効」にする
  2. IPv4アドレス欄に選定したアドレスを入力する
  3. 設定を保存する
  4. 必要に応じてグループポリシーを更新する
  5. 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+VPNVPN側の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を設定します。

設定時は、次の順番で進めてください。

  1. PACがmyIpAddress()またはmyIpAddressEx()を使用しているか確認する
  2. 20.76.201.1718.8.8.8、設定候補へのルートを比較する
  3. 目的のVPNまたは社内インターフェイスへ向くIPv4アドレスを選ぶ
  4. グループポリシーなどで設定する
  5. Edgeを完全に再起動する
  6. edge://policyと実際のPAC判定を確認する
  7. VPN接続、切断、再接続を含めてテストする

Microsoftの例にあるIPアドレスをそのまま設定するのではなく、組織のルーティング、VPN、プロキシ設計に合ったプローブ先を選ぶことが重要です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次