web-dev-qa-db-ja.com

LXDコンテナセットの静的IP

これについて多くの質問やスレッドがありましたが、どれも私の問題を解決しません。

コンテナー内で構成せずに、特定のコンテナーに特定のIPを割り当てたいです。目標は、コンテナを特定のIPにバインドすることです。

  • コンテナは、ip/packet spoofingのため、インターフェイスと同じブリッジを使用できません。

  • ホストサーバーを指す2つのパブリックIPがあります。最初のものはホストに、2番目のものは特定のコンテナにとどまるべきです。

1。試す:lxdブリッジを使用する

Lxdブリッジを使用する場合、すべてのコンテナにlxdブリッジネットワークから固定IPアドレスを割り当てることができます(つまり、lxdブリッジはパブリックではないがホストサーバーからアクセスできるIP範囲でプライベートネットワークを作成します)

私のホストシステムは、プライベートlxdネットワークとパブリックネットワークにアクセスできます。今、私は(ホストシステムで)プライベートIPにプライベートIPと特定のコンテナにルーティングすることができますが、パブリックIPからの着信トラフィックをプライベートIPに転送する必要があるため、これを行う方法が見つかりませんでしたプライベートIPからパブリックIPへの発信トラフィック。

2。試行:すべてのIPのネットワークインターフェイスを作成し、特定のインターフェイスをコンテナに割り当てます

これははるかに複雑なので(そして、私はLinuxの初心者です)、 https://lists.linuxcontainers.org/pipermail/lxc-users/2016-March/011271からの指示に従ってみました。 html

しかし、うまくいきませんでした。

IPを相互にルーティングできる場合は機能するはずですが、方法がわからないので、最初の試行で行きます。

編集

ちょうどこの答えを見ました LXDゲストを単一のパブリックIPアドレスの使用に制限する方法は?

これはうまくいくようです。私のホームルーターは無料のIPアドレスをデバイスに割り当てることができないため、現時点ではテストできません。

3
SEUH

解決策は、ホストマシン上に複数のブリッジインターフェイスを作成し、1つのコンテナに1つのブリッジを割り当てることです。

これは完璧なチュートリアルです: https://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_aus_Subnetz/en

1
SEUH
  1. 標準lxdブリッジを構成する

  2. ファイルを作成します/ etc/default/lxd-static-ip.confホストごとに1行:

    dhcp-Host=<containername>,<static-ipaddress>
    
  3. 編集/ etc/default/lxd-bridge、設定LXD_CONFILE変数:

    LXD_CONFILE="/etc/default/lxd-static-ip.conf"
    
  4. lxd-bridgeを再起動します(例systemctl restart lxd-bridge)、コンテナを再起動します

1