実稼働サーバーの1つは、2次テスト環境を作成するために「複製」されました。ソースサーバーは、ドメインに参加し、静的IPアドレスを持つ仮想マシン(VMWare vSphere環境)です。
複製されたVMの電源を入れると、仮想ネットワークアダプターが有効になりました。コンピューター名は変更されませんでした。IPアドレスも変更されませんでした。どういうわけか、同じDNS名とIPアドレスを持つ2つのサーバー同じドメインで数日間(おそらく1週間ほど)共存していました。しばらくの間、損傷を元に戻すのに忙しくなります...
それが不注意であろうと無知であろうと、人々は間違いを犯します。私はこれを受け入れることができます。それで、それが再び起こるかもしれないと仮定しましょう。私は問題を解決する方法を知っています。しかし、どうすればそれを検出できますか?
[〜#〜]編集[〜#〜]
VMのクローンを作成する方法に関する指示やアドバイスを探していません。私はその任務を与えられた人ではありません。 2台のコンピューター/ワークステーション/ VMが同じDNS名を持っていることをすばやく(またはすぐに)検出する方法を知りたいです。
[〜#〜]更新[〜#〜]
メインのSQLServerサービスの起動時に、SQLホストのクローンが作成されているかどうかを判断する「チェック」を実行することにしました。 (この戦術は、SQL ServerホストであるVMにのみ適用されることに注意してください。)
TLDR:ストアドプロシージャにSQLホストマシン名とドメインをハードコーディングし、それらの値をSERVERPROPERTY(N'MachineName')
およびDEFAULT_DOMAIN()
と比較します。値が一致しない場合は、思い切った操作を行ってください。
誰かが興味を持っているなら、私はそれについてブログを書きました: SQL Server:クローンの攻撃
最終的な考え
私が最初に質問を投稿したときに、おそらくこれについて言及する必要がありました。私はSQL ServerDBAです。私はシステム管理者タイプではありませんが、彼らと一緒に仕事をしています。私はシステム管理者と同じ「チーム」に所属していませんが、システム管理者からも壁に囲まれていません。私の質問に対するすべての入力と多数の回答に感謝します。ほとんどの人が問題はトレーニングの問題であると指摘しており、関係者を教育する必要があります。私は反対することはできません。これは賢明で積極的なアプローチです。しかし... SQLServerの領域外のほとんどすべてが私の制御を超えています。システム管理者は行き来します。彼らは私の欲求やニーズとは無関係に行動し、決定を下します。ただし、SQLServerの観点から何が起こるかは制御できます。行為が終わった後でも、私はまだ積極的になることができます。私の自家製ソリューションはSQLServer固有であるため、now質問を投稿する必要があったことは明らかです https://dba.stackexchange.com/ =ここで質問をすることにはまだ価値があると思いますが、モデレーターがそれを移行したいのであれば、私は理解しています。
VSphere環境で仮想マシンのクローンを作成する場合、テンプレートからVMのクローンを作成または展開するときに、 "customize guest" オプションがあります。
ここで、名前の指定、ネットワーク設定の変更、ドメインメンバーシップの指定、および新しいSIDの生成(Microsoftオペレーティングシステムの場合)を行うことができます。今後はこれですべてです。
IPの競合を示すログがイベントビューアにあった可能性があります。イベントログを収集してフィルタリングする監視システムは、それを検出してアラートをトリガーできる必要があります。
物理的に管理されたスイッチでは、重複したMACアドレスを検出して警告する可能性があります。私はvmware仮想スイッチに精通していないため、そこにどのようなオプションがあるかを知ることができません。
もちろん、本当の解決策は、クローン作成に関係するすべての人が最初から起こらないようにするための適切なトレーニングです。VMのクローン作成は、IPを変更するか、分離されたネットワークに移動するなど、非常に慎重に行う必要があります。この正確な状況を避けてください。
うまくいけば、1台のマシンがずっと「勝ち」、変更が両方のサーバーに分散されなかったのです。
優れたIP管理ポリシーに代わるものはありません。終わり。フィン。 FIN-ACK。
コンテキストに関係なく、ソフトウェアがIPアドレスを禁止するために邪魔にならない限り、人々がIPアドレスに愚かになるのを防ぐ方法はありません-そしてそれは一般的にできません。 needこれらのアドレスを保持するために複数のVMがなく、一度に1つだけオンラインになることをどのように知っていますか?これを監視するのはソフトウェアの仕事ではありません。 IPの競合を引き起こして停止を引き起こさないように、自分の仕事を十分に評価するのは管理者の仕事です。
これは、管理者が学ばなければならない教訓の1つであり、困難な方法か、他の人が困難な方法を学んでいるときに発生する避けられない午前3時のパニックのいずれかです。
tl; dr、IPAMほど賢い人はいない。 IPアドレスの割り当てまたはデバイスのクローン作成は、IPAMの祝福を伴う必要がある宗教的な機能です。 IPの衝突を防止または軽減するために設計された異教徒の慣行を信じることは、叙階された破滅をもたらすだけです。あなた自身の危険でその神の導きを無視してください。
(私はあなたがやろうとしていることを理解します。私は本当にそうします、そして私はそれを尊重します。しかし、仕事を続けたい人の側には恐れ以外の本当の解決策はありません。)
これらのクローンを作成する技術者は再教育が必要であるというコメントに同意します。特にテストサーバーが本番サーバーと同じネットワーク上にある場合は、おそらくいくつかのプッシュバックがあります。
当面の間、これは、環境内にすでに重複するIPを持つVMゲストを識別するのに役立つ場合があります。PowerCliが必要です。また、クラスターメンバーは設計上同じIPを使用することに注意してください。
$vcserver = "your-vcenter-server-name"
Add-PSsnapin VMware.VimAutomation.Core
Connect-VIServer $vcserver
$results = Get-VM | Select -ExpandProperty Guest | % {
$name = $_.HostName
$_.IPAddress | % {
New-Object PSObject -Property @{
HostName = $name
IP = $_
}
}
}
Disconnect-VIServer
次に、 this で重複を見つけます。
$count = @{}
$results | % { $count["$($_.IP)"] += 1 }
$count.Keys | ? { $count["$_"] -gt 1 } | % {
$dup = $_
$results | ? { $_.IP -eq $dup }
} | ft