The SECOND most common cause is an ACCESS-LIST that does not explicitly permit TCP port 179 (BGP). Access lists on Cisco routers are built to perform what is called implicit deny. That means that unless you have an explicit permit statement for the protocol or you have a global 'permit ip any any' , BGP gets blocked by default. What makes this tricky is that when you remove the ACL, BGP seems to be working. When you add the ACL, it STILL seems to be working. BGP has a timeout. When you apply the access list, BGP must first time out the connection before it will show the session as down, so for the first three minutes after you add the access list, it appears to still be up, but you will see no routes.