Installation
All versions of Pathvector for all supported platforms are available to download from the latest release page.
It is recommended to run Pathvector every 12 hours to update IRR prefix lists and PeeringDB prefix limits.
Adding 0 */12 * * * pathvector generate
to your crontab will update the filters at 12 AM and PM every day.
The only required dependency is bird >= 2.0.7
, but some features require additional dependencies:
- RPKI filtering: RTR server such as gortr or Cloudflare's public RTR server at
rtr.rpki.cloudflare.com:8282
- IRR prefix list generation: bgpq4
- VRRP daemon: keepalived
Package Repository
Pathvector releases >= 5.1.2 are available in the https://repo.pathvector.io package repository. Packages will still
continue to be uploaded to the natesales repo for compatibility with existing
installs, but for security it is recommended to use the repo.pathvector.io for all new installations due to increased
security by GPG signatures. Packages in repo.pathvector.io are signed
with 0983 AC66 7B4F 0B54 F69D
. Note that packages downloaded from GitHub
releases are not signed.
Pathvector on Linux is available for amd64, aarch64, and mips64 as binaries and deb and rpm packages from releases.
Debian (Ubuntu, etc.)
curl https://repo.pathvector.io/pgp.asc > /usr/share/keyrings/pathvector.asc
echo "deb [signed-by=/usr/share/keyrings/pathvector.asc] https://repo.pathvector.io/apt/ stable main" > /etc/apt/sources.list.d/pathvector.list
apt update && apt install -y pathvector
CentOS
yum install -y yum-utils
yum-config-manager --add-repo https://repo.pathvector.io/yum/pathvector.repo
yum install pathvector
VyOS
VyOS is based on Debian, see Debian for more information.
TNSR
TNSR is based on Ubuntu, see Debian for more information. Past TNSR versions were based on CentOS, see Netgate's FAQ for more information.
FreeBSD
Pathvector is available as an amd64/aarch64 binary for FreeBSD from the releases page.
Ubiquiti EdgeOS
Ubiquiti EdgeRouters are based on Debian. Pathvector supports the ER-8-XG, ER-12P, ER-12, ERPro-8, ER-8, ER-6P, ERPoe-5, ER-4, and ERLite-3 routers based on the MIPS64 architecture. See Debian for more information.
Not Supported (MIPS1004Kc): ER-X, ER-X-SFP, ER-10X
Arista EOS
Pathvector can run on Arista switches by installing a SWIX (Switch Extension) file
from releases. First, copy the pathvector-arista.swix
file
to /mnt/flash/
on your switch.
From the EOS CLI:
- Copy the extension to extensions:
copy flash:pathvector-arista.swix extensions:
- Install the extension:
extension pathvector-arista.swix
- Mark the extension to be installed on boot:
copy installed-extensions boot-extensions
- Add the pathvector alias:
alias pathvector "bash pathvector"
- Add Pathvector to scheduler (
optional):
schedule pathvector interval 720 max-log-files 1 command pathvector -c /mnt/flash/pathvector.yml -o /mnt/flash/bird/ -s /run/bird.ctl
- Save changes:
wr mem
Juniper JunOS
Pathvector can run on Juniper devices by installing a signed JunOS extension package. First, download the Pathvector
Juniper release, either to your local machine and SCP it over to the Juniper router/switch, or pull it directly in
the request system software
command by replacing the filename with the URL to the file.
Add the Pathvector extension provider:
set system extensions providers pathvector license-type customer deployment-scope commercial
Install the Pathvector package:
request system software add pathvector-juniper.tgz
or request vmhost software add pathvector-juniper.tgz
Cisco IOx
Pathvector can run on IOx compatible Cisco devices by installing a IOx package release, or directly to the device with ioxclient. See https://developer.cisco.com/docs/iox/#!app-management/application-management for more information.
Nokia Service Router (SR) Linux
Nokia SR Linux is based on CentOS, see CentOS for more information.
Mikrotik RouterOS
Pathvector has experimental RouterOS support. Mikrotik has discontinued this feature. See the RouterOS Container reference for installation instructions for the container package.
To build a Docker image for an alternate architecture:
docker build --output type=tar,dest=pathvector-mikrotik-arm64v8.tar -t pathvector-cron:arm64v8 --build-arg ARCH=arm64v8 -f ../vendorbuild/mikrotik/Dockerfile ..
Building from source
Pathvector can be easily built from source for some, but not all, of the many supported Go platforms.
For example, to build Pathvector for M1 Macs:
git clone https://github.com/natesales/pathvector && cd pathvector
GOOS=darwin GOARCH=arm64 go build