Detectando endereço IP duplicado de máquinas virtuais clonadas incorretamente

2

Um dos nossos servidores de produção foi "clonado" para criar um ambiente de teste secundário. O servidor de origem é uma máquina virtual (ambiente VMWare vSphere) associada a um domínio e com um endereço IP estático.

Quando a VM clonada foi ligada, o adaptador de rede virtual foi ativado. O nome do computador não foi alterado. Nem o endereço IP. De alguma forma, esses dois servidores com o mesmo nome DNS e endereço IP coexistiram no mesmo domínio por vários dias - talvez até uma semana. Estaremos ocupados desfazendo o dano por um tempo ...

Quer se trate de negligência ou ignorância, as pessoas cometem erros. Eu posso aceitar isso. Então, vamos supor que isso possa acontecer novamente. Eu sei como consertar o problema. Mas como posso detectá-lo?

EDITAR
Não estou procurando instruções ou conselhos sobre como clonar uma VM. Eu não sou aquele que deu essa tarefa. Eu quero saber como rapidamente (ou imediatamente) detectar quando dois computadores / estações de trabalho / VMs têm o mesmo nome DNS.

UPDATE
Decidi executar uma "verificação" na inicialização do serviço principal do SQL Server que tentaria determinar se o host do SQL tinha sido clonado. (Observe que essa tática aplica-se somente às VMs que são hosts do SQL Server.)

TLDR: Codifique o nome e o domínio da máquina host SQL em um proc armazenado e compare esses valores com SERVERPROPERTY(N'MachineName') e DEFAULT_DOMAIN() . Faça algo drástico se os valores não corresponderem.

Se alguém estiver interessado, eu escrevi sobre isso: SQL Server: ataque aos clones

Considerações finais
Eu provavelmente deveria ter mencionado isso quando postei originalmente a pergunta: Eu sou um DBA do SQL Server. Mesmo que eu não seja do tipo sysadmin, eu trabalho com eles. Eu não estou no mesmo "time" que os administradores de sistemas, mas também não estou separado deles. Eu aprecio todas as entradas e numerosas respostas à minha pergunta. A maioria indicou que o problema é um problema de treinamento e eu deveria educar os envolvidos. Eu não posso discordar. Essa é uma abordagem sensata e proativa. Mas ... quase tudo fora do domínio do SQL Server está além do meu controle. Sysadmins vêm e vão. Eles agem e tomam decisões independentes dos meus desejos e necessidades. No entanto, eu tenho controle sobre o que acontece na perspectiva do SQL Server. Eu ainda posso ser proativo, mesmo depois que a ação estiver concluída. Como a minha solução interna é específica do SQL Server, agora é evidente que eu deveria ter postado minha pergunta no link Eu acho que ainda há algum valor em ter a pergunta aqui, mas se um moderador quiser migrar, eu entendo.

    
por Dave Mason 20.11.2014 / 03:45

4 respostas

5

Quando você clona uma máquina virtual em um ambiente vSphere, tem uma opção para " customizar guest " ao clonar ou implantar VMs a partir de um modelo ...

Aqui é onde você pode especificar um nome, alterar as configurações de rede, especificar a participação no domínio e gerar um novo SID (para os sistemas operacionais da Microsoft) . Isso é tudo que você precisa fazer daqui para frente.

    
por 20.11.2014 / 04:06
4

Provavelmente, havia registros no visualizador de eventos que indicavam conflitos de IP. Qualquer sistema de monitoramento que reúna e filtre registros de eventos deve ser capaz de detectar isso e acionar alertas.

Em switches gerenciados fisicamente, você provavelmente poderia detectar e avisar sobre o endereço MAC duplicado - não estou familiarizado o suficiente com os comutadores virtuais VMware para saber quais opções você pode ter lá.

Claro que a solução real é o treinamento adequado para todos os envolvidos na clonagem, para garantir que isso não aconteça - clonar uma VM precisa ser feito com muito cuidado, mudar o IP ou mudar para uma rede isolada para evitar isso. situação.

Espero que uma máquina "ganhe" o tempo todo e que as alterações não se espalhem pelos dois servidores!

    
por 20.11.2014 / 04:39
2

Não há substituto para boas políticas de gerenciamento de IP, nunca. O fim. Fin. FIN-ACK.

Independentemente do contexto, não há como impedir que as pessoas sejam burras com endereços IP, a menos que o software o impeça de proibi-lo - e geralmente não pode. Como ele sabe que você não precisa de várias VMs para armazenar esses endereços, e apenas um deles on-line de cada vez? Não é o trabalho do software policiar isso. É o trabalho do administrador avaliar seu trabalho o suficiente para não criar uma interrupção criando um conflito de IP.

Esta é uma daquelas lições que os administradores têm que aprender, seja da maneira mais difícil ou inevitável dos pânicos do 3AM que acontecem quando outras pessoas estão aprendendo da maneira mais difícil.

  • Você não enfrenta riscos para conflitos de IP.
  • O cuidado que você faz em trabalhar com algo que contém o endereço IP de algo importante deve ser maior ou igual ao seu desejo de continuar recebendo pagamentos.
  • Mais importante ainda, você não pode presumir que algo os impedirá ou detectará para você - além de sua própria diligência e genuflexão antes da fonte ungida da PI da sua organização.

tl; dr nunca ninguém é mais esperto que o IPAM. Atribuir um endereço IP ou clonar um dispositivo é uma função religiosa que deve ser acompanhada pela bênção do IPAM. A crença em práticas pagãs destinadas a prevenir ou mitigar conflitos de PI só resultará em ruína ordenada. Ignore sua orientação divina por sua conta e risco.

(Eu entendo o que você está tentando fazer. Eu realmente faço, e eu respeito isso. Mas não há uma solução verdadeira além de medo por parte daqueles que desejam manter seus empregos .)

    
por 21.11.2014 / 00:36
1

Concordo com os comentários de que a tecnologia que cria esses clones precisa de alguma reeducação. Talvez alguns retrocederem, especialmente se os servidores de teste estiverem na mesma rede que os servidores de produção.

Nesse meio tempo, isso pode ajudar você a identificar convidados da VM com IPs duplicados no seu ambiente. Você precisará do PowerCli e tenha em mente que os membros do cluster usam o mesmo IP por design.

$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

Em seguida, encontre duplicatas com isso :

$count = @{}
$results | % { $count["$($_.IP)"] += 1 }
$count.Keys | ? { $count["$_"] -gt 1 } | % {
   $dup = $_
   $results | ? { $_.IP -eq $dup }
} | ft
    
por 21.11.2014 / 02:21