ブリッジネットワーク#

LXDでのネットワークの設定タイプの1つとして、LXDはネットワークブリッジの作成と管理をサポートしています。

ネットワークブリッジはインスタンスNICが接続できる仮想的なL2イーサネットスイッチを作成し、インスタンスが他のインスタンスやホストと通信できるようにします。 LXDのブリッジは下層のネイティブなLinuxのブリッジとOpen vSwitchを利用できます。

bridgeネットワークはそれを利用する複数のインスタンスを接続するL2ブリッジを作成しそれらのインスタンスを単一のL2ネットワークセグメントにします。 LXD で作成されたブリッジは"managed"です。 つまり、ブリッジインタフェース自体を作成するのに加えて、LXDさらにDHCP、IPv6ルート広告とDNSサービスを提供するローカルのdnsmasqプロセスをセットアップします。 デフォルトではブリッジに対してNATも行います。

LXDブリッジネットワークでファイアウォールを設定するための手順についてはファイアウォールを設定するにはを参照してください。

注釈

静的なDHCP割当はMACアドレスをDHCP識別子として使用するクライアントに依存します。 この方法はインスタンスをコピーする際に衝突するリースを回避し、静的に割り当てられたリースが正しく動くようにします。

IPv6プリフィクスサイズ#

ブリッジネットワークでIPv6を使用する場合、64のプリフィクスサイズを使用するべきです。

より大きなサブネット(つまり64より小さいプリフィクスを使用する)も正常に動くはずですが、通常それらはSLAACには役立ちません。

より小さなサブネットも(IPv6の割当にはステートフルDHCPv6を使用する場合) 理論上は可能ですが、dnsmasqに適切にサポートされていないので問題が起きるかもしれません。より小さなサブネットを作らなければならない場合は、静的割当を使うか別のルータ広告デーモンを使用してください。

設定オプション#

bridgeネットワークタイプでは現在以下の設定キーネームスペースがサポートされています。

  • bgp (BGPピア設定)

  • bridge (L2インタフェースの設定)

  • dns (DNSサーバーと名前解決の設定)

  • fan (Ubuntu FAN overlayに特有な設定)

  • ipv4 (L3 IPv4設定)

  • ipv6 (L3 IPv6設定)

  • maas (MAASネットワーク識別)

  • security (ネットワークACL設定)

  • raw (rawの設定のファイルの内容)

  • tunnel (ホスト間のトンネリングの設定)

  • user (key/valueの自由形式のユーザメタデータ)

注釈

ネットワークのサブネット情報を指定する箇所では LXD は CIDR 表記 (例えば 192.0.2.0/242001:db8::/32) を使用します。これは単一のアドレスが必要なケース (例えば、トンネルのローカル/リモートアドレス、インスタンスに適用する NAT アドレスや特定のアドレス) では適用されません。

bridgeネットワークタイプには以下の設定オプションがあります。

キー

条件

デフォルト

説明

bgp.peers.NAME.address

string

BGPサーバー

-

ピアのアドレス(IPv4かIPv6)

bgp.peers.NAME.asn

integer

BGPサーバー

-

ピアのAS番号

bgp.peers.NAME.password

string

BGPサーバー

- (パスワード無し)

ピアのセッションパスワード(省略可能)

bgp.peers.NAME.holdtime

integer

BGPサーバー

180

ピアセッションホールドタイム(秒で指定、省略可能)

bgp.ipv4.nexthop

string

BGPサーバー

ローカルアドレス

広告されたプリフィクスのnext-hopをオーバーライド

bgp.ipv6.nexthop

string

BGPサーバー

ローカルアドレス

広告されたプリフィクスのnext-hopをオーバーライド

bridge.driver

string

-

native

ブリッジのドライバ(nativeopenvswitch)

bridge.external_interfaces

string

-

-

ブリッジに含める未設定のネットワークインタフェースのカンマ区切りリスト

bridge.hwaddr

string

-

-

ブリッジのMACアドレス

bridge.mode

string

-

standard

ブリッジの稼働モード(standardfan)

bridge.mtu

integer

-

1500

ブリッジのMTU(tunnelかfanかでデフォルト値は変わります)

dns.domain

string

-

lxd

DHCPのクライアントに広告しDNSの名前解決に使用するドメイン

dns.mode

string

-

managed

DNSの登録モード(noneはDNSレコード無し、managedはLXDが静的レコードを生成、dynamicはクライアントがレコードを生成)

dns.search

string

-

-

完全なドメインサーチのカンマ区切りリスト(デフォルトはdns.domainの値)

dns.zone.forward

string

-

managed

正引きDNSレコード用のDNSゾーン名のカンマ区切りリスト

dns.zone.reverse.ipv4

string

-

managed

IPv4逆引きDNSレコード用のDNSゾーン名

dns.zone.reverse.ipv6

string

-

managed

IPv6逆引きDNSレコード用のDNSゾーン名

fan.overlay_subnet

string

ファンモード

240.0.0.0/8

FANのoverlayとして使用するサブネット(CIDR形式)

fan.type

string

ファンモード

vxlan

FANのトンネル・タイプ(vxlanipip)

fan.underlay_subnet

string

ファンモード

auto(作成時のみ)

FANのunderlayとして使用するサブネット(CIDR形式)。デフォルトのゲートウェイサブネットを使うにはautoを指定。

ipv4.address

string

標準モード

- (作成時の初期値: auto)

ブリッジのIPv4アドレス(CIDR形式)。IPv4をオフにするにはnone、新しいランダムな未使用のサブネットを生成するにはautoを指定。

ipv4.dhcp

bool

IPv4アドレス

true

DHCPを使ってアドレスを割り当てるかどうか

ipv4.dhcp.expiry

string

IPv4 DHCP

1h

DHCPリースの有効期限

ipv4.dhcp.gateway

string

IPv4 DHCP

IPv4アドレス

サブネットのゲートウェイのアドレス

ipv4.dhcp.ranges

string

IPv4 DHCP

全てのアドレス

DHCPに使用するIPv4の範囲(開始-終了の形式)のカンマ区切りリスト

ipv4.firewall

bool

IPv4アドレス

true

このネットワークに対するファイアウォールのフィルタリングルールを生成するかどうか

ipv4.nat

bool

IPv4アドレス

false (ipv4.addressautoの場合の作成時の初期値: true)

NATにするかどうか

ipv4.nat.address

string

IPv4アドレス

-

ブリッジからの送信時に使うソースアドレス

ipv4.nat.order

string

IPv4アドレス

before

必要なNATのルールを既存のルールの前に追加するか後に追加するか

ipv4.ovn.ranges

string

-

-

子供のOVNネットワークルーターに使用するIPv4アドレスの範囲(開始-終了の形式)のカンマ区切りリスト

ipv4.routes

string

IPv4アドレス

-

ブリッジへルーティングする追加のIPv4 CIDRサブネットのカンマ区切りリスト

ipv4.routing

bool

IPv4アドレス

true

ブリッジの内外にトラフィックをルーティングするかどうか

ipv6.address

string

標準モード

- (作成時の初期値: auto)

ブリッジのIPv6アドレス(CIDR形式)。IPv6をオフにするにはnone、新しいランダムな未使用のサブネットを生成するにはautoを指定。

ipv6.dhcp

bool

IPv6アドレス

true

DHCP上で追加のネットワーク設定を提供するかどうか

ipv6.dhcp.expiry

string

IPv6 DHCP

1h

DHCPリースの有効期限

ipv6.dhcp.ranges

string

IPv6ステートフル DHCP

全てのアドレス

DHCPに使用するIPv6の範囲(開始-終了の形式)のカンマ区切りリスト

ipv6.dhcp.stateful

bool

IPv6 DHCP

false

DHCP を使ってアドレスを割り当てるかどうか

ipv6.firewall

bool

IPv6アドレス

true

このネットワークに対するファイアウォールのフィルタリングルールを生成するかどうか

ipv6.nat

bool

IPv6アドレス

false (ipv6.addressautoの場合の作成時の初期値: true)

NATにするかどうか

ipv6.nat.address

string

IPv6アドレス

-

ブリッジからの送信時に使うソースアドレス

ipv6.nat.order

string

IPv6アドレス

before

必要なNATのルールを既存のルールの前に追加するか後に追加するか

ipv6.ovn.ranges

string

-

-

子供のOVNネットワークルーターに使用するIPv6アドレスの範囲(開始-終了の形式) のカンマ区切りリスト

ipv6.routes

string

IPv6アドレス

-

ブリッジへルーティングする追加のIPv4 CIDRサブネットのカンマ区切りリスト

ipv6.routing

bool

IPv6アドレス

true

ブリッジの内外にトラフィックをルーティングするかどうか

maas.subnet.ipv4

string

IPv4アドレス

-

インスタンスを登録するMAAS IPv4サブネット(NICでnetworkプロパティを使う場合に有効)

maas.subnet.ipv6

string

IPv6アドレス

-

インスタンスを登録するMAAS IPv6サブネット(NICでnetworkプロパティを使う場合に有効)

raw.dnsmasq

string

-

-

設定に追加するdnsmasqの設定ファイル

security.acls

string

-

-

このネットワークに接続されたNICに適用するカンマ区切りのネットワークACL(ブリッジの制限参照)

security.acls.default.egress.action

string

security.acls

reject

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

security.acls.default.egress.logged

bool

security.acls

false

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

security.acls.default.ingress.action

string

security.acls

reject

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

security.acls.default.ingress.logged

bool

security.acls

false

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

tunnel.NAME.group

string

vxlan

239.0.0.1

vxlanのマルチキャスト設定(localとremoteが未設定の場合に使われます)

tunnel.NAME.id

integer

vxlan

0

vxlanトンネルに使用するトンネルID

tunnel.NAME.interface

string

vxlan

-

トンネルに使用するホスト・インタフェース

tunnel.NAME.local

string

grevxlan

-

トンネルに使用するローカルアドレス(マルチキャストの場合は不要)

tunnel.NAME.port

integer

vxlan

0

vxlanトンネルに使用するポート

tunnel.NAME.protocol

string

標準モード

-

トンネリングのプロトコル(vxlangre)

tunnel.NAME.remote

string

grevxlan

-

トンネルに使用するリモートアドレス(マルチキャストの場合は不要)

tunnel.NAME.ttl

integer

vxlan

1

マルチキャストルーティングトポロジーに使用する固有の TTL

user.*

string

-

-

ユーザ指定の自由形式のキー/バリューペア

サポートされている機能#

bridgeネットワークタイプでは以下の機能がサポートされています。