JP2009071423A - Network adapter - Google Patents

Network adapter Download PDF

Info

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
Application number
JP2007235369A
Other languages
Japanese (ja)
Inventor
Shinji Kobayashi
伸治 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007235369A priority Critical patent/JP2009071423A/en
Publication of JP2009071423A publication Critical patent/JP2009071423A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce burdens on a host computer when setting filtering for packet reception. <P>SOLUTION: An address recognition part 12 provided in the network adapter 1 recognizes a sender address of a packet transmitted from a host computer 2. The recognized address is registered in a reception packet filtering part 14 as a passing address. <P>COPYRIGHT: (C)2009,JPO&INPIT

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には、アドレスを格納する学習テーブルを有するブリッジ装置が開示されている。
特表2001−510947号公報 特開2005−192059号公報 特公平6−24368号公報
That is, address registration to the filtering mechanism of the network adapter is controlled by the host computer.
A technique using registration of a MAC address to a network adapter by a host computer is also described in Patent Document 1. In connection with address registration, Patent Document 2 discloses a wireless LAN slave station that makes an authentication request to an access point using a MAC address of a packet transmission source terminal and registers the address when the authentication is successful. It is disclosed. Patent Document 3 discloses a bridge device having a learning table for storing addresses.
JP 2001-510947 A Japanese Patent Laid-Open No. 2005-192059 Japanese Patent Publication No. 6-24368

従来、ホストコンピュータには一つのハードウェアアドレスが割り当てられる構成が一般的であった。従って、前述のようにホストコンピュータがネットワークアダプタのフィルタリング機構へのアドレス登録を制御するシステムであっても、なんらの問題もなく、ホストコンピュータのパケット処理に関する負担を軽減できた。   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 Patent Document 3 is provided in the network adapter, it may be necessary to register almost all hardware addresses on the network. Therefore, several thousands to several tens of thousands of entries are required, the mounting cost is high, and it is not practical.

本発明の課題は、パケット受信のフィルタリング設定に伴うホストコンピュータへの負担を軽減することである。   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 network adapter 1 is connected to the host computer 2 and transmits / receives packets to / from the network. Here, as will be described in detail later, the host computer 2 can provide one or a plurality of virtual computers. The network adapter 1 includes a ROM 11, an address recognition unit 12, a control unit 13, and a received packet filtering unit 14. The received packet filtering unit 14 includes a filter table 141 as shown in FIG.

ROM11にはネットワークアダプタ1のハードウェアアドレスが記録されている。ホストコンピュータ2の初期化時に、ホストコンピュータ2がROM11に格納されたハードウェアアドレスを読み出して、自らの固有ハードウェアアドレスとして使用するためにメモリ上に記録する。   The ROM 11 records the hardware address of the network adapter 1. When the host computer 2 is initialized, the host computer 2 reads the hardware address stored in the ROM 11 and records it on the memory for use as its own unique hardware address.

アドレス認識部12はホストコンピュータ側から送信された送信パケットに含まれるアドレスを認識し、制御部13に認識したアドレスを通知する。
制御部13は通知されたアドレスを登録する必要があるかを判断し、必要に応じてフィルタリング条件の設定を行う。また、登録されているアドレスであっても、一定時間以上使用されていないものがあれば登録を削除するなど、制御部13はフィルタリング条件の設定・変更を行う。フィルタリング条件の設定や変更は、受信パケットフィルタリング部14に含まれているフィルタテーブル141の内容を変更することにより行われる。
The address recognition unit 12 recognizes an address included in the transmission packet transmitted from the host computer side, and notifies the control unit 13 of the recognized address.
The control unit 13 determines whether it is necessary to register the notified address, and sets filtering conditions as necessary. In addition, even if the address is registered, if there is an address that has not been used for a certain period of time, the control unit 13 sets or changes the filtering condition, such as deleting the registration. Setting or changing the filtering condition is performed by changing the contents of the filter table 141 included in the received packet filtering unit 14.

受信パケットフィルタリング部14は、ネットワーク側からパケットを受信したときに、そのパケットを通過させるかの判断を行う。まず、受信パケットフィルタリング部14は、フィルタテーブル141の内容と、受信したパケットの宛先アドレスを比較する。フィルタテーブル141に登録されているアドレスを「宛先アドレス」としたパケットは、ホストコンピュータ側に存在するコンピュータが受信する必要があるパケットである。そこで、ネットワークから受信したパケットの宛先アドレスがフィルタテーブル141に登録されている場合に、そのパケットを通過させる。ただし、受信パケットフィルタリング部14は、ブロードキャストパケットについてはフィルタリングせずに全て通過させる。なお、本明細書中では「宛先アドレス」と「送信先アドレス」とは同義である。同様に「送信先MACアドレス」と「宛先MACアドレス」も同義である。   When receiving a packet from the network side, the received packet filtering unit 14 determines whether to pass the packet. First, the received packet filtering unit 14 compares the contents of the filter table 141 with the destination address of the received packet. A packet having an address registered in the filter table 141 as a “destination address” is a packet that needs to be received by a computer existing on the host computer side. Therefore, when the destination address of a packet received from the network is registered in the filter table 141, the packet is passed. However, the received packet filtering unit 14 passes all broadcast packets without filtering. In this specification, “destination address” and “destination address” are synonymous. Similarly, “destination MAC address” and “destination MAC address” are also synonymous.

このように、ネットワークアダプタ1は、ホストコンピュータ2(または、ホストコンピュータ2が提供する仮想コンピュータ)から送信されるパケットに含まれるアドレスを抽出し、その抽出したアドレスを利用して受信パケットフィルタリング部14の設定を自立的に行う。したがって、ホストコンピュータ2は、ネットワークアダプタ1の受信パケットフィルタリング部14の設定を行う必要がない。   In this way, the network adapter 1 extracts an address included in a packet transmitted from the host computer 2 (or a virtual computer provided by the host computer 2), and uses the extracted address to receive packet filtering unit 14 Set up independently. Therefore, the host computer 2 does not need to set the received packet filtering unit 14 of the network adapter 1.

なお、アドレス認識部12、制御部13、受信パケットフィルタリング部14は、例えば、ハードウェア回路により実現される。ただし、これらの機能の一部または全部をソフトウェアにより実現するようにしてもよい。   The address recognition unit 12, the control unit 13, and the received packet filtering unit 14 are realized by, for example, a hardware circuit. However, some or all of these functions may be realized by software.

以上がネットワークアダプタ1の動作の概要であるが、ユニキャストアドレスのみについて自立的に設定を行う実施形態と、マルチキャストアドレスの設定が可能な実施形態では、ネットワークアダプタ1の構成、動作が異なる。以下、ユニキャストアドレスの設定を行う実施形態と、マルチキャストアドレスの設定が可能な実施形態とに分けて説明する。   The outline of the operation of the network adapter 1 has been described above, but the configuration and operation of the network adapter 1 are different between the embodiment in which only the unicast address is set independently and the embodiment in which the multicast address can be set. Hereinafter, an embodiment in which a unicast address is set and an embodiment in which a multicast address can be set will be described separately.

<実施形態のネットワークアダプタの動作(1)>
〔動作の概要〕
パケット送信時には、ホストコンピュータ2が送信先ハードウェアアドレスと送信元ハードウェアアドレスを設定したパケットを作成し、ネットワークアダプタ1に送信を依頼する。そこで、パケットの送信を依頼されたネットワークアダプタは以下の処理を行う。
<Operation of Network Adapter of Embodiment (1)>
[Overview of operation]
At the time of packet transmission, the host computer 2 creates a packet in which the transmission destination hardware address and the transmission source hardware address are set, and requests the network adapter 1 to transmit the packet. Therefore, the network adapter requested to transmit the packet performs the following processing.

(1)アドレス認識部12が送信されるパケットのヘッダを解析し、送信元ハードウェアアドレスを認識する。
(2)認識した送信元ハードウェアアドレスをアドレス認識部12が制御部13に通知する。
(3)制御部13は、通知されたアドレスが受信パケットフィルタリング部14の備えるフィルタテーブル141に登録されているか確認する。通知されたアドレスがフィルタテーブル141に登録されていない場合には、制御部13がフィルタテーブル141に登録を行う。
(4)受信パケットフィルタリング部14は、受信パケットの送信先ハードウェアアドレスを確認する。受信パケットの送信先アドレスがフィルタテーブル141に登録されていた場合には、パケットを通過させてホストコンピュータ側に送信する。受信パケットの送信先ハードウェアアドレスが同報アドレスである場合には、受信パケットフィルタリング部14は、フィルタテーブル141の確認を行わずにパケットを通過させる。
(5)ホストコンピュータ側に送信しないパケットを破棄する。
(1) The address recognition unit 12 analyzes the header of the packet to be transmitted, and recognizes the transmission source hardware address.
(2) The address recognition unit 12 notifies the control unit 13 of the recognized transmission source hardware address.
(3) The control unit 13 confirms whether the notified address is registered in the filter table 141 included in the received packet filtering unit 14. When the notified address is not registered in the filter table 141, the control unit 13 registers in the filter table 141.
(4) The received packet filtering unit 14 confirms the transmission destination hardware address of the received packet. When the transmission destination address of the received packet is registered in the filter table 141, the packet is transmitted and transmitted to the host computer side. If the destination hardware address of the received packet is a broadcast address, the received packet filtering unit 14 passes the packet without checking the filter table 141.
(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 network adapter 1 without setting the filtering mechanism of the network adapter 1 from the host computer side. It becomes possible to do.

かかるネットワークカードを用いることによって、仮想コンピュータを含む複雑な仮想ネットワークが構築されていた場合においてもホストコンピュータ側からのフィルタリング機構の設定が不要になる。   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 virtualization software 201 is required to perform complicated processing. In the example shown in FIG. 3, each of the three virtual computers provided by the host computer has two virtual network adapters, and a virtual hardware address is assigned to each virtual network adapter. Therefore, the packet that the physical host computer 2 needs to receive has the virtual hardware addresses V11, V12, V21, V22, V31, and V32 as destination addresses in addition to those that are destined for the physical hardware addresses P1 and P2. It is what. The virtualization software 201 needs to grasp all the virtual hardware addresses and set the filtering mechanism.

また、物理ホストコンピュータが複数の物理ネットワークアダプタを有する場合には、仮想化ソフトウェア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 virtualization software 201 is further complicated. For example, the physical host computer 2 shown in FIG. 3 has two physical network adapters, and three virtual network adapters are connected to each physical network adapter via virtual switches (SW1, SW2). . Accordingly, each physical network adapter needs to register its own physical hardware address and the virtual hardware address used by the connected virtual network adapter. For example, the physical hardware address P1 and the virtual hardware addresses V11, V21, and V31 must be registered in the physical network adapter 1a.

さらに、物理的なホストコンピュータが運用されている間に仮想コンピュータが停止・再起動することもある。仮想ハードウェアアドレスは、例えば、仮想コンピュータの初期化の際に、乱数などによって生成されるので、仮想コンピュータが再起動することによって、仮想ハードウェアアドレスが変更することが予想される。従って、かかる場合にも対処可能であることが仮想化ソフトウェア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 virtualization software 201 has been required to be able to cope with such a case.

実施形態のネットワークアダプタは、これらの問題に対処するために、ネットワークへ送出されるパケットの送信元ハードウェアアドレスを自立的に学習してフィルタリングテーブルを設定する。このため、物理ホストコンピュータがフィルタリング条件の設定を行う必要がない。したがって、仮想ハードウェアアドレスや仮想ネットワーク構成を認識する必要が無くなり、仮想化ソフトウェア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 virtualization software 201 can be simplified. Hereinafter, the operation of the network adapter 1 will be described in detail.

〔アドレス認識部の動作〕
ネットワークアダプタに実装されるアドレス認識部12の一例を図4に示す。アドレス認識部12は、入力コントローラ121、ラッチ回路122を備える。ホストコンピュータから送信されたパケットがアドレス認識部12に読み込まれると入力コントローラ121が、ある一定のビット幅のデータに分割する。図4では、一例として64ビット幅で区切っているが、分けられるビット幅は任意である。入力コントローラ121で区切られたデータはラッチ回路122で一旦、記憶されてから送信される。このときに、アドレス認識部12は、通信プロトコルにより予め決められている領域(すなわち、送信元アドレス領域)からビット列を抽出することにより、アドレスを認識する。
[Operation of address recognition unit]
An example of the address recognition unit 12 mounted on the network adapter is shown in FIG. The address recognition unit 12 includes an input controller 121 and a latch circuit 122. When a packet transmitted from the host computer is read into the address recognition unit 12, the input controller 121 divides the data into data having a certain bit width. In FIG. 4, as an example, it is divided by a 64-bit width, but the divided bit width is arbitrary. The data delimited by the input controller 121 is temporarily stored in the latch circuit 122 and then transmitted. At this time, the address recognizing unit 12 recognizes the address by extracting a bit string from an area predetermined by the communication protocol (that is, a source address area).

例えば、ネットワークメディアとしてイーサネットが用いられている場合は、パケットのフォーマットは図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 input controller 121 divides the packet into 64 bits from the beginning, the last 16 bits of the first divided line and the 32 bits from the beginning of the second line are the source MAC addresses. . Therefore, as shown in FIG. 4, L4 on the first line, L1 and L2 on the second line are recognized as the source MAC addresses, and notified to the control unit 13.

仮想コンピュータから送信されるパケットおよび物理ホストコンピュータから送信されるパケットのフォーマットは同じであるため、仮想ハードウェアアドレスについても、同様の処理で送信元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 virtual computer 1 is initialized, a virtual MAC address V11 generated by a random number is assigned to the virtual network adapter 31. When the virtual computer 30 transmits a packet via the virtual network adapter 31, the virtual computer 30 generates an Ethernet header with the source MAC address as V11. The generated packet is sent to the physical network adapter 1a via the virtual switch SW1. Even if the packet is transmitted by the virtual computer via the virtual network adapter, the format is the same as the packet transmitted from the physical host computer as described above. Therefore, the address is recognized in the same manner as the packet transmitted from the physical host computer, and is notified to the control unit 13.
As described above, the address recognition unit 12 can recognize a necessary address in the same manner without distinguishing between a physical hardware address and a virtual hardware address.

〔フィルタテーブルへのアドレスの登録処理〕
制御部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 control unit 13 performs the registration process to the filter table 141. First, the network adapter is initialized (step S1). In the initialization process, the control unit 13 deletes all entries in the filter table 141. After the filter table 141 is initialized, the process waits until a transmission packet from the host computer is received (step S2). The filter table 141 manages hardware addresses related to filtering and time stamps for individual hardware addresses, as shown in FIG. 2 as an example. Here, the time stamp represents the time when the packet having the corresponding hardware address as the transmission source hardware address was last transmitted.

送信パケットがアドレス認識部12により解析され、そのパケットの送信元ハードウェアアドレスが通知されると、制御部13は、その送信元アドレスがフィルタテーブル141に登録されているかを確認する(ステップS3、S4)。フィルタテーブル141に登録されていなかった場合には、フィルタテーブル141に空きエントリがあるかを制御部13が確認し、空きエントリがあれば取得したハードウェアアドレスをフィルタテーブル141に登録する(ステップS5、S6)。登録が終わるとフィルタテーブル141のタイムスタンプを現在時刻に更新する(ステップS8)。   When the transmission packet is analyzed by the address recognition unit 12 and the transmission source hardware address of the packet is notified, the control unit 13 confirms whether or not the transmission source address is registered in the filter table 141 (step S3, S4). If it is not registered in the filter table 141, the control unit 13 checks whether there is an empty entry in the filter table 141. If there is an empty entry, the acquired hardware address is registered in the filter table 141 (step S5). , S6). When registration is completed, the time stamp of the filter table 141 is updated to the current time (step S8).

フィルタテーブル141に空きエントリが存在しなかった場合には、制御部13はアドレス認識部12から通知されたハードウェアアドレスを登録することができない。登録されていないハードウェアアドレス宛のパケットは、同報アドレスでない限りネットワークアダプタが破棄してしまい、そのパケットをホストコンピュータ側で受信することができない。そこで、フィルタテーブル141に空きエントリが存在しなかった場合には、制御部13は受信パケットフィルタリング部14のフィルタリング機能を無効にし、全てのパケットを通すように設定を行う(ステップS7)。すると、ネットワークから到着したパケット全てがホストコンピュータに受信されるようになる。この場合にはネットワーク側から到着したパケットをホストコンピュータが全て受信するため、ホストコンピュータに負荷がかかるが通信は可能である。特に仮想コンピュータが一時的に増設された場合などにおいて、一時的にエントリ数が不足したときに効果的な処置である。全てのパケットを通すように設定した場合であっても設定を終えた後に、後述するように、不使用時間が長いなどの理由で優先度の低いアドレスを、制御部13がフィルタテーブル141から削除することによって、空きエントリができた場合には、再度フィルタリング機能を有効にする。   When there is no empty entry in the filter table 141, the control unit 13 cannot register the hardware address notified from the address recognition unit 12. A packet addressed to an unregistered hardware address is discarded by the network adapter unless it is a broadcast address, and the packet cannot be received on the host computer side. Therefore, if there is no empty entry in the filter table 141, the control unit 13 disables the filtering function of the received packet filtering unit 14 and performs setting to pass all packets (step S7). Then, all the packets arriving from the network are received by the host computer. In this case, the host computer receives all packets arriving from the network side, so that the host computer is loaded, but communication is possible. This is particularly effective when the number of entries is temporarily insufficient, such as when a virtual computer is temporarily added. Even when all packets are set to pass, the controller 13 deletes the low-priority address from the filter table 141 because the non-use time is long as will be described later after the setting is completed. By doing so, if a free entry is made, the filtering function is enabled again.

アドレス認識部12から制御部13に通知されてきたアドレスが既にフィルタテーブル141に登録されていた場合には、フィルタテーブル141への登録やフィルタテーブル141の空きエントリの確認を行わず、タイムスタンプの更新のみが行われる(ステップS8)。   If the address notified from the address recognition unit 12 to the control unit 13 has already been registered in the filter table 141, registration in the filter table 141 and confirmation of empty entries in the filter table 141 are not performed, and the time stamp Only updating is performed (step S8).

〔フィルタテーブルからのアドレスの削除処理〕
制御部13は、必要に応じて、フィルタテーブル141に登録されているアドレスの削除処理を行う。フィルタテーブル141のエントリ数は有限であるため、通信を行っていないハードウェアアドレスの登録を残すことによって、新たなアドレスを登録できない状況を避けるためである。また、一定の期間、通信が行われていない場合には登録されているハードウェアアドレスが既に存在していない可能性があるためである。
[Deleting address from the filter table]
The control unit 13 performs an address deletion process registered in the filter table 141 as necessary. This is because the number of entries in the filter table 141 is limited, so that a situation in which a new address cannot be registered by leaving a registration of a hardware address that is not performing communication is avoided. This is also because there is a possibility that the registered hardware address does not already exist when there is no communication for a certain period.

図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 control unit 13 confirms the time stamp of each filter entry (step S11). Next, the control unit 13 compares the current time with the time recorded in each time stamp, and whether or not the time elapsed since the last time stamp update of each entry exceeds the specified time. Is confirmed (step S12). Here, the “specified time” is a predetermined time. The specified time is preferably about several hundred seconds, but can be set arbitrarily and may be longer or shorter than several hundred seconds. When the time stamp has not been updated longer than the specified time, the control unit 13 determines that the address corresponding to the time stamp is a hardware address that is not used. Therefore, the control unit 13 deletes the filter entry that has passed the specified time since the last time stamp update (step S13).

このような処理は特に仮想ネットワークを考慮したときに有効である。仮想ハードウェアアドレスは仮想ネットワークアダプタに対応しているアドレスである。前述のとおり、仮想ハードウェアアドレスは、仮想コンピュータが初期化したときに乱数によって生成されることがある。また、物理ホストコンピュータが動作しているときに、仮想コンピュータが停止、再起動されることもある。従って、物理ホストコンピュータの動作時に仮想コンピュータが再起動して、仮想ネットワークアダプタに割り当てられた仮想ハードウェアアドレスが変更されることもあり得る。従来のフィルタリングにおいては、ホストコンピュータがフィルタリングの制御を行っていたため、使用されている仮想ハードウェアアドレスが変更された場合には、ホストコンピュータはその変更を認識して、フィルタリングの制御を行う必要があった。しかし、本実施形態で示したネットワークアダプタでは、タイムスタンプを用いてフィルタテーブル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 control unit 13 is deleted. To do. For this reason, even if the virtual hardware address is changed, the host computer does not need to perform the deletion process. Therefore, when the virtual hardware address is changed, the virtualization software running on the host computer does not need to change the filtering settings due to the address change, so the virtualization software can be simplified. It becomes.

〔受信パケットフィルタリング部の動作〕
受信パケットフィルタリング部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 packet filtering unit 14 determines whether or not to allow the received packet to pass. When a packet is transmitted from the network side to the network adapter, the received packet filtering unit 14 recognizes the destination hardware address. Also, it is determined whether the address is a unicast address or a broadcast address. As an example of a method for determining whether the address is a unicast address or a broadcast address, a determination method using the head portion of the address can be considered. For example, in the case of Ethernet, if the least significant bit of the first octet is 1, such as “01: 00: 5e” or “33:33”, the hardware address is a multicast address, and “ff: ff: ff: ff” : Ff: ff "is a broadcast address. Any other address is recognized as a unicast address.

宛先アドレスがユニキャストアドレスであった場合には、受信パケットフィルタリング部14はパケットの宛先ハードウェアアドレスをキーとしてフィルタテーブル141を検索する。フィルタテーブル141のいずれかのエントリと、パケットの宛先ハードウェアアドレスとが一致すればパケットをホストコンピュータ側に送信し、それ以外のパケットを破棄する。   If the destination address is a unicast address, the received packet filtering unit 14 searches the filter table 141 using the destination hardware address of the packet as a key. If any entry in the filter table 141 matches the destination hardware address of the packet, the packet is transmitted to the host computer, and the other packets are discarded.

宛先アドレスが、マルチキャストアドレスもしくはブロードキャストアドレスであるときには、受信パケットフィルタリング部14は、フィルタテーブル141を参照することなくパケットを通過させる。   When the destination address is a multicast address or a broadcast address, the received packet filtering unit 14 passes the packet without referring to the filter table 141.

〔フィルタリング条件設定のタイミング〕
図5からも明らかであるように、ネットワークアダプタ1は、初期化後、ホストコンピュータもしくはホストコンピュータが提供する仮想コンピュータから送信パケットを受信するまでの間は、フィルタテーブル141の設定を行わない。また、複数のパケットが送信されるときには、第一の送信パケットについて、送信元アドレスの認識、登録などの処理が終わると、第二の送信パケットを受信するまではフィルタテーブルへの登録処理を行わない。すなわち、本実施形態で示したネットワークアダプタ1は、ホストコンピュータもしくはホストコンピュータが提供する仮想コンピュータから、送信パケットを受信することをトリガとして、フィルタテーブル141の登録処理を行う。
[Timing for setting filtering conditions]
As is clear from FIG. 5, the network adapter 1 does not set the filter table 141 until the transmission packet is received from the host computer or the virtual computer provided by the host computer after the initialization. When a plurality of packets are transmitted, after the first transmission packet has been processed such as source address recognition and registration, registration processing in the filter table is performed until the second transmission packet is received. Absent. That is, the network adapter 1 shown in the present embodiment performs the registration process of the filter table 141 by using a host computer or a virtual computer provided by the host computer as a trigger for receiving a transmission packet.

このように、ネットワークアダプタ1は、ホストコンピュータによる設定なしで、自立的に、そのホストコンピュータ(または、ホストコンピュータが提供する仮想コンピュータ)宛てのパケットを通過させるためのフィルタ条件を設定する。ただし、ホストコンピュータ宛のパケットが受信パケットフィルタリング部14を通過するためには、そのパケットが相手端末から送信されるより前に、そのホストコンピュータからネットワークアダプタ1を介してパケット送信が行われる必要がある。しかし、通常のパケット通信システムにおいては、ホストコンピュータは、相手端末からパケットを受信する前に、自らのハードウェアアドレスをその相手端末に通知するためのパケットを送信する。従って、ホストコンピュータが受信すべきパケットのアドレスは、そのパケットが相手端末から送信される前にフィルタテーブル141に登録されることになる。   In this way, the network adapter 1 sets filter conditions for allowing packets addressed to the host computer (or a virtual computer provided by the host computer) to pass through independently without setting by the host computer. However, in order for a packet addressed to the host computer to pass through the received packet filtering unit 14, it is necessary for the host computer to transmit a packet via the network adapter 1 before the packet is transmitted from the counterpart terminal. is there. However, in a normal packet communication system, the host computer transmits a packet for notifying its partner terminal of its hardware address before receiving the packet from the partner terminal. Therefore, the address of the packet to be received by the host computer is registered in the filter table 141 before the packet is transmitted from the partner terminal.

一例として、ネットワークメディアとしてイーサネットを用い、ネットワーク層のプロトコルとしてインターネットプロトコル(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 network adapter 1 connected to each computer does not discard the ARP request packet. Therefore, the computer 2b (responding computer) can receive the ARP request. The computer 2b checks whether or not the IP address included in the ARP request matches its own IP address, and if it matches, sends an ARP response to the computer 2a. The format of the ARP response packet is as shown in FIG. A transmission destination MAC address and a transmission source MAC address are described in the Ethernet header portion.

コンピュータ2bがARP応答を送信すると、コンピュータ2bに接続されているネットワークアダプタ1は、そのARP応答を含む送信パケットを受け取ることになる。ここで、ARP応答パケットのイーサネットヘッダ部分は、通常のパケットと同様に、送信先MACアドレスおよび送信元MACアドレスを含む。そこで、ネットワークアダプタ1は、前述のとおりに、イーサネットヘッダに含まれる送信元MACアドレスを認識し、フィルタテーブル141に登録する。   When the computer 2b transmits an ARP response, the network adapter 1 connected to the computer 2b receives a transmission packet including the ARP response. Here, the Ethernet header portion of the ARP response packet includes a transmission destination MAC address and a transmission source MAC address, as in a normal packet. Therefore, the network adapter 1 recognizes the transmission source MAC address included in the Ethernet header and registers it in the filter table 141 as described above.

コンピュータ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 network adapter 1. Thereafter, the computer 2a can transmit packets to the computer 2b by unicast communication. At this time, the MAC address of the computer 2b is registered in the network adapter 1 connected to the computer 2b when the ARP response packet is returned. Therefore, the computer 2b can receive a packet from the computer 2a. Here, the same processing is performed even if the computers 2a and / or 2b that perform ARP resolution are virtual computers instead of physical host computers.

以上、述べてきたとおり、ネットワークアダプタが自立的に受信パケットフィルタリング部14のフィルタリング条件を設定するため、ホストコンピュータに負荷をかけることなくフィルタリングが可能である。   As described above, since the network adapter autonomously sets the filtering conditions of the received packet filtering unit 14, filtering is possible without imposing a load on the host computer.

また、本実施形態に係るアドレス認識部12が認識した送信パケットに含まれる送信元MACアドレスを、制御部13がフィルタテーブル141に登録することになる。すなわち、物理ホストコンピュータおよび物理ホストコンピュータが提供する仮想コンピュータが、使用するハードウェアアドレスのみがフィルタテーブル141に登録される。つまり、ネットワーク側に接続されているノードについてのMACアドレスを一切登録しないため、フィルタテーブル141に必要とされるエントリ数は数十程度で良いことになる。このため、学習型ブリッジなどのように多くのメモリを必要としないため、安価に製造することが可能となる。   Further, the control unit 13 registers the transmission source MAC address included in the transmission packet recognized by the address recognition unit 12 according to the present embodiment in the filter table 141. That is, only the hardware address used by the physical host computer and the virtual computer provided by the physical host computer is registered in the filter table 141. That is, since no MAC address is registered for a node connected to the network side, the number of entries required in the filter table 141 may be several tens. For this reason, since a large amount of memory is not required unlike a learning bridge, it can be manufactured at low cost.

<実施形態のネットワークアダプタの動作(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 address recognition unit 12 recognizes not only the transmission packet but also the reception packet. When setting a multicast address, the network adapter performs the following processing.

(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 address recognition unit 12 analyzes a multicast control packet transmitted / received via the network adapter 1. At this time, the address recognition unit 12 recognizes a multicast address included in the packet.
(2) The address recognition unit 12 calculates a hardware multicast address from the recognized network layer multicast address. Further, the address recognition unit 12 also recognizes whether the control packet is a packet for joining a multicast group or a packet for leaving.
(3) The address recognition unit 12 notifies the control unit 13 of the recognized multicast address. In addition, the address recognition unit 12 also notifies the control unit 13 whether the packet is a notification of participation in the multicast group (join) or a notification of leave.
(4) If the transmitted / received packet is a join message to the multicast group, the control unit 13 confirms whether the notified address is registered in the filtering table existing in the received packet filtering unit 14. If the notified address is not registered in the filtering table, it is registered in the filter table 141.
(5) If the transmitted packet is a leave message from the multicast group, the control unit 13 ignores the packet. This is because another virtual computer may participate in the multicast group.
(6) When the network adapter 1 receives a packet addressed to the multicast address, the received packet filtering unit 14 confirms the destination multicast address. When the destination multicast address is a multicast address to which all hosts belong by default or is registered in the filter table 141, the packet is transmitted and transmitted to the host computer side. However, the broadcast packet is transferred to the host computer without filtering.
(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 network adapter 1, so that the burden on the host computer is reduced.

ホストコンピュータがマルチキャストアドレスの設定を行わないことは、特に、仮想コンピュータがマルチキャストに参加する場合に大きな意味を持つ。例えば、図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 virtualization software 201 needs to grasp the participation status in the multicast group and the configuration of the virtual network. For example, consider the case where virtual computers 30 and 40 participate in the same multicast via virtual network adapters 31 and 41, respectively. At this time, since the virtual network adapters 31 and 41 are connected to the same physical network adapter 1a, the virtualization software 201 only needs to set the packet addressed to the multicast address only to the physical network adapter 1a. However, even if the virtual computers 30 and 40 participate in the same multicast group, the virtual computer 30 may participate through the virtual network adapter 31 and the virtual computer 40 may participate through the virtual network adapter 42. possible. In this case, the virtualization software 201 needs to set both the physical network adapters 1a and 1b to pass packets addressed to the multicast address.

この構成によれば、ネットワークアダプタがマルチキャストアドレスの解析・学習を行うことにより、ホストコンピュータからマルチキャストアドレスの設定を行う必要がなくなる。そのため、仮想化ソフトウェア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 virtualization software 201 can be simplified. When the virtualization software is simplified, the design, implementation, and verification become easier, and as a result, the reliability of the virtualization software can be improved. Hereinafter, the operation contents will be described for each part of the network adapter 1.

〔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 address recognition unit 12 performs mapping to the hardware multicast address. In this example, since the network medium is Ethernet, “hardware multicast address” may be described as “Ethernet multicast address”.

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 address recognition unit 12 of the network adapter 1 that can support multicast address transmission / reception in a communication system using IPv4 is shown in FIG. The address recognition unit 12 includes an input controller 121, an Ethernet header analysis unit 123, an IPv4 header analysis unit 124, and an IGMP header analysis unit 125. The operation of each part will be described below with reference to the IGMP packet format diagram shown in FIG.

(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 address recognition unit 12, the input controller 121 divides it into data having a certain bit width. Data divided into a certain width is sent to the Ethernet header analysis unit 123, the IPv4 header analysis unit 124, and the IGMP header analysis unit 125, respectively.
(2) The Ethernet header analysis unit 123 determines whether the value of the type field of the Ethernet header of the IGMP packet (FIG. 9) is 0x0800. If the type field is 0x0800, it means that the IPv4 protocol is used. Since the position of the IPv4 header differs depending on whether or not the VLAN tag is included in the packet, the Ethernet header analysis unit 123 notifies the IPv4 header analysis unit 124 of the start position of the IPv4 header after confirming that the packet is the IPv4 protocol.
(3) The IPv4 header analysis unit 124 extracts the IPv4 header portion of the data received from the input controller 121 according to the start position of the IPv4 header notified by the Ethernet header analysis unit 123. Next, after confirming the validity of the IPv4 header, the IPv4 header analysis unit 124 determines whether the protocol field of the IPv4 header is 2. A protocol field value of 2 indicates an IGMP packet. Since the start position of the IGMP header differs depending on the IP option, if the protocol field is 2, the IPv4 header analysis unit 124 notifies the IGMP header analysis unit 125 of the start position of the IGMP header.
(4) The IGMP header analysis unit 125 extracts the IGMP header portion from the data sent from the input controller 121 according to the notification content from the IPv4 header analysis unit 124. The IGMP header analysis unit 125 confirms the validity of the IGMP header. Thereafter, the IGMP header analysis unit 125 checks the Type field of the IGMP header and determines whether the packet is a join message for joining the multicast group or a leave message for leaving. When the value of the Type field is 0x12 (IGMP v1 Report) or 0x16 (IGMP v2 Report), it indicates participation in the multicast group. When the value of the Type field is 0x17 (IGMP v2 Leave), it indicates a departure from the multicast group. The IGMP header analysis unit 125 notifies the control unit 13 of the determination result.
(5) The IGMP header analysis unit 125 confirms the Group Address field included in the IGMP header. The IPv4 multicast address recorded in the Group Address field is taken out and mapped to the Ethernet multicast address. The IGMP header analysis unit 125 notifies the control unit 13 of the Ethernet multicast address obtained by the mapping. A specific method of mapping will be described later.

なお、(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 header analysis unit 125 obtains an Ethernet multicast address by mapping the lower 23 bits of the IPv4 multicast address, and notifies the control unit 13 of it.

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 packet filtering unit 14 is similar to the broadcast address. The packet is allowed to pass regardless of the contents of the filter table 141.

〔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 address recognizing unit 12 performs the determination of whether the MLD packet is a message for joining or leaving and the mapping of the Ethernet multicast address, as in IPv4. Since the mechanism for refraining a response by a response from another host to the Query message is the same, it is necessary to analyze not only the packet transmitted by the host but also the received packet in this form. An example of the address recognition unit 12 that can cope with multicast transmission in IPv6 is shown in FIG. The address recognition unit 12 includes an input controller 121, an Ethernet header analysis unit 123, an IPv6 header analysis unit 126, and an MLD header analysis unit 127. The operation of each part will be described below with reference to the MLD packet format diagram shown in FIG.

(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 address recognition unit 12, the input controller 121 divides the packet into data having a certain bit width. Data divided into a certain width is sent to the Ethernet header analysis unit 123, the IPv6 header analysis unit 126, and the MLD header analysis unit 127, respectively.
(2) The Ethernet header analysis unit 123 determines whether the value of the type field of the Ethernet header of the MLD packet (FIG. 12) is 0x86dd. If the type field is 0x86dd, the Ethernet header analysis unit 123 recognizes that the IPv6 protocol is used. Since the position of the IPv6 header differs depending on whether the VLAN tag is included in the packet, the Ethernet header analysis unit 123 notifies the IPv6 header analysis unit 126 of the start position of the IPv6 header.
(3) The IPv6 header analysis unit 126 extracts the IPv6 header from the data sent from the input controller 121 based on the notification content from the Ethernet header analysis unit 123. After confirming the validity of the IPv6 header, the IPv6 header analysis unit 126 traces the IPv6 extension header chain and determines the value of the Next Header field. If the value of the Next Header field is 58, it indicates ICMPv6. Since the start position of the MLD header differs depending on the IPv6 extension header, after confirming that it is ICMPv6, the IPv6 header analysis unit 126 notifies the MLD header analysis unit 127 of the start position of the MLD header.
(4) The MLD header analysis unit 127 extracts the MLD header portion from the data from the input controller 121 according to the notified start position of the MLD header. The MLD header analysis unit 127 confirms the validity of the MLD header. Thereafter, the MLD header analysis unit 127 checks the Type field of the MLD header and determines whether the packet is a join message for joining the multicast group or a leave message for leaving. If the value of the Type field is 131 (Multicast Listener Report), it indicates participation in the multicast group. On the other hand, if the value of the Type field is 132 (Multicast Listener Done), it indicates a departure from the multicast group. The MLD header analysis unit 127 notifies the control unit 13 of the determination result.
(5) The MLD header analysis unit 127 extracts the IPv6 multicast address recorded in the Multicast Address field included in the MLD header, and performs mapping to the Ethernet multicast address. The MLD header analysis unit 127 notifies the control unit 13 of the Ethernet multicast address obtained by mapping. A specific method of mapping will be described later.

{イーサネットマルチキャストアドレスの算出}
図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 header analysis unit 127 notifies the control unit 13 of the Ethernet multicast address obtained by mapping the lower 32 bits of the IPv6 multicast address.
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 packet filtering unit 14 is similar to the broadcast address. The packet is allowed to pass regardless of the contents of the filter table 141.

また、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 address recognizing unit 12 needs to recognize the source IPv6 address of the IPv6 packet transmitted by the host, calculate the Ethernet multicast address of the solicited-node address corresponding thereto, and notify the control unit 13 of the same. .

〔制御部〕
{マルチキャストアドレスの登録処理}
制御パケットがjoinメッセージであった場合に、制御部13は、マルチキャストアドレスをフィルタテーブル141に設定する。制御部13が行うフィルタテーブル141の設定は、IPv4でもIPv6でも同じである。
(Control part)
{Multicast address registration process}
When the control packet is a join message, the control unit 13 sets a multicast address in the filter table 141. The setting of the filter table 141 performed by the control unit 13 is the same for both IPv4 and IPv6.

制御部13は、前述のとおり、アドレス認識部12からイーサネットマルチキャストアドレスと、制御パケットの種類の通知を受ける。制御パケットがjoinメッセージである場合には、制御部13は図5に示した手順と同様の登録処理を行う。すなわち、制御部13は、処理しようとするアドレスがフィルタテーブル141に未登録であって、空きエントリが存在すればそのアドレスを登録する。処理対象のアドレスが、既にフィルタテーブル141に登録されていたとき、および、空きエントリがない場合の処理も、図5に示したのと同様である。   As described above, the control unit 13 receives the notification of the Ethernet multicast address and the type of control packet from the address recognition unit 12. When the control packet is a join message, the control unit 13 performs a registration process similar to the procedure shown in FIG. That is, the control unit 13 registers an address to be processed if the address to be processed is not registered in the filter table 141 and there is an empty entry. The processing when the processing target address has already been registered in the filter table 141 and when there is no empty entry is the same as that shown in FIG.

{マルチキャストアドレスの削除処理}
制御部13は、タイムスタンプにより一定時間使用されていないことが認識された場合に、マルチキャストアドレスの削除処理を行う。制御パケットがleaveメッセージであった場合は、他の仮想コンピュータ等がそのマルチキャストグループに参加している可能性があるので削除処理は行わない。
{Deleting multicast address}
The control unit 13 performs a multicast address deletion process when it is recognized that the time stamp has not been used for a certain period of time. If the control packet is a leave message, the deletion process is not performed because there is a possibility that another virtual computer or the like may participate in the multicast group.

タイムスタンプにより、指定時間の間、使用されなかったと認識されたアドレスの削除がされる場合は、制御部13は図6に示したとおりに処理を行う。
この処理は仮想コンピュータがマルチキャストグループに参加している場合に特に有意義であると考えられる。先に述べたとおり、仮想コンピュータは物理ホストコンピュータが動作している間に、停止、再起動することがあるし、他の物理ホストコンピュータへ移動することもある。このため、従来は、ホストコンピュータがマルチキャストの参加状況や仮想ネットワーク構成をリアルタイムに把握してフィルタリング条件の設定をする必要があった。また、ホストコンピュータがマルチキャストの参加状況や仮想ネットワーク構成を把握するために、仮想化ソフトウェアは複雑にならざるを得なかった。本実施形態のように、指定時間の間、使用されなかったアドレスをネットワークアダプタが自立的に削除することによって、ホストコンピュータの負担が軽減される。また、ホストコンピュータが、マルチキャスト参加状況やネットワーク構成の把握をする必要がないため、仮想化ソフトウェアを簡素化することが可能になる。
When the address recognized as unused for a specified time is deleted by the time stamp, the control unit 13 performs processing as shown in FIG.
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 packet filtering unit 14 is basically the same as that in the above-described embodiment. That is, the received packet filtering unit 14 recognizes the destination Ethernet multicast address for the packet received from the network side. Next, the received packet filtering unit 14 searches the filter table 141 using the destination Ethernet multicast address of the packet as a key. If any entry in the filter table 141 matches the destination Ethernet multicast address of the packet, the packet is transmitted to the host computer side, and the other packets are discarded. Even in this case, the received packet filtering unit 14 allows the packet to pass without referring to the filter table 141 for the packet addressed to the predetermined multicast address or the broadcast packet.

以上、述べてきたとおり、ネットワークアダプタ自身が、ハードウェアマルチキャストアドレスを設定するため、ホストコンピュータがマルチキャストグループ参加状況やネットワーク構成を把握しなくても、フィルタリングが可能である。したがって、フィルタリング設定に対するホストコンピュータの負担がなくなる。また、ホストコンピュータ上で動作する仮想化ソフトウェアの簡素化にもつながる。   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 header analysis unit 123 checks the type field, notifies the IP header analysis unit of the start part of the IGMP header or the MLD header, and the like. However, at the same time, the Ethernet header analysis unit 123 can also extract the source MAC address portion of the Ethernet header portion from the data received from the input controller 121. When the source MAC address is also recognized by the Ethernet header analysis unit 123, the recognized source MAC address is also notified to the control unit 13, and the control unit 13 processes the notified MAC address. In such a case, the network adapter can autonomously set both the unicast address and the multicast address.

IGMPパケットを用いてマルチキャストアドレスを認識するアドレス認識部12について述べた実施形態では、入力コントローラ121からイーサネットヘッダ解析部123、IPv4ヘッダ解析部124、IGMPヘッダ解析部125の全てに並列的に分割したデータが送られている。しかし、これは説明のために記載したに過ぎず、図8に示した形態に限られるものではない。実装によって、様々な形態をとることができる。   In the embodiment described for the address recognition unit 12 that recognizes a multicast address using an IGMP packet, the input controller 121 divides the Ethernet header analysis unit 123, the IPv4 header analysis unit 124, and the IGMP header analysis unit 125 in parallel. Data is being sent. However, this is described only for the sake of explanation, and is not limited to the form shown in FIG. Depending on the implementation, it can take various forms.

MLDパケットを用いてマルチキャストアドレスを認識するアドレス認識部12についても同様である。図11に示したように入力コントローラ121からイーサネットヘッダ解析部123、IPv6ヘッダ解析部126、および、MLDヘッダ解析部127に並列的に分割したデータが送られる必要があるわけではなく、実装によって様々な形態をとることができる。   The same applies to the address recognition unit 12 that recognizes a multicast address using an MLD packet. As shown in FIG. 11, it is not necessary to send the data divided in parallel from the input controller 121 to the Ethernet header analysis unit 123, the IPv6 header analysis unit 126, and the MLD header analysis unit 127. Can take various forms.

(付記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 appendix 1, wherein the recognizing unit extracts the transmission source address from a transmission source MAC address area of an Ether header of a packet transmitted from the host computer or the virtual computer.
(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 appendix 1.
(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 appendix 1.
(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 1, further comprising: an address acquisition unit that extracts a part of the stored packet as an address.
(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 supplementary note 6 is characterized in that the control means sets the hardware multicast address as a passing address in the filtering unit when a control message indicating participation in the multicast group is detected by the analyzing means. The described network adapter.
(Appendix 8) The multicast control packet is an IGMP packet,
The network adapter according to appendix 6, wherein the calculating means calculates a hardware multicast address corresponding to an IPv4 multicast address written in an IGMP packet.
(Supplementary note 9) The multicast control packet is an MLD packet,
The network adapter according to appendix 6, wherein the calculating means calculates a hardware multicast address corresponding to an IPv6 multicast address written in an MLD packet.
(Additional remark 10) The said host computer is provided with the virtualization means which provides a virtual computer,
The network adapter according to appendix 6, wherein the calculating means calculates a hardware multicast address from a multicast address included in a packet transmitted from a virtual computer provided by the host computer.
(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.

本発明の概念を説明する図である。It is a figure explaining the concept of this invention. 受信パケットフィルタリング部が備えるフィルタテーブルの構成を示した図である。It is the figure which showed the structure of the filter table with which a received packet filtering part is provided. 仮想環境の一例を示す図である。It is a figure which shows an example of a virtual environment. ユニキャストパケットに対応したアドレス認識部の一例を示す図である。It is a figure which shows an example of the address recognition part corresponding to a unicast packet. フィルタテーブルへの登録処理を示すフローチャートである。It is a flowchart which shows the registration process to a filter table. フィルタテーブルからの削除処理を示すフローチャートである。It is a flowchart which shows the deletion process from a filter table. アドレス解決のシーケンスを示す図である。It is a figure which shows the sequence of address resolution. IGMP制御パケットを処理するアドレス認識部の実装例を示す図である。It is a figure which shows the example of mounting of the address recognition part which processes an IGMP control packet. IGMP制御パケットのフォーマットを示す図である。It is a figure which shows the format of an IGMP control packet. IPv4マルチキャストアドレスからイーサネットマルチキャストアドレスへのマッピングを説明する図である。It is a figure explaining the mapping from an IPv4 multicast address to an Ethernet multicast address. MLD制御パケットを処理するアドレス認識部の実装例を示す図である。It is a figure which shows the example of mounting of the address recognition part which processes an MLD control packet. MLD制御パケットのフォーマットを示す図である。It is a figure which shows the format of an MLD control packet. IPv6マルチキャストアドレスからイーサネットマルチキャストアドレスへのマッピングを説明する図である。It is a figure explaining the mapping from an IPv6 multicast address to an Ethernet multicast address. 既存のネットワークアダプタの動作を示す概念図である。It is a conceptual diagram which shows operation | movement of the existing network adapter.

符号の説明Explanation of symbols

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 SYMBOLS 12 Address recognition part 121 Input controller 122 Latch circuit 123 Ethernet analysis part 124 IPv4 header analysis part 125 IGMP header analysis part 126 IPv6 header analysis part 127 MLD header analysis part 13 Control part 14 Received packet filtering part 141 Filter table 2 Host computer 201 Virtual Software 30, 40, 50 Virtual computer 31, 32, 41, 42, 51, 52 Virtual network adapter

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.
JP2007235369A 2007-09-11 2007-09-11 Network adapter Withdrawn JP2009071423A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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