これについて多くの質問やスレッドがありましたが、どれも私の問題を解決しません。
コンテナー内で構成せずに、特定のコンテナーに特定の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アドレスをデバイスに割り当てることができないため、現時点ではテストできません。
解決策は、ホストマシン上に複数のブリッジインターフェイスを作成し、1つのコンテナに1つのブリッジを割り当てることです。
これは完璧なチュートリアルです: https://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_aus_Subnetz/en
標準lxdブリッジを構成する
ファイルを作成します/ etc/default/lxd-static-ip.confホストごとに1行:
dhcp-Host=<containername>,<static-ipaddress>
編集/ etc/default/lxd-bridge、設定LXD_CONFILE変数:
LXD_CONFILE="/etc/default/lxd-static-ip.conf"
lxd-bridgeを再起動します(例systemctl restart lxd-bridge)、コンテナを再起動します