Files
2025-07-11 18:46:16 +07:00

217 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BGP Server с FRRouting
Этот проект предоставляет готовое решение для запуска BGP сервера с использованием контейнера FRRouting, который анонсирует префиксы всем подключенным клиентам с разделением по community.
## Требования
- Docker Engine
- Docker Compose
- Bash shell
## Структура проекта
```
bgp-server/
├── docker-compose.yml # Конфигурация Docker контейнера
├── frr.conf # Конфигурация FRRouting
├── prefixes.txt # Файл с префиксами и community
├── start-bgp-server.sh # Скрипт запуска для Linux
├── stop-bgp-server.sh # Скрипт остановки для Linux
├── check-bgp-status.sh # Скрипт проверки статуса для Linux
├── update-prefixes.sh # Скрипт обновления префиксов для Linux
├── install-dependencies.sh # Скрипт установки зависимостей
└── README.md # Эта инструкция
```
## Быстрый запуск
1. **Установите зависимости (если не установлены):**
```bash
./install-dependencies.sh
```
2. **Сделайте скрипты исполняемыми:**
```bash
chmod +x *.sh
```
3. **Запустите BGP сервер:**
```bash
./start-bgp-server.sh
```
## Ручной запуск
Если вы предпочитаете запускать вручную:
```bash
# Остановить существующие контейнеры
docker-compose down
# Запустить BGP сервер
docker-compose up -d
# Проверить статус
docker ps
# Посмотреть логи
docker-compose logs bgp-server
```
## Конфигурация
### Префиксы (prefixes.txt)
Файл содержит префиксы в формате:
```
prefix community1:community2:community3
```
Пример:
```
192.168.1.0/24 65000:100:65000:200
10.0.0.0/8 65000:101:65000:201
```
### BGP настройки (frr.conf)
- **ASN**: 65000
- **Router ID**: 192.168.1.1
- **Порт BGP**: 179
- **Порт vtysh**: 2601
## Управление сервером
### Подключение к vtysh (консоль управления)
```bash
docker exec -it bgp-server vtysh
```
### Полезные команды vtysh
```bash
# Показать статус BGP
show ip bgp summary
# Показать анонсированные префиксы
show ip bgp
# Показать community
show ip bgp community
# Показать соседей
show ip bgp neighbors
# Показать IPv6 информацию
show ipv6 bgp summary
```
### Просмотр логов
```bash
# Просмотр логов в реальном времени
docker-compose logs -f bgp-server
# Просмотр последних логов
docker-compose logs bgp-server
```
### Остановка сервера
```bash
docker-compose down
```
## Подключение клиентов
### Настройка BGP клиента
Клиенты могут подключаться к BGP серверу по адресу:
- **IP**: IP адрес хоста, где запущен контейнер
- **Порт**: 179
- **ASN**: 65000 (внешний ASN)
### Пример конфигурации клиента (Cisco)
```
router bgp 65001
neighbor 192.168.1.1 remote-as 65000
neighbor 192.168.1.1 send-community
network 192.168.2.0/24
```
### Пример конфигурации клиента (Juniper)
```
protocols {
bgp {
group external {
type external;
peer-as 65000;
neighbor 192.168.1.1 {
send-community;
}
}
}
}
```
## Мониторинг
### Проверка статуса контейнера
```bash
docker ps --filter "name=bgp-server"
```
### Проверка сетевых портов
```bash
netstat -tuln | grep :179
netstat -tuln | grep :2601
```
### Проверка логов FRRouting
```bash
docker exec bgp-server cat /var/log/frr/frr.log
```
## Troubleshooting
### Проблема: Контейнер не запускается
1. Проверьте, что Docker Desktop запущен
2. Проверьте логи: `docker-compose logs bgp-server`
3. Убедитесь, что порты 179 и 2601 не заняты
### Проблема: BGP сессии не устанавливаются
1. Проверьте настройки firewall
2. Убедитесь, что клиент правильно настроен
3. Проверьте логи BGP: `docker exec -it bgp-server vtysh -c "show ip bgp summary"`
### Проблема: Префиксы не анонсируются
1. Проверьте конфигурацию в `frr.conf`
2. Убедитесь, что префиксы правильно прописаны
3. Проверьте community настройки
## Безопасность
⚠️ **Важно**: Этот BGP сервер настроен для тестирования и разработки. Для продакшена:
1. Измените пароли по умолчанию
2. Настройте firewall правила
3. Используйте более строгие настройки безопасности
4. Ограничьте доступ к vtysh
## Поддержка
При возникновении проблем:
1. Проверьте логи контейнера
2. Убедитесь в правильности конфигурации
3. Проверьте сетевые настройки
4. Обратитесь к документации FRRouting: https://frrouting.org/