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 host2. Конфигурация устройств
# Применение 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 compatibility5. Генерация документации
# Автоматическая генерация документации
- Извлечение финальной конфигурации
- Сбор результатов тестов
- Создание topology диаграмм
- Формирование markdown документации
- Публикация в docs6. Очистка лаборатории
# Удаление 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
| Aspect | Configuration Examples | Configuration Blueprints |
|---|---|---|
| Тестирование | Manual testing | Automated testing |
| Верификация | Best-effort | Guaranteed working |
| Обновления | Manual | Automatic with new VyOS releases |
| Документация | Static | Auto-generated from tests |
| Версии VyOS | Generic | Specific tested versions |
| Сложность | Simple to advanced | Advanced scenarios only |
| Maintenance | Community | Automated 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" в документации blueprint3. Адаптация конфигурации
Замените параметры в конфигурации на ваши:
- 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
save5. Верификация каждого этапа
Используйте команды проверки из документации:
# Connectivity
ping 10.0.1.1
# Routing
show ip route
# Protocol status
show protocols ospf neighbor
# Service status
show dhcp server leases6. Мониторинг и troubleshooting
Если что-то не работает:
# Логи
show log
# Debug режим
set system syslog global facility all level debug
commit
# Packet capture
monitor traffic interface eth0Best 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 environment4. Мониторинг в 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 info5. 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:
- mainGitHub 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.confTroubleshooting Blueprints
Общие проблемы
1. Конфигурация не применяется
# Проверьте syntax
configure
load /config/blueprint.conf
commit
# Если ошибка - смотрите детали
# Проверьте deprecated commands
show system commit2. 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 ospf4. 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 версиях:
| Blueprint | VyOS 1.4 (Sagitta) | VyOS 1.5 (Circinus) | Notes |
|---|---|---|---|
| DHCP Relay GRE | 1.4-rolling-202305+ | 1.5-rolling-202401+ | Kea DHCP в 1.5 |
| Tunnelbroker | 1.4-rolling | 1.5-rolling-202401+ | IPv6 changes |
| L3VPN EVPN | 1.4-rolling | 1.5-rolling | FRR updates |
| WireGuard | 1.4-rolling | 1.5-rolling | Stable |
| OpenVPN LDAP | 1.4-rolling | 1.5-rolling | Stable |
Рекомендация: Используйте LTS версию (VyOS 1.4 Sagitta) для production, rolling release для тестирования новых features.
Дополнительные ресурсы
Документация
- VyOS Configuration Examples - Все примеры конфигурации
- VyOS Official Blueprints
- EVE-NG Documentation
Tools
- VyOS Ansible Collection - Automation
- VyOS API - REST API
- Netmiko - SSH automation
Community
- VyOS Forum - Community support
- VyOS Slack - Real-time chat
- GitHub Issues - Bug reports
Заключение
Configuration Blueprints (Autotest) предоставляют высоконадежные, автоматически протестированные примеры конфигурации VyOS для сложных сетевых сценариев. Использование blueprints гарантирует:
- Работоспособность конфигурации на указанных версиях
- Экономию времени на тестировании и отладке
- Best practices от VyOS разработчиков
- Регулярные обновления с новыми версиями VyOS
Для production deployments рекомендуется использовать blueprints как starting point, адаптируя их под конкретные требования с сохранением архитектурных принципов.