Объяснение протокола точного времени Precision Time Protocol (PTP), его настройка и мониторинг в сети устройств MikroTik.
Теоретическое обоснование
Протокол точного времени (Precision Time Protocol — PTP), разработанный Институтом инженеров электротехники и электроники (Institute of Electrical and Electronics Engineers — IEEE), является протоколом, использующимся для синхронизации часов в локальной компьютерной сети. Синхронизация часов обязательна в отраслях и приложениях, таких как телекоммуникация, финансы, промышленная автоматика, в которых точный отсчёт времени имеет критически важное значение. PTP, как правило, гарантирует точность на уровне субмикросекундны. Точность до наносекунд тоже достижима, если выполняются требования к оборудованию. Реализация PTP от MikroTik поддерживает стандарт IEEE 1588-2008 (PTPv2) и включает аппаратную поддержку синхронизации часов с временнóй маркировкой в пределах наносекундной точности. В данной статье рассматриваются возможности MikroTik PTP.
Ключевые возможности:
- двухступенчатый обычный тактовый генератор и граничный тактовый генератор;
- аппаратная временнáя маркировка, гарантирующая синхронизацию часов с точностью до наносекунд(ы);
- режимы IPv4 и широковещательной передачи на уровне 2 (L2);
- механизмы задержки «из конца в конец» (End-to-End — E2E) и «от пира к пиру» (Peer-to-Peer — P2P);
-
поддержка профилей:
● 802.1AS — для аудио-видео мостов (Audio Video Bridging — AVB) и времязависимых сетей (Time-Sensitive Networking — TSN),
● AES67 — для операционной совместимости высокопроизводительной передачи аудио по Интернет-протоколу (audio-over-IP),
● G.8275.1 — синхронизация частоты и фазы в PTP-совместимых сетях,
● SMPTE — аудио/видео-синхронизация в профессиональных вещательных средах.
Поддержка PTP зависит от конкретного оборудования MikroTik. Список совместимых устройств представлен ниже.
Основные свойства
Подменю:
/system ptp
Свойство | Описание |
---|---|
port | Подменю, в котором можно добавить, убрать или посмотреть привязку портов. |
status | Подменю, которое показывает порты PTP, их статус, а также задержку на ведомом порте. |
comment (строка; значение, по умолчанию, пусто) | Краткое описание профиля PTP. |
name (строка; значение, по умолчанию, пусто) | Имя профиля PTP. |
domain (целое [0…255]; значение, по умолчанию: auto) | Идентификатор, использующийся для разных экземпляров PTP. |
delay-mode (auto | e2e | p2p; значение, по умолчанию: auto) |
Режим задержки:
|
priority1 (целое [0..255]; auto; значение, по умолчанию: auto) | Значение приоритета, который задействован при выборе ведущих часов (grandmaster clock). |
priority2 (целое [0..255]; auto; значение, по умолчанию: auto) | Значение приоритета, который задействован при выборе запасных ведущих часов. |
profile (802.1as | aes67 | g8275.1 | smpte | default; значение, по умолчанию: default) |
В каждом профиле предопределены автоматические значения рабочих параметров и переменных PTP.
|
transport (auto | ipv4 | |
Применимые транспортные протоколы:
|
Настройка
Настройка протокола PTP на устройствах MikroTik является последовательным процессом. Начальные шаги включают создание профиля PTP и привязку к этому профилю соответствующих портов.
Создание профиля PTP
Для создания профиля PTP используйте следующую команду. В данном примере используется профиль 802.1as, но вы можете, по необходимости, использовать любой доступный профиль:
/system ptp add name=ptp1 profile=802.1as
Чтобы проферить, что профиль успешно установлен, введите следующую команду:
/system ptp print
На выводе будет отображён созданный профиль и его текущие настройки:
Flags: I - inactive, X - disabled
0 name=«ptp1» priority1=auto priority2=auto delay-mode=auto transport=auto profile=802.1as domain=auto
По умолчанию, параметры любого профиля установлены в auto, что автоматически подставляет предустановленные значения из выбранного профиля. Прежде чем делать ручные настройки, проверьте, что значения удовлетворяют соответствующим стандартам (например, ITU-T G.8275.1, IEEE 802.1as, SMPTE, AES67).
Привязка портов к профилю PTP
На последнем этапе привяжите порты, которые будут задействованы в PTP. Для примера, подключим порт ether1 (соединён с ведущими часами) и порт ether2 (соединён с ведомыми часами с обычным тактовым генератором):
/system ptp port add interface=ether1 ptp=ptp1
/system ptp port add interface=ether2 ptp=ptp1
Мониторинг
Чтобы наблюдать за статусом и производительностью профиля PTP, используйте следующую команду:
/system ptp monitor 0
Вывод покажет подробную информацию о рабочем состоянии профиля:
name: ptp1
clock-id: 64:D1:54:FF:FE:EB:AD:C7
priority1: 246
priority2: 248
i-am-gm: no
gm-clock-id: 64:D1:54:FF:FE:EB:AE:C3
gm-priority1: 100
gm-priority2: 248
master-clock-id: 64:D1:54:FF:FE:EB:AE:C3
slave-port: ether1
freq-drift: 2690 ppb
offset: 3 ns
hw-offset: -889419842 ns
slave-port-delay: 306 ns
Эта информация содержит такие важные для мониторинга точности и синхронизации PTP-схемы детали как идентификатор часов, значения приоритета и смещение синхронизации.
Свойства мониторинга
Свойство | Описание |
---|---|
clock-id: | Уникальный локальный идентификатор часов, используемый для идентификации часов в пределах PTP-сети. |
priority1: |
Значение приоритета, который задействован при выборе ведущих часов. Меньшее число соответствует более высокому приоритету. |
priority2: |
Значение приоритета, который задействован при выборе запасных ведущих часов. Меньшее число соответствует более высокому приоритету. |
i-am-gm: yes | no | Указывает, является ли данное устройство ведущими часами (yes) или не является (no). |
gm-clock-id: | Идентификатор ведущих часов. Это часы, которые являются первичным источником значения времени. |
gm-priority1: | Значение priority1 ведущих часов, как оно воспринимается со стороны ведомого устройства. |
gm-priority2: | Значение priority2 ведущих часов, как оно воспринимается со стороны ведомого устройства. |
master-clock-id: | Идентификатор узловых часов по пути прохождения PTP-сообщений. В зависимости от тополгии сети, это могут ведущие часы или граничные часы. |
slave-port: | Порт устройства, соединённый с узловыми или ведущими часами. |
freq-drift: | Сдвиг частоты между ведущими (grandmaster clock) и ведомыми часами (slave clock), измеряемый в миллиардных долях (ppb или млрд−1). Этот индикатор показывает, насколько частота ведомых часов отклоняется от частоты ведущих часов. |
offset: | Временнáя поправка между ведущими и ведомыми часами, измеряемая в наносекундах (ns или нс). Она отображает точность синхронизации. |
hw-offset: | Временнáя поправка к аппаратным часам. |
slave-port-delay: | Временнáя задержка пакетов, идущих между двумя устройствами, измеряемая в наносекундах (ns или нс). На эту задержку могут влиять качество кабелей и трансиверов, использующихся в сети. |
Совместимые устройства
В а ж н о! Устройства, не показанные в этих списках, не поддерживают протокол точного времени.
- CRS326-24G-2S+ — поддерживается только на гигабитных портах.
- CRS328-24P-4S+ — поддерживается только на гигабитных портах.
- CRS317-1G-16S+ — поддерживается на всех портах.
- CRS326-24S+2Q+ — поддерживается на портах SFP+ и QSFP+.
- CRS312-4C+8XG — поддерживается на всех портах.
- CRS318-16P-2S+ — поддерживается только на гигабитных портах.
Поддержка PTP добавлена, начиная с версии RouterOS 7.16:
- CCR2116-12G-4S+ — поддерживается на всех портах.
- CCR2216-1G-12XS-2XQ — поддерживается на всех портах.
- CRS518-16XS-2XQ — поддерживается на всех портах.
- CRS504-4XQ — поддерживается на всех портах.
- CRS510-8XS-2XQ — поддерживается на всех портах.
- CRS520-4XS-16XQ — поддерживается на всех портах.
Поддержка PTP добавлена, начиная с версии RouterOS 7.17:
- CRS320-8P-8B-4S+RM — поддерживается только на гигабитных портах.