URL書き換えやリバースプロキシを利用した場合のアクセスIPとリクエストヘッダの違い

URL書き換えやリバースプロキシを利用した場合のアクセスIPと、Webアプリケーション側で受け取るリクエストヘッダの違いを紹介します。

概要

Webアプリケーションに対して、直接アクセスした場合、URL書き換えを利用した場合、リバースプロキシを利用した場合で アクセス元のIPやリクエストヘッダにどのような違いがあるか確認します。

テスト環境

今回のテストではDocomoの回線を利用してアクセスしています。
URLの書き換えには、ARR(Application Request Router)、リバースプロキシにはYARP (Yet Another Reverse Proxy)を利用しています。

IPアドレスとアクセスURLは次の通りです。
  • 153.154.117.nnn : アクセス元IP
  • 192.168.0.240 :コンテンツサーバー
  • 192.168.0.250 :URL書き換えサーバー
  • 192.168.0.251 :リバースプロキシサーバー
  • アクセス先FQDN : test.ipentec.com

直接アクセスした場合

IP (REMOTE_ADDR, Request.UserHostAddress の値)

アクセス元のIPアドレスはアクセスした端末のグローバルIPアドレス(153.154.117.nnn)になります。

リクエストヘッダ

Windows 11, Microsoft Edge でASP.NET アプリケーションにアクセスした際のリクエストヘッダです。
Hostにはアクセス先のFQDNが設定されています。
Connection:keep-alive 
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 
Accept-Encoding:gzip, deflate 
Accept-Language:ja,en;q=0.9,en-GB;q=0.8,en-US;q=0.7 
Cookie:[各種Cookieの値] 
Host:test.ipentec.com
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49 
Upgrade-Insecure-Requests:1 

URL書き換え(ARR)サーバー経由でアクセスした場合

http://test.ipentec.com/open/head/HttpHeaderDisplay.aspxhttp://192.168.0.240/open/head/HttpHeaderDisplay.aspx に書き換えてアクセスします。

IP (REMOTE_ADDR, Request.UserHostAddress の値)

アクセス元のIPアドレスはURL書き換えサーバーのIPアドレス(192.168.0.250)になります。

リクエストヘッダ

Windows 11, Microsoft Edge でASP.NET アプリケーションにアクセスした際のリクエストヘッダです。
HostにはURL書き換えによって設定された、内部のコンテンツサーバーのIPアドレスが設定されています。
X-Original-URLの項目が追加され、変換前のアクセスパスが設定されています。
アクセス元の端末のグローバルIPアドレスは、X-Forwarded-Forに記録されています。送信元のポート番号が記載されているのが特徴です。
Connection:Keep-Alive 
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 
Accept-Encoding:gzip, deflate 
Accept-Language:ja,en;q=0.9 
Cookie:[各種Cookieの値] 
Host:192.168.0.240
Max-Forwards:10 
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49 
Upgrade-Insecure-Requests:1 
X-Original-URL:/open/head/HttpHeaderDisplay.aspx 
X-Forwarded-For:153.154.117.nnn:31035 
X-ARR-LOG-ID:c3424ffb-d868-4c4d-a776-a4eaaa18aee0 

リバースプロキシ(YARP)経由でアクセスした場合

IP (REMOTE_ADDR, Request.UserHostAddress の値)

アクセス元のIPアドレスはリバースプロキシのIPアドレス(192.168.0.251)になります。

リクエストヘッダ

Windows 11, Microsoft Edge でASP.NET アプリケーションにアクセスした際のリクエストヘッダです。
Hostには内部のコンテンツサーバーのIPアドレスが設定されています。
アクセス元の端末のグローバルIPアドレスは、X-Forwarded-Forに記録されています。
また、Connection:keep-alive が無いです。
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 
Accept-Encoding:gzip, deflate 
Accept-Language:ja,en;q=0.9 
Cookie:[各種Cookieの値] 
Host:192.168.0.240 
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49 
X-Forwarded-For:153.154.117.nnn
X-Forwarded-Host:test.ipentec.com 
X-Forwarded-Proto:http 
traceparent:00-37a740b5612a1fe922afbb45ce2b38b0-55814a25f684f64c-00 
補足
[各種Cookieの値]は今回のテストでは、どのアクセス方法でも同じ値でした。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-01-03
作成日: 2022-07-13
iPentec all rights reserverd.