JP2022153318A - Relay device and local breakout transfer method - Google Patents

Relay device and local breakout transfer method Download PDF

Info

Publication number
JP2022153318A
JP2022153318A JP2022049250A JP2022049250A JP2022153318A JP 2022153318 A JP2022153318 A JP 2022153318A JP 2022049250 A JP2022049250 A JP 2022049250A JP 2022049250 A JP2022049250 A JP 2022049250A JP 2022153318 A JP2022153318 A JP 2022153318A
Authority
JP
Japan
Prior art keywords
router
terminal
relay device
proxy server
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022049250A
Other languages
Japanese (ja)
Other versions
JP7178523B2 (en
Inventor
晃至 池浦
Koji Ikeura
栄司 横山
Eiji Yokoyama
正 菊池
Tadashi Kikuchi
康宏 小林
Yasuhiro Kobayashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Furukawa Electric Co Ltd
Furukawa Network Solution Corp
Original Assignee
Furukawa Electric Co Ltd
Furukawa Network Solution Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Furukawa Electric Co Ltd, Furukawa Network Solution Corp filed Critical Furukawa Electric Co Ltd
Publication of JP2022153318A publication Critical patent/JP2022153318A/en
Application granted granted Critical
Publication of JP7178523B2 publication Critical patent/JP7178523B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To solve a problem in which, as a local breakout method, when a session between a terminal and a router and a session between an external website and the router are terminated at the router, processing such as TCP flow control, window control, congestion control, and retransmission control takes time, and the relay cannot be performed at high speed.SOLUTION: A router 42 rewrites a source IP address and the PORT number of the destination of a packet transmitted by a terminal 41 from the IP address and the PORT number of the terminal 41 to the IP address and the PORT number of the router 42. Also, the router 42 rewrites the IP address and the PORT number of the destination of a packet transmitted by the terminal 41 from the IP address and the PORT number of a proxy server 44 to the IP address and the PORT number of an external website 45. In this way, two TCP sessions are converted by a table, such that the relay can be performed at high speed.SELECTED DRAWING: Figure 10

Description

本発明は、ネットワークのローカルブレイクアウト技術に関する。 The present invention relates to network local breakout technology.

一般に企業内の拠点にあるコンピュータを、企業外のネットワークと接続する際には、本社のデータセンターのコンピュータを介して接続している。これは、企業外のネットワークに存在する危険な接続先を、本社のデータセンターのコンピュータにより検出して、接続させないようにするためである。 In general, when connecting a computer at a base within a company to a network outside the company, the connection is made via a computer at the data center of the head office. This is to prevent dangerous connection destinations existing in the network outside the company from being detected by the computer in the data center of the head office and not connected.

図1は、このような接続の概念図である。11は企業外のネットワークである。12は本社にあるデータセンターである。13~15は、拠点のコンピュータである。拠点のコンピュータは、本社のデータセンター12を介して、企業外のネットワーク11に接続されている。
しかしながら、近年、Microsoft365(登録商標)(以下、「M365」ということもある。)等のSaaS(Software as a Service)へのアクセスが増大している。このため、企業内ネットワークが圧迫されていることが、問題となっている。
FIG. 1 is a conceptual diagram of such a connection. 11 is a network outside the enterprise. 12 is a data center at the head office. 13 to 15 are computers at the base. The computers at the base are connected to a network 11 outside the company via a data center 12 at the head office.
However, in recent years, access to SaaS (Software as a Service) such as Microsoft 365 (registered trademark) (hereinafter also referred to as "M365") is increasing. Therefore, it is a problem that the intra-company network is under pressure.

この問題を解決する一方法として、特許文献1に記載されているように、ローカルブレイクアウト(Local Break Out:以下、「LBO」ということもある。)という技術が知られている。
図2は、LBOの原理を説明する図である。11~15は、図1と同じものを意味する。LBOでは、拠点コンピュータにおいて、接続先が安全か否か判定し、安全な接続先であるならば、本社のデータセンター12を介さずに、直接、外部のネットワーク11に接続する(図2の点線)。
As one method for solving this problem, a technique called Local Break Out (hereinafter sometimes referred to as "LBO") is known, as described in Patent Document 1.
FIG. 2 is a diagram for explaining the principle of LBO. 11 to 15 mean the same as in FIG. In LBO, the base computer determines whether or not the connection destination is safe, and if the connection destination is safe, it connects directly to the external network 11 without going through the data center 12 at the head office (dotted line in FIG. 2). ).

図3は、既存のLBOの手順を示す図である。
31はドメイン名をIPアドレスに変換するDNS(Domain Name System)サーバである。32はルータである。ルータ32は、安全なドメイン名、すなわちLBOを行うべきドメイン名の表を持っている。以下、この表をLBOプロファイル37と呼ぶ。33はインターネットゲートウェイである。34は閉域網である。35はインターネット網である。36はパソコン等の端末である。
FIG. 3 is a diagram showing the existing LBO procedure.
A DNS (Domain Name System) server 31 converts a domain name into an IP address. 32 is a router. The router 32 has a table of secure domain names, ie domain names to LBO. This table is hereinafter referred to as LBO profile 37 . 33 is an Internet gateway. 34 is a closed network. 35 is the Internet network. 36 is a terminal such as a personal computer.

図3の動作を説明する。
ステップS301:端末36が、ドメイン名を含むURL又はメールアドレスを送信する。
ステップS302:ルータ32は受信したURL又はメールアドレスのドメイン名をDNSサーバ31へ送信する。
ステップS303:DNSサーバ31は、受信したドメイン名をIPアドレスに変換し、受信したドメイン名とともにルータ32へ返信する。
ステップS304:ルータ32はDNSサーバ31から受信したドメイン名を、LBOプロファイル37と比較し、LBOを行うか否か決定する。
The operation of FIG. 3 will be described.
Step S301: The terminal 36 transmits a URL or mail address including a domain name.
Step S302: The router 32 sends the domain name of the received URL or mail address to the DNS server 31. FIG.
Step S303: The DNS server 31 converts the received domain name into an IP address and sends it back to the router 32 together with the received domain name.
Step S304: The router 32 compares the domain name received from the DNS server 31 with the LBO profile 37 and determines whether or not to perform LBO.

ステップS305:DNSサーバ31から受信したドメイン名が、LBOプロファイル37に記録されているドメイン名と一致せず、ルータ32がLBOを行わないと決定した場合は、従来どおり、インターネットゲートウェイ33経由で、インターネット網35に接続する。
ステップS306:DNSサーバ31から受信したドメイン名が、LBOプロファイル37に記録されているドメイン名と一致して、ルータ32がLBOを行うと決定した場合は、DNSサーバ31から受信したIPアドレスをLBO経路として登録する。
ステップS307:登録したLBO経路に従って、インターネット網35に直接、接続する。
Step S305: If the domain name received from the DNS server 31 does not match the domain name recorded in the LBO profile 37 and the router 32 decides not to perform LBO, as usual, via the Internet gateway 33, Connect to the Internet network 35 .
Step S306: When the domain name received from the DNS server 31 matches the domain name recorded in the LBO profile 37 and the router 32 determines to perform LBO, the IP address received from the DNS server 31 is LBOed. Register as a route.
Step S307: Directly connect to the Internet network 35 according to the registered LBO route.

特許文献2では、DNSサーバへ問い合わせた結果、接続先が直接インターネットへ転送したい接続先であった場合は、問い合わせ結果のIPアドレスを宛先とする経路情報をルーティングテーブルに登録することで、拠点内からの該当の接続先に対する通信を本社経由でなく、直接インターネットへ転送するようにしている。 In Patent Document 2, as a result of querying a DNS server, if the connection destination is a destination to be directly forwarded to the Internet, by registering route information with the IP address of the query result as the destination in a routing table, The communication to the corresponding connection destination from the head office is transferred directly to the Internet without going through the head office.

また、特許文献3には、端末上で稼働するアプリケーションがサーバにデータの送信を要求するリクエストパケットの受信が、中継装置のTCP管理部において検知された場合に、前記中継装置の判定部が、前記リクエストパケットを解析し、前記解析の結果に基づいて前記リクエストパケットを送信する、前記中継装置と前記サーバとを接続する第2のネットワークの複数の通信経路を切り替えるか否かを判定することが記載されている。 Further, in Patent Document 3, when an application running on a terminal requests a server to send a request packet is detected by the TCP management unit of the relay device, the determination unit of the relay device analyzing the request packet, and determining whether or not to switch a plurality of communication paths of a second network connecting the relay device and the server, which transmits the request packet, based on the result of the analysis; Have been described.

図4、及び図5は、内部ネットワークと外部ネットワークの境界にプロキシサーバを有する場合の、従来のLBOを説明する図である。図4は、LBOを行う場合の図である。図5は、LBOを行わない場合の図である。このプロキシサーバを有する場合の従来のLBOの動作については、非特許文献1の第16-17頁に詳しく説明されている。
41はパソコン等の端末である。42はルータである。43はDNSサーバである。44はプロキシサーバである。45は外部ウェブサイトである。プロキシサーバ44は、図1のデータセンター12にあってもよいし、拠点14に存在してもよい。
4 and 5 are diagrams for explaining conventional LBO when there is a proxy server at the boundary between the internal network and the external network. FIG. 4 is a diagram when LBO is performed. FIG. 5 is a diagram when LBO is not performed. The operation of a conventional LBO with this proxy server is described in detail on pages 16-17 of Non-Patent Document 1.
41 is a terminal such as a personal computer. 42 is a router. 43 is a DNS server. 44 is a proxy server. 45 is an external website. Proxy server 44 may reside at data center 12 of FIG.

図4の動作を説明する。
ステップS401:端末41は、宛先IPをプロキシサーバとして、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS402:ルータ42は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS403:端末41は、TCPの3ウェイハンドシェイク手順のACKパケットを送信する。これにより、TCPの3ウェイハンドシェイク手順が完了する。端末41は、Hostを「microsoft365.com」として、HTTPのCONNECTメソッドを送信する。
The operation of FIG. 4 will be described.
Step S401: The terminal 41 uses the destination IP as a proxy server to transmit a synchronization packet of the TCP 3-way handshake procedure.
Step S402: The router 42 returns a synchronous ACK packet of the TCP 3-way handshake procedure.
Step S403: The terminal 41 transmits an ACK packet of the TCP 3-way handshake procedure. This completes the TCP three-way handshake procedure. The terminal 41 sets the Host as "microsoft365.com" and transmits the HTTP CONNECT method.

ステップS404:ルータ42は、「microsoft365.com」がLBOプロファイルに記録されているドメイン名と一致するので、LBOを行うことを決定する。
ステップS405:ルータ42は、「microsoft365.com」をDNSサーバ43に送信して、「microsoft365.com」のIPアドレスを取得する。
ステップS406:ルータ42は、プロキシサーバ44を介さずに、外部ウェブサイト45に、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
Step S404: The router 42 decides to LBO because "microsoft365.com" matches the domain name recorded in the LBO profile.
Step S405: The router 42 sends "microsoft365.com" to the DNS server 43 and acquires the IP address of "microsoft365.com".
Step S406: The router 42 sends the synchronization packet of the TCP 3-way handshake procedure to the external website 45 without going through the proxy server 44 .

ステップS407:外部ウェブサイト45は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS408:ルータ42は、TCPの3ウェイハンドシェイク手順のACKパケットを外部ウェブサイト45へ送信する。これにより、ルータ42と外部ウェブサイト45との間のTCPの3ウェイハンドシェイク手順が完了する。ルータ42は、端末41とルータ42の間のTCPセッションと、ルータ42と外部ウェブサイト45の間のTCPセッションとを変換して通信する。
Step S407: The external website 45 returns a synchronous ACK packet of the TCP 3-way handshake procedure.
Step S408: The router 42 sends the ACK packet of the TCP 3-way handshake procedure to the external website 45; This completes the TCP three-way handshake procedure between router 42 and external website 45 . The router 42 converts the TCP session between the terminal 41 and the router 42 and the TCP session between the router 42 and the external website 45 for communication.

図5は、内部ネットワークと外部ネットワークの境界にプロキシサーバを有する場合であるが、図4のS404において、HostがLBOプロファイルのドメイン名と一致せず、LBOを行わない場合の図である。41~45は、図4のものと同じである。 FIG. 5 shows the case where there is a proxy server on the boundary between the internal network and the external network, but in S404 of FIG. 4, the Host does not match the domain name of the LBO profile and LBO is not performed. 41 to 45 are the same as those in FIG.

図5の動作を説明する。
ステップS501:端末41は、宛先IPをプロキシサーバとして、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS502:ルータ42は、TCPの3ウェイハンドシェイク手順の同期ACKパケットを返す。
ステップS503:端末41は、TCPの3ウェイハンドシェイク手順のACKパケットを送信する。これにより、TCPの3ウェイハンドシェイク手順が完了する。端末41は、Hostを「aaa.net」として、HTTPのCONNECTメソッドを送信する。
The operation of FIG. 5 will be described.
Step S501: The terminal 41 uses the destination IP as a proxy server to transmit a synchronization packet of the TCP 3-way handshake procedure.
Step S502: The router 42 returns a synchronous ACK packet of the TCP 3-way handshake procedure.
Step S503: The terminal 41 transmits an ACK packet of the TCP 3-way handshake procedure. This completes the TCP three-way handshake procedure. The terminal 41 sets the Host to "aaa.net" and transmits the HTTP CONNECT method.

ステップS504:ルータ42は、「aaa.net」がLBOプロファイルに記録されたドメイン名と一致しないので、LBOを行わないことを決定する。
ステップS505:ルータ42は、宛先IPをプロキシサーバ44として、TCPの3ウェイハンドシェイク手順の同期パケットを送信する。
Step S504: The router 42 decides not to LBO because "aaa.net" does not match the domain name recorded in the LBO profile.
Step S505: The router 42 sends a synchronization packet of TCP 3-way handshake procedure with the destination IP as the proxy server 44 .

ステップ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セッションを変換して通信する。
Step S506: The proxy server 44 returns a synchronous ACK packet of the TCP 3-way handshake procedure.
Step S<b>507 : The router 42 transmits an ACK packet of the TCP 3-way handshake procedure to the proxy server 44 . This completes the TCP three-way handshake procedure between router 42 and proxy server 44 . The router 42 sets the Host to "aaa.net" and transmits the HTTP CONNECT method.
Step S508: The proxy server 44 converts the TCP session between the router 42 and the proxy server 44 and the TCP session between the proxy server 44 and the external website 45 for communication.

特開2019-057801号公報(段落番号0002-0003)JP 2019-057801 (paragraph number 0002-0003) 特許第5790775号公報Japanese Patent No. 5790775 特許第5913258号公報Japanese Patent No. 5913258

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>juniper. NETWORKS, “What is an enterprise SD-WAN that can be easily introduced in a proxy environment?”, pp. 11-17, [online], September 24, 2019, [searched February 19, 2021], Internet, <https: //www.juniper.net/assets/jp/jp/local/pdf/additional-resources/osaka-seminar-sd-wan-handsout.pdf>

図4の従来例において、LBOを行う場合には、ルータ42において、端末41とルータ42間のTCPセッションを終端させ、また、外部ウェブサイト45とルータ42間のTCPセッションを終端させて、二つのTCPセッションを接続していた。
しかし、このように構成すると、ルータ42において、TCPのフロー制御、ウインドウ制御、輻輳制御、再送制御などの処理を行うことになるので、それらの処理に時間がかかり、高速に中継することができないという問題があった。
In the conventional example of FIG. 4, when performing LBO, the router 42 terminates the TCP session between the terminal 41 and the router 42, and terminates the TCP session between the external website 45 and the router 42. connected two TCP sessions.
However, with this configuration, TCP flow control, window control, congestion control, retransmission control, and other processes are performed in the router 42. These processes take time, and high-speed relaying is not possible. There was a problem.

本発明は、ルータ42において、端末41とルータ42間のTCPセッション、及び外部ウェブサイト45とルータ42間のTCPセッションを終端させるのではなく、テーブルを使って、端末とプロキシサーバ間のTCPセッション1と、ルータと外部ウェブサイト間のTCPセッション2のセッション情報の書き換えを行うことにより高速に中継することを目的とする。 Rather than terminating the TCP session between the terminal 41 and the router 42 and the TCP session between the external website 45 and the router 42 at the router 42, the present invention uses a table to terminate the TCP session between the terminal and the proxy server. 1 and high-speed relay by rewriting the session information of the TCP session 2 between the router and the external website.

本発明者らは、ルータにおいて、テーブルを使って、端末とプロキシサーバ間のTCPセッション1と、ルータと外部ウェブサイト間のTCPセッション2のセッション情報の書き換えを行うことにより高速に中継することができることを見出し、本発明を完成するに至った。 The present inventors used a table in the router to rewrite the session information of TCP session 1 between the terminal and the proxy server and TCP session 2 between the router and the external website, thereby enabling high-speed relaying. I found that it can be done, and came to complete the present invention.

[1] 端末がプロキシサーバを介して通信する環境において、前記端末から特定の接続先への通信をローカルブレイクアウトする中継装置であって、
前記中継装置は、処理部を含み、
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、
前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する第1処理と、
前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える第2処理を行う、中継装置。
[2] 前記第1処理及び前記第2処理は、前記処理部のデータプレーンで行う上記[1]に記載の中継装置。
[3] 前記処理部は、前記接続先のタイムスタンプと前記プロキシサーバのタイムスタンプの差分を前記中継装置に登録しておき、前記処理部のデータプレーンにおいて、前記ローカルブレイクアウト時に前記接続先が送信するパケットのタイムスタンプを前記差分により更新する上記[1]に記載の中継装置。
[4] 前記処理部は、前記接続先のウインドウスケールと前記プロキシサーバのウインドウスケールの差分を前記中継装置に登録しておき、前記処理部のデータプレーンにおいて、前記ローカルブレイクアウト時に前記接続先が送信するパケットのウインドウサイズを前記差分により更新する上記[1]に記載の中継装置。
[5] 前記処理部は、IPヘッダのチェックサム以外の部分を書き換えた後に、IPヘッダのチェックサムを更新する上記[1]に記載の中継装置。

[6] 前記処理部は、TCPヘッダのチェックサム以外の部分を書き換えた後に、TCPヘッダのチェックサムを更新する上記[1]から[4]のいずれか一に記載の中継装置。
[7]
端末がプロキシサーバを介して通信する環境において、前記端末から特定の接続先への通信を中継装置がローカルブレイクアウトする方法であって、
前記中継装置は、処理部を含み、
前記中継装置が前記ローカルブレイクアウトの処理を行う時に、
前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する第1処理と、
前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える第2処理を行うローカルブレイクアウト方法。
[1] A relay device that locally breaks out communication from the terminal to a specific connection destination in an environment where the terminal communicates via a proxy server,
The relay device includes a processing unit,
When the processing unit performs the processing of the local breakout,
rewriting the source IP address and port number of a packet sent by the terminal to the proxy server to the IP address and port number of the relay device, and replacing the destination IP address and port number of the packet with the connection destination IP address; and a first process of rewriting to a PORT number and transmitting to the connection destination;
difference between the sequence number and the acknowledgment number in the communication between the terminal and the proxy server and the sequence number and the acknowledgment number in the communication between the relay device and the connection destination are registered in the relay device; A relay device that performs a second process of rewriting a sequence number and an acknowledgment number of a packet transmitted by the connection destination according to the registered difference.
[2] The relay device according to [1] above, in which the first process and the second process are performed in a data plane of the processing unit.
[3] The processing unit registers a difference between the time stamp of the connection destination and the time stamp of the proxy server in the relay device, and in the data plane of the processing unit, when the connection destination is the local breakout, The relay device according to [1] above, which updates the time stamp of the packet to be transmitted with the difference.
[4] The processing unit registers a difference between the window scale of the connection destination and the window scale of the proxy server in the relay device, and in the data plane of the processing unit, when the local breakout occurs, the connection destination The relay device according to [1] above, wherein the window size of the packet to be transmitted is updated by the difference.
[5] The relay device according to [1] above, wherein the processing unit updates the checksum of the IP header after rewriting the portion other than the checksum of the IP header.

[6] The relay device according to any one of [1] to [4] above, wherein the processing unit updates the checksum of the TCP header after rewriting the portion other than the checksum of the TCP header.
[7]
A method in which a relay device locally breaks out communication from a terminal to a specific connection destination in an environment where the terminal communicates via a proxy server,
The relay device includes a processing unit,
When the relay device processes the local breakout,
rewriting the source IP address and port number of a packet sent by the terminal to the proxy server to the IP address and port number of the relay device, and replacing the destination IP address and port number of the packet with the connection destination IP address; and a first process of rewriting to a PORT number and transmitting to the connection destination;
difference between the sequence number and the acknowledgment number in the communication between the terminal and the proxy server and the sequence number and the acknowledgment number in the communication between the relay device and the connection destination are registered in the relay device; A local breakout method for performing a second process of rewriting a sequence number and an acknowledgment number of a packet transmitted by the connection destination according to the registered difference.

本発明によれば、ルータにおいて、テーブルを使って、端末とプロキシサーバ間のTCPセッション1と、ルータと外部ウェブサイト間のTCPセッション2のセッション情報の書き換えを行うことにより、高速に中継することができる。 According to the present invention, a table is used in the router to rewrite the session information of the TCP session 1 between the terminal and the proxy server and the TCP session 2 between the router and the external website, thereby relaying at high speed. can be done.

拠点のコンピュータが、データセンターを経由して企業外のネットワークに接続される図である。FIG. 1 is a diagram in which a computer at a base is connected to a network outside the company via a data center; LBOの原理を説明する図である。It is a figure explaining the principle of LBO. 既存のLBOの手順を示す図である。1 is a diagram showing an existing LBO procedure; FIG. 従来、プロキシサーバを有する場合に、LBOを行う図である。FIG. 10 is a diagram of conventionally performing LBO when having a proxy server; 従来、プロキシサーバを有する場合に、LBOを行わない図である。FIG. 10 is a diagram of conventionally not performing LBO when having a proxy server; 本発明の実施形態における、LBOを行う図である。FIG. 4 is a diagram of performing LBO in an embodiment of the present invention; 本発明の実施形態における、LBOを行わない図である。FIG. 4 is a diagram without LBO in an embodiment of the present invention; 本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。FIG. 10 is a diagram illustrating details of conversion of session information when LBO is performed in the embodiment of the present invention; 本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。FIG. 10 is a diagram illustrating details of conversion of session information when LBO is performed in the embodiment of the present invention; 本発明の実施形態におけるLBOを行う場合のセッション情報の変換の詳細を説明する図である。FIG. 10 is a diagram illustrating details of conversion of session information when LBO is performed in the embodiment of the present invention; 本発明の実施形態におけるシーケンス番号と確認応答番号の書き換えを説明する図である。It is a figure explaining rewriting of a sequence number and an acknowledgment number in embodiment of this invention. 本発明の実施形態におけるシーケンス番号と確認応答番号の書き換えを説明する図である。It is a figure explaining rewriting of a sequence number and an acknowledgment number in embodiment of this invention. 本発明の実施形態おけるタイムスタンプの変換の詳細を説明する図である。FIG. 4 is a diagram illustrating details of time stamp conversion according to the embodiment of the present invention; 本発明の実施形態おけるMSS情報の通知の詳細を説明する図である。FIG. 5 is a diagram illustrating details of notification of MSS information in the embodiment of the present invention; 本発明の実施形態おけるスケールサイズの変換の詳細を説明する図である。FIG. 4 is a diagram illustrating details of scale size conversion in the embodiment of the present invention; 本発明の実施形態おけるルータの内部構造を説明する図である。It is a figure explaining the internal structure of the router in embodiment of this invention. 本社及び支社の端末がLBOを行わない場合の通信経路を示す図である。FIG. 10 is a diagram showing communication paths when terminals at the head office and branch offices do not perform LBO; 本社及び支社の端末がLBOを行う場合の通信経路を示す図である。FIG. 4 is a diagram showing communication paths when terminals of a head office and branch offices perform LBO;

以下、図6、及び図7を用いて、本発明の実施形態について説明する。
図6は、本発明の実施形態において、LBOを行う場合の図である。41~45は、図4のものと同じである。
ステップS601:TCPの3ウェイハンドシェイク手順により、端末41とプロキシサーバ44間のTCPセッションを確立する。ルータ42は、端末41とプロキシサーバ44間の通信を覗き見して、TCPパラメータを取得する。
An embodiment of the present invention will be described below with reference to FIGS. 6 and 7. FIG.
FIG. 6 is a diagram for performing LBO in the embodiment of the present invention. 41 to 45 are the same as those in FIG.
Step S601: Establish a TCP session between the terminal 41 and the proxy server 44 by a TCP 3-way handshake procedure. The router 42 snoops on the communication between the terminal 41 and the proxy server 44 and acquires TCP parameters.

ステップ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経路として登録してもよい。
Step S602: The terminal 41 sets the Host as "microsoft365.com" and transmits the HTTP CONNECT method to the proxy server 44. FIG. The router 42 snoops on this communication and detects that the Host is "microsoft365.com". Router 42 matches the detected "microsoft365.com" to the LBO profile and determines that "microsoft365.com" matches the domain name recorded in the LBO profile. Accordingly, it is decided to perform LBO.
Step S603: The router 42 uses the DNS server 43 to convert the domain name into an IP address.
Step S604: The router 42 may register the IP address as the LBO route.

ステップS605:ルータ42は、外部ウェブサイト45へTCPの3ウェイハンドシェイク手順の同期パケットを送信する。
ステップS606:ルータ42は、外部ウェブサイト45との間で、TCPセッションを確立する。
ステップS607:ルータ42は、端末41にCONNECT Estabを送信する。
ステップS608:ルータ42は、テーブルを使って、端末41とプロキシサーバ44との間のTCPセッションと、ルータ42と外部ウェブサイト45との間のTCPセッションのセッション情報の書き換えを行ってブレイクアウト先に送信する。
Step S605: The router 42 sends a synchronization packet of the TCP 3-way handshake procedure to the external website 45;
Step S606: The router 42 establishes a TCP session with the external website 45;
Step S<b>607 : The router 42 sends CONNECT Estab to the terminal 41 .
Step S608: Using the table, the router 42 rewrites the session information of the TCP session between the terminal 41 and the proxy server 44 and the TCP session between the router 42 and the external website 45 to set the breakout destination. Send to

図7は、本発明の実施形態において、LBOを行わない場合の図である。41~45は、図4のものと同じである。
ステップS701:TCPの3ウェイハンドシェイク手順により、端末41とプロキシサーバ44間のTCPセッションを確立する。ルータ42は、端末41とプロキシサーバ44間の通信を覗き見して、TCPパラメータを取得する。
FIG. 7 is a diagram of a case where LBO is not performed in the embodiment of the present invention. 41 to 45 are the same as those in FIG.
Step S701: Establish a TCP session between the terminal 41 and the proxy server 44 by a TCP 3-way handshake procedure. The router 42 snoops on the communication between the terminal 41 and the proxy server 44 and acquires TCP parameters.

ステップ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アドレスに変換する。
Step S702: The terminal 41 sends the HTTP CONNECT method to the proxy server 44 with Host set to "aaa.com". The router 42 snoops on this communication and detects that the Host is "aaa.com". Router 42 matches the detected "aaa.com" to the LBO profile and determines that "aaa.com" does not match the domain name recorded in the LBO profile. Thereby, it is decided not to perform LBO.
Step S703: The proxy server 44 uses the DNS server 43 to convert the domain name into an IP address.

ステップS704:プロキシサーバ44は、外部ウェブサイト45との間で、TCPセッションを確立する。
ステップS705:プロキシサーバ44は、端末41にCONNECT Estabを送信する。
ステップS706:プロキシサーバ44は、端末41とプロキシサーバ44との間のTCPセッションと、プロキシサーバ44と外部ウェブサイト45との間のTCPセッションとを変換して通信する。
Step S704: The proxy server 44 establishes a TCP session with the external website 45.
Step S<b>705 : The proxy server 44 sends CONNECT Estab to the terminal 41 .
Step S706: The proxy server 44 converts the TCP session between the terminal 41 and the proxy server 44 and the TCP session between the proxy server 44 and the external website 45 for communication.

以上のように、本発明では、端末とプロキシサーバとの間の通信をルータが覗き見して、外部ウェブサイトのドメイン名を検出するので、ルータで端末からのTCPセッションを終端することがなく、したがって、性能が劣化し、リソースの消費量が多くなるという問題が生じない。
また、本発明では、LBOを行う場合にもプロキシサーバを利用するので、プロキシサーバからのCONNECT Estabを中継の判断材料に使用でき、これによりプロキシサーバのユーザ認証機能やフィルタリング機能を使用することができる。
As described above, in the present invention, the router snoops the communication between the terminal and the proxy server and detects the domain name of the external website, so the router does not terminate the TCP session from the terminal. , therefore, the problem of degraded performance and increased resource consumption does not occur.
In addition, in the present invention, the proxy server is also used when LBO is performed, so the CONNECT ESTAB from the proxy server can be used as a criterion for relaying, thereby enabling the user authentication function and filtering function of the proxy server to be used. can.

本発明の実施形態では、CONNECTメソッドを参照してドメイン名を検出したが、参照の対象は、CONNECTメソッドに限らない。HTTPのGETメソッドを参照して、ドメイン名を検出してもよい。 In the embodiment of the present invention, the domain name is detected by referring to the CONNECT method, but the object of reference is not limited to the CONNECT method. The domain name may be detected by referring to the GET method of HTTP.

また、図7のようにプロキシサーバを経由する接続としておいて、SSL/TLSのClient HelloのSNIオプションをルータが参照して、接続先がLBOを行うべき外部ウェブサイトであることが判明した後に、ルータが図2の点線のように接続替えすることとしてもよい。 Also, as shown in FIG. 7, assuming that the connection goes through a proxy server, the router refers to the SNI option of Client Hello of SSL/TLS, and after it is found that the connection destination is an external website to which LBO should be performed, , the router may change the connection as indicated by the dotted line in FIG.

本発明の実施形態では、CONNECTメソッドを参照して検出したドメイン名に基づいて、LBOを行うか否かを決定したが、検出したドメイン名に基づいて、パケットの廃棄、パケットの書き換え、パケット情報の保存、QoS機能(優先制御や帯域制御)の少なくとも1つ以上の処理を行うか否かを決定してもよい。 In the embodiment of the present invention, whether or not to perform LBO is determined based on the domain name detected by referring to the CONNECT method. and at least one of the QoS functions (priority control and bandwidth control) may be determined.

また、検出したドメイン名をDNSサーバによりIPアドレスに変換し、そのIPアドレスに基づいて外部ウェブサイトへのTCPセッションの接続を行うこととしているが、追加で、そのIPアドレスをLBO経路として登録してもよい。 In addition, the detected domain name is converted to an IP address by a DNS server, and a TCP session connection to an external website is made based on that IP address.In addition, the IP address is registered as an LBO route. may

以上、端末41からプロキシサーバ44に送信されるパケットをルータ42が覗き見することにより、LBOを行うか否か判定する方法について説明した。
以下では、図6のステップS608にてルータ42により行われる、端末41とプロキシサーバ44との間のTCPセッションと、ルータ42と外部ウェブサイト45との間のTCPセッションとの変換の詳細について説明する。
The method of determining whether or not to perform LBO by having the router 42 peek at packets transmitted from the terminal 41 to the proxy server 44 has been described above.
Details of the conversion between the TCP session between the terminal 41 and the proxy server 44 and the TCP session between the router 42 and the external website 45 performed by the router 42 in step S608 of FIG. 6 will be described below. do.

図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」という。)のセッション情報を取得する。
8 to 10 show the flow of a series of processes with three diagrams, and are diagrams showing the details of the process of FIG.
Step S<b>801 : The terminal 41 transmits a SYN packet to the proxy server 44 .
Step S<b>802 : Proxy server 44 transmits a SYN/ACK packet to terminal 41 .
Step S<b>803 : The terminal 41 transmits an ACK packet to the proxy server 44 .
Step S804: The router peeks at the packets transmitted during steps S801 to S803, and retrieves the session information of the TCP session between the terminal 41 and the proxy server 44 (hereinafter referred to as "TCP session 1"). get.

ステップS805:端末41が、プロキシサーバ44へCONNECTメソッドを送信する。
ステップS806:ルータ42は、コントロールプレーン422でCONNECTメソッドを覗き見して、その結果、LBOを行うべきであると判断する。
ステップS807:ルータ42は、DNSサーバ43へ照会する。
ステップS808:DNSサーバ43は、ルータ42へ外部ウェブサイト45のIPアドレスを返す。
Step S<b>805 : The terminal 41 sends the CONNECT method to the proxy server 44 .
Step S806: The router 42 snoops the CONNECT method on the control plane 422 and, as a result, determines that LBO should be performed.
Step S<b>807 : The router 42 queries the DNS server 43 .
Step S808: The DNS server 43 returns the IP address of the external website 45 to the router 42;

ステップS809:プロキシサーバ44は、端末41宛てのCONNECT Estabを送信する。
ステップS810:ルータ42は、端末41宛てのCONNECT Estabを受信し、端末には送信せずに、端末41宛てのCONNECT Estabを保持する。
Step S<b>809 : The proxy server 44 transmits CONNECT Estab addressed to the terminal 41 .
Step S810: The router 42 receives the CONNECT Estab addressed to the terminal 41 and holds the CONNECT Estab addressed to the terminal 41 without transmitting it to the terminal.

図9では、次の動作を行う。
ステップS901:ルータ42は、コントロールプレーン422で、外部ウェブサイト45へSYNパケットを送る。
ステップS902:外部ウェブサイト45は、ルータ42へSYN/ACKパケットを送信する。
ステップS903:ルータ42は、外部ウェブサイト45へACKパケットを送る。
In FIG. 9, the following operations are performed.
Step S901: The router 42 sends a SYN packet to the external website 45 on the control plane 422;
Step S902: The external website 45 sends a SYN/ACK packet to the router 42;
Step S903: The router 42 sends an ACK packet to the external website 45;

ステップ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に登録する。
Step S904: The router 42 establishes a TCP session with the external website 45 (this TCP session is hereinafter referred to as "TCP session 2") through steps S901 to S903.
Step S905: The router 42 creates conversion tables (970 and 980) for TCP session 1 and TCP session 2. FIG.
Step S906: The router 42 registers the conversion tables (970 and 980) for TCP session 1 and TCP session 2 in the data plane 421. FIG.

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番号の書き換えを行う。
The IP address and PORT number of the terminal 41 are stored in the source column of the packet transmitted by the terminal 41 in the TCP session 1 . The router 42 rewrites this to the IP address and PORT number of the router 42 in the TCP session 2 . Also, in the TCP session 1, the IP address and PORT number of the proxy server 44 are stored in the destination column of the packet transmitted by the terminal 41 . The router 42 rewrites this to the IP address and PORT number of the external website 45 in the TCP session 2 .
Similarly, the data plane 421 rewrites the IP address and the PORT number for packets destined for the router 42 from the external website 45 in the opposite direction.

ステップS907:ルータ42は、ステップS810において保持した端末41宛てのCONNECT Estabを、端末41へ転送する。
ステップS908:ルータ42は、プロキシサーバ44との間のTCPセッション1を切断して、リソースを解放する。
Step S907: The router 42 transfers to the terminal 41 the CONNECT Estab addressed to the terminal 41 held in step S810.
Step S908: The router 42 disconnects the TCP session 1 with the proxy server 44 to release resources.

図10では、次の動作を行う。
ステップS1001:端末41は、CLIENT Helloを送信する。
ステップS1002:ルータ42は、データプレーン421で、ステップS906で説明したTCPセッション1とTCPセッション2間のIPアドレスとPORT番号の書き換えを行う。
In FIG. 10, the following operations are performed.
Step S1001: The terminal 41 transmits CLIENT Hello.
Step S1002: On the data plane 421, the router 42 rewrites the IP address and PORT number between the TCP session 1 and the TCP session 2 described in step S906.

図8~図10で説明した処理の結果、ルータ42では、TCPセッションの変換を行うが、TCPセッションを管理していない。このため、ルータ42では、プロトコル処理を行う必要がない。
また、ルータ42では、データプレーン421でTCPセッションの変換を行うので、コントロールプレーン422でTCPセッションを終端する方式と比べると性能面で有利である。
As a result of the processing described with reference to FIGS. 8 to 10, the router 42 converts TCP sessions, but does not manage TCP sessions. Therefore, the router 42 does not need to perform protocol processing.
In addition, since the router 42 converts the TCP session on the data plane 421 , it is more advantageous in terms of performance than the method of terminating the TCP session on the control plane 422 .

以上の説明において、図8~図10を用いて、LBOを行う場合のIPアドレスとPORT番号の書き換えについて説明してきた。
しかし、LBOを行う場合には、IPアドレスとPORT番号の他に、シーケンス番号及び確認応答番号(以下では「Ack番号」という。)の書き換えを行うことも必要である。以下、説明する。
In the above description, the rewriting of the IP address and the PORT number when performing LBO has been described with reference to FIGS.
However, when performing LBO, it is also necessary to rewrite the sequence number and acknowledgment number (hereinafter referred to as "Ack number") in addition to the IP address and PORT number. This will be explained below.

図11、図12を使用して、LBOを行う場合のシーケンス番号及び確認応答番号(以下では「Ack番号」という。)の書き換えについて説明する。
TCPヘッダには、シーケンス番号及びAck番号のフィールドがある。
図11のステップS1101からS1103までは、よく知られた3ウェイハンドシェイクの手順であるから説明を省略する。ステップS1104において、端末41は120バイトのデータを送信する。
Rewriting of sequence numbers and acknowledgment numbers (hereinafter referred to as “Ack numbers”) when LBO is performed will be described with reference to FIGS. 11 and 12. FIG.
The TCP header has fields for Sequence Number and Ack Number.
Steps S1101 to S1103 in FIG. 11 are a well-known 3-way handshake procedure, so description thereof will be omitted. In step S1104, the terminal 41 transmits 120 bytes of data.

ステップS1105では、プロキシサーバ44は、「相手から受信したAck番号(20001)」をシーケンス番号とする。ステップS1105では、プロキシサーバ44は、「相手から受信したシーケンス番号(10001)」に「受信したデータサイズの値(120)」を加えた「10121」を、Ack番号とする。 In step S1105, the proxy server 44 sets "the Ack number (20001) received from the other party" as the sequence number. In step S1105, the proxy server 44 sets "10121" obtained by adding the "received data size value (120)" to the "received sequence number (10001)" as an Ack number.

ステップS1106で、ルータ42は、外部ウェブサイト45との間で3ウェイハンドシェイクを開始する。ステップS1106~S1108の3ウェイハンドシェイクは、ステップS1105までの通信とは別に行われるから、ステップS1105のシーケンス番号及びAck番号と、ステップS1108のシーケンス番号及びAck番号との間には、関連性がない。したがって、例えば、仮に、ステップS1109の後に、端末41が送信するパケットを、そのまま外部ウェブサイト45に届けると、外部ウェブサイト45は、TCPの規則に従っていないシーケンス番号及びAck番号を含むパケットを受信することになる。 At step S 1106 , router 42 initiates a three-way handshake with external website 45 . Since the three-way handshake in steps S1106 to S1108 is performed separately from the communication up to step S1105, there is no relationship between the sequence number and Ack number in step S1105 and the sequence number and Ack number in step S1108. do not have. Therefore, for example, if the packet sent by the terminal 41 is delivered to the external website 45 as it is after step S1109, the external website 45 receives a packet containing a sequence number and an Ack number that do not comply with TCP rules. It will be.

よって、図11のAの時点において、端末41とプロキシサーバ44間の通信と、ルータ42と外部ウェブサイト45間の通信との、シーケンス番号の差分及びAck番号の差分をルータ42に登録しておく。そして、以後の通信において、ルータ42が、シーケンス番号の書き換え及びAck番号の書き換えを行うこととする。 Therefore, at the time of A in FIG. 11, the difference in sequence number and the difference in Ack number between the communication between the terminal 41 and the proxy server 44 and the communication between the router 42 and the external website 45 are registered in the router 42. back. Then, in subsequent communications, the router 42 rewrites the sequence number and the Ack number.

ステップS1109の後に端末41が送信する際には、端末41は、「相手から受信したAck番号(10121)」をシーケンス番号とする。また、端末41は、「相手から受信したシーケンス番号(20001)」に「受信したデータサイズの値(39)」を加えた「20040」を、Ack番号とする。図11の左下隅にこの内容を記載してある。 When the terminal 41 transmits after step S1109, the terminal 41 uses "the Ack number (10121) received from the other party" as the sequence number. Also, the terminal 41 sets “20040” obtained by adding “the value of the received data size (39)” to “the sequence number (20001) received from the other party” as the Ack number. This content is described in the lower left corner of FIG.

ルータ42は、図11の左下隅に記載した内容を把握しているので、図11の左下隅に記載した内容と、ステップS1108のシーケンス番号及びAck番号との差分を取って、差分テーブル1170を作成する。具体的には、ステップS1108のシーケンス番号(30001)と図11の左下隅のシーケンス番号(10121)の差分(19880)が、「上りのシーケンス番号の差分」となる。また、ステップS1108のAck番号(40001)と図11の左下隅のAck番号(20040)の差分(19961)が、「上りのAck番号の差分」となる。 Since the router 42 has grasped the contents described in the lower left corner of FIG. 11, the difference between the contents described in the lower left corner of FIG. create. Specifically, the difference (19880) between the sequence number (30001) in step S1108 and the sequence number (10121) in the lower left corner of FIG. 11 is the "upstream sequence number difference". Also, the difference (19961) between the Ack number (40001) in step S1108 and the Ack number (20040) in the lower left corner of FIG. 11 is the "uplink Ack number difference".

図12の図のステップS1201において、端末41が517バイトのデータを送信する際には、ステップS1202において、ルータ42が、シーケン番号(10121)に差分の「19880」を加える。また、ルータ42が、Ack番号(20040)に差分の「19961」を加える。このようにして、ステップS1203において、外部ウェブサイト45は、TCPの規則に従ったシーケンス番号及びAck番号を含むパケットを受信する。 When the terminal 41 transmits 517-byte data in step S1201 of FIG. 12, the router 42 adds the difference "19880" to the sequence number (10121) in step S1202. Also, the router 42 adds the difference "19961" to the Ack number (20040). Thus, in step S1203, external website 45 receives a packet containing a sequence number and an Ack number according to TCP rules.

図12のステップS1204では、外部ウェブサイト45は、「相手から受信したAck番号(40001)」をシーケンス番号とする。また、外部ウェブサイト45は、「相手から受信したシーケンス番号(30001)」に「受信したデータサイズの値(517)」を加えた「30518」を、Ack番号とする。 In step S1204 of FIG. 12, the external website 45 uses "the Ack number received from the other party (40001)" as the sequence number. Also, the external website 45 sets "30518", which is obtained by adding the "received data size value (517)" to the "received sequence number (30001)", as an Ack number.

TCPのシーケンス番号とAck番号に関する規則により、下りのシーケンス番号の差分は、上りのAck番号の差分に等しい。また、下りのAck番号の差分は、上りのシーケンス番号の差分に等しい。 According to TCP's rules for Sequence Numbers and Ack Numbers, the difference in Down Sequence Numbers is equal to the difference in Up Ack Numbers. In addition, the difference in downlink Ack numbers is equal to the difference in uplink sequence numbers.

よって、ステップS1205において、ルータ42は、ステップS1204のシーケンス番号(40001)から上りのAck番号の差分(19961)を減じた「20040」を書き換え後のシーケンス番号とする。
また、ステップS1205において、ルータ42は、ステップS1204のAck番号(30518)から上りのシーケンス番号の差分(19880)を減じた「10638」を書き換え後のシーケンス番号とする。
Therefore, in step S1205, the router 42 subtracts the upstream Ack number difference (19961) from the sequence number (40001) in step S1204 to obtain "20040" as the rewritten sequence number.
In step S1205, the router 42 subtracts the upstream sequence number difference (19880) from the Ack number (30518) in step S1204 to obtain "10638" as the rewritten sequence number.

仮に、プロキシサーバ44が、ステップS1201のパケットを受信した場合には、プロキシサーバ44は、以下の動作を行う。プロキシサーバ44は、「相手から受信したAck番号(20040)」をシーケンス番号とする。また、プロキシサーバ44は、「相手から受信したシーケンス番号(10121)」に「受信したデータサイズの値(517)」を加えた「10638」を、Ack番号とする。以上のシーケンス番号とAck番号は、ステップS1206のシーケンス番号とAck番号と同じである。したがって、本発明の実施形態により、端末41が、TCPの規則に従ったシーケンス番号及びAck番号を含むパケットを受信することを確認できる。 If the proxy server 44 receives the packet of step S1201, the proxy server 44 performs the following operations. The proxy server 44 uses "the Ack number received from the other party (20040)" as the sequence number. Also, the proxy server 44 sets "10638" obtained by adding the "received data size value (517)" to the "received sequence number (10121)" as an Ack number. The above sequence number and Ack number are the same as the sequence number and Ack number in step S1206. Therefore, according to the embodiment of the present invention, it can be confirmed that the terminal 41 receives a packet containing a sequence number and an Ack number according to TCP rules.

ところで、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
By the way, the TCP header has a field called option. This option field can be used in various ways to improve the performance of TCP communication. Next, list some of the option types along with the option number.

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

オプションフィールドは、複数のオプションのために使用することもできる。以下、タイムタンプのオプションが有効な場合と、MSSのオプションが有効な場合と、ウインドウスケールのオプションが有効な場合のそれぞれについて、TCPセッション1とTCPセッション2の間の変換処理について説明する。 The options field can also be used for multiple options. Hereinafter, conversion processing between TCP session 1 and TCP session 2 will be described for each of the cases where the time stamp option is valid, the MSS option is valid, and the window scale option is valid.

図13は、オプションフィールドをタイムタンプとして用いた場合について、TCPセッション1とTCPセッション2の間の変換処理について説明する図である。
パケットが遅延した場合、同じシーケンス番号を持つ前のパケットが存在することがある。TCPには、PAWS(Protection Against Wrapped Sequence number(重複したシーケンス番号に対する保護))という機能があり、受信側は、同じシーケンス番号を持つパケットが2つ存在する場合、タイムスタンプを見て、古いタイムスタンプを持つパケットを破棄する。したがって、タイムスタンプについては正しく受信側に伝えられる必要がある。
FIG. 13 is a diagram illustrating conversion processing between TCP session 1 and TCP session 2 when the option field is used as a time stamp.
If a packet is delayed, there may be a previous packet with the same sequence number. TCP has a feature called PAWS (Protection Against Wrapped Sequence number), in which the receiver looks at the time stamps when there are two packets with the same sequence number and uses the old time Discard packets with stamps. Therefore, the time stamp must be correctly conveyed to the receiving side.

ステップS1301:端末41とプロキシサーバ44は、TCPセッション1のSYN、SYN/ACKでタイムスタンプを通知する。
ステップS1302:ルータ42は、端末41とプロキシサーバ44間のパケットを覗き見して、端末41のタイムスタンプ情報をルータ42に反映させておく。この反映処理により、端末41のタイムスタンプとルータ42のタイムスタンプの差分を零にしておくことができる。ルータ42は、この端末41のタイムスタンプとルータ42のタイムスタンプの差分が零であることを登録しておく。
Step S1301: The terminal 41 and the proxy server 44 notify the time stamp by SYN and SYN/ACK of the TCP session 1. FIG.
Step S1302: The router 42 peeks at the packet between the terminal 41 and the proxy server 44 and reflects the time stamp information of the terminal 41 on the router 42 . By this reflection process, the difference between the time stamp of the terminal 41 and the time stamp of the router 42 can be set to zero. The router 42 registers that the difference between the time stamp of the terminal 41 and the time stamp of the router 42 is zero.

ステップS1303:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでタイムスタンプを通知する。これにより、ルータ42は、外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分を把握することができる。ルータ42は、この外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分を登録しておく。ここでは、仮に、この外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分が「100」であったとする。 Step S1303: The router 42 and the external website 45 notify the time stamp by SYN, SYN/ACK of TCP session 2. Thereby, the router 42 can grasp the difference between the time stamp of the external website 45 and the time stamp of the proxy server 44 . The router 42 registers the difference between the time stamp of this external website 45 and the time stamp of the proxy server 44 . Assume here that the difference between the time stamp of the external website 45 and the time stamp of the proxy server 44 is "100".

ステップS1304:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1370と1380)を作成する。
ステップS1305:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1370と1380)をデータプレーン421に登録する。
Step S1304: The router 42 creates conversion tables (1370 and 1380) between TCP session 1 and TCP session 2.
Step S1305: The router 42 registers the conversion table (1370 and 1380) between TCP session 1 and TCP session 2 in the data plane 421. FIG.

ステップS1306:ルータ42のデータプレーン421は、外部ウェブサイト45からのTCPパケットのタイムスタンプ(=2000)を、登録しておいた外部ウェブサイト45のタイムスタンプとプロキシサーバ44のタイムスタンプとの差分(100)により更新する。つまり、外部ウェブサイト45のタイムスタンプ(=2000)を、プロキシサーバ44のタイムスタンプ(=2100)に書き換えるわけである。
ステップS1307:ルータ42のデータプレーン421は、更新後のタイムスタンプ=2100のパケットを端末41へ送信する。
Step S1306: The data plane 421 of the router 42 converts the time stamp (=2000) of the TCP packet from the external website 45 to the difference between the registered time stamp of the external website 45 and the time stamp of the proxy server 44. Update by (100). That is, the time stamp (=2000) of the external website 45 is rewritten to the time stamp (=2100) of the proxy server 44 .
Step S<b>1307 : The data plane 421 of the router 42 transmits the packet with the updated time stamp=2100 to the terminal 41 .

ステップS1308:ルータ42のデータプレーン421は、端末41からのTCPパケットのタイムスタンプ(=100)を、登録しておいた端末41のタイムスタンプとルータ42のタイムスタンプの差分(=0)により更新する。なお、「更新する」といっても、差分が零であるから、実際には更新する処理を省くことができる。又は、別の方法として、ステップS1302の反映処理を行わず、零でない、端末41のタイムスタンプとルータ42のタイムスタンプの差分を登録しておき、ステップS1308では、更新処理を行うこととしてもよい。
ステップS1309:ルータ42のデータプレーン421は、更新後のタイムスタンプ=100のパケットを外部ウェブサイト45へ送信する。
これにより、例えばステップS1306とS1307では、外部ウェブサイト45のタイムスタンプを、プロキシサーバ44のタイムスタンプに変換することができる。
Step S1308: The data plane 421 of the router 42 updates the time stamp (=100) of the TCP packet from the terminal 41 with the registered difference (=0) between the time stamp of the terminal 41 and the time stamp of the router 42. do. It should be noted that even if it says "update", since the difference is zero, it is possible to actually omit the process of updating. Alternatively, as another method, the difference between the time stamp of the terminal 41 and the time stamp of the router 42, which is not zero, may be registered without performing the reflection process in step S1302, and the update process may be performed in step S1308. .
Step S<b>1309 : The data plane 421 of the router 42 transmits the updated timestamp=100 packet to the external website 45 .
Thus, for example, in steps S1306 and S1307, the external website 45 timestamp can be converted to the proxy server 44 timestamp.

図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を登録しておく。
FIG. 14 is a diagram for explaining notification of MSS information when the option field is used as MSS. MSS (Maximum Segment Size) represents how much size per packet can be accepted.
Step S1401: The terminal 41 and the proxy server 44 notify the MSS by SYN and SYN/ACK of TCP session 1.
Step S1402: The router 42 peeks at the packet between the terminal 41 and the proxy server 44 and reflects the MSS information of the terminal 41 on the router 42 in advance. By this reflecting process, the router 42 registers the MSS of the terminal 41 in advance.

ステップS1403:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでMSSを通知する。このとき、ルータ42は、外部ウェブサイト45に端末41のMSSを通知する。
ステップS1404:外部ウェブサイト45から送信されるパケットの大きさは、端末41のMSSよりも小さいから、端末41が受信できないという現象は起きない。
Step S1403: Router 42 and external website 45 notify the MSS by SYN, SYN/ACK of TCP session 2. At this time, the router 42 notifies the external website 45 of the MSS of the terminal 41 .
Step S1404: Since the size of the packet sent from the external website 45 is smaller than the MSS of the terminal 41, the phenomenon that the terminal 41 cannot receive does not occur.

図15は、オプションフィールドをウインドウスケールとして用いた場合について、TCPセッション1とTCPセッション2の間の変換処理について説明する図である。
TCPヘッダには、オプションとしてではなく、元々、ウインドウサイズというフィールドが設けられている。ウインドウサイズは、ACK無しにどのくらいのTCPペイロードを受信できるかを表す。オプションフィールドをウインドウスケールとして用いた場合には、ウインドウスケールとして通知した値の数だけ、ウインドウサイズをビットシフトすることができる。
FIG. 15 is a diagram illustrating conversion processing between TCP session 1 and TCP session 2 when the option field is used as the window scale.
The TCP header has a window size field inherently, not as an option. Window size represents how much TCP payload can be received without an ACK. If the option field is used as the window scale, the window size can be bit-shifted by the number of values notified as the window scale.

ステップS1501:端末41とプロキシサーバ44は、TCPセッション1のSYN、SYN/ACKでウインドウスケールを通知する。
ステップS1502:ルータ42は、端末41とプロキシサーバ44間のパケットを覗き見して、端末41のウインドウスケールをルータ42に反映させておく。この反映処理により、端末41のウインドウスケールとルータ42のウインドウスケールの差分を零にしておくことができる。ルータ42は、この端末41のウインドウスケールとルータ42のウインドウスケールの差分が零であることを登録しておく。
Step S1501: The terminal 41 and the proxy server 44 notify the window scale by SYN and SYN/ACK of the TCP session 1 .
Step S1502: The router 42 peeks at the packet between the terminal 41 and the proxy server 44, and reflects the window scale of the terminal 41 on the router 42 in advance. By this reflection processing, the difference between the window scale of the terminal 41 and the window scale of the router 42 can be set to zero. The router 42 registers that the difference between the window scale of the terminal 41 and the window scale of the router 42 is zero.

ステップS1503:ルータ42と外部ウェブサイト45は、TCPセッション2のSYN、SYN/ACKでウインドウスケールを通知する。これにより、ルータ42は、外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分を把握することができる。ルータ42は、この外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分を登録しておく。ここでは、仮に、外部ウェブサイト45のウインドウスケールが「6」であり、プロキシサーバ44のウインドウスケールが「2」であったとする。この時、ルータ42は、それらの差分「4」を登録しておく。 Step S1503: The router 42 and the external website 45 notify the window scale by SYN, SYN/ACK of TCP session 2. Thereby, the router 42 can grasp the difference between the window scale of the external website 45 and the window scale of the proxy server 44 . The router 42 registers the difference between the window scale of this external website 45 and the window scale of the proxy server 44 . Assume here that the window scale of the external website 45 is "6" and the window scale of the proxy server 44 is "2". At this time, the router 42 registers the difference "4" between them.

ステップS1504:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1570と1580)を作成する。
ステップS1505:ルータ42は、TCPセッション1とTCPセッション2との間の変換テーブル(1570と1580)をデータプレーン421に登録する。
Step S1504: The router 42 creates conversion tables (1570 and 1580) between TCP session 1 and TCP session 2.
Step S1505: The router 42 registers the conversion table (1570 and 1580) between TCP session 1 and TCP session 2 in the data plane 421. FIG.

ステップS1506:ルータ42のデータプレーン421は、外部ウェブサイト45からのTCPパケットのウインドウサイズ(=261)を、登録しておいた外部ウェブサイト45のウインドウスケールとプロキシサーバ44のウインドウスケールとの差分(4:2の4乗=16)により更新する。
ステップS1507:ルータ42のデータプレーン421は、更新後のウインドウサイズ=4176のパケットを端末41へ送信する。
Step S1506: The data plane 421 of the router 42 sets the window size (=261) of the TCP packet from the external website 45 to the difference between the registered window scale of the external website 45 and the window scale of the proxy server 44. (4:2 to the 4th power=16).
Step S<b>1507 : The data plane 421 of the router 42 transmits the updated window size=4176 packet to the terminal 41 .

S1501でのやり取りにより、端末41は、通信相手のウインドウスケールは「2」であると認識している。しかし、端末41が認識している通信相手のウインドウスケール「2」と、端末41が送信するデータを受け取る外部ウェブサイト45のウインドウスケール「6」との間には、「4」の差分が存在する。よって、ウインドウサイズの方を差分により更新しておけば、外部ウェブサイト45がACK無しに受け取ることができる正しいデータ量が、端末41に伝わるわけである。 From the exchange in S1501, the terminal 41 recognizes that the window scale of the communication partner is "2". However, there is a difference of "4" between the window scale "2" of the communication partner recognized by the terminal 41 and the window scale "6" of the external website 45 that receives the data transmitted by the terminal 41. do. Therefore, if the window size is updated with the difference, the correct amount of data that the external website 45 can receive without ACK is communicated to the terminal 41 .

ステップS1508:ルータ42のデータプレーン421は、端末41からのTCPパケットのウインドウサイズ(=32768)を、登録しておいた端末41のタイムスタンプとルータ42のタイムスタンプの差分(=0)により更新する。
ステップS1509:ルータ42のデータプレーン421は、更新後のタイムスタンプ=32768のパケットを外部ウェブサイト45へ送信する。
Step S1508: The data plane 421 of the router 42 updates the window size (=32768) of the TCP packet from the terminal 41 by the registered difference (=0) between the time stamp of the terminal 41 and the time stamp of the router 42. do.
Step S<b>1509 : The data plane 421 of the router 42 transmits the packet with the updated time stamp=32768 to the external website 45 .

このように構成することにより、ステップS1506とS1507では、外部ウェブサイト45のウインドウサイズを、適切な値に修正して端末41へ伝えることができる。 By configuring in this way, in steps S1506 and S1507, the window size of the external website 45 can be corrected to an appropriate value and transmitted to the terminal 41. FIG.

TCPヘッダには、チェックサムのフィールドがある。このTCPヘッダのチェックサムの値は、TCPヘッダの他の部分とデータ部分の値によって決まる。したがって、上述のように、送信元PORT番号、宛先PORT番号、シーケンス番号、Ack番号、ウインドウサイズ、オプションフィールド等を書き換えた際には、連動してTCPヘッダのチェックサムも更新しておく必要がある。
また、IPヘッダにも、チェックサムのフィールドがある。このIPヘッダのチェックサムの値は、IPヘッダの他の部分の値によって決まる。したがって、上述のように、送信元IPアドレス、宛先IPアドレスを書き換えた際には、連動してIPヘッダのチェックサムも更新しておく必要がある。
The TCP header has a checksum field. The value of this TCP header checksum is determined by the values of the other parts of the TCP header and the data part. Therefore, as described above, when the source PORT number, destination PORT number, sequence number, Ack number, window size, option field, etc. are rewritten, it is necessary to update the checksum of the TCP header accordingly. be.
The IP header also has a checksum field. The value of this IP header checksum is determined by the values of other parts of the IP header. Therefore, as described above, when the source IP address and the destination IP address are rewritten, it is necessary to update the checksum of the IP header accordingly.

図16は、本発明の実施形態おけるルータ42の内部構造を説明する図である。中継装置としてのルータ42は、検出部1601、判定部1602、及び処理部1603を備える。
検出部1601は、端末41がプロキシサーバ44を介して通信する環境において、通過する通信を参照して接続先のドメイン名を検出する。通過する通信は、端末41がプロキシサーバ44へ送信するCONNECTメソッドであり、通過する通信を参照することはこのCONNECTメソッドを覗き見することを意味する。
判定部1602は、LBOプロファイル37を参照し、検出部1601が検出したドメイン名に基づいて特定の処理としてLBOを行うか否かを判定する。
処理部1603は、LBOの処理を実行する。
FIG. 16 is a diagram illustrating the internal structure of the router 42 according to the embodiment of the invention. The router 42 as a relay device includes a detection section 1601 , a determination section 1602 and a processing section 1603 .
In an environment where the terminal 41 communicates via the proxy server 44, the detection unit 1601 refers to passing communication and detects the domain name of the connection destination. The passing communication is a CONNECT method sent by the terminal 41 to the proxy server 44, and referencing the passing communication means spying on this CONNECT method.
The determination unit 1602 refers to the LBO profile 37 and determines whether or not to perform LBO as a specific process based on the domain name detected by the detection unit 1601 .
The processing unit 1603 executes LBO processing.

図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の経路で通信する。
FIG. 17 is a diagram for explaining communication paths when the terminals of the head office and branch offices do not perform LBO. The branch offices in FIG. 17 correspond to bases 13 and 14 in FIG. A proxy server 1706 is installed on the head office side.
Terminal A of the branch office is temporarily connected to the head office via a VPN (Virtual Private Network).
When the branch office terminal does not perform LBO, it communicates through the route of terminal A 1701 →router A 1702 →VPN 1703 →router B 1704 →proxy server 1706 →Internet 1707 →DNS server 1708 or external website 1709 .
When the terminal at the head office does not perform LBO, communication is performed through a route of terminal B 1705 →router B 1704 →proxy server 1706 →Internet 1707 →DNS server 1708 or external website 1709 .

図18は、本社及び支社の端末がLBOを行う場合の通信経路を説明する図である。
支社の端末がLBOを行う場合は、VPN1703及びプロキシサーバ1706を使用しない。支社の端末Aは、端末A1701⇒ルータA1702⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
本社の端末がLBOを行う場合は、プロキシサーバ1706を使用しない。本社の端末Bは、端末B1705⇒ルータB1704⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
FIG. 18 is a diagram for explaining communication paths when terminals at the head office and branch offices perform LBO.
When the branch terminal performs LBO, the VPN 1703 and proxy server 1706 are not used. Terminal A of the branch office communicates through a route of terminal A 1701 →router A 1702 →Internet 1707 →DNS server 1708 or external website 1709 .
The proxy server 1706 is not used when the head office terminal performs LBO. Terminal B at the head office communicates through a route of terminal B 1705 →router B 1704 →Internet 1707 →DNS server 1708 or external website 1709 .

図18では、支社の端末AがLBOを行う場合に、ルータA1702においてLBOを行った。しかし、支社側のルータA1702をLBO非対応のルータとし、本社側のルータB1704においてLBOを行わせる方式を採用することもできる。この方式でLBOを行う場合には、支社の端末Aは、端末A1701⇒ルータA1702⇒VPN1703⇒ルータB1704⇒インターネット1707⇒DNSサーバ1708又は外部ウェブサイト1709の経路で通信する。
このように構成すれば、複数の支社側のルータはLBO非対応とし、本社側の1台のルータのみをLBO対応とすればよいので、経費削減に繋がる。
In FIG. 18, when terminal A of the branch office performs LBO, router A 1702 performs LBO. However, it is also possible to employ a method in which the router A 1702 on the side of the branch office is a router that does not support LBO, and the router B 1704 on the side of the head office performs LBO. When LBO is performed by this method, terminal A of the branch office communicates through the route of terminal A 1701 →router A 1702 →VPN 1703 →router B 1704 →Internet 1707 →DNS server 1708 or external website 1709 .
With this configuration, the routers on the side of a plurality of branch offices need not support LBO, and only one router on the side of the head office needs to support LBO, which leads to cost reduction.

以上、本実施形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims. is.

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 外部ウェブサイト

11 network outside company 12 data center 13-15 base computer 31 DNS server 32 router 33 internet gateway 34 closed network 35 internet network 36 terminal 37 LBO profile 41 terminal 42 router 43 DNS server 44 proxy server 45 external website 421 data plane 422 control plane 1170 difference table 1601 detection unit 1602 determination unit 1603 processing unit 1701 terminal A
1702 Router A
1703 VPN
1704 Router B
1705 Terminal B
1706 proxy server 1707 internet network 1708 DNS server 1709 external website

Claims (7)

端末がプロキシサーバを介して通信する環境において、前記端末から特定の接続先への通信をローカルブレイクアウトする中継装置であって、
前記中継装置は、処理部を含み、
前記処理部は、前記ローカルブレイクアウトの処理を行う時に、
前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する第1処理と、
前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える第2処理を行う、中継装置。
A relay device that locally breaks out communication from the terminal to a specific connection destination in an environment where the terminal communicates via a proxy server,
The relay device includes a processing unit,
When the processing unit performs the processing of the local breakout,
rewriting the source IP address and port number of a packet sent by the terminal to the proxy server to the IP address and port number of the relay device, and replacing the destination IP address and port number of the packet with the connection destination IP address; and a first process of rewriting to a PORT number and transmitting to the connection destination;
difference between the sequence number and the acknowledgment number in the communication between the terminal and the proxy server and the sequence number and the acknowledgment number in the communication between the relay device and the connection destination are registered in the relay device; A relay device that performs a second process of rewriting a sequence number and an acknowledgment number of a packet transmitted by the connection destination according to the registered difference.
前記第1処理及び前記第2処理は、前記処理部のデータプレーンで行う請求項1記載の中継装置。 2. The relay device according to claim 1, wherein said first processing and said second processing are performed in a data plane of said processing unit. 前記処理部は、前記接続先のタイムスタンプと前記プロキシサーバのタイムスタンプの差分を前記中継装置に登録しておき、前記処理部のデータプレーンにおいて、前記ローカルブレイクアウト時に前記接続先が送信するパケットのタイムスタンプを前記差分により更新する請求項1に記載の中継装置。 The processing unit registers a difference between the time stamp of the connection destination and the time stamp of the proxy server in the relay device, and in the data plane of the processing unit, a packet transmitted by the connection destination at the time of the local breakout 2. The relay device according to claim 1, wherein the time stamp of is updated by said difference. 前記処理部は、前記接続先のウインドウスケールと前記プロキシサーバのウインドウスケールの差分を前記中継装置に登録しておき、前記処理部のデータプレーンにおいて、前記ローカルブレイクアウト時に前記接続先が送信するパケットのウインドウサイズを前記差分により更新する請求項1に記載の中継装置。 The processing unit registers a difference between the window scale of the connection destination and the window scale of the proxy server in the relay device, and in the data plane of the processing unit, a packet transmitted by the connection destination at the time of the local breakout 2. The relay device according to claim 1, wherein the window size of is updated by said difference. 前記処理部は、IPヘッダのチェックサム以外の部分を書き換えた後に、IPヘッダのチェックサムを更新する請求項1に記載の中継装置。 2. The relay device according to claim 1, wherein the processing unit updates the checksum of the IP header after rewriting the portion other than the checksum of the IP header. 前記処理部は、TCPヘッダのチェックサム以外の部分を書き換えた後に、TCPヘッダのチェックサムを更新する請求項1から4のいずれか一項に記載の中継装置。 The relay device according to any one of claims 1 to 4, wherein the processing unit updates the checksum of the TCP header after rewriting the portion other than the checksum of the TCP header. 端末がプロキシサーバを介して通信する環境において、前記端末から特定の接続先への通信を中継装置がローカルブレイクアウトする方法であって、
前記中継装置は、処理部を含み、
前記中継装置が前記ローカルブレイクアウトの処理を行う時に、
前記端末が前記プロキシサーバ宛てに送信するパケットの送信元のIPアドレス及びPORT番号を前記中継装置のIPアドレス及びPORT番号に書き換え、前記パケットの宛先のIPアドレス及びPORT番号を前記接続先のIPアドレス及びPORT番号に書き換えて、前記接続先へ送信する第1処理と、
前記端末と前記プロキシサーバ間の通信におけるシーケンス番号及び確認応答番号と、前記中継装置と前記接続先間の通信におけるシーケンス番号及び確認応答番号の差分を前記中継装置に登録し、その後、前記端末又は前記接続先が送信したパケットのシーケンス番号及び確認応答番号を前記登録した差分に従って書き換える第2処理を行うローカルブレイクアウト方法。
A method in which a relay device locally breaks out communication from a terminal to a specific connection destination in an environment where the terminal communicates via a proxy server,
The relay device includes a processing unit,
When the relay device processes the local breakout,
rewriting the source IP address and port number of a packet sent by the terminal to the proxy server to the IP address and port number of the relay device, and replacing the destination IP address and port number of the packet with the connection destination IP address; and a first process of rewriting to a PORT number and transmitting to the connection destination;
difference between the sequence number and the acknowledgment number in the communication between the terminal and the proxy server and the sequence number and the acknowledgment number in the communication between the relay device and the connection destination are registered in the relay device; A local breakout method for performing a second process of rewriting a sequence number and an acknowledgment number of a packet transmitted by the connection destination according to the registered difference.
JP2022049250A 2021-03-29 2022-03-25 Relay device and local breakout transfer method Active JP7178523B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021055745 2021-03-29
JP2021055745 2021-03-29

Publications (2)

Publication Number Publication Date
JP2022153318A true JP2022153318A (en) 2022-10-12
JP7178523B2 JP7178523B2 (en) 2022-11-25

Family

ID=83556586

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022049250A Active JP7178523B2 (en) 2021-03-29 2022-03-25 Relay device and local breakout transfer method
JP2022049249A Active JP7178522B2 (en) 2021-03-29 2022-03-25 Relay device and local breakout transfer method

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022049249A Active JP7178522B2 (en) 2021-03-29 2022-03-25 Relay device and local breakout transfer method

Country Status (1)

Country Link
JP (2) JP7178523B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318246A1 (en) * 2011-12-06 2013-11-28 Brocade Communications Systems, Inc. TCP Connection Relocation
JP2015156565A (en) * 2014-02-20 2015-08-27 富士通株式会社 Communication system, communication device, and communication method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011015344A (en) 2009-07-06 2011-01-20 Hitachi Ltd Relay apparatus and relay method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318246A1 (en) * 2011-12-06 2013-11-28 Brocade Communications Systems, Inc. TCP Connection Relocation
JP2015156565A (en) * 2014-02-20 2015-08-27 富士通株式会社 Communication system, communication device, and communication method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Juniper Networks が提供する SD WAN", [オンライン], JPN6022026222, 27 November 2019 (2019-11-27), ISSN: 0004813540 *

Also Published As

Publication number Publication date
JP7178523B2 (en) 2022-11-25
JP7178522B2 (en) 2022-11-25
JP2022153317A (en) 2022-10-12

Similar Documents

Publication Publication Date Title
CN112911027B (en) Method and apparatus for establishing a media session
US10200264B2 (en) Link status monitoring based on packet loss detection
US7653075B2 (en) Processing communication flows in asymmetrically routed networks
EP3225014B1 (en) Source ip address transparency systems and methods
EP3080957B1 (en) Establishing a data transfer connection
US20210036953A1 (en) Flow modification including shared context
US10257061B2 (en) Detecting source network address translation in a communication system
US20120179796A1 (en) Routing and service performance management in an application acceleration environment
US9332091B2 (en) Address manipulation to provide for the use of network tools even when transaction acceleration is in use over a network
WO2021073565A1 (en) Service providing method and system
US20150373135A1 (en) Wide area network optimization
WO2017204969A1 (en) Apparatus and method of securing network communications
US20100054261A1 (en) Selective session interception method
JP2017118545A5 (en)
JP2017118545A (en) Communication system using HTTP
US7564848B2 (en) Method for the establishing of connections in a communication system
JP7178523B2 (en) Relay device and local breakout transfer method
US10361997B2 (en) Auto discovery between proxies in an IPv6 network
Ginoza Request for Comments Summary RFC Numbers 3500-3599
de Souza Pereira et al. Layers Optimization Proposal in a Post-IP Network
JP2003244213A (en) Packet communication method for adding tunnel path

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220404

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221114

R151 Written notification of patent or utility model registration

Ref document number: 7178523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151