Hello,

I think our scenario does not contradicts with BGP standard (RFC 4271 5.1.3).

Assuming a Bird RS with 2 interfaces:
-------------------------------------------------------------------------------------------
192.168.0.1/24 eth0 <--> BIRD RS<--> eth1 10.0.0.1/24
-------------------------------------------------------------------------------------------

We would like to manually set hext hop(192.168.0.50) of certain routes advertised to BGP neighbors in the segment 192.168.0.0/24.
(There is no case that a next hop of 192.168.0.50 would be advertised to a peer in 10.0.0.0/24)

Having a setup with a single Bird interface everything works fine:
-------------------------------------------------------------------------------------------
BIRD RS <-->  eth0 192.168.0.1/24 | eth0 alias 10.0.0.1/24
-------------------------------------------------------------------------------------------

Best~

On 01/24/2013 10:27 PM, Ondrej Zajicek wrote:
On Wed, Jan 23, 2013 at 01:33:16PM +0200, Javor Kliachev wrote:
   Hello,

   We're using BIRD on Linux Debian 6 as a BGP route server with two subnets.
   We would also like to manually change the next hop of certain prefixes and
   peers.
   When both subnets are configured at the single physical interface or in
   alias
   mode everything works fine. As soon as we configure any of the subnet at a
   vlan
   interface the next hop manipulation fails and the ip address of the RS is
   set instead.

   Any ideas what is the reason for this behaviour?
Hello

The reason is BGP standard (RFC 4271 5.1.3). The next hop modification
in the export filter is processed and after that standard BGP processing
of next hop is done, which, in this case, replace the next hop with
local address because conditions that would allow to send supplied one
are not met (which is essentially matching iface based on subnet check
for single-hop eBGP).



--
---
Javor Kliachev
IP engineer

Neterra Ltd.
Telephone: +359 2 975 16 16
Fax: +359 2 975 34 36
Mobile: +359 885 988 495
www.neterra.net