0

Diagnostiquer les problèmes de synchronisation de configuration HA – FortiGate cluster out-of-sync

/!\ en cas de vdoms activés : Les commandes qui suivent sont entrées en mode “config global”  
 
get system ha status      <–Pour voir les informations détaillées sur l’état du cluster ainsi que la raison de la dernière bascule  
 
Prim-FW (global) # get sys ha status 
HA Health Status: OK 
Model: FortiGate-VM64-KVM 
Mode: HA A-P 
Group: 9 
Debug: 0 
Cluster Uptime: 14 days 5:9:44 
Cluster state change time: 2019-06-13 14:21:15 

Raison des dernières bascules: 
 

<2019/06/13 14:21:15> FGVMXXXXXXXXXX44 is selected as the master because it has the largest value of uptime. 
<2019/06/13 14:15:46> FGVMXXXXXXXXXX46 is selected as the master because it has the largest value of uptime. 
<2019/06/12 11:17:04> FGVMXXXXXXXXXX44 is selected as the master because it has the largest value of override priority. 
ses_pickup: enable, ses_pickup_delay=disable 
override: disable 

Vérifier la synchronisation de la configuration de chaque membre du cluster: 

 
Prim-FW(global)#diag sys ha checksum cluster 
 
================== FGVMXXXXXXXXXX44 ================== 
is_manage_master()=1, is_root_master()=1 
debugzone 
global: c5 33 93 23 26 9f 4d 79 ed 5f 29 fa 7a 8c c9 10 
root: d3 b5 fc 60 f3 f0 f0 d0 ea e4 a1 7f 1d 17 05 fc 
Cust-A: 84 af 8f 23 b5 31 ca 32 c1 0b f2 76 d2 57 d1 bc 
all: 04 ae 37 7e dc 84 aa a4 42 3d db 3c a2 09 b0 60 
 
checksum 
global: c5 33 93 23 26 9f 4d 79 ed 5f 29 fa 7a 8c c9 10 
root: d3 b5 fc 60 f3 f0 f0 d0 ea e4 a1 7f 1d 17 05 fc 
Cust-A: 84 af 8f 23 b5 31 ca 32 c1 0b f2 76 d2 57 d1 bc 
all: 04 ae 37 7e dc 84 aa a4 42 3d db 3c a2 09 b0 60 
 
================== FGVMXXXXXXXXXX46 ================== 
is_manage_master()=0, is_root_master()=0 
debugzone 
global: c5 33 93 23 26 9f 4d 79 ed 5f 29 fa 7a 8c c9 10 
root: d3 b5 fc 60 f3 f0 f0 d0 ea e4 a1 7f 1d 17 05 fc 
Cust-A: 84 af 8f 23 b5 31 ca 32 c1 0b f2 76 d2 57 d1 bc 
all: 04 ae 37 7e dc 84 aa a4 42 3d db 3c a2 09 b0 60 
 
checksum 
global: c5 33 93 23 26 9f 4d 79 ed 5f 29 fa 7a 8c c9 10 
root: d3 b5 fc 60 f3 f0 f0 d0 ea e4 a1 7f 1d 17 05 fc 
Cust-A: 84 af 8f 23 b5 31 ca 32 c1 0b f2 76 d2 57 d1 bc 
all: 04 ae 37 7e dc 84 aa a4 42 3d db 3c a2 09 b0 60 

 
S’il n’y a pas de mismatch, la configuration est synchronisée. Auquel cas, un problème de cluster remonté via la GUI sera un bug d’affichage. 

S’il y a un mismatch, voici comment voir où le mismatch se situe : 

1.vérifier dans quelle grande partie de la conf le mismatch se trouve: 
# diag sys ha checksum cluster 
================== FGT1 ================= 
is_manage_master()=0, is_root_master()=0 
debugzone 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
checksum 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
================== FGT2 ================== 
is_manage_master()=1, is_root_master()=1 
debugzone 
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: a7 8d cc c7 32 b5 81 a2 55 49 52 21 57 f9 3c 3b 
checksum 
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: a7 8d cc c7 32 b5 81 a2 55 49 52 21 57 f9 3c 3b 

2. donc comme on le voit il y a une différence sur « global ». Il faut donc aller sur chaque membre du cluster et regarder plus en détail cette partie. 

# diag sys ha checksum show <VDOM_NAME> 

Par exemple: 

# diag sys ha checksum show global 

Donc ici (on peut changer de membre du cluster avec # exec ha manage <ID_membre_cluster> ou # exec ha manage <ID_membre_cluster> <login_admin> : 

  FGT_1 #diag sys ha checksum show global 
system.global: d6c216d8449d75b2cd80110fa02a85e5  system.accprofile: 7df6f055a28e5d5216c4d2c2b3ee77d1  system.npu: 7df6f055a28e5d5216c4d2c2b3ee77d1  system.vdom-link: 7df6f055a28e5d5216c4d2c2b3ee77d1  wireless-controller.global: 7df6f055a28e5d5216c4d2c2b3ee77d1  wireless-controller.vap: cda65c180c25050eb83398fa23ab7fd1  system.switch-interface: cda65c180c25050eb83398fa23ab7fd1  system.interface: 56f2362fd69f51a2b6fc22a008c0c755  system.password-policy: 56f2362fd69f51a2b6fc22a008c0c755  system.sms-server: 56f2362fd69f51a2b6fc22a008c0c755  system.fsso-polling: af9c2b4f63e40551e33eabd64436fb3e  system.ha: ddfeff2ae037f615fbd83110169b70d2 
  FGT_2 #diag sys ha checksum show global 
system.global: d6c216d8449d75b2cd80110fa02a84e5  system.accprofile: 7df6f055a28e5d5216c4d2c2b3ee77d1  system.npu: 7df6f055a28e5d5216c4d2c2b3ee77d1  system.vdom-link: 7df6f055a28e5d5216c4d2c2b3ee77d1  wireless-controller.global: 7df6f055a28e5d5216c4d2c2b3ee77d1  wireless-controller.vap: cda65c180c25050eb83398fa23ab7fd1  system.switch-interface:cda65c180c25050eb83398fa23ab7fd1  system.interface: 56f2362fd69f51a2b6fc22a008c0c755  system.password-policy: 56f2362fd69f51a2b6fc22a008c0c755  system.sms-server: 56f2362fd69f51a2b6fc22a008c0c755  system.fsso-polling: af9c2b4f63e40551e33eabd64436fb3e  system.ha: ddfeff2ae037f615fbd83110169b70d2   

On voit ici que c’est dans « admin settings » 

3.on peut même aller encore plus loin avec : 

# diag sys ha checksum show global <object.name> 

Par exemple: 

FGT1 #diag sys ha checksum show global system.global 
[admin-server-cert]=’Fortinet_Factory’: f9d23d8f459c415d1742630c4c0cd99d 
[admintimeout]=’480′: 8041fc04d56bd268f40fafc37b5fd078 
[alias]=’FGVM010000087496′: a47b05f1b3646431fb078469cfca3225 
[fgd-alert-subscription]=’advisory latest-threat’: e15ed9aae8a488d992774994c36566b1 
[timezone]=’04’: 5af081b7089c3f69917ea509f3cb5e6d 
FGT2 #diag sys ha checksum show global system.global 
[admin-server-cert]=’Fortinet_Factory’: f9d23d8f459c415d1742630c4c0cd99d 
[admintimeout]=’380′: 8041fc04d56bd268f40fafc37b5fd079 
[alias]=’FGVM010000087496′: a47b05f1b3646431fb078469cfca3225 
[fgd-alert-subscription]=’advisory latest-threat’: e15ed9aae8a488d992774994c36566b1 
[timezone]=’04’: 5af081b7089c3f69917ea509f3cb5e6d 

4. Donc l’admin timeout est différent. Un changement de conf sur le membre qui a une mauvaise valeur corrigera le souci.  

A noter que n’importe quel changement déclenchera une nouvelle synchro de configuration. 

A ce stade, on pourra refaire une synchro de configuration avec la commande déjà plus haut : 

# diag sys ha checksum cluster 

================== FGT1 ================= 
is_manage_master()=0, is_root_master()=0 
 
debugzone 
 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
 
checksum 
 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
 
================== FGT2 ================== 
 
is_manage_master()=1, is_root_master()=1 
 
debugzone 
 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
 
checksum 
 
global: : 79 24 76 8a a8 03 9a 81 dc c4 3c f8 96 72 59 11 
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92 
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f 
 

En cas de problèmes de mismatch complémentaire, tenter de recalculer les checksums: 

#diagnose sys ha checksum recalculate [<vdom-name> | global] 

 
En complément, pour diagnostiquer les problèmes de HA complémentaires : 
 

diag debug app hasync 255 
diag debug enable 
execute ha synchronize start 
diagnose debug application hatalk -1 

Lancer les commandes suivantes pour vérifier les mismatches : 

diag debug config-error-log read               <–(1) 
diag hardware device disk      <–(2) 
show sys storage                             <–(2) 
show wanopt storage            <–(2) 

  1. Pour vérifier les lignes de configuration qui ont mal été comprises par le FortiGate  
  2. La taille des disques doit correspondre 

Maxim RBINET

Leave a Reply

Your email address will not be published. Required fields are marked *