Olivier Cochard-Labbé, the creator of the FreeNAS distribution, presented the release of the specialized BSD Router Project 1.994 (BSDRP), notable for updating the codebase to the in-development branch of FreeBSD 15. This distribution is intended for creating compact software routers that support RIP, OSPF, BGP, and PIM routing protocols. Management is done via a command-line interface reminiscent of Cisco IOS. The distribution is available in builds for the x86_64 architecture (install image size: 190 MB).
Key features of the distribution:
- Included are two packages implementing routing protocols: FRRouting (a fork of Quagga) supporting BGP, RIP, RIPng (IPv6), OSPF v2, OSPF v3 (IPv6), ISIS, and BIRD supporting BGP, RIP, RIPng (IPv6), OSPF v2, and OSPF v3 (IPv6).
- The distribution is adapted for the parallel use of multiple isolated routing tables (FIB) tied to real and virtual interfaces.
- SNMP (bsnmp-ucd) can be used for monitoring and management.
- Export of traffic data in the form of Netflow streams is supported.
- To assess network performance, utilities such as NetPIPE, iperf, netblast, netsend, and netreceive are included. For accumulating traffic statistics, ng_netflow is used.
- Support for creating redundant routers from two servers — in normal operation, the load can be balanced between both servers, but in the event of a failure, the first router can take over the load of the second, and the second can take over the first (this uses active server binding with a virtual MAC address). The implementation is based on using VRRP (Virtual Router Redundancy Protocol) and CARP (Common Address Redundancy Protocol), achieved by means of the ucarp package.
- Support for PPTP, PPPoE, and L2TP through mpd (Multi-link PPP daemon).
- Support for bandwidth limitation through IPFW + dummynet or ng_car.
- For Ethernet, support includes working with VLAN (802.1q), link aggregation, and the use of network bridges (802.1w, Rapid Spanning Tree Protocol).
- Monitoring is done using the monit package.
- Support VPN: GRE, GIF, IPSec (IKEv1 and IKEv2 with strongswan), OpenVPN, and Wireguard.
- Support for NAT64 using the tayga daemon and built-in support for IPv6-to-IPv4 tunnels.
- The ability to install additional programs using the pkgng package manager.
- Using dnsmasq as a DHCP server and ssmtp as a mail delivery agent.
- Support for management via SSH, serial port, telnet, and local console. To simplify administration, the package includes the tmux utility (BSD equivalent of screen).
- Boot images are generated based on FreeBSD using scripts from NanoBSD.
- The system update mechanism is based on creating two partitions on the Flash drive: the new version is loaded into the second partition, which becomes active after a reboot, while the other partition waits for the next update (the partitions switch places). If issues are detected with the installed update, it is possible to roll back to the previous state of the system.
- To check the integrity of the system, a sha256 checksum is saved for each file.
In the new release:
- The system environment has been updated to the FreeBSD 15-HEAD branch and ports as of January 21, 2025.
- Updated versions of FRR 10.2.1, Bird 2.16.1, Strongswan 5.9.14, and 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.
- For DHCP operation, the dnsmasq package is used instead of isc-dhcp44 and dhcprelya (kea was considered as an alternative, but it, along with necessary dependencies, requires 300MB of disk space). The dhcprelya and isc-dhcp44 packages have been deprecated.
- The freevrrpd package has been removed. Redundancy is now achieved solely through the ucarp package, which has its own implementation of the VRRP protocol, allowing for the absence of freevrrpd.
- The aquantia-atlantic-kmod package has been removed, as it does not support building on FreeBSD 15.
- Work is ongoing to transition from NanoBSD build scripts to the Poudriere-Image tool. This migration will allow the addition of a dual-boot mode for UEFI/BIOS, reduce build times, and utilize a familiar method for building ports.
Source: opennet.ru
