Simuler des fautes temporelles
Traduction Bêta Non Officielle
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Ce document explique comment utiliser Chaosd pour simuler un scénario de décalage temporel. Vous pouvez créer des expériences soit en mode ligne de commande, soit en mode service.
Créer des expériences en mode ligne de commande
Cette section explique comment créer des expériences de fautes temporelles à l'aide de commandes.
Avant de créer une expérience, vous pouvez exécuter la commande suivante pour consulter les options des fautes temporelles :
chaosd attack clock -h
Le résultat est le suivant :
$ chaosd attack clock -h
clock skew
Usage:
chaosd attack clock attack [flags]
Flags:
-c, --clock-ids-slice string The identifier of the particular clock on which to act.More clock description in linux kernel can be found in man page of clock_getres, clock_gettime, clock_settime.Muti clock ids should be split with "," (default "CLOCK_REALTIME")
-h, --help help for clock
-p, --pid int Pid of target program.
-t, --time-offset string Specifies the length of time offset.
Global Flags:
--log-level string the log level of chaosd, the value can be 'debug', 'info', 'warn' and 'error'
--uid string the experiment ID
Exemple rapide
Préparez le programme de test :
cat > time.c << EOF
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
printf("PID : %ld\n", (long)getpid());
struct timespec ts;
for(;;) {
clock_gettime(CLOCK_REALTIME, &ts);
printf("Time : %lld.%.9ld\n", (long long)ts.tv_sec, ts.tv_nsec);
sleep(10);
}
}
EOF
gcc -o get_time ./time.c
Exécutez ensuite get_time et tentez de l'attaquer. Voici un exemple :
chaosd attack clock -p $PID -t 11s
Configurations pour simuler des fautes temporelles
| Parameter | Type | Note | Default value | Required | Example |
|---|---|---|---|---|---|
| timeOffset | string | Specifies the length of time offset. | None | Yes | -5m |
| clockIds | []string | Specifies the ID of clock that will be offset. See the clock_gettime documentation for details. | ["CLOCK_REALTIME"] | No | ["CLOCK_REALTIME", "CLOCK_MONOTONIC"] |
| pid | string | The identifier of the process. | None | Yes | 1 |
Créer des expériences en mode service
(mise à jour en cours)