There are a couple of other problems you can run into with BGP neighbor relationships, which will be quickly mentioned here. The first is that BGP neighbor relationships will not build at all if the AS numbers are configured incorrectly. For instance, two routers with the following configurations will not ever build a neighbor relationship:
hostname routerA !
router bgp 100 neighbor <B> remote-as 100
hostname routerB !
router bgp 200 neighbor <A> remote-as 100
Also, you can set the hello and hold intervals for a BGP router:
router(config-router)#neighbor 10.1.1.1 timers ?
<1-4294967295> Keepalive interval router(config-router)#neighbor 10.1.1.1 timers 100 ?
<1-4294967295> Holdtime router(config-router)#neighbor 10.1.1.1 timers 100 100 ? <cr>
These values are not negotiated between routers. They are calculated depending on the local settings and the value received in the Open message (which only carries the Hold Time). Therefore, they can be set to almost anything you want, as long as they are over 3 seconds. The algorithm used to calculate the timers is such that even if the configuration does not match, both routers (for a given BGP session) will use the same values. As you can tell, this is not really a problem, but a common cause of confusion. Luckily, the output of show ip bgp neighbors includes a line that indicates the timers used for that particular session:
router#show ip bgp neighbor
BGP neighbor is 192.168.1.2, remote AS 1, external link
Last read 00:00:18, hold time is 180, keepalive interval is 60 seconds
Was this article helpful?