Hello Raghu
According to Rene’s lesson on the Introduction to DMVPN, he states that:
With phase 1 we use NHRP so that spokes can register themselves with the hub. The hub is the only router that is using a multipoint GRE interface, all spokes will be using regular point-to-point GRE tunnel interfaces. This means that there will be no direct spoke-to-spoke communication, all traffic has to go through the hub!
What makes phase 1 do this is the way the GRE tunnel is created at the spokes. No change in routing or in IPv4 or IPv6 can change that.
What is the role of BGP? To advertise networks. It won’t change the way DMVPN operates. Even creating IPv4 and IPv6 tunnels will still make traffic go through the hub.
So what have you done in your configuration? You’ve simply overriden a loop prevention mechanism of BGP which simply states that “a BGP route will not be installed via eBGP if the local router’s AS is in the path attribute”. In other words, spoke 1 sent a route with its own AS 65023, it went to the hub, and then with eBGP it was advertised to spoke 2. But spoke 2’s AS is 65203, which is the same as the advertised route, thus the path was not installed. Communication is still possible due to the default route.
You have overridden this mechanism by using the allowas-in
keyword. Thus, the routes to the other spokes appear in the local routing table. However, if you look at the next hop IP in the routing table, you will see that it still goes through the hub.
You can find out more about the allowas-in
keyword in the following links:
I hope this has been helpful!
Laz