iBGP and Next Hop
I have the hardest issue with next-hop-self. This is a very crucial part of BGP especially when you have iBGP peerings. If a BGP neighbor cannot get to the Next Hop it will NEVER put the route into the routing table. While there is no automatic rule to this, generally when you have an eBGP peer and the Router will be advertising routes to iBGP neighbors, it might be a good idea to determine if the next-hop-self is needed. I have missed this on several practice labs. So when you are working with more then one hop between iBGP neighbors make sure you look at the Next Hop and topology and determine if Next-hop-self is needed. This is applied towards the applicable iBGP neighbors and not towards eBGP neighbors.