A hora do sistema entre diferentes máquinas virtuais é sincronizada na virtualbox?

2

Estou desenvolvendo um aplicativo que requer testes complexos envolvendo registros de data e hora exatos de vários eventos.

Como exemplo, digamos que temos dois hosts: h1 e h2.

Agora, se eu executar um tcpdump em h1, recebo um timestamp associado. O mesmo vale para h2.

Agora, suponha que h1 envie um pacote ICMP para h2. O pacote deve, como eu entendo, estar logado no tcpdump h1 no momento em que ele deixa h1 e no tcpdump da h2 quando h2 recebe o mesmo.

Agora estou simulando os hosts como máquinas Ubuntu usando o VirtualBox.

Então eu tenho duas perguntas:

Uma, minhas suposições sobre o tcpdump estão corretas?

Segundo, posso ter certeza absoluta de que o horário central é o mesmo para as duas máquinas virtuais. Eu sei que isso não é possível em uma rede física. No entanto, como as máquinas virtuais compartilham um sistema comum, eu queria saber se o mesmo é verdade. Se não, existe alguma outra maneira de garantir a sincronização durante o teste?

[OBSERVAÇÕES FINAIS]: Para aqueles que podem ser curiosos, o VirtualBox vem configurado com o NTP e se você tiver uma tarefa semelhante, configurar o NTP pode ser eliminado da sua lista de tarefas.

    
por spiritusozeans 14.06.2013 / 19:12

2 respostas

5

Suas suposições sobre tcpdump estão corretas. Uma captura tcpdump pega os pacotes brutos.
Os valores de registro de data e hora aos quais você terá acesso ao processar o dump são, portanto, os valores de registro de data e hora nos pacotes (que são inseridos pelo sistema envio ).

Se você estiver registrando os pacotes no receptor, seus registros podem incluir os timestamps (o registro de data e hora do remetente do pacote e o timestamp do receptor do relógio local). Eles falaram sobre isso em um pequeno detalhe em 1981, na RFC 781 .

Em relação à sincronização de horário, a resposta é sempre NTP .

VMs podem sincronizar o relógio de hardware virtual com a idéia do host de que horas são, mas o sistema operacional pode não estar verificando obsessivamente o relógio do hardware. Sistemas operacionais modernos (pelo menos unix / linux) mantêm um tempo de SO que é semi-independente do clock do hardware e ocasionalmente é gravado nele.

O NTP disciplina a idéia do sistema de "que horas são" e é responsável pelo desvio natural no subsistema de relógio / temporização do hardware. Sincronizar os relógios da VM com o NTP é a melhor maneira de garantir que eles concordem com o tempo na medida em que são práticos no mundo real.

As VMs não devem ser usadas para qualquer coisa com tempo crítico * - As máquinas virtuais são realmente péssimas de tempo. Até mesmo os melhores hipervisores comerciais podem ganhar ou perder tempo, dependendo da carga de trabalho do sistema e de outros fatores. O VirtualBox é virtualização de classe de estação de trabalho e é ainda mais suscetível a esses problemas. Eu vi VMs do VirtualBox sem NTP ou outros helpers de cronometragem perder até um minuto por hora na minha estação de trabalho. Isso definitivamente está além dos meus limites de precisão aceitável.

    
por 14.06.2013 / 21:07
0

Eu concordaria com voretaq7 Em tudo menos um ponto, não use ntp! Use sntp. O NTP é um ótimo protocolo, mas é inadequado para máquinas virtuais. O Ntp assume que os relógios são mensuráveis e previsíveis e usa essa suposição para torná-los mais precisos ao medir suas imprecisões. Isso produz uma medição de tempo robusta, precisa e tolerante a falhas. No entanto, ele quebra em máquinas virtuais para as quais o relógio não tem nenhuma propriedade confundindo o servidor ntp no guest da vm (lembre-se de que o ntp é um protocolo peer to peer). Este não é um problema com a maioria das janelas convidado como eles usam sntp e chamá-lo ntp, mas é um problema com os clientes linux, pois muitas vezes eles têm um servidor ntp disponível se não for incluído padrão. Isso também é um não-problema com o ntpdate. No entanto, eu recomendo executar um servidor ntp completo no host, pois ele tem um relógio de hardware mensurável que é previsível.

    
por 08.09.2015 / 01:15