PTP時間同期は機能しません。なぜ常に最高のマスタークロックをローカルクロックとして選択するのですか?

PTP時間同期は機能しません。なぜ常に最高のマスタークロックをローカルクロックとして選択するのですか?

PTPと時刻を同期しようとしています。 PTPを使用してTrimbleデバイスを設定しました。ところで、次のような構成でLinuxPTPを使用すると、常にローカルクロックが最高のマスタークロックとして選択されます。

ptp4l[892.103]: selected local clock 00032d.fffe.55bd3b as best master

なぜTrimbleデバイスをマスタークロックとして選択しないのか疑問に思います。

デバイスはSFP /光ファイバケーブルを介して接続されています。

  • PTP設定ファイル -/etc/linuxptp/ptpv2.conf
    [global]
    verbose         1  
    domainNumber    24
    clockClass      6
    priority1       128
    priority2       128
    [enp11s0]
    
  • 次のように実行し、sudoこの出力をコンソールに表示します。
    $ sudo ptp4l -f /etc/linuxptp/ptpv2.conf 
    ptp4l[886.038]: selected /dev/ptp7 as PTP clock
    ptp4l[886.039]: port 1 (enp11s0): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[886.039]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[886.039]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[892.103]: port 1 (enp11s0): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[892.103]: selected local clock 00032d.fffe.55bd3b as best master
    ptp4l[892.103]: port 1 (enp11s0): assuming the grand master role
    
  • また、これをデバッグするのに役立つことを確認するために、Wireshark通知メッセージをキャプチャしました。
    Frame 9466: 78 bytes on wire (624 bits), 78 bytes captured (624 bits) on interface enp11s0, id 0
    Ethernet II, Src: Trimble_70:07:6a (00:17:47:70:07:6a), Dst: IEEEI&MS_00:00:00 (01:1b:19:00:00:00)
    Precision Time Protocol (IEEE1588)
        0000 .... = majorSdoId: Unknown (0x0)
        .... 1011 = messageType: Announce Message (0xb)
        0000 .... = minorVersionPTP: 0
        .... 0010 = versionPTP: 2
        messageLength: 64
        domainNumber: 24
        minorSdoId: 0
        flags: 0x003c
            0... .... .... .... = PTP_SECURITY: False
            .0.. .... .... .... = PTP profile Specific 2: False
            ..0. .... .... .... = PTP profile Specific 1: False
            .... .0.. .... .... = PTP_UNICAST: False
            .... ..0. .... .... = PTP_TWO_STEP: False
            .... ...0 .... .... = PTP_ALTERNATE_MASTER: False
            .... .... .0.. .... = SYNCHRONIZATION_UNCERTAIN: False
            .... .... ..1. .... = FREQUENCY_TRACEABLE: True
            .... .... ...1 .... = TIME_TRACEABLE: True
            .... .... .... 1... = PTP_TIMESCALE: True
            .... .... .... .1.. = PTP_UTC_REASONABLE: True
            .... .... .... ..0. = PTP_LI_59: False
            .... .... .... ...0 = PTP_LI_61: False
        correctionField: 0.000000 nanoseconds
            correction: Ns: 0 nanoseconds
            correctionSubNs: 0 nanoseconds
        messageTypeSpecific: 0
        ClockIdentity: 0x001747fffe70076a
            MAC Vendor: Trimble
        SourcePortID: 1
        sequenceId: 28828
        controlField: Other Message (5)
        logMessagePeriod: -3
        originTimestamp (seconds): 0
        originTimestamp (nanoseconds): 0
        originCurrentUTCOffset: 37
        priority1: 128
        grandmasterClockClass: 6
        grandmasterClockAccuracy: The time is accurate to within 100 ns (0x21)
        grandmasterClockVariance: 20061
        priority2: 128
        grandmasterClockIdentity: 0x001747fffe70076a
        localStepsRemoved: 0
        TimeSource: GPS (0x20)
    
  • 同期コマンド
    phc2sys -w -m -s enp11s0 -c CLOCK_REALTIME
    

インターネットで他の設定を確認すると、そのログに正しい時計の選択が表示されますが、私の場合は常に最高のマスター時計をローカル時計として選択し、マスター/境界時計の時刻は同期されません(今はGPS機能付きTrimble 1570001820デバイスを使用しています。

その他の注意事項:

  • NTPが無効
  • ハードウェアはPTPを処理でき、最新のドライバがインストールされています。

答え1

最高のマスタークロックアルゴリズム(BMCA)は次のとおりです。

  1. 優先順位1
  2. 時計タイプ
  3. クロック精度
  4. クロックオフセット差
  5. 優先順位2
  6. 時計のロゴ
  7. 削除されたステップ

あなたの場合、両方のクロックは同じ優先順位1(128)と同じクロッククラス(6)を持ちます。あなたが提供したデータからローカルクロックの精度と変化を見ることはできませんが、それでも同じ(またはそれ以上)でなければならないとします(0x21と20061)。優先順位2は同じです(128)。

これまで、あなたの質問で見ることができるすべての値は同じです。つまり、両方の時計は「同じように優れた」と見なされ、どちらも「最高の」マスター時計ではないという意味です。

したがって、クロックID(クロックインタフェースMACアドレスのEUI-48で構成されるEUI-64)がランク決定子として使用されます。 Trimbleの時計IDは001747.fffe.70076aで、ローカル時計の時計IDは00032d.fffe.55bd3bで、001747.fffe.70076aより小さい。

したがって、あなたの地元の時計はBMCAを「勝利」します。

一般的な推奨事項は、指定されたグランドマスターに最小優先順位1(例:0)を付与することです。グランドマスターの時計が複数ある場合は、すべて1という同じ優先順位を持つ必要があります。したがって、誰がグランドマスターになるかは、完全に時計の品質によって決まります。また、通常、異なる優先順位2を付与して、すべてのクロックの品質が同じ場合、MACにアドレスを多少「ランダムに」決定させる代わりに、マスタークロックになることを制御できるようにすることをお勧めします。

クロック同期チェーンがある場合は、通常、チェーン内の各クロックに少し大きい優先順位の1を与えることをお勧めします。減らす優先順位) 前の時計より高い

私はメディアインフラストラクチャ環境で働いており、同期チェーンは通常次のとおりです。

  • 2つの冗長クロックジェネレータ、優先順位1 = 0。
  • 各クロックジェネレータは、少なくとも1つの「PTPフィーダ」スイッチに接続されています。
  • 2つの冗長「PTPフィーダー」スイッチ、優先順位1 = 10。
  • 2つのPTPフィーダは交差接続されており、1つ以上の冗長リンクを使用することをお勧めします。
  • スイッチベンダーごとに、PTPを可視または葉に注入する必要があるかどうかの推奨事項が異なります。スイッチベンダーに応じて、各PTPフィーダーはすべてのスパインまたはすべてのリーフに接続されます。 Spinesに接続されている場合、優先順位はSpineの場合は20、Leavesの場合は30、Leavesに接続されている場合はその逆です。
  • リーフに集約スイッチがある場合、これらのスイッチの優先順位は1 = 40です。
  • など…

最後に、マスタークロック機能をオンにするのが良い習慣です。去る最初からマスターしたくないすべてのデバイスで完璧に動作します。したがって、マスタークロックに依存する必要があるすべてのデバイスは「スレーブ専用」モードに設定する必要があります。 PTPネットワークアーキテクチャの例

関連情報