If you mean Bird Internet Routing Daemon (BIRD) and you want it to announce a custom IP prefix over BGP, the general process is:
- Ensure the IP prefix belongs to you (or that you have authorization from the owner). Advertising IP space you don't control can cause routing problems and is typically filtered by upstream providers.
- Configure the prefix in BIRD.
- Make the route exist in BIRD's routing table (either as a static route or learned from another protocol).
- Export the route to your BGP neighbor.
Here's a simple example.
1. Define a static route
If you want to announce 203.0.113.0/24:
protocol static {
ipv4;
route 203.0.113.0/24 blackhole;
}
Using blackhole creates the route locally so BIRD can advertise it.
2. Configure your BGP session
protocol bgp upstream {
local as 65001;
neighbor 198.51.100.1 as 65000;
ipv4 {
import none;
export where net = 203.0.113.0/24;
};
}
Or export multiple prefixes:
filter export_filter {
if net ~ [
203.0.113.0/24,
198.51.100.0/24
] then accept;
reject;
}
protocol bgp upstream {
local as 65001;
neighbor 198.51.100.1 as 65000;
ipv4 {
import none;
export filter export_filter;
};
}
3. Reload BIRD
birdc configure
4. Verify
Show the route:
birdc show route
Show what will be exported:
birdc show route export upstream
Check BGP status:
birdc show protocols all
Common reasons a prefix isn't announced
- The route doesn't exist in BIRD's routing table.
- The export filter rejects it.
- The BGP session isn't established.
- Your upstream filters the prefix (for example, because of IRR/RPKI policies or minimum prefix-length policies).
If you can share:
- BIRD 1.x or 2.x
- IPv4 or IPv6
- Your current
protocol bgp configuration
- The prefix you want to announce (or an example)
I can help write the exact configuration.