Potential bug: Inconsistent next-hop resolution in multi-homed same-subnet setup
Alexander Zubkov
green at qrator.net
Sun Jan 11 18:06:04 CET 2026
Hi Lui,
Does cloudflare_tpix_210440_v4 bgp protocol use table_tpix_210440_v4 as IGP
table also? It might be better to have an overview of your config file.
Regards,
Alexander
On Sun, Jan 11, 2026 at 3:14 PM HaoRanLiu <mcyouyousever at gmail.com> wrote:
> Hello,
>
> I am writing to report a potential issue (or seek clarification on
> resolution logic) in BIRD 2.17.1 regarding how next hops are resolved
> when multiple interfaces exist in the same subnet.
>
> [ Environment ]
> - BIRD version: 2.17.1
> - OS: Linux
> - Setup: Multiple physical interfaces (ens4, ens23, ens2) are configured
> with IP addresses in the same prefix: 203.163.222.0/23.
>
> [ Observation ]
> Within a specific routing table (table_tpix_210440_v4), BIRD's recursive
> resolution for a BGP route does not seem to honor the "Direct/Device"
> route present in that same table.
>
> [ Evidence ]
>
> 1. The Direct Route in table "table_tpix_210440_v4" points to ens4:
>
> bird> show route for 203.163.222.39/32 table table_tpix_210440_v4 all
> Table table_tpix_210440_v4:
> 203.163.222.0/23 unicast [direct_tpix_210440 2026-01-11 21:10:29] *
> (240)
> dev ens4
> Type: device univ
>
> 2. However, a BGP route in the SAME table resolves via ens23:
>
> bird> show route for 1.1.1.1 table table_tpix_210440_v4 all
> Table table_tpix_210440_v4:
> 1.1.1.0/24 unicast [cloudflare_tpix_210440_v4 2026-01-11
> 21:33:43] * (100) [AS13335i]
> via 203.163.222.39 on ens23
> Type: BGP univ
> BGP.origin: IGP
> BGP.as_path: 13335
> BGP.next_hop: 203.163.222.39
> ...
>
> [ System Network State ]
> The OS kernel shows three interfaces in this subnet:
>
> # ip route show 203.163.222.0/23
> 203.163.222.0/23 dev ens23 proto kernel scope link src 203.163.223.49
> 203.163.222.0/23 dev ens2 proto kernel scope link src 203.163.223.50
> 203.163.222.0/23 dev ens4 proto kernel scope link src 203.163.223.48
>
> [ Questions ]
> 1. Is this a bug in the recursive resolution logic? It appears BIRD
> might be picking an interface from the global interface list (perhaps
> the first one UP) rather than following the best route available in the
> specific table being queried.
> 2. Why does the BGP route's "via" field not honor the interface (ens4)
> defined by the device route in the same table?
> 3. Is there any configuration to force BIRD to resolve next hops
> strictly based on the current table's best path in such multi-homed
> scenarios?
>
> Any insights would be appreciated.
>
> Best regards,
> Liu HaoRan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20260111/5f2385d2/attachment.htm>
More information about the Bird-users
mailing list