Installation on FreeBSD 14.3
What the server needs, and how to prepare FreeBSD 14.3 to receive it. The gateway software itself is installed by NetvynX during onboarding — this page covers everything you do before that, so the box is ready when we arrive.
Hardware requirements
Sizing is per deployment — these are the floors. Peak concurrent sessions, busy-hour packet rate and which services you enable all move the numbers, and we size against them before you buy anything.
CPU x86-64, 16 cores minimum, single socket preferred
AVX2 required; constant TSC and no C-state overrides
Memory 32 GB minimum; 64 GB+ for large session or NAT tables
all DIMM channels populated, single NUMA node preferred
NICs 2 minimum (core-facing + subscriber-facing)
Intel or Mellanox recommended; ask us before buying
Management 1 separate NIC, never one of the data ports
Disk 120 GB SSD; more if compliance logs are kept locally
BIOS VT-d / IOMMU enabled, hyper-threading either way
Supported release
FreeBSD 14.3 is the primary development and soak platform and the reference target for validation runs. Install the release version rather than STABLE or CURRENT — the kernel modules the data plane needs are built against a specific kernel, and a moving target breaks that.
Release FreeBSD 14.3-RELEASE, amd64 Profile server, no desktop, no jails required Filesystem ZFS or UFS — either is fine Swap equal to RAM, or 16 GB, whichever is smaller
Installing the OS
A plain server install. Take the defaults unless noted. Install the source tree — the kernel modules are built against it, and adding it later means a reboot at an inconvenient moment.
# in bsdinstall, select these distribution sets: # base kernel src # after first boot pkg update && pkg upgrade -y freebsd-update fetch install
Management network
Give the box a static management address on an interface that is not one of the data ports. The data NICs are handed to the fast path during install and will disappear from the OS — if management is on one of them, you lose the box at that moment.
# /etc/rc.conf
hostname="bng01.example.net"
ifconfig_em0="inet 198.51.100.20 netmask 255.255.255.0"
defaultrouter="198.51.100.1"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
Time synchronisation
Not optional. Compliance records are only useful if their timestamps hold up, and a lawful-intercept request answered from a clock that drifted is worth nothing. Point NTP at a source you trust and confirm it is stepping before the gateway carries traffic.
service ntpd start
ntpq -p # confirm a peer is selected (*)
date
Access we need
Bring-up is done with your team, not behind your back. We need SSH to the management address, an account that can escalate, and out-of-band console access — IPMI, iDRAC, iLO or a serial concentrator. The console matters: binding the data NICs is exactly the step that can cut a network path, and recovering from that without a console means a site visit.
Readiness checklist
When these are all true, the box is ready for us. Send the output of the last three with your handover note and the first session usually completes in under an hour.
freebsd-version # 14.3-RELEASE sysctl hw.ncpu hw.physmem # cores and RAM pciconf -lv | grep -B3 Ethernet # adapter inventory