# 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/