タイプ: nic#

注釈

nicデバイスタイプはコンテナとVMの両方でサポートされます。

(ipvlan NICタイプを除いて)NICはコンテナとVMの両方でホットプラグをサポートします。

ネットワークデバイス(ネットワークインタフェースコントローラーNICとも呼びます)はネットワークへの接続を提供します。 LXDはさまざまな異なるタイプのネットワークデバイス(NICタイプ)をサポートします。

nictypenetwork#

インスタンスにネットワークデバイスを追加する際には、追加したいデバイスのタイプを選択するのに2つの方法があります。nictypeプロパティを指定するかnetworkプロパティを使うかです。

これらの2つのデバイスオプションは相互排他であり、デバイスを作成時にどちらか1つのみ指定可能です。 しかし、networkオプションを指定する際には、nictypeオプションはネットワークタイプから自動的に導出されることに注意してください。

nictype

nictypeデバイスオプションを使用する際は、LXDに管理されていないネットワークインタフェースを指定できます。 このため、LXD がネットワークインタフェースを使用するために必要な全ての情報を指定する必要があります。

この方法を使用する際は、nictypeオプションはデバイス作成時に指定する必要があり、作成後は変更できません。

network

networkデバイスオプションを使用する際は、NICは既存の管理されたネットワークにリンクされます。 この場合、LXDはネットワークについて必要な情報を全て持っているので、デバイス追加時にはネットワーク名を指定するだけでよいです。

この方法を使用する際は、nictypeオプションはLXDが自動的に導出します。 値は読み取り専用で変更できません。

ネットワークから継承される他のデバイスオプションはNIC固有のデバイスオプションの「管理」カラムで「yes」と記載されています。 networkの方法を使う場合、NICのこれらのオプションを直接カスタマイズはできません。

詳細な情報はネットワークについてを参照してください。

利用可能なNIC#

次のNICはnictypenetworkオプションを使って追加できます。

  • bridged: ホスト上に存在する既存のブリッジを使い、ホストのブリッジをインスタンスに接続する仮想デバイスペアを作成します。

  • macvlan: 既存のネットワークデバイスをベースにMACアドレスが異なる新しいネットワークデバイスを作成します。

  • sriov: SR-IOVが有効な物理ネットワークデバイスの仮想ファンクション(virtual function)をインスタンスにパススルーします。

  • physical: ホストの物理デバイスをインスタンスにパススルーします。 対象のデバイスはホスト上では見えなくなり、インスタンス内に出現します。

次のNICはnetworkオプションでのみ追加できます。

  • ovn: 既存のOVNネットワークを使用し、インスタンスが接続する仮想デバイスペアを作成します。

次のNICはnictypeオプションでのみ追加できます。

  • ipvlan: 既存のネットワークデバイスをベースにMACアドレスは同じですがIPアドレスが異なる新しいネットワークデバイスを作成します。

  • p2p: 仮想デバイスペアを作成し、片方をインスタンス内に置き、残りの片方をホスト上に残します。

  • routed: 仮想デバイスペアを作成し、ホストからインスタンスに繋いで静的ルートとプロキシARP/NDPエントリーを作成します。これにより指定された親インタフェースのネットワークにインスタンスが参加できるようになります。

利用可能なデバイスオプションはNICタイプによって異なり、以下のセクションの表に一覧表示されます。

nictype: bridged#

注釈

このNICタイプはnictypeオプションかnetworkオプションで選択できます(管理されたbridgeネットワークの情報についてはブリッジネットワーク参照)。

bridged NICはホストの既存のブリッジを使用し、ホストのブリッジをインスタンスに接続するための仮想デバイスのペアを作成します。

デバイスオプション#

bridged タイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

管理

説明

boot.priority

integer

-

no

VMのブート優先度(高いほうが先にブート)

host_name

string

ランダムに割り当て

no

ホスト内でのインタフェースの名前

hwaddr

string

ランダムに割り当て

no

新しいインタフェースのMACアドレス

ipv4.address

string

-

no

DHCPでインスタンスに割り当てるIPv4アドレス(security.ipv4_filtering設定時に全てのIPv4トラフィックを制限するにはnoneと設定可能)

ipv4.routes

string

-

no

ホスト上でNICに追加するIPv4静的ルートのカンマ区切りリスト

ipv4.routes.external

string

-

no

NICにルーティングしアップリンクのネットワーク(BGP)で公開するIPv4静的ルートのカンマ区切りリスト

ipv6.address

string

-

no

DHCPでインスタンスに割り当てるIPv6アドレス(security.ipv6_filtering設定時に全てのIPv6トラフィックを制限するにはnoneと設定可能)

ipv6.routes

string

-

no

ホスト上でNICに追加するIPv6静的ルートのカンマ区切りリスト

ipv6.routes.external

string

-

no

NICにルーティングしアップリンクのネットワーク(BGP)で公開するIPv6静的ルートのカンマ区切りリスト

limits.egress

string

-

no

外向きトラフィックのI/O制限値(さまざまな単位が使用可能、ストレージとネットワーク制限の単位参照)

limits.ingress

string

-

no

内向きトラフィックのI/O制限値(さまざまな単位が使用可能、ストレージとネットワーク制限の単位参照)

limits.max

string

-

no

内向きと外向きの両方のトラフィックI/O制限値(limits.ingresslimits.egressの両方を設定するのと同じ)

maas.subnet.ipv4

string

-

yes

インスタンスを登録するMAAS IPv4サブネット

maas.subnet.ipv6

string

-

yes

インスタンスを登録するMAAS IPv6サブネット

mtu

integer

親の MTU

yes

新しいインタフェースのMTU

name

string

カーネルが割り当て

no

インスタンス内でのインタフェースの名前

network

string

-

no

(nictypeを直接設定する代わりに)デバイスをリンクする先の管理されたネットワーク

parent

string

-

yes

ホストデバイスの名前(nictypeを直接設定する場合は必須)

queue.tx.length

integer

-

no

NICの送信キューの長さ

security.ipv4_filtering

bool

false

no

インスタンスが他のインスタンスのIPv4アドレスになりすますのを防ぐ(これを設定するとmac_filteringも有効になります)

security.ipv6_filtering

bool

false

no

インスタンスが他のインスタンスのIPv6アドレスになりすますのを防ぐ(これを設定するとmac_filteringも有効になります)

security.mac_filtering

bool

false

no

インスタンスが他のインスタンスのMACアドレスになりすますのを防ぐ

security.port_isolation

bool

false

no

NICがポート隔離を有効にしたネットワーク内の他のNICと通信するのを防ぐ

vlan

integer

-

no

タグなしのトラフィックに使用するVLAN ID(デフォルトのVLANからポートを削除するにはnoneを指定)

vlan.tagged

integer

-

no

タグありのトラフィックに参加するVLAN IDまたはVLANの範囲のカンマ区切りリスト

nictype: macvlan#

注釈

このNICタイプはnictypeオプションかnetworkオプションで選択できます(管理されたmacvlanネットワークの情報についてはmacvlan ネットワーク参照)。

macvlan NICは既存のNICをベースにしますが、MACアドレスが異なる新しいネットワークデバイスをセットアップします。

macvlan NICを使う場合、LXDホストとインスタンス間の通信はできません。 ホストとインスタンスの両方がゲートウェイと通信できますが、それらが直接通信はできません。

デバイスオプション#

macvlanタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

管理

説明

boot.priority

integer

-

no

VMのブート優先度(高いほうが先にブート)

gvrp

bool

false

no

GARP VLAN Registration Protocolを使ってVLANを登録する

hwaddr

string

ランダムに割り当て

no

新しいインタフェースのMACアドレス

maas.subnet.ipv4

string

-

yes

インスタンスを登録するMAAS IPv4サブネット

maas.subnet.ipv6

string

-

yes

インスタンスを登録するMAAS IPv6サブネット

mtu

integer

親の MTU

yes

新しいインタフェースのMTU

name

string

カーネルが割り当て

no

インスタンス内部でのインタフェース名

network

string

-

no

(nictypeを直接設定する代わりに)デバイスをリンクする先の管理されたネットワーク

parent

string

-

yes

ホストデバイスの名前(nictypeを直接設定する場合は必須)

vlan

integer

-

no

アタッチ先のVLAN ID

nictype: sriov#

注釈

このNICタイプはnictypeオプションかnetworkオプションで選択できます(管理されたsriovネットワークの情報についてはSR-IOV ネットワーク参照)。

sriov NICはSR-IOVを有効にした物理ネットワークデバイスの仮想ファンクションをインスタンスにパススルーします。

SR-IOVを有効にしたネットワークデバイスは一組の仮想ファンクション(VF)をネットワークデバイスの単一の物理ファンクション(PF)に関連付けます。 PFは標準的なPCIe関数です。 一方、VFはデータの移動に最適化された非常に軽量なPCIe関数です。 PFのプロパティを変えるのを防ぐため、VFの構成機能は限定されています。

VFはシステムには通常のPCIeデバイスのように見えますので、通常の物理デバイスと全く同じようにインスタンスにパススルーできます。

VFの割り当て

sriovインタフェースタイプはparentプロパティを通してシステム上のSR-IOVを有効にしたネットワークデバイスの名前を渡されることを想定しています。 するとLXDはシステム上の任意の利用可能なVFをチェックします。

デフォルトでは、LXDは見つけた最初の未使用なVFを割り当てます。 有効になっているものが1つもないか、有効なVFが全て使用中の場合、サポートされているVFの数を最大に上げて最初の未使用なVFを使用します。 全ての利用可能なVFが使用中か、カーネルまたはカードがVFの数の増加をサポートしない場合は、LXDはエラーを返します。

注釈

LXDに特定のVFを使わせたい場合、sriov NICの代わりにphysical NICを使用し、parentオプションをVF名に設定してください。

デバイスオプション#

sriovタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

管理

説明

boot.priority

integer

-

no

VMのブート優先度(高いほうが先にブート)

hwaddr

string

ランダムに割り当て

no

新しいインタフェースのMACアドレス

maas.subnet.ipv4

string

-

yes

インスタンスを登録するMAAS IPv4サブネット

maas.subnet.ipv6

string

-

yes

インスタンスを登録するMAAS IPv6サブネット

mtu

integer

カーネルが割り当て

yes

新しいインタフェースのMTU

name

string

カーネルが割り当て

no

インスタンス内部でのインタフェース名

network

string

-

no

(nictypeを直接設定する代わりに)デバイスをリンクする先の管理されたネットワーク

parent

string

-

yes

ホストデバイスの名前(nictypeを直接設定する場合は必須)

security.mac_filtering

bool

false

no

インスタンスが他のインスタンスのMACアドレスになりすますのを防ぐ

vlan

integer

-

no

アタッチ先のVLAN ID

nictype: ovn#

注釈

このNICタイプはnetworkオプションでのみ選択できます(管理されたovnネットワークの情報についてはOVN ネットワーク参照)。

ovn NICは既存のOVNネットワークを使用し、それにインスタンスが接続する仮想デバイスペアを作成します。

SR-IOVハードウェアアクセラレーション

acceleration=sriovを使用するには、LXDホスト内のEthernetスイッチデバイスのドライバモデル(switchdev)をサポートする互換性のあるSR-IOV物理NICを持っている必要があります。 LXDは物理NIC(PF)がswitchdevモードに設定され、OVN統合OVSブリッジに接続され、1つ以上の仮想ファンクション(VF)がアクティブになっていることを前提とします。

これを実現するには、基本的な前提条件となる以下のセットアップ手順に従ってください。

  1. PFとVFをセットアップする

    1. PF上でいくつかのVFをアクティベートし(以下の例ではenp9s0f0np0とし、PCIアドレスは0000:09:00.0とします)、アンバインドします。

    2. switchdevモードとPF上のhw-tc-offloadを有効にします。

    3. VFをリバインドします。

    echo 4 > /sys/bus/pci/devices/0000:09:00.0/sriov_numvfs
    for i in $(lspci -nnn | grep "Virtual Function" | cut -d' ' -f1); do echo 0000:$i > /sys/bus/pci/drivers/mlx5_core/unbind; done
    devlink dev eswitch set pci/0000:09:00.0 mode switchdev
    ethtool -K enp9s0f0np0 hw-tc-offload on
    for i in $(lspci -nnn | grep "Virtual Function" | cut -d' ' -f1); do echo 0000:$i > /sys/bus/pci/drivers/mlx5_core/bind; done
    
  2. ハードウェアオフロードを有効にし、統合ブリッジ(通常br-intと呼ばれます)に PF NICを追加してOVSをセットアップします。

    ovs-vsctl set open_vswitch . other_config:hw-offload=true
    systemctl restart openvswitch-switch
    ovs-vsctl add-port br-int enp9s0f0np0
    ip link set enp9s0f0np0 up
    
VDPAハードウェアアクセラレーション

acceleration=vdpaを使用するには互換性のあるVDPA物理NICが必要です。 セットアップ手順はSR-IOVハードウェアアクセラレーションと同様ですが、さらにvhost_vdpaモジュールをセットアップし、利用可能なVDPA管理デバイスがあることを確認する必要があります:

modprobe vhost_vdpa && vdpa mgmtdev show

デバイスオプション#

sriov タイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

管理

説明

acceleration

string

none

no

ハードウェアオフローディングを有効にする(nonesriovvdpaSR-IOVハードウェアアクセラレーション参照)

boot.priority

integer

-

no

VMのブート優先度(高いほうが先にブート)

host_name

string

ランダムに割り当て

no

ホスト内部でのインタフェース名

hwaddr

string

ランダムに割り当て

no

新しいインタフェースのMACアドレス

ipv4.address

string

-

no

DHCPでインスタンスに割り当てるIPv4アドレス

ipv4.routes

string

-

no

NICへルーティングするIPv4静的ルートのカンマ区切りリスト

ipv4.routes.external

string

-

no

NICへのルーティングとアップリンクネットワークでの公開に使用するIPv4静的ルートのカンマ区切りリスト

ipv6.address

string

-

no

DHCPでインスタンスに割り当てるIPv6アドレス

ipv6.routes

string

-

no

NICへルーティングするIPv6静的ルートのカンマ区切りリスト

ipv6.routes.external

string

-

no

NICへのルーティングとアップリンクネットワークでの公開に使用するIPv6静的ルートのカンマ区切りリスト

name

string

カーネルが割り当て

no

インスタンス内部でのインタフェース名

nested

string

-

no

このNICをどの親NICの下にネストするか(vlanも参照)

network

string

-

yes

デバイスの接続先の管理されたネットワーク(必須)

security.acls

string

-

no

適用するネットワークACLのカンマ区切りリスト

security.acls.default.egress.action

string

reject

no

どのACLルールにもマッチしない外向きトラフィックに使うアクション

security.acls.default.egress.logged

bool

false

no

どのACLルールにもマッチしない外向きトラフィックをログ出力するかどうか

security.acls.default.ingress.action

string

reject

no

どのACLルールにもマッチしない内向きトラフィックに使うアクション

security.acls.default.ingress.logged

bool

false

no

どのACLルールにもマッチしない内向きトラフィックをログ出力するかどうか

vlan

integer

-

no

ネストする際に使用する VLAN ID (nestedも参照)

nictype: physical#

注釈

  • このNICタイプはnictypeオプションまたはnetworkオプションで選択できます(管理されたphysicalネットワークの情報については物理ネットワーク参照)。

  • それぞれの親デバイスに対してphysical NIC は1つだけ持つことができます。

physical NICはホストからパススルーされるそのままの物理デバイスを提供します。 対象のデバイスはホストから消失し、インスタンス内に出現します(これは各ターゲットデバイスにphysical NICは1つだけ持つことができることを意味します)。

デバイスオプション#

physicalタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

管理

説明

boot.priority

integer

-

no

VMのブート優先度(高いほうが先にブート)

gvrp

bool

false

no

GARP VLAN Registration Protocolを使ってVLANを登録する

hwaddr

string

ランダムに割り当て

no

新しいインタフェースのMACアドレス

maas.subnet.ipv4

string

-

no

インスタンスを登録するMAAS IPv4サブネット

maas.subnet.ipv6

string

-

no

インスタンスを登録するMAAS IPv6サブネット

mtu

integer

親の MTU

no

新しいインタフェースのMTU

name

string

カーネルが割り当て

no

インスタンス内部でのインタフェース名

network

string

-

no

デバイスのリンク先(nictypeを直接指定する代わりに)の管理ネットワーク

parent

string

-

yes

ホストデバイスの名前(必須)

vlan

integer

-

no

アタッチ先のVLAN ID

nictype: ipvlan#

注釈

  • このNICタイプはコンテナのみで利用でき、仮想マシンでは利用できません。

  • このNICタイプはnictypeオプションでのみ選択できます。

  • このNICタイプはホットプラグをサポートしません。

ipvlan NICは既存のネットワークデバイスを元に、同じMACアドレスですがIPアドレスは異なるような新しいネットワークデバイスをセットアップします。

ipvlan NICを使う場合、LXDホストとインスタンス間の通信はできません。 ホストとインスタンスの両方がゲートウェイと通信できますが、それらが直接通信はできません。

LXDは現状L2とL3SモードでIPVLANをサポートします。 このモードでは、ゲートウェイはLXDにより自動的に設定されますが、コンテナが起動する前にipv4.addressipv6.addressの設定の1つあるいは両方を使うことによりIPアドレスを手動で指定する必要があります。

DNS

ネームサーバーは自動的には設定されないので、コンテナ内部で設定する必要があります。 このためには、以下のsysctlの設定をしてください。

  • IPv4アドレスを使用する場合

    net.ipv4.conf.<parent>.forwarding=1
    
  • IPv6アドレスを使用する場合

    net.ipv6.conf.<parent>.forwarding=1
    net.ipv6.conf.<parent>.proxy_ndp=1
    

デバイスオプション#

ipvlanタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

説明

gvrp

bool

false

GARP VLAN Registration Protocolを使ってVLANを登録する

hwaddr

string

ランダムに割り当て

新しいインタフェースのMACアドレス

ipv4.address

string

-

インスタンスに追加するIPv4静的アドレスのカンマ区切りリスト(l2モードでは、CIDR形式か/24のサブネットの単一アドレスで指定可能)

ipv4.gateway

string

auto (l3s), - (l2)

l3sモードでは、デフォルトIPv4ゲートウェイを自動的に追加するかどうか(autononeを指定可能)。l2モードでは、ゲートウェイのIPv4アドレス。

ipv4.host_table

integer

-

(メインのルーティングテーブルに加えて)IPv4の静的ルートを追加する先のカスタムポリシー・ルーティングテーブルID

ipv6.address

string

-

インスタンスに追加するIPv6静的アドレスのカンマ区切りリスト(l2モードでは、CIDR 形式か/64のサブネットの単一アドレスで指定可能)

ipv6.gateway

string

auto (l3s), - (l2)

l3sモードでは、デフォルトIPv6ゲートウェイを自動的に追加するかどうか(autononeを指定可能)。l2モードで、はゲートウェイのIPv6アドレス。

ipv6.host_table

integer

-

(メインのルーティングテーブルに加えて)IPv6の静的ルートを追加する先のカスタムポリシー・ルーティングテーブルID

mode

string

l3s

IPVLANのモード(l2l3sのいずれか)

mtu

integer

親の MTU

新しいインタフェースのMTU

name

string

カーネルが割り当て

インスタンス内部でのインタフェース名

queue.tx.length

integer

-

NICの送信キューの長さ

parent

string

-

ホストデバイスの名前(必須)

vlan

integer

-

アタッチ先のVLAN ID

nictype: p2p#

注釈

このNICタイプはnictypeオプションでのみ選択できます。

p2p NICは仮想デバイスペアを作成し、片方はインスタンス内に配置し、もう片方はホストに残します。

デバイスオプション#

p2pタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

説明

boot.priority

integer

-

VMのブート優先度 (高いほうが先にブート)

host_name

string

ランダムに割り当て

ホスト内でのインタフェースの名前

hwaddr

string

ランダムに割り当て

新しいインタフェースのMACアドレス

ipv4.routes

string

-

ホスト上でNICに追加するIPv4静的ルートのカンマ区切りリスト

ipv6.routes

string

-

ホスト上でNICに追加するIPv6静的ルートのカンマ区切りリスト

limits.egress

string

-

外向きトラフィックのI/O制限値(さまざまな単位が使用可能、ストレージとネットワーク制限の単位参照)

limits.ingress

string

-

内向きトラフィックのI/O制限値(さまざまな単位が使用可能、ストレージとネットワーク制限の単位参照)

limits.max

string

-

内向きと外向きの両方のトラフィックI/O制限値(limits.ingresslimits.egressの両方を設定するのと同じ)

mtu

integer

カーネルが割り当て

新しいインタフェースのMTU

name

string

カーネルが割り当て

インスタンス内部でのインタフェース名

nictype: routed#

注釈

このNICタイプはnictypeオプションでのみ選択できます。

routed NICタイプはホストをインスタンスに接続する仮想デバイスペアを作成し、インスタンスが指定された親インタフェースのネットワークに参加できるように、静的ルートとプロキシARP/NDPエントリをセットアップします。 コンテナでは仮想イーサネットデバイスペアを使用し、VMではTAPデバイスを使用します。

このNICタイプは運用上はIPVLANに似ていて、ブリッジを設定することなくホストのMACアドレスを共用して、インスタンスが外部ネットワークに参加できるようにします。 しかし、カーネルにIPVLANサポートを必要としないことと、ホストとインスタンスが互いに通信できることがipvlanとは異なります。

このNICタイプはnetfilterのルールを尊重し、ホストのルーティングテーブルを使ってパケットをルーティングしますので、ホストが複数のネットワークに接続している場合に役立ちます。

IP アドレス、ゲートウェイ、ルーティング

インスタンスが起動する前にIPアドレスを(ipv4.addressipv6.addressの設定のいずれかあるいは両方を使って)手動で指定する必要があります。

コンテナでは、NICはホスト上に下記のリンクローカルゲートウェイIPアドレスを設定し、それらをコンテナのNICインタフェースのデフォルトゲートウェイに設定します。

169.254.0.1 fe80::1

VMでは、ゲートウェイは手動かcloud-initのような仕組みを使って設定する必要があります。

注釈

お使いのコンテナイメージがインタフェースに対してDHCPを使うように設定されている場合、上記の自動的に追加される設定は削除される可能性が高いです。 この場合、IPアドレスとゲートウェイを手動かcloud-initのような仕組みを使って設定する必要があります。

このNICタイプはインスタンスのIPアドレス全てをインスタンスのvethインタフェースに向ける静的ルートをホスト上に設定します。

複数のIPアドレス

それぞれのNICデバイスに複数のIPアドレスを追加できます。

しかし、代わりに複数のrouted NICインタフェースを使うほうが望ましいかもしれません。 この場合、ipv4.gatewayipv6.gatewayの値をnoneに設定し、後続のインタフェースがデフォルトゲートウェイの衝突を避けるようにします。 さらに、これらの後続のインタフェースにipv4.host_addressipv6.host_addressを使って異なるホスト側のアドレスを指定することを検討してください。

親のインタフェース

このNICはparentのネットワークインタフェースのセットがあってもなくても利用できます。

parentネットワークインタフェースのセットがある場合、インスタンスのIPのプロキシARP/NDPエントリが親のインタフェースに追加され、インスタンスが親のインタフェースのネットワークにレイヤ2で参加できるようにします。

DNS

ネームサーバーは自動的には設定されないので、インスタンス内で設定する必要があります。 このためには、以下のsysctlの設定をしてください。

  • IPv4アドレスを使用する場合

    net.ipv4.conf.<parent>.forwarding=1
    
  • IPv6アドレスを使用する場合

    net.ipv6.conf.all.forwarding=1
    net.ipv6.conf.<parent>.forwarding=1
    net.ipv6.conf.all.proxy_ndp=1
    net.ipv6.conf.<parent>.proxy_ndp=1
    

デバイスオプション#

routedタイプのNICデバイスには以下のデバイスオプションがあります。

キー

デフォルト値

説明

gvrp

bool

false

GARP VLAN Registration Protocolを使ってVLANを登録する

host_name

string

ランダムに割り当て

ホスト内でのインタフェース名

hwaddr

string

ランダムに割り当て

新しいインタフェースのMACアドレス

ipv4.address

string

-

インスタンスに追加するIPv4静的アドレスのカンマ区切りリスト

ipv4.gateway

string

auto

自動的にIPv4デフォルトゲートウェイを追加するかどうか(autononeを指定可能)

ipv4.host_address

string

169.254.0.1

ホスト側のvethインタフェースに追加するIPv4アドレス

ipv4.host_table

integer

-

(メインのルーティングテーブルに加えて)IPv4の静的ルートを追加する先のカスタムポリシー・ルーティングテーブルID

ipv4.neighbor_probe

bool

true

IPアドレスが利用可能か知るために親のネットワークを調べるかどうか

ipv4.routes

string

-

ホスト上でNICに追加するIPv4静的ルートのカンマ区切りリスト(L2 ARP/NDPプロキシを除く)

ipv6.address

string

-

インスタンスに追加するIPv6静的アドレスのカンマ区切りリスト

ipv6.gateway

string

auto

自動的にIPv6のデフォルトゲートウェイを追加するかどうか(autononeを指定可能)

ipv6.host_address

string

fe80::1

ホスト側のvethインタフェースに追加するIPv6アドレス

ipv6.host_table

integer

-

(メインのルーティングテーブルに加えて)IPv6の静的ルートを追加する先のカスタムポリシー・ルーティングテーブルID

ipv6.neighbor_probe

bool

true

IPアドレスが利用可能か知るために親のネットワークを調べるかどうか

ipv6.routes

string

-

ホスト上でNICに追加するIPv6静的ルートのカンマ区切りリスト(L2 ARP/NDPプロキシを除く)

limits.ingress

string

-

内向きトラフィックに対するbit/sでのI/O制限値(さまざまな単位をサポート、ストレージとネットワーク制限の単位参照)

limits.egress

string

-

外向きトラフィックに対するbit/sでのI/O制限値(さまざまな単位をサポート、ストレージとネットワーク制限の単位参照)

limits.max

string

-

内向きと外向き両方のトラフィックのI/O 制限値(limits.ingresslimits.egressの両方を設定するのと同じ)

mtu

integer

親の MTU

新しいインタフェースのMTU

name

string

カーネルが割り当て

インスタンス内でのインタフェース名

parent

string

-

インスタンスが参加するホストデバイス名

queue.tx.length

integer

-

NICの送信キューの長さ

vlan

integer

-

アタッチ先の VLAN ID

bridgemacvlanipvlanを使った物理ネットワークへの接続#

bridgedmacvlanipvlanインタフェースタイプのいずれも、既存の物理ネットワークへ接続するために使用できます。

macvlanは、物理NICを効率的に分岐できます。つまり、物理NICからインスタンスで使える第2のインタフェースを取得できます。 この方法はブリッジデバイスと仮想イーサネットデバイスペアの作成を不要にしますし、通常はブリッジよりも良いパフォーマンスが得られます。

macvlanの欠点は、macvlanはインスタンス自身と外部との間で通信はできますが、親デバイスとは通信できないことです。 つまりインスタンスとホストが通信する必要がある場合はmacvlanは使えません。

そのような場合は、bridgeデバイスを選ぶのが良いでしょう。 macvlanでは使えないMACフィルタリングとI/O制限も使えます。

ipvlanmacvlanと同様ですが、フォークされたデバイスが静的に割り当てられたIPアドレスを持ち、ネットワーク上の親のMACアドレスを受け継ぐ点が異なります。

MAASを使った統合管理#

もし、LXDホストが接続されている物理ネットワークをMAASを使って管理している場合で、インスタンスを直接MAASが管理するネットワークにアタッチしたい場合は、MAASとやりとりをしてインスタンスをトラッキングするようにLXDを設定できます。

そのためには、デーモンに対して、maas.api.urlmaas.api.keyを設定しなければなりません。そして、maas.subnet.ipv4maas.subnet.ipv6の両方またはどちらかを、インスタンスもしくはプロファイルのnicエントリーに設定します。

これで、LXDは全てのインスタンスをMAASに登録し、適切なDHCPリースとDNSレコードをインスタンスに与えます。

ipv4.addressもしくはipv6.addressキーをNIC に設定した場合は、MAAS上で静的な割り当てとして登録されます。