JP2009071423A - Network adapter - Google Patents
Network adapter Download PDFInfo
- Publication number
- JP2009071423A JP2009071423A JP2007235369A JP2007235369A JP2009071423A JP 2009071423 A JP2009071423 A JP 2009071423A JP 2007235369 A JP2007235369 A JP 2007235369A JP 2007235369 A JP2007235369 A JP 2007235369A JP 2009071423 A JP2009071423 A JP 2009071423A
- Authority
- JP
- Japan
- Prior art keywords
- address
- packet
- host computer
- multicast
- network adapter
- 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.)
- Withdrawn
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
Description
本発明は、コンピュータに接続されるネットワークアダプタに関し、特に、ネットワークアダプタにおけるパケットのフィルタリングに関連する。 The present invention relates to a network adapter connected to a computer, and more particularly to packet filtering in a network adapter.
イーサネット(登録商標)のように同報型の通信モデルを採用するネットワークにおいては、あるコンピュータがパケットを送信すると、基本的に、そのネットワーク内の他の全てのコンピュータにそのパケットが送信される。従って、あるホストコンピュータのネットワークアダプタが受信したパケットの全てがそのホストコンピュータ宛のものとは限らない。ホストコンピュータは不要なパケットを受信した場合には、そのパケットを破棄する。 In a network employing a broadcast communication model such as Ethernet (registered trademark), when a computer transmits a packet, the packet is basically transmitted to all other computers in the network. Therefore, not all packets received by the network adapter of a certain host computer are destined for that host computer. When the host computer receives an unnecessary packet, it discards the packet.
しかし、高速なネットワークにおいて、不要なパケットを大量に受信した場合に、それをチェックして破棄するホストコンピュータの負荷は大きい。このため、一般に、ネットワークアダプタは、図14に示すように、受信パケットを選別するフィルタリング機構を有している。一例としてはパケットに含まれている宛先ハードウェアアドレスを用いて、以下のようにフィルタリングが行われる。 However, when a large number of unnecessary packets are received in a high-speed network, the load on the host computer that checks and discards the packets is large. Therefore, in general, the network adapter has a filtering mechanism for selecting received packets, as shown in FIG. As an example, filtering is performed as follows using the destination hardware address included in the packet.
(1)ホストコンピュータが、ネットワークアダプタ自身のハードウェアアドレス等のホストコンピュータが受信すべきパケットに付されることが想定されるアドレスを、ネットワークアダプタに登録する。
(2)フィルタリング機構が、ネットワークから受信したパケットの宛先ハードウェアアドレスを認識する。イーサネットの場合はMACアドレスが認識されることになる。
(3)認識された宛先アドレスが、すでに登録されているアドレスである場合か、ブロードキャストアドレスやマルチキャストアドレスなどの同報アドレスである場合に、受信パケットをホストコンピュータに転送する。転送の対象とならないパケットはネットワークアダプタによって破棄される。
(1) The host computer registers an address assumed to be attached to a packet to be received by the host computer, such as a hardware address of the network adapter itself, in the network adapter.
(2) The filtering mechanism recognizes the destination hardware address of the packet received from the network. In the case of Ethernet, the MAC address is recognized.
(3) When the recognized destination address is an already registered address or a broadcast address such as a broadcast address or a multicast address, the received packet is transferred to the host computer. Packets that are not subject to transfer are discarded by the network adapter.
すなわち、ネットワークアダプタのフィルタリング機構へのアドレス登録は、ホストコンピュータによって制御される。
ホストコンピュータによる、ネットワークアダプタへのMACアドレスの登録を用いた技術は特許文献1にも記載されている。アドレスの登録に関連して、特許文献2には、パケットの送信元端末のMACアドレスを使用してアクセスポイントに認証要求を行い、認証が成功した場合にそのアドレスを登録する無線LAN子局が開示されている。また、特許文献3には、アドレスを格納する学習テーブルを有するブリッジ装置が開示されている。
A technique using registration of a MAC address to a network adapter by a host computer is also described in
従来、ホストコンピュータには一つのハードウェアアドレスが割り当てられる構成が一般的であった。従って、前述のようにホストコンピュータがネットワークアダプタのフィルタリング機構へのアドレス登録を制御するシステムであっても、なんらの問題もなく、ホストコンピュータのパケット処理に関する負担を軽減できた。 Conventionally, a configuration in which one hardware address is assigned to a host computer has been common. Therefore, even if the host computer controls the address registration to the filtering mechanism of the network adapter as described above, the burden on the packet processing of the host computer can be reduced without any problem.
しかし近年では、仮想環境が広まってきていることにより、ホストコンピュータに複数の仮想的なハードウェアアドレスが割り当てられることがある。すなわち、仮想化技術により、ホストコンピュータ上で仮想コンピュータを動作させ、仮想コンピュータに仮想ネットワークアダプタを設定して仮想ハードウェアアドレスを割り当てることができる。さらに仮想コンピュータを含む仮想ネットワークが構築されることもある。 However, in recent years, a virtual environment has become widespread, so that a plurality of virtual hardware addresses may be assigned to a host computer. That is, by using a virtualization technique, a virtual computer can be operated on a host computer, a virtual network adapter can be set in the virtual computer, and a virtual hardware address can be assigned. Furthermore, a virtual network including a virtual computer may be constructed.
従来のシステムにおいて仮想環境を実現するときには、物理ホストコンピュータが物理ネットワークアダプタのフィルタリング機構に、パケットの宛先となる仮想ハードウェアアドレスを登録する。従って、物理ホストコンピュータは仮想ハードウェアアドレスを認識して登録する必要がある。物理ホストコンピュータに物理ネットワークアダプタが一つだけ存在している場合においては、仮想ハードウェアアドレスを認識して、認識したアドレスを物理的ハードウェアアドレスと共に登録すればよい。一方、物理ホストコンピュータに複数の物理ネットワークアダプタが存在している場合においては、全ての仮想ネットワークアダプタが個々の物理ネットワークアダプタに接続されているとは限らない。そこで、物理ホストコンピュータは、登録しようとするアドレスが割り当てられている仮想ネットワークアダプタと接続している物理ネットワークアダプタに、ハードウェアアドレスの登録をする必要が生じる。正しく設定されれば、物理ネットワークアダプタは登録されたアドレスへのパケットを破棄せずに転送し、仮想コンピュータや仮想ネットワークは、物理ホストコンピュータの外のネットワークから送信されたパケットを受信できる。 When a virtual environment is realized in a conventional system, a physical host computer registers a virtual hardware address as a packet destination in the filtering mechanism of the physical network adapter. Therefore, the physical host computer needs to recognize and register the virtual hardware address. When there is only one physical network adapter in the physical host computer, the virtual hardware address may be recognized and the recognized address may be registered together with the physical hardware address. On the other hand, when a plurality of physical network adapters exist in the physical host computer, not all virtual network adapters are connected to individual physical network adapters. Therefore, the physical host computer needs to register the hardware address in the physical network adapter connected to the virtual network adapter to which the address to be registered is assigned. If set correctly, the physical network adapter transfers the packet to the registered address without discarding it, and the virtual computer or virtual network can receive the packet transmitted from the network outside the physical host computer.
前述のとおり、仮想ハードウェアアドレスをフィルタリング機構に登録するためには、物理ホストコンピュータが仮想ハードウェアアドレスや、仮想ネットワーク構成を認識する必要がある。さらに、物理ホストコンピュータが動作している間に、仮想コンピュータが停止、再起動することがよくあるため、物理ホストコンピュータは初期化の際だけでなく、常に、仮想ネットワーク構成などを認識している必要がある。この認識は、具体的には、物理ホストコンピュータ上で動作する仮想化ソフトウェアが行い、仮想化ソフトウェアはフィルタリング機構への登録も管理している。そのため、仮想アドレス数の増加やネットワーク構成の複雑化に伴って、仮想化ソフトウェア自体も複雑化してきている。仮想化ソフトウェアが複雑化すると、その設計、実装、検証も複雑で困難なものになる。さらに、仮想化ソフトウェアの検証が困難であるために不具合を見つけにくくなれば、ホストコンピュータや仮想コンピュータ等の誤動作の危険性も増大し得る。また、複雑な仮想化ソフトウェアを動作させることは、ホストコンピュータへの負荷を増大させる恐れまで生じ得る。 As described above, in order to register the virtual hardware address in the filtering mechanism, the physical host computer needs to recognize the virtual hardware address and the virtual network configuration. In addition, because the virtual computer often stops and restarts while the physical host computer is operating, the physical host computer always recognizes the virtual network configuration, etc., not only at initialization. There is a need. Specifically, this recognition is performed by virtualization software running on the physical host computer, and the virtualization software also manages registration in the filtering mechanism. For this reason, the virtualization software itself has become more complicated as the number of virtual addresses increases and the network configuration becomes more complicated. As virtualization software becomes more complex, its design, implementation, and verification become complex and difficult. Furthermore, if it is difficult to find a problem because it is difficult to verify the virtualization software, the risk of malfunction of the host computer, virtual computer, etc. may increase. Also, operating complex virtualization software can result in the risk of increasing the load on the host computer.
なお、例えば、ネットワークアダプタに特許文献3に記載の学習型ブリッジと同様の学習機能を設けると、ネットワーク上のほぼ全てのハードウェアアドレスを登録する必要が生じ得る。従って、数千〜数万ものエントリ数を必要とし、実装コストが高くなり、実用的ではない。
For example, if a learning function similar to the learning bridge described in
本発明の課題は、パケット受信のフィルタリング設定に伴うホストコンピュータへの負担を軽減することである。 An object of the present invention is to reduce a burden on a host computer due to a filtering setting for packet reception.
本発明にかかるネットワークアダプタは、仮想コンピュータを提供するホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタであって、前記ホストコンピュータから送信されるパケットおよび前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットの送信元アドレスを認識する認識手段と、前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、前記認識手段によって認識されたアドレスを前記フィルタリング部における通過アドレスとして設定する制御手段を有する。 The network adapter according to the present invention is a network adapter that is connected to a host computer that provides a virtual computer and transmits / receives a packet to / from the network. Recognizing means for recognizing a source address of a packet transmitted from a virtual computer, a filtering section for filtering a packet received from the network, and a control for setting an address recognized by the recognizing means as a passing address in the filtering section Have means.
上記ネットワークアダプタにおいて、認識手段は、ホストコンピュータから送信されるパケットの送信元アドレスを認識する。また、認識手段は、ホストコンピュータによって提供されている仮想コンピュータから送信されるパケットについても、送信元アドレスを認識する。制御手段は、認識されたアドレスをフィルタリング部において通過させるアドレスとして設定する。すなわち、送信パケットをネットワークアダプタが受信すると、フィルタリング部の通過アドレス設定がネットワークアダプタによって自立的に行われる。したがって、ホストコンピュータがネットワークアダプタのフィルタリング部の設定を行う必要がなくなる。 In the network adapter, the recognition unit recognizes a transmission source address of a packet transmitted from the host computer. The recognizing unit also recognizes the transmission source address of the packet transmitted from the virtual computer provided by the host computer. The control means sets the recognized address as an address to be passed through the filtering unit. That is, when the network adapter receives the transmission packet, the passing address setting of the filtering unit is performed autonomously by the network adapter. Therefore, it is not necessary for the host computer to set the filtering unit of the network adapter.
本発明にかかる別の形態のネットワークアダプタは、ホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタであって、前記ホストコンピュータから送信される、もしくは、前記ホストコンピュータが受信するマルチキャスト制御パケットに含まれているマルチキャストアドレスから前記ホストコンピュータの属するマルチキャストグループを識別するハードウェアマルチキャストアドレスを算出する算出手段と、前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、前記算出手段によって算出されたハードウェアマルチキャストアドレスを前記フィルタリング部における通過アドレスとして設定する制御手段、を有する。 Another embodiment of the network adapter according to the present invention is a network adapter that is connected to a host computer and transmits / receives a packet to / from the network. The multicast is transmitted from the host computer or received by the host computer. Calculated by a calculation means for calculating a hardware multicast address for identifying a multicast group to which the host computer belongs from a multicast address included in a control packet, a filtering unit for filtering packets received from the network, and the calculation means. Control means for setting a hardware multicast address as a passing address in the filtering unit.
上記ネットワークアダプタにおいて、算出手段は、ホストコンピュータから送信されるマルチキャスト制御パケットに含まれているマルチキャストアドレスから、ホストコンピュータの属するマルチキャストグループを識別するハードウェアマルチキャストアドレスを算出する。制御手段は、算出されたハードウェアマルチキャストアドレスをフィルタリング部に設定する。よって、この形態によればマルチキャスト通信についてのフィルタリング部の設定がネットワークアダプタによって自立的に行われる。したがって、ホストコンピュータは、マルチキャストアドレスについて、フィルタリング条件の設定をする必要がなくなる。 In the network adapter, the calculating means calculates a hardware multicast address for identifying a multicast group to which the host computer belongs from a multicast address included in a multicast control packet transmitted from the host computer. The control unit sets the calculated hardware multicast address in the filtering unit. Therefore, according to this embodiment, the setting of the filtering unit for multicast communication is performed autonomously by the network adapter. Therefore, the host computer does not need to set filtering conditions for the multicast address.
本発明によれば、ネットワークアダプタのフィルタリング条件設定をネットワークアダプタが自立的に行う。したがって、ホストコンピュータがフィルタリング条件を設定する必要がなくなり、ホストコンピュータの負荷を軽減させることができる。 According to the present invention, the network adapter autonomously performs the filtering condition setting of the network adapter. Therefore, it is not necessary for the host computer to set filtering conditions, and the load on the host computer can be reduced.
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<ネットワークアダプタの概要>
図1は、本発明にかかるネットワークアダプタの一例について概要を示した図である。ネットワークアダプタ1は、ホストコンピュータ2に接続し、ネットワークとの間でパケットを送受信する。ここで、ホストコンピュータ2は、後で詳しく説明するが、1または複数の仮想コンピュータを提供できるものとする。また、ネットワークアダプタ1には、ROM11、アドレス認識部12、制御部13、受信パケットフィルタリング部14が含まれる。受信パケットフィルタリング部14には、図2に示すようなフィルタテーブル141が含まれる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<Overview of network adapter>
FIG. 1 is a diagram showing an outline of an example of a network adapter according to the present invention. The
ROM11にはネットワークアダプタ1のハードウェアアドレスが記録されている。ホストコンピュータ2の初期化時に、ホストコンピュータ2がROM11に格納されたハードウェアアドレスを読み出して、自らの固有ハードウェアアドレスとして使用するためにメモリ上に記録する。
The ROM 11 records the hardware address of the
アドレス認識部12はホストコンピュータ側から送信された送信パケットに含まれるアドレスを認識し、制御部13に認識したアドレスを通知する。
制御部13は通知されたアドレスを登録する必要があるかを判断し、必要に応じてフィルタリング条件の設定を行う。また、登録されているアドレスであっても、一定時間以上使用されていないものがあれば登録を削除するなど、制御部13はフィルタリング条件の設定・変更を行う。フィルタリング条件の設定や変更は、受信パケットフィルタリング部14に含まれているフィルタテーブル141の内容を変更することにより行われる。
The
The
受信パケットフィルタリング部14は、ネットワーク側からパケットを受信したときに、そのパケットを通過させるかの判断を行う。まず、受信パケットフィルタリング部14は、フィルタテーブル141の内容と、受信したパケットの宛先アドレスを比較する。フィルタテーブル141に登録されているアドレスを「宛先アドレス」としたパケットは、ホストコンピュータ側に存在するコンピュータが受信する必要があるパケットである。そこで、ネットワークから受信したパケットの宛先アドレスがフィルタテーブル141に登録されている場合に、そのパケットを通過させる。ただし、受信パケットフィルタリング部14は、ブロードキャストパケットについてはフィルタリングせずに全て通過させる。なお、本明細書中では「宛先アドレス」と「送信先アドレス」とは同義である。同様に「送信先MACアドレス」と「宛先MACアドレス」も同義である。
When receiving a packet from the network side, the received
このように、ネットワークアダプタ1は、ホストコンピュータ2(または、ホストコンピュータ2が提供する仮想コンピュータ)から送信されるパケットに含まれるアドレスを抽出し、その抽出したアドレスを利用して受信パケットフィルタリング部14の設定を自立的に行う。したがって、ホストコンピュータ2は、ネットワークアダプタ1の受信パケットフィルタリング部14の設定を行う必要がない。
In this way, the
なお、アドレス認識部12、制御部13、受信パケットフィルタリング部14は、例えば、ハードウェア回路により実現される。ただし、これらの機能の一部または全部をソフトウェアにより実現するようにしてもよい。
The
以上がネットワークアダプタ1の動作の概要であるが、ユニキャストアドレスのみについて自立的に設定を行う実施形態と、マルチキャストアドレスの設定が可能な実施形態では、ネットワークアダプタ1の構成、動作が異なる。以下、ユニキャストアドレスの設定を行う実施形態と、マルチキャストアドレスの設定が可能な実施形態とに分けて説明する。
The outline of the operation of the
<実施形態のネットワークアダプタの動作(1)>
〔動作の概要〕
パケット送信時には、ホストコンピュータ2が送信先ハードウェアアドレスと送信元ハードウェアアドレスを設定したパケットを作成し、ネットワークアダプタ1に送信を依頼する。そこで、パケットの送信を依頼されたネットワークアダプタは以下の処理を行う。
<Operation of Network Adapter of Embodiment (1)>
[Overview of operation]
At the time of packet transmission, the
(1)アドレス認識部12が送信されるパケットのヘッダを解析し、送信元ハードウェアアドレスを認識する。
(2)認識した送信元ハードウェアアドレスをアドレス認識部12が制御部13に通知する。
(3)制御部13は、通知されたアドレスが受信パケットフィルタリング部14の備えるフィルタテーブル141に登録されているか確認する。通知されたアドレスがフィルタテーブル141に登録されていない場合には、制御部13がフィルタテーブル141に登録を行う。
(4)受信パケットフィルタリング部14は、受信パケットの送信先ハードウェアアドレスを確認する。受信パケットの送信先アドレスがフィルタテーブル141に登録されていた場合には、パケットを通過させてホストコンピュータ側に送信する。受信パケットの送信先ハードウェアアドレスが同報アドレスである場合には、受信パケットフィルタリング部14は、フィルタテーブル141の確認を行わずにパケットを通過させる。
(5)ホストコンピュータ側に送信しないパケットを破棄する。
(1) The
(2) The
(3) The
(4) The received
(5) Discard packets that are not sent to the host computer.
以上の処理によって、一度、このネットワークアダプタ1を利用して送信を行ったことがあるアドレスに対しては、ホストコンピュータ側からネットワークアダプタ1のフィルタリング機構の設定を一切することなく、パケットのフィルタリングをすることが可能となる。
With the above processing, packet filtering is performed for an address that has been transmitted once using the
かかるネットワークカードを用いることによって、仮想コンピュータを含む複雑な仮想ネットワークが構築されていた場合においてもホストコンピュータ側からのフィルタリング機構の設定が不要になる。 By using such a network card, it is not necessary to set a filtering mechanism from the host computer side even when a complex virtual network including a virtual computer is constructed.
図3は、ホストコンピュータによる仮想環境について説明する図である。図3に示す例では、物理ホストコンピュータは、2つのネットワークアダプタ1(1a、1b)を収容する。また、この物理ホストコンピュータは、複数の仮想コンピュータ(図3に示す例では、30、40、50)を提供する。 FIG. 3 is a diagram for explaining a virtual environment by the host computer. In the example shown in FIG. 3, the physical host computer accommodates two network adapters 1 (1a, 1b). The physical host computer provides a plurality of virtual computers (30, 40, 50 in the example shown in FIG. 3).
このような仮想環境において従来のネットワークアダプタを利用する場合には、仮想化ソフトウェア201は複雑な処理が要求された。図3に示す例では、ホストコンピュータによって提供される三台の仮想コンピュータは、いずれも二つの仮想ネットワークアダプタを有し、各仮想ネットワークアダプタに対してそれぞれ仮想ハードウェアアドレスが割り当てられている。従って、物理ホストコンピュータ2が受信する必要があるパケットは、物理ハードウェアアドレスP1、P2を宛先としているものに加えて、仮想ハードウェアアドレスV11、V12、V21、V22、V31およびV32を宛先アドレスとしたものである。そして、仮想化ソフトウェア201は、全ての仮想ハードウェアアドレスを把握して、フィルタリング機構への設定を行う必要があった。
When using a conventional network adapter in such a virtual environment, the
また、物理ホストコンピュータが複数の物理ネットワークアダプタを有する場合には、仮想化ソフトウェア201による管理処理がさらに複雑になる。例えば、図3に示す物理ホストコンピュータ2は物理ネットワークアダプタを二つ有していて、それぞれの物理ネットワークアダプタに三つずつの仮想ネットワークアダプタが仮想スイッチ(SW1、SW2)を介して接続されている。従って、各々の物理ネットワークアダプタには、自らの物理ハードウェアアドレスと、接続されている仮想ネットワークアダプタで用いられている仮想ハードウェアアドレスとが登録される必要がある。例えば、物理ネットワークアダプタ1aには、物理ハードウェアアドレスP1と、仮想ハードウェアアドレスV11、V21、V31とを登録しなくてはならない。
In addition, when the physical host computer has a plurality of physical network adapters, the management processing by the
さらに、物理的なホストコンピュータが運用されている間に仮想コンピュータが停止・再起動することもある。仮想ハードウェアアドレスは、例えば、仮想コンピュータの初期化の際に、乱数などによって生成されるので、仮想コンピュータが再起動することによって、仮想ハードウェアアドレスが変更することが予想される。従って、かかる場合にも対処可能であることが仮想化ソフトウェア201に求められてきた。
Furthermore, the virtual computer may be stopped and restarted while the physical host computer is operating. For example, the virtual hardware address is generated by a random number or the like when the virtual computer is initialized. Therefore, it is expected that the virtual hardware address is changed when the virtual computer is restarted. Accordingly, the
実施形態のネットワークアダプタは、これらの問題に対処するために、ネットワークへ送出されるパケットの送信元ハードウェアアドレスを自立的に学習してフィルタリングテーブルを設定する。このため、物理ホストコンピュータがフィルタリング条件の設定を行う必要がない。したがって、仮想ハードウェアアドレスや仮想ネットワーク構成を認識する必要が無くなり、仮想化ソフトウェア201の簡素化が可能となる。以下、ネットワークアダプタ1の動作を詳しく説明する。
In order to cope with these problems, the network adapter of the embodiment autonomously learns the transmission source hardware address of the packet sent to the network and sets the filtering table. This eliminates the need for the physical host computer to set filtering conditions. Therefore, it is not necessary to recognize the virtual hardware address and the virtual network configuration, and the
〔アドレス認識部の動作〕
ネットワークアダプタに実装されるアドレス認識部12の一例を図4に示す。アドレス認識部12は、入力コントローラ121、ラッチ回路122を備える。ホストコンピュータから送信されたパケットがアドレス認識部12に読み込まれると入力コントローラ121が、ある一定のビット幅のデータに分割する。図4では、一例として64ビット幅で区切っているが、分けられるビット幅は任意である。入力コントローラ121で区切られたデータはラッチ回路122で一旦、記憶されてから送信される。このときに、アドレス認識部12は、通信プロトコルにより予め決められている領域(すなわち、送信元アドレス領域)からビット列を抽出することにより、アドレスを認識する。
[Operation of address recognition unit]
An example of the
例えば、ネットワークメディアとしてイーサネットが用いられている場合は、パケットのフォーマットは図4に示す通りである。パケットの先頭部分にイーサネットヘッダが付されていて、イーサネットヘッダには、送信先MACアドレス、送信元MACアドレスなどが含まれる。送信先MACアドレスと送信元MACアドレスはいずれも48ビットで構成される。従って、入力コントローラ121でパケットを先頭から64ビットずつに区切った場合には、最初に区切られたラインの最後の16ビット分と、2ライン目の最初から32ビット分が送信元MACアドレスとなる。そこで、図4に示されているように、1ライン目のL4、2ライン目のL1、L2を送信元MACアドレスであると認識して、制御部13に通知する。
For example, when Ethernet is used as the network medium, the packet format is as shown in FIG. An Ethernet header is attached to the beginning of the packet, and the Ethernet header includes a transmission destination MAC address, a transmission source MAC address, and the like. Both the transmission destination MAC address and the transmission source MAC address are composed of 48 bits. Accordingly, when the
仮想コンピュータから送信されるパケットおよび物理ホストコンピュータから送信されるパケットのフォーマットは同じであるため、仮想ハードウェアアドレスについても、同様の処理で送信元MACアドレスを認識することができる。図3のように、ホストコンピュータ上に複数の仮想コンピュータと仮想ネットワークアダプタが存在している場合には、管理者があらかじめ設定したアドレスか、または、乱数などによって生成されたアドレスが、仮想ネットワークアダプタに割り当てられる。例えば、仮想コンピュータ1が初期化した際に、乱数によって生成された仮想MACアドレスV11が仮想ネットワークアダプタ31に割り当てられる。仮想コンピュータ30が仮想ネットワークアダプタ31を介してパケットを送信するとき、仮想コンピュータ30は、送信元MACアドレスをV11としてイーサネットヘッダを生成する。生成されたパケットは仮想スイッチSW1を介して、物理ネットワークアダプタ1aが送信パケットを受け取る。仮想コンピュータが仮想ネットワークアダプタを介して送信したパケットであっても、前述のとおり、物理ホストコンピュータから送信されるパケットとフォーマットは同じである。そこで、物理ホストコンピュータから送信されたパケットと同様にアドレスが認識され、制御部13に通知される。
このように、アドレス認識部12は、物理ハードウェアアドレスと仮想ハードウェアアドレスとを区別せずに、同様に必要なアドレスを認識することができる。
Since the format of the packet transmitted from the virtual computer and the packet transmitted from the physical host computer are the same, the source MAC address can be recognized by the same process for the virtual hardware address. As shown in FIG. 3, when a plurality of virtual computers and virtual network adapters exist on the host computer, an address set in advance by an administrator or an address generated by a random number or the like is a virtual network adapter. Assigned to. For example, when the
As described above, the
〔フィルタテーブルへのアドレスの登録処理〕
制御部13がフィルタテーブル141への登録処理を行う際の動作のフローチャートを図5に示す。まず、ネットワークアダプタが初期化される(ステップS1)。初期化処理では、制御部13は、フィルタテーブル141の全てのエントリを削除する。そして、フィルタテーブル141の初期化を行った後は、ホストコンピュータ側からの送信パケットを受信するまで待機する(ステップS2)。フィルタテーブル141は、図2に一例を示したように、フィルタリングに係わるハードウェアアドレスと、個々のハードウェアアドレスに対するタイムスタンプとを管理する。ここで、タイムスタンプは、対応するハードウェアアドレスを送信元ハードウェアアドレスとしたパケットが最後に送信された時刻を表す。
[Registering addresses in the filter table]
FIG. 5 shows a flowchart of the operation when the
送信パケットがアドレス認識部12により解析され、そのパケットの送信元ハードウェアアドレスが通知されると、制御部13は、その送信元アドレスがフィルタテーブル141に登録されているかを確認する(ステップS3、S4)。フィルタテーブル141に登録されていなかった場合には、フィルタテーブル141に空きエントリがあるかを制御部13が確認し、空きエントリがあれば取得したハードウェアアドレスをフィルタテーブル141に登録する(ステップS5、S6)。登録が終わるとフィルタテーブル141のタイムスタンプを現在時刻に更新する(ステップS8)。
When the transmission packet is analyzed by the
フィルタテーブル141に空きエントリが存在しなかった場合には、制御部13はアドレス認識部12から通知されたハードウェアアドレスを登録することができない。登録されていないハードウェアアドレス宛のパケットは、同報アドレスでない限りネットワークアダプタが破棄してしまい、そのパケットをホストコンピュータ側で受信することができない。そこで、フィルタテーブル141に空きエントリが存在しなかった場合には、制御部13は受信パケットフィルタリング部14のフィルタリング機能を無効にし、全てのパケットを通すように設定を行う(ステップS7)。すると、ネットワークから到着したパケット全てがホストコンピュータに受信されるようになる。この場合にはネットワーク側から到着したパケットをホストコンピュータが全て受信するため、ホストコンピュータに負荷がかかるが通信は可能である。特に仮想コンピュータが一時的に増設された場合などにおいて、一時的にエントリ数が不足したときに効果的な処置である。全てのパケットを通すように設定した場合であっても設定を終えた後に、後述するように、不使用時間が長いなどの理由で優先度の低いアドレスを、制御部13がフィルタテーブル141から削除することによって、空きエントリができた場合には、再度フィルタリング機能を有効にする。
When there is no empty entry in the filter table 141, the
アドレス認識部12から制御部13に通知されてきたアドレスが既にフィルタテーブル141に登録されていた場合には、フィルタテーブル141への登録やフィルタテーブル141の空きエントリの確認を行わず、タイムスタンプの更新のみが行われる(ステップS8)。
If the address notified from the
〔フィルタテーブルからのアドレスの削除処理〕
制御部13は、必要に応じて、フィルタテーブル141に登録されているアドレスの削除処理を行う。フィルタテーブル141のエントリ数は有限であるため、通信を行っていないハードウェアアドレスの登録を残すことによって、新たなアドレスを登録できない状況を避けるためである。また、一定の期間、通信が行われていない場合には登録されているハードウェアアドレスが既に存在していない可能性があるためである。
[Deleting address from the filter table]
The
図6は、フィルタテーブル141からのアドレスの削除処理を説明するフローチャートである。制御部13は、各フィルタエントリのタイムスタンプを確認する(ステップS11)。次に制御部13は、現在時刻と各々のタイムスタンプに記録されている時刻とを比較し、各エントリが最後にタイムスタンプの更新がされてから経過した時間が、指定時間を越えているかどうかを確認する(ステップS12)。ここで、「指定時間」は、あらかじめ決められている時間である。指定時間は、数百秒程度が望ましいが、任意に設定することができ、数百秒より長くても短くても良い。指定時間よりも長くタイムスタンプの更新がされていない場合には、制御部13が、そのタイムスタンプに対応するアドレスを、使用されていないハードウェアアドレスであると判断する。そこで、タイムスタンプの最後の更新時から指定時間を経過したフィルタエントリを、制御部13が削除する(ステップS13)。
FIG. 6 is a flowchart for explaining address deletion processing from the filter table 141. The
このような処理は特に仮想ネットワークを考慮したときに有効である。仮想ハードウェアアドレスは仮想ネットワークアダプタに対応しているアドレスである。前述のとおり、仮想ハードウェアアドレスは、仮想コンピュータが初期化したときに乱数によって生成されることがある。また、物理ホストコンピュータが動作しているときに、仮想コンピュータが停止、再起動されることもある。従って、物理ホストコンピュータの動作時に仮想コンピュータが再起動して、仮想ネットワークアダプタに割り当てられた仮想ハードウェアアドレスが変更されることもあり得る。従来のフィルタリングにおいては、ホストコンピュータがフィルタリングの制御を行っていたため、使用されている仮想ハードウェアアドレスが変更された場合には、ホストコンピュータはその変更を認識して、フィルタリングの制御を行う必要があった。しかし、本実施形態で示したネットワークアダプタでは、タイムスタンプを用いてフィルタテーブル141のエントリを制御しているので、指定時間を経過すれば、制御部13が不要となった仮想ハードウェアアドレスを削除する。このため、仮想ハードウェアアドレスに変更が生じたとしてもホストコンピュータは、削除処理を行う必要が無い。従って、仮想ハードウェアアドレスの変更がされたときに、ホストコンピュータ上で動作している仮想化ソフトウェアが、アドレスの変更によるフィルタリングの設定を変更する必要がなくなるため、仮想化ソフトウェアの簡素化が可能となる。
Such processing is particularly effective when considering a virtual network. The virtual hardware address is an address corresponding to the virtual network adapter. As described above, the virtual hardware address may be generated by a random number when the virtual computer is initialized. In addition, the virtual computer may be stopped and restarted when the physical host computer is operating. Therefore, the virtual computer may be restarted during the operation of the physical host computer, and the virtual hardware address assigned to the virtual network adapter may be changed. In the conventional filtering, since the host computer controls the filtering, when the virtual hardware address used is changed, the host computer needs to recognize the change and control the filtering. there were. However, in the network adapter shown in the present embodiment, the entry of the filter table 141 is controlled using a time stamp, so when the specified time elapses, the virtual hardware address that is no longer needed by the
〔受信パケットフィルタリング部の動作〕
受信パケットフィルタリング部14は、図1に示したように、受信したパケットを通過させるか否かの判断を行う。ネットワークアダプタにネットワーク側からパケットが送信されてくると、受信パケットフィルタリング部14は宛先ハードウェアアドレスを認識する。また、アドレスがユニキャストアドレスであるか、同報アドレスであるかの判断を行う。ユニキャストアドレスであるか、同報アドレスであるかの判断方法の一例としては、アドレスの先頭部分を用いた判断方法が考えられる。例えばイーサネットの場合、ハードウェアアドレスの先頭が「01:00:5e」や「33:33」のように先頭オクテットの最下位ビットが1であればマルチキャストアドレスで、「ff:ff:ff:ff:ff:ff」がブロードキャストアドレスであると判断する。その他のアドレスであれば、ユニキャストアドレスであると認識する。
[Operation of received packet filtering unit]
As shown in FIG. 1, the received
宛先アドレスがユニキャストアドレスであった場合には、受信パケットフィルタリング部14はパケットの宛先ハードウェアアドレスをキーとしてフィルタテーブル141を検索する。フィルタテーブル141のいずれかのエントリと、パケットの宛先ハードウェアアドレスとが一致すればパケットをホストコンピュータ側に送信し、それ以外のパケットを破棄する。
If the destination address is a unicast address, the received
宛先アドレスが、マルチキャストアドレスもしくはブロードキャストアドレスであるときには、受信パケットフィルタリング部14は、フィルタテーブル141を参照することなくパケットを通過させる。
When the destination address is a multicast address or a broadcast address, the received
〔フィルタリング条件設定のタイミング〕
図5からも明らかであるように、ネットワークアダプタ1は、初期化後、ホストコンピュータもしくはホストコンピュータが提供する仮想コンピュータから送信パケットを受信するまでの間は、フィルタテーブル141の設定を行わない。また、複数のパケットが送信されるときには、第一の送信パケットについて、送信元アドレスの認識、登録などの処理が終わると、第二の送信パケットを受信するまではフィルタテーブルへの登録処理を行わない。すなわち、本実施形態で示したネットワークアダプタ1は、ホストコンピュータもしくはホストコンピュータが提供する仮想コンピュータから、送信パケットを受信することをトリガとして、フィルタテーブル141の登録処理を行う。
[Timing for setting filtering conditions]
As is clear from FIG. 5, the
このように、ネットワークアダプタ1は、ホストコンピュータによる設定なしで、自立的に、そのホストコンピュータ(または、ホストコンピュータが提供する仮想コンピュータ)宛てのパケットを通過させるためのフィルタ条件を設定する。ただし、ホストコンピュータ宛のパケットが受信パケットフィルタリング部14を通過するためには、そのパケットが相手端末から送信されるより前に、そのホストコンピュータからネットワークアダプタ1を介してパケット送信が行われる必要がある。しかし、通常のパケット通信システムにおいては、ホストコンピュータは、相手端末からパケットを受信する前に、自らのハードウェアアドレスをその相手端末に通知するためのパケットを送信する。従って、ホストコンピュータが受信すべきパケットのアドレスは、そのパケットが相手端末から送信される前にフィルタテーブル141に登録されることになる。
In this way, the
一例として、ネットワークメディアとしてイーサネットを用い、ネットワーク層のプロトコルとしてインターネットプロトコル(IP)を使用する通信システムの場合について述べる。このような通信システムにおいては、通信を行うコンピュータ同士はIPアドレスで特定される。しかし、実際にパケットを送信する際には、宛先ハードウェアアドレスとして、宛先のイーサネットアドレス(MACアドレス)が必要となる。この送信先MACアドレスを知るために、送信元のコンピュータはARP(アドレス解決プロトコル)を用いる。 As an example, a case of a communication system using Ethernet as a network medium and using the Internet protocol (IP) as a network layer protocol will be described. In such a communication system, computers that communicate with each other are specified by IP addresses. However, when actually transmitting a packet, the destination Ethernet address (MAC address) is required as the destination hardware address. In order to know the transmission destination MAC address, the transmission source computer uses ARP (address resolution protocol).
図7は、ARPによるアドレス解決のシーケンス図である。以下の説明では、このシーケンスにおいて、コンピュータ2bに接続するネットワークアダプタのフィルタリング条件が設定される。 FIG. 7 is a sequence diagram of address resolution by ARP. In the following description, filtering conditions for the network adapter connected to the computer 2b are set in this sequence.
先に述べたように、パケットを送信しようとするコンピュータ2aは、通常、送り先のコンピュータ2bのIPアドレスを知っていても、ハードウェアアドレスを知らない。そのため、パケットを送信する前に、コンピュータ2a自身が存在するサブネット中に、ARP要求を送信する。図7にARP要求のパケットのフォーマットを示す。ARP要求はブロードキャストメッセージであるため、各コンピュータに接続されているネットワークアダプタ1はARP要求パケットを廃棄することはない。そのため、コンピュータ2b(応答側コンピュータ)は、ARP要求を受信することができる。コンピュータ2bは、ARP要求に含まれているIPアドレスが自分のIPアドレスと一致するかどうかを確かめ、一致した場合にはコンピュータ2aにARP応答を送信する。ARP応答のパケットのフォーマットは図7に示されたとおりである。イーサネットヘッダ部分に、送信先MACアドレス、送信元MACアドレスが記載されている。
As described above, the computer 2a attempting to transmit a packet normally does not know the hardware address even if it knows the IP address of the destination computer 2b. Therefore, before transmitting a packet, an ARP request is transmitted in the subnet in which the computer 2a itself exists. FIG. 7 shows the format of the ARP request packet. Since the ARP request is a broadcast message, the
コンピュータ2bがARP応答を送信すると、コンピュータ2bに接続されているネットワークアダプタ1は、そのARP応答を含む送信パケットを受け取ることになる。ここで、ARP応答パケットのイーサネットヘッダ部分は、通常のパケットと同様に、送信先MACアドレスおよび送信元MACアドレスを含む。そこで、ネットワークアダプタ1は、前述のとおりに、イーサネットヘッダに含まれる送信元MACアドレスを認識し、フィルタテーブル141に登録する。
When the computer 2b transmits an ARP response, the
コンピュータ2aは、ネットワークアダプタ1を介して送信されてきたARP応答を受け取ることにより、コンピュータ2bのMACアドレスを認識する。以降、コンピュータ2aは、コンピュータ2bに対してユニキャスト通信でパケットを送信することができる。このとき、コンピュータ2bに接続されるネットワークアダプタ1には、上記ARP応答パケットを返送した際に、コンピュータ2bのMACアドレスが登録されている。従って、コンピュータ2bは、コンピュータ2aからのパケットを受け取ることができる。ここで、ARP解決を行うコンピュータ2aおよび/または2bが物理ホストコンピュータではなく仮想コンピュータであっても同様の処理がされる。
The computer 2a recognizes the MAC address of the computer 2b by receiving the ARP response transmitted via the
以上、述べてきたとおり、ネットワークアダプタが自立的に受信パケットフィルタリング部14のフィルタリング条件を設定するため、ホストコンピュータに負荷をかけることなくフィルタリングが可能である。
As described above, since the network adapter autonomously sets the filtering conditions of the received
また、本実施形態に係るアドレス認識部12が認識した送信パケットに含まれる送信元MACアドレスを、制御部13がフィルタテーブル141に登録することになる。すなわち、物理ホストコンピュータおよび物理ホストコンピュータが提供する仮想コンピュータが、使用するハードウェアアドレスのみがフィルタテーブル141に登録される。つまり、ネットワーク側に接続されているノードについてのMACアドレスを一切登録しないため、フィルタテーブル141に必要とされるエントリ数は数十程度で良いことになる。このため、学習型ブリッジなどのように多くのメモリを必要としないため、安価に製造することが可能となる。
Further, the
<実施形態のネットワークアダプタの動作(2)>
〔動作の概要〕
マルチキャスト送信の場合は、マルチキャストアドレスを宛先とするパケットが送信される。したがって、マルチキャストパケットのフィルタリングを行うためには、コンピュータが属するマルチキャストグループを識別するアドレスが、フィルタリング機構に設定される必要がある。一部の既定マルチキャストグループを除き、コンピュータがマルチキャストグループへ参加・離脱する場合には、参加・離脱に先立って、マルチキャスト制御パケットが送信される。その制御パケットの中には、コンピュータが参加もしくは離脱しようとするマルチキャストグループのマルチキャストアドレスが、ネットワーク層のアドレスとして含まれている。ただし、マルチキャスト制御プロトコルによっては、コンピュータが送信する制御パケットだけではなく、コンピュータが受信する制御パケットも解析する必要がある。この場合、アドレス認識部12が送信パケットだけでなく受信パケットも認識するようにしておく。マルチキャストアドレスを設定する場合には、ネットワークアダプタは以下の処理を行う。
<Operation of Network Adapter of Embodiment (2)>
[Overview of operation]
In the case of multicast transmission, a packet destined for the multicast address is transmitted. Therefore, in order to perform filtering of multicast packets, an address for identifying the multicast group to which the computer belongs needs to be set in the filtering mechanism. When a computer joins / leaves a multicast group except for some default multicast groups, a multicast control packet is transmitted prior to joining / leaving. In the control packet, the multicast address of the multicast group to which the computer intends to join or leave is included as the network layer address. However, depending on the multicast control protocol, it is necessary to analyze not only the control packet transmitted by the computer but also the control packet received by the computer. In this case, the
(1)アドレス認識部12は、ネットワークアダプタ1を介して送受信されるマルチキャスト制御パケットを解析する。このとき、アドレス認識部12は、パケットの中に含まれているマルチキャストアドレスを認識する。
(2)アドレス認識部12は、認識したネットワーク層のマルチキャストアドレスからハードウェアマルチキャストアドレスを算出する。さらに、アドレス認識部12は、制御パケットがマルチキャストグループに参加するためのパケットか、離脱するためのパケットかも認識する。
(3)アドレス認識部12は、認識したマルチキャストアドレスを制御部13に通知する。また、パケットがマルチキャストグループへの参加(join)を通知するものか、離脱(leave)を通知するものであるかについても、アドレス認識部12が制御部13に通知する。
(4)送受信されたパケットがマルチキャストグループへのjoinメッセージであれば、制御部13は、通知されたアドレスが、受信パケットフィルタリング部14に存在するフィルタリングテーブルに登録されているか確認する。通知されたアドレスが、フィルタリングテーブルに登録されていないものであった場合には、フィルタテーブル141に登録される。
(5)送信されたパケットがマルチキャストグループからのleaveメッセージである場合、制御部13はそのパケットを無視する。他の仮想コンピュータがそのマルチキャストグループに参加している可能性があるためである。
(6)ネットワークアダプタ1がマルチキャストアドレス宛のパケットを受信すると、受信パケットフィルタリング部14は、宛先マルチキャストアドレスを確認する。宛先マルチキャストアドレスが既定ですべてのホストが属するマルチキャストアドレスであるかフィルタテーブル141に登録されている場合には、パケットを通過させてホストコンピュータ側に送信する。ただし、ブロードキャストパケットについては、フィルタリングを行わずにホストコンピュータ側に転送する。
(7)ホストコンピュータ側に送信しないパケットを破棄する。
(1) The
(2) The
(3) The
(4) If the transmitted / received packet is a join message to the multicast group, the
(5) If the transmitted packet is a leave message from the multicast group, the
(6) When the
(7) Discard packets that are not sent to the host computer.
以上の動作を行うネットワークカードにおいては、マルチキャストアドレスの設定・削除が自立的に行われる。従って、マルチキャストグループへの参加状況をホストコンピュータが管理して、ネットワークアダプタ1のフィルタリング設定をする必要がないため、ホストコンピュータの負担が軽減される。
In the network card that performs the above operations, setting / deleting of the multicast address is performed autonomously. Therefore, it is not necessary for the host computer to manage the participation status in the multicast group and to set the filtering of the
ホストコンピュータがマルチキャストアドレスの設定を行わないことは、特に、仮想コンピュータがマルチキャストに参加する場合に大きな意味を持つ。例えば、図3に示すような仮想ネットワークの一部が、マルチキャストグループに参加もしくは離脱するときには、仮想化ソフトウェア201はマルチキャストグループへの参加状況と仮想ネットワークの構成を把握する必要があった。例えば、仮想コンピュータ30および40が、それぞれ仮想ネットワークアダプタ31および41を介して同じマルチキャストに参加するときについて考える。このとき、仮想ネットワークアダプタ31および41は、同一の物理ネットワークアダプタ1aに接続されているので、仮想化ソフトウェア201は、物理ネットワークアダプタ1aのみに、マルチキャストアドレス宛のパケットを通す設定をすればよい。しかし、仮想コンピュータ30および40が同じマルチキャストグループに参加する場合であったとしても、仮想コンピュータ30が仮想ネットワークアダプタ31を介して参加し、仮想コンピュータ40が仮想ネットワークアダプタ42を介して参加することもあり得る。この場合においては、仮想化ソフトウェア201は物理ネットワークアダプタ1aおよび1bの両方に対して、マルチキャストアドレス宛のパケットを通す設定をする必要がある。
The fact that the host computer does not set the multicast address has a great significance especially when the virtual computer participates in the multicast. For example, when a part of the virtual network as shown in FIG. 3 joins or leaves the multicast group, the
この構成によれば、ネットワークアダプタがマルチキャストアドレスの解析・学習を行うことにより、ホストコンピュータからマルチキャストアドレスの設定を行う必要がなくなる。そのため、仮想化ソフトウェア201の簡素化が可能である。仮想化ソフトウェアが簡素化されると、その設計、実装、検証も容易になり、ひいては、仮想化ソフトウェアの信頼性を向上させることが可能となる。以下、ネットワークアダプタ1の部分ごとに動作内容を説明する。
According to this configuration, since the network adapter analyzes and learns the multicast address, it is not necessary to set the multicast address from the host computer. Therefore, the
〔IPv4に対応するアドレス認識部〕
{構成および動作}
一例として、ネットワークメディアとしてイーサネットを用い、ネットワーク層のプロトコルとしてIPv4を使用する通信システムの場合について述べる。このような通信システムにおいては、マルチキャストグループへの参加・離脱は、例えば、IGMPパケットによって行われる。このIGMPパケットにはIPv4マルチキャストアドレスが記載されている。しかし、このIPv4マルチキャストアドレスは、前述の通りネットワーク層のアドレスであるので、アドレス認識部12はハードウェアマルチキャストアドレスへのマッピングを行う。なお、この例ではネットワークメディアがイーサネットであるので、「ハードウェアマルチキャストアドレス」を「イーサネットマルチキャストアドレス」と記載することもある。
[Address recognition unit corresponding to IPv4]
{Configuration and operation}
As an example, a case of a communication system using Ethernet as a network medium and using IPv4 as a network layer protocol will be described. In such a communication system, joining / leaving to / from a multicast group is performed by, for example, an IGMP packet. This IGMP packet describes an IPv4 multicast address. However, since the IPv4 multicast address is a network layer address as described above, the
IGMPのプロトコルにおいては、マルチキャストグループへの参加状態を問い合わせるQueryメッセージをルータが一定間隔(通常60秒)で送信する。その際の宛先アドレスには、すべてのホストを表すマルチキャストアドレスである224.0.0.1を使用する。Queryメッセージを受けたホストは、乱数で決定される時間だけ待ってから、自分が属しているマルチキャストグループを応答する。ただし、その間に他のホストが同じマルチキャストグループに属している旨応答した場合は、自らが応答することを控える。多くのホストからの応答パケットが重複して発生しないようにするためである。このため、本実施形態においてはホストが送信するIGMPパケットだけではなく、他のホストが送信したIGMPパケットも解析する必要がある。 In the IGMP protocol, the router transmits a Query message for inquiring about the participation state in the multicast group at regular intervals (usually 60 seconds). In this case, 224.0.0.1 which is a multicast address representing all hosts is used as the destination address. The host that has received the Query message waits for a time determined by a random number, and then responds to the multicast group to which it belongs. However, if another host responds that it belongs to the same multicast group during that time, it refrains from responding itself. This is to prevent duplicate response packets from many hosts. For this reason, in this embodiment, it is necessary to analyze not only the IGMP packet transmitted by the host but also the IGMP packet transmitted by another host.
IPv4を用いた通信システムでのマルチキャストアドレス送受信に対応可能なネットワークアダプタ1のアドレス認識部12の一例を図8に示す。アドレス認識部12は、入力コントローラ121、イーサネットヘッダ解析部123、IPv4ヘッダ解析部124、および、IGMPヘッダ解析部125を備える。以下、各部分の動作を図9に示すIGMPパケットフォーマットの図を参照しながら説明する。
An example of the
(1)ホストコンピュータから送信されたパケット、もしくは、受信したパケットがアドレス認識部12に読み込まれると入力コントローラ121で、ある一定のビット幅のデータに分けられる。一定の幅に分けられたデータは、イーサネットヘッダ解析部123、IPv4ヘッダ解析部124、IGMPヘッダ解析部125にそれぞれ送られる。
(2)イーサネットヘッダ解析部123は、IGMPパケット(図9)のイーサネットヘッダのタイプフィールドの値が0x0800であるかを判定する。タイプフィールドが0x0800であれば、IPv4プロトコルが使用されていることを意味する。IPv4ヘッダの位置はパケットにVLANタグが含まれているかどうかによって異なるので、IPv4プロトコルであることを確認すると、イーサネットヘッダ解析部123は、IPv4ヘッダ解析部124にIPv4ヘッダの開始位置を通知する。
(3)IPv4ヘッダ解析部124は、イーサネットヘッダ解析部123によって通知されたIPv4ヘッダの開始位置に従って、入力コントローラ121から受け取ったデータのうちのIPv4ヘッダ部分を取り出す。次に、IPv4ヘッダ解析部124はIPv4ヘッダの正当性を確認した後、IPv4ヘッダのプロトコルフィールドが2であるかを判定する。プロトコルフィールドの値が2であれば、IGMPパケットであることを示す。IGMPヘッダの開始位置はIPオプションによって異なるため、プロトコルフィールドが2であれば、IPv4ヘッダ解析部124はIGMPヘッダ解析部125にIGMPヘッダの開始位置を通知する。
(4)IGMPヘッダ解析部125は、IPv4ヘッダ解析部124からの通知内容にしたがって、入力コントローラ121から送られてきたデータからIGMPヘッダ部分を取り出す。IGMPヘッダ解析部125は、IGMPヘッダの正当性を確認する。その後、IGMPヘッダ解析部125は、IGMPヘッダのTypeフィールドを確認して、パケットがマルチキャストグループに参加するためのjoinメッセージであるか、離脱するためのleaveメッセージであるかを判定する。Typeフィールドの値が0x12(IGMP v1 Report)もしくは0x16(IGMP v2 Report)であると、マルチキャストグループへの参加を示す。Typeフィールドの値が0x17(IGMP v2 Leave)であると、マルチキャストグループからの離脱を示す。IGMPヘッダ解析部125は、判定結果を制御部13へ通知する。
(5)IGMPヘッダ解析部125は、IGMPヘッダに含まれているGroup Addressフィールドを確認する。Group Addressフィールドに記録されているIPv4マルチキャストアドレスを取り出し、イーサネットマルチキャストアドレスへのマッピングを行う。IGMPヘッダ解析部125は、マッピングにより得られたイーサネットマルチキャストアドレスを制御部13に通知する。マッピングの具体的な方法については後述する。
(1) When a packet transmitted from a host computer or a received packet is read into the
(2) The Ethernet
(3) The IPv4
(4) The IGMP
(5) The IGMP
なお、(4)において、leaveメッセージの値についてはIGMP v2に対するものしか示していないのは、IGMP v1では明示的なleaveメッセージが存在しないためである。IGMP v1では、ルータがQueryに対する応答が無いときにQueryに対応するマルチキャストグループの配信を停止する。 In (4), the value of the leave message is only shown for IGMP v2 because there is no explicit leave message in IGMP v1. In IGMP v1, when the router does not respond to the query, distribution of the multicast group corresponding to the query is stopped.
{イーサネットマルチキャストアドレスの算出}
図10は、IPv4マルチキャストアドレスからイーサネットマルチキャストアドレスへ変換する方法を説明する図である。32ビットのIPv4マルチキャストアドレスのうち、第一オクテットの上位4ビットは1110で固定された値である。従って下位28ビットでマルチキャストグループが指定される。一方、イーサネットマルチキャストアドレスは、上位25ビットが固定されていて、下位23ビットでマルチキャストグループを指定する。そこで、IPv4マルチキャストアドレスからイーサネットマルチキャストアドレスを求める際には、IPv4マルチキャストアドレスでグループ指定をしている28ビットのうち、上位5ビットを無視して、下位23ビットがマッピングされる。
{Calculation of Ethernet multicast address}
FIG. 10 is a diagram for explaining a method of converting from an IPv4 multicast address to an Ethernet multicast address. Of the 32-bit IPv4 multicast address, the upper 4 bits of the first octet are values fixed at 1110. Therefore, a multicast group is designated by the lower 28 bits. On the other hand, the upper 25 bits of the Ethernet multicast address are fixed, and the multicast group is designated by the lower 23 bits. Therefore, when obtaining the Ethernet multicast address from the IPv4 multicast address, the lower 5 bits are mapped ignoring the upper 5 bits out of the 28 bits designated by the IPv4 multicast address.
IGMPヘッダ解析部125は、IPv4マルチキャストアドレスの下位23ビットをマッピングすることによって、イーサネットマルチキャストアドレスを求め、制御部13に通知する。
The IGMP
IPv4では224.0.0.0から224.0.0.255までの256個のマルチキャストアドレスは、既定の(well−knownな)マルチキャストグループを表すものとして予約されている。例えば、224.0.0.1はサブネット内のすべてのデバイスに対するマルチキャストアドレスである。これらのマルチキャストグループに関してはIGMP等による明示的な参加、離脱が通知されない。そこで、これらに対応するイーサネットアドレス01:00:5e:00:00:00から01:00:5e:00:00:ffを宛先とするパケットに関してはブロードキャストアドレスと同様に、受信パケットフィルタリング部14はフィルタテーブル141の内容に関わらずパケットを通過させる。
In IPv4, 256 multicast addresses from 224.0.0.0 to 224.0.0.255 are reserved as representing a predetermined (well-known) multicast group. For example, 224.0.0.1 is the multicast address for all devices in the subnet. For these multicast groups, explicit participation or withdrawal by IGMP or the like is not notified. Therefore, for the packets addressed to Ethernet addresses 01: 00: 5e: 00: 00 to 01: 00: 5e: 00: 00: ff corresponding to these, the received
〔IPv6に対応するアドレス認識部〕
{構成および動作}
別の形態として、ネットワーク層のプロトコルとしてIPv6を使用する通信システムの場合について述べる。この形態においても、ネットワークメディアはイーサネットを用いる。IPv6を用いた通信システムにおいては、マルチキャストグループへの参加・離脱は、例えば、MLDパケットによって行われる。MLDパケットが参加・離脱のいずれのためのメッセージであるかの判断と、イーサネットマルチキャストアドレスのマッピングをアドレス認識部12が行うのはIPv4のときと同様である。Queryメッセージに対する他のホストからの応答によって応答を控える仕組みも同様であるため、この形態においてもホストが送信するパケットだけではなく受信するパケットも解析する必要がある。IPv6でのマルチキャスト送信に対応可能なアドレス認識部12の一例を図11に示す。アドレス認識部12は入力コントローラ121、イーサネットヘッダ解析部123、IPv6ヘッダ解析部126、MLDヘッダ解析部127を備える。以下、各部分の動作を図12に示すMLDパケットフォーマットの図を参照しながら説明する。
[Address recognition unit corresponding to IPv6]
{Configuration and operation}
As another form, a case of a communication system using IPv6 as a network layer protocol will be described. Also in this form, the network medium uses Ethernet. In a communication system using IPv6, joining / leaving to / from a multicast group is performed by, for example, MLD packets. The
(1)ホストコンピュータから送信された、もしくは、受信されたパケットがアドレス認識部12に読み込まれると入力コントローラ121で、ある一定のビット幅のデータに分けられる。一定の幅に分けられたデータは、イーサネットヘッダ解析部123、IPv6ヘッダ解析部126、MLDヘッダ解析部127にそれぞれ送られる。
(2)イーサネットヘッダ解析部123は、MLDパケット(図12)のイーサネットヘッダのタイプフィールドの値が0x86ddであるかを判定する。タイプフィールドが0x86ddであれば、イーサネットヘッダ解析部123はIPv6プロトコルが使用されていると認識する。IPv6ヘッダの位置はパケットにVLANタグが含まれているかによって異なるため、イーサネットヘッダ解析部123はIPv6ヘッダ解析部126にIPv6ヘッダの開始位置を通知する。
(3)IPv6ヘッダ解析部126は、イーサネットヘッダ解析部123からの通知内容に基づいて、入力コントローラ121から送られてきたデータからIPv6ヘッダを取り出す。IPv6ヘッダ解析部126はIPv6ヘッダの正当性を確認した後、IPv6拡張ヘッダチェインをたどって、Next Headerフィールドの値を判定する。Next Headerフィールドの値が58であれば、ICMPv6であることを示す。MLDヘッダの開始位置はIPv6拡張ヘッダによって異なるため、ICMPv6であることを確認した後、IPv6ヘッダ解析部126は、MLDヘッダ解析部127にMLDヘッダの開始位置を通知する。
(4)MLDヘッダ解析部127は、通知されたMLDヘッダの開始位置に従って、入力コントローラ121からのデータのうちMLDヘッダ部分を取り出す。MLDヘッダ解析部127はMLDヘッダの正当性を確認する。その後、MLDヘッダ解析部127は、MLDヘッダのTypeフィールドを確認して、パケットがマルチキャストグループに参加するためのjoinメッセージであるか、離脱するためのleaveメッセージであるかを判定する。Typeフィールドの値が131(Multicast Listener Report)であれば、マルチキャストグループへの参加を示す。一方、Typeフィールドの値が132(Multicast Listener Done)であると、マルチキャストグループからの離脱を示す。MLDヘッダ解析部127は、判定結果を制御部13へ通知する。
(5)MLDヘッダ解析部127は、MLDヘッダに含まれているMulticast Addressフィールドに記録されているIPv6マルチキャストアドレスを取り出し、イーサネットマルチキャストアドレスへのマッピングを行う。MLDヘッダ解析部127は、マッピングして得られたイーサネットマルチキャストアドレスを制御部13に通知する。マッピングの具体的な方法については後述する。
(1) When a packet transmitted from a host computer or received is read into the
(2) The Ethernet
(3) The IPv6
(4) The MLD
(5) The MLD
{イーサネットマルチキャストアドレスの算出}
図13は、IPv6マルチキャストアドレスからイーサネットマルチキャストアドレスへ変換する方法を説明する図である。IPv6マルチキャストアドレスは、上位8ビットが全て1に固定されており、それに続く4ビットがフラグ、次の4ビットはスコープで、下位の112ビットがマルチキャストグループを表す。
{Calculation of Ethernet multicast address}
FIG. 13 is a diagram illustrating a method for converting an IPv6 multicast address to an Ethernet multicast address. In the IPv6 multicast address, the upper 8 bits are all fixed at 1, the subsequent 4 bits are a flag, the next 4 bits are a scope, and the lower 112 bits represent a multicast group.
IPv6マルチキャストアドレス用のイーサネットマルチキャストアドレスは、上位16ビットが「33:33」に固定されていて、下位32ビットでマルチキャストグループが表される。そこで、IPv6マルチキャストアドレスからイーサネットマルチキャストアドレスを求める際には、IPv6マルチキャストアドレスでグループを表している112ビットのうち、下位32ビットがマッピングされる。 In the Ethernet multicast address for the IPv6 multicast address, the upper 16 bits are fixed to “33:33”, and the multicast group is represented by the lower 32 bits. Therefore, when obtaining the Ethernet multicast address from the IPv6 multicast address, the lower 32 bits of the 112 bits representing the group by the IPv6 multicast address are mapped.
MLDヘッダ解析部127は、IPv6マルチキャストアドレスの下位32ビットをマッピングして得られたイーサネットマルチキャストアドレスを制御部13に通知する。
IPv6ではff02::01のマルチキャストアドレスはすべてのホスト、ff02::02のマルチキャストアドレスはすべてのルータを表すものとしてそれぞれ予約されている。これらのマルチキャストグループに関してはMLD等による明示的な参加、離脱が通知されない。そこで、これらに対応するイーサネットアドレス33:33:00:00:00:01と33:33:00:00:00:02を宛先とするパケットに関してはブロードキャストアドレスと同様に、受信パケットフィルタリング部14はフィルタテーブル141の内容に関わらずパケットを通過させる。
The MLD
In IPv6, the multicast address ff02 :: 01 is reserved for all hosts, and the multicast address ff02 :: 02 is reserved for all routers. These multicast groups are not notified of explicit participation or withdrawal by MLD or the like. Therefore, for the packets addressed to the Ethernet addresses 33: 33: 00: 00: 00: 01 and 33: 33: 00: 00: 00: 02 corresponding to these, the received
また、IPv6ではSolicited−Nodeアドレスと呼ばれるマルチキャストアドレスも使用される。これはユニキャストアドレスから算出されるもので、ff02:0:0:0:0:1:ff00:0000からff02:0:0:0:0:1:ffff:ffffまでの範囲のマルチキャストアドレスである。ユニキャストアドレスの下位24bitをマッピングする。例えば、4037::01:800:200e:8c6cというユニキャストアドレスに対応するSolicited−Nodeアドレスはff02::1:ff0e:8c6cである。これをさらにイーサネットアドレスにマッピングすると、33:33:ff:0e:8c:6cとなる。アドレス認識部12は、ホストが送信するIPv6パケットの送信元IPv6アドレスを認識し、それに対応するSolicited−Nodeアドレスのイーサネットマルチキャストアドレスも上述のようにして算出し、制御部13に通知する必要がある。
In IPv6, a multicast address called a solicited-node address is also used. This is calculated from the unicast address, and is a multicast address ranging from ff02: 0: 0: 0: 0: 1: ff00: 0000 to ff02: 0: 0: 0: 0: 1: ffff: ffff. is there. The lower 24 bits of the unicast address are mapped. For example, the Solicited-Node address corresponding to the unicast address 4037 :: 01: 800: 200e: 8c6c is ff02 :: 1: ff0e: 8c6c. If this is further mapped to the Ethernet address, 33: 33: ff: 0e: 8c: 6c is obtained. The
〔制御部〕
{マルチキャストアドレスの登録処理}
制御パケットがjoinメッセージであった場合に、制御部13は、マルチキャストアドレスをフィルタテーブル141に設定する。制御部13が行うフィルタテーブル141の設定は、IPv4でもIPv6でも同じである。
(Control part)
{Multicast address registration process}
When the control packet is a join message, the
制御部13は、前述のとおり、アドレス認識部12からイーサネットマルチキャストアドレスと、制御パケットの種類の通知を受ける。制御パケットがjoinメッセージである場合には、制御部13は図5に示した手順と同様の登録処理を行う。すなわち、制御部13は、処理しようとするアドレスがフィルタテーブル141に未登録であって、空きエントリが存在すればそのアドレスを登録する。処理対象のアドレスが、既にフィルタテーブル141に登録されていたとき、および、空きエントリがない場合の処理も、図5に示したのと同様である。
As described above, the
{マルチキャストアドレスの削除処理}
制御部13は、タイムスタンプにより一定時間使用されていないことが認識された場合に、マルチキャストアドレスの削除処理を行う。制御パケットがleaveメッセージであった場合は、他の仮想コンピュータ等がそのマルチキャストグループに参加している可能性があるので削除処理は行わない。
{Deleting multicast address}
The
タイムスタンプにより、指定時間の間、使用されなかったと認識されたアドレスの削除がされる場合は、制御部13は図6に示したとおりに処理を行う。
この処理は仮想コンピュータがマルチキャストグループに参加している場合に特に有意義であると考えられる。先に述べたとおり、仮想コンピュータは物理ホストコンピュータが動作している間に、停止、再起動することがあるし、他の物理ホストコンピュータへ移動することもある。このため、従来は、ホストコンピュータがマルチキャストの参加状況や仮想ネットワーク構成をリアルタイムに把握してフィルタリング条件の設定をする必要があった。また、ホストコンピュータがマルチキャストの参加状況や仮想ネットワーク構成を把握するために、仮想化ソフトウェアは複雑にならざるを得なかった。本実施形態のように、指定時間の間、使用されなかったアドレスをネットワークアダプタが自立的に削除することによって、ホストコンピュータの負担が軽減される。また、ホストコンピュータが、マルチキャスト参加状況やネットワーク構成の把握をする必要がないため、仮想化ソフトウェアを簡素化することが可能になる。
When the address recognized as unused for a specified time is deleted by the time stamp, the
This process is considered to be particularly meaningful when the virtual computer is participating in a multicast group. As described above, the virtual computer may be stopped or restarted while the physical host computer is operating, or may be moved to another physical host computer. For this reason, conventionally, it has been necessary for the host computer to grasp the participation status of the multicast and the virtual network configuration in real time to set the filtering condition. Moreover, in order for the host computer to grasp the participation status of the multicast and the virtual network configuration, the virtualization software has to be complicated. As in this embodiment, the network adapter autonomously deletes addresses that have not been used for a specified time, thereby reducing the burden on the host computer. Further, since the host computer does not need to grasp the multicast participation status and the network configuration, the virtualization software can be simplified.
〔受信パケットフィルタリング部の動作〕
受信パケットフィルタリング部14の動作は、基本的に、上述した実施例の場合と同じである。すなわち、ネットワーク側から受信したパケットについて、受信パケットフィルタリング部14は宛先イーサネットマルチキャストアドレスを認識する。次に、受信パケットフィルタリング部14は、パケットの宛先イーサネットマルチキャストアドレスをキーとしてフィルタテーブル141を検索する。そして、フィルタテーブル141のいずれかのエントリと、パケットの宛先イーサネットマルチキャストアドレスとが一致すれば、パケットをホストコンピュータ側に送信し、それ以外のパケットを破棄する。なお、この場合においても、上述の既定マルチキャストアドレス宛パケットやブロードキャストパケットについては、受信パケットフィルタリング部14は、フィルタテーブル141を参照することなくパケットを通過させる。
[Operation of received packet filtering unit]
The operation of the received
以上、述べてきたとおり、ネットワークアダプタ自身が、ハードウェアマルチキャストアドレスを設定するため、ホストコンピュータがマルチキャストグループ参加状況やネットワーク構成を把握しなくても、フィルタリングが可能である。したがって、フィルタリング設定に対するホストコンピュータの負担がなくなる。また、ホストコンピュータ上で動作する仮想化ソフトウェアの簡素化にもつながる。 As described above, since the network adapter itself sets the hardware multicast address, filtering is possible without the host computer knowing the multicast group participation status and the network configuration. Therefore, the burden on the host computer for the filtering setting is eliminated. It also leads to simplification of virtualization software that runs on the host computer.
<他の実施形態>
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
<Other embodiments>
The present invention is not limited to the above-described embodiment, and can be variously modified. Some examples are described below.
マルチキャストアドレスを学習可能なネットワークアダプタでは、前述のとおり、イーサネットヘッダ解析部123がタイプフィールドの確認、IPヘッダ解析部へIGMPヘッダもしくはMLDヘッダの開始部の通知などを行っている。しかし、同時に、イーサネットヘッダ解析部123は、入力コントローラ121から受け取ったデータのうち、イーサネットヘッダ部分の送信元MACアドレス部分を取り出すこともできる。イーサネットヘッダ解析部123で送信元MACアドレスも認識した場合においては、認識した送信元MACアドレスも制御部13に通知し、制御部13が通知されたMACアドレスの処理を行う。かかる形態の場合においては、ユニキャストアドレスと、マルチキャストアドレスの両方をネットワークアダプタが自立的に設定することができる。
In the network adapter capable of learning the multicast address, as described above, the Ethernet
IGMPパケットを用いてマルチキャストアドレスを認識するアドレス認識部12について述べた実施形態では、入力コントローラ121からイーサネットヘッダ解析部123、IPv4ヘッダ解析部124、IGMPヘッダ解析部125の全てに並列的に分割したデータが送られている。しかし、これは説明のために記載したに過ぎず、図8に示した形態に限られるものではない。実装によって、様々な形態をとることができる。
In the embodiment described for the
MLDパケットを用いてマルチキャストアドレスを認識するアドレス認識部12についても同様である。図11に示したように入力コントローラ121からイーサネットヘッダ解析部123、IPv6ヘッダ解析部126、および、MLDヘッダ解析部127に並列的に分割したデータが送られる必要があるわけではなく、実装によって様々な形態をとることができる。
The same applies to the
(付記1)仮想コンピュータを提供するホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタであって、
前記ホストコンピュータから送信されるパケットおよび前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットの送信元アドレスを認識する認識手段と、
前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、
前記認識手段によって認識されたアドレスを前記フィルタリング部における通過アドレスとして設定する制御手段、
を有することを特徴とするネットワークアダプタ。
(付記2)前記ネットワークはイーサネットの規格に基づくネットワークであって、
前記認識手段は、前記ホストコンピュータまたは前記仮想コンピュータから送信されたパケットのイーサヘッダの送信元MACアドレス領域から前記送信元アドレスを取り出す
ことを特徴とする、付記1に記載のネットワークアダプタ。
(付記3)前記ホストコンピュータから送信されるパケット、もしくは、前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットを受信することをトリガとして、前記フィルタリング部における通過アドレスの設定を行う
ことを特徴とする、付記1に記載のネットワークアダプタ。
(付記4)前記認識手段は、前記ホストコンピュータから送信されるパケットおよび前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットの一定部分を抜き出すことにより送信元アドレスを認識することを特徴とする、付記1に記載のネットワークアダプタ。
(付記5)前記認識手段が、前記ホストコンピュータから送信されるパケットを一定のビット幅に区切るための入力コントローラと、
前記入力コントローラから出力された前記一定のビット幅に区切られたパケットを記憶する記憶回路と、
記憶されたパケットのうちの一部分をアドレスとして取り出すアドレス取得手段と
を有することを特徴とする、付記1に記載のネットワークアダプタ。
(付記6)ホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタであって、
前記ホストコンピュータから送信される、もしくは、前記ホストコンピュータが受信するマルチキャスト制御パケットに含まれているマルチキャストアドレスから、前記ホストコンピュータの属するマルチキャストグループを識別する、ハードウェアマルチキャストアドレスを算出する算出手段と、
前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、
前記算出手段によって算出されたハードウェアマルチキャストアドレスを、前記フィルタリング部における通過アドレスとして設定する制御手段、
を有することを特徴とするネットワークアダプタ。
(付記7)前記マルチキャスト制御パケットに設定されている制御メッセージを解析する解析手段をさらに有し、
前記制御手段は、マルチキャストグループへの参加を標示した制御メッセージが前記解析手段により検出されたときに、前記ハードウェアマルチキャストアドレスを前記フィルタリング部における通過アドレスとして設定する
ことを特徴とする、付記6に記載のネットワークアダプタ。
(付記8)前記マルチキャスト制御パケットはIGMPパケットであり、
前記算出手段は、IGMPパケットに記されたIPv4マルチキャストアドレスに対応するハードウェアマルチキャストアドレスを算出することを特徴とする付記6に記載のネットワークアダプタ。
(付記9)前記マルチキャスト制御パケットはMLDパケットであり、
前記算出手段は、MLDパケットに記されたIPv6マルチキャストアドレスに対応するハードウェアマルチキャストアドレスを算出することを特徴とする付記6に記載のネットワークアダプタ。
(付記10)前記ホストコンピュータが仮想コンピュータを提供する仮想化手段を備えて、
前記算出手段は、前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットに含まれているマルチキャストアドレスからもハードウェアマルチキャストアドレスを算出する
ことを特徴とする付記6に記載のネットワークアダプタ。
(付記11)仮想コンピュータを提供するホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタのフィルタリング条件を設定する方法であって、
前記ネットワークアダプタ内で、前記ホストコンピュータから送信されるパケットおよび前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットの送信元アドレスを認識し、
認識したアドレスを、前記ネットワークから受信するパケットをフィルタリングするためのフィルタリング部における通過アドレスとして設定する
ことを特徴とする、フィルタリング条件の設定方法。
(付記12)ホストコンピュータに接続し、ネットワークとの間でパケットを送受信するネットワークアダプタのフィルタリング条件を設定する方法であって、
前記ネットワークアダプタ内で、前記ホストコンピュータから送信されるマルチキャスト制御パケットに含まれているマルチキャストアドレスから前記ホストコンピュータの属するマルチキャストグループを識別するハードウェアマルチキャストアドレスを算出し、
算出したハードウェアマルチキャストアドレスを、前記ネットワークから受信するパケットをフィルタリングするためのフィルタリング部における通過アドレスとして設定する
ことを特徴とする、フィルタリング条件の設定方法。
(Appendix 1) A network adapter that connects to a host computer that provides a virtual computer and transmits / receives a packet to / from a network.
Recognizing means for recognizing a source address of a packet transmitted from the host computer and a packet transmitted from a virtual computer provided by the host computer;
A filtering unit for filtering packets received from the network;
Control means for setting an address recognized by the recognition means as a passing address in the filtering unit;
A network adapter characterized by comprising:
(Appendix 2) The network is a network based on the Ethernet standard,
The network adapter according to
(Supplementary Note 3) The passing address is set in the filtering unit by receiving a packet transmitted from the host computer or a packet transmitted from a virtual computer provided by the host computer as a trigger. The network adapter according to
(Additional remark 4) The said recognition means recognizes a transmission source address by extracting the fixed part of the packet transmitted from the packet transmitted from the said host computer, and the virtual computer provided by the said host computer, It is characterized by the above-mentioned. The network adapter according to
(Additional remark 5) The said recognition means, The input controller for dividing | segmenting the packet transmitted from the said host computer into fixed bit width,
A storage circuit for storing the packet divided into the constant bit width output from the input controller;
The network adapter according to
(Appendix 6) A network adapter that connects to a host computer and transmits / receives a packet to / from a network.
Calculating means for calculating a hardware multicast address for identifying a multicast group to which the host computer belongs, from a multicast address included in a multicast control packet transmitted from the host computer or received by the host computer;
A filtering unit for filtering packets received from the network;
Control means for setting the hardware multicast address calculated by the calculation means as a passing address in the filtering unit;
A network adapter characterized by comprising:
(Additional remark 7) It further has an analysis means which analyzes the control message set to the said multicast control packet,
The
(Appendix 8) The multicast control packet is an IGMP packet,
The network adapter according to
(Supplementary note 9) The multicast control packet is an MLD packet,
The network adapter according to
(Additional remark 10) The said host computer is provided with the virtualization means which provides a virtual computer,
The network adapter according to
(Appendix 11) A method of setting a filtering condition of a network adapter that connects to a host computer that provides a virtual computer and transmits / receives a packet to / from a network,
Recognizing the source address of the packet transmitted from the host computer and the packet transmitted from the virtual computer provided by the host computer in the network adapter;
A method for setting filtering conditions, wherein the recognized address is set as a passing address in a filtering unit for filtering packets received from the network.
(Supplementary Note 12) A method of setting filtering conditions for a network adapter that connects to a host computer and transmits / receives a packet to / from a network,
In the network adapter, a hardware multicast address for identifying a multicast group to which the host computer belongs is calculated from a multicast address included in a multicast control packet transmitted from the host computer.
A filtering condition setting method, characterized in that the calculated hardware multicast address is set as a passing address in a filtering unit for filtering packets received from the network.
1 ネットワークアダプタ
11 ROM
12 アドレス認識部
121 入力コントローラ
122 ラッチ回路
123 イーサネット解析部
124 IPv4ヘッダ解析部
125 IGMPヘッダ解析部
126 IPv6ヘッダ解析部
127 MLDヘッダ解析部
13 制御部
14 受信パケットフィルタリング部
141 フィルタテーブル
2 ホストコンピュータ
201 仮想化ソフトウェア
30、40、50 仮想コンピュータ
31、32、41、42、51、52 仮想ネットワークアダプタ
1 Network adapter 11 ROM
DESCRIPTION OF
Claims (4)
前記ホストコンピュータから送信されるパケットおよび前記ホストコンピュータにより提供される仮想コンピュータから送信されるパケットの送信元アドレスを認識する認識手段と、
前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、
前記認識手段によって認識されたアドレスを前記フィルタリング部における通過アドレスとして設定する制御手段、
を有することを特徴とするネットワークアダプタ。 A network adapter that connects to a host computer that provides a virtual computer and transmits and receives packets to and from the network.
Recognizing means for recognizing a source address of a packet transmitted from the host computer and a packet transmitted from a virtual computer provided by the host computer;
A filtering unit for filtering packets received from the network;
Control means for setting an address recognized by the recognition means as a passing address in the filtering unit;
A network adapter characterized by comprising:
ことを特徴とする請求項1に記載のネットワークアダプタ。 The passage address is set in the filtering unit by receiving a packet transmitted from the host computer or a packet transmitted from a virtual computer provided by the host computer as a trigger. The network adapter according to 1.
前記ホストコンピュータから送信される、もしくは、前記ホストコンピュータが受信するマルチキャスト制御パケットに含まれているマルチキャストアドレスから、前記ホストコンピュータの属するマルチキャストグループを識別する、ハードウェアマルチキャストアドレスを算出する算出手段と、
前記ネットワークから受信するパケットをフィルタリングするフィルタリング部と、
前記算出手段によって算出されたハードウェアマルチキャストアドレスを、前記フィルタリング部における通過アドレスとして設定する制御手段、
を有することを特徴とするネットワークアダプタ。 A network adapter that connects to a host computer and sends and receives packets to and from the network.
Calculating means for calculating a hardware multicast address for identifying a multicast group to which the host computer belongs, from a multicast address included in a multicast control packet transmitted from the host computer or received by the host computer;
A filtering unit for filtering packets received from the network;
Control means for setting the hardware multicast address calculated by the calculation means as a passing address in the filtering unit;
A network adapter characterized by comprising:
前記制御手段は、マルチキャストグループへの参加を標示した制御メッセージが前記解析手段により検出されたときに、前記ハードウェアマルチキャストアドレスを前記フィルタリング部における通過アドレスとして設定する
ことを特徴とする請求項3に記載のネットワークアダプタ。 Further comprising analysis means for analyzing a control message set in the multicast control packet;
The control means sets the hardware multicast address as a passing address in the filtering unit when a control message indicating participation in a multicast group is detected by the analysis means. The described network adapter.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007235369A JP2009071423A (en) | 2007-09-11 | 2007-09-11 | Network adapter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007235369A JP2009071423A (en) | 2007-09-11 | 2007-09-11 | Network adapter |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009071423A true JP2009071423A (en) | 2009-04-02 |
Family
ID=40607257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007235369A Withdrawn JP2009071423A (en) | 2007-09-11 | 2007-09-11 | Network adapter |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009071423A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014045238A (en) * | 2012-08-24 | 2014-03-13 | Fujitsu Ltd | Information processing system, relay device, information processing device and information processing method |
JP2015159482A (en) * | 2014-02-25 | 2015-09-03 | アラクサラネットワークス株式会社 | Network device and communication method |
JP2016072713A (en) * | 2014-09-29 | 2016-05-09 | 株式会社日立製作所 | Unidirectional repeater |
JP2018029354A (en) * | 2017-09-27 | 2018-02-22 | 株式会社日立製作所 | One-way relay device |
-
2007
- 2007-09-11 JP JP2007235369A patent/JP2009071423A/en not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014045238A (en) * | 2012-08-24 | 2014-03-13 | Fujitsu Ltd | Information processing system, relay device, information processing device and information processing method |
US9344363B2 (en) | 2012-08-24 | 2016-05-17 | Fujitsu Limited | Information processing system, relay device, information processing device, and information processing method |
JP2015159482A (en) * | 2014-02-25 | 2015-09-03 | アラクサラネットワークス株式会社 | Network device and communication method |
JP2016072713A (en) * | 2014-09-29 | 2016-05-09 | 株式会社日立製作所 | Unidirectional repeater |
JP2018029354A (en) * | 2017-09-27 | 2018-02-22 | 株式会社日立製作所 | One-way relay device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210029027A1 (en) | Network system and routing method | |
JP3717836B2 (en) | Dynamic load balancer | |
US7616634B2 (en) | Gateway device connecting multicast-supported network to multicast-unsupported L2 network | |
US8711872B2 (en) | Data distribution apparatus, data distribution method, and distribution control program | |
US20040071148A1 (en) | Information device, gateway device and control method | |
US20120314605A1 (en) | Communication system, path control apparatus, packet forwarding apparatus, and path control method | |
CN108429680B (en) | Route configuration method, system, medium and equipment based on virtual private cloud | |
JP2003060662A (en) | Communication apparatus, communication method, program and recording medium | |
US20060056427A1 (en) | Multicast communication method and gateway apparatus | |
US20170237769A1 (en) | Packet transfer method and packet transfer apparatus | |
US7835341B2 (en) | Packet communication apparatus | |
US20160006684A1 (en) | Communication system, control apparatus, communication method, and program | |
CN113746753A (en) | BIERv6 message forwarding method, equipment and system | |
JP6299745B2 (en) | COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM | |
JP2009071423A (en) | Network adapter | |
US20060109807A1 (en) | Multicasting using tunneling method | |
CN109842692B (en) | VxLAN switch, system and method for obtaining host information in physical network | |
CN109151086B (en) | Message forwarding method and network equipment | |
KR102568754B1 (en) | Bierv6 packet forwarding method, device, and system | |
CN101827037A (en) | Multicast data stream sending method, device and two-layer switching equipment | |
KR20230022251A (en) | BIER OAM detection method, device, and system | |
WO2015184979A1 (en) | Methods and devices for processing packet, sending information, and receiving information | |
EP4184820A1 (en) | Ipv6 message transmission method, device and system | |
JP2016054332A (en) | Relay device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101207 |