Looking Glass Status PeeringDB AS199746
Pathvector

Example Pathvector configuration for V6Direct

This page shows a minimal Pathvector configuration to connect your ASN to V6Direct (AS199746) over an IPv6 tunnel and announce your prefixes using BIRD2 as the data plane.

Verify before deploying: Pathvector's option names are strict and version-specific. Some keys below (e.g. listen6, announce, add-on-import, add-on-export) may differ in your Pathvector version. Always cross-check against the official reference at pathvector.io/docs/configuration and run pathvector generate on a test node first.

Assumptions

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: 199746
    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.

Sane max-prefix: import-limit6: 9999999 effectively disables max-prefix protection. A full IPv6 table is currently around 200k routes, so a value like 250000 still protects you against a route leak while leaving headroom.