Hello,

I'm having hard time figuring out what's wrong with my or my upstream
setup. I have set up 2 BGP routers, each with its own session to the
same upstream BGP router. Primary router has pretty much default
settings for upstream router and IBGP session with secondary router.
Secondary router has prepend-self and prepend-neighbor so that it's used
only when primary is down. Primary router had IP address 159.148.214.102
and secondary router has 159.148.214.99, so BGP ID value of secondary
router was lower. The problem is that up until I changed primary routers
IP address to 159.148.214.98 (lower than secondary), my upstream would
always choose secondary router as correct path. According to Stuart's
post on this mailing list, aspath is much more important in correct path
decision than BGP ID:
  http://www.mail-archive.com/misc@openbsd.org/msg31183.html

Since I've changed IP address, everything seems to work ok, but I'm
worried my upstream could be ignoring my BGP settings and some traffic
would still be forwarded to wrong router. They claim they've checked
everything and configuration on their side is correct.

Primary router is running OpenBSD 4.6-stable, secondary router is
4.8-stable. I know I should be running 4.9, but from what I checked
nothing has changed regarding OpenBGDP path decision since then.

Configuration of primary BGP router is:

#macros
latnet="159.148.214.101"
core2b="159.148.214.99"

# global configuration
AS 21178
router-id 159.148.214.98
log updates
holdtime 30
network 194.143.152.0/23

# neighbors and peers
group "peering AS21178" {
        remote-as 2588
        neighbor $latnet {
                descr   "latnet"
                announce all
                tcp md5sig password xxxxxxxxxx 
                demote carp
        }
}

group IBGP {
        remote-as 21178
        neighbor $core2b {
                descr           "core2b"
                announce        all
                tcp md5sig      password yyyyyyyyyyyy 
        }
}
#(default filter rules follow)


Secondary BGP router configuration:

# macros
latnet="159.148.214.101"
core2a="159.148.214.98"

# global configuration
AS 21178
router-id 159.148.214.99
log updates
holdtime 30
network 194.143.152.0/23

# neighbors and peers
group "peering AS21178" {
        remote-as 2588
        neighbor $latnet {
                descr   "latnet"
                announce all 
                tcp md5sig password xxxxxxxxxxxxxxxxx 
                set prepend-self 3
                set prepend-neighbor 3
                demote carp
        }
}

group IBGP {
        remote-as 21178
        neighbor $core2a {
                descr   "core2a"
                announce all
                tcp md5sig password yyyyyyyyyyyyyyy 
        }
}
#(default filter rules follow)


I know "announce all" for EBGP connections is not default, but I've
tried changing it to self, result was the same, however. It's set to
"all" because I plan to add couple other AS to this router soon.

What am I missing here?


Thanks,
Peter

Reply via email to