Einführung
Precision Time Protocol (PTP) ist ein Synchronisierungsprotokoll für die Timing-Synchronisierung von Paketnetzwerken im Nanosekundenbereich. Die Genauigkeit von PTP beruht auf der Hardware-Unterstützung für PTP in den Switch- und Server-Netzwerkschnittstellenkarten (NICs). PTP verwendet die Multicast-Gruppe 224.0.1.129 und die UDP-Ports 319 und 320. Der aktuelle PTP-Standard ist IEEE 1588-2008 Precision Time Protocol (PTP) Version 2 (PTPv2).
Die Skalierbarkeit von PTP ergibt sich aus der Tatsache, dass dieses Protokoll ein Konzept von Boundary Clock (BC) enthält, das mehrere physische/logische Hops von der Grand Master (GM)-Uhr entfernt sein kann und als Re-Kalibrierpunkt für Nachrichten mit Zeitstempeln fungieren kann. Die Nexus 3000-Router werden in Rechenzentren (DCs) häufig eingesetzt, um als BC zu fungieren und den mit dem Local Area Network (LAN) verbundenen Servern genaue Zeitangaben zu liefern. BC und GM müssen nur über Layer 3 (IP-Konnektivität) erreichbar sein. Zwischen dem GM und dem PTP-Endclient können mehrere BC-Ebenen vorhanden sein. Es können mehrere GMs vorhanden sein, um Redundanz und Nexus 3K wählt mithilfe des BMC-Algorithmus (Best Master Clock) den besten GM aus.
Beiträge: Nishad Mohiuddeen
Bearbeitet von: Kumar Sridhar
PTP-Konfiguration:
N3k(config)#-Feature-PTP
Mit diesem Befehl wird PTP auf dem Switch aktiviert.
N3k(config)# ptp source <ip address>
Dieser Befehl gibt die IP-Quelladresse für die vom Switch generierten PTP-Pakete an.
N3k(config)#-Schnittstelle Ethernet-Steckplatz/Port
N3k(config-if)# ptp
Mit diesem Befehl wird PTP auf einem Port aktiviert. Der Cisco Nexus 3548 ist eine Grenzuhr und verfügt somit über Master- und Slave-Ports. Zwischen einem Master-Port und einem Slave-Port besteht kein Konfigurationsunterschied. Beide werden mit der "ptp"-Option konfiguriert, und der BMC-Algorithmus bestimmt, ob es sich bei dem Port um einen PTP-Slave- oder einen Master-Port handelt.
N3k(config)# Taktprotokoll-ptp
Mit diesem Befehl wird der Switch so konfiguriert, dass er PTP zum Aktualisieren des Systemkalenders verwendet. Durch diese Konfiguration wird die Uhr des Switches mit PTP synchronisiert. Wenn Sie diesen Befehl nicht aktivieren, kann der Switch die PTP-Uhr auf seinen Master-Ports weiterleiten. Die Zeitquelle ist jedoch die lokale Nexus-Uhr.
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
Konfigurieren Sie die Prioritätswerte für die lokale Uhr (Oszillator). Ein niedrigerer numerischer Wert weist auf eine höhere Priorität hin.
N3k(config)# kein ptp-Großmeister-fähig
Standardmäßig ist Nexus 3k "ptp primäre Master-fähig". Deaktivieren Sie daher diese Funktion, um eine Synchronisierung mit dem GM zu erhalten.
Optionale Parameter unter der Schnittstelle (Konfiguration, um Parameter mit GM abzustimmen):
N3k(config)#-Schnittstelle Ethernet-Steckplatz/Port
N3k(config-if)# ptp delay-request minimales Intervall 3
N3k(config-if)# ptp announce interval 2
N3k(config-if)# ptp sync interval 0
Überprüfung:
N3k# show ptp clock
PTP-Gerätetyp: Grenzuhr
Uhridentität: 00:62:ec:ff:fe:40:05:81
Uhrendomäne: 0
Anzahl der PTP-Ports: 2
Priorität1: 1
Priorität2: 1
Uhrqualität:
Klasse: 248
Genauigkeit: 254
Offset (Protokollabweichung): 65535
Offset vom Master: 0
Mittlere Pfadverzögerung: 0
Schritte entfernt: 0
Ortszeit: Mo. Juni 5 00:00:23 2017
N3k# show ptp parent
ÜBERGEORDNETE PTP-EIGENSCHAFTEN
Übergeordnete Uhr:
Identität der übergeordneten Uhr: 00:0c:ec:ff:fe:08:12:b1
Übergeordnete Portnummer: 1
Beobachtete übergeordnete Offset (Protokollabweichung): K/A
Beobachtete Änderungsrate der übergeordneten Uhrenphase: K/A
Großmeisteruhr:
Großmeister-Uhrenidentität: 00:0c:ec:ff:fe:08:12:b1
Qualität der Großmeister-Uhr:
Klasse: 6 <<<
Genauigkeit: 32
Offset (Protokollabweichung): 22752
Priorität1: 128
Priorität2: 128
N3k# Ausgabe-Übersicht anzeigen
PTP-Portstatus
—
Port-Status
— —
Eth1/5 Slave << in Richtung GM
Eth1/24 Master <<< zum Host
Eth1/24 Listening <<< kein gültiger GM oder Host erkannt
N3k#show run | in clock (zur Überprüfung des Taktprotokolls)
N3k#show ptp counters all(um Tx und Rx von PTP-Nachrichten wie Sync, Announce, Delay_Req, Delay_Resp usw. zu überprüfen)
N3k# show ptp counters interface ethernet 1/24
PTP-Paketzähler der Schnittstelle Eth1/24:
—
Pakettyp TX RX
— — — —
Ankündigung 558 4479
Synchronisierung 1773 8941
Nachbereitung 1754 8950
Verzögerungsanfrage 35 0
Verzögerungsantwort 0 35
PDelay-Anforderung 0 0
PDelay Res 0 0
PDelay Followup 0 0
Management 0 0
—
N3k#show ptp korrigations(zur Überprüfung von PTP-Korrektur-Zeitstempeln)
PTP-Korrekturen in der Vergangenheit
—
SMeanPath-Verzögerung(n) für Slave-Port-SUP-Zeitkorrektur(en)
— — — — — —
Eth1/24 Mon Jun 5 05:48:45 2017 171026 -51 1806
Eth1/24 Mon Jun 5 05:48:46 2017 171727 -2 1806
Eth1/24 Mon Jun 5 05:48:47 2017 173329 -47 1806
Eth1/24 Mon Jun 5 05:48:48 2017 174047 86 1806
Eth1/24 Mon Jun 5 05:48:49 2017 175690 -55 1794
Eth1/24 Mon Jun 5 05:48:50 2017 235577 -6 1794
Eth1/24 Mon Jun 5 05:48:51 2017 178035 -44 1794
Eth1/24 Mon Jun 5 05:48:52 2017 178804 83 1794
Eth1/24 Mon Jun 5 05:48:53 2017 180371 35 1794
Eth1/24 Mon Jun 5 05:48:54 2017 181839 -48 1794
Eth1/24 Mon Jun 5 05:48:55 2017 183667 -42 1794
Eth1/24 Mon Jun 5 05:48:56 2017 184423 -5 1794
Eth1/24 Mon Jun 5 05:48:57 2017 186030 113 1794
Eth1/24 Mon Jun 5 05:48:58 2017 186653 -48 1794
Eth1/24 Mon Jun 5 05:48:59 2017 188298 -6 1794
Eth1/24 Mon Jun 5 05:49:00 2017 189000 -88 1794
<Snip>
Fehlerbehebung:
1. Überprüfen Sie, ob Sie den GM über das PTP (Unicast-Verbindung) pingen können.
2. Überprüfen Sie das Uhrenprotokoll (PTP) über
N3k#Schaulauf | in Uhrzeit
3. Standardmäßig sind N3Ks "Großmeister-fähig". muss deaktiviert werden über
N3k# kein ptp primäre Master-fähig
4. Verwenden Sie den Befehl show ptp brief, um zu überprüfen, ob der Portstatus "Listening" lautet.
5. Anschließend wird eine Ethanalyzer-Erfassung durchgeführt.
Ethanalyzer Local Interface Inbound-Hi Capture-Filter "udp port 320" limit-captured-frames 0 <<< Announce and Follow up
Ethanalyzer Local Interface Inbound-Hi Capture-Filter "udp port 319" limit-captured-frames 0 <<< Sync
Auf der PTP-GM-Seite werden Announce- und Synchronisierungsmeldungen angezeigt. TDer Client sendet Delay_Req, und GM sendet Delay_Resp.
Wenn keine Pakete im Ethanalyzer erfasst werden, kann dies ein Prioritätsproblem sein. Wenn der Nexus 300 PTP-Pakete mit niedrigerer Priorität (oder Taktklasse bei gleicher Priorität) empfängt, wird das Paket verworfen und nicht auf die CPU beschränkt.
6. Die beste Methode besteht in der Paketerfassung (zum Abrufen des Pakets zwischen GM und BC), um zu erfahren, warum der BC nicht mit dem GM synchronisiert wird. Von der Erfassung aus können wir die PTP-Priorität überprüfen, die von GM gesendet wurde, indem wir die Ankündigungsmeldung von GM ansehen. Wenn die Priorität niedriger (höherer numerischer Wert) als die konfigurierte Priorität im BC ist, ändern Sie die PTP-Priorität des BC in einen höheren numerischen Wert.
7. Wenn der BC (Nexus3k) mit GM synchronisiert ist, die Downstream-Hosts/Server jedoch nicht, suchen Sie vom Host/Server nach "Delay_Req_Messsage". Wenn der PTP-Daemon im Host/Server nicht vorhanden ist, liegt ein Fehler vor.