Introduction
Le protocole PTP (Precision Time Protocol) est un protocole distribué de synchronisation de précision à une nanoseconde pour les réseaux de paquets. La précision du protocole PTP provient de la prise en charge matérielle du protocole PTP dans les cartes d'interface réseau (NIC) du commutateur et du serveur. Le protocole PTP utilise le groupe de multidiffusion 224.0.1.129 et les ports UDP 319 et 320. La norme PTP actuelle est la norme IEEE 1588-2008 PTP (Precision Time Protocol) Version 2 (PTPv2)
L’évolutivité du protocole PTP vient du fait que ce protocole a un concept d’horloge de frontière (BC), qui peut être plusieurs sauts physiques/logiques à l’écart de l’horloge Grand Master (GM) et sert de point de réétalonnage pour les messages contenant des horodatages. Les Nexus 3ks sont largement déployés dans les data centers (DC) pour servir de BC et fournir des délais précis aux serveurs connectés au réseau local (LAN). Le BC et le GM doivent être accessibles uniquement via la couche3 (connectivité ip). Il peut y avoir plusieurs couches de BC entre le GM et le client final PTP. Il peut y avoir plusieurs GM pour assurer la redondance et Nexus 3K sélectionnera le meilleur GM via l'algorithme BMC (Best Master Clock).
Contribué par : Nishad Mohiuddeen
Modifié par : Kumar Sridhar
Configuration PTP :
N3k(config)# feature ptp
Cette commande active le protocole PTP sur le commutateur.
N3k(config)# ptp source <adresse ip>
Cette commande spécifie l'adresse IP source pour les paquets PTP générés par le commutateur.
N3k(config)# port/emplacement Ethernet de l'interface
N3k(config-if)# ptp
Cette commande active le protocole PTP sur un port. Le commutateur Cisco Nexus 3548 est une horloge de périphérie, de sorte qu'il dispose de ports maître et esclave. Il n'y a aucune différence de configuration entre un port maître et un port esclave. Ils sont tous deux configurés avec l'option “ ptp ” et l'algorithme BMC déterminera si le port est un port maître ou esclave PTP.
N3k(config)# clock protocol ptp
Cette commande configure le commutateur pour qu'il utilise le protocole PTP pour mettre à jour le calendrier système. Cette configuration permet de synchroniser l’horloge du commutateur avec PTP. Si vous n'activez pas cette commande, le commutateur n'empêchera pas la propagation de l'horloge PTP sur ses ports maîtres. Cependant, la source temporelle sera l'horloge locale Nexus.
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
Configurez les valeurs de priorité pour l'horloge locale (oscillateur). Une valeur numérique inférieure indique une priorité plus élevée.
N3k(config)# no ptp grand-maître
Par défaut, Nexus 3k est “ ptp grand-maître ”, donc désactivez cette fonctionnalité pour être synchronisé avec l'GM.
Paramètres facultatifs sous l'interface (configure pour faire correspondre le paramètre avec GM) :
N3k(config)# port/emplacement Ethernet de l'interface
N3k(config-if)# ptp delay-request Minimum interval 3
N3k(config-if)# ptp announce interval 2
N3k(config-if)# ptp sync interval 0
Vérification :
N3k# show ptp clock
Type de périphérique PTP : Horloge de frontière
Identité de l'horloge : 00:62:ec:ff:fe:40:05:81
Domaine d'horloge : 0
Nombre de ports PTP : 2
Priorité1 : 1
Priorité 2 : 1
Qualité de l'horloge :
Classe : 248
Précision : 254
Décalage (variance du journal) : 65535
Décalage du maître : 0
Délai moyen du chemin : 0
Étapes supprimées : 0
Heure locale : Lun 5 juin 00:00:23 2017
N3k# show ptp parent
PROPRIÉTÉS PARENTES PTP
Horloge parent :
Identité de l'horloge parent : 00:0c:ec:ff:fe:08:12:b1
Numéro de port parent : 1
Décalage parent observé (variance du journal) : S/O
Taux de changement de phase d'horloge parent observé : S/O
Horloge du grand maître :
Identité de l'horloge du grand maître : 00:0c:ec:ff:fe:08:12:b1
Qualité de l'horloge maître :
Classe : 6 «<
Précision : 32
Décalage (variance du journal) : 22752
Priorité 1 : 128
Priorité 2 : 128
N3k# show ptp brief
État du port PTP
—
État du port
—
Eth1/5 Esclave «< vers GM
Eth1/24 Master « vers l'hôte
Eth1/24 Écoute «< aucun GM ou hôte valide détecté
N3k#show run | dans clock (pour vérifier clock-protocol)
N3k#show ptp compteurs all (pour vérifier la valeur Tx et Rx des messages PTP tels que Sync, Annonce, Delay_Req, Delay_Resp, etc.)
N3k# show ptp counters interface ethernet 1/24
Compteurs de paquets PTP de l’interface Eth1/24 :
—
Type de paquet TX RX
— —
Annonce 558 4479
Synchronisation 1773 8941
Suivi 1754 8950
Demande de délai 35 0
Délai de réponse 0 35
Requête PDelay 0 0
PDelay Res 0 0
PDelay Suivi 0 0
Gestion 0 0
—
N3k#show ptp corrections (pour vérifier les horodatages de correction PTP)
Corrections PTP antérieures
—
Correction(s) temporelle(s) SUP du port esclave Délai(s) moyenPath
— — —
Eth1/24 Lun 5 juin 05:48:45 2017 171026 -51 1806
Eth1/24 Lun 5 juin 05:48:46 2017 171727 -2 1806
Eth1/24 Lun 5 juin 05:48:47 2017 173329 -47 1806
Eth1/24 Lun 5 juin 05:48:48 2017 174047 86 1806
Eth1/24 Lun 5 juin 05:48:49 2017 175690 -55 1794
Eth1/24 Lun 5 juin 05:48:50 2017 235577 -6 1794
Eth1/24 Lun 5 juin 05:48:51 2017 178035 -44 1794
Eth1/24 Lun 5 juin 05:48:52 2017 178804 83 1794
Eth1/24 Lun 5 juin 05:48:53 2017 180371 35 1794
Eth1/24 Lun 5 juin 05:48:54 2017 181839 -48 1794
Eth1/24 Lun 5 juin 05:48:55 2017 183667 -42 1794
Eth1/24 Lun 5 juin 05:48:56 2017 184423 -5 1794
Eth1/24 Lun 5 juin 05:48:57 2017 186030 113 1794
Eth1/24 Lun 5 juin 05:48:58 2017 186653 -48 1794
Eth1/24 Lun 5 juin 05:48:59 2017 188298 -6 1794
Eth1/24 Lun 5 juin 05:49:00 2017 189000 -88 1794
<snip>
Dépannage :
1. Vérifiez si vous pouvez envoyer une requête ping à GM à partir du PTP (connectivité monodiffusion).
2. Vérifier le protocole d’horloge, qui doit être PTP, via
N3k#Commande show run | dans l'horloge
3. Par défaut, les N3Ks sont compatibles avec les grands maîtres. Besoin de le désactiver via
N3k# pas de grand-maître ptp
4. Utilisez la commande show ptp brief pour vérifier si l'état du port est 'Écoute'.
5. Ensuite, faites une capture éthanalyseur.
ethanalyzer local interface inbound-hi capture-filter « udp port 320 » limit-capture-frames 0 « Annonce et suivi
ethanalyzer local interface inbound-hi capture-filter « udp port 319 » limit-capture-frames 0 « Sync
Du côté de PTP GM, il y aurait des messages d'annonce et de synchronisation. TLe client envoie Delay_Req et GM envoie Delay_Resp.
Si aucun paquet n'est capturé dans ethanalyzer, il peut s'agir d'un problème prioritaire. Si le Nexus 3k reçoit des paquets PTP avec une priorité inférieure (ou une classe d'horloge en cas de priorité égale), il rejette le paquet et n'envoie pas de signal au processeur.
6. La meilleure façon est de faire des captures de paquets (pour obtenir le paquet entre GM et BC) pour voir pourquoi la BC ne se synchronise pas avec le GM. À partir de la capture, nous pouvons vérifier la priorité PTP envoyée par GM en regardant le message ‘Annonce’ provenant du GM. Si la priorité est inférieure (valeur numérique supérieure) à la priorité configurée dans le BC, modifiez la priorité PTP du BC en valeur numérique supérieure.
7. Si le BC (Nexus3k) est synchronisé avec GM mais que les hôtes/serveurs en aval ne le sont pas, recherchez Delay_Req_Message à partir de l'hôte/serveur. S'il n'est pas présent, il y a un problème avec le démon PTP dans l'hôte/le serveur.