V6Direct · Pathvector
Example Pathvector configuration for V6Direct
This page shows a minimal Pathvector configuration to connect your ASN to V6Direct (AS213413) over an IPv6 tunnel and announce your prefixes using BIRD2 as the data plane.
Assumptions
- You already have a working tunnel to a V6Direct PoP.
- Your tunnel link /64:
2001:db8:100::/64(you:2001:db8:100::1, V6Direct:2001:db8:100::2). - Your ASN:
65001, V6Direct ASN:213413.[web:2] - Your routed prefix:
2001:db8:1234::/48.
Minimal pathvector.yml
# /etc/pathvector.yml
asn: 65001
router-id: 192.168.0.100
source4: 192.168.0.100
source6: 2001:db8:100::1
kernel:
learn: true
export: false
default-route: false
keep-filtered: true
prefixes:
- 2001:db8:1234::/48
# ============================================================================
# TEMPLATES
# ============================================================================
templates:
upstream:
description: "Primary upstream"
import: true
export: true
local-pref: 200
filter-rpki: true
filter-bogon-routes: true
filter-bogon-asns: true
filter-prefix-length: true
filter-transit-asns: false
announce-originated: true
announce:
- "65001:0:13"
- "65001:0:14"
add-on-import:
- "65001:0:11"
add-on-export:
- "65001:0:10"
peering:
description: "IXP / Private Peering"
import: true
export: true
local-pref: 150
filter-rpki: true
filter-bogon-routes: true
filter-bogon-asns: true
filter-prefix-length: true
filter-transit-asns: true
announce-originated: true
announce:
- "65001:0:14"
add-on-import:
- "65001:0:13"
add-on-export:
- "65001:0:10"
downstream-fulltable:
description: "Customer – Full Table"
import: true
export: true
local-pref: 250
filter-rpki: true
filter-bogon-routes: true
filter-bogon-asns: true
filter-prefix-length: true
filter-transit-asns: true
announce-all: true
announce-originated: true
announce-default: false
add-on-import:
- "65001:0:14"
downstream-default:
description: "Customer – Default Only"
import: true
export: true
local-pref: 250
filter-rpki: true
filter-bogon-routes: true
filter-bogon-asns: true
filter-transit-asns: true
announce-default: true
announce-originated: true
add-on-import:
- "65001:0:14"
# ============================================================================
# PEERS
# ============================================================================
peers:
V6D_UP:
asn: 213413
template: upstream
listen6: 2001:db8:100::1
import: true
export: true
import-limit6: 9999999
neighbors:
- 2001:db8:100::2
This keeps policies simple: import everything from V6Direct and export all your prefixes tagged in prefixes.
Generate and load BIRD config
# Generate BIRD config from pathvector.yml
sudo pathvector generate
# Check generated config
ls /etc/bird/
# Check if it's running
sudo pathvector s p
verify that your BGP session to V6Direct is established and your prefix is announced.
Optional: add RPKI and IRR
Pathvector can use RPKI and IRR for route filtering. You can point it to an RTR server such as Cloudflare’s public RPKI server and a bgpq4 IRR client for stricter routing policies.