(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022153317
(43)【公開日】2022-10-12
(54)【発明の名称】中継装置及びローカルブレイクアウトの転送方法
(51)【国際特許分類】
H04L 61/4511 20220101AFI20221004BHJP
H04L 45/302 20220101ALI20221004BHJP
H04L 45/02 20220101ALI20221004BHJP
H04L 67/564 20220101ALI20221004BHJP
【FI】
H04L61/4511
H04L45/302
H04L45/02
H04L67/564
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022049249
(22)【出願日】2022-03-25
(31)【優先権主張番号】P 2021055745
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000005290
【氏名又は名称】古河電気工業株式会社
(71)【出願人】
【識別番号】505173245
【氏名又は名称】古河ネットワークソリューション株式会社
(74)【代理人】
【識別番号】100114292
【弁理士】
【氏名又は名称】来間 清志
(74)【代理人】
【識別番号】100205659
【弁理士】
【氏名又は名称】齋藤 拓也
(72)【発明者】
【氏名】池浦 晃至
(72)【発明者】
【氏名】菊池 正
(72)【発明者】
【氏名】横山 栄司
(72)【発明者】
【氏名】小林 康宏
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA01
5K030KA05
5K030LB05
5K030MD07
(57)【要約】
【課題】ローカルブレイクアウトを行わない場合に、性能が劣化せず、リソースの消費量が大きくならない中継装置を提供すること。また、ローカルブレイクアウトを行う場合にも、プロキシサーバのユーザ認証機能やフィルタリング機能を使用すること。
【解決手段】ルータ42は、端末41がプロキシサーバ44宛てに送信するCONNECTメソッドのHostを、LBOプロファイルに記録されているドメイン名と比較することにより、ローカルブレイクアウトを行うか否か決定する。ローカルブレイクアウトを行う場合には、ルータ42は、端末41が送信したパケットの送信元のIPアドレスとPORT番号、及び宛先のIPアドレスとPORT番号を書き換える。
【選択図】
図6
【特許請求の範囲】
【請求項1】
端末がプロキシサーバを介して通信する環境において、通過する通信を参照して、接続先のドメイン名を検出する検出部と、
前記検出したドメイン名に基づいて、特定の処理を行うか否か判定する判定部とを備えることを特徴とする中継装置。
【請求項2】
前記通過する通信は、端末がプロキシサーバヘ送信するCONNECTメソッドであることを特徴とする請求項1に記載の中継装置。
【請求項3】
前記通過する通信は、端末がプロキシサーバヘ送信するGETメソッドであることを特徴とする請求項1に記載の中継装置。
【請求項4】
前記通過する通信は、端末が外部ウェブサイトへ送信するSSL/TLSのClient Helloであることを特徴とする請求項1に記載の中継装置。
【請求項5】
前記特定の処理を実行する処理部を備え、
前記処理部は、前記特定の処理として、ローカルブレイクアウト、パケットの廃棄、パケットの書き換え、パケット情報の保存、QoS機能の少なくとも1つ以上の処理を実行することを特徴とする請求項1に記載の中継装置。
【請求項6】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、TCPセッションの接続、又はローカルブレイクアウト経路の登録の処理を行うことを特徴とする請求項5に記載の中継装置。
【請求項7】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する請求項6に記載の中継装置。
【請求項8】
前記処理部は、前記接続先のタイムスタンプと前記プロキシサーバのタイムスタンプの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのタイムスタンプを前記差分により更新する請求項6に記載の中継装置。
【請求項9】
前記処理部は、前記端末のMSS情報を前記接続先に通知する請求項6に記載の中継装置。
【請求項10】
前記処理部は、前記接続先のウインドウスケールと前記プロキシサーバのウインドウスケールの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのウインドウサイズを前記差分により更新する請求項6に記載の中継装置。
【請求項11】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える請求項6に記載の中継装置。
【請求項12】
前記処理部は、IPヘッダのチェックサム以外の部分を書き換えた後に、IPヘッダのチェックサムを更新する請求項7に記載の中継装置。
【請求項13】
前記処理部は、TCPヘッダのチェックサム以外の部分を書き換えた後に、TCPヘッダのチェックサムを更新する請求項7-11のいずれか一項に記載の中継装置。
【請求項14】
端末がプロキシサーバを介して通信する環境において、中継装置を通過する通信を前記中継装置が参照して、接続先のドメイン名を検出し、
前記検出したドメイン名に基づいて、特定の処理を行うか否か判定することを特徴とする特定の処理の処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークのローカルブレイクアウト技術に関する。
【背景技術】
【0002】
一般に企業内の拠点にあるコンピュータを、企業外のネットワークと接続する際には、本社のデータセンターのコンピュータを介して接続している。これは、企業外のネットワークに存在する危険な接続先を、本社のデータセンターのコンピュータにより検出して、接続させないようにするためである。
【0003】
図1は、このような接続の概念図である。11は企業外のネットワークである。12は本社にあるデータセンターである。13~15は、拠点のコンピュータである。拠点のコンピュータは、本社のデータセンター12を介して、企業外のネットワーク11に接続されている。
しかしながら、近年、Microsoft365(登録商標)(以下、「M365」ということもある。)等のSaaS(Software as a Service)へのアクセスが増大している。このため、企業内ネットワークが圧迫されていることが、問題となっている。
【0004】
この問題を解決する一方法として、特許文献1に記載されているように、ローカルブレイクアウト(Local Break Out:以下、「LBO」ということもある。)という技術が知られている。
図2は、LBOの原理を説明する図である。11~15は、
図1と同じものを意味する。LBOでは、拠点コンピュータにおいて、接続先が安全か否か判定し、安全な接続先であるならば、本社のデータセンター12を介さずに、直接、外部のネットワーク11に接続する(
図2の点線)。
【0005】
図3は、既存のLBOの手順を示す図である。
31はドメイン名をIPアドレスに変換するDNS(Domain Name System)サーバである。32はルータである。ルータ32は、安全なドメイン名、すなわちLBOを行うべきドメイン名の表を持っている。以下、この表をLBOプロファイル37と呼ぶ。33はインターネットゲートウェイである。34は閉域網である。35はインターネット網である。36はパソコン等の端末である。
【0006】
図3の動作を説明する。
ステップS301:端末36が、ドメイン名を含むURL又はメールアドレスを送信する。
ステップS302:ルータ32は受信したURL又はメールアドレスのドメイン名をDNSサーバ31へ送信する。
ステップS303:DNSサーバ31は、受信したドメイン名をIPアドレスに変換し、受信したドメイン名とともにルータ32へ返信する。
ステップS304:ルータ32はDNSサーバ31から受信したドメイン名を、LBOプロファイル37と比較し、LBOを行うか否か決定する。
【0007】
ステップS305:DNSサーバ31から受信したドメイン名が、LBOプロファイル37に記録されているドメイン名と一致せず、ルータ32がLBOを行わないと決定した場合は、従来どおり、インターネットゲートウェイ33経由で、インターネット網35に接続する。
ステップS306:DNSサーバ31から受信したドメイン名が、LBOプロファイル37に記録されているドメイン名と一致して、ルータ32がLBOを行うと決定した場合は、DNSサーバ31から受信したIPアドレスをLBO経路として登録する。
ステップS307:登録したLBO経路に従って、インターネット網35に直接、接続する。
【0008】
特許文献2では、DNSサーバへ問い合わせた結果、接続先が直接インターネットへ転送したい接続先であった場合は、問い合わせ結果のIPアドレスを宛先とする経路情報をルーティングテーブルに登録することで、拠点内からの該当の接続先に対する通信を本社経由でなく、直接インターネットへ転送するようにしている。
【0009】
また、特許文献3には、端末上で稼働するアプリケーションがサーバにデータの送信を要求するリクエストパケットの受信が、中継装置のTCP管理部において検知された場合に、前記中継装置の判定部が、前記リクエストパケットを解析し、前記解析の結果に基づいて前記リクエストパケットを送信する、前記中継装置と前記サーバとを接続する第2のネットワークの複数の通信経路を切り替えるか否かを判定することが記載されている。
【0010】
図4、及び
図5は、内部ネットワークと外部ネットワークの境界にプロキシサーバを有する場合の、従来のLBOを説明する図である。
図4は、LBOを行う場合の図である。
図5は、LBOを行わない場合の図である。このプロキシサーバを有する場合の従来のLBOの動作については、非特許文献1の第16-17頁に詳しく説明されている。
41はパソコン等の端末である。42はルータである。43はDNSサーバである。44はプロキシサーバである。45は外部ウェブサイトである。プロキシサーバ44は、
図1のデータセンター12にあってもよいし、拠点14に存在してもよい。
【0011】
図4の動作を説明する。
ステップS401:端末41は、宛先IPをプロキシサーバとして、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS402:ルータ42は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS403:端末41は、TCPの3ウェイハンドシェイク手順のACKパケットを送信する。これにより、TCPの3ウェイハンドシェイク手順が完了する。端末41は、Hostを「microsoft365.com」として、HTTPのCONNECTメソッドを送信する。
【0012】
ステップS404:ルータ42は、「microsoft365.com」がLBOプロファイルに記録されているドメイン名と一致するので、LBOを行うことを決定する。
ステップS405:ルータ42は、「microsoft365.com」をDNSサーバ43に送信して、「microsoft365.com」のIPアドレスを取得する。
ステップS406:ルータ42は、プロキシサーバ44を介さずに、外部ウェブサイト45に、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
【0013】
ステップS407:外部ウェブサイト45は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS408:ルータ42は、TCPの3ウェイハンドシェイク手順のACKパケットを外部ウェブサイト45へ送信する。これにより、ルータ42と外部ウェブサイト45との間のTCPの3ウェイハンドシェイク手順が完了する。ルータ42は、端末41とルータ42の間のTCPセッションと、ルータ42と外部ウェブサイト45の間のTCPセッションとを変換して通信する。
【0014】
図5は、内部ネットワークと外部ネットワークの境界にプロキシサーバを有する場合であるが、
図4のS404において、HostがLBOプロファイルのドメイン名と一致せず、LBOを行わない場合の図である。41~45は、
図4のものと同じである。
【0015】
図5の動作を説明する。
ステップS501:端末41は、宛先IPをプロキシサーバとして、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS502:ルータ42は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS503:端末41は、TCPの3ウェイハンドシェイク手順のACKパケットを送信する。これにより、TCPの3ウェイハンドシェイク手順が完了する。端末41は、Hostを「aaa.net」として、HTTPのCONNECTメソッドを送信する。
【0016】
ステップS504:ルータ42は、「aaa.net」がLBOプロファイルに記録されたドメイン名と一致しないので、LBOを行わないことを決定する。
ステップS505:ルータ42は、宛先IPをプロキシサーバ44として、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
【0017】
ステップS506:プロキシサーバ44は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS507:ルータ42は、TCPの3ウェイハンドシェイク手順のACKパケットをプロキシサーバ44へ送信する。これにより、ルータ42とプロキシサーバ44との間のTCPの3ウェイハンドシェイク手順が完了する。ルータ42は、Hostを「aaa.net」として、HTTPのCONNECTメソッドを送信する。
ステップS508:プロキシサーバ44は、ルータ42とプロキシサーバ44の間のTCPセッションと、プロキシサーバ44と外部ウェブサイト45の間のTCPセッションを変換して通信する。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】特開2019-057801号公報(段落番号0002-0003)
【特許文献2】特許第5790775号公報
【特許文献3】特許第5913258号公報
【非特許文献】
【0019】
【非特許文献1】juniper.NETWORKS、“プロキシ環境でも容易に導入可能 エンタープライズSD-WANとは”、第11-17頁、[online]、2019年9月24日、[2021年2月19日検索]、インターネット、<https://www.juniper.net/assets/jp/jp/local/pdf/additional-resources/osaka-seminar-sd-wan-handsout.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0020】
図5の従来例ではステップS501~S503により、端末41とルータ42の間のTCPセッションを確立しているので、ステップS508の状態においても、ルータ42は、端末41とルータ42の間のTCPセッションと、ルータ42とプロキシサーバ44の間のTCPセッションとを変換している。この変換を行うため、性能が劣化し、リソースの消費量が多くなるという問題を含んでいる。
また、
図4の従来例において、LBOを行う場合には、プロキシサーバ44を利用していないので、プロキシサーバ44のユーザ認証機能やフィルタリング機能を使用できていないという問題を含んでいる。
また、特許文献3では、リクエストパケットを解析し、前記解析の結果に基づいて前記リクエストパケットを送信する、中継装置とサーバとを接続する第2のネットワークの複数の通信経路を切り替えるか否かを判定しているが、特許文献3は、端末がプロキシサーバを介して通信する環境ではない。
【0021】
本発明は、端末がプロキシサーバを介して通信する環境において、LBOを行わない場合に、性能が劣化せず、且つリソースの消費量が多くならないようにすることを目的とする。
また、本発明は、LBOを行う場合に、プロキシサーバのユーザ認証機能やフィルタリング機能を使用することを目的とする。
【課題を解決するための手段】
【0022】
本発明者らは、ルータを通過する通信を当該ルータが覗き見するように構成することにより、LBOを行わない場合に、性能が劣化せず、且つリソースの消費量が多くならないようにすることができることを見出し、本発明を完成するに至った。
【0023】
[1] 端末がプロキシサーバを介して通信する環境において、通過する通信を参照して、接続先のドメイン名を検出する検出部と、前記検出したドメイン名に基づいて、特定の処理を行うか否か判定する判定部とを備えることを特徴とする中継装置。
[2] 前記通過する通信は、端末がプロキシサーバヘ送信するCONNECTメソッドであることを特徴とする上記[1]に記載の中継装置。
[3] 前記通過する通信は、端末がプロキシサーバヘ送信するGETメソッドであることを特徴とする上記[1]に記載の中継装置。
[4] 前記通過する通信は、端末が外部ウェブサイトヘ送信するSSL/TLSのClient Helloであることを特徴とする上記[1]に記載の中継装置。
[5] 前記特定の処理を実行する処理部を備え、前記処理部は、前記特定の処理として、ローカルブレイクアウト、パケットの廃棄、パケットの書き換え、パケット情報の保存、QoS機能の少なくとも1つ以上の処理を実行することを特徴とする上記[1]に記載の中継装置。
[6] 前記処理部は、前記ローカルブレイクアウトの処理を行う時に、TCPセッションの接続、又はブレイクアウト経路の登録の処理を行うことを特徴とする上記[5]に記載の中継装置。
[7] 前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する上記[6]に記載の中継装置。
[8] 前記処理部は、前記接続先のタイムスタンプと前記プロキシサーバのタイムスタンプの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのタイムスタンプを前記差分により更新する上記[6]に記載の中継装置。
[9] 前記処理部は、前記端末のMSS情報を前記接続先に通知する上記[6]に記載の中継装置。
[10] 前記処理部は、前記接続先のウインドウスケールと前記プロキシサーバのウインドウスケールの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのウインドウサイズを前記差分により更新する上記[6]に記載の中継装置。
[11] 前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える上記[6]に記載の中継装置。
[12] 前記処理部は、IPヘッダのチェックサム以外の部分を書き換えた後に、IPヘッダのチェックサムを更新する上記[7]に記載の中継装置。
[13] 前記処理部は、TCPヘッダのチェックサム以外の部分を書き換えた後に、TCPヘッダのチェックサムを更新する上記[7]-[11]のいずれか一に記載の中継装置。
[14] 端末がプロキシサーバを介して通信する環境において、中継装置を通過する通信を前記中継装置が参照して、接続先のドメイン名を検出し、前記検出したドメイン名に基づいて、特定の処理を行うか否か判定することを特徴とするローカルブレイクアウトの転送方法。
【発明の効果】
【0024】
本発明によれば、ルータを通過する通信を当該ルータが覗き見するように構成するので、LBOを行わない場合に、性能が劣化せず、且つリソースの消費量が多くならないようにすることができる。
【図面の簡単な説明】
【0025】
【
図1】拠点のコンピュータが、データセンターを経由して企業外のネットワークに接続される図である。
【
図4】従来、プロキシサーバを有する場合に、LBOを行う図である。
【
図5】従来、プロキシサーバを有する場合に、LBOを行わない図である。
【
図6】本発明の実施形態における、LBOを行う図である。
【
図7】本発明の実施形態における、LBOを行わない図である。
【
図8】本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。
【
図9】本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。
【
図10】本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。
【
図11】本発明の実施形態におけるシーケンス番号と確認応答番号の書き換えを説明する図である。
【
図12】本発明の実施形態におけるシーケンス番号と確認応答番号の書き換えを説明する図である。
【
図13】本発明の実施形態おけるタイムスタンプの変換の詳細を説明する図である。
【
図14】本発明の実施形態おけるMSS情報の通知の詳細を説明する図である。
【
図15】本発明の実施形態おけるスケールサイズの変換の詳細を説明する図である。
【
図16】本発明の実施形態おけるルータの内部構造を説明する図である。
【
図17】本社及び支社の端末がLBOを行わない場合の通信経路を示す図である。
【
図18】本社及び支社の端末がLBOを行う場合の通信経路を示す図である。
【発明を実施するための形態】
【0026】
以下、
図6、及び
図7を用いて、本発明の実施形態について説明する。
図6は、本発明の実施形態において、LBOを行う場合の図である。41~45は、
図4のものと同じである。
ステップS601:TCPの3ウェイハンドシェイク手順により、端末41とプロキシサーバ44間のTCPセッションを確立する。ルータ42は、端末41とプロキシサーバ44間の通信を覗き見して、TCPパラメータを取得する。
【0027】
ステップS602:端末41は、Hostを「microsoft365.com」として、HTTPのCONNECTメソッドをプロキシサーバ44へ送信する。ルータ42は、この通信を覗き見して、Hostが「microsoft365.com」であることを検出する。ルータ42は、検出した「microsoft365.com」をLBOプロファイルと照合して、「microsoft365.com」がLBOプロファイルに記録されているドメイン名と一致することを判定する。これにより、LBOを行うことが決定される。
ステップS603:ルータ42は、DNSサーバ43を用いて、ドメイン名をIPアドレスに変換する。
ステップS604:ルータ42は、IPアドレスをLBO経路として登録してもよい。
【0028】
ステップS605:ルータ42は、外部ウェブサイト45へTCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS606:ルータ42は、外部ウェブサイト45との間で、TCPセッションを確立する。
ステップS607:ルータ42は、端末41にCONNECT Estabを送信する。
ステップS608:ルータ42は、端末41とプロキシサーバ44との間のTCPセッションと、ルータ42と外部ウェブサイト45との間のTCPセッションとを変換してブレイクアウト先に送信する。
【0029】
図7は、本発明の実施形態において、LBOを行わない場合の図である。41~45は、
図4のものと同じである。
ステップS701:TCPの3ウェイハンドシェイク手順により、端末41とプロキシサーバ44間のTCPセッションを確立する。ルータ42は、端末41とプロキシサーバ44間の通信を覗き見して、TCPパラメータを取得する。
【0030】
ステップS702:端末41は、Hostを「aaa.com」として、HTTPのCONNECTメソッドをプロキシサーバ44へ送信する。ルータ42は、この通信を覗き見して、Hostが「aaa.com」であることを検出する。ルータ42は、検出した「aaa.com」をLBOプロファイルと照合して、「aaa.com」がLBOプロファイルに記録されているドメイン名と一致しないことを判定する。これにより、LBOを行わないことが決定される。
ステップS703:プロキシサーバ44は、DNSサーバ43を用いて、ドメイン名をIPアドレスに変換する。
【0031】
ステップS704:プロキシサーバ44は、外部ウェブサイト45との間で、TCPセッションを確立する。
ステップS705:プロキシサーバ44は、端末41にCONNECT Estabを送信する。
ステップS706:プロキシサーバ44は、端末41とプロキシサーバ44との間のTCPセッションと、プロキシサーバ44と外部ウェブサイト45との間のTCPセッションとを変換して通信する。
【0032】
以上のように、本発明では、端末とプロキシサーバとの間の通信をルータが覗き見して、外部ウェブサイトのドメイン名を検出するので、ルータで端末からのTCPセッションを終端することがなく、したがって、性能が劣化し、リソースの消費量が多くなるという問題が生じない。
また、本発明では、LBOを行う場合にもプロキシサーバを利用するので、プロキシサーバからのCONNECT Estabを中継の判断材料に使用でき、これによりプロキシサーバのユーザ認証機能やフィルタリング機能を使用することができる。
【0033】
本発明の実施形態では、CONNECTメソッドを参照してドメイン名を検出したが、参照の対象は、CONNECTメソッドに限らない。HTTPのGETメソッドを参照して、ドメイン名を検出してもよい。
【0034】
また、
図7のようにプロキシサーバを経由する接続としておいて、SSL/TLSのClient HelloのSNIオプションをルータが参照して、接続先がLBOを行うべき外部ウェブサイトであることが判明した後に、ルータが
図2の点線のように接続替えすることとしてもよい。
【0035】
本発明の実施形態では、CONNECTメソッドを参照して検出したドメイン名に基づいて、LBOを行うか否かを決定したが、検出したドメイン名に基づいて、パケットの廃棄、パケットの書き換え、パケット情報の保存、QoS機能(優先制御や帯域制御)の少なくとも1つ以上の処理を行うか否かを決定してもよい。
【0036】
また、検出したドメイン名をDNSサーバによりIPアドレスに変換し、そのIPアドレスに基づいて外部ウェブサイトへのTCPセッションの接続を行うこととしているが、追加で、そのIPアドレスをLBO経路として登録してもよい。
【0037】
以上、端末41からプロキシサーバ44に送信されるパケットをルータ42が覗き見することにより、LBOを行うか否か判定する方法について説明した。
以下では、
図6のステップS608にてルータ42により行われる、端末41とプロキシサーバ44との間のTCPセッションと、ルータ42と外部ウェブサイト45との間のTCPセッションとの変換の詳細について説明する。
【0038】
図8~
図10は、三枚の図で一連の処理の流れを示しており、
図6の処理の詳細を示す図である。
ステップS801:端末41は、プロキシサーバ44へSYNパケットを送信する。
ステップS802:プロキシサーバ44は、端末41へSYN/ACKパケットを送信する。
ステップS803:端末41は、プロキシサーバ44へACKパケットを送信する。
ステップS804:ルータ42は、ステップS801~ステップS803の間に送信されるパケットを覗き見して、端末41とプロキシサーバ44間のTCPセッション(以下、「TCPセッション1」という。)のセッション情報を取得する。
【0039】
ステップS805:端末41が、プロキシサーバ44へCONNECTメソッドを送信する。
ステップS806:ルータ42は、コントロールプレーン422でCONNECTメソッドを覗き見して、その結果、LBOを行うべきであると判断する。
ステップS807:ルータ42は、DNSサーバ43へ照会する。
ステップS808:DNSサーバ43は、ルータ42へ外部ウェブサイト45のIPアドレスを返す。
【0040】
ステップS809:プロキシサーバ44は、端末41宛てのCONNECT Estabを送信する。
ステップS810:ルータ42は、端末41宛てのCONNECT Estabを受信し、端末には送信せずに、端末41宛てのCONNECT Estabを保持する。
【0041】
図9では、次の動作を行う。
ステップS901:ルータ42は、コントロールプレーン422で、外部ウェブサイト45へSYNパケットを送る。
ステップS902:外部ウェブサイト45は、ルータ42へSYN/ACKパケットを送信する。
ステップS903:ルータ42は、外部ウェブサイト45へACKパケットを送る。
【0042】
ステップS904:ルータ42は、ステップS901~S903により、外部ウェブサイト45との間にTCPセッション(以下、このTCPセションを「TCPセッション2」という。)を確立した。
ステップS905:ルータ42は、TCPセッション1とTCPセッション2との変換テーブル(970と980)を作成する。
ステップS906:ルータ42は、TCPセッション1とTCPセッション2との変換テーブル(970と980)を、データプレーン421に登録する。
【0043】
TCPセッション1において端末41が送信するパケットの送信元欄には、端末41のIPアドレスとPORT番号が格納されている。これを、ルータ42は、TCPセッション2では、ルータ42のIPアドレスとPORT番号に書き換える。また、TCPセッション1において端末41が送信するパケットの宛先欄には、プロキシサーバ44のIPアドレスとPORT番号が格納されている。これを、ルータ42は、TCPセッション2では、外部ウェブサイト45のIPアドレスとPORT番号に書き換える。
逆方向の外部ウェブサイト45からルータ42宛てのパケットも、同様に、データプレーン421においてIPアドレスとPORT番号の書き換えを行う。
【0044】
ステップS907:ルータ42は、ステップS810において保持した端末41宛てのCONNECT Estabを、端末41へ転送する。
ステップS908:ルータ42は、プロキシサーバ44との間のTCPセッション1を切断して、リソースを解放する。
【0045】
図10では、次の動作を行う。
ステップS1001:端末41は、CLIENT Helloを送信する。
ステップS1002:ルータ42は、データプレーン421で、ステップS906で説明したTCPセッション1とTCPセッション2間のIPアドレスとPORT番号の書き換えを行う。
【0046】
図8~
図10で説明した処理の結果、ルータ42では、TCPセッションの変換を行うが、TCPセッションを管理していない。このため、ルータ42では、プロトコル処理を行う必要がない。
また、ルータ42では、データプレーン421でTCPセッションの変換を行うので、コントロールプレーン422でTCPセッションを終端する方式と比べると性能面で有利である。
【0047】
以上の説明において、
図8~
図10を用いて、LBOを行う場合のIPアドレスとPORT番号の書き換えについて説明してきた。
しかし、LBOを行う場合には、IPアドレスとPORT番号の他に、シーケンス番号及び確認応答番号(以下では「Ack番号」という。)の書き換えを行うことも必要である。以下、説明する。
【0048】
図11、
図12を使用して、LBOを行う場合のシーケンス番号及び確認応答番号(以下では「Ack番号」という。)の書き換えについて説明する。
TCPヘッダには、シーケンス番号及びAck番号のフィールドがある。
図11のステップS1101からS1103までは、よく知られた3ウェイハンドシェイクの手順であるから説明を省略する。ステップS1104において、端末41は120バイトのデータを送信する。
【0049】
ステップS1105では、プロキシサーバ44は、「相手から受信したAck番号(20001)」をシーケンス番号とする。ステップS1105では、プロキシサーバ44は、「相手から受信したシーケンス番号(10001)」に「受信したデータサイズの値(120)」を加えた「10121」を、Ack番号とする。
【0050】
ステップS1106で、ルータ42は、外部ウェブサイト45との間で3ウェイハンドシェイクを開始する。ステップS1106~S1108の3ウェイハンドシェイクは、ステップS1105までの通信とは別に行われるから、ステップS1105のシーケンス番号及びAck番号と、ステップS1108のシーケンス番号及びAck番号との間には、関連性がない。したがって、例えば、仮に、ステップS1109の後に、端末41が送信するパケットを、そのまま外部ウェブサイト45に届けると、外部ウェブサイト45は、TCPの規則に従っていないシーケンス番号及びAck番号を含むパケットを受信することになる。
【0051】
よって、
図11のAの時点において、端末41とプロキシサーバ44間の通信と、ルータ42と外部ウェブサイト45間の通信との、シーケンス番号の差分及びAck番号の差分をルータ42に登録しておく。そして、以後の通信において、ルータ42が、シーケンス番号の書き換え及びAck番号の書き換えを行うこととする。
【0052】
ステップS1109の後に端末41が送信する際には、端末41は、「相手から受信したAck番号(10121)」をシーケンス番号とする。また、端末41は、「相手から受信したシーケンス番号(20001)」に「受信したデータサイズの値(39)」を加えた「20040」を、Ack番号とする。
図11の左下隅にこの内容を記載してある。
【0053】
ルータ42は、
図11の左下隅に記載した内容を把握しているので、
図11の左下隅に記載した内容と、ステップS1108のシーケンス番号及びAck番号との差分を取って、差分テーブル1170を作成する。具体的には、ステップS1108のシーケンス番号(30001)と
図11の左下隅のシーケンス番号(10121)の差分(19880)が、「上りのシーケンス番号の差分」となる。また、ステップS1108のAck番号(40001)と
図11の左下隅のAck番号(20040)の差分(19961)が、「上りのAck番号の差分」となる。
【0054】
図12の図のステップS1201において、端末41が517バイトのデータを送信する際には、ステップS1202において、ルータ42が、シーケン番号(10121)に差分の「19880」を加える。また、ルータ42が、Ack番号(20040)に差分の「19961」を加える。このようにして、ステップS1203において、外部ウェブサイト45は、TCPの規則に従ったシーケンス番号及びAck番号を含むパケットを受信する。
【0055】
図12のステップS1204では、外部ウェブサイト45は、「相手から受信したAck番号(40001)」をシーケンス番号とする。また、外部ウェブサイト45は、「相手から受信したシーケンス番号(30001)」に「受信したデータサイズの値(517)」を加えた「30518」を、Ack番号とする。
【0056】
TCPのシーケンス番号とAck番号に関する規則により、下りのシーケンス番号の差分は、上りのAck番号の差分に等しい。また、下りのAck番号の差分は、上りのシーケンス番号の差分に等しい。
【0057】
よって、ステップS1205において、ルータ42は、ステップS1204のシーケンス番号(40001)から上りのAck番号の差分(19961)を減じた「20040」を書き換え後のシーケンス番号とする。
また、ステップS1205において、ルータ42は、ステップS1204のAck番号(30518)から上りのシーケンス番号の差分(19880)を減じた「10638」を書き換え後のシーケンス番号とする。
【0058】
仮に、プロキシサーバ44が、ステップS1201のパケットを受信した場合には、プロキシサーバ44は、以下の動作を行う。プロキシサーバ44は、「相手から受信したAck番号(20040)」をシーケンス番号とする。また、プロキシサーバ44は、「相手から受信したシーケンス番号(10121)」に「受信したデータサイズの値(517)」を加えた「10638」を、Ack番号とする。以上のシーケンス番号とAck番号は、ステップS1206のシーケンス番号とAck番号と同じである。したがって、本発明の実施形態により、端末41が、TCPの規則に従ったシーケンス番号及びAck番号を含むパケットを受信することを確認できる。
【0059】
ところで、TCPヘッダには、オプションというフィールドが用意されている。このオプションというフィールドは、TCP通信の性能を向上させるために種々の使い方がある。次に、オプション番号とともに、オプションの種類の一部を拳げる。
0.End Of Option List
1.No Operation
2.MSS(Maximum Segment Size:最大セグメントサイズ)
3.Window Scale
4.SACK(Selective ACKnowledge)Permitted
5.SACK
8.Time Stamp
【0060】
オプションフィールドは、複数のオプションのために使用することもできる。以下、タイムタンプのオプションが有効な場合と、MSSのオプションが有効な場合と、ウインドウスケールのオプションが有効な場合のそれぞれについて、TCPセッション1とTCPセッション2の間の変換処理について説明する。
【0061】
図13は、オプションフィールドをタイムタンプとして用いた場合について、TCPセッション1とTCPセッション2の間の変換処理について説明する図である。
パケットが遅延した場合、同じシーケンス番号を持つ前のパケットが存在することがある。TCPには、PAWS(Protection Against Wrapped Sequence number(重複したシーケンス番号に対する保護))という機能があり、受信側は、同じシーケンス番号を持つパケットが2つ存在する場合、タイムスタンプを見て、古いタイムスタンプを持つパケットを破棄する。したがって、タイムスタンプについては正しく受信側に伝えられる必要がある。
【0062】
ステップS1301:端末41とプロキシサーバ44は、TCPセッション1のSYN、SYN/ACKでタイムスタンプを通知する。
ステップS1302:ルータ42は、端末41とプロキシサーバ44間のパケットを覗き見して、端末41のタイムスタンプ情報をルータ42に反映させておく。この反映処理により、端末41のタイムスタンプとルータ42のタイムスタンプの差分を零にしておくことができる。ルータ42は、この端末41のタイムスタンプとルータ42のタイムスタンプの差分が零であることを登録しておく。
【0063】
ステップS1303:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでタイムスタンプを通知する。これにより、ルータ42は、外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分を把握することができる。ルータ42は、この外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分を登録しておく。ここでは、仮に、この外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分が「100」であったとする。
【0064】
ステップS1304:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1370と1380)を作成する。
ステップS1305:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1370と1380)をデータプレーン421に登録する。
【0065】
ステップS1306:ルータ42のデータプレーン421は、外部ウェブサイト45からのTCPパケットのタイムスタンプ(=2000)を、登録しておいた外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分(100)により更新する。つまり、外部ウェブサイト45のタイムスタンプ(=2000)を、プロキシサーバ44のタイムスタンプ(=2100)に書き換えるわけである。
ステップS1307:ルータ42のデータプレーン421は、更新後のタイムスタンプ=2100のパケットを端末41へ送信する。
【0066】
ステップS1308:ルータ42のデータプレーン421は、端末41からのTCPパケットのタイムスタンプ(=100)を、登録しておいた端末41のタイムスタンプとルータ42のタイムスタンプの差分(=0)により更新する。なお、「更新する」といっても、差分が零であるから、実際には更新する処理を省くことができる。又は、別の方法として、ステップS1302の反映処理を行わず、零でない、端末41のタイムスタンプとルータ42のタイムスタンプの差分を登録しておき、ステップS1308では、更新処理を行うこととしてもよい。
ステップS1309:ルータ42のデータプレーン421は、更新後のタイムスタンプ=100のパケットを外部ウェブサイト45へ送信する。
これにより、例えばステップS1306とS1307では、外部ウェブサイト45のタイムスタンプを、プロキシサーバ44のタイムスタンプに変換することができる。
【0067】
図14は、オプションフィールドをMSSとして用いた場合について、MSS情報の通知を説明する図である。MSS(Maximum Segment Size:最大セグメントサイズ)は、1パケット当たりどれくらいのサイズなら受け入れられるかを表す。
ステップS1401:端末41とプロキシサーバ44は、TCPセッション1のSYN、SYN/ACKでMSSを通知する。
ステップS1402:ルータ42は、端末41とプロキシサーバ44間のパケットを覗き見して、端末41のMSS情報をルータ42に反映させておく。この反映処理により、ルータ42は端末41のMSSを登録しておく。
【0068】
ステップS1403:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでMSSを通知する。このとき、ルータ42は、外部ウェブサイト45に端末41のMSSを通知する。
ステップS1404:外部ウェブサイト45から送信されるパケットの大きさは、端末41のMSSよりも小さいから、端末41が受信できないという現象は起きない。
【0069】
図15は、オプションフィールドをウインドウスケールとして用いた場合について、TCPセッション1とTCPセッション2の間の変換処理について説明する図である。
TCPヘッダには、オプションとしてではなく、元々、ウインドウサイズというフィールドが設けられている。ウインドウサイズは、ACK無しにどのくらいのTCPペイロードを受信できるかを表す。オプションフィールドをウインドウスケールとして用いた場合には、ウインドウスケールとして通知した値の数だけ、ウインドウサイズをビットシフトすることができる。
【0070】
ステップS1501:端末41とプロキシサーバ44は、TCPセッション1のSYN、SYN/ACKでウインドウスケールを通知する。
ステップS1502:ルータ42は、端末41とプロキシサーバ44間のパケットを覗き見して、端末41のウインドウスケールをルータ42に反映させておく。この反映処理により、端末41のウインドウスケールとルータ42のウインドウスケールの差分を零にしておくことができる。ルータ42は、この端末41のウインドウスケールとルータ42のウインドウスケールの差分が零であることを登録しておく。
【0071】
ステップS1503:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでウインドウスケールを通知する。これにより、ルータ42は、外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分を把握することができる。ルータ42は、この外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分を登録しておく。ここでは、仮に、外部ウェブサイト45のウインドウスケールが「6」であり、プロキシサーバ44のウインドウスケールが「2」であったとする。この時、ルータ42は、それらの差分「4」を登録しておく。
【0072】
ステップS1504:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1570と1580)を作成する。
ステップS1505:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1570と1580)をデータプレーン421に登録する。
【0073】
ステップS1506:ルータ42のデータプレーン421は、外部ウェブサイト45からのTCPパケットのウインドウサイズ(=261)を、登録しておいた外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分(4:2の4乗=16)により更新する。
ステップS1507:ルータ42のデータプレーン421は、更新後のウインドウサイズ=4176のパケットを端末41へ送信する。
【0074】
S1501でのやり取りにより、端末41は、通信相手のウインドウスケールは「2」であると認識している。しかし、端末41が認識している通信相手のウインドウスケール「2」と、端末41が送信するデータを受け取る外部ウェブサイト45のウインドウスケール「6」との間には、「4」の差分が存在する。よって、ウインドウサイズの方を差分により更新しておけば、外部ウェブサイト45がACK無しに受け取ることができる正しいデータ量が、端末41に伝わるわけである。
【0075】
ステップS1508:ルータ42のデータプレーン421は、端末41からのTCPパケットのウインドウサイズ(=32768)を、登録しておいた端末41のタイムスタンプとルータ42のタイムスタンプの差分(=0)により更新する。
ステップS1509:ルータ42のデータプレーン421は、更新後のタイムスタンプ=32768のパケットを外部ウェブサイト45へ送信する。
【0076】
このように構成することにより、ステップS1506とS1507では、外部ウェブサイト45のウインドウサイズを、適切な値に修正して端末41へ伝えることができる。
【0077】
TCPヘッダには、チェックサムのフィールドがある。このTCPヘッダのチェックサムの値は、TCPヘッダの他の部分とデータ部分の値によって決まる。したがって、上述のように、送信元PORT番号、宛先PORT番号、シーケンス番号、Ack番号、ウインドウサイズ、オプションフィールド等を書き換えた際には、連動してTCPヘッダのチェックサムも更新しておく必要がある。
また、IPヘッダにも、チェックサムのフィールドがある。このIPヘッダのチェックサムの値は、IPヘッダの他の部分の値によって決まる。したがって、上述のように、送信元IPアドレス、宛先IPアドレスを書き換えた際には、連動してIPヘッダのチェックサムも更新しておく必要がある。
【0078】
図16は、本発明の実施形態おけるルータ42の内部構造を説明する図である。中継装置としてのルータ42は、検出部1601、判定部1602、及び処理部1603を備える。
検出部1601は、端末41がプロキシサーバ44を介して通信する環境において、通過する通信を参照して接続先のドメイン名を検出する。通過する通信は、端末41がプロキシサーバ44へ送信するCONNECTメソッドであり、通過する通信を参照することはこのCONNECTメソッドを覗き見することを意味する。
判定部1602は、LBOプロファイル37を参照し、検出部1601が検出したドメイン名に基づいて特定の処理としてLBOを行うか否かを判定する。
処理部1603は、LBOの処理を実行する。
【0079】
図17は、本社及び支社の端末がLBOを行わない場合の通信経路を説明する図である。
図17の支社は、
図1の拠点13~14に相当する。プロキシサーバ1706は、本社側に設置されている。
支社の端末Aは、VPN(Virtual Private Network)を介して、一旦、本社側に接続される。
支社の端末がLBOを行わない場合は、端末A1701⇒ルータA1702⇒VPN1703⇒ルータB1704⇒プロキシサーバ1706⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
本社の端末がLBOを行わない場合は、端末B1705⇒ルータB1704⇒プロキシサーバ1706⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
【0080】
図18は、本社及び支社の端末がLBOを行う場合の通信経路を説明する図である。
支社の端末がLBOを行う場合は、VPN1703及びプロキシサーバ1706を使用しない。支社の端末Aは、端末A1701⇒ルータA1702⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
本社の端末がLBOを行う場合は、プロキシサーバ1706を使用しない。本社の端末Bは、端末B1705⇒ルータB1704⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
【0081】
図18では、支社の端末AがLBOを行う場合に、ルータA1702においてLBOを行った。しかし、支社側のルータA1702をLBO非対応のルータとし、本社側のルータB1704においてLBOを行わせる方式を採用することもできる。この方式でLBOを行う場合には、支社の端末Aは、端末A1701⇒ルータA1702⇒VPN1703⇒ルータB1704⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
このように構成すれば、複数の支社側のルータはLBO非対応とし、本社側の1台のルータのみをLBO対応とすればよいので、経費削減に繋がる。
【0082】
以上、本実施形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0083】
11 企業外のネットワーク
12 データセンター
13~15 拠点のコンピュータ
31 DNSサーバ
32 ルータ
33 インターネットゲートウェイ
34 閉域網
35 インターネット網
36 端末
37 LBOプロファイル
41 端末
42 ルータ
43 DNSサーバ
44 プロキシサーバ
45 外部ウェブサイト
421 データプレーン
422 コントロールプレーン
1170 差分テーブル
1601 検出部
1602 判定部
1603 処理部
1701 端末A
1702 ルータA
1703 VPN
1704 ルータB
1705 端末B
1706 プロキシサーバ
1707 インターネット網
1708 DNSサーバ
1709 外部ウェブサイト
【手続補正書】
【提出日】2022-08-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
端末がプロキシサーバを介して通信する環境において、通過する通信を覗き見して、接続先のドメイン名を検出する検出部と、
前記検出したドメイン名と予め保持しているドメイン名リストとを比較し、比較した結果に基づいて、ローカルブレイクアウトを行うか否か判定する判定部と、
ローカルブレイクアウトの処理を実行する処理部とを備えることを特徴とする中継装置であって、
前記通過する通信は、前記端末が前記プロキシサーバへ送信するCONNECTメソッド、前記端末が前記プロキシサーバへ送信するGETメソッド、又は前記端末が外部ウェブサイトへ送信するSSL/TLSのClient Helloである、中継装置。
【請求項2】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、TCPセッションの接続、又はローカルブレイクアウト経路の登録の処理を行うことを特徴とする請求項1に記載の中継装置。
【請求項3】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する請求項2に記載の中継装置。
【請求項4】
前記処理部は、前記接続先のタイムスタンプと前記プロキシサーバのタイムスタンプの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのタイムスタンプを前記差分により更新する請求項2に記載の中継装置。
【請求項5】
前記処理部は、前記端末のMSS情報を前記接続先に通知する請求項2に記載の中継装置。
【請求項6】
前記処理部は、前記接続先のウインドウスケールと前記プロキシサーバのウインドウスケールの差分を前記中継装置に登録しておき、前記ローカルブレイクアウト時に前記接続先が送信するパケットのウインドウサイズを前記差分により更新する請求項2に記載の中継装置。
【請求項7】
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える請求項2に記載の中継装置。
【請求項8】
前記処理部は、IPヘッダのチェックサム以外の部分を書き換えた後に、IPヘッダのチェックサムを更新する請求項3に記載の中継装置。
【請求項9】
前記処理部は、TCPヘッダのチェックサム以外の部分を書き換えた後に、TCPヘッダのチェックサムを更新する請求項3-7のいずれか一項に記載の中継装置。
【請求項10】
端末がプロキシサーバを介して通信する環境において、中継装置を通過する通信を前記中継装置が覗き見して、接続先のドメイン名を検出し、
前記検出したドメイン名と予め保持しているドメイン名リストとを比較し、比較した結果に基づいて、ローカルブレイクアウトを行うか否か判定するローカルブレイクアウトの転送方法であって、
前記通過する通信は、前記端末が前記プロキシサーバへ送信するCONNECTメソッド、前記端末が前記プロキシサーバへ送信するGETメソッド、又は前記端末が外部ウェブサイトへ送信するSSL/TLSのClient Helloである、ローカルブレイクアウトの転送方法。