Files
bgp-server/README.md
T
2025-07-11 18:46:16 +07:00

5.8 KiB
Raw Blame History

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. Установите зависимости (если не установлены):

    ./install-dependencies.sh
    
  2. Сделайте скрипты исполняемыми:

    chmod +x *.sh
    
  3. Запустите BGP сервер:

    ./start-bgp-server.sh
    

Ручной запуск

Если вы предпочитаете запускать вручную:

# Остановить существующие контейнеры
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 (консоль управления)

docker exec -it bgp-server vtysh

Полезные команды vtysh

# Показать статус BGP
show ip bgp summary

# Показать анонсированные префиксы
show ip bgp

# Показать community
show ip bgp community

# Показать соседей
show ip bgp neighbors

# Показать IPv6 информацию
show ipv6 bgp summary

Просмотр логов

# Просмотр логов в реальном времени
docker-compose logs -f bgp-server

# Просмотр последних логов
docker-compose logs bgp-server

Остановка сервера

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;
            }
        }
    }
}

Мониторинг

Проверка статуса контейнера

docker ps --filter "name=bgp-server"

Проверка сетевых портов

netstat -tuln | grep :179
netstat -tuln | grep :2601

Проверка логов FRRouting

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/