web-dev-qa-db-ja.com

セカンダリlxdブリッジを作成するにはどうすればよいですか?

コンテナでネットワークインフラストラクチャを作成しようとしていますが、lxcコンテナに別のlxd(例:lxcbr1)ブリッジを設定するにはどうすればよいですか?

ホストで次のように入力します。

Sudo brctl addbr lxcbr1

しかし、次のように入力して新しいコンテナを起動すると:

lxc launch images:centos/7/AMD64 MyCentos

このコンテナはデフォルトでlxdbr0ブリッジでネットワーク設定を取得します。

2
GabrielMeg

注:コンピューター上のLXCクライアントは、リモートLXCインスタンスを使用できます。ここで使用情報の角括弧[ ]の間にあるものはすべて無視されます。それと一緒に何をすべきかを説明します。また、OPの質問から提供されたlaunchコマンドを使用しますが、任意のOSイメージを使用して起動できます。

brctlを直接使用してから個々のコンテナ構成をいじる代わりに、lxc network createを使用してこれを行うことを検討し、LXDにこれらのブリッジを管理させます。ブリッジを実際に作成するのが簡単になり、頭痛の種も増えません。 (これは私がいくつかのLXD環境で行うことです)。

使用法から:

lxc network create [<remote>:]<network> [key=value...]
    Create a network.

効果的には、lxc network create lxcbr1または名前を付けたいものを実行します。

問題は、これをどこかに指定する必要があることです。特に複数のブリッジにバインドする必要がある場合は、これに個人的に構成プロファイルを使用します。

さて、通常個々のブリッジに個別のプロファイルがあり、同じボックスに2つ入れないでくださいが、あなたの場合は2つのLXDがありますブリッジ定義。そのため、これらの構成プロファイルを作成する必要があります。


コンテナに複数のブリッジが同時に必要な場合...

default構成をmultibridge構成にコピーすることから始めます。

lxc profile copy default multibridge

その後、複数のネットワークデバイスを持つように、新しいマルチブリッジファイルを編集する必要があります。

lxc profile edit multibridge

ファイルには次のようなものがあります。

devices:
  eth0:
    nictype: bridged
    parent: lxdbr0
    type: nic

type行の後に新しい空白行を作成し、行を追加して次のようにします。

devices:
  eth0:
    nictype: bridged
    parent: lxdbr0
    type: nic
  eth1:
    nictype: bridged
    parent: testing
    type: nic

ファイル内の他のものを編集せずに保存します。

ここで、LXDに新しいコンテナを作成するように指示する必要がありますが、multibridgeプロファイルを使用します。

lxc launch images:centos/7/AMD64 MyCentos -p multibridge

これにより、LXDは新しいコンテナの構成プロファイルとして設定したmultibridgeプロファイルを使用するようになり、lxdbr0lxdbr1と_の両方でeth0eth1の両方を使用する必要があります。 [SOMECODE] _それぞれコンテナ内。

1つの大きな注意点:システムは賢くなく、eth1を適切に設定しません。そのため、CentOSシステムに移動し、eth1の構成を自分でセットアップして、lxdbr1構成のIP範囲内のDHCPまたは静的IPに設定する必要があります。そうしないと、そのインターフェイスは起動しません。この構成はOSによって異なるため、ここでは、すべてのイメージでそれぞれのネットワークインターフェイスを構成する方法について明確な回答をすることはできません。他にも利用可能なリソースがあります。


新しいブリッジのみが必要で、not一度に1つのコンテナに複数のブリッジが必要な場合...

次に、そのためのプロファイルを作成する必要があります。

lxc profile copy default lxdbr1

...そして、その新しいプロファイルを編集します。

lxc profile edit lxdbr1

...そして、そこに入ったら、lxdbr0が指定されている場所を見つけて、lxdbr1に変更します。

そして、上記のように、LXDコンテナーを起動し、lxdbr1プロファイルを指定します。

lxc launch images:centos/7/AMD64 MyCentos -p lxdbr1

デフォルトでは、最初のインターフェイスをDHCPに設定し、適切に自動構成されるため、ネットワークインターフェイスに特別な構成を行う必要はありません。


設定後の注意事項:

また、brctlを使用せずにlxdbr1ネットワーク構成を編集し、lxc network edit lxdbr1を呼び出して個々の構成を追加することで、入力する構成がわかっている場合は、個々のネットワーク要素をすべて修正できます。これにより、lxdが実際にすべてを処理できるようになり、brctlを使用して手動でブリッジを設定する必要がなくなります(LXDがブリッジを管理できるようになります)。

次のようなネットワーク構成をセットアップすると、自動NATが無効になり、2番目のブリッジのインターネットへのデータフローを手動で構成する必要があります(ブリッジに変更を加えることができます) lxc network edit lxdbr1を名前として使用する場合は、lxdbr1を介して自身を設定します)。ここでipv4.nat: "false"の使用に注意してください。これにより、システム自体がアウトバウンドに到達しているように見えるiptables 'MASQUERADEルールが無効になります。

config:
  ipv4.address: 10.75.251.1/24
  ipv4.dhcp: "true"
  ipv4.dhcp.ranges: 10.75.251.200-10.75.251.250
  ipv4.nat: "false"

IPv6に相当するコマンドもありますが、IPv4の方が扱いやすいため、ここでは省略します。これが完了したら、コンテナを再起動する必要があります。特に、すべてをdhcpに設定しているため。

3
Thomas Ward