コンテナでネットワークインフラストラクチャを作成しようとしていますが、lxcコンテナに別のlxd(例:lxcbr1)ブリッジを設定するにはどうすればよいですか?
ホストで次のように入力します。
Sudo brctl addbr lxcbr1
しかし、次のように入力して新しいコンテナを起動すると:
lxc launch images:centos/7/AMD64 MyCentos
このコンテナはデフォルトでlxdbr0ブリッジでネットワーク設定を取得します。
注:コンピューター上の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
プロファイルを使用するようになり、lxdbr0
とlxdbr1
と_の両方でeth0
とeth1
の両方を使用する必要があります。 [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
に設定しているため。