JP2014216793A - 通信装置、アドレス学習方法及びアドレス学習プログラム - Google Patents

通信装置、アドレス学習方法及びアドレス学習プログラム Download PDF

Info

Publication number
JP2014216793A
JP2014216793A JP2013091713A JP2013091713A JP2014216793A JP 2014216793 A JP2014216793 A JP 2014216793A JP 2013091713 A JP2013091713 A JP 2013091713A JP 2013091713 A JP2013091713 A JP 2013091713A JP 2014216793 A JP2014216793 A JP 2014216793A
Authority
JP
Japan
Prior art keywords
learning
group identifier
vlan
frame
port
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
JP2013091713A
Other languages
English (en)
Other versions
JP6086020B2 (ja
Inventor
茂盛 大川
Shigemori Okawa
茂盛 大川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013091713A priority Critical patent/JP6086020B2/ja
Priority to US14/191,575 priority patent/US9485167B2/en
Publication of JP2014216793A publication Critical patent/JP2014216793A/ja
Application granted granted Critical
Publication of JP6086020B2 publication Critical patent/JP6086020B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行う通信装置を提供する。
【解決手段】通信装置10は、ポート識別子と、接続された端末のアドレスと、グループ識別子との対応関係を記憶するMAC学習テーブル12と、MAC学習テーブル12に現に記憶される対応関係の数を示す学習数と、最小学習数と、最大学習数と、優先度とをグループ識別子に対応付けて記憶する学習管理テーブル13を有する。通信装置はフレーム受信時に、受信グループ識別子と他のグループ識別子の学習数の総数が最大学習数に達したか否かを判定し、最大学習数に達した場合、受信グループ識別子よりも優先度が低く、かつ学習数が最小学習数を満たす他のグループ識別子を学習管理テーブルから特定し、特定した他のグループ識別子を含む対応関係に替えて、フレームを受信した対応関係をMAC学習テーブルに格納する。
【選択図】図3

Description

本発明は、通信装置、アドレス学習方法及びアドレス学習プログラムに関する。
従来、イーサネット(登録商標)等のフレーム通信ネットワークでは、フレームを中継する通信装置であるスイッチが用いられる。スイッチは、フレーム転送を行うためにMAC(Media Access Control)学習機能を採用する。
すなわち、MAC学習機能を採用するスイッチは、フレームが受信された場合に、フレームを受信したポートと、フレームの送信元となる端末のMACアドレスとの対応関係をMAC学習テーブルと呼ばれるテーブルに格納する。そして、スイッチは、MAC学習テーブルに格納されたMACアドレスを宛先とするフレームを他のポートから受信した場合に、MAC学習テーブルに学習済みであるポートから受信フレームを転送する。
また、近年では、ポートを介してスイッチに接続された端末を仮想的にグループ化したVLAN(Virtual Local Area Network)と呼ばれるグループ単位で端末のMACアドレスを学習する学習方式が提案されている。この学習方式では、スイッチは、ポートと、MACアドレスと、MACアドレスを有する端末の属するVLANの識別子との対応関係をMAC学習テーブルに保持し、さらに、MAC学習テーブルの学習数と、最大学習数とをVLANの識別子に対応付けて保持する。そして、スイッチは、フレームが受信されると、フレームに含まれるVLANの識別子に対応付けられた学習数と最大学習数とを比較し、学習数が最大学習数に達している場合には、フレームの送信元のMACアドレスの学習を行わない。これにより、MAC学習テーブルに学習されるMACアドレスの公平性をVLAN間で維持している。
特開2004−194145号公報
しかしながら、従来技術では、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことについては考慮されていない。
すなわち、従来技術では、VLANからのフレームが受信された場合でも、MAC学習テーブルの学習数がVLANの識別子に対応付けられた最大学習数に達している場合には、フレームの送信元のMACアドレスの学習を行わない。このため、従来技術では、相対的に優先度の高いVLANの識別子と相対的に優先度の低いVLANの識別子とに対応付けられた学習数の総数が最大学習数の総数に達している場合には、フレームの送信元のMACアドレスの学習を行わない。その結果、従来技術では、相対的に優先度の高いVLANからのフレームが破棄又はフラッディングされる恐れがある。
この点、相対的に優先度の高いVLANからのフレームの送信元のMACアドレスの学習を行うために、相対的に優先度の低いVLANの識別子に対応するMACアドレスをMAC学習テーブルから削除する手法が考えられる。しかしながら、この手法では、VLAN単位の最低限の学習数を保障することが困難となる恐れがある。
開示の技術は、上記に鑑みてなされたものであって、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる通信装置、アドレス学習方法及びアドレス学習プログラムを提供することを目的とする。
本願の開示する通信装置は、一つに態様において、第1記憶部と、第2記憶部と、判定部と、制御部とを備えた。第1記憶部は、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する。第2記憶部は、前記第1記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する。判定部は、フレームが受信された場合に、該フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けて前記第2記憶部に記憶される前記学習数の総数が前記最大学習数の総数に達したか否かを判定する。制御部は、前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定する。制御部は、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第1記憶部に格納する。
本願の開示する通信装置の一つの態様によれば、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができるという効果を奏する。
図1は、本実施例に係るスイッチを含むネットワークの構成例を示す図である。 図2は、本実施例におけるフレームのデータ構造例を示す図である。 図3は、本実施例に係るスイッチの構成を示すブロック図である。 図4は、本実施例におけるMAC学習テーブルに記憶される情報の一例を示す図である。 図5は、本実施例における学習管理テーブルに記憶される情報の一例を示す図である。 図6は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その1)を説明するための図である。 図7は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その2)を説明するための図である。 図8は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その3)を説明するための図である。 図9は、本実施例におけるエージング制御部による処理の一例(その1)を説明するための図である。 図10は、本実施例におけるエージング制御部による処理の一例(その2)を説明するための図である。 図11は、本実施例に係るスイッチによるアドレス学習処理の流れを示すフローチャートである。 図12は、本実施例に係るスイッチによるエージング処理の流れを示すフローチャートである。 図13は、アドレス学習プログラムを実行するコンピュータの例を示す図である。
以下に、本願の開示する通信装置、アドレス学習方法及びアドレス学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。
図1は、本実施例に係るスイッチを含むネットワークの構成例を示す図である。図1に示すスイッチ10は、L2スイッチ(レイヤ2スイッチ)、スイッチングハブ、L3スイッチ(レイヤ3スイッチ)、ルータ、スイッチング機能を有するサーバなど、受信したデータを宛先に中継する通信装置である。
スイッチ10は、ポート1を介して、MAC(Media Access Control)アドレスAを有するサーバなどの端末Aに接続される。スイッチ10は、ポート2とポート2に接続されるネットワークN1とを介して、MACアドレスBを有する端末Bと、MACアドレスFを有する端末Fとに接続される。スイッチ10は、ポート3とポート3に接続されるネットワークN2とを介して、MACアドレスCを有する端末Cと、MACアドレスEを有する端末Eとに接続される。スイッチ10は、ポート4を介して、MACアドレスDを有する端末Dに接続される。なお、端末A〜端末Bは、サーバに限定されるものではなく、例えばスイッチなどのデータ中継装置やコンピュータなどでもよい。
そして、スイッチ10は、ポート1を介して接続された端末Aと、ポート4を介して接続された端末Dとにより仮想的なグループであるVLAN(Virtual Local Area Network)#1を形成する。スイッチ10は、ポート2を介して接続されたネットワークN1、端末B及び端末FによりVLAN#2を形成する。スイッチ10は、ポート3を介して接続されたネットワークN2、端末C及び端末EによりVLAN#3を形成する。VLAN#1〜VLAN#3を識別するVLAN識別子をそれぞれ「#1」〜「#3」とする。VLAN#1〜VLAN#3には、それぞれ、予め定められた優先度が設定される。例えば、VLAN#1〜VLAN#3には、それぞれ、優先度「高」、「中」及び「低」が設定される。
このようなスイッチ10は、ポートを識別するポート識別子と、ポートを介して接続された端末のアドレスと、端末の属するVLANを識別するVLAN識別子との対応関係を記憶する第1記憶部を有する。また、スイッチ10は、第1記憶部に現に記憶される対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とをVLAN識別子に対応付けて記憶する第2記憶部を有する。また、スイッチ10は、フレームが受信された場合に、該フレームに含まれるVLAN識別子である受信VLAN識別子と他のVLAN識別子とに対応付けて第2記憶部に記憶される学習数の総数が最大学習数の総数に達したか否かを判定する判定部を有する。そして、スイッチ10は、学習数の総数が最大学習数の総数に達した場合に、受信VLAN識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN識別子を第2記憶部から特定する。その後、スイッチ10は、特定した他のVLAN識別子を含む対応関係に替えて、フレームを受信したポートのポート識別子と、フレームの送信元のアドレスと、受信VLAN識別子との対応関係を第1記憶部に格納する。
このように、実施例1に係るスイッチ10は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していると、当該フレーム中の受信VLAN識別子より低優先度で、かつ、最小学習数を満たす他のVLAN識別子を特定する。そして、実施例1に係るスイッチ10は、特定した他のVLAN識別子を含む対応関係に、当該フレームの送信元のアドレスと、当該フレームを受信したポートと、受信VLAN識別子との対応関係を上書き学習する。
例えば、スイッチ10は、送信元アドレスをMACアドレスDとし、VLAN識別子をVLAN#1とするフレームをポート4から受信したとする。また、他のVLAN識別子であるVLAN#3に対応付けられた学習数が最少学習数を満たしているものとする。この場合、スイッチ10は、フレーム中のVLAN#1より低優先度で、かつ、最小学習数を満たすVLAN#3を特定する。そして、スイッチ10は、特定したVLAN#3に係る対応関係に替えて、フレームの送信元のMACアドレスDと、フレームを受信したポート4と、フレーム中のVLAN#1との対応関係を学習する。
したがって、スイッチ10は、アドレスの学習数の総数が最大数に達した状態で高優先度のVLANからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のVLANの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。つまり、スイッチ10は、最小学習数を満たさないVLANの情報が削除されることを防止しつつ、相対的に高優先度のVLANからのフレーム中の情報を学習することができる。この結果、スイッチ10は、VLAN単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる。
次に、本実施例におけるフレームのデータ構造例について説明する。図2は、本実施例におけるフレームのデータ構造例を示す図である。図2に示すフレームは、例えばMACフレームである。図2に示すフレームは、DA(Destination Address)、SA(Source Address)、VLAN、Type、Payload及びFCS(Frame Check Sequence)を含む。DAは、フレームの宛先のMACアドレスである。SAは、フレームの送信元のMACアドレスである。VLANは、フレームの送信元の属するVLANを識別するVLAN識別子である。Typeは、Payloadに格納されるデータの種別である。Payloadは、データが格納される領域である。FCSは、フレームの誤りを検出するための符号である。
次に、図1に示したスイッチ10の構成について説明する。図3は、本実施例に係るスイッチの構成を示すブロック図である。図3に示すように、スイッチ10は、通信制御I/F(Interface)部11、MAC学習テーブル12、学習管理テーブル13、学習数判定部14、制御部15及びスイッチング制御部16を有する。
なお、学習数判定部14、制御部15及びスイッチング制御部16等は、集積回路や電子回路である。また、MAC学習テーブル12及び学習管理テーブル13等は、半導体素子やハードディスクなどの記憶装置である。
通信制御I/F部11は、ポート番号1〜4各々が割り当てられたポート1〜4を有し、外部の端末等との間の通信を制御するインタフェースである。通信制御I/F部11は、所定のポートでフレームを受信し、受信したフレームを後述のフレーム解析部15aに出力する。通信制御I/F部11は、所定のポートを介して、スイッチング制御部16から出力されたフレームを宛先に送信する。
MAC学習テーブル12は、ポートを識別するポート番号と、該ポートを介して接続された端末のMACアドレスと、該端末の属するVLANを識別するVLAN識別子との対応関係を記憶する。MAC学習テーブル12は、第1記憶部の一例である。図4は、本実施例におけるMAC学習テーブルに記憶される情報の一例を示す図である。図4に示すMAC学習テーブル12は、学習されるたびに情報をエントリに登録する。MAC学習テーブル12は、エントリ、V、ポート番号、MACアドレス、VLAN及びエージング値といった項目を対応付けて記憶する。
エントリは、ポート番号とMACアドレスとVLAN識別子との対応関係(以下適宜「対応関係」という)を格納するMAC学習テーブル12のエントリを識別する番号である。本実施例では、MAC学習テーブル12のエントリは、全部で19000個存在するものとする。Vは、エントリが学習状態であるか又は空き状態であるか否かを示すフラグである。すなわち、Vが1である場合に、エントリに対応関係が学習されていることを示し、Vが0である場合に、エントリに対応関係が学習されていないことを示す。ポートは、通信制御I/F部11が有するポート1〜4を識別するポート番号である。MACアドレスは、ポート番号を有するポートを介して接続された端末のMACアドレスである。VLANは、MACアドレスを有する端末の属するVLANを識別するVLAN識別子である。エージング値は、ポート番号とMACアドレスとVLAN識別子との対応関係がMAC学習テーブル12に格納されてからの経過時間を示す値である。
図4のエントリ「1」は、VLAN#1に属する、MACアドレス「A」を有する端末Aが、ポート番号「1」を有するポート1を介して接続され、かつ、エントリ「1」の対応関係の経過時間が「2」であることを示す。また、エントリ「100」は、VLAN#2に属する、MACアドレス「B」を有する端末Bが、ポート番号「2」を有するポート2を介して接続され、かつ、エントリ「100」の対応関係の経過時間が「4」であることを示す。また、エントリ「101」は、VLAN#3に属する、MACアドレス「E」を有する端末Eが、ポート番号「3」を有するポート3を介して接続され、かつ、エントリ「101」の対応関係の経過時間が「3」であることを示す。また、エントリ「19000」は、VLAN#3に属する、MACアドレス「C」を有する端末Cが、ポート番号「3」を有するポート3を介して接続され、かつ、エントリ「19000」の対応関係の経過時間が「2」であることを示す。
学習管理テーブル13は、MAC学習テーブル12に現に記憶される対応関係の数を示す学習数と、学習数の最小値を示す最小学習数と、学習数の最大値を示す最大学習数と、予め定められた優先度とをVLAN識別子に対応付けて記憶する。学習管理テーブル13は、第2記憶部の一例である。図5は、本実施例における学習管理テーブルに記憶される情報の一例を示す図である。図5に示す学習管理テーブル13は、VLAN、学習数、最小学習数、最大学習数、優先度及びエージングタイマ値といった項目を対応付けて記憶する。
VLANは、MAC学習テーブル12に記憶される対応関係に含まれるVLAN識別子に対応する。学習数は、MAC学習テーブル12に現に記憶される対応関係の数である。なお、学習数のALLは、VLAN毎の学習数の総数を示す。最小学習数は、学習数の最小値である。最大学習数は、学習数の最大値である。なお、最大学習数のALLは、VLAN毎の最大学習数の総数を示し、学習数のALLが最大学習数のALLに達した場合に、MAC学習テーブル12の全エントリ(19000個のエントリ)に対応関係が学習されたことを示す。優先度は、VLAN毎に予め定められた優先度である。優先度=「高」は、VLANの優先度が最も高いことを示し、優先度=「低」は、VLANの優先度が最も低いことを示し、優先度=「中」は、VLANの優先度が「高」と「低」との中間であることを示す。エージングタイマ値は、VLAN識別子を含む対応関係がMAC学習テーブル12に保持される保持期限を示す値である。MAC学習テーブル12に記憶される対応関係のうちエージング値がエージングタイマ値に達した対応関係が削除される。
例えば、図5の1行目は、VLAN識別子としてVLAN#1を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「6000」、「5000」、「8000」、「高」及び「10」であることを示す。図5の2行目は、VLAN識別子としてVLAN#2を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「6000」、「4000」、「6000」、「中」及び「10」であることを示す。図5の3行目は、VLAN識別子としてVLAN#3を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「7000」、「3000」、「5000」、「低」及び「5」であることを示す。なお、図5の例では、学習数の総数ALL=19000が最大学習数の総数ALL=19000に達している状態を示す。この状態は、MAC学習テーブル12の全エントリ(19000個のエントリ)に対応関係が学習されたこと、換言すれば、MAC学習テーブル12の全エントリが枯渇したことを示す。
図3の説明に戻る。学習数判定部14は、フレームが受信された場合に、学習管理テーブル13を参照して、受信されたフレームに含まれるVLAN識別子である受信VLAN識別子と他のVLAN識別子とに対応付けられる学習数の総数が最大学習数の総数に達したか否かを判定する。例えば、ポート4が、送信元アドレスをMACアドレスDとしVLAN識別子をVLAN#1とするフレームを受信し、後述のフレーム解析部15aが、フレームから受信VLAN識別子として抽出したVLAN#1等を学習数判定部14に出力した場合を想定する。
この場合、学習数判定部14は、学習管理テーブル13を参照して、VLAN#1と他のVLAN#2,#3とに対応付けられる学習数の総数ALL=19000が最大学習数の総数ALL=19000に達していると判定する。すると、学習数判定部14は、MAC学習テーブル12の全エントリが枯渇したことを示す判定結果を後述のVLAN特定部15bに出力する。
また、学習数判定部14は、受信VLAN識別子と他のVLAN識別子とに対応付けられる学習数の総数が最大学習数の総数に達していない場合には、以下の処理を行う。すなわち、学習数判定部14は、MAC学習テーブル12に空きエントリがあることを示す判定結果を、VLAN特定部15b及び後述の格納制御部15cに出力する。
制御部15は、学習数判定部14による判定結果を基にしてアドレス学習を実行する制御部である。制御部15は、フレーム解析部15a、VLAN特定部15b、格納制御部15c及びエージング制御部15dを有する。制御部15は、制御プログラムや各種の処理手順などを規定したプログラム及び各種データを格納する内部メモリを有してもよい。
フレーム解析部15aは、フレームが受信された場合に、フレームの送信元アドレスと、フレーム中の受信VLAN識別子と、フレームを受信したポートのポート番号を解析し、解析した情報及びフレームを各処理部に出力する。例えば、フレーム解析部15aは、送信元アドレスをMACアドレスDとし、VLAN識別子をVLAN#1とするフレームをポート4から受信した場合、送信元アドレスとしてMACアドレスDを、受信VLAN識別子としてVLAN#1を解析する。そして、フレーム解析部15aは、フレームを受信したポート4を解析する。そして、フレーム解析部15aは、解析したMACアドレスD、VLAN#1及びポート4と、受信したフレームとをVLAN特定部15bに出力する。なお、フレーム解析部15aは、受信VLAN識別子として解析したVLAN#1を学習数判定部14に出力する。
VLAN特定部15bは、MAC学習テーブル12の学習数の総数が最大学習数の総数に達した場合に、受信VLAN識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN識別子を学習管理テーブル13から特定する。詳細には、VLAN特定部15bは、MAC学習テーブル12の学習数の総数が最大学習数の総数に達した場合に、受信VLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最小学習数を満たすか否かを判定する。そして、VLAN特定部15bは、満たすと判定されたならば、受信VLAN識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN識別子を学習管理テーブル13から特定し特定した他のVLAN識別子の情報を格納制御部15cに出力する。
例えば、学習数の総数ALL=19000が最大学習数の総数ALL=19000に達していると判定した学習数判定部14が、MAC学習テーブル12の全エントリが枯渇したことを示す判定結果をVLAN特定部15bに出力したとする。また、例えば、フレーム解析部15aが、受信フレームから解析したMACアドレスD、VLAN#1及びポート4をVLAN特定部15bに出力したとする。この場合、VLAN特定部15bは、学習管理テーブル13を参照して、受信VLAN識別子としてのVLAN#1に対応付けられた学習数「6000」が最小学習数「5000」を満たすと判定する。すると、VLAN特定部15bは、VLAN#1よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN#2,#3を特定する。その後、VLAN特定部15bは、特定した他のVLAN#2,#3のうち最も優先度が低い他のVLAN#3と、解析されたMACアドレスD、VLAN#1及びポート4等の情報とを格納制御部15cに出力する。
また、VLAN特定部15bは、受信VLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最小学習数を満たさないと判定されたならば、学習数が最小学習数を満たす他のVLAN識別子を学習管理テーブル13から特定する。そして、VLAN特定部15bは、特定した他のVLAN識別子と、フレーム解析部15aから受信したフレームの送信元アドレス等の情報とを格納制御部15cに出力する。
また、VLAN特定部15bは、受信VLAN識別子よりも優先度が低い他のVLAN識別子が学習管理テーブル13から特定されない場合、又は、学習数が最小学習数を満たす他のVLAN識別子が学習管理テーブル13から特定されない場合、以下の処理を行う。すなわち、VLAN特定部15bは、フレーム解析部15aから受信したフレームをそのまま格納制御部15cに転送する。
また、VLAN特定部15bは、MAC学習テーブル12の学習数の総数が最大学習数の総数に達していない場合には、フレーム解析部15aから受信したフレームの送信元アドレス等の情報を格納制御部15cに出力する。例えば、VLAN特定部15bは、MAC学習テーブル12に空きエントリがあることを示す判定結果を学習数判定部14から受信すると、フレーム解析部15aから受信したフレームの送信元アドレス等の情報をそのまま格納制御部15cに出力する。
格納制御部15cは、VLAN特定部15bが特定した他のVLAN識別子を含む対応関係に替えて、フレームを受信したポートのポート番号と、フレームの送信元アドレスと、受信VLAN識別子との対応関係をMAC学習テーブル12に格納する。一例として、格納制御部15cが、受信VLAN識別子としてのVLAN#1よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN#3と、MACアドレスD、VLAN#1及びポート4等の情報とをVLAN特定部15bから受信したとする。
この場合、格納制御部15cは、VLAN特定部15bが特定した他のVLAN#3を含む対応関係、すなわち、ポート番号3、MACアドレスE及びVLAN#3の対応関係
をMAC学習テーブル12から削除する。ここで、格納制御部15cは、他のVLAN#3を含む対応関係がMAC学習テーブル12に複数存在する場合には、他のVLAN#3を含む複数の対応関係のうち、最もエージング値が小さい対応関係を削除すればよい。そして、格納制御部15cは、MAC学習テーブル12からの対応関係の削除により得られた空きエントリに、ポート4と、MACアドレスDと、VLAN#1との対応関係を格納する。この結果、格納制御部15cは、アドレスの総数が最大数に達した状態で高優先度のVLANからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のVLANの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。
別例として、格納制御部15cが、学習数が最小学習数を満たす他のVLAN識別子と、送信元アドレス等の情報とをVLAN特定部15bから受信したとする。この場合、格納制御部15cは、VLAN特定部15bが特定した他のVLAN識別子を含む対応関係をMAC学習テーブル12から削除する。ここで、格納制御部15cは、他のVLAN識別子を含む対応関係がMAC学習テーブル12に複数存在する場合には、他のVLAN識別子を含む複数の対応関係のうち、最もエージング値が小さい対応関係を削除すればよい。そして、格納制御部15cは、MAC学習テーブル12からの対応関係の削除により得られた空きエントリに、送信元アドレス等の情報を格納する。この結果、格納制御部15cは、アドレスの総数が最大数に達した状態でフレームを受信し、受信VLAN識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のVLANの情報に送信元アドレス等の情報を上書き学習することができる。
また、格納制御部15cは、VLAN特定部15bにより他のVLAN識別子が学習管理テーブル13から特定されない場合には、VLAN特定部15bから受信した送信元アドレス等の情報を学習することなく、受信した情報をスイッチング制御部16に出力する。
また、格納制御部15cは、MAC学習テーブル12の学習数の総数が最大学習数の総数に達していない場合、すなわち、MAC学習テーブル12に空きエントリがあることを示す判定結果を学習数判定部14から受信した場合には、以下の処理を行う。すなわち、格納制御部15cは、VLAN特定部15bから受信した、ポート番号、送信元アドレス及び受信VLAN識別子を対応付けてMAC学習テーブル12の空きエントリに格納する。
なお、格納制御部15cは、VLAN特定部15bから受信した送信元アドレス等の情報をMAC学習テーブル12に格納すると、受信した情報をスイッチング制御部16に出力する。
ここで、VLAN特定部15b及び格納制御部15cによる処理の一例を説明する。図6は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その1)を説明するための図である。図6では、アドレスの総数が最大数に達した状態で高優先度のVLANからフレームが受信された場合に、低優先度でかつ最小学習数を満たす他のVLANの情報に、当該フレームの送信元アドレス等の情報が上書き学習される例を説明する。
例えば、MAC学習テーブル12が、図6左下図に示すように、ポート番号3、MACアドレスE及びVLAN#3の対応関係をエントリ「101」に記憶しているとする。また、学習管理テーブル13が、図6左上図に示すように、学習数の総数ALL=19000並びに最大学習数の総数ALL=19000を記憶しているとする。また、学習管理テーブル13を参照して、学習数の総数ALL=19000が最大学習数の総数ALL=19000に達していると判定した学習数判定部14が、MAC学習テーブル12の全エントリが枯渇したことを示す判定結果をVLAN特定部15bに出力したとする。また、フレーム解析部15aが、送信元アドレスをMACアドレスDとし、VLAN識別子をVLAN#1とするフレームをポート4から受信した場合に、解析したMACアドレスD、VLAN#1及びポート4をVLAN特定部15bに出力したとする。この場合、VLAN特定部15bは、学習管理テーブル13を参照して、受信VLAN識別子としてのVLAN#1に対応付けられた学習数「6000」が最小学習数「5000」を満たすと判定する。すると、VLAN特定部15bは、VLAN#1よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN#2,#3を特定する。その後、VLAN特定部15bは、特定した他のVLAN#2,#3のうち最も優先度が低い他のVLAN#3と、解析されたMACアドレスD、VLAN#1及びポート4等の情報とを格納制御部15cに出力する。
続いて、格納制御部15cは、受信VLAN識別子としてのVLAN#1よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN#3と、MACアドレスD、VLAN#1及びポート4等の情報とをVLAN特定部15bから受信する。そして、格納制御部15cは、VLAN特定部15bが特定した他のVLAN#3を含む対応関係、すなわち、ポート番号3、MACアドレスE及びVLAN#3の対応関係をMAC学習テーブル12のエントリ「101」から削除する。このとき、格納制御部15cは、他のVLAN#3を含む対応関係がMAC学習テーブル12に複数存在するので、他のVLAN#3を含む複数の対応関係のうち最もエージング値が大きい対応関係を削除する。そして、格納制御部15cは、図6右下図に示すように、MAC学習テーブル12からの対応関係の削除により得られた空きエントリ「101」に、ポート4と、MACアドレスDと、VLAN#1との対応関係を格納する。さらに、格納制御部15cは、ポート4と、MACアドレスDと、VLAN#1との対応関係の経過時間の初期値としてエージング値=「0」を格納する。この結果、格納制御部15cは、アドレスの総数が最大数に達した状態で高優先度のVLANからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のVLANの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。
続いて、格納制御部15cは、図6右上図に示すように、学習管理テーブル13の学習数を更新する。すなわち、格納制御部15cは、エントリ「101」から削除した対応関係に含まれる他のVLAN#3の学習数をデクリメントし、かつ、空きエントリ「101」に新たに格納した対応関係に含まれるVLAN#1の学習数をインクリメントする。
図7は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その2)を説明するための図である。図7では、アドレスの総数が最大数に達した状態でフレームが受信され、かつ、受信VLAN識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のVLANの情報に送信元アドレス等の情報が上書き学習される例を説明する。
例えば、MAC学習テーブル12が、図7左下図に示すように、ポート番号2、MACアドレスF及びVLAN#2の対応関係をエントリ「101」に記憶しているとする。また、学習管理テーブル13が、図7左上図に示すように、学習数の総数ALL=19000並びに最大学習数の総数ALL=19000を記憶しているとする。また、学習管理テーブル13を参照して、学習数の総数ALL=19000が最大学習数の総数ALL=19000に達していると判定した学習数判定部14が、MAC学習テーブル12の全エントリが枯渇したことを示す判定結果をVLAN特定部15bに出力したとする。また、フレーム解析部15aが、送信元アドレスをMACアドレスEとし、VLAN識別子をVLAN#3とするフレームをポート3から受信した場合に、フレームから解析したMACアドレスE、VLAN#3及びポート3をVLAN特定部15bに出力したとする。この場合、VLAN特定部15bは、学習管理テーブル13を参照して、受信VLAN識別子としてのVLAN#3に対応付けられた学習数「2000」が最小学習数「3000」を満たさないと判定する。すると、VLAN特定部15bは、学習数が最小学習数を満たす他のVLAN#1,#2を特定する。その後、VLAN特定部15bは、特定した他のVLAN#1,#2のうち最も優先度が低い他のVLAN#2と、解析されたMACアドレスE、VLAN#3及びポート3等の情報とを格納制御部15cに出力する。
続いて、格納制御部15cは、学習数が最小学習数を満たす他のVLAN#2と、MACアドレスE、VLAN#3及びポート3等の情報とをVLAN特定部15bから受信する。そして、格納制御部15cは、VLAN特定部15bが特定した他のVLAN#2を含む対応関係、すなわち、ポート番号2、MACアドレスF及びVLAN#2の対応関係をMAC学習テーブル12のエントリ「101」から削除する。このとき、格納制御部15cは、他のVLAN#2を含む対応関係がMAC学習テーブル12に複数存在するので、他のVLAN#2を含む複数の対応関係のうち最もエージング値が大きい対応関係を削除する。そして、格納制御部15cは、図7右下図に示すように、MAC学習テーブル12からの対応関係の削除により得られた空きエントリ「101」に、ポート3と、MACアドレスEと、VLAN#3との対応関係を格納する。この結果、格納制御部15cは、アドレスの総数が最大数に達した状態でフレームを受信し、受信VLAN識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のVLANの情報に送信元アドレス等の情報を上書き学習することができる。
続いて、格納制御部15cは、図7右上図に示すように、学習管理テーブル13の学習数を更新する。すなわち、格納制御部15cは、エントリ「101」から削除した対応関係に含まれる他のVLAN#2の学習数をデクリメントし、かつ、空きエントリ「101」に新たに格納した対応関係に含まれるVLAN#3の学習数をインクリメントする。
図8は、本実施例におけるVLAN特定部及び格納制御部による処理の一例(その3)を説明するための図である。図8では、アドレスの総数が最大数に達していない状態でフレームが受信された場合に、受信されたフレームの送信元アドレス等の情報が学習される例を説明する。
例えば、MAC学習テーブル12が、図8左下図に示すように、エントリ「101」に対応関係を記憶していないとする。また、学習管理テーブル13が、図8左上図に示すように、学習数の総数ALL=15000並びに最大学習数の総数ALL=19000を記憶しているとする。また、学習管理テーブル13を参照して、学習数の総数ALL=15000が最大学習数の総数ALL=19000に達していないと判定した学習数判定部14が、MAC学習テーブル12に空きエントリがあることを示す判定結果をVLAN特定部15bに出力したとする。また、フレーム解析部15aが、送信元アドレスをMACアドレスDとし、VLAN識別子をVLAN#1とするフレームをポート3から受信した場合に、フレームから解析したMACアドレスD、VLAN#1及びポート3をVLAN特定部15bに出力したとする。この場合、VLAN特定部15bは、MAC学習テーブル12に空きエントリがあることを示す判定結果を学習数判定部14から受信する。すると、VLAN特定部15bは、フレーム解析部15aから受信したフレームの送信元アドレスD等の情報をそのまま格納制御部15cに出力する。
続いて、格納制御部15cは、MACアドレスD、VLAN#1及びポート3等の情報をVLAN特定部15bから受信する。そして、格納制御部15cは、MAC学習テーブル12に空きエントリがあることを示す判定結果を学習数判定部14から受信する。すると、格納制御部15cは、図8右下図に示すように、ポート3と、MACアドレスDと、VLAN#1との対応関係を、MAC学習テーブル12の空きエントリであるエントリ「101」に格納する。この結果、格納制御部15cは、アドレスの総数が最大数に達していない状態でフレームが受信された場合に、受信されたフレームの送信元アドレス等の情報を学習することができる。
続いて、格納制御部15cは、図8右上図に示すように、学習管理テーブル13の学習数を更新する。すなわち、格納制御部15cは、空きエントリ「101」に新たに格納した対応関係に含まれるVLAN#1の学習数と、学習数の総数ALLとをインクリメントする。
図3の説明に戻る。エージング制御部15dは、所定周期が到来する毎に、MAC学習テーブル12に格納された対応関係に係るエージング値が、当該対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値に達したか否かを判定する。エージング制御部15dは、対応関係に係るエージング値が当該対応関係に含まれるVLAN識別子に対応付けられたエージングタイマ値に達した対応関係が存在する場合に、当該対応関係をMAC学習テーブル12から削除する。その後、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶される学習数が最小学習数を満たすか否かを判定する。エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最小学習数を満たさないと判定されたならば、当該VLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を延長する。
また、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最小学習数を満たすと判定されたならば、削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最大学習数を超えたか否かを判定する。そして、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最大学習数を超えたと判定されたならば、当該VLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を短縮する。
なお、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最大学習数を超えていないと判定されたならば、学習管理テーブル13に記憶されるエージングタイマ値を維持する。
ここで、エージング制御部15dによる処理の一例を説明する。図9は、本実施例におけるエージング制御部による処理の一例(その1)を説明するための図である。図9では、学習管理テーブル13に記憶されるエージングタイマ値が延長される例を説明する。
例えば、MAC学習テーブル12が、図9左下図に示すように、ポート番号1、MACアドレスA及びVLAN#1の対応関係と、当該対応関係に係るエージング値=10とをエントリ「1」に記憶しているとする。また、学習管理テーブル13が、図9左上図に示すように、VLAN#1に対応付けて、エージングタイマ値=10を記憶しているとする。この場合、エージング制御部15dは、MAC学習テーブル12を参照して、VLAN#1を含む対応関係に係るエージング値=10が当該対応関係に含まれるVLAN#1に対応付けて学習管理テーブル13に記憶されるエージングタイマ値=10に達したと判定する。すると、エージング制御部15dは、図9右下図に示すように、VLAN#1を含む対応関係をMAC学習テーブル12から削除する。その後、エージング制御部15dは、削除された対応関係に含まれるVLAN#1に対応付けて学習管理テーブル13に記憶される学習数「4000」が最小学習数「5000」を満たさないと判定する。すると、エージング制御部15dは、図9右上図に示すように、VLAN#1に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を「10」から「20」に延長する。この結果、エージング制御部15dは、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の不足分に応じてアドレスの保持期限を動的に延長することができる。
図10は、本実施例におけるエージング制御部による処理の一例(その2)を説明するための図である。図10では、学習管理テーブル13に記憶されるエージングタイマ値が短縮される例を説明する。
例えば、MAC学習テーブル12が、図10左下図に示すように、ポート番号1、MACアドレスA及びVLAN#1の対応関係と、当該対応関係に係るエージング値=10とをエントリ「1」に記憶しているとする。また、学習管理テーブル13が、図10左上図に示すように、VLAN#1に対応付けて、エージングタイマ値=10を記憶しているとする。この場合、エージング制御部15dは、MAC学習テーブル12を参照して、VLAN#1を含む対応関係に係るエージング値=10が当該対応関係に含まれるVLAN#1に対応付けて学習管理テーブル13に記憶されるエージングタイマ値=10に達したと判定する。すると、エージング制御部15dは、図10右下図に示すように、VLAN#1を含む対応関係をMAC学習テーブル12から削除する。その後、エージング制御部15dは、削除された対応関係に含まれるVLAN#1に対応付けて学習管理テーブル13に記憶される学習数「9000」が最大学習数「8000」を超えたと判定する。すると、エージング制御部15dは、図10右上図に示すように、VLAN#1に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を「10」から「5」に短縮する。この結果、エージング制御部15dは、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の余剰分に応じてアドレスの保持期限を動的に短縮することができる。
図3の説明に戻る。スイッチング制御部16は、フレームのスイッチング処理を実行して、受信されたフレームを宛先に転送する。詳細には、スイッチング制御部16は、格納制御部15cから受信されたフレームの宛先アドレスが学習済みである場合には、学習済みのポートからフレームを送信する。また、スイッチング制御部16は、格納制御部15cから受信されたフレームの宛先アドレスが未学習である場合には、フレームを破棄又はフラッディングする。
例えば、VLAN特定部15bにより他のVLAN識別子が学習管理テーブル13から特定されない場合に、格納制御部15cが、受信した送信元アドレス等の情報をMAC学習テーブル12に学習することなくスイッチング制御部16に出力したとする。この場合、スイッチング制御部16は、MAC学習テーブル12を参照して、フレームの宛先アドレスが記憶されていないので、フレームの宛先アドレスが未学習であると判定し、フレームを破棄又はフラッディングする。なお、スイッチング制御部16は、フレームをフラッディングする際には、フレームを受信した受信ポート以外の全てのポートからフレームを送信する。
次に、本実施例に係るスイッチ10によるアドレス学習処理の流れを説明する。図11は、本実施例に係るスイッチによるアドレス学習処理の流れを示すフローチャートである。図11に示すように、スイッチ10のフレーム解析部15aは、フレームが受信されていない場合(ステップS101否定)、待機する。
フレーム解析部15aは、フレームが受信された場合(ステップS101肯定)、当該フレームの送信元アドレスと、受信VLAN識別子と、フレームを受信した受信ポートのポート番号を解析する(ステップS102)。フレーム解析部15aは、解析した情報及びフレームをVLAN特定部15b及び学習数判定部14等の各処理部に出力する。
学習数判定部14は、学習管理テーブル13を参照して、受信されたフレームに含まれる受信VLAN識別子と他のVLAN識別子とに対応付けられる学習数の総数が最大学習数の総数に達したか否かを判定する(ステップS103)。
VLAN特定部15bは、学習数の総数が最大学習数の総数に達した場合に(ステップS103肯定)、受信VLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最小学習数を満たすか否かを判定する(ステップS104)。VLAN特定部15bは、満たすと判定された場合(ステップS104肯定)、受信VLAN識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のVLAN識別子を学習管理テーブル13から特定する(ステップS105)。
格納制御部15cは、受信VLAN識別子よりも優先度が低くかつ学習数が最小学習数を満たす他のVLAN識別子が特定された場合(ステップS106肯定)、当該他のVLAN識別子を含む対応関係をMAC学習テーブル12から削除する(ステップS107)。格納制御部15cは、対応関係の削除により得られた空きエントリに、受信ポートのポート番号と、送信元アドレスと、受信VLAN識別子との対応関係を格納し(ステップS108)、処理をステップS114に進める。
格納制御部15cは、受信VLAN識別子よりも優先度が低くかつ学習数が最小学習数を満たす他のVLAN識別子が特定されなかった場合(ステップS106否定)、ステップS107及びS108を行うことなく、処理をステップS114に進める。
一方、VLAN特定部15bは、受信VLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最小学習数を満たさないと判定された場合(ステップS104否定)、以下の処理を行う。すなわち、VLAN特定部15bは、学習数が最小学習数を満たす他のVLAN識別子を学習管理テーブル13から特定する(ステップS109)。
格納制御部15cは、学習数が最小学習数を満たす他のVLAN識別子が特定された場合(ステップS110肯定)、当該他のVLAN識別子を含む対応関係をMAC学習テーブル12から削除する(ステップS111)。格納制御部15cは、対応関係の削除により得られた空きエントリに、受信ポートのポート番号と、送信元アドレスと、受信VLAN識別子との対応関係を格納し(ステップS112)、処理をステップS114に進める。
格納制御部15cは、学習数が最小学習数を満たす他のVLAN識別子が特定されなかった場合(ステップS110否定)、ステップS111及びS112を行うことなく、処理をステップS114に進める。
一方、VLAN特定部15bは、受信VLAN識別子と他のVLAN識別子とに対応付けられる学習数の総数が最大学習数の総数に達していない場合(ステップS103否定)、受信したフレームの送信元アドレス等の情報を格納制御部15cに出力する。そして、格納制御部15cは、受信ポートのポート番号と、送信元アドレスと、受信VLAN識別子との対応関係をMAC学習テーブル12の空きエントリに格納し(ステップS113)、処理をステップS114に進める。
その後、スイッチング制御部16は、スイッチング処理を実行して、フレームを宛先に送信する(ステップS114)。つまり、スイッチング制御部16は、格納制御部15cから受信されたフレームの宛先アドレスが学習済みである場合には、MAC学習テーブル12から学習済みのポートを特定し、特定したポートからフレームを送信する。また、スイッチング制御部16は、格納制御部15cから受信されたフレームの宛先アドレスが未学習である場合には、フレームを破棄又はフラッディングする。
次に、本実施例に係るスイッチ10によるエージング処理の流れを説明する。図12は、本実施例に係るスイッチによるエージング処理の流れを示すフローチャートである。図12に示すように、スイッチ10のエージング制御部15dは、所定周期が到来していない場合(ステップS201否定)、待機する。
エージング制御部15dは、所定周期が到来した場合(ステップS201肯定)、MAC学習テーブル12に記憶される全ての対応関係に係るエージング値をカウントアップする(ステップS202)。そして、エージング制御部15dは、MAC学習テーブル12に格納された対応関係に係るエージング値が、当該対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値に達したか否かを判定する。エージング制御部15dは、対応関係に係るエージング値が当該対応関係に含まれるVLAN識別子に対応付けられたエージングタイマ値に達した対応関係が存在しない場合(ステップS203否定)、処理を終了する。
エージング制御部15dは、対応関係に係るエージング値が当該対応関係に含まれるVLAN識別子に対応付けられたエージングタイマ値に達した対応関係が存在する場合(ステップS203肯定)、以下の処理を行う。すなわち、エージング制御部15dは、エージング値がエージングタイマ値に達した対応関係をMAC学習テーブル12から削除する(ステップS204)。
その後、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶される学習数が最小学習数を満たすか否かを判定する(ステップS205)。エージング制御部15dは、満たさないと判定された場合(ステップS205肯定)、削除された対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を延長する(ステップS206)。
一方、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶される学習数が最小学習数を満たすと判定された場合(ステップS205否定)、以下の処理を行う。すなわち、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最大学習数を超えたか否かを判定する(ステップS207)。
エージング制御部15dは、超えたと判定された場合(ステップS207肯定)、削除された対応関係に含まれるVLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を短縮する(ステップS208)。
一方、エージング制御部15dは、削除された対応関係に含まれるVLAN識別子に対応づけて学習管理テーブル13に記憶される学習数が最大学習数を超えていない場合(ステップS207否定)、ステップS208を行うことなく、処理を終了する。
本実施例によれば、スイッチ10は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していると、当該フレーム中の受信VLAN識別子より低優先度で、かつ、最小学習数を満たす他のVLAN識別子を特定する。そして、実施例1に係るスイッチ10は、特定した他のVLAN識別子を含む対応関係に、当該フレームを受信したポートのポート番号と、当該フレームの送信元のアドレスと、受信VLAN識別子との対応関係を上書き学習する。したがって、スイッチ10は、最小学習数を満たさないVLANの情報が削除されることを防止しつつ、相対的に高優先度のVLANからのフレーム中の情報を学習することができる。この結果、スイッチ10は、VLAN単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる。
また、スイッチ10は、フレームの受信時に受信VLAN識別子に対応付けて学習管理テーブル13に記憶される学習数が最小学習数を満たさない場合に、最小学習数を満たす他のVLAN識別子を特定する。そして、スイッチ10は、特定した他のVLAN識別子を含む対応関係に換えて、フレームを受信したポートのポート番号と、当該フレームの送信元のアドレスと、受信VLAN識別子との対応関係を学習する。したがって、スイッチ10は、受信VLAN識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のVLANの情報に送信元アドレス等の情報を上書き学習することができる。この結果、スイッチ10は、フレームの送信元が所属するVLANの最低限の学習数を保障しつつ、該VLANよりも優先度が高くかつ最小学習数を満たす他のVLANの情報に優先して該VLANの情報を学習することができる。
また、スイッチ10は、フレームの受信時に受信VLAN識別子よりも優先度が低い他のVLAN識別子が特定されない場合、又は学習数が最小学習数を満たす他のVLAN識別子が特定されない場合、学習を行うことなく、フレームを破棄又はフラッディングする。この結果、スイッチ10は、受信VLAN識別子よりも優先度が高い他のVLANの情報や、最小学習数を満たさない他のVLANの情報が無暗に削除される事態を回避することができ、VLAN単位の最低限の学習数を安定的に保障することができる。
また、スイッチ10は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していない場合に、ポート番号と、送信元アドレスと、受信VLAN識別子との対応関係をMAC学習テーブル12の空きエントリに格納する。この結果、スイッチ10は、MAC学習テーブル12の空きエントリを有効活用することができるので、アドレス学習の効率を一層向上することができる。
また、スイッチ10は、エージング時に削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最小学習数を満たさない場合に、当該VLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を延長する。この結果、スイッチ10は、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の不足分に応じてアドレスの保持期限を動的に延長することができる。
また、スイッチ10は、エージング時に削除された対応関係に含まれるVLAN識別子に対応付けられた学習数が最大学習数を超えた場合に、当該VLAN識別子に対応付けて学習管理テーブル13に記憶されるエージングタイマ値を短縮する。この結果、スイッチ10は、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の余剰分に応じてアドレスの保持期限を動的に短縮することができる。
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
図13は、アドレス学習プログラムを実行するコンピュータの例を示す図である。図13に示すように、コンピュータ100は、CPU101、ROM(Read Only Memory)102、RAM(Random Access Memory)103及びHDD(Hard Disk Drive)104を有する。また、CPU101、ROM(Read Only Memory)102、RAM(Random Access Memory)103及びHDD(Hard Disk Drive)104はバス105を介して接続される。また、HDD104には、図3に示した各テーブルと同様の機能を有するMAC学習テーブル104a及び学習管理テーブル104bが設けられる。
ROM102は、アドレス学習プログラム102aを保持する。記録媒体の例としてROM102を例に挙げたが、HDD、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
CPU101は、アドレス学習プログラム102aを読み出して実行することで、図3で説明した各機能を実行するアドレス学習プロセス101aを動作させる。すなわち、アドレス学習プロセス101aは、制御部15と同様の機能を実行する。また、アドレス学習プロセス101aは、学習数判定部14やスイッチング制御部16と同様の機能も実行することもできる。このようにコンピュータ100は、ROM102からプログラムを読み出して実行することでアドレス学習方法を実行する通信装置として動作する。
10 スイッチ
11 通信制御I/F部
12 MAC学習テーブル
13 学習管理テーブル
14 学習数判定部
15 制御部
15a フレーム解析部
15b VLAN特定部
15c 格納制御部
15d エージング制御部
16 スイッチング制御部

Claims (9)

  1. ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第1記憶部と、
    前記第1記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第2記憶部と、
    フレームが受信された場合に、該フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けて前記第2記憶部に記憶される前記学習数の総数が前記最大学習数の総数に達したか否かを判定する判定部と、
    前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第1記憶部に格納する制御部と
    を備えたことを特徴とする通信装置。
  2. 前記制御部は、前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子に対応付けて前記第2記憶部に記憶される前記学習数が前記最小学習数を満たすか否かを判定し、満たすと判定されたならば、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第1記憶部に格納することを特徴とする請求項1に記載の通信装置。
  3. 前記制御部は、前記受信グループ識別子に対応付けて前記第2記憶部に記憶される前記学習数が前記最小学習数を満たさないと判定されたならば、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第1記憶部に格納することを特徴とする請求項2に記載の通信装置。
  4. 前記制御部は、前記受信グループ識別子よりも前記優先度が低い前記他のグループ識別子が前記第2記憶部から特定されない場合、又は、前記学習数が前記最小学習数を満たす前記他のグループ識別子が前記第2記憶部から特定されない場合には、前記第1記憶部への格納処理を行うことなく、前記フレームを破棄又はフラッディングすることを特徴とする請求項2又は3に記載の通信装置。
  5. 前記制御部は、前記学習数の総数が前記最大学習数の総数に達していない場合に、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第1記憶部の空き領域に格納することを特徴とする請求項1〜4のいずれか一つに記載の通信装置。
  6. 前記第1記憶部は、前記対応関係が前記第1記憶部に格納されてからの経過時間をさらに記憶し、
    前記第2記憶部は、前記グループ識別子に対応付けて、前記対応関係の保持期限をさらに記憶し、
    前記制御部は、さらに、前記第1記憶部に格納された前記対応関係に係る前記経過時間が、当該対応関係に含まれる前記グループ識別子に対応付けて前記第2記憶部に記憶される前記保持期限に達した場合に、当該対応関係を前記第1記憶部から削除するとともに、当該対応関係に含まれる前記グループ識別子に対応付けて前記第2記憶部に記憶される前記学習数が前記最小学習数を満たすか否かを判定し、満たさないと判定されたならば、当該保持期限を延長することを特徴とする請求項1〜5のいずれか一つに記載の通信装置。
  7. 前記制御部は、削除された前記対応関係に含まれる前記グループ識別子に対応付けて前記第2記憶部に記憶される前記学習数が前記最小学習数を満たすと判定されたならば、当該学習数が前記最大学習数を超えたか否かを判定し、超えたと判定されたならば、前記保持期限を短縮することを特徴とする請求項6に記載の通信装置。
  8. コンピュータによって実行されるアドレス学習方法であって、
    フレームが受信された場合に、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第1記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第2記憶部を参照して、前記フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けられる前記学習数の総数が前記最大学習数の総数に達したか否かを判定し、
    前記学習数の総数が前記最大学習数の総数に達したと判定された場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定し、
    特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第1記憶部に格納する
    ことを特徴とするアドレス学習方法。
  9. コンピュータに、
    フレームが受信された場合に、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第1記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第2記憶部を参照して、前記フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けられる前記学習数の総数が前記最大学習数の総数に達したか否かを判定し、
    前記学習数の総数が前記最大学習数の総数に達したと判定された場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第2記憶部から特定し、
    特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第1記憶部に格納する
    処理を実行させることを特徴とするアドレス学習プログラム。
JP2013091713A 2013-04-24 2013-04-24 通信装置、アドレス学習方法及びアドレス学習プログラム Expired - Fee Related JP6086020B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013091713A JP6086020B2 (ja) 2013-04-24 2013-04-24 通信装置、アドレス学習方法及びアドレス学習プログラム
US14/191,575 US9485167B2 (en) 2013-04-24 2014-02-27 Communication device and address learning method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013091713A JP6086020B2 (ja) 2013-04-24 2013-04-24 通信装置、アドレス学習方法及びアドレス学習プログラム

Publications (2)

Publication Number Publication Date
JP2014216793A true JP2014216793A (ja) 2014-11-17
JP6086020B2 JP6086020B2 (ja) 2017-03-01

Family

ID=51789224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013091713A Expired - Fee Related JP6086020B2 (ja) 2013-04-24 2013-04-24 通信装置、アドレス学習方法及びアドレス学習プログラム

Country Status (2)

Country Link
US (1) US9485167B2 (ja)
JP (1) JP6086020B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
US10862801B1 (en) * 2018-11-15 2020-12-08 Juniper Networks, Inc. Selective media access control (MAC) learning and purging to reduce flooding and replication in a network
US11522898B1 (en) * 2018-12-17 2022-12-06 Wells Fargo Bank, N.A. Autonomous configuration modeling and management
CN113114569B (zh) * 2020-01-10 2023-06-02 北京京东尚科信息技术有限公司 数据流卸载的方法和装置
TW202318903A (zh) * 2021-10-29 2023-05-01 財團法人資訊工業策進會 無線通訊裝置以及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120269A1 (en) * 2002-12-13 2004-06-24 Satoshi Sumino Switching apparatus
JP2012235400A (ja) * 2011-05-09 2012-11-29 Alaxala Networks Corp スイッチング装置およびスイッチング装置のエージング方法
JP2014072581A (ja) * 2012-09-27 2014-04-21 Fujitsu Ltd 通信装置およびアドレス学習方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003134158A (ja) 2001-10-29 2003-05-09 Fujitsu Ltd パケット多重制御方法及びこれを用いる集線装置
JP2008042735A (ja) 2006-08-09 2008-02-21 Fujitsu Access Ltd Macアドレス学習機能の管理方法及びネットワーク機器
US9294395B2 (en) * 2009-04-23 2016-03-22 Futurewei Technologies, Inc. Media access control bridging in a mesh network
CN102404148A (zh) * 2011-11-22 2012-04-04 华为技术有限公司 一种mac地址表管理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120269A1 (en) * 2002-12-13 2004-06-24 Satoshi Sumino Switching apparatus
JP2012235400A (ja) * 2011-05-09 2012-11-29 Alaxala Networks Corp スイッチング装置およびスイッチング装置のエージング方法
JP2014072581A (ja) * 2012-09-27 2014-04-21 Fujitsu Ltd 通信装置およびアドレス学習方法

Also Published As

Publication number Publication date
JP6086020B2 (ja) 2017-03-01
US20140321470A1 (en) 2014-10-30
US9485167B2 (en) 2016-11-01

Similar Documents

Publication Publication Date Title
JP6086020B2 (ja) 通信装置、アドレス学習方法及びアドレス学習プログラム
US20220070098A1 (en) Packet Control Method And Network Apparatus
US11258710B2 (en) Network traffic load balancing
RU2523917C2 (ru) Система управления связью и способ управления связью
US20190319883A1 (en) Bum Traffic Control Method, Related Apparatus, and System
US11695710B2 (en) Buffer management method and apparatus
US9325613B2 (en) Communication device and address learning method
US9846710B2 (en) Systems and methods for increasing the scalability of software-defined networks
WO2017067476A1 (zh) Mac地址处理方法及装置
RU2602333C2 (ru) Сетевая система, способ обработки пакетов и носитель записи
JP5760012B2 (ja) 通信ネットワーク環境での共通グループ動作フィルタリングのための方法およびシステム
WO2016201843A1 (zh) 一种mac地址学习的控制方法和装置
US9451053B1 (en) Systems and methods for interfacing software-defined networks with non-software-defined networks
CN108696429B (zh) 促进基于控制器的多播信令的装置、系统和方法
US9473424B2 (en) Address table flushing in distributed switching systems
CN103457864A (zh) 处理路由下一跳的方法、装置及网络设备
EP2107724A1 (en) Improved MAC address learning
US11237874B2 (en) System and method for managing low computing resource state
CN114024885B (zh) 一种基于子网掩码划分的ip路由表管理系统及方法
CN107395786B (zh) 一种arp表项的索引方法及装置
JP2015159500A (ja) オープンフロー制御装置、経路管理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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: 20170104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170117

R150 Certificate of patent or registration of utility model

Ref document number: 6086020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees