Refactor README.md to standardize GRE tunnel naming conventions and improve clarity on inter-server tunnel configurations. Updated tunnel names for MSK-VPSVILLE and IHOR, added detailed examples for mass configuration distribution, and enhanced explanations of failover testing procedures.

This commit is contained in:
2025-07-11 00:24:10 +07:00
parent 9346389e2b
commit 4d7f9a96e1
+110 -18
View File
@@ -1528,8 +1528,8 @@ set [ find default=yes ] router-id=10.100.0.2 redistribute=connected,static
/ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST
# 2. GRE туннель к MSK-VPSVILLE (межсерверный туннель)
/interface gre add name=gre-MSK-IHOR-VPSVILLE remote-address=<VPSVILLE_WAN_IP> local-address=<IHOR_WAN_IP>
/ip address add address=10.200.0.2/30 interface=gre-MSK-IHOR-VPSVILLE
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<VPSVILLE_WAN_IP> local-address=<IHOR_WAN_IP>
/ip address add address=10.200.0.2/30 interface=gre-MSK-VPSVILLE-IHOR
# 3. OSPF конфигурация
/routing ospf area
@@ -1545,7 +1545,7 @@ add interfaces=gre-MSK-IHOR-MTS cost=100 area=backbone
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
# Интерфейс к MSK-VPSVILLE
add interfaces=gre-MSK-IHOR-VPSVILLE cost=5 area=backbone
add interfaces=gre-MSK-VPSVILLE-IHOR cost=5 area=backbone
# 5. Анонсировать маршрут 0.0.0.0/0 через SWE-HIPHOST
/ip route add dst-address=0.0.0.0/0 gateway=10.200.2.2 distance=1
@@ -1559,11 +1559,11 @@ set [ find default=yes ] router-id=10.100.0.3 redistribute=connected,static
```shell
# 1. GRE туннели от московских серверов (межсерверные туннели)
/interface gre add name=gre-SWE-HIPHOST-VPSVILLE remote-address=<VPSVILLE_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.1.2/30 interface=gre-SWE-HIPHOST-VPSVILLE
/interface gre add name=gre-SWE-HIPHOST remote-address=<VPSVILLE_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.1.2/30 interface=gre-SWE-HIPHOST
/interface gre add name=gre-SWE-HIPHOST-IHOR remote-address=<IHOR_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.2.2/30 interface=gre-SWE-HIPHOST-IHOR
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<IHOR_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.2.2/30 interface=gre-MSK-VPSVILLE-IHOR
# 2. OSPF конфигурация
/routing ospf area
@@ -1571,8 +1571,8 @@ add name=backbone instance=default area-id=0.0.0.0
# 3. Добавить интерфейсы в OSPF
/routing ospf interface-template
add interfaces=gre-SWE-HIPHOST-VPSVILLE cost=10 area=backbone
add interfaces=gre-SWE-HIPHOST-IHOR cost=10 area=backbone
add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
add interfaces=gre-MSK-VPSVILLE-IHOR cost=10 area=backbone
# 4. OSPF redistribute (маршрут 0.0.0.0/0 получен через DHCP)
/routing ospf instance
@@ -1606,12 +1606,40 @@ add src-address=192.168.222.0/24 action=lookup table=MSK # Основной т
| Туннель | Подсеть | IP (левый сервер) | IP (правый сервер) | Описание |
|--------------------------------|-----------------|-------------------|--------------------|----------|
| MSK-VPSVILLE ↔ SWE-HIPHOST | 10.200.1.0/30 | 10.200.1.1 | 10.200.1.2 | VPSVILLE SWE |
| MSK-IHOR ↔ SWE-HIPHOST | 10.200.2.0/30 | 10.200.2.1 | 10.200.2.2 | IHOR SWE |
| MSK-VPSVILLE ↔ MSK-IHOR | 10.200.0.0/30 | 10.200.0.1 | 10.200.0.2 | Межсерверная связь |
| gre-SWE-HIPHOST | 10.200.1.0/30 | 10.200.1.1 | 10.200.1.2 | VPSVILLE SWE |
| gre-MSK-VPSVILLE-IHOR | 10.200.2.0/30 | 10.200.2.1 | 10.200.2.2 | IHOR SWE |
| gre-MSK-VPSVILLE-IHOR | 10.200.0.0/30 | 10.200.0.1 | 10.200.0.2 | VPSVILLE ↔ IHOR |
**Примечание**: Все межсерверные туннели используют диапазон 10.200.0.0/16, что обеспечивает четкое разделение от туннелей HOME (10.100.0.0/16).
### Единая система именования межсерверных туннелей
Для удобства массовой рассылки статических списков маршрутизации все межсерверные туннели используют единые названия:
#### Принцип именования:
- **gre-SWE-HIPHOST** - все туннели к SWE-HIPHOST (от VPSVILLE и IHOR)
- **gre-MSK-VPSVILLE-IHOR** - все туннели между московскими серверами и к IHOR
#### Преимущества единого именования:
1. **Массовая настройка**: Одинаковые команды для всех серверов
2. **Упрощение скриптов**: Можно использовать шаблоны конфигурации
3. **Единообразие**: Легче поддерживать и документировать
4. **Масштабируемость**: При добавлении новых серверов схема остается понятной
#### Пример массовой рассылки конфигурации:
```shell
# Шаблон для всех серверов с туннелем gre-SWE-HIPHOST
/interface gre add name=gre-SWE-HIPHOST remote-address=<REMOTE_IP> local-address=<LOCAL_IP>
/ip address add address=<TUNNEL_IP>/30 interface=gre-SWE-HIPHOST
/routing ospf interface-template add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
# Шаблон для всех серверов с туннелем gre-MSK-VPSVILLE-IHOR
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<REMOTE_IP> local-address=<LOCAL_IP>
/ip address add address=<TUNNEL_IP>/30 interface=gre-MSK-VPSVILLE-IHOR
/routing ospf interface-template add interfaces=gre-MSK-VPSVILLE-IHOR cost=5 area=backbone
```
### Логика разделения адресов на диапазоны
#### Диапазон 10.100.0.0/16 - Туннели от HOME
@@ -1664,16 +1692,16 @@ MSK-VPSVILLE ↔ MSK-IHOR | 10.100.9.0/30
1. **Нормальная работа**:
- HOME получает маршрут 0.0.0.0/0 от MSK-VPSVILLE через OSPF
- MSK-VPSVILLE имеет GRE туннель к SWE-HIPHOST (10.200.1.0/30)
- MSK-VPSVILLE имеет GRE туннель gre-SWE-HIPHOST к SWE-HIPHOST (10.200.1.0/30)
2. **Отказ GRE туннеля MSK-VPSVILLE → SWE-HIPHOST**:
- MSK-VPSVILLE больше не может достичь SWE-HIPHOST
2. **Отказ GRE туннеля gre-SWE-HIPHOST на MSK-VPSVILLE**:
- MSK-VPSVILLE больше не может достичь SWE-HIPHOST через gre-SWE-HIPHOST
- MSK-VPSVILLE убирает маршрут 0.0.0.0/0 из OSPF
- HOME получает маршрут 0.0.0.0/0 от MSK-IHOR через OSPF
- Весь трафик идет через MSK-IHOR → SWE-HIPHOST (10.200.2.0/30)
- Весь трафик идет через MSK-IHOR → gre-SWE-HIPHOST → SWE-HIPHOST (10.200.2.0/30)
3. **Автоматическое восстановление**:
- Когда GRE туннель MSK-VPSVILLE → SWE-HIPHOST восстанавливается
- Когда GRE туннель gre-SWE-HIPHOST на MSK-VPSVILLE восстанавливается
- MSK-VPSVILLE снова анонсирует маршрут 0.0.0.0/0
- OSPF выбирает оптимальный путь (обычно через MSK-VPSVILLE)
@@ -1700,10 +1728,65 @@ MSK-VPSVILLE ↔ MSK-IHOR | 10.100.9.0/30
/routing ospf neighbor print
```
### Массовая рассылка конфигурации
#### Шаблон для всех серверов с туннелем gre-SWE-HIPHOST:
```shell
# Заменить <REMOTE_IP>, <LOCAL_IP>, <TUNNEL_IP> на соответствующие значения
/interface gre add name=gre-SWE-HIPHOST remote-address=<REMOTE_IP> local-address=<LOCAL_IP>
/ip address add address=<TUNNEL_IP>/30 interface=gre-SWE-HIPHOST
/routing ospf interface-template add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
```
#### Шаблон для всех серверов с туннелем gre-MSK-VPSVILLE-IHOR:
```shell
# Заменить <REMOTE_IP>, <LOCAL_IP>, <TUNNEL_IP> на соответствующие значения
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<REMOTE_IP> local-address=<LOCAL_IP>
/ip address add address=<TUNNEL_IP>/30 interface=gre-MSK-VPSVILLE-IHOR
/routing ospf interface-template add interfaces=gre-MSK-VPSVILLE-IHOR cost=5 area=backbone
```
#### Пример конкретных команд для каждого сервера:
**MSK-VPSVILLE:**
```shell
/interface gre add name=gre-SWE-HIPHOST remote-address=<SWE-HIPHOST_WAN_IP> local-address=<VPSVILLE_WAN_IP>
/ip address add address=10.200.1.1/30 interface=gre-SWE-HIPHOST
/routing ospf interface-template add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<IHOR_WAN_IP> local-address=<VPSVILLE_WAN_IP>
/ip address add address=10.200.0.1/30 interface=gre-MSK-VPSVILLE-IHOR
/routing ospf interface-template add interfaces=gre-MSK-VPSVILLE-IHOR cost=5 area=backbone
```
**MSK-IHOR:**
```shell
/interface gre add name=gre-SWE-HIPHOST remote-address=<SWE-HIPHOST_WAN_IP> local-address=<IHOR_WAN_IP>
/ip address add address=10.200.2.1/30 interface=gre-SWE-HIPHOST
/routing ospf interface-template add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<VPSVILLE_WAN_IP> local-address=<IHOR_WAN_IP>
/ip address add address=10.200.0.2/30 interface=gre-MSK-VPSVILLE-IHOR
/routing ospf interface-template add interfaces=gre-MSK-VPSVILLE-IHOR cost=5 area=backbone
```
**SWE-HIPHOST:**
```shell
/interface gre add name=gre-SWE-HIPHOST remote-address=<VPSVILLE_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.1.2/30 interface=gre-SWE-HIPHOST
/routing ospf interface-template add interfaces=gre-SWE-HIPHOST cost=10 area=backbone
/interface gre add name=gre-MSK-VPSVILLE-IHOR remote-address=<IHOR_WAN_IP> local-address=<SWE-HIPHOST_WAN_IP>
/ip address add address=10.200.2.2/30 interface=gre-MSK-VPSVILLE-IHOR
/routing ospf interface-template add interfaces=gre-MSK-VPSVILLE-IHOR cost=10 area=backbone
```
### Тестирование failover
```shell
# На MSK-VPSVILLE отключить GRE туннель к SWE-HIPHOST
# На MSK-VPSVILLE отключить GRE туннель gre-SWE-HIPHOST
/interface gre disable [ find where name=gre-SWE-HIPHOST ]
# Проверить что маршрут исчез из OSPF
@@ -1712,6 +1795,15 @@ MSK-VPSVILLE ↔ MSK-IHOR | 10.100.9.0/30
# На HOME проверить что маршрут изменился
/ip route print where dst-address=0.0.0.0/0
# Включить туннель обратно
/interface gre enable [ find where name=gre-SWE-HIPHOST ]
# На MSK-IHOR отключить GRE туннель gre-SWE-HIPHOST
/interface gre disable [ find where name=gre-SWE-HIPHOST ]
# Проверить что маршрут исчез из OSPF
/routing ospf route print
# Включить туннель обратно
/interface gre enable [ find where name=gre-SWE-HIPHOST ]
```