# Config Sync

> Синхронизация конфигурации VyOS - репликация настроек между маршрутизаторами, high availability и автосинхронизация в облачных средах

Source: https://opennix.org/docs/vyos/services/vyos-config-sync/


Config Sync - сервис автоматической синхронизации конфигурации между двумя маршрутизаторами VyOS.

## Обзор

Config Sync обеспечивает автоматическую репликацию изменений конфигурации с основного (primary) маршрутизатора на резервный (secondary).

**Основные возможности:**
- Односторонняя синхронизация (primary → secondary)
- Выборочная синхронизация разделов конфигурации
- Автоматическая отправка изменений после commit
- Два режима синхронизации: load и set
- Поддержка всех основных разделов конфигурации

**Требования:**
- VyOS REST API настроен на вторичном маршрутизаторе
- Оба маршрутизатора должны быть online
- Одинаковая версия VyOS на обоих устройствах
- Сетевая связность между маршрутизаторами

**Протокол**: HTTPS/HTTP (VyOS REST API)

**Порт**: 443 (HTTPS) или настраиваемый

## Принцип работы

### Архитектура

```
┌──────────────────┐                    ┌──────────────────┐
│   Primary VyOS   │                    │  Secondary VyOS  │
│                  │                    │                  │
│  Config Sync     │──── HTTPS API ────>│   REST API       │
│  Client          │                    │   Server         │
│                  │                    │                  │
└──────────────────┘                    └──────────────────┘
     (master)                               (replica)
```

### Процесс синхронизации

1. Администратор вносит изменения на primary роутере
2. Выполняется `commit` на primary
3. Config Sync перехватывает изменения
4. Изменения отправляются на secondary через REST API
5. Secondary применяет конфигурацию
6. Результат логируется на primary

### Направление синхронизации

**Важно**: Синхронизация односторонняя:
- Primary → Secondary: Да
- Secondary → Primary: Нет

Изменения на secondary НЕ синхронизируются обратно и будут перезаписаны при следующей синхронизации с primary.

## Базовая конфигурация

### Подготовка Secondary роутера

Первым шагом настройте REST API на вторичном роутере:

#### VyOS 1.4 (Sagitta)

```
configure
set service https api keys id config-sync key 'your-secure-api-key-here'
commit
save
```

#### VyOS 1.5 (Circinus)

```
configure
set service https api keys id config-sync key 'your-secure-api-key-here'
set service https api rest
commit
save
```

**Примечание**: В VyOS 1.5 необходимо явно включить REST API endpoint.

### Настройка Primary роутера

Настройте Config Sync на основном роутере:

```
configure

# Укажите адрес вторичного роутера
set service config-sync secondary address '192.168.100.2'

# API ключ (должен совпадать с ключом на secondary)
set service config-sync secondary key 'your-secure-api-key-here'

# Разделы для синхронизации
set service config-sync section firewall
set service config-sync section nat
set service config-sync section vpn

commit
save
```

## Параметры конфигурации

### Secondary роутер

#### address

IP-адрес или hostname вторичного роутера:

```
set service config-sync secondary address '192.168.100.2'
set service config-sync secondary address 'vyos-backup.example.com'
set service config-sync secondary address '2001:db8::2'
```

#### key

API ключ для аутентификации:

```
set service config-sync secondary key 'your-secure-api-key-here'
```

**Генерация безопасного ключа:**
```bash
openssl rand -base64 32
```

#### port

TCP порт REST API (по умолчанию 443):

```
set service config-sync secondary port 443
set service config-sync secondary port 8443
```

#### timeout

Таймаут соединения в секундах (по умолчанию 60):

```
set service config-sync secondary timeout 60
set service config-sync secondary timeout 120
```

Увеличьте для медленных каналов или больших конфигураций.

### Section - разделы для синхронизации

Выберите разделы конфигурации для репликации:

```
set service config-sync section <section-name>
```

**Доступные разделы:**

| Раздел | Описание |
|--------|----------|
| `firewall` | Правила firewall, зоны, группы |
| `interfaces` | Конфигурация интерфейсов |
| `nat` | NAT правила (source, destination) |
| `nat66` | NAT66 (IPv6-to-IPv6) |
| `pki` | PKI сертификаты и ключи |
| `protocols` | Динамическая маршрутизация (BGP, OSPF, RIP) |
| `qos` | Quality of Service политики |
| `service` | Сервисы (DHCP, DNS, SSH, etc.) |
| `system` | Системные настройки (hostname, users, etc.) |
| `vpn` | VPN конфигурация (IPsec, OpenVPN, L2TP) |
| `vrf` | Virtual Routing and Forwarding |

**Примеры:**

Синхронизация всех сетевых сервисов:
```
set service config-sync section firewall
set service config-sync section nat
set service config-sync section interfaces
set service config-sync section vpn
```

Только routing и services:
```
set service config-sync section protocols
set service config-sync section service
```

### Mode - режим синхронизации

#### load (по умолчанию)

Заменяет конфигурацию разделов на secondary:

```
set service config-sync mode load
```

**Поведение:**
- Удаляет существующую конфигурацию раздела на secondary
- Загружает новую конфигурацию с primary
- Рекомендуется для полной синхронизации

**Пример:**
```
# Primary имеет:
firewall rule 10, 20, 30

# Secondary будет иметь точно то же:
firewall rule 10, 20, 30

# Любые другие правила на secondary будут удалены
```

#### set

Добавляет/обновляет конфигурацию на secondary:

```
set service config-sync mode set
```

**Поведение:**
- Не удаляет существующую конфигурацию
- Добавляет новые параметры
- Обновляет существующие параметры
- Может привести к несоответствию конфигураций

**Пример:**
```
# Primary имеет:
firewall rule 10, 20

# Secondary имеет:
firewall rule 30, 40

# После синхронизации secondary будет иметь:
firewall rule 10, 20, 30, 40
```

**Рекомендация**: Используйте `load` для гарантированной идентичности конфигураций.

## Примеры конфигурации

### Базовый HA роутер

Primary роутер:
```
configure

# Secondary роутер
set service config-sync secondary address '192.168.100.2'
set service config-sync secondary key 'MySecureKey123!@#'

# Синхронизация критичных разделов
set service config-sync section firewall
set service config-sync section nat
set service config-sync section system

# Режим полной замены
set service config-sync mode load

commit
save
```

Secondary роутер:
```
configure

# Включить REST API
set service https api keys id config-sync key 'MySecureKey123!@#'
set service https api rest

commit
save
```

### HA VPN шлюз

Primary:
```
configure

# Secondary роутер
set service config-sync secondary address '10.0.0.2'
set service config-sync secondary key 'VpnGatewaySync2024'
set service config-sync secondary timeout 120

# VPN и связанные разделы
set service config-sync section vpn
set service config-sync section firewall
set service config-sync section nat
set service config-sync section pki

# Режим замены
set service config-sync mode load

commit
save
```

### Синхронизация OSPF конфигурации

Primary:
```
configure

# Secondary роутер
set service config-sync secondary address '192.168.1.2'
set service config-sync secondary key 'OspfSyncKey'

# Только протоколы маршрутизации и system
set service config-sync section protocols
set service config-sync section system

commit
save
```

### Multi-site с VRF

Primary:
```
configure

# Secondary роутер
set service config-sync secondary address '10.10.10.2'
set service config-sync secondary key 'VrfMultiSite2024'

# VRF, routing и сервисы
set service config-sync section vrf
set service config-sync section protocols
set service config-sync section interfaces
set service config-sync section service

commit
save
```

### Полная синхронизация всех разделов

Primary:
```
configure

set service config-sync secondary address '192.168.100.2'
set service config-sync secondary key 'FullSyncKey2024'

# Все поддерживаемые разделы
set service config-sync section firewall
set service config-sync section interfaces
set service config-sync section nat
set service config-sync section nat66
set service config-sync section pki
set service config-sync section protocols
set service config-sync section qos
set service config-sync section service
set service config-sync section system
set service config-sync section vpn
set service config-sync section vrf

set service config-sync mode load

commit
save
```

## Примеры для облачных провайдеров

### Yandex Cloud HA конфигурация

**Топология:**
- Primary VyOS: 192.168.10.10 (внутренний IP)
- Secondary VyOS: 192.168.10.20 (внутренний IP)
- Обе VM в одной подсети Yandex Cloud
- Security Group разрешает HTTPS между VM

**Secondary роутер** (192.168.10.20):
```
configure

# Настройка REST API
set service https api keys id yc-config-sync key 'YC-Secure-Key-2024-Random-String'
set service https api rest

# Разрешить HTTPS из внутренней сети
set service https listen-address 192.168.10.20

# HTTPS сертификат (self-signed для internal)
set service https certificates system-generated-certificate

commit
save
```

**Primary роутер** (192.168.10.10):
```
configure

# Подключение к secondary
set service config-sync secondary address '192.168.10.20'
set service config-sync secondary key 'YC-Secure-Key-2024-Random-String'
set service config-sync secondary port 443
set service config-sync secondary timeout 90

# Разделы для синхронизации
set service config-sync section firewall
set service config-sync section nat
set service config-sync section interfaces
set service config-sync section system

# Режим полной замены
set service config-sync mode load

commit
save
```

**Примечание для Yandex Cloud:**
- Используйте внутренние IP адреса для синхронизации
- Настройте Security Groups для разрешения HTTPS (TCP 443)
- Рассмотрите использование Network Load Balancer для failover

### VK Cloud (Mail.ru Cloud) HA конфигурация

**Топология:**
- Primary VyOS: 10.0.10.10 (приватный IP)
- Secondary VyOS: 10.0.10.20 (приватный IP)
- Floating IP для failover
- Security Group с правилом HTTPS

**Secondary роутер** (10.0.10.20):
```
configure

# REST API конфигурация
set service https api keys id vkcloud-sync key 'VKCloud-HA-Key-SecureRandom123'
set service https api rest

# Слушать на приватном интерфейсе
set service https listen-address 10.0.10.20

# Self-signed сертификат
set service https certificates system-generated-certificate

commit
save
```

**Primary роутер** (10.0.10.10):
```
configure

# Secondary endpoint
set service config-sync secondary address '10.0.10.20'
set service config-sync secondary key 'VKCloud-HA-Key-SecureRandom123'
set service config-sync secondary port 443
set service config-sync secondary timeout 120

# Критичные разделы
set service config-sync section firewall
set service config-sync section nat
set service config-sync section vpn
set service config-sync section service

set service config-sync mode load

commit
save
```

**Настройка Security Group в VK Cloud:**
```
# Разрешить HTTPS между HA парой
Направление: Ingress
Протокол: TCP
Порт: 443
Источник: 10.0.10.10/32
```

### AWS HA с разными AZ

**Топология:**
- Primary: us-east-1a (10.0.1.10)
- Secondary: us-east-1b (10.0.2.20)
- Разные Availability Zones для отказоустойчивости

**Secondary** (10.0.2.20):
```
configure

set service https api keys id aws-ha key 'AWS-HA-Sync-Key-Random'
set service https api rest
set service https listen-address 10.0.2.20
set service https certificates system-generated-certificate

commit
save
```

**Primary** (10.0.1.10):
```
configure

set service config-sync secondary address '10.0.2.20'
set service config-sync secondary key 'AWS-HA-Sync-Key-Random'
set service config-sync secondary timeout 150

# Полная синхронизация для DR
set service config-sync section firewall
set service config-sync section nat
set service config-sync section interfaces
set service config-sync section protocols
set service config-sync section service
set service config-sync section system
set service config-sync section vpn

set service config-sync mode load

commit
save
```

### Azure HA с Availability Set

**Топология:**
- Primary: 172.16.1.10 (zone 1)
- Secondary: 172.16.1.20 (zone 2)
- Azure Load Balancer для failover

**Secondary** (172.16.1.20):
```
configure

set service https api keys id azure-ha key 'Azure-ConfigSync-2024-SecureKey'
set service https api rest
set service https listen-address 172.16.1.20

commit
save
```

**Primary** (172.16.1.10):
```
configure

set service config-sync secondary address '172.16.1.20'
set service config-sync secondary key 'Azure-ConfigSync-2024-SecureKey'
set service config-sync secondary port 443

set service config-sync section firewall
set service config-sync section nat
set service config-sync section vpn
set service config-sync section protocols

set service config-sync mode load

commit
save
```

## Операционные команды

### Просмотр конфигурации

Показать текущую конфигурацию Config Sync:

```
show service config-sync
```

Вывод:
```
 config-sync {
     mode load
     secondary {
         address 192.168.100.2
         key ****************
         port 443
         timeout 60
     }
     section firewall
     section nat
     section vpn
 }
```

### Ручная синхронизация

Config Sync автоматически срабатывает после `commit`. Для ручного запуска:

```
reset config-sync
```

Это пересинхронизирует все настроенные разделы.

### Проверка статуса

Проверка последней синхронизации:

```
show log | match config-sync
```

Успешная синхронизация:
```
Oct 15 10:30:15 vyos-primary config-sync[1234]: Successfully synced section 'firewall' to 192.168.100.2
Oct 15 10:30:16 vyos-primary config-sync[1234]: Successfully synced section 'nat' to 192.168.100.2
```

Ошибка синхронизации:
```
Oct 15 10:30:15 vyos-primary config-sync[1234]: Failed to sync to 192.168.100.2: Connection timeout
```

### Мониторинг логов

Реал-тайм мониторинг:

```
monitor log | match config-sync
```

Или через журнал системы:
```
show log tail 50 | match config-sync
```

## Устранение неполадок

### Синхронизация не работает

**Симптомы**: Изменения на primary не появляются на secondary.

**Проверка 1 - REST API на secondary:**
```
show service https
```

Должен быть запущен и иметь API ключ.

**Проверка 2 - Сетевая связность:**
```
ping 192.168.100.2
```

**Проверка 3 - HTTPS доступность:**
```bash
curl -k https://192.168.100.2/
```

Должен вернуть ответ от VyOS API.

**Проверка 4 - Проверьте логи:**
```
show log | match config-sync
```

**Решение:**
```
# На secondary проверьте API
show service https api

# Перезапустите HTTPS сервис если нужно
restart https

# На primary проверьте конфигурацию
show service config-sync

# Попробуйте ручную синхронизацию
reset config-sync
```

### Ошибка аутентификации

**Симптомы**: `Authentication failed` в логах.

**Причина**: API ключи не совпадают.

**Решение:**

На secondary:
```
show service https api keys
```

На primary:
```
show service config-sync secondary key
```

Обновите ключ на primary если они различаются:
```
set service config-sync secondary key 'correct-key-from-secondary'
commit
```

### Timeout ошибки

**Симптомы**: `Connection timeout` в логах.

**Причины:**
- Медленная сеть
- Большая конфигурация
- Secondary перегружен

**Решение:**

Увеличьте timeout:
```
set service config-sync secondary timeout 180
commit
```

Проверьте нагрузку на secondary:
```
# На secondary
show system cpu
show system memory
```

### Частичная синхронизация

**Симптомы**: Некоторые разделы синхронизируются, другие нет.

**Проверка:**
```
show log | match "config-sync.*Failed"
```

**Возможные причины:**
- Несовместимость версий VyOS
- Синтаксические ошибки в конфигурации
- Недостаточные права API ключа

**Решение:**

Проверьте версии:
```
# На обоих роутерах
show version
```

Проверьте валидность конфигурации:
```
show configuration commands | grep <section>
```

### Secondary роутер offline

**Симптомы**: `Connection refused` или `No route to host`.

**Проверка:**
```
ping 192.168.100.2
show log | match config-sync
```

**Поведение**: Config Sync будет продолжать попытки при следующем commit.

**Решение:**
- Восстановите сетевую связность
- Проверьте firewall между роутерами
- После восстановления выполните `reset config-sync`

### Конфликты конфигурации

**Симптомы**: После синхронизации secondary имеет ошибки или неожиданное поведение.

**Причина**: Режим `set` может создавать конфликты.

**Решение:**

Переключитесь на режим `load`:
```
set service config-sync mode load
commit
```

Очистите конфигурацию раздела на secondary вручную если нужно:
```
# На secondary
delete firewall
commit

# Config Sync загрузит свежую конфигурацию при следующем commit на primary
```

### Несовпадение версий VyOS

**Симптомы**: Синхронизация работает, но secondary показывает ошибки.

**Проверка:**
```
# На обоих роутерах
show version | grep Version
```

**Решение**: Обновите оба роутера до одинаковой версии VyOS.

## Безопасность

### Защита API ключа

**Генерация сильного ключа:**
```bash
openssl rand -base64 32
```

Пример вывода:
```
3Km8WxT7qN9vB2hL5pY6sF1dC4eR8tU3jH7gN2mK9xP=
```

**Не используйте слабые ключи:**
- Словарные слова
- Простые паттерны (123456, password)
- Короткие ключи (< 20 символов)

### Firewall правила

Ограничьте доступ к REST API только с primary роутера:

**На secondary роутере:**
```
# Разрешить HTTPS только с primary
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 destination port 443
set firewall ipv4 input filter rule 100 protocol tcp
set firewall ipv4 input filter rule 100 source address 192.168.100.1

# Запретить все остальные HTTPS подключения
set firewall ipv4 input filter rule 110 action drop
set firewall ipv4 input filter rule 110 destination port 443
set firewall ipv4 input filter rule 110 protocol tcp

commit
```

### HTTPS сертификаты

**Self-signed сертификаты (internal networks):**
```
set service https certificates system-generated-certificate
commit
```

**Собственные сертификаты:**
```
# Сначала импортируйте сертификат через PKI
set pki certificate vyos-cert certificate 'MII...'
set pki certificate vyos-cert private key 'MII...'

# Используйте в HTTPS
set service https certificates certificate vyos-cert
commit
```

### Ограничение listen-address

Слушайте только на internal интерфейсе:

```
set service https listen-address 192.168.100.2
set service https listen-address 10.0.0.2
commit
```

**Не используйте:**
```
# Опасно - слушает на всех интерфейсах
set service https listen-address 0.0.0.0
```

### Audit logging

Включите логирование всех API операций:

```
set system syslog global facility all level info
set system syslog host 192.168.1.100 facility all level info
commit
```

## Лучшие практики

### Планирование

1. **Выберите правильные разделы**: Синхронизируйте только то, что должно быть идентичным
2. **Тестируйте на staging**: Проверьте Config Sync в тестовой среде перед production
3. **Документируйте архитектуру**: Четко укажите какой роутер primary, какой secondary

### Конфигурация

4. **Используйте режим load**: Гарантирует идентичность конфигураций
5. **Не синхронизируйте interfaces слепо**: Интерфейсы могут иметь разные IP адреса
6. **Генерируйте сильные API ключи**: Минимум 32 символа случайных данных
7. **Настройте адекватный timeout**: Учитывайте размер конфигурации и скорость сети

### Операции

8. **Мониторьте логи**: Регулярно проверяйте успешность синхронизации
9. **Тестируйте failover**: Периодически проверяйте работоспособность secondary
10. **Делайте резервные копии**: Config Sync не заменяет backup
11. **Версионный контроль**: Храните историю конфигураций в git

### Безопасность

12. **Ограничьте firewall**: Только primary должен иметь доступ к API secondary
13. **Используйте internal сети**: Не синхронизируйте через публичный интернет без VPN
14. **Регулярно меняйте ключи**: Ротация API ключей каждые 90 дней
15. **Логируйте все операции**: Centralized logging для audit trail

### Отказоустойчивость

16. **Тестируйте failover сценарии**: Primary падает, переключение на secondary
17. **Документируйте процедуры восстановления**: Как вернуть primary в строй
18. **Синхронизация после восстановления**: Как восстановить sync после downtime
19. **Мониторинг обоих роутеров**: Alerting на проблемы синхронизации

## Ограничения

1. **Односторонняя синхронизация**: Только primary → secondary
2. **Требуется online secondary**: Оба роутера должны быть доступны
3. **Одинаковая версия VyOS**: Несовместимость версий может вызвать ошибки
4. **Нет конфликт-резолюции**: Изменения на secondary перезаписываются
5. **Один secondary**: Нельзя синхронизировать с несколькими secondary одновременно
6. **Синхронные операции**: Commit блокируется до завершения синхронизации

## Альтернативные подходы

### Для множественной репликации

Если нужно синхронизировать более 2 роутеров:

1. **Configuration Management**: Ansible, SaltStack, Puppet
2. **Git-based**: Храните конфигурации в git, применяйте через CI/CD
3. **Scripted sync**: Кастомные скрипты через VyOS API

### Для bidirectional sync

Config Sync не поддерживает двустороннюю синхронизацию. Варианты:

1. **Два Config Sync**: Настройте взаимную синхронизацию (осторожно с петлями!)
2. **External orchestration**: Ansible с централизованным state
3. **Manual coordination**: Выберите один роутер как source of truth

## Интеграция с HA

Config Sync отлично работает с VyOS HA (VRRP):

**Primary** (VRRP Master):
```
configure

# VRRP
set high-availability vrrp group LAN vrid 10
set high-availability vrrp group LAN interface eth1
set high-availability vrrp group LAN address 192.168.1.1/24

# Config Sync
set service config-sync secondary address '192.168.100.2'
set service config-sync secondary key 'HA-Sync-Key'
set service config-sync section firewall
set service config-sync section nat
set service config-sync section service

commit
save
```

**Secondary** (VRRP Backup):
```
configure

# VRRP (те же настройки)
set high-availability vrrp group LAN vrid 10
set high-availability vrrp group LAN interface eth1
set high-availability vrrp group LAN address 192.168.1.1/24

# REST API для Config Sync
set service https api keys id config-sync key 'HA-Sync-Key'
set service https api rest

commit
save
```

**Результат**:
- VRRP обеспечивает IP failover
- Config Sync гарантирует идентичную конфигурацию
- При падении primary, secondary готов к работе

## Мониторинг

### Prometheus метрики

Если используете VyOS Prometheus exporter:

```yaml
# Метрики для мониторинга
- vyos_config_sync_last_success_timestamp
- vyos_config_sync_failures_total
- vyos_config_sync_duration_seconds
```

### Zabbix monitoring

Скрипт для проверки синхронизации:

```bash
#!/bin/bash
# check_config_sync.sh

LAST_SYNC=$(grep "Successfully synced" /var/log/messages | tail -1)
SYNC_TIME=$(echo "$LAST_SYNC" | awk '{print $1, $2, $3}')

# Проверить что синхронизация была за последний час
if [ -z "$SYNC_TIME" ]; then
    echo "CRITICAL: No config sync found"
    exit 2
fi

# Вернуть OK
echo "OK: Last sync at $SYNC_TIME"
exit 0
```

### Syslog

Отправка логов Config Sync на централизованный syslog:

```
set system syslog host 192.168.1.100 facility all level info
set system syslog host 192.168.1.100 port 514
commit
```

## Примеры сценариев

### Первоначальная настройка новой HA пары

**Шаг 1 - Настройте secondary:**
```
configure
set service https api keys id ha-sync key 'GeneratedSecureKey123'
set service https api rest
set service https listen-address 192.168.100.2
commit
save
```

**Шаг 2 - Настройте primary:**
```
configure
set service config-sync secondary address '192.168.100.2'
set service config-sync secondary key 'GeneratedSecureKey123'
set service config-sync section firewall
set service config-sync section nat
set service config-sync section vpn
commit
save
```

**Шаг 3 - Проверьте:**
```
show log | match config-sync
```

**Шаг 4 - Тест изменения:**
```
configure
set firewall ipv4 input filter rule 999 action accept
set firewall ipv4 input filter rule 999 description "Test sync"
commit
```

**Шаг 5 - Проверьте на secondary:**
```
show firewall ipv4 input filter rule 999
```

### Восстановление после сбоя

**Сценарий**: Primary был offline, изменения делались на secondary.

**Шаг 1 - Определите source of truth:**
- Если secondary конфигурация правильная, сделайте его новым primary
- Если primary конфигурация правильная, пересинхронизируйте

**Шаг 2 - Переключение ролей (secondary → primary):**

На старом secondary (теперь primary):
```
configure
set service config-sync secondary address '192.168.100.1'
set service config-sync secondary key 'HA-Sync-Key'
set service config-sync section firewall
# ... остальные разделы
commit
```

На старом primary (теперь secondary):
```
configure
delete service config-sync
set service https api keys id ha-sync key 'HA-Sync-Key'
set service https api rest
commit
```

**Шаг 3 - Принудительная синхронизация:**
```
reset config-sync
```

### Плановое обслуживание

**Перед обслуживанием:**
```
# Сделайте резервную копию обоих роутеров
show configuration commands | cat > /config/backup-$(date +%Y%m%d).conf

# Проверьте что secondary синхронизирован
show log | match config-sync | tail -20
```

**Во время обслуживания:**
```
# Временно отключите Config Sync если меняете primary
set service config-sync secondary disable
commit

# Выполните обслуживание
# ...

# Включите обратно
delete service config-sync secondary disable
commit

# Пересинхронизируйте
reset config-sync
```

## Troubleshooting Checklist

При проблемах проверьте по списку:

- [ ] REST API запущен на secondary (`show service https`)
- [ ] API ключи совпадают на primary и secondary
- [ ] Сетевая связность (ping, traceroute)
- [ ] HTTPS порт доступен (curl, telnet)
- [ ] Firewall не блокирует HTTPS между роутерами
- [ ] Версии VyOS совпадают на обоих устройствах
- [ ] Разделы для синхронизации указаны корректно
- [ ] Timeout достаточен для размера конфигурации
- [ ] Логи не показывают ошибок синхронизации
- [ ] Secondary роутер не перегружен (CPU, память)
- [ ] Конфигурация на primary валидна (`commit check`)

## Следующие шаги

- [High Availability (VRRP)](/docs/vyos/ha/) - настройка VRRP для IP failover
- [HTTPS API](/docs/vyos/services/vyos-https/) - детальная настройка REST API
- [System Login](/docs/vyos/system/vyos-login/) - управление пользователями и API ключами
- [Monitoring](/docs/vyos/services/) - мониторинг Config Sync операций

