EN JA
VALE(4)
VALE(4) FreeBSD Kernel Interfaces Manual VALE(4)

名称

valenetmap API を使用する非常に速い仮想ローカルのイーサネット

書式

device netmap

解説

vale は、トラフィックのソースとシンク (sink)、パケット転送プログラム、ユーザ空間のファイアウォール等を含む、netmap クライアントを相互に接続させるために使用することができる、複数の仮想スイッチを実装する netmap(4) モジュールの機能です。

vale は、完全にソフトウェアで実装され、非常に速いです。現代のマシンにおいて、小さなフレームがあるコアごとで 2 (Mpps) ごとにほとんど 2000 万パケットと 1500 バイトのフレームがあるおよそ 70 Gbit/s を移動することができます。

操作

vale は、 netmap(4) API を使用して、それに接続するクライアントとしてスイッチとポートを動的に作成します。

vale ポートは、 vale[bdg:][port] と指定されます、ここで vale は、標準インタフェースではなく VALE スイッチを示す接頭辞で bdg は、特定のスイッチ (コロンがセパレータです) を示し、 port は、スイッチ内のポートを示します。ブリッジとポート名は、任意の文字列で、完全な名前が 16 文字以内に適合しなければならないことが、唯一強制されています。

API に関する詳細については、 netmap(4) を参照してください。

制限

vale は、現在、ポートごとに 1024 のバッファがあり、スイッチごとに 16 のポート、最大 4 つのスイッチをサポートしています。これらの強固な制限は、将来のリリースで sysctl 変数に変更されるでしょう。

SYSCTL 変数

vale は、操作を制御するために次の sysctl 変数を使用します:
dev.netmap.bridge
各繰り返しの中で内部的に処理されるパケットの最大数。デフォルトは、1024 で、待ち時間とスループットを交換するためにより低い値を使用します。
dev.netmap.verbose
カーネル内診断を有効にするために 0 以外に設定します。

使用例

1 つのポートに接続されたトラフィックジェネレータと別のポートで netmap が有効にされた tcpdump インスタンスがある 1 つのスイッチを作成します:

tcpdump -ni vale-a:1 & 
pkt-gen  -i vale-a:0 -f tx &

異なるポートで 2 つの qemu マシンに、それぞれ接続する 2 つのスイッチを作成します。

qemu -net nic -net netmap,ifname=vale-1:a ... & 
qemu -net nic -net netmap,ifname=vale-1:b ... & 
qemu -net nic -net netmap,ifname=vale-2:c ... & 
qemu -net nic -net netmap,ifname=vale-2:d ... &

関連項目

netmap(4)

http://info.iet.unipi.it/~luigi/vale/

Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, June 2012, http://info.iet.unipi.it/~luigi/vale/

作者

vale スイッチは、Universita` di Pisa にて Luigi RizzoGiuseppe Lettieri によって 2012 年に設計され実装されました。

vale は、FP7 Project CHANGE (257422) と OPENLAB (287581) 内の欧州委員会によって資金援助されました。

July 27, 2012 FreeBSD