Configuring BGP with DartNode using BIRD
Overview
DartNode offers customer BGP peering for advanced routing control, multi-homing, and DDoS-resilient traffic engineering. This guide explains how to establish a BGP session with DartNode using BIRD on Linux.
DartNode operates AS 399646 and supports both IPv4 and IPv6 customer peering.
Prerequisites
Before starting, ensure you have:
Your own ASN
At least one public IPv4 and/or IPv6 address assigned by DartNode
A Linux server or router with:
Root access
Static IP configuration
BIRD 2.x installed
(Optional) BGP MD5 password if provided by DartNode
DartNode BGP Peering Details
| Item | Value |
|---|---|
| DartNode ASN | 399646 |
| Session Type | eBGP |
| IPv4 Support | Yes |
| IPv6 Support | Yes |
| Route Types | Default, Full, or Partial (per agreement) |
| Authentication | Optional MD5 |
| Graceful Restart | Enabled |
DartNode automatically applies bogon filtering and sanity checks on all customer sessions.
Step 1: Install BIRD
Debian / Ubuntu
apt update apt install bird2
RHEL / Rocky / Alma
dnf install bird
Verify:
bird --version
Step 2: Enable IP Forwarding
sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv6.conf.all.forwarding=1
Persist:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
Step 3: Base BIRD Configuration
Edit:
nano /etc/bird/bird.conf
Global Settings
router id 203.0.113.10; # Your IPv4 address log syslog all; protocol device { } protocol direct { ipv4; ipv6; }
Step 4: Define Prefix Filters
Only advertise prefixes you are authorized to announce.
filter EXPORT_V4 { if net ~ [203.0.113.0/24] then accept; reject; } filter EXPORT_V6 { if net ~ [2001:db8:1234::/48] then accept; reject; }
Step 5: Configure IPv4 BGP Session
protocol bgp dartnode_v4 { local as 64500; # Your ASN neighbor 38.134.40.1 as 399646; # DartNode IPv4 peer source address 203.0.113.10; ipv4 { import all; export filter EXPORT_V4; }; graceful restart on; # Optional MD5 # password "your-md5-password"; }
Step 6: Configure IPv6 BGP Session (Optional)
protocol bgp dartnode_v6 { local as 64500; neighbor 2602:f9f3:0:2::1 as 399646; source address 2001:db8:1234::1; ipv6 { import all; export filter EXPORT_V6; }; graceful restart on; # Optional MD5 # password "your-md5-password"; }
Step 7: Start and Verify BIRD
systemctl enable bird systemctl restart bird
Check session status:
birdc show protocols
Expected:
dartnode_v4 BGP Established dartnode_v6 BGP Established
View received routes:
birdc show route protocol dartnode_v4
Common Issues
| Issue | Resolution |
|---|---|
| Session stuck in Idle | Verify ASN, IPs, firewall |
| No routes received | Confirm export type (default vs full) |
| Routes rejected | Ensure only authorized prefixes |
| IPv6 not coming up | Verify source address binding |
Security & Policy Notes
DartNode enforces bogon filtering
Only prefixes registered to your ASN may be advertised
Excessive route flapping may trigger dampening
Max-prefix limits may apply
Need Help?
Open a support ticket with:
Your ASN
Peering IPs (IPv4/IPv6)
Prefixes you plan to announce
Desired route type (default/full)