# SHX Network Infrastructure ## Обзор сети Данный проект описывает сетевую инфраструктуру с двумя провайдерами интернет-соединения и множественными GRE туннелями для обеспечения отказоустойчивости и географического распределения. ## Архитектура сети ### Основная схема ```mermaid graph TB subgraph "Шлюз (Gateway)" GW[Основной шлюз] end subgraph "Провайдеры" MTS[МТС] RTK[Ростелеком] end subgraph "GRE Туннели" subgraph "Ростелеком (RTK)" RTK1[MSK-VPSVILLE-RTK] RTK2[MSK-IHOR-RTK] RTK3[SWE-HIPHOST-RTK] end subgraph "МТС (MTS)" MTS1[MSK-VPSVILLE-MTS] MTS2[MSK-IHOR-MTS] MTS3[SWE-HIPHOST-MTS] end end subgraph "Удаленные узлы" VPSVILLE[VPSVILLE] IHOR[IHOR] HIPHOST[HIPHOST] end GW --> MTS GW --> RTK MTS --> MTS1 MTS --> MTS2 MTS --> MTS3 RTK --> RTK1 RTK --> RTK2 RTK --> RTK3 MTS1 --> VPSVILLE MTS2 --> IHOR MTS3 --> HIPHOST RTK1 --> VPSVILLE RTK2 --> IHOR RTK3 --> HIPHOST style GW fill:#e1f5fe style MTS fill:#ffebee style RTK fill:#e8f5e8 style VPSVILLE fill:#fff3e0 style IHOR fill:#fff3e0 style HIPHOST fill:#fff3e0 ``` ### Детальная схема туннелей ```mermaid graph LR subgraph "Шлюз" GW[Gateway] end subgraph "Провайдер МТС" MTS_ISP[МТС ISP] end subgraph "Провайдер Ростелеком" RTK_ISP[Ростелеком ISP] end subgraph "GRE Туннели" subgraph "Москва - VPSVILLE" MTS_VPS[MSK-VPSVILLE-MTS
GRE Tunnel] RTK_VPS[MSK-VPSVILLE-RTK
GRE Tunnel] end subgraph "Москва - IHOR" MTS_IHOR[MSK-IHOR-MTS
GRE Tunnel] RTK_IHOR[MSK-IHOR-RTK
GRE Tunnel] end subgraph "Швеция - HIPHOST" MTS_HIP[SWE-HIPHOST-MTS
GRE Tunnel] RTK_HIP[SWE-HIPHOST-RTK
GRE Tunnel] end end subgraph "Удаленные серверы" VPS[VPSVILLE Server
Москва] IHR[IHOR Server
Москва] HIP[HIPHOST Server
Швеция] end GW --> MTS_ISP GW --> RTK_ISP MTS_ISP --> MTS_VPS MTS_ISP --> MTS_IHOR MTS_ISP --> MTS_HIP RTK_ISP --> RTK_VPS RTK_ISP --> RTK_IHOR RTK_ISP --> RTK_HIP MTS_VPS --> VPS MTS_IHOR --> IHR MTS_HIP --> HIP RTK_VPS --> VPS RTK_IHOR --> IHR RTK_HIP --> HIP style GW fill:#2196f3,stroke:#1976d2,stroke-width:2px,color:#fff style MTS_ISP fill:#f44336,stroke:#d32f2f,stroke-width:2px,color:#fff style RTK_ISP fill:#4caf50,stroke:#388e3c,stroke-width:2px,color:#fff style VPS fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#fff style IHR fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#fff style HIP fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#fff ``` ### Схема отказоустойчивости ```mermaid graph TB subgraph "Основной путь" GW[Gateway] MTS[MТС - Основной] RTK[Ростелеком - Резервный] end subgraph "Туннели по приоритету" subgraph "VPSVILLE" VPS_MTS[MSK-VPSVILLE-MTS
Приоритет 1] VPS_RTK[MSK-VPSVILLE-RTK
Приоритет 2] end subgraph "IHOR" IHR_MTS[MSK-IHOR-MTS
Приоритет 1] IHR_RTK[MSK-IHOR-RTK
Приоритет 2] end subgraph "HIPHOST" HIP_MTS[SWE-HIPHOST-MTS
Приоритет 1] HIP_RTK[SWE-HIPHOST-RTK
Приоритет 2] end end GW --> MTS GW --> RTK MTS --> VPS_MTS MTS --> IHR_MTS MTS --> HIP_MTS RTK --> VPS_RTK RTK --> IHR_RTK RTK --> HIP_RTK VPS_MTS -.->|Failover| VPS_RTK IHR_MTS -.->|Failover| IHR_RTK HIP_MTS -.->|Failover| HIP_RTK style GW fill:#2196f3,stroke:#1976d2,stroke-width:3px,color:#fff style MTS fill:#4caf50,stroke:#388e3c,stroke-width:2px,color:#fff style RTK fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#fff ``` ## Конфигурация туннелей ### Ростелеком (RTK) | Туннель | Назначение | Локация | Статус | |---------|------------|---------|--------| | MSK-VPSVILLE-RTK | Основной канал VPSVILLE | Москва | Активен | | MSK-IHOR-RTK | Основной канал IHOR | Москва | Активен | | SWE-HIPHOST-RTK | Основной канал HIPHOST | Швеция | Активен | ### МТС (MTS) | Туннель | Назначение | Локация | Статус | |---------|------------|---------|--------| | MSK-VPSVILLE-MTS | Резервный канал VPSVILLE | Москва | Активен | | MSK-IHOR-MTS | Резервный канал IHOR | Москва | Активен | | SWE-HIPHOST-MTS | Резервный канал HIPHOST | Швеция | Активен | ## Преимущества архитектуры 1. **Отказоустойчивость**: Два независимых провайдера обеспечивают непрерывность работы 2. **Географическое распределение**: Серверы в разных локациях (Москва, Швеция) 3. **Балансировка нагрузки**: Возможность распределения трафика между провайдерами 4. **Масштабируемость**: Легкое добавление новых туннелей и серверов ## Мониторинг - Отслеживание состояния всех GRE туннелей - Мониторинг пропускной способности каналов - Автоматическое переключение при отказе основного канала - Логирование событий и статистики ## Технические детали - **Протокол**: GRE (Generic Routing Encapsulation) - **Шифрование**: IPSec (опционально) - **Мониторинг**: Keepalive пакеты - **Failover**: Автоматическое переключение при потере связи --- ## Рекомендации по адресации GRE туннелей Для GRE туннелей рекомендуется использовать отдельный диапазон, например, `10.100.0.0/16`, чтобы избежать конфликтов с домашней сетью (`192.168.0.0/16`). Для каждого туннеля выделяется отдельная /30 подсеть (две точки). ### Пример распределения адресов для GRE туннелей | Туннель | Подсеть | Gateway (ваш) | Remote (удалённый) | |------------------------|-----------------|---------------|--------------------| | MSK-VPSVILLE-MTS | 10.100.1.0/30 | 10.100.1.1 | 10.100.1.2 | | MSK-VPSVILLE-RTK | 10.100.2.0/30 | 10.100.2.1 | 10.100.2.2 | | MSK-IHOR-MTS | 10.100.3.0/30 | 10.100.3.1 | 10.100.3.2 | | MSK-IHOR-RTK | 10.100.4.0/30 | 10.100.4.1 | 10.100.4.2 | | SWE-HIPHOST-MTS | 10.100.5.0/30 | 10.100.5.1 | 10.100.5.2 | | SWE-HIPHOST-RTK | 10.100.6.0/30 | 10.100.6.1 | 10.100.6.2 | - Первый IP в /30 — ваш шлюз (CHR), второй — удалённая сторона. - Такой подход обеспечивает прозрачность, масштабируемость и минимизирует конфликты. ### Безопасность и маршрутизация на RouterOS - Использование диапазона `10.100.0.0/16` для GRE туннелей безопасно, если ваша домашняя сеть — `192.168.0.0/16`. - Диапазоны не пересекаются, маршрутизация не сломается. - На CHR (RouterOS) это стандартная практика: GRE туннели выносят в отдельный диапазон, чтобы не было конфликтов с LAN. - Для GRE-интерфейсов прописывайте адресацию только из этого диапазона. - В маршрутах на CHR не должно быть статических маршрутов, которые бы направляли `10.100.0.0/16` в локальную сеть. #### Пример маршрутизации на RouterOS - Для каждого GRE-интерфейса будет автоматически создан маршрут для /30 подсети. - Например, если GRE-интерфейс имеет адрес 10.100.1.1/30, а удалённый — 10.100.1.2, то маршрут до 10.100.1.2 будет через этот GRE-интерфейс. - Основная домашняя сеть (`192.168.0.0/16`) никак не пересекается с этими маршрутами. #### Пример конфигурации GRE туннеля на RouterOS ```shell /interface gre add name=gre-MSK-VPSVILLE-MTS remote-address= local-address= /ip address add address=10.100.1.1/30 interface=gre-MSK-VPSVILLE-MTS /ip route add dst-address=10.100.1.2/32 gateway=gre-MSK-VPSVILLE-MTS ``` - `` — внешний IP удалённого сервера - `` — ваш внешний IP - Аналогично для остальных туннелей, меняя адресацию по таблице выше ---