Lets do a little BGP 101 review, shall we?
We know that iBGP passes the next hop information learned through eBGP to its iBGP neighbor. So, we know that if the iBGP neighbor does not have a route to the eBGP next hop, then it wont place the route in the BGP table. We are told that you must run an IGP for the iBGP neighbor to learn about that next hop.
But that sounds incorrect, now that I actually have to make a decision as to whether to deploy the next hop self command.
I have 2 internet routers running eBGP to their ISPs and iBGP between each other. If I dont have the next hop self command configured, each iBGP neighbor will have the eBGP ISP next hop as their next hop, but you dont have to be running an IGP for them to learn about how to reach that next hop.
Each router will advertise that directly connected subnet through iBGP.\\So, what Im saying is that if router 1 loses its eBGP connection to the ISP, it will learn all the internet routes through the iBGP connection and have router 2's eBGP next hop as its next hop. But that is no big deal because it will know how to get to it because router 2 will advertise a route to it through iBGP.