2016-05-16 21 views
2

私は一緒に働き、コミュニケーションが必要ないくつかのアプリケーションを持っています。ホスト固有IDの生成方法は?

これらのアプリケーションは異なるホストにインストールすることができますが、異なるホストにインストールすることはできますが、すべてがグローバルネットワーク経由で接続されています。

ホストはLinux(CenOS、Debian、Ubuntu)またはWindows(7/10)です。

ここで、アプリケーションを実行しているホストを特定する必要があります。

要件は次のとおりです。 - 同じホスト上で実行されているすべてのアプリケーションは、同じ「ホストID」 てきた - ホストは、物理マシン、仮想マシンすることができますので、すべての「ホストIDは、」すべてのホスト間で

ユニークです私はホスト名を "グローバル一意のID"として使うことはできないと思います。

ホストは異なるローカルネットワークに存在する可能性があるため、ローカルIPアドレスを「グローバル一意のID」として使用することはできません。

だから、どのデータを使用できますか?たぶん、ネットワークアダプタのMACアドレス? は、同じドッカーの複数のインスタンス間でも一意であることが保証されていますか?

ありがとうございました。

+0

ドッキング用の容器のIDはuuidsです。あなたはVMホスト名とハードウェアノードのホスト名としてuuidを割り当てる方法が必要なのでしょうか? –

+0

ネットワークインターフェイスを持つすべてのホストは一意のMACアドレスでなければなりません。ドッカーインスタンスを含める。どんなrasonのためにも、2人のドッカーがホストしているなら、 'docker run --lxc-conf =" lxc.networkでmacアドレスを変更することができます。hwaddr = 92:20:de:b0:6b:61 "my_image ifconfig' – abkrim

答えて

1

MACアドレスが一意であると言えます。ただし、セキュリティが懸念される場合は、MACアドレスを使用しないでください。 MACアドレスは簡単になりすますことができます。

マシンの一意のIDを生成するには、MACアドレス、IPアドレス、ホスト名などの多くの項目の組み合わせを使用してランダムな塩を投げ、sha256ハッシュを取ります。ホストは多くのオペレーティングシステムで実行できるので、OS特有のパラメータを使用することを推奨します。

あまり詳しく説明しなくても、sha256の衝突を検出する可能性は最低限に抑えることはできません。

さまざまなテキストのSHA256がここに表示されます。 http://www.xorbin.com/tools/sha256-hash-calculator

最近ほとんどのプログラミング言語は、SHA256ハッシュを作成するための機能/ APIを備えています。

+0

私はセキュリティに関心がありません(プロジェクトのこの部分ではありません...)同じホスト上で実行されているすべてのアプリケーションが同じ「ホストID」を持つ必要があるため、実際にランダムなニュアバーを使用することはできません – Aurelien

2

現代/最近のLinuxディストリビューションでは、初めてシステムを作成するときにlinuxが/etc/machine-idファイルの一意のIDを生成します。 etcdなどの一部の分散サービスは、このファイルを使用してクラスタ内のマシンを識別します。

ディスク上にuuidのようなものを作成して永続化させることはできません。あなたはそのためにLinux上でuuidgenコマンドを使うことができます。

+0

これは正しくない、そのようなものは見つかりませんでした – heemayl

+0

fedora 24では、/ etc/machine-idにあります。ubuntu 14.04では、/ var/lib/dbus/machine-idにあります。 heemaylを使って? –

関連する問題