Configuring PTP with Arista AVD: Fabric-Wide Best Practices - 夜莺博客

Configuring PTP with Arista AVD: Fabric-Wide Best Practices

Precision Time Protocol (PTP) is non-negotiable in media and financial networks, but configuring it consistently across every leaf, spine and endpoint is exactly the kind of repetitive task that automation should own. Arista AVD (Arista Validated Design) turns PTP deployment into a few declarative variables — enable it at the fabric, node-type or node level, and the role generates the entire per-interface configuration using Arista best practices. This article explains the AVD PTP model, the three supported profiles, automatic clock identity and priorities, monitoring thresholds, and how to handle PTP-only links between switches.

Enabling PTP at Different Levels

Enable at fabric level (FABRIC.yml), per node type (SPINES.yml), or per node (LEAFS.yml):

# fabric level
ptp:
  enabled: true

# per spine node type
spine:
  defaults:
    ptp:
      enabled: true

# per leaf node
l3leaf:
  node_groups:
    - group: leaf1
      nodes:
        - name: leaf1a
          ptp:
            enabled: true

If legacy uplink_ptp: enable notation exists, remove it — otherwise the profile-specific interface configuration is not applied between leaf and spine.

PTP Profiles

AVD supports three profiles applied to all routed spine-leaf interfaces and PTP-enabled endpoint interfaces:

  • aes67 — slow profile: sync interval 0 (1/s), announce interval 2, delay-req 0.
  • smpte2059-2 — fast profile: sync interval -4 (16/s), announce -2 (4/s), delay-req -4.
  • aes67-r16-2016 (default) — sync -3 (8/s), announce 0 (1/s), delay-req -3.

Automatic Priorities and Clock Identity

Priority 1 is derived from node type (spine=20, l3leaf=30, others=127), priority 2 from node_id modulo 256. Clock identity defaults to 00:1C:73 + priority1 hex + :00: + priority2 hex. Override manually per node, or disable auto identity to use the switch system MAC:

l3leaf:
  node_groups:
    - group: leaf1
      nodes:
        - name: leaf1
          ptp:
            enabled: true
            priority1: 10          # grandmaster-facing leaf
            auto_clock_identity: false

Monitoring Thresholds

PTP monitoring is enabled by default when PTP is on, with sane defaults:

ptp monitor threshold offset-from-master 250
ptp monitor threshold mean-path-delay 1500
ptp monitor threshold missing-message sync 3 sequence-ids

PTP-Only Links and Endpoints

For switch-to-switch links used only for PTP (e.g. redundant grandmaster connectivity), use core_interfaces.p2p_links with include_in_underlay_protocol: false. For endpoints, PTP must be explicitly enabled per adapter; the default role is follower, and a grandmaster connection can run BMCA instead:

servers:
  - name: Blue-Grandmaster
    adapters:
      - type: server
        endpoint_ports: [ eth1 ]
        switch_ports: [ Ethernet5 ]
        switches: [ blue-spine1 ]
        ptp:
          enabled: true
          endpoint_role: bmca

For more EOS operational practice, see the Arista EOS configuration cheat sheet and the MLAG run book.

原文链接:https://avd.arista.com/4.3/roles/eos_designs/docs/how-to/ptp.html