Configuration Blueprints (Autotest) - Автоматически тестируемые конфигурации

Configuration Blueprints (Autotest) - Автоматически тестируемые конфигурации

Configuration Blueprints (Autotest) - это коллекция автоматически протестированных примеров конфигурации VyOS. Каждый blueprint проходит полный жизненный цикл автоматизированного тестирования на платформе EVE-NG, что гарантирует работоспособность конфигурации.

Что такое Configuration Blueprints

Configuration Blueprints - это production-ready примеры конфигурации, которые:

  • Автоматически тестируются на реальной лабораторной среде EVE-NG
  • Полностью валидируются через набор автоматических тестов
  • Регулярно обновляются при выходе новых версий VyOS
  • Документируются автоматически на основе результатов тестирования
  • Гарантируют работоспособность на указанных версиях VyOS

В отличие от обычных configuration examples, blueprints проходят автоматическую верификацию на каждом этапе, что обеспечивает высокую надежность конфигурации.

Процесс автоматического тестирования

Каждый blueprint проходит следующие этапы:

1. Создание лаборатории

# Автоматическое создание lab на EVE-NG сервере
- Загрузка topology definition
- Создание виртуальных роутеров
- Настройка сетевых связей
- Конфигурация vyos-oobm proxy host

2. Конфигурация устройств

# Применение configuration на каждом роутере
- SSH подключение через vyos-oobm proxy
- Применение базовой конфигурации
- Настройка сетевых интерфейсов
- Конфигурация протоколов и сервисов
- Commit и save конфигурации

3. Выполнение тестов

# Набор автоматических тестов
- Проверка connectivity (ping, traceroute)
- Валидация routing tables
- Проверка состояния протоколов (BGP, OSPF)
- Тестирование сервисов (DHCP, DNS, VPN)
- Проверка firewall правил
- Performance тесты

4. Upgrade и повторное тестирование (опционально)

# Тестирование на новых версиях
- Upgrade VyOS до более новой версии
- Повторный прогон всех тестов
- Валидация миграции конфигурации
- Проверка backward compatibility

5. Генерация документации

# Автоматическая генерация документации
- Извлечение финальной конфигурации
- Сбор результатов тестов
- Создание topology диаграмм
- Формирование markdown документации
- Публикация в docs

6. Очистка лаборатории

# Удаление lab (если не было ошибок)
- Shutdown всех устройств
- Удаление lab на EVE-NG
- Освобождение ресурсов

Доступные Blueprint Examples

DHCP Relay through GRE-Bridge

Сценарий: DHCP relay через GRE туннель между сегментами сети

Топология:

[DHCP Client] --- [VyOS Relay] === GRE Tunnel === [VyOS Server] --- [DHCP Server]
                     |                                    |
                  [Transport Network (ISP/WAN)]

Основные компоненты:

  • GRETAP encapsulation для L2 connectivity
  • DHCP relay agent на клиентской стороне
  • DHCP server на серверной стороне
  • Transport network между relay и server

Применение:

  • Service Provider сценарии
  • Централизованный DHCP management
  • DHCP через WAN/Internet
  • Multi-site DHCP архитектуры

Tested on: VyOS 1.4-rolling-202305100734

Полная документация DHCP Relay GRE

Tunnelbroker.net (IPv6)

Сценарий: IPv6 connectivity через Hurricane Electric Tunnelbroker

Топология:

[VyOS WAN Router] === IPv6-in-IPv4 Tunnel === [Tunnelbroker HE]
         |
    [IPv6 LAN]
      - Single LAN: /64 prefix
      - Multiple LANs: /48 prefix (multiple /64 subnets)

Основные компоненты:

  • SIT (Simple Internet Transition) tunnel
  • IPv6 addressing и routing
  • Router Advertisement для LAN
  • Firewall IPv6 rules

Применение:

  • IPv6 connectivity для IPv4-only провайдеров
  • Тестирование IPv6 в production
  • Dual-stack networks
  • IPv6 для home/SOHO сетей

Tested on: VyOS 1.5-rolling-202401130318

Полная документация Tunnelbroker

L3VPN EVPN with VyOS

Сценарий: Multi-tenant datacenter L3VPN на базе EVPN

Топология:

[PE1] ---- [PE2]
  \         /
   \       /
    [PE3]

Multi-tenant VRFs:
- Blue VRF (VNI 2000)
- Red VRF (VNI 3000)
- Green VRF (VNI 4000)

Основные компоненты:

  • VXLAN data plane
  • BGP EVPN control plane
  • VRF для tenant isolation
  • OSPF как IGP
  • Management VRF для OOB access

Применение:

  • Datacenter multi-tenancy
  • Cloud service providers
  • Enterprise WAN segmentation
  • Network function virtualization (NFV)

Tested on: VyOS 1.4/1.5-rolling

Полная документация L3VPN EVPN

WireGuard VPN

Сценарий: Modern VPN на базе WireGuard protocol

Основные компоненты:

  • WireGuard interface configuration
  • Public/Private key management
  • Peer configuration
  • Routing через VPN tunnel
  • Firewall rules для VPN

Применение:

  • Site-to-Site VPN (более быстрая альтернатива IPsec)
  • Remote Access VPN
  • Container-to-Container encryption
  • IoT device connectivity

Tested on: VyOS 1.4/1.5-rolling

OpenVPN with LDAP

Сценарий: Enterprise Remote Access VPN с LDAP authentication

Основные компоненты:

  • OpenVPN server configuration
  • LDAP backend integration
  • Certificate management (PKI)
  • Client configuration generation
  • RADIUS authentication (опционально)

Применение:

  • Enterprise Remote Access
  • Active Directory integration
  • Centralized user management
  • Multi-factor authentication (MFA) ready

Tested on: VyOS 1.4/1.5-rolling

Полная документация OpenVPN LDAP

Архитектура тестирования

EVE-NG Platform

Configuration Blueprints используют EVE-NG (Emulated Virtual Environment - Next Generation) для создания виртуальных лабораторий:

Преимущества EVE-NG:

  • Эмуляция реальной сетевой топологии
  • Поддержка множества network OS (VyOS, Cisco, Juniper)
  • Графический интерфейс для визуализации
  • API для автоматизации
  • Snapshot и restore функциональность

vyos-oobm Proxy Host

Специальный out-of-band management host для:

  • SSH proxy для доступа к lab устройствам
  • Запуск automation scripts
  • Сбор логов и результатов тестов
  • Координация test execution

Test Framework

Автоматизированная система тестирования включает:

# Пример test case структуры
class DHCPRelayGRETest:
    def setup_lab(self):
        # Создание EVE-NG lab
        pass

    def configure_devices(self):
        # Применение конфигураций
        pass

    def test_connectivity(self):
        # Ping tests
        assert ping(source, destination) == 0

    def test_dhcp_lease(self):
        # DHCP lease verification
        assert client.has_ip_address()

    def test_routing(self):
        # Routing table checks
        assert route_exists(destination)

    def cleanup_lab(self):
        # Удаление lab
        pass

Отличия от Configuration Examples

AspectConfiguration ExamplesConfiguration Blueprints
ТестированиеManual testingAutomated testing
ВерификацияBest-effortGuaranteed working
ОбновленияManualAutomatic with new VyOS releases
ДокументацияStaticAuto-generated from tests
Версии VyOSGenericSpecific tested versions
СложностьSimple to advancedAdvanced scenarios only
MaintenanceCommunityAutomated system

Как использовать Blueprints

1. Выбор Blueprint

Определите сценарий, который соответствует вашим требованиям:

  • DHCP Relay GRE: Централизованный DHCP через WAN
  • Tunnelbroker: IPv6 connectivity
  • L3VPN EVPN: Datacenter multi-tenancy
  • WireGuard: Modern fast VPN
  • OpenVPN LDAP: Enterprise Remote Access

2. Проверка версии VyOS

Каждый blueprint тестируется на конкретной версии VyOS. Убедитесь, что ваша версия совместима:

show version
# Сравните с "Tested on" в документации blueprint

3. Адаптация конфигурации

Замените параметры в конфигурации на ваши:

  • IP адреса и подсети
  • Interface names
  • VNI/VLAN IDs
  • AS numbers (для BGP)
  • Keys и certificates

4. Поэтапное применение

Применяйте конфигурацию блоками:

configure

# Блок 1: Interfaces
set interfaces ethernet eth0 address '10.0.1.1/24'
commit

# Блок 2: Protocols
set protocols ospf area 0
commit

# Блок 3: Services
set service dhcp-server ...
commit

save

5. Верификация каждого этапа

Используйте команды проверки из документации:

# Connectivity
ping 10.0.1.1

# Routing
show ip route

# Protocol status
show protocols ospf neighbor

# Service status
show dhcp server leases

6. Мониторинг и troubleshooting

Если что-то не работает:

# Логи
show log

# Debug режим
set system syslog global facility all level debug
commit

# Packet capture
monitor traffic interface eth0

Best Practices для Blueprints

1. Версионный контроль

Сохраняйте конфигурацию в Git:

# На VyOS роутере
show configuration commands | save /config/backup.conf

# Copy to git repository
scp vyos@router:/config/backup.conf ./configs/
git add configs/backup.conf
git commit -m "Add VyOS config for blueprint X"

2. Тестирование в Lab

Перед production deployment:

  • Разверните blueprint в тестовой среде
  • Проверьте все функции
  • Проведите нагрузочные тесты
  • Валидируйте failover сценарии

3. Документирование изменений

Ведите changelog для адаптированной конфигурации:

## Изменения от оригинального blueprint

### DHCP Relay GRE Blueprint
- Changed GRE source: 10.0.10.10 → 192.168.1.1
- Changed DHCP pool: 192.168.0.0/24 → 172.16.50.0/24
- Added firewall rules for production environment

4. Мониторинг в Production

Настройте мониторинг ключевых метрик:

# SNMP для мониторинга
set service snmp community public authorization ro
set service snmp community public network 192.168.1.0/24

# Syslog в централизованную систему
set system syslog host 192.168.1.100 facility all level info

5. Backup стратегия

# Регулярный backup конфигурации
set system task-scheduler task backup-config executable path '/config/scripts/backup.sh'
set system task-scheduler task backup-config interval '1d'

# backup.sh
#!/bin/vbash
source /opt/vyatta/etc/functions/script-template
run show configuration commands | save /config/backups/config-$(date +%Y%m%d).conf

Интеграция с CI/CD

Blueprint конфигурации можно интегрировать в CI/CD pipeline:

GitLab CI Example

# .gitlab-ci.yml
stages:
  - validate
  - test
  - deploy

validate_config:
  stage: validate
  script:
    - vyos-validate-config config.conf
  only:
    - branches

test_lab:
  stage: test
  script:
    - python3 run_eve_ng_test.py --blueprint dhcp-relay-gre
  only:
    - main

deploy_production:
  stage: deploy
  script:
    - ansible-playbook -i inventory vyos-deploy.yml
  when: manual
  only:
    - main

GitHub Actions Example

# .github/workflows/vyos-test.yml
name: VyOS Blueprint Test

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Validate VyOS Config
        run: |
          docker run --rm -v $PWD:/config vyos/vyos:latest \
            /opt/vyatta/bin/vyatta-config-loader /config/blueprint.conf

Troubleshooting Blueprints

Общие проблемы

1. Конфигурация не применяется

# Проверьте syntax
configure
load /config/blueprint.conf
commit
# Если ошибка - смотрите детали

# Проверьте deprecated commands
show system commit

2. Connectivity issues

# Interface status
show interfaces

# Routing
show ip route
show ipv6 route

# ARP/NDP
show arp
show ipv6 neighbors

# Packet capture
monitor traffic interface eth0 filter "icmp"

3. Protocol не поднимается

# BGP
show bgp summary
show bgp neighbors

# OSPF
show ip ospf neighbor
show ip ospf database

# Debug
debug bgp
debug ospf

4. Service не работает

# DHCP
show dhcp server statistics
show dhcp server leases
show log | match dhcp

# DNS
show dns forwarding statistics

# VPN
show vpn ipsec sa
show vpn wireguard

Версии VyOS и совместимость

Blueprint тестируются на конкретных rolling release версиях:

BlueprintVyOS 1.4 (Sagitta)VyOS 1.5 (Circinus)Notes
DHCP Relay GRE1.4-rolling-202305+1.5-rolling-202401+Kea DHCP в 1.5
Tunnelbroker1.4-rolling1.5-rolling-202401+IPv6 changes
L3VPN EVPN1.4-rolling1.5-rollingFRR updates
WireGuard1.4-rolling1.5-rollingStable
OpenVPN LDAP1.4-rolling1.5-rollingStable

Рекомендация: Используйте LTS версию (VyOS 1.4 Sagitta) для production, rolling release для тестирования новых features.

Дополнительные ресурсы

Документация

Tools

Community

Заключение

Configuration Blueprints (Autotest) предоставляют высоконадежные, автоматически протестированные примеры конфигурации VyOS для сложных сетевых сценариев. Использование blueprints гарантирует:

  • Работоспособность конфигурации на указанных версиях
  • Экономию времени на тестировании и отладке
  • Best practices от VyOS разработчиков
  • Регулярные обновления с новыми версиями VyOS

Для production deployments рекомендуется использовать blueprints как starting point, адаптируя их под конкретные требования с сохранением архитектурных принципов.