ok let me show you what i have done :
first here is the same topology:
and you are correct as you mentioned “iBGP doesn’t change the next hop IP address when it advertises a route it learns via eBGP” and here is the output confirming this:
and here i can learn that the vise verse is different : eBGP change the next hop ip address when it advertises a route it learns via iBGP which means R02 advertises 184.108.40.206 to R03 and it changed the next hop ip to its ip address which is 192.168.23.1.
lets now configure neighbor 192.168.12.1 next-hop-self under R02 and see what will happen:
all looks good after configuring neighbor 192.168.12.1 next-hop-self under R02 , R02 has changed the next hop to its ip before advertising 220.127.116.11 to R01 and R01 was able to install 18.104.22.168 in its routing table as its knowing how to reach to 22.214.171.124 by using the next hop 192.168.12.2.
- lets try to ping 126.96.36.199 from R01 , and during this i will run debug ip icmp in both R01 and R03 and lets see the outputs:
ping is dropped because in the echo msg R03 dropped the packet beacuse it dosent have route for 192.168.12.1.
so i tried also to ping 188.8.131.52 from R03 and same result i got , R01 dropped echo msg :
i tried to ping again but i changed the source ip in R01 and it works:
i have advertised 192.168.12.0/30 and 192.168.23.0/30 in R02 and then i was able to ping all ips:
and now am ok with all pings:
and in the last i would like to thank you for your time