6.4。 ネットワーキング
デフォルトでは、LXCはコンテナーごとにプライベートネットワーク名前空間を作成します。これには、レイヤー2ネットワークスタックが含まれます。 コンテナは通常、物理NICまたはvethトンネルエンドポイントをコンテナに渡すことで外部に接続します。 LXCは、ホストの起動時にNATブリッジlxcbr0を作成します。 デフォルト構成を使用して作成されたコンテナには、リモートエンドがlxcbr0ブリッジに接続されたXNUMXつのvethNICがあります。 NICは一度にXNUMXつの名前空間にしか存在できないため、コンテナに渡された物理NICはホストで使用できません。
プライベートネットワークの名前空間なしでコンテナを作成することは可能です。 この場合、コンテナは他のアプリケーションと同様にホストネットワークにアクセスできます。 これは、次の場合に特に危険であることに注意してください。
コンテナはUbuntuのようにupstartでディストリビューションを実行しています。 shutdownは、抽象Unixドメインソケットを介してホストのupstartと通信し、ホストをシャットダウンします。
lxcbr0のコンテナに、ドメイン名に基づいた永続的なIPアドレスを与えるために、次のエントリを書き込むことができます。 / etc / lxc / dnsmasq.conf 以下のように:
dhcp-host = lxcmail、10.0.3.100 dhcp-host = ttrss、10.0.3.101
コンテナが公的にアクセス可能であることが望ましい場合、それを実行するいくつかの方法があります。 XNUMXつは使用することです
たとえば、ホストポートをコンテナに転送するためのiptables
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 587 -j DNAT \
-宛先10.0.3.100:587
もう1.4つは、ホストのネットワークインターフェイスをブリッジすることです(Ubuntuサーバーガイドのネットワーク構成の章、セクション46「ブリッジ」[p.0]を参照)。 次に、たとえばlxcbrXNUMXの代わりに、コンテナー構成ファイルでホストのブリッジを指定します。
lxc.network.type = veth lxc.network.link = br0
最後に、コンテナのNICにmacvlanを使用するようLXCに依頼できます。 これには制限があり、構成によっては、コンテナーがホスト自体と通信できない場合があることに注意してください。 したがって、他のXNUMXつのオプションが優先され、より一般的に使用されます。
コンテナのIPアドレスを決定する方法はいくつかあります。 まず、あなたは使用することができます lxc-ls --fancy 実行中のすべてのコンテナのIPアドレスを出力します。 lxc-info -i -H -n C1 これにより、C1のIPアドレスが出力されます。 dnsmasqがホストにインストールされている場合は、にエントリを追加することもできます /etc/dnsmasq.conf 次のように
server = / lxc / 10.0.3.1
その後、dnsmasqはC1.lxcをローカルで解決するため、次のことができます。
ping C1 ssh C1
詳細については、lxc.confのマンページと以下のネットワーク構成の例を参照してください。 / usr / share / doc / lxc / examples /.