Created
April 13, 2026 23:47
-
-
Save amanjuman/6a4a9588c58ee74b359d91cd6cd85bd9 to your computer and use it in GitHub Desktop.
Pathvector Configuration for Transit BGP Server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Your ASN Number | |
| asn: YOUR_ASN | |
| # BIRD router ID | |
| router-id: X.X.X.X | |
| # RIRs to query for IRR filtering | |
| bgpq-args: -S AFRINIC,APNIC,ARIN,LACNIC,RIPE | |
| # Main IRR whois server | |
| irr-server: rr.ntt.net | |
| # Timeout for IRR lookups | |
| irr-query-timeout: 30 | |
| # RPKI RTR validator | |
| rtr-server: rtr.rpki.cloudflare.com:8282 | |
| # Auto-generate configs from PeeringDB | |
| peeringdb-api-key: "REDUCTED" | |
| # PeeringDB API Timeout | |
| peeringdb-query-timeout: 30 | |
| # Send default route to peer | |
| default-route: false | |
| # Originate default route | |
| #accept-default: true | |
| # Allows multiple ECMP paths | |
| merge-paths: true | |
| # Keep filtered routes (useful for debugging) | |
| keep-filtered: false | |
| kernel: | |
| learn: false # This keeps the server from learning routes FROM the system | |
| export: true # This allows BIRD to tell the system how to REACH your MikroTik | |
| # For upstream/transit/edge router | |
| srd-communities: | |
| - "YOUR_ASN:0:16" # own prefixes — tagged on iBGP import | |
| - "YOUR_ASN:0:15" # downstream customer routes | |
| # Communities Documentation | |
| # YOUR_ASN:0:12 → Learned from upstream | |
| # YOUR_ASN:0:13 → Learned from route server | |
| # YOUR_ASN:0:14 → Learned from peer | |
| # YOUR_ASN:0:15 → Learned from downstream (customer routes) | |
| # YOUR_ASN:0:16 → Own prefixes (your allocations) | |
| templates: | |
| upstream: | |
| local-pref: 80 | |
| allow-local-as: false | |
| add-on-import: ["YOUR_ASN:0:12"] | |
| announce: ["YOUR_ASN:0:15", "YOUR_ASN:0:16"] | |
| remove-all-communities: YOUR_ASN | |
| import-limit4: 2000000 | |
| import-limit6: 1000000 | |
| filter-irr: false | |
| filter-transit-asns: false | |
| enforce-first-as: true | |
| enforce-peer-nexthop: true | |
| peer: | |
| local-pref: 100 | |
| add-on-import: ["YOUR_ASN:0:14"] | |
| announce: ["YOUR_ASN:0:15", "YOUR_ASN:0:16"] | |
| remove-all-communities: YOUR_ASN | |
| filter-irr: true | |
| filter-transit-asns: true | |
| auto-import-limits: true | |
| auto-as-set: true | |
| enforce-first-as: true | |
| enforce-peer-nexthop: true | |
| next-hop-self: true | |
| routeserver: | |
| local-pref: 90 | |
| add-on-import: ["YOUR_ASN:0:13"] | |
| announce: ["YOUR_ASN:0:15", "YOUR_ASN:0:16"] | |
| remove-all-communities: YOUR_ASN | |
| filter-irr: true | |
| filter-transit-asns: true | |
| auto-import-limits: true | |
| auto-as-set: true | |
| enforce-first-as: false | |
| enforce-peer-nexthop: false | |
| next-hop-self: true | |
| ibgp: | |
| local-pref: 150 | |
| allow-local-as: true | |
| add-on-import: ["YOUR_ASN:0:16"] | |
| announce: ["YOUR_ASN:0:12", "YOUR_ASN:0:13", "YOUR_ASN:0:14", "YOUR_ASN:0:15", "YOUR_ASN:0:16"] | |
| remove-all-communities: YOUR_ASN | |
| enforce-first-as: false | |
| enforce-peer-nexthop: false | |
| filter-rpki: false | |
| filter-irr: false | |
| next-hop-self: true | |
| import-limit4: 10000 | |
| import-limit6: 5000 | |
| downstream: | |
| local-pref: 200 | |
| add-on-import: ["YOUR_ASN:0:15"] | |
| announce: ["YOUR_ASN:0:12", "YOUR_ASN:0:13", "YOUR_ASN:0:14", "YOUR_ASN:0:16"] | |
| remove-all-communities: YOUR_ASN | |
| announce-default: true | |
| filter-irr: true | |
| filter-transit-asns: true | |
| auto-import-limits: true | |
| auto-as-set: true | |
| next-hop-self: true | |
| import-limit4: 500000 | |
| import-limit6: 250000 | |
| allow-blackhole-community: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment