ブリッジネットワーク

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

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

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

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

注釈

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

IPv6プリフィクスサイズ

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

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

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

設定オプション

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

  • bgp (BGP ピア設定)

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

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

  • ipv4 (L3 IPv4 設定)

  • ipv6 (L3 IPv6 設定)

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

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

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

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

注釈

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

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

bgp.ipv4.nexthop

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

Key: bgp.ipv4.nexthop
Type:

string

Default:

ローカルアドレス

Condition:

BGPサーバー

bgp.ipv6.nexthop

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

Key: bgp.ipv6.nexthop
Type:

string

Default:

ローカルアドレス

Condition:

BGPサーバー

bridge.driver

ブリッジのドライバー: nativeopenvswitch

Key: bridge.driver
Type:

string

Default:

native

Condition:
bridge.external_interfaces

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

Key: bridge.external_interfaces
Type:

string

Default:
Condition:
bridge.hwaddr

ブリッジのMACアドレス

Key: bridge.hwaddr
Type:

string

Default:
Condition:
bridge.mtu

ブリッジのMTU(tunnel使用時はデフォルト値は変わる)

Key: bridge.mtu
Type:

integer

Default:

1500

Condition:
bridge.multicast_snooping

ブリッジのマルチキャストスヌーピングを有効にするかどうか

Key: bridge.multicast_snooping
Type:

bool

Default:

true

Condition:

ネイティブブリッジ

dns.domain

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

Key: dns.domain
Type:

string

Default:

incus

Condition:
dns.mode

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

Key: dns.mode
Type:

string

Default:

managed

Condition:
dns.nameservers

DHCPクライアントへとルーターアドバータイズメント経由で広告するDNSサーバーのIPアドレス。IPv4とIPv6の両方のアドレスがDHCPクライアントに広告され、IPv6アドレスはさらにRA経由のRDNSSとしても広告されます。

Key: dns.nameservers
Type:

string

Default:

IPv4とIPv6のアドレス

Condition:
dns.search

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

Key: dns.search
Type:

string

Default:
Condition:
dns.zone.forward

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

Key: dns.zone.forward
Type:

string

Default:

managed

Condition:
dns.zone.reverse.ipv4

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

Key: dns.zone.reverse.ipv4
Type:

string

Default:

managed

Condition:
dns.zone.reverse.ipv6

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

Key: dns.zone.reverse.ipv6
Type:

string

Default:

managed

Condition:
ipv4.address

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

Key: ipv4.address
Type:

string

Default:
  • (作成時の初期値: auto

Condition:

標準モード

ipv4.dhcp

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

Key: ipv4.dhcp
Type:

bool

Default:

true

Condition:

IPv4アドレス

ipv4.dhcp.expiry

DHCPリースの有効期限

Key: ipv4.dhcp.expiry
Type:

string

Default:

1h

Condition:

IPv4 DHCP

ipv4.dhcp.gateway

サブネットのゲートウェイのアドレス(ゲートウェイの広告をオフにするにはnoneを使用)

Key: ipv4.dhcp.gateway
Type:

string

Default:

IPv4アドレス

Condition:

IPv4 DHCP

ipv4.dhcp.ranges

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

Key: ipv4.dhcp.ranges
Type:

string

Default:

すべてのアドレス

Condition:

IPv4 DHCP

ipv4.dhcp.routes

DHCPオプション121経由で提供する静的ルート、代替のサブネット(CIDR)とゲートウェイアドレスのカンマ区切りリスト(dnsmasqと同じ形式)

Key: ipv4.dhcp.routes
Type:

string

Default:
Condition:

IPv4 DHCP

ipv4.firewall

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

Key: ipv4.firewall
Type:

bool

Default:

true

Condition:

IPv4アドレス

ipv4.nat

NATにするかどうか

Key: ipv4.nat
Type:

bool

Default:

falseipv4.addressautoの場合の作成時の初期値: true

Condition:

IPv4アドレス

ipv4.nat.address

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

Key: ipv4.nat.address
Type:

string

Default:
Condition:

IPv4アドレス

ipv4.nat.order

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

Key: ipv4.nat.order
Type:

string

Default:

before

Condition:

IPv4アドレス

ipv4.ovn.ranges

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

Key: ipv4.ovn.ranges
Type:

string

Default:
Condition:
ipv4.routes

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

Key: ipv4.routes
Type:

string

Default:
Condition:

IPv4アドレス

ipv4.routing

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

Key: ipv4.routing
Type:

bool

Default:

true

Condition:

IPv4 DHCP

ipv6.address

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

Key: ipv6.address
Type:

string

Default:
  • (作成時の初期値: auto

Condition:

標準モード

ipv6.dhcp

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

Key: ipv6.dhcp
Type:

bool

Default:

true

Condition:

IPv6 DHCP

ipv6.dhcp.expiry

DHCPリースの有効期限

Key: ipv6.dhcp.expiry
Type:

string

Default:

1h

Condition:

IPv6 DHCP

ipv6.dhcp.ranges

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

Key: ipv6.dhcp.ranges
Type:

string

Default:

すべてのアドレス

Condition:

IPv6 ステートフル DHCP

ipv6.dhcp.stateful

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

Key: ipv6.dhcp.stateful
Type:

bool

Default:

false

Condition:

IPv6 DHCP

ipv6.firewall

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

Key: ipv6.firewall
Type:

bool

Default:

true

Condition:

IPv6アドレス

ipv6.nat

NATにするかどうか

Key: ipv6.nat
Type:

bool

Default:

falseipv6.addressautoの場合の作成時の初期値: true

Condition:

IPv6アドレス

ipv6.nat.address

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

Key: ipv6.nat.address
Type:

string

Default:
Condition:

IPv6アドレス

ipv6.nat.order

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

Key: ipv6.nat.order
Type:

string

Default:

before

Condition:

IPv6アドレス

ipv6.ovn.ranges

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

Key: ipv6.ovn.ranges
Type:

string

Default:
Condition:
ipv6.routes

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

Key: ipv6.routes
Type:

string

Default:
Condition:

IPv6アドレス

ipv6.routing

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

Key: ipv6.routing
Type:

bool

Default:

true

Condition:

IPv6アドレス

raw.dnsmasq

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

Key: raw.dnsmasq
Type:

string

Default:
Condition:
security.acls

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

Key: security.acls
Type:

string

Default:
Condition:
security.acls.default.egress.action

どのACLルールにもマッチしないエグレス・トラフィックに使うアクション

Key: security.acls.default.egress.action
Type:

string

Default:

reject

Condition:

security.acls

security.acls.default.egress.logged

どのACLルールにもマッチしないエグレス・トラフィックをログ出力するかどうか

Key: security.acls.default.egress.logged
Type:

bool

Default:

false

Condition:

security.acls

security.acls.default.ingress.action

どのACLルールにもマッチしないイングレス・トラフィックに使うアクション

Key: security.acls.default.ingress.action
Type:

string

Default:

reject

Condition:

security.acls

security.acls.default.ingress.logged

どのACLルールにもマッチしないイングレス・トラフィックをログ出力するかどうか

Key: security.acls.default.ingress.logged
Type:

bool

Default:

false

Condition:

security.acls

tunnel.NAME.group

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

Key: tunnel.NAME.group
Type:

string

Default:

239.0.0.1

Condition:

vxlan

tunnel.NAME.id

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

Key: tunnel.NAME.id
Type:

integer

Default:

0

Condition:

vxlan

tunnel.NAME.interface

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

Key: tunnel.NAME.interface
Type:

string

Default:
Condition:

vxlan

tunnel.NAME.local

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

Key: tunnel.NAME.local
Type:

string

Default:
Condition:

grevxlan

tunnel.NAME.port

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

Key: tunnel.NAME.port
Type:

integer

Default:

0

Condition:

vxlan

tunnel.NAME.protocol

トンネリングのプロトコル: vxlangre

Key: tunnel.NAME.protocol
Type:

string

Default:
Condition:

標準モード

tunnel.NAME.remote

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

Key: tunnel.NAME.remote
Type:

string

Default:
Condition:

grevxlan

tunnel.NAME.ttl

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

Key: tunnel.NAME.ttl
Type:

integer

Default:

1

Condition:

vxlan

user.*

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

Key: user.*
Type:

string

Default:
Condition:

BGPオプション

OVNダウンストリームネットワークのBGPピアを設定するために以下のオプションがあります:

bgp.peers.NAME.address

ovnダウンストリームネットワークで使われる(IPv4かIPv6の)ピアアドレス

Key: bgp.peers.NAME.address
Type:

string

Default:
Condition:

BGPサーバー

bgp.peers.NAME.asn

ovnダウンストリームネットワークで使われるピアのAS番号

Key: bgp.peers.NAME.asn
Type:

integer

Default:
Condition:

BGPサーバー

bgp.peers.NAME.holdtime

ピアセッションの持続時間(秒;省略可)

Key: bgp.peers.NAME.holdtime
Type:

integer

Default:

180

Condition:

BGPサーバー

bgp.peers.NAME.password

ovnダウンストリームネットワークで使われるピアセッションパスワード(省略可)

Key: bgp.peers.NAME.password
Type:

string

Default:
  • (パスワード無し)

Condition:

BGPサーバー

注釈

bridge.external_interfaces オプションは拡張された形式をサポートし、存在しない VLAN インターフェースを作成できるようにします。

拡張された形式は <interfaceName>/<parentInterfaceName>/<vlanId> です。 拡張された形式でリストに外部インターフェースが追加される際、システムはネットワークの作成に応じてインターフェースを自動で作成し、ネットワークが切断される際はその後インターフェースを削除します。 システムは<interfaceName>が既に存在しないか確認します。 もしインターフェース名が別の親や VLAN ID で使用中の場合、あるいはインターフェースの作成が成功しない場合、システムはエラーメッセージを表示し、元の状態に戻します。

サポートされている機能

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