228 lines
5.1 KiB
Markdown
228 lines
5.1 KiB
Markdown
# Быстрый старт BGP сервера
|
||
|
||
## Минимальные требования
|
||
|
||
- Docker Desktop для Windows
|
||
- PowerShell
|
||
- RouterOS 7.14+ (на стороне клиента)
|
||
|
||
## Быстрый запуск (5 минут)
|
||
|
||
### 1. Клонирование и подготовка
|
||
|
||
```powershell
|
||
# Клонирование репозитория (если нужно)
|
||
git clone <repository-url>
|
||
cd bgp-server
|
||
|
||
# Создание необходимых директорий
|
||
mkdir logs
|
||
```
|
||
|
||
### 2. Настройка префиксов
|
||
|
||
Отредактируйте файл `data/prefixes.txt`:
|
||
|
||
```
|
||
192.168.1.0/24
|
||
10.0.0.0/8
|
||
172.16.0.0/12
|
||
```
|
||
|
||
### 3. Запуск сервера
|
||
|
||
```powershell
|
||
# Запуск с автоматической сборкой
|
||
.\scripts\start-server.ps1 -Build
|
||
|
||
# Или вручную
|
||
docker-compose up -d --build
|
||
```
|
||
|
||
### 4. Проверка работы
|
||
|
||
```powershell
|
||
# Проверка статуса
|
||
docker-compose ps
|
||
|
||
# Просмотр логов
|
||
docker-compose logs -f bgp-server
|
||
|
||
# Мониторинг
|
||
docker exec bgp-server python3 /app/scripts/monitor.py
|
||
```
|
||
|
||
### 5. Настройка RouterOS
|
||
|
||
Выполните в RouterOS:
|
||
|
||
```routeros
|
||
/routing bgp instance add name=bgp-server as=65001 router-id=192.168.1.1
|
||
/routing bgp network add network=192.168.1.0/24
|
||
/routing bgp peer add name=bgp-server remote-address=192.168.1.100 remote-as=65000 instance=bgp-server
|
||
/routing bgp instance set bgp-server disabled=no
|
||
```
|
||
|
||
### 6. Проверка BGP сессии
|
||
|
||
В RouterOS:
|
||
```routeros
|
||
/routing bgp peer print
|
||
```
|
||
|
||
Ожидаемый результат:
|
||
```
|
||
Flags: X - disabled, I - invalid, D - dynamic, E - established
|
||
0 name="bgp-server" ... state=established uptime=1m30s prefix-count=8
|
||
```
|
||
|
||
## Полезные команды
|
||
|
||
### Управление сервером
|
||
|
||
```powershell
|
||
# Запуск
|
||
.\scripts\start-server.ps1
|
||
|
||
# Остановка
|
||
.\scripts\stop-server.ps1
|
||
|
||
# Перезапуск
|
||
docker-compose restart
|
||
|
||
# Просмотр логов
|
||
docker-compose logs -f bgp-server
|
||
```
|
||
|
||
### Мониторинг
|
||
|
||
```powershell
|
||
# Проверка статуса
|
||
docker-compose ps
|
||
|
||
# Мониторинг ресурсов
|
||
docker stats bgp-server
|
||
|
||
# Проверка BGP сессии
|
||
docker exec bgp-server exabgpcli show neighbor
|
||
```
|
||
|
||
### Обновление префиксов
|
||
|
||
```powershell
|
||
# Перезагрузка префиксов без перезапуска
|
||
docker exec bgp-server python3 /app/scripts/reload_prefixes.py
|
||
|
||
# Или перезапуск сервера
|
||
docker-compose restart
|
||
```
|
||
|
||
## Устранение неполадок
|
||
|
||
### Проблема: Контейнер не запускается
|
||
|
||
```powershell
|
||
# Проверка логов
|
||
docker-compose logs bgp-server
|
||
|
||
# Проверка портов
|
||
netstat -an | findstr :179
|
||
|
||
# Пересборка образа
|
||
docker-compose build --no-cache
|
||
```
|
||
|
||
### Проблема: BGP сессия не устанавливается
|
||
|
||
```powershell
|
||
# Проверка сетевого подключения
|
||
docker exec bgp-server ping 192.168.1.1
|
||
|
||
# Проверка конфигурации
|
||
docker exec bgp-server cat /app/exabgp.conf
|
||
|
||
# Проверка логов
|
||
docker-compose logs bgp-server
|
||
```
|
||
|
||
### Проблема: Префиксы не анонсируются
|
||
|
||
```powershell
|
||
# Проверка файлов с префиксами
|
||
docker exec bgp-server cat /app/data/prefixes.txt
|
||
|
||
# Проверка логов загрузки префиксов
|
||
docker exec bgp-server cat /app/logs/prefixes.log
|
||
|
||
# Перезагрузка префиксов
|
||
docker exec bgp-server python3 /app/scripts/reload_prefixes.py
|
||
```
|
||
|
||
## Настройка сети
|
||
|
||
### Изменение IP адресов
|
||
|
||
Отредактируйте `docker-compose.yml`:
|
||
|
||
```yaml
|
||
environment:
|
||
- BGP_ROUTER_ID=192.168.1.100 # IP сервера
|
||
- BGP_NEIGHBOR_IP=192.168.1.1 # IP RouterOS
|
||
```
|
||
|
||
И `exabgp.conf`:
|
||
|
||
```ini
|
||
neighbor 192.168.1.1 { # IP RouterOS
|
||
router-id 192.168.1.100; # IP сервера
|
||
local-address 192.168.1.100; # IP сервера
|
||
# ...
|
||
}
|
||
```
|
||
|
||
### Изменение AS номеров
|
||
|
||
В `docker-compose.yml`:
|
||
```yaml
|
||
environment:
|
||
- BGP_LOCAL_AS=65000 # AS сервера
|
||
- BGP_NEIGHBOR_AS=65001 # AS RouterOS
|
||
```
|
||
|
||
В `exabgp.conf`:
|
||
```ini
|
||
neighbor 192.168.1.1 {
|
||
local-as 65000; # AS сервера
|
||
peer-as 65001; # AS RouterOS
|
||
}
|
||
```
|
||
|
||
## Безопасность
|
||
|
||
### MD5 аутентификация
|
||
|
||
В `exabgp.conf`:
|
||
```ini
|
||
neighbor 192.168.1.1 {
|
||
# ... существующие настройки ...
|
||
md5-password "your-secure-password";
|
||
}
|
||
```
|
||
|
||
В RouterOS:
|
||
```routeros
|
||
/routing bgp peer set bgp-server tcp-md5-key="your-secure-password"
|
||
```
|
||
|
||
### Firewall
|
||
|
||
```powershell
|
||
# Windows Firewall (PowerShell)
|
||
New-NetFirewallRule -DisplayName "BGP Server" -Direction Inbound -Protocol TCP -LocalPort 179 -Action Allow
|
||
```
|
||
|
||
## Готово!
|
||
|
||
После выполнения всех шагов у вас должен работать BGP сервер, который раздает префиксы из текстовых файлов в RouterOS.
|
||
|
||
Для получения дополнительной информации см. основной файл `README.md`. |