JP2011239309A - Gateway device - Google Patents
Gateway device Download PDFInfo
- Publication number
- JP2011239309A JP2011239309A JP2010110728A JP2010110728A JP2011239309A JP 2011239309 A JP2011239309 A JP 2011239309A JP 2010110728 A JP2010110728 A JP 2010110728A JP 2010110728 A JP2010110728 A JP 2010110728A JP 2011239309 A JP2011239309 A JP 2011239309A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- connection
- processing unit
- layer
- standby system
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
本発明は、ゲートウェイ装置に係わり、特に、現用系と待機系を用意して冗長化を行い、かつ、レイヤ4コネクションの端点となるゲートウェイ装置に関する。 The present invention relates to a gateway device, and more particularly to a gateway device that provides redundancy by preparing an active system and a standby system, and serves as an end point of a layer 4 connection.
3GPP(3rd Generation Partnership Project)のLTE(Long Term Evolution)に代表される第3.9世代移動体通信網では、ネットワークがオールIP化されて、従来は回線交換網で提供されてきた電話サービスがIP網で提供されるようになる。このため、今後は移動体通信システムにおけるゲートウェイ装置に対しても電話交換機並の高信頼性が要求される。この高信頼性を達成するために、物理的に独立した2つ以上の装置を用意して、実際にサービスを提供する現用系としての役割と、通常はバックアップとして動作して、現用系故障時には代わりにサービスを提供する待機系としての役割を与えて、ゲートウェイ装置の冗長化を行う。これにより継続的なサービス提供が可能となる。このとき、現用系と待機系の切替時間、すなわちサービス停止時間は短時間(1秒以内)であることが望まれる。 In the 3.9th generation mobile communication network represented by LTE (Long Term Evolution) of 3GPP (3rd Generation Partnership Project), the network is all-IP, and the telephone service that has been provided in the circuit switching network in the past has been provided. It will be provided on the IP network. For this reason, high reliability equivalent to that of a telephone exchange is required for the gateway device in the mobile communication system. In order to achieve this high reliability, two or more devices that are physically independent are prepared, the role as the working system that actually provides the service, and usually operates as a backup, and when the working system fails Instead, the gateway device is made redundant by giving a role as a standby system for providing a service. This enables continuous service provision. At this time, the switching time between the active system and the standby system, that is, the service stop time is desired to be short (within 1 second).
一方、ゲートウェイ装置は、通信システム内の他装置と通信する際に、SCTP(Stream Control Transmission Protocol)やTCP(Transmission Control Protocol)に代表されるコネクション型レイヤ4(L4)プロトコルを用いる。特に移動体通信システムにおいては、呼処理関係のシグナリングにSCTPが用いられる傾向にあり、今後も利用は増えていくと考えられる。一般に、L4コネクションは状態遷移を持つため、冗長切替が発生すると、L4コネクションは一度切断され、その後再接続処理が行われる。これを図1を用いて説明する。 On the other hand, the gateway device uses a connection type layer 4 (L4) protocol represented by SCTP (Stream Control Transmission Protocol) or TCP (Transmission Control Protocol) when communicating with other devices in the communication system. In particular, in mobile communication systems, SCTP tends to be used for call processing-related signaling, and its use will increase in the future. In general, since an L4 connection has a state transition, when redundancy switching occurs, the L4 connection is disconnected once, and then a reconnection process is performed. This will be described with reference to FIG.
図1は現用系故障時の冗長切替において、SCTPを例にとり、L4コネクションを再接続するシーケンスである。冗長化装置101は、レイヤ2(L2)スイッチ102と現用系103と待機系104から構成される。現用系と待機系は、L2スイッチを介して他装置105と通信を行う。図1では、現用系と他装置との間であらかじめSCTPコネクションを確立している。そのため、他装置が送信したDATAパケット(110、111)を現用系は受信し、またその応答であるSACKパケット(112、113)を他装置は受信することができる。
FIG. 1 is a sequence for reconnecting an L4 connection, taking SCTP as an example in redundancy switching at the time of failure of the active system. The
図2AはDATAパケットのデータ構造であり、図2BはSACKパケットのデータ構造である。DATAパケット110のヘッダの送信元ポート番号201、送信先ポート番号202、送信先の検証タグ203、およびSACKパケット112のヘッダの送信元ポート番号211、送信先ポート番号212、送信先の検証タグ213は、L4コネクションを確立する際に通信相手である他装置と現用系との間で交換するパラメータである。また、DATAパケットヘッダの送信元が付けるシーケンス番号204は、初期値をSCTPコネクション確立時に交換し、DATAパケットを送信するごとに増加されるパラメータである。さらに、SACKパケットヘッダに付加する受信したDATAパケットのシーケンス番号214は、対応するDATAパケットのシーケンス番号204と同じ値をとるパラメータである。OS(Operation System)内においてSCTPコネクションを管理するL4スタックは、DATAパケットとSACKパケットを受信するごとにパケットに付加されるこれらの情報が正しいことを精査する。もしこれらの情報に誤りやズレがあれば、受信パケットを破棄するか、もしくはパケットの再送を要求する。L4スタックは内部に独自の状態遷移を持ちながら、上述したパケット精査を自動的に行う。
FIG. 2A shows the data structure of the DATA packet, and FIG. 2B shows the data structure of the SACK packet. The
図1に戻る。現用系に故障が発生すると(114)、他装置から送信されたDATAパケット(115、116)がL2スイッチから転送されない状態になる。待機系は現用系の故障を検知すると(117)、自分がサービスを提供するために現用系に移行する(118)。以降、待機系104を旧待機系104と記述する。旧待機系104は、冗長化装置101に送られたパケットを受信できるようにするために、L2スイッチに対してGratuitous ARP(119)を送信する。すると、DATAパケット120は、旧待機系に転送されるようになる(121)。しかしながら、旧待機系のL4スタックは、このSCTPコネクションに関する状態遷移情報を持たないため、DATAパケットを破棄して、応答として接続を強制終了させるABORTパケット(122、123)を他装置に送信する。他装置は、ABORTパケットを受信すると、SCTPコネクションが強制切断されたことを、そのSCTPコネクションを利用していたアプリケーションに通知する。アプリケーションは、再度データを送信するために再接続処理を要求する(124)。他装置のL4スタックは自動的に、待機系のL4スタックとの間でINITパケット、INIT−ACKパケット、COOKIE−ECHOパケット、COOKIE−ACKパケット(125〜132)をやり取りし、DATAパケット、SACKパケット送受信に必要となる情報を新たに交換して、新規のSCTPコネクションを再確立する。その後、他装置内のアプリケーションは、故障発生前後に送信し損なったデータの再送信処理を行う(133)。そして、新たに確立したSCTPコネクションを用いて、DATAパケット(134、135)とSACKパケット(136、137)が送受信される。以上のように、L4コネクションを持つ冗長化装置が冗長切替を行う場合には、強制切断、再接続、再送信の処理が必要になる。そのため、確立されるL4コネクション数が多くなると、高速な冗長切替達成に影響を与える。したがって、図1の破線部分140の処理を省き、L4コネクションの冗長化を行うことが要求される。
Returning to FIG. When a failure occurs in the active system (114), the DATA packet (115, 116) transmitted from another device is not transferred from the L2 switch. When the standby system detects a failure in the active system (117), it shifts to the active system in order to provide the service (118). Hereinafter, the
これを解決するためには、現用系と待機系内のそれぞれのL4スタックが持つL4コネクションの状態遷移を同期させればよい。この方式として、共有方式と並列処理方式が挙げられる。共有方式は、現用系が管理するL4コネクションの状態遷移を、ネットワークを介してリアルタイムに待機系に転送する方式である。また、並列処理方式は、通信相手である他装置から受信したパケットを複製して現用系と待機系の両方にパケットを入力し、現用系と待機系のL4スタックが独立に処理を行うことで、同じ状態遷移を作り出す方式である。 In order to solve this, the state transitions of the L4 connections of the L4 stacks in the active system and the standby system may be synchronized. Examples of this method include a sharing method and a parallel processing method. The sharing method is a method of transferring the state transition of the L4 connection managed by the active system to the standby system in real time via the network. The parallel processing method duplicates the packet received from the other device that is the communication partner, inputs the packet to both the active system and the standby system, and the L4 stacks of the active system and the standby system perform processing independently. This is a method for creating the same state transition.
特許文献1では、装置間で共有可能な特殊なメモリを用いて、共有方式を実現する。しかしながら、移動体通信システムにおけるゲートウェイ装置は、一般的にATCA(Advanced Telecom Computing Architecture)などの汎用装置に実装されるため、特殊なハードウェアを設けてL4コネクションを冗長化することが困難である。そこで近年では、ゲートウェイ装置に対する並列処理方式の適用が検討されている。
In
非特許文献1は、L4コネクション確立時に現用系と待機系で通知しあって、現用系と待機系のパラメータと状態遷移初期値を揃える方式を示している。
Non-Patent
本発明では、並列処理方式によってL4コネクションの冗長化を実現する。 In the present invention, redundancy of the L4 connection is realized by a parallel processing method.
上述したように、装置間でL4コネクションを確立する際、いくつかのパラメータを通信相手と交換し、共有する。以降のパケット通信では、交換したパラメータと状態遷移に基づく値をパケットヘッダに埋め込んで、データの送受信を行う。交換したパラメータもしくは現在の状態遷移と異なる値が検出された場合には、そのパケットは破棄される。その結果通信が正しく処理されなくなるか、もしくはL4コネクションが強制切断される。 As described above, when establishing an L4 connection between devices, some parameters are exchanged with a communication partner and shared. In subsequent packet communications, the exchanged parameters and values based on state transitions are embedded in the packet header, and data is transmitted and received. If a value that is different from the exchanged parameter or the current state transition is detected, the packet is discarded. As a result, communication is not processed correctly or the L4 connection is forcibly disconnected.
上記パラメータの一部は、OS内のL4スタックが自動的に生成する乱数である。そのため、独立した装置であれば異なる値を生成し、異なる状態遷移初期値をとる。一方、冗長構成を組んでいる場合、通信相手からは冗長化装置は1台の装置にしか見えない、すなわち現用系のパラメータと状態遷移しかパケットヘッダには反映されない。したがって、現用系と待機系の両方にパケットを入力したとしても、現用系のL4スタックでは処理されるが、待機系のL4スタックでは処理されないことになる。
そこで本発明は、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理できるようにすることを課題とする。
Some of the parameters are random numbers automatically generated by the L4 stack in the OS. Therefore, different values are generated if they are independent devices, and different state transition initial values are taken. On the other hand, when a redundant configuration is configured, the redundant device can be seen by only one device from the communication partner, that is, only the active parameters and state transitions are reflected in the packet header. Therefore, even if a packet is input to both the active system and the standby system, it is processed in the active L4 stack, but not processed in the standby L4 stack.
Therefore, an object of the present invention is to duplicate a packet received from a communication partner that has established an L4 connection, and input the packet to both the active system and the standby system so that each L4 stack can process it.
なお、非特許文献1では、L4コネクション確立時に現用系と待機系で通知しあって、現用系と待機系のパラメータと状態遷移初期値を揃えている。しかしながら、非特許文献1の方式では、L4コネクション確立時にしか対応できず、L4コネクション確立後に現用系もしくは待機系を追加したり交換したりする際には、L4コネクションを一度切断して再確立しなければならない。このことは、動的な負荷分散を目的とした装置の追加時や、故障装置の交換時にはL4コネクションの冗長化が引き継げないことを意味する。
In
本願で開示される実施態様の代表的なゲートウェイ装置は、独立して動作する複数のパケット処理装置と前記複数のパケット処理装置を接続するスイッチ装置を備え、前記複数のパケット処理装置のうち1台が現用系であり、前記現用系とは異なる1台が待機系となるように冗長構成をとり、前記現用系が通信相手に対してL4コネクションの端点となり、前記通信相手から受信した前記L4コネクションのパケットが前記現用系もしくは前記待機系に入力されると、前記現用系もしくは前記待機系は前記L4コネクションに関して記憶しているパラメータを用いて前記パケットのヘッダを書き換えて、L4スタックに前記パケットを渡すことを特徴とする。 A representative gateway device according to an embodiment disclosed in the present application includes a plurality of packet processing devices that operate independently and a switch device that connects the plurality of packet processing devices, and one of the plurality of packet processing devices. Is an active system, and has a redundant configuration so that one unit different from the active system is a standby system, and the active system is an end point of an L4 connection to the communication partner, and the L4 connection received from the communication partner Is input to the active system or the standby system, the active system or the standby system rewrites the header of the packet using the parameters stored with respect to the L4 connection, and puts the packet in the L4 stack. It is characterized by passing.
また、前記レイヤ4コネクションの確立時に前記通信相手と交換するパラメータと、前記レイヤ4コネクションの確立後のパケット通信においてパケットに付加されるパラメータを、前記現用系もしくは前記待機系において記憶する。 In addition, a parameter exchanged with the communication partner when the layer 4 connection is established and a parameter added to the packet in the packet communication after the establishment of the layer 4 connection are stored in the active system or the standby system.
また、前記現用系もしくは前記待機系は前記通信相手から受信した前記レイヤ4コネクションのパケットを受け取ると、それぞれ前記待機系もしくは前記現用系に前記パケットを転送する。 Further, when the working system or the standby system receives the packet of the layer 4 connection received from the communication partner, the packet is transferred to the standby system or the active system, respectively.
本発明によれば、冗長構成をとるゲートウェイ装置において、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理してL4コネクションの冗長化を実現できる。また、L4コネクションを確立したまま柔軟な冗長化装置の運用が可能となる。 According to the present invention, in a gateway device having a redundant configuration, a packet received from a communication partner that has established an L4 connection is duplicated, and the packet is input to both the active system and the standby system, and is processed by each L4 stack. Thus, redundancy of the L4 connection can be realized. In addition, it is possible to operate a flexible redundant apparatus while establishing the L4 connection.
1.装置構成
はじめに、図3を用いて本発明が適用される通信システムの構成例を説明する。ここでは移動体通信システムを例にとる。移動体通信システムは、無線インタフェースを介してデータ通信を行う端末340と、端末を収容する無線アクセス網(320、330)と、加入者情報を管理し端末をサービス網に接続するユーザホーム網310と、端末に対してサービスを提供するサービス網300とから構成される。
1. Device Configuration First, a configuration example of a communication system to which the present invention is applied will be described with reference to FIG. Here, a mobile communication system is taken as an example. The mobile communication system includes a terminal 340 that performs data communication via a radio interface, a radio access network (320, 330) that accommodates the terminal, and a
無線アクセス網320は、無線信号を有線信号に相互変換する基地局321a、321bと、アクセスゲートウェイ323と、移動管理サーバ322から構成される。無線アクセス網330も同様に基地局アクセスゲートウェイ331a、331b、移動管理サーバ332で構成される。アクセスゲートウェイは、基地局から受信したユーザトラフィックをユーザホーム網に転送する装置である。また移動管理サーバは、端末の接続状況を管理するとともに、基地局とアクセスゲートウェイ間のデータパスを制御する装置である。
The
ユーザホーム網310は、サービス網ゲートウェイ311と、ポリシーサーバ312と、認証サーバ313から構成される。サービス網ゲートウェイは、アクセスゲートウェイから受信したユーザトラフィックを適切なサービス網に転送する装置である。また、ポリシーサーバは、サービス網ゲートウェイに対してユーザトラフィックの課金手段やQoSを指示する装置である。また、認証サーバは、端末ユーザの加入者情報を管理する装置である。
The
サービス網300には、端末に対してサービスを提供するアプリケーションサーバ301が接続される。
An application server 301 that provides services to terminals is connected to the
LTEでは、サービス網ゲートウェイ311とポリシーサーバ312の間、認証サーバ312と移動管理サーバ(322、332)の間、移動管理サーバ(322、332)と基地局(321a、321b、331a、331b)の間のシグナリングのL4プロトコルにSCTPが用いられる。本発明は、特にサービス網ゲートウェイ、移動管理サーバといったゲートウェイ装置への適用が最も効果的だが、これらに限らず、L4コネクションの端点となる装置であれば適用可能である。
In LTE, between the
次に、図4を用いて、本実施の形態のゲートウェイ装置構成例を説明する。ゲートウェイ装置400は、シグナリング処理やユーザトラフィック転送処理を実現するCPUブレード1とCPUブレード2(410−1、410−2)と、レイヤ2(L2)スイッチ機能を備えるスイッチブレード420から構成される。
Next, a configuration example of the gateway device according to the present embodiment will be described with reference to FIG. The
CPUブレード1は、メモリ411−1、CPU412−1、IF(インタフェース)413−1、414−1、FROM(フラッシュROM)415−1を備える。ゲートウェイ装置としての機能を提供するためのソフトウェアプログラムはFROMに記憶されており、装置の起動時にメモリに展開される。CPUは、メモリ内に展開されたソフトウェアプログラムを順次読み出して実行する。なお、IFはイーサネット回線でスイッチブレード420に接続されており、IF413−1はデータ通信用に、IF414−1は装置制御用に使用される。
スイッチブレード420は、IF421、422、423、424、426および427、スイッチ部425、メモリ428、CPU429、FROM430から構成される。IF421、422、423および424はCPUブレード1とCPUブレード2(410−1、410−2)に、IF426、427は外部のパケット網に接続されており、スイッチ部はこれらの間でパケットを中継する。また、メモリ、CPU、FROMは、スイッチ部を制御、管理するのに用いられる。
The
The
図5は、CPUブレード1およびCPUブレード2(410−1、410−2)のメモリ411−1、411−2に展開されるソフトウェアプログラムの構成図である。アプリケーションプログラム503−1、503−2は、L4コネクションを利用して特定のサービスを提供する。ただし、本実施の形態のゲートウェイ装置は冗長構成を形成しており、アプリケーションプログラム503−1、503−2についても、一方が現用状態として動作中は、他方は待機状態となる。L4スタック502−1、502−2はL4コネクションを管理する。VNIC(Virtual Network Interface)501−1、501−2は他のプログラムからデータの読み書きを可能とする仮想ネットワークインタフェースである。ヘッダ処理部500−1、500−2はL4コネクションのパケットヘッダの書き換えを行う。
FIG. 5 is a configuration diagram of software programs developed in the memories 411-1 and 411-2 of the
ヘッダ処理部は、Rawソケットを用いてスイッチブレード420を介して外部のパケット網とパケットを送受信する。また、ヘッダ処理部は、TIPC(Transparent Inter−process Communication)などの通信プロトコルを用いてスイッチブレード420を介して、他のCPUブレードのヘッダ処理部とデータのやり取りを行う。さらに、ヘッダ処理部は、L4コネクションの冗長化に必要となるパラメータを格納するパラメータ格納テーブル(510−1、510−2)と、受信するL4コネクションのパケットをどのCPUブレードのヘッダ処理部に転送するかを決定する転送先テーブル(511−1、511−2)をもつ。パラメータ格納テーブルと転送先テーブルの詳細な説明については、後述の2.処理(シーケンス)の中で行う。
The header processing unit transmits / receives a packet to / from an external packet network via the
本実施の形態のゲートウェイ装置では、アプリケーションとヘッダ処理部はユーザ領域(520−1、520−2)に、L4スタックとVNICはカーネル領域(521−1、521−2)にそれぞれ置かれる。このような構成を採ることで、本実施の形態のゲートウェイ装置では、OSに改造を加えることなく、L4コネクションの冗長化を実現できる。 In the gateway device of the present embodiment, the application and header processing unit are placed in the user area (520-1, 520-2), and the L4 stack and VNIC are placed in the kernel area (521-1, 521-2). By adopting such a configuration, the gateway device according to the present embodiment can realize redundancy of the L4 connection without modifying the OS.
以上が、本実施の形態の装置構成である。
2.処理(シーケンス)
本実施の形態のゲートウェイ装置において、L4コネクションの冗長化処理について、3つの手順を説明する。具体的には、SCTPの場合を例にとり、(A):通常状態におけるパケット送受信と、(B):故障発生時におけるパケット送受信と、(C):負荷分散のために新たに現用系を追加する際のパケット送受信の手順である。
(A)通常状態におけるSCTPパケット送受信
故障未発生時の通常状態において、SCTPコネクションを確立し、DATAパケットを送受信する流れについて説明する。
(A−1)SCTPコネクション確立
図6は、現用系がパケットを受信するための前準備の手順である。まず、装置の管理者がCPUブレード1(410−1)を現用系に設定する(600)。また、CPUブレード2(410−2)を待機系に設定する(601)。その際、CPUブレード1は、スイッチブレード420に対してGratuitous ARPパケットを送信し、MAC(Media Access Control)アドレスをスイッチブレードに登録する(602)。こうすることで、ゲートウェイ装置宛に送られてきたパケットがCPUブレード1に転送されるようになる。
The above is the apparatus configuration of the present embodiment.
2. Processing (sequence)
In the gateway device according to the present embodiment, three procedures for L4 connection redundancy processing will be described. Specifically, taking the case of SCTP as an example, (A): packet transmission / reception in a normal state, (B): packet transmission / reception when a failure occurs, (C): a new active system is added for load distribution This is a packet transmission / reception procedure.
(A) SCTP packet transmission / reception in normal state The flow of establishing and transmitting an SCTP connection and transmitting / receiving a DATA packet in a normal state when no failure has occurred will be described.
(A-1) SCTP Connection Establishment FIG. 6 shows a preparation procedure for the active system to receive a packet. First, the administrator of the apparatus sets the CPU blade 1 (410-1) to the active system (600). Further, the CPU blade 2 (410-2) is set as a standby system (601). At that time, the
図7A、図7Bは、外部の他装置からSCTPコネクションの確立要求があった際の処理手順である。まず、図7Aから説明する。図6の手順後の状態であり、CPUブレード1(410−1)が現用系、CPUブレード2(410−2)が待機系である。したがって、アプリケーション503−1は実際にサービスを提供する現用状態、アプリケーション503−2は現用側の処理をバックアップする待機状態として動作する。どちらのアプリケーションも、それぞれのCPUブレードで稼動するL4スタック(502−1、502−2)に対して待ち受け登録(Listen)をしておく(700、701)。スイッチブレード420が、外部の他装置からSCTPコネクション確立要求であるINITパケットを受信する(710)。スイッチブレードはCPUブレード1にINITパケットを転送し、ヘッダ処理部500−1がそのINITパケットを受信する(702)。ここで、ヘッダ処理部は、自身が保持する転送先テーブル511−1を参照する。
FIG. 7A and FIG. 7B are processing procedures when there is an SCTP connection establishment request from another external device. First, FIG. 7A will be described. 6 is a state after the procedure of FIG. 6, in which the CPU blade 1 (410-1) is the active system and the CPU blade 2 (410-2) is the standby system. Therefore, the application 503-1 operates as an active state for actually providing a service, and the application 503-2 operates as a standby state for backing up processing on the active side. Both applications perform standby registration (Listen) for the L4 stacks (502-1 and 502-2) operating on the respective CPU blades (700 and 701). The
図8は、CPUブレード1のヘッダ処理部が保持する転送先テーブル511−1のデータ構造である。転送先テーブルは、通信相手のIPアドレスごとに作成される。転送先テーブルでは、自分のポート番号800と相手のポート番号801をインデックスとし、転送先802を記述する。本例では、自分のポート番号が5000番で相手のポート番号が11111番であるエントリに対して、転送先が<local>と<CPUブレード2>に設定されている。これは、自分のポート番号が5000番で相手のポート番号が11111番であるパケットを、CPUブレード1内で動作するアプリケーションと、CPUブレード2のヘッダ処理部に転送することを意味する。転送先テーブルは、装置の管理者があらかじめ設定しておく。
FIG. 8 shows the data structure of the transfer destination table 511-1 held by the header processing unit of the
図7Aに戻る。ヘッダ処理部500−1は、転送先テーブル511−1を参照して、INITパケットをCPUブレード2のヘッダ処理部500−2に通知する(712)。この際、実際にはスイッチブレードを介してパケットを通知するが、シーケンスの記述では省略する。ヘッダ処理部500−2は、INITパケットからパラメータを抽出し、パラメータ格納テーブルに記憶する(713)。
Returning to FIG. The header processing unit 500-1 refers to the transfer destination table 511-1 and notifies the header processing unit 500-2 of the
図9A、図9Bは、それぞれCPUブレード1と2がもつパラメータ格納テーブル(510−1、510−2)である。パラメータ格納テーブルは、通信相手のIPアドレスごとに作成される。パラメータ格納テーブルでは、自分のポート番号900と相手のポート番号901をインデックスとし、自分の検証タグ902と、自分のシーケンス番号903と、書換用の検証タグ904と、書換用のシーケンス番号905と、通信相手の検証タグ906と、通信相手のシーケンス番号907を記述する。ここで、書換用の検証タグ904と書換用のシーケンス番号905には、SCTPコネクション確立時に現用系であったCPUブレードのL4スタックが作成した検証タグとシーケンス番号の値が格納される。
9A and 9B are parameter storage tables (510-1 and 510-2) of the
図7Aに戻る。ヘッダ処理部500−2は、INITパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−2にエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する。ヘッダ処理部は500−2は、自身が保持する転送先テーブルを参照して、VNIC501−2を介してL4スタック502−2にINITパケットを渡す(714、715)。L4スタックは、応答としてINIT−ACKパケットを返す(716)。ヘッダ処理500−2は、VNIC501−2を介して、INIT−ACKパケットを受け取る(717)。ヘッダ処理部は、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(718)。このINIT−ACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はINIT−ACKパケットを破棄する(719)。
Returning to FIG. The header processing unit 500-2 extracts the communication partner verification tag and the initial sequence number described in the INIT packet, creates an entry in the parameter storage table 510-2, and sets the communication
一方、CPUブレード1のヘッダ処理部500−1でもINITパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1にエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(720)。その後、VNIC501−1を介してL4スタック502−1にINITパケットを渡す(721、722)。L4スタックは、応答としてINIT−ACKパケットを返す(723)。ヘッダ処理500−1は、VNIC501−1を介して、INIT−ACKパケットを受け取る(724)。ヘッダ処理部500−1は、転送先テーブルを参照し、INIT−ACKパケットをヘッダ処理部500−2に通知する(725)。ヘッダ処理部500−2は、INIT−ACKパケットに記述されている現用系の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−2の書換用の検証タグ904と書換用のシーケンス番号905に記憶する(726)。一方、CPUブレード1のヘッダ処理部500−1も、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−1の自分の検証タグ902と自分のシーケンス番号903に記憶する(727)。なお、現用系であるCPUブレード1に保持されるパラメータ格納テーブル510−1の書換用の検証タグ904と書換用のシーケンス番号905のカラムは空のままで、何も格納されない。その後、INIT−ACKパケットをスイッチブレード420に転送する(728)。スイッチブレードは、通信相手にINIT−ACKパケットを送信する(729)。この時点で、ヘッダ処理部500−1と500−2のそれぞれが保持するパラメータ転送テーブル510−1と510−2は、図9Aと図9Bに示したエントリのようになっている。
On the other hand, the header processing unit 500-1 of the
図7Bに進む。スイッチブレード420は、通信相手からCOOKIE−ECHOパケットを受信し(730)、CPUブレード1に転送する。ヘッダ処理部500−1は、COOKIE−ECHOパケットを受け取る(731)。ヘッダ処理部500−1は、転送先テーブルを参照して、COOKIE−ECHOパケットをヘッダ処理部500−2に通知する(732)。ここで、このCOOKIE−ECHOパケットのヘッダには現用系であるCPUブレード1の検証タグが記述されおり、CPUブレード2のL4スタック502−2はそのままではパケットを破棄してしまう。そのため、ヘッダ処理部500−2は、図9Bに示したパラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、COOKIE−ECHOパケットのヘッダの検証タグを、参照した値に書き換える(733)。その後、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にCOOKIE−ECHOパケットを渡す(734、735)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(736)。ヘッダ処理500−2は、VNIC501−2を介して、COOKIE−ACKパケットを受け取る(737)。このCOOKIE−ACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はCOOKIE−ACKパケットを破棄する(738)。この後、L4スタック502−2は、待ち受け登録をしたアプリケーション503−2に対して、このSCTPコネクションのソケット番号を通知し(739)、コネクション確立状態に遷移する(740)。
Proceed to FIG. 7B. The
一方、CPUブレード1のヘッダ処理部500−1も、受け取ったCOOKIE−ECHOパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。ヘッダ処理部500−1は、VNIC501−1を介してL4スタック502−1にCOOKIE−ECHOパケットを渡す(750、751)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(752)。ヘッダ処理500−1は、VNIC501−1を介して、COOKIE−ACKパケットを受け取る(753)。ここで、L4スタック502−1は、待ち受け登録をしたアプリケーション503−1に対して、このSCTPコネクションのソケット番号を通知し(754)、コネクション確立状態に遷移する(755)。その後、ヘッダ処理部500−1は、COOKIE−ACKパケットをスイッチブレード420に転送する(756)。スイッチブレードは、通信相手にCOOKIE−ACKパケットを送信する(757)。
On the other hand, the header processing unit 500-1 of the
以上の手順により、他装置とゲートウェイ装置間のSCTPコネクション確立が完了する。 With the above procedure, the establishment of the SCTP connection between the other device and the gateway device is completed.
次に、図7A、図7Bの場合とは反対にゲートウェイ装置の現用系であるCPUブレード1から外部の他装置に対してSCTPコネクションの確立要求を行う際の処理手順を、図10A、図10Bを用いて説明する。まず、図10Aから説明する。CPUブレード1(410−1)のアプリケーション503−1が、L4スタック502−1に対して接続要求(Connect)を行う(1000)。L4スタックは、INITパケットをVNIC501−1に渡す(1001)。ヘッダ処理500−1は、VNICを介してINITパケットを受け取る(1002)。ヘッダ処理部は、転送先テーブルを参照して、INITパケットをCPUブレード2のヘッダ処理部500−2に通知する(1003)。ヘッダ処理部500−1は同時に、INITパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1にエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(1004)。その後、INITパケットをスイッチブレード420に転送する(1005)。スイッチブレードは、通信相手にINITパケットを送信する(1006)。
Next, as opposed to the case of FIGS. 7A and 7B, the processing procedure when the
一方、CPUブレード2のヘッダ処理部500−2も、INITパケットに記述されている現用系の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−2にエントリを作成して、書換用の検証タグ904と書換用のシーケンス番号905に記憶する(1007)。その後、ヘッダ処理部は、現用系であるCPUブレード1のアプリケーション503−1から接続要求があったことを通知し、待機系であるCPUブレード2のアプリケーション503−2が同様に接続要求を行うことを促す(1008)。すると、アプリケーション503−2は、L4スタック502−2に対して接続要求(Connect)を行う(1009)。L4スタックはINITパケットをVNIC501−2に渡す(1010)。ヘッダ処理500−2は、VNICを介してINITパケットを受け取る(1011)。ヘッダ処理部は、INITパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−2に自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(1012)。このINITパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はINITパケットを破棄する(1013)。
On the other hand, the header processing unit 500-2 of the
その後、スイッチブレード420が、通信相手の外部の他装置からINIT−ACKパケットを受信する(1020)。スイッチブレードはCPUブレード1にINIT−ACKパケットを転送し、ヘッダ処理部500−1がそのINIT−ACKパケットを受信する(1021)。ヘッダ処理部は、転送先テーブルを参照して、INIT−ACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1022)。ヘッダ処理部500−1は同時に、INIT−ACKパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1に、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(1023)。その後、VNIC501−1を介してL4スタック502−1にINIT−ACKパケットを渡す(1024、1025)。
Thereafter, the
一方、CPUブレード2のヘッダ処理部500−2は、1022のINIT−ACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、INIT−ACKパケットのヘッダの検証タグを、参照した値に書き換える(1026)。これは、INIT−ACKパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、INIT−ACKパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ転送テーブル510−2の通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(1027)。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にINIT−ACKパケットを渡す(1028,1029)。この時点で、図7A,図7Bの場合と同様に、ヘッダ処理部500−1と500−2のそれぞれが保持するパラメータ転送テーブル510−1と510−2は、図9Aと図9Bに示したエントリのようになる。
On the other hand, after receiving the INIT-
図10Bに進む。CPUブレード1のL4スタック502−1は、応答としてCOOKIE−ECHOパケットを返す(1030)。ヘッダ処理500−1は、VNIC501−1を介して、COOKIE−ECHOパケットを受け取る(1031)。ヘッダ処理部500−1は、受け取ったCOOKIE−ECHOパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、COOKIE−ECHOパケットをスイッチブレード420に転送する(1032)。スイッチブレードは、通信相手にCOOKIE−ECHOパケットを送信する(1033)。
Proceed to FIG. 10B. The L4 stack 502-1 of the
一方、CPUブレード2のL4スタック502−2も、応答としてCOOKIE−ECHOパケットを返す(1034)。ヘッダ処理500−2は、VNIC501−2を介して、COOKIE−ECHOパケットを受け取る(1035)。このCOOKIE−ECHOパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はCOOKIE−ECHOパケットを破棄する(1036)。
On the other hand, the L4 stack 502-2 of the
その後、スイッチブレード420が、通信相手の外部の他装置からCOOKIE−ACKパケットを受信する(1040)。スイッチブレードはCPUブレード1にCOOKIE−ACKパケットを転送し、ヘッダ処理部500−1がそのCOOKIE−ACKパケットを受信する(1041)。ヘッダ処理部は、転送先テーブルを参照して、COOKIE−ACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1042)。ヘッダ処理部500−1は同時に、VNIC501−1を介してL4スタック502−1にCOOKIE−ACKパケットを渡す(1043、1044)。L4スタック502−1は、接続要求をしたアプリケーション503−1に対して、このSCTPコネクションのソケット番号を通知し(1045)、コネクション確立状態に遷移する(1046)。
Thereafter, the
一方、CPUブレード2のヘッダ処理部500−2は、1042のCOOKIE−ACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、COOKIE−ACKパケットのヘッダの検証タグを、参照した値に書き換える(1047)。これは、COOKIE−ACKパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にCOOKIE−ACKパケットを渡す(1048,1049)。L4スタック502−2は、接続要求をしたアプリケーション503−2に対して、このSCTPコネクションのソケット番号を通知し(1050)、コネクション確立状態に遷移する(1051)。
以上の手順により、図7A、図7Bの場合と同様に、他装置とゲートウェイ装置間のSCTPコネクション確立が完了する。
(A−2)SCTP DATAパケット送受信
次に、図11を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1100)、CPUブレード1に転送する。ヘッダ処理部500−1は、DATAパケットを受け取る(1101)。ヘッダ処理部500−1は、転送先テーブルを参照して、DATAパケットをヘッダ処理部500−2に通知する(1102)。ヘッダ処理部500−1は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの通信相手のシーケンス番号907を1だけ更新する。そして、ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にDATAパケットを渡す(1103、1104)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−1に渡す(1105)。L4スタックは同時に、応答としてSACKパケットを返す(1106)。ヘッダ処理500−1は、VNIC501−1を介して、SACKパケットを受け取る(1107)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1108)。スイッチブレードは、通信相手にSACKパケットを送信する(1109)。
On the other hand, after receiving the COOKIE-
With the above procedure, the establishment of the SCTP connection between the other device and the gateway device is completed as in the case of FIGS. 7A and 7B.
(A-2) SCTP DATA Packet Transmission / Reception Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described using FIG. The
一方、CPUブレード2のヘッダ処理部500−2は、1102のDATAパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(1110)。これは、DATAパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にDATAパケットを渡す(1111、1112)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−2に渡す(1113)。こうすることで、待機系側のアプリケーション503−2も現用系と同様のアプリケーションデータを受信することができ、アプリケーション間の同期も可能になる。L4スタック502−2は同時に、応答としてSACKパケットを返す(1114)。ヘッダ処理500−2は、VNIC501−2を介して、SACKパケットを受け取る(1115)。このSACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はSACKパケットを破棄する(1116)。
On the other hand, after receiving the DATA packet notification 1102, the header processing unit 500-2 of the
以上の手順を踏むことで、外部の他装置から受信したDATAパケットを現用系と待機系に入力し、適当なヘッダの値に書き換えることで、現用系と待機系のL4スタックでSCTPパケットを並列処理できるようになる。すなわち、ヘッダ処理部と併せることで、OSに改造を加えることなく、現用系と待機系のL4スタックが正しい状態遷移をとることができる。 By following the above procedure, DATA packets received from other external devices are input to the active and standby systems and rewritten with appropriate header values, so that SCTP packets are paralleled in the L4 stacks of the active and standby systems. It can be processed. That is, by combining with the header processing unit, the active and standby L4 stacks can take a correct state transition without modifying the OS.
次に、図11の場合とは反対にゲートウェイ装置の現用系であるCPUブレード1から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を、図12を用いて説明する。CPUブレード1のアプリケーション503−1が、L4スタック502−1に対してアプリケーションデータの送信を要求する(1200)。L4スタックは、DATAパケットを作成し、VNIC501−1に渡す(1201)。ヘッダ処理500−1は、VNICを介してDATAパケットを受け取る(1202)。ヘッダ処理部は、転送先テーブルを参照して、DATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(1203)。ヘッダ処理部500−1は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの自分のシーケンス番号903を1だけ増やして更新する。そして、ヘッダ処理部は、DATAパケットをスイッチブレード420に転送する(1204)。スイッチブレードは、通信相手にDATAパケットを送信する(1205)。
Next, in contrast to the case of FIG. 11, the processing procedure for transmitting the SCTP DATA packet from the
一方、CPUブレード2のヘッダ処理部500−2は、1203のDATAパケット通知を受けた後、現用系であるCPUブレード1のアプリケーション503−1からアプリケーション送信要求があったことを通知し、待機系であるCPUブレード2のアプリケーション503−2が同様のアプリケーションデータ送信要求を行うことを促す(1206)。こうすることで、待機系側のアプリケーション503−2は、現用系側のアプリケーション503−1がどのようなアプリケーションデータを送信したのかを知ることができ、アプリケーション間の同期も可能になる。アプリケーション503−2は、L4スタック502−2に対してアプリケーションデータの送信要求を行う(1207)。L4スタックは、DATAパケットを作成し、VNIC501−2に渡す(1208)。ヘッダ処理500−2は、VNICを介してDATAパケットを受け取る(1209)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの自分のシーケンス番号903と、現用系を示す書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。このDATAパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はDATAパケットを破棄する(1210)。
On the other hand, after receiving the
その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1220)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(1221)。ヘッダ処理部は、転送先テーブルを参照して、SACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1222)。ヘッダ処理部500−1は同時に、VNIC501−1を介してL4スタック502−1にSACKパケットを渡す(1223、1224)。
Thereafter, the
一方、CPUブレード2のヘッダ処理部500−2は、1222のSACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(1225)。これは、SACKパケットのヘッダの検証タグには現用系のものが、また受信DATAパケットのシーケンス番号には現用系が送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にSACKパケットを渡す(1226、1227)。
On the other hand, after receiving the
以上の手順を踏むことで、現用系側のアプリケーションから外部の他装置に送信するDATAパケットを現用系と待機系で作り出し、また応答であるSACKパケットを現用系と待機系に入力して適当なヘッダの値に書き換えて、現用系と待機系のL4スタックでSCTPパケットを並列処理できるようになる。すなわち、ヘッダ処理部と併せることで、OSに改造を加えることなく、現用系と待機系のL4スタックが正しい状態遷移をとることができる。 By following the above procedure, a DATA packet to be transmitted from the application on the active system side to another external device is created on the active system and the standby system, and a SACK packet as a response is input to the active system and the standby system to obtain an appropriate By rewriting the header value, the SCTP packet can be processed in parallel in the L4 stack of the active system and the standby system. That is, by combining with the header processing unit, the active and standby L4 stacks can take a correct state transition without modifying the OS.
また、本実施例では、スイッチブレードが通信相手からSCTPパケットを受信した場合、先に現用系に転送するように設定しているが、実際には先に待機系に転送するようにすることも可能である。
(B)故障発生時におけるSCTPパケット送受信
次に、前記(A)の手順を満たしておくことで、現用系もしくは待機系に故障が発生した場合でも、L4コネクションを切断することなく、通信を継続できることを説明する。
(B−1)現用系故障発生時におけるSCTP DATAパケット送受信
図13は、現用系であるCPUブレード1(410−1)に故障が発生した際に、待機系であるCPUブレード2(410−2)がパケットを受信するための前準備の手順である。CPUブレード1に故障が発生する(1300)。CPUブレード2は、その故障を検知する(1301)。すると、CPUブレード2では、ヘッダ処理部が保持する転送先テーブルの各エントリにある転送先から、<CPUブレード1>という記述を削除し、転送を停止する(1302)。CPUブレード2は、スイッチブレード420に対してGratuitous ARPパケットを送信し、MACアドレスをスイッチブレードに登録する(1304)。こうすることで、ゲートウェイ装置宛に送られてきたパケットがCPUブレード2に転送されるようになる。その後、CPUブレード2は、現用系として動作するように、内部で動くアプリケーションを現用状態に移行する(1305)。なお、本実施の形態のゲートウェイ装置のように、あらかじめ待機系側のアプリケーションにすべてのアプリケーションデータを転送しておくことで、冗長切替時にアプリケーション情報の引継ぎを行わなくて済む。
In this embodiment, when the switch blade receives the SCTP packet from the communication partner, it is set to forward to the active system first, but in practice, it may be forwarded to the standby system first. Is possible.
(B) SCTP packet transmission / reception at the time of failure Next, by satisfying the procedure (A) above, communication can be continued without disconnecting the L4 connection even if a failure occurs in the active or standby system. Explain what you can do.
(B-1) SCTP DATA packet transmission / reception at the time of failure of the active system FIG. 13 shows the CPU blade 2 (410-2) as the standby system when a failure occurs in the CPU blade 1 (410-1) as the active system. ) Is a preparation procedure for receiving a packet. A failure occurs in the CPU blade 1 (1300). The
次に、図14を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1400)、CPUブレード2に転送する。ヘッダ処理部500−2は、DATAパケットを受け取る(1401)。ヘッダ処理部500−1は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(1402)。これは、DATAパケットのヘッダの検証タグには現用系であったCPUブレード1のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にDATAパケットを渡す(1403、1404)。L4スタックは、DATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−2に渡す(1405)。L4スタックは同時に、応答としてSACKパケットを返す(1406)。ヘッダ処理500−2は、VNIC501−2を介して、SACKパケットを受け取る(1407)。このSACKパケットのヘッダ書換は不要である。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1408)。スイッチブレードは、通信相手にSACKパケットを送信する(1409)。
Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described with reference to FIG. The
次に、図15を用いて、ゲートウェイ装置の現在の現用系であるCPUブレード2から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード2のアプリケーション503−2が、L4スタック502−2に対してアプリケーションデータの送信を要求する(1500)。L4スタックは、DATAパケットを作成し、VNIC501−2に渡す(1501)。ヘッダ処理500−2は、VNICを介してDATAパケットを受け取る(1502)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの自分のシーケンス番号903と、書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。ヘッダ処理部は同時に、パラメータ格納テーブルのエントリの書換用のシーケンス番号905を参照し、図2Aに示したDATAパケットのヘッダのシーケンス番号204を、参照した値に書き換える(1503)。これは、DATAパケットのヘッダのシーケンス番号にはCPUブレード2のものが記述されているからである。SCTPコネクションが確立されたままなので、通信相手はDATAパケットのシーケンス番号にはCPUブレード1のもの、すなわち参照している書換用のシーケンス番号905の値が記述されていることを期待している。そのため、そのままでは通信相手がパケットを破棄してしまう。ヘッダ処理部500−2は、ヘッダを書き換えた後、DATAパケットをスイッチブレード420に転送する(1504)。スイッチブレードは、通信相手にDATAパケットを送信する(1505)。
Next, a processing procedure for transmitting an SCTP DATA packet from the
その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1506)。スイッチブレードはCPUブレード2にSACKパケットを転送し、ヘッダ処理部500−2がそのSACKパケットを受信する(1507)。ヘッダ処理部は、パラメータ格納テーブル510−2のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(1508)。これは、SACKパケットのヘッダの検証タグ213には現用系であったCPUブレード1のものが、また受信DATAパケットのシーケンス番号214には、ヘッダを書換用のシーケンス番号に書き換えて送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にSACKパケットを渡す(1509、1510)。
Thereafter, the
以上の手順を踏むことで、SCTPコネクションを切断することなく、通信を継続できる。すなわち、L4コネクションの冗長化を達成できる。また、故障発生時に必要な動作は、図13の手順だけであり、冗長切替の高速化に貢献できる。
(B−2)待機系故障発生時におけるSCTP DATAパケット送受信
図16は、待機系であるCPUブレード2(410−2)に故障が発生した際に、現用系であるCPUブレード1(410−1)が行う手順である。CPUブレード2に故障が発生する(1600)。CPUブレード1は、その故障を検知する(1601)。すると、CPUブレード1では、ヘッダ処理部が保持する転送先テーブルの各エントリにある転送先から、<CPUブレード2>という記述を削除し、転送を停止する(1602)。要するに、CPUブレード1から2へのSCTPパケットの転送を停止するだけである。
By following the above procedure, communication can be continued without disconnecting the SCTP connection. That is, the redundancy of the L4 connection can be achieved. Further, the operation necessary when a failure occurs is only the procedure shown in FIG. 13, which can contribute to speeding up redundancy switching.
(B-2) SCTP DATA packet transmission / reception when standby system failure occurs FIG. 16 shows the CPU blade 1 (410-1) as the active system when a failure occurs in the CPU blade 2 (410-2) as the standby system. ) Is the procedure to be performed. A failure occurs in the CPU blade 2 (1600). The
次に、図17を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1700)、CPUブレード1に転送する。ヘッダ処理部500−1は、DATAパケットを受け取る(1701)。ヘッダ処理部500−1は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの通信相手のシーケンス番号907を1だけ更新する。そして、ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にDATAパケットを渡す(1702、1703)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−1に渡す(1704)。L4スタックは同時に、応答としてSACKパケットを返す(1705)。ヘッダ処理500−1は、VNIC501−1を介して、SACKパケットを受け取る(1706)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1707)。スイッチブレードは、通信相手にSACKパケットを送信する(1708)。
Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described with reference to FIG. The
次に、図18を用いて、ゲートウェイ装置の現用系であるCPUブレード1から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード1のアプリケーション503−1が、L4スタック502−1に対してアプリケーションデータの送信を要求する(1800)。L4スタックは、DATAパケットを作成し、VNIC501−1に渡す(1801)。ヘッダ処理500−1は、VNICを介してDATAパケットを受け取る(1802)。ヘッダ処理部は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの自分のシーケンス番号903を1だけ増やして更新する。そして、ヘッダ処理部は、DATAパケットをスイッチブレード420に転送する(1803)。スイッチブレードは、通信相手にDATAパケットを送信する(1804)。
Next, a processing procedure for transmitting an SCTP DATA packet from the
その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1805)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(1806)。ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にSACKパケットを渡す(1807、1808)。
Thereafter, the
以上の手順を踏むことで、待機系故障発生時にもなんら問題なく、DATAパケットの送受信を続けることができる。
(C)新たにCPUブレード3を現用系として追加した際のSCTPパケット送受信
次に、前記(A)の手順を満たしておくことで、負荷分散のために新たに現用系を追加した場合でも、L4コネクションを切断することなく、通信を継続できることを説明する。ここで想定する状況は、現用系であるCPUブレード1のCPU負荷が高くなってきた際に、あらたにCPUブレード3を追加し、一部のSCTPコネクションのパケット処理をCPUブレード3に切り替える場合である。
(C−1)CPUブレード1からCPUブレード3へのSCTPコネクション切替
図19A、図19Bを用いて、CPUブレード1からCPUブレード3への特定のSCTPコネクションの端点を切り替える手順を説明する。図19Aから説明する。CPUブレード3(410−3)も、他のCPUブレードと同様に、ヘッダ処理部500−3、VNIC501−3、L4スタック502−3、アプリケーション503−3を備える。まず、装置の管理者が、各CPUブレードに負荷分散を開始することを設定する(1900)。すると、CPUブレード3のアプリケーション503−3が、現用状態で起動する(1901)。アプリケーションは、L4スタック502−3に対して待ち受け登録(Listen)を行う(1902)。次に、CPUブレード1のヘッダ処理部500−1は、ヘッダ処理部500−3に対して、端点の切替をしたいSCTPコネクションのL4パラメータを通知する(1910)。
By following the above procedure, DATA packet transmission / reception can be continued without any problem even when a standby system failure occurs.
(C) SCTP packet transmission / reception when the CPU blade 3 is newly added as the active system Next, by satisfying the procedure (A), even when a new active system is added for load distribution, Explain that communication can be continued without disconnecting the L4 connection. The situation assumed here is that when the CPU load of the
(C-1) SCTP Connection Switching from
図20は、L4パラメータ通知メッセージ1910のデータ構造である。L4パラメータ通知メッセージは、通信相手のアドレス2000と、自分のポート番号2001と、通信相手のポート番号2002と、書換用の検証タグ2003と、書換用のシーケンス番号2004と、通信相手の検証タグ2005と、通信相手のシーケンス番号2006を含む。これらの情報はすべて、ヘッダ処理部500−1が保持する、図9Aに示したパラメータ格納テーブル510−1のエントリから作成される。自分のポート番号2001には自分のポート番号900を、通信相手のポート番号2002には通信相手のポート番号901を、書換用の検証タグ2003には自分の検証タグ902を、書換用のシーケンス番号2004には現在の自分のシーケンス番号903を、通信相手の検証タグ2005には通信相手の検証タグ906を、通信相手のシーケンス番号2006には現在のシーケンス番号907を格納する。
FIG. 20 shows the data structure of the L4
図19Aに戻る。ヘッダ処理部500−3は、L4パラメータ通知メッセージの通信相手の検証タグ2005と、通信相手のシーケンス番号2006を用いて、INITパケットを作成し、VNIC501−3を介してL4スタック502−3に渡す(1911、1912)。ヘッダ処理部500−3がこのようなINITパケットを作成することで、L4スタック502−3に対して、擬似的に通信相手からSCTPコネクション確立要求があったかのように挙動させることができる。このとき、通信相手のシーケンス番号を引き継ぐため、通信相手はSCTPコネクションを張り直すことなく、SCTPパケットを送信し続けることができる。その後、L4スタック502−3は、応答としてINIT−ACKパケットを返す(1913)。ヘッダ処理500−3は、VNIC501−3を介して、INIT−ACKパケットを受け取る(1914)。ヘッダ処理部は、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブルに記憶する(1915)。
Returning to FIG. 19A. The header processing unit 500-3 creates an INIT packet using the communication
図21は、CPUブレード3のヘッダ処理部500−3がもつパラメータ格納テーブル510−3である。ヘッダ処理部は、パラメータ格納テーブル510−3にエントリを作成し、1910のL4パラメータ通知メッセージに記述されたパラメータと、1915で抽出したパラメータを格納する。図21に示すエントリは、1915の時点での状態である。このとき、書換用の検証タグ903には元の現用系であったCPUブレード1の検証タグが、書換用のシーケンス番号には904には切替直前のCPUブレード1のシーケンス番号が、それぞれ記述されることになる。
FIG. 21 is a parameter storage table 510-3 included in the header processing unit 500-3 of the CPU blade 3. The header processing unit creates an entry in the parameter storage table 510-3, and stores the parameters described in the L4
図19Aに戻る。ヘッダ処理部500−3はCOOKIE−ECHOパケットを作成し、VNIC501−3を介してL4スタック502−3に渡す(1916、1917)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(1918)。ヘッダ処理500−3は、VNIC501−3を介して、COOKIE−ACKパケットを受け取る(1919)。ここで、L4スタック502−3は、待ち受け登録をしたアプリケーション503−3に対して、このSCTPコネクションのソケット番号を通知し(1920)、コネクション確立状態に遷移する(1921)。これ以降、L4スタック502−3は、切替対象となったSCTPパケットを送受信することができるようになる。その後、ヘッダ処理部500−3は、CPUブレード1のヘッダ処理部500−1に対して、SCTPコネクション設定が完了したことを通知する(1922)。
Returning to FIG. 19A. The header processing unit 500-3 creates a COOKIE-ECHO packet and passes it to the L4 stack 502-3 via the VNIC 501-3 (1916, 1917). The L4 stack returns a COOKIE-ACK packet as a response (1918). The header processing 500-3 receives the COOKIE-ACK packet via the VNIC 501-3 (1919). Here, the L4 stack 502-3 notifies the socket number of this SCTP connection to the application 503-3 that has registered for standby (1920), and transitions to a connection established state (1921). Thereafter, the L4 stack 502-3 can transmit and receive the SCTP packet to be switched. Thereafter, the header processing unit 500-3 notifies the header processing unit 500-1 of the
図19Bに進む。CPUブレード1のアプリケーション503−1は、CPUブレード3のアプリケーション503−3に対して、サービスを引き継ぐのに必要なアプリケーション情報を通知する(1930)。本実施の形態のゲートウェイ装置では、アプリケーション情報通知の方法については特に制限はなく、任意の方法を採ることが可能である。その後、各CPUブレードのヘッダ処理部は、1900で管理者が設定した情報に転送先テーブルを変更する(1931、1932、1933)。具体的には、CPUブレード1とCPUブレード3の間、CPUブレード2とCPUブレード3の間で切替対象となったSCTPコネクションのパケットを転送するように設定される。その後、CPUブレード1のL4スタックが持っているSCTPコネクションリソースを解放するため、ヘッダ処理部500−1は、図9Aに示すパラメータ格納テーブル510−1のエントリの通信相手の検証タグを用いてSHUTDOWNパケットを作成し、VNIC501−1を介してL4スタック502−1に渡す(1934、1935)。ヘッダ処理部500−1がこのようなSHUTDOWNパケットを作成することで、L4スタック502−1に対して、擬似的に通信相手からSCTPコネクション終了要求があったかのように挙動させることができる。その後、L4スタック502−1は、応答としてSHUTDOWN−ACKパケットを返す(1936)。ヘッダ処理500−1は、VNIC501−1を介して、SHUTDOWN−ACKパケットを受け取る(1937)。ヘッダ処理部は、完了通知としてSHUDOWN−COMPLETEパケットを作成し、VNIC501−1を介してL4スタック502−1に渡す(1938、1939)。L4スタックは該当するSCTPコネクションを利用していたアプリケーション503−1に対して、SCTPコネクションの切断通知を行い(1940)、コネクション終了状態に遷移する(1941)。
Proceed to FIG. 19B. The application 503-1 of the
以上の手順を踏むことで、特定のSCTPコネクションの端点をCPUブレード1からCPUブレード3へ切り替える操作が完了する。
(C−2)前記(C−1)後におけるSCTP DATAパケット送受信
次に、図22を用いて、前記(C−1)の手順を満たした後に、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(2200)、CPUブレード1に転送する。CPUブレード1のヘッダ処理部500−1は、DATAパケットを受け取る(2201)。ヘッダ処理部500−1は、転送先テーブルを参照して、DATAパケットをCPUブレード3のヘッダ処理部500−3に通知する(2202)。ヘッダ処理部500−3は、転送先テーブルを参照して、DATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(2203)。ヘッダ処理部500−3は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−3のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(2204)。これは、DATAパケットのヘッダの検証タグには元の現用系であったCPUブレード1の検証タグが記述されており、そのままではCPUブレード3のL4スタック502−3がパケットを破棄してしまうからである。その後、ヘッダ処理部500−3は、自身が保持するパラメータ格納テーブル510−3のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−3を介してL4スタック502−3にDATAパケットを渡す(2205、2206)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−3に渡す(2207)。L4スタックは同時に、応答としてSACKパケットを返す(2208)。ヘッダ処理500−3は、VNIC501−3を介して、SACKパケットを受け取る(2209)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(2210)。スイッチブレードは、通信相手にSACKパケットを送信する(2211)。
By performing the above procedure, the operation for switching the end point of the specific SCTP connection from the
(C-2) SCTP DATA packet transmission / reception after (C-1) Next, using FIG. 22, after satisfying the procedure of (C-1), an external communication partner that established the SCTP connection A processing procedure for receiving an SCTP DATA packet from another apparatus will be described. The
一方、CPUブレード2のヘッダ処理部500−2は、2203のDATAパケット通知を受けた後、図11に示した1110〜1116と同様の手順を行う。そのため、ここでは説明を省略する。
On the other hand, after receiving the
以上の手順を踏むことで、一部のSCTPコネクションのパケット処理をCPUブレード1からCPUブレード3に切り替えた場合でも、SCTPコネクションを切断することなく、継続的にDATAパケットを受信することができる。
By following the above procedure, even when packet processing of some SCTP connections is switched from the
次に、図23を用いて、現在の現用系であるCPUブレード3から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード3のアプリケーション503−3が、L4スタック502−3に対してアプリケーションデータの送信を要求する(2300)。L4スタックは、DATAパケットを作成し、VNIC501−3に渡す(2301)。ヘッダ処理500−3は、VNICを介してDATAパケットを受け取る(2302)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−3のエントリの自分のシーケンス番号903と、書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。ヘッダ処理部は同時に、パラメータ格納テーブルのエントリの書換用のシーケンス番号905を参照し、図2Aに示したDATAパケットのヘッダのシーケンス番号204を、参照した値に書き換える(2303)。これは、DATAパケットのヘッダのシーケンス番号にはCPUブレード3のものが記述されているからである。SCTPコネクションが確立されたままなので、通信相手はDATAパケットのシーケンス番号にはCPUブレード1のもの、すなわち参照している書換用のシーケンス番号905の値が記述されていることを期待している。そのため、そのままでは通信相手がパケットを破棄してしまう。ヘッダ処理部500−3は、ヘッダを書き換えた後、DATAパケットをスイッチブレード420に転送する(2304)。スイッチブレードは、通信相手にDATAパケットを送信する(2305)。
一方、ヘッダ処理部500−3は、2304で転送するDATAパケットを複製し、転送先テーブルを参照して、複製したDATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(2306)。その後、ヘッダ処理部500−2は、図12に示した1206〜1210と同様の手順を行う。そのため、ここでは説明を省略する。
Next, a processing procedure for transmitting an SCTP DATA packet from the current active CPU blade 3 to another external apparatus as a communication partner with which an SCTP connection has been established will be described with reference to FIG. The application 503-3 of the CPU blade 3 requests the L4 stack 502-3 to transmit application data (2300). The L4 stack creates a DATA packet and passes it to the VNIC 501-3 (2301). The header processing 500-3 receives the DATA packet via the VNIC (2302). The header processing unit increments and updates its
On the other hand, the header processing unit 500-3 copies the DATA packet transferred in 2304, refers to the transfer destination table, and notifies the copied DATA packet to the header processing unit 500-2 of the CPU blade 2 (2306). Thereafter, the header processing unit 500-2 performs the same procedure as 1206 to 1210 illustrated in FIG. Therefore, description is abbreviate | omitted here.
その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(2310)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(2311)。ヘッダ処理部500−1は、転送先テーブルを参照して、SACKパケットをCPUブレード3のヘッダ処理部500−3に通知する(2312)。ヘッダ処理部500−3は、転送先テーブルを参照して、SACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(2313)。ヘッダ処理部500−3は同時に、パラメータ格納テーブル510−3のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(2314)。これは、SACKパケットのヘッダの検証タグ213には元の現用系であるCPUブレード1のものが、また受信DATAパケットのシーケンス番号214には、ヘッダを書換用のシーケンス番号に書き換えて送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−3は、VNIC501−3を介してL4スタック502−3にSACKパケットを渡す(2315、2316)。
Thereafter, the
一方、CPUブレード2のヘッダ処理部500−2は、2313のSACKパケット通知を受けた後、図12に示した1225〜1227と同様の手順を行う。そのため、ここでは説明を省略する。
On the other hand, after receiving the SACK packet notification 2313, the header processing unit 500-2 of the
以上の手順を踏むことで、一部のSCTPコネクションのパケット処理をCPUブレード1からCPUブレード3に切り替えた場合でも、SCTPコネクションを切断することなく、継続的にDATAパケットを送信することができる。
3.処理(フローチャート)
本実施の形態のゲートウェイ装置では、ヘッダ処理部がL4コネクションで用いるパラメータを記憶して、必要に応じてヘッダを書き換えることによって、L4コネクションの冗長化を実現している。ヘッダ処理部の動作パターンは、VNIC、すなわち装置内のL4スタックからパケットを読み込んだ場合と、VNIC以外からパケットを受け取った場合に分けられる。また、装置が現用系である場合と、装置が待機系である場合に分けられる。図24、図25、図26、図27を用いて、SCTPを例にとり、ヘッダ処理部の動作を説明する。
By following the above procedure, even when packet processing for some SCTP connections is switched from the
3. Processing (flow chart)
In the gateway device according to the present embodiment, the header processing unit stores parameters used in the L4 connection and rewrites the header as necessary, thereby realizing redundancy of the L4 connection. The operation pattern of the header processing unit is divided into a case where a packet is read from the VNIC, that is, an L4 stack in the apparatus, and a case where a packet is received from other than the VNIC. Further, there are a case where the device is an active system and a case where the device is a standby system. The operation of the header processing unit will be described using SCTP as an example with reference to FIGS. 24, 25, 26, and 27.
図24は、現用系においてヘッダ処理部がVNICから読込んだSCTPパケットを処理するフローチャート図である。まず、VNICからSCTPパケットを読み込む(2400)。読み込んだパケットがDATAパケットである場合(2401)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、自分のシーケンス番号903と書換用のシーケンス番号905の値を1だけ増やして更新する(2402)。その後、同エントリの書換用シーケンス番号905に値が記述されている場合には、DATAパケットのヘッダをその値に書き換える(2403)。その後、ヘッダ処理部は、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2406)。
FIG. 24 is a flowchart for processing the SCTP packet read from the VNIC by the header processing unit in the active system. First, an SCTP packet is read from the VNIC (2400). When the read packet is a DATA packet (2401), if there is a corresponding entry in the parameter storage table shown in FIG. 9A or the like, the value of
一方、VNICから読み込んだSCTPパケットが、INITパケットもしくはINIT−ACKパケットである場合(2404)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に記憶する(2405)。その後、ヘッダ処理部は、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2406)。
On the other hand, if the SCTP packet read from the VNIC is an INIT packet or an INIT-ACK packet (2404), the verification tag and sequence number initial value described in the packet are extracted, and the parameter storage table shown in FIG. A new entry is created and stored in its
最後に、VNICから読み込んだSCTPパケットの種別に係わらず、スイッチブレードを介してそのパケットを通信相手に送信し(2407)、処理を終了する(2408)。 Finally, regardless of the type of the SCTP packet read from the VNIC, the packet is transmitted to the communication partner via the switch blade (2407), and the process ends (2408).
図25は、現用系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。まず、VNIC以外からSCTPパケットを受け取る(2500)。これはすなわち、通信相手からのSCTPパケットを受け取ったことを意味する。次に、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2501)。転送先テーブルの転送先802に、装置内のL4スタックにパケットを渡すことを意味する<local>を含むか検査し(2502)、含まなければ処理を終了する(2511)。
FIG. 25 is a flowchart for processing an SCTP packet received from a non-VNIC by the header processing unit in the active system. First, an SCTP packet is received from other than the VNIC (2500). This means that the SCTP packet from the communication partner has been received. Next, with reference to the transfer destination table shown in FIG. 8, the SCTP packet is transferred to the header processing unit of an appropriate CPU blade (2501). Whether the
2502に戻り、転送先に<local>を含む場合に進む。受け取ったSCTPパケットがDATAパケットである場合(2503)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、通信相手のシーケンス番号907の値を1だけ増やして更新する(2504)。あるいは、受け取ったSCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2505)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に記憶する(2506)。あるいは、受け取ったSCTPパケットがSACKパケットである場合(2507)、SACKパケットのヘッダにある受信DATAパケットのシーケンス番号を、パラメータ格納テーブルの該当するエントリの自分のシーケンス番号903の値と異なれば、その値に書き換える(2508)。その後、受け取ったSCTPパケットの種別に係わらず、SCTPパケットのヘッダの検証タグを、パラメータ格納テーブルの該当するエントリの自分の検証タグ902の値と異なれば、その値に書き換える(2509)。そして、VNICにSCTPパケットを書き込み(2510)、処理を終了する(2511)。
Returning to 2502, the process proceeds when <local> is included in the transfer destination. If the received SCTP packet is a DATA packet (2503), if there is a corresponding entry in the parameter storage table shown in FIG. 9A or the like, the value of the communication
図26は、待機系においてヘッダ処理部がVNICから読込したSCTPパケットを処理するフローチャート図である。まず、VNICからSCTPパケットを読み込む(2600)。読み込んだパケットがDATAパケットである場合(2601)、図9Bなどで示したパラメータ格納テーブルに該当するエントリがあれば、自分のシーケンス番号903と書換用のシーケンス番号905の値を1だけ増やして更新する(2602)。一方、VNICから読み込んだSCTPパケットが、INITパケットもしくはINIT−ACKパケットである場合(2603)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に記憶する(2604)。
FIG. 26 is a flowchart for processing the SCTP packet read from the VNIC by the header processing unit in the standby system. First, an SCTP packet is read from the VNIC (2600). If the read packet is a DATA packet (2601), if there is a corresponding entry in the parameter storage table shown in FIG. 9B etc., the value of
最後に、VNICから読み込んだSCTPパケットの種別に係わらず、パケットを破棄し(2605)、処理を終了する(2606)。 Finally, regardless of the type of the SCTP packet read from the VNIC, the packet is discarded (2605), and the process is terminated (2606).
図27は、待機系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。まず、VNIC以外からSCTPパケットを受け取る(2700)。SCTPパケットの送信元のアドレスを特定する(2701)。送信元が現用系である、すなわち現用系から通信相手に送信されるSCTPパケットである場合に進む。SCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2702)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Bなどで示したパラメータ格納テーブルに新たなエントリを作成して、書換用の検証タグ904と書換用のシーケンス番号905に記憶する(2703)。次に、SCTPパケットがINITパケットもしくはDATAパケットである場合(2704)、接続要求やアプリケーションデータ送信を促すために、装置内のアプリケーションに対してINITパケットもしくはDATAパケットを直接通知し(2705)、処理を終了する(2715)。一方、装でない場合、パケットを破棄し(2706)、処理を終了する(2715)。
FIG. 27 is a flowchart for processing the SCTP packet received from the header processing unit other than the VNIC in the standby system. First, an SCTP packet is received from other than the VNIC (2700). The source address of the SCTP packet is specified (2701). The process proceeds when the transmission source is the active system, that is, the SCTP packet is transmitted from the active system to the communication partner. When the SCTP packet is an INIT packet or an INIT-ACK packet (2702), the verification tag and the sequence number initial value described in the packet are extracted, and a new entry is created in the parameter storage table shown in FIG. Then, the data is stored in the
2701に戻り、SCTP送信元が通信相手である、すなわちゲートウェイ装置が通信相手から受信したSCTPパケットである場合に進む。受け取ったSCTPパケットがDATAパケットである場合(2707)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、通信相手のシーケンス番号907の値を1だけ増やして更新する(2708)。あるいは、受け取ったSCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2709)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に記憶する(2710)。あるいは、受け取ったSCTPパケットがSACKパケットである場合(2711)、SACKパケットのヘッダにある受信DATAパケットのシーケンス番号を、パラメータ格納テーブルの該当するエントリの自分のシーケンス番号903の値と異なれば、その値に書き換える(2712)。その後、受け取ったSCTPパケットの種別に係わらず、SCTPパケットのヘッダの検証タグを、パラメータ格納テーブルの該当するエントリの自分の検証タグ902の値と異なれば、その値に書き換える(2713)。そして、VNICにSCTPパケットを書き込み(2714)、処理を終了する(2715)。
Returning to 2701, the process proceeds when the SCTP transmission source is the communication partner, that is, the gateway device is an SCTP packet received from the communication partner. If the received SCTP packet is a DATA packet (2707), if there is a corresponding entry in the parameter storage table shown in FIG. 9A, etc., the value of the communication
以上の処理によって、本実施の形態のゲートウェイ装置は、冗長構成をとるゲートウェイ装置において、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理してL4コネクションの冗長化を実現できる。また、L4コネクションを確立したまま柔軟な冗長化装置の運用が可能となる。 Through the above processing, the gateway device according to the present embodiment duplicates the packet received from the communication partner that has established the L4 connection in the gateway device having a redundant configuration, and inputs the packet to both the active system and the standby system. , It is possible to realize redundancy of the L4 connection by processing in each L4 stack. In addition, it is possible to operate a flexible redundant apparatus while establishing the L4 connection.
本発明は、移動体通信のゲートウェイ装置に限らず、様々な通信システムにおいてL4コネクション端点となる通信制御装置の冗長化に適用することができる。 The present invention is not limited to a gateway device for mobile communication, but can be applied to redundancy of a communication control device serving as an L4 connection endpoint in various communication systems.
400 ゲートウェイ装置
410−1 CPUブレード1
420 スイッチブレード
500−1 ヘッダ処理部
501−1 VNIC
502−1 L4スタック
503−1 アプリケーション
510−1 パラメータ格納テーブル
511−1 転送先テーブル
1910 L4パラメータ通知メッセージ
400 Gateway device 410-1
420 Switch Blade 500-1 Header Processing Unit 501-1 VNIC
502-1 L4 stack 503-1 application 510-1 parameter storage table 511-1 transfer destination table 1910 L4 parameter notification message
Claims (9)
前記通信相手から受信した前記レイヤ4コネクションのパケットが前記現用系もしくは前記待機系に入力されると、前記現用系もしくは前記待機系は前記レイヤ4コネクションに関して記憶しているパラメータを用いて前記パケットのヘッダを書き換えて、レイヤ4スタックに前記パケットを渡すことを特徴とするゲートウェイ装置。 A plurality of packet processing devices that operate independently; and a switch device that connects the plurality of packet processing devices, wherein one of the plurality of packet processing devices is an active system and one that is different from the active system It is a gateway device that takes a redundant configuration so as to become a standby system, and the working system is an end point of a layer 4 connection to a communication partner,
When a packet of the layer 4 connection received from the communication partner is input to the active system or the standby system, the active system or the standby system uses the parameters stored for the layer 4 connection to A gateway device, wherein a header is rewritten and the packet is passed to a layer 4 stack.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010110728A JP2011239309A (en) | 2010-05-13 | 2010-05-13 | Gateway device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010110728A JP2011239309A (en) | 2010-05-13 | 2010-05-13 | Gateway device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011239309A true JP2011239309A (en) | 2011-11-24 |
Family
ID=45326769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010110728A Pending JP2011239309A (en) | 2010-05-13 | 2010-05-13 | Gateway device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011239309A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928660A (en) * | 2022-05-16 | 2022-08-19 | 北京计算机技术及应用研究所 | Method for transparent interprocess communication of embedded operating system |
-
2010
- 2010-05-13 JP JP2010110728A patent/JP2011239309A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928660A (en) * | 2022-05-16 | 2022-08-19 | 北京计算机技术及应用研究所 | Method for transparent interprocess communication of embedded operating system |
CN114928660B (en) * | 2022-05-16 | 2023-10-31 | 北京计算机技术及应用研究所 | Method for communication between transparent processes of embedded operating system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7801135B2 (en) | Transport protocol connection synchronization | |
EP1829267B1 (en) | Redundant l2tp end points | |
TW200845608A (en) | Redundant wireless base station | |
JP5419907B2 (en) | Network system and communication recovery method | |
CN102916897B (en) | A kind of method and apparatus realizing VRRP load balancing | |
WO2016172926A1 (en) | Communication method and device, and system in communication system | |
WO2021008591A1 (en) | Data transmission method, device, and system | |
WO2021169291A1 (en) | Route advertising method, network elements, system, and device | |
WO2015039512A1 (en) | Pool element status information synchronization method, pool register and pool element | |
WO2014075216A1 (en) | Method and network device for establishing virtual cluster | |
WO2012127644A1 (en) | Communication node apparatus system, apparatus, and method | |
JP5309350B2 (en) | Mobile communication gateway apparatus and mobile communication gateway control method | |
US8849270B2 (en) | System and method for providing geographic redundancy for mobile wireless data network components | |
WO2011153870A1 (en) | System, method and base station for implementing local switching transmission | |
JP2011239309A (en) | Gateway device | |
WO2011143891A1 (en) | Method and apparatus for backup of subscriber service information | |
WO2012159339A1 (en) | Interface register method and device for network device to join cluster system | |
WO2011143888A1 (en) | Method and system for backing up protocol state between devices | |
KR20180099143A (en) | Apparatus and method for recovering tcp-session | |
WO2012097604A1 (en) | Method, system and gateway for processing messages when gateway has failed | |
JP2013527648A (en) | Emergency switching method and system | |
WO2014083922A1 (en) | Information distribution system, information distribution method, communication terminal, and program | |
WO2018018897A1 (en) | Apparatus communication method, device and system | |
WO2012088873A1 (en) | Selection and disaster recovery method and system for access support node, and access control device | |
CN114793221B (en) | NAT association table processing method and device |