Выпуск дистрибутива BSD Router Project 1.994

Оливье Кочар-Лаббе (Olivier Cochard-Labbé), создатель дистрибутива FreeNAS, представил выпуск специализированного дистрибутива BSD Router Project 1.994 (BSDRP), примечательный обновлением кодовой базы до находящейся в разработке ветки FreeBSD 15. Дистрибутив предназначен для создания компактных программных маршрутизаторов, поддерживающих протоколы маршрутизации RIP, OSPF, BGP и PIM. Управление производится в режиме командной строки через CLI-интерфейс, напоминающий интерфейс Cisco IOS. Дистрибутив доступен в сборках для архитектуры x86_64 (размер установочного образа 190 МБ).

Основные характеристики дистрибутива:

  • В комплект входят два пакета с реализацией протоколов маршрутизации: FRRouting (форк Quagga) с поддержкой BGP, RIP, RIPng (IPv6), OSPF v2, OSPF v3 (IPv6), ISIS и BIRD с поддержкой BGP, RIP, RIPng (IPv6), OSPF v2 и OSPF v3 (IPv6).
  • Дистрибутив адаптирован для параллельного использования нескольких обособленных таблиц маршрутизации (FIB), привязанных к реальным и виртуальным интерфейсам.
  • Для мониторинга и управления может использоваться SNMP (bsnmp-ucd).
  • Поддерживается экспорт данных о трафике в форме потоков Netflow.
  • Для оценки производительности сети в состав входят утилиты NetPIPE, iperf, netblast, netsend и netreceive. Для накопления статистики о трафике используется ng_netflow.
  • Поддержка создания отказоустойчивых маршрутизаторов из двух серверов – в штатном режиме нагрузка может быть распределена на оба сервера, но в случае сбоя первый маршрутизатор может взять на себя нагрузку второго, а второй – первого (применяется привязка к активному серверу виртуального MAC-адреса). Реализация основана на использовании протоколов VRRP (Virtual Router Redundancy Protocol) и CARP (Common Address Redundancy Protocol), реализованный при помощи пакета ucarp.
  • Поддержка PPTP, PPPoE и L2TP при помощи mpd (Multi-link PPP daemon).
  • Поддержка ограничения пропускной способности при помощи IPFW + dummynet или ng_car.
  • Для Ethernet поддерживается работа с VLAN (802.1q), агрегация линков и использование сетевых мостов (802.1w, Rapid Spanning Tree Protocol).
  • Для мониторинга применяется пакет monit.
  • Поддержка VPN: GRE, GIF, IPSec (IKEv1 и IKEv2 со strongswan), OpenVPN и Wireguard.
  • Поддержка NAT64 с использованием демона tayga и встроенная поддержка туннелей IPv6-to-IPv4.
  • Возможность установки дополнительных программ, используя пакетный менеджер pkgng.
  • Использование в качестве DHCP-сервера dnsmasq, а в качестве агента доставки почты – ssmtp.
  • Поддержка управления через SSH, последовательный порт, telnet и локальную консоль. Для упрощения администрирования в комплект входит утилита tmux (BSD-аналог screen).
  • Загрузочные образы сгенерированы на основе FreeBSD при помощи скриптов из NanoBSD.
  • Для обеспечения обновления системы на Flash-карте создаётся два раздела, при наличии обновлённого образа, новая версия загружается во второй раздел, после перезагрузки этот раздел становится активным, а другой раздел ожидает появления очередного обновления (разделы меняются местами). В случае выявления проблем с установленным обновлением возможен откат на прошлое состояние системы.
  • Для проверки целостности системы для каждого файла сохраняется контрольная сумма sha256.

В новом выпуске:

  • Системное окружение обновлено до ветки FreeBSD 15-HEAD и портов по состоянию на 21 января 2025 года.
  • Обновлены версии FRR 10.2.1, Bird 2.16.1, Strongswan 5.9.14 и ExaBGP 4.2.22, iperf to 2.2.1, iperf3 to 3.18, lldpd to 1.0.18, monit 5.34.4, nrpe 4.1.3, open-vm-tools 12.5, python 3.11.
  • Для работы DHCP вместо isc-dhcp44 и dhcprelya задействован пакет dnsmasq (как вариант для замены рассматривался kea, но он вместе с необходимыми зависимостями требует 300MB места на диске). Пакеты dhcprelya и isc-dhcp44 объявлены устаревшими.
  • Удалён пакет freevrrpd. Для обеспечения отказоустойчивости теперь используется только пакет ucarp, в котором появилась собственная реализацию протокола VRRP, позволяющая обойтись без freevrrpd.
  • Удалён пакет aquantia-atlantic-kmod, не поддерживающий сборку во FreeBSD 15.
  • Ведётся работа по переходу со сборочных скриптов NanoBSD на инструментарий Poudriere-Image. Миграция позволит добавить режим двойной загрузки UEFI/BIOS, сократить время сборки и использовать привычный метод сборки портов.
Release. Ссылка here.