# Configuration Blueprints - Autotest конфигурации

> Configuration Blueprints - протестированные примеры конфигурации VyOS с жизненным циклом на EVE-NG: lab, тестирование, документация

Source: https://opennix.org/docs/vyos/examples/vyos-blueprints/


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

## Что такое Configuration Blueprints

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

```bash
# Удаление 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](/docs/vyos/examples/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](/docs/vyos/examples/tunnelbroker-ipv6/)

### 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](/docs/vyos/examples/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](/docs/vyos/examples/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

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

```python
# Пример 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. Убедитесь, что ваша версия совместима:

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

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

Замените параметры в конфигурации на ваши:
- IP адреса и подсети
- Interface names
- VNI/VLAN IDs
- AS numbers (для BGP)
- Keys и certificates

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

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

```bash
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. Верификация каждого этапа

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

```bash
# Connectivity
ping 10.0.1.1

# Routing
show ip route

# Protocol status
show protocols ospf neighbor

# Service status
show dhcp server leases
```

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

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

```bash
# Логи
show log

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

# Packet capture
monitor traffic interface eth0
```

## Best Practices для Blueprints

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

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

```bash
# На 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 для адаптированной конфигурации:

```markdown
## Изменения от оригинального 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

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

```bash
# 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 стратегия

```bash
# Регулярный 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

```yaml
# .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

```yaml
# .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. Конфигурация не применяется

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

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

#### 2. Connectivity issues

```bash
# 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 не поднимается

```bash
# BGP
show bgp summary
show bgp neighbors

# OSPF
show ip ospf neighbor
show ip ospf database

# Debug
debug bgp
debug ospf
```

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

```bash
# 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](/docs/vyos/examples/) - Все примеры конфигурации
- [VyOS Official Blueprints](https://docs.vyos.io/en/latest/configexamples/index.html#configuration-blueprints-autotest)
- [EVE-NG Documentation](https://www.eve-ng.net/index.php/documentation/)

### Tools
- [VyOS Ansible Collection](https://galaxy.ansible.com/vyos/vyos) - Automation
- [VyOS API](https://docs.vyos.io/en/latest/automation/vyos-api.html) - REST API
- [Netmiko](https://github.com/ktbyers/netmiko) - SSH automation

### Community
- [VyOS Forum](https://forum.vyos.io/) - Community support
- [VyOS Slack](https://slack.vyos.io/) - Real-time chat
- [GitHub Issues](https://github.com/vyos/vyos-build/issues) - Bug reports

## Заключение

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

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

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

