ネットワークについて#
あなたのインスタンスをインターネットに接続するにはいろいろな方法があります。 最も簡単な方法は LXD の初期化時にネットワークブリッジを作って全てのインスタンスでこのブリッジを使うことですが、 LXD はネットワークに関するさまざまな高度な設定をサポートします。
ネットワークデバイス#
インスタンスへの直接のネットワークアクセスを許可するには、 NIC とも呼ばれるネットワークデバイスを最低 1 つ割り当てる必要があります ネットワークデバイスは以下のどれかの方法で設定できます。
LXD の初期化中にセットアップしたデフォルトのネットワークブリッジを使用する。 デフォルトの設定を表示するにはデフォルトのプロファイルを確認します。
lxc profile show default
この方法はインスタンスのネットワークを指定しない場合に使用します。
既存のネットワークインタフェースをインスタンスにネットワークデバイスとして追加して使用する。 このネットワークインタフェースは LXD の制御外です。 そのため、ネットワークインタフェースを使用するために必要な全ての情報を LXD に指定する必要があります。
以下のようなコマンドを使用します。
lxc config device add <インスタンス名> <デバイス名> nic nictype=<NICタイプ> ...
指定可能な NIC タイプの一覧とそれらの設定プロパティについては タイプ:
nic
を参照してください。例えば、既存の Linux ブリッジ (
br0
) を追加するには以下のコマンドを使えます。lxc config device add <instance_name> eth0 nic nictype=bridged parent=br0
マネージドネットワークを作成 し、それをインスタンスにネットワークデバイスとして追加する。 この方法では LXD は設定されるネットワークについての全ての必要な情報を持っていますので、デバイスとしてインスタンスに直接アタッチできます。
lxc network attach <network_name> <instance_name> <device_name>
詳細はインスタンスにネットワークをアタッチするを参照してください。
マネージドネットワーク#
LXD でマネージドネットワークは lxc network [create|edit|set]
コマンドで作成と設定をします。
ネットワークタイプによって、 LXD はネットワークを完全に制御するか、単に外部のネットワークインタフェースを管理するかのどちらかになります。
全ての NIC タイプ がネットワークタイプとしてサポートされているわけではないことに注意してください。 LXD はいくつかのタイプのみマネージドネットワークとしてセットアップできます。
完全に制御されるネットワーク#
完全に制御されるネットワークではネットワークインタフェースを作成し、例えば IP を管理する機能を含むほとんどの機能を提供します。
LXD は以下のネットワークタイプをサポートします。
- ブリッジネットワーク
ネットワークブリッジはインスタンスNICが接続できる仮想的なL2イーサネットスイッチを作成し、インスタンスが他のインスタンスやホストと通信できるようにします。 LXDのブリッジは下層のネイティブなLinuxのブリッジとOpen vSwitchを利用できます。
LXD の文脈では、
bridge
ネットワークタイプは、ブリッジを共用するインスタンスを同一の L2 ネットワークセグメントに接続するような L2 ブリッジを作成します。 これによりインスタンス間のトラフィックを通すことができます。 ブリッジはさらにローカルの DHCP と DNS を提供することもできます。これがデフォルトのネットワークタイプです。
- OVN ネットワーク
OVNは仮想ネットワーク抽象化をサポートするソフトウェアで定義されたネットワークシステムです。 あなた自身のプライベートクラウドを構築するのに使用できます。 詳細は
www.ovn.org
をご参照ください。LXD の文脈では、
ovn
ネットワークタイプは論理ネットワークを作成します。 セットアップするには OVN ツールをインストールし設定する必要があります。 さらに、OVN にネットワーク接続を提供するアップリンクのネットワークを作成する必要があります。 アップリンクのネットワークとして、外部ネットワークタイプの 1 つかマネージドな LXD ブリッジを使う必要があります。Tip
他のネットワークタイプと違って、 OVN ネットワークは プロジェクト 内に作成・管理できます。 これは、制限されたプロジェクトであっても、非管理者ユーザとして自身の OVN ネットワークを作成できることを意味します。
外部ネットワーク#
外部ネットワークは既に存在するネットワークを使用します。 そのため、 LXD がそれらを制御するには限界があるため、ネットワーク ACL、ネットワークフォワードやネットワークゾーンのような LXD の機能はサポートされません。
外部ネットワークを使用する主な目的は親インタフェースによるアップリンクのネットワークを提供することです。 この外部ネットワークはインスタンスや他のネットワークを親のインタフェースに接続する際のプリセットを指定します。
LXD は以下の外部ネットワークタイプをサポートします。
- macvlan ネットワーク
macvlan は仮想的な LAN で同じネットワークインタフェースに複数の IP アドレスを割り当てたい場合に使用できます。 基本的にはネットワークインタフェースをそれぞれの IP アドレスを持つ複数のサブインタフェースに分割することになります。 その後ランダムに生成された MAC アドレスに基づいて IP アドレスを設定できます。
LXD の文脈では、
macvlan
ネットワークタイプは親の macvlan インタフェースへインスタンスを接続する際に使用するプリセット設定を提供します。- SR-IOV ネットワーク
SR-IOV は仮想環境内で単一のネットワークポートを複数の仮想ネットワークインタフェースのように見せるように出来るハードウェア標準です。
LXD の文脈では、
sriov
ネットワークタイプは親の SR-IOV インタフェースへインスタンスを接続する際に使用するプリセット設定を提供します。- 物理ネットワーク
物理 (
physical
) ネットワークタイプは既存のネットワークに接続します。これはネットワークインタフェースまたはブリッジになることができ、OVN のためのアップリンクネットワークとしての役目を果たします。OVN ネットワークを親インタフェースに接続する際のプリセット設定を提供します。
お勧めの設定#
一般に、マネージドネットワークは設定が容易で設定を繰り返すこと無く複数のインスタンスで同じネットワークを再利用できるので、マネージドネットワークが使用できる場合はこれを使用すべきです。
どのネットワークタイプを使用すべきかはあなたの固有の使い方によります。 完全に制御されたネットワークを選ぶと、ネットワークデバイスを使用するのに比べてより多くの機能を提供します。
一般的なお勧めとしては
LXD を単一のシステム上かパブリッククラウドで動かしている場合は、 ブリッジネットワーク を使用してください。場合によっては Ubuntu Fan と共に使用するのが良いかもしれません。
あなた自身のプライベートクラウドで LXD を動かしている場合は、 OVN ネットワーク を使用してください。
注釈
OVN は適切な運用には共有された L2 のアップリンクネットワークが必要です。 このため、パブリッククラウドで LXD を動かしている場合は通常 OVN は使用できません。
インスタンス NIC をマネージドネットワークに接続するためには、可能であれば
parent
プロパティよりnetwork
プロパティを使用してください。 こうすることで、 NIC はネットワークの設定を引き継ぎ、nictype
を指定する必要がなくなります。