I am trying to understand why I am seeing the behavior I am seeing with the small OSPF Lab I have setup. R2 and R3 are both redistributing EIGRP routes into ospf. However, on R2 I am setting the forwarding address to a none 0.0.0.0 value by enabling ospf on the eigrp link on R2 which sets the forwarding address to 192.168.234.4. On R3 it’s is setting the forwarding address to 0.0.0.0 R2 has a higher router-id of 200.200.200.200 and R3 has a router-id of 192.168.234.3. When I look at the ospf database for external networks and look specifically at the 4.4.4.4/32 network the LSA coming from R3 has the routing bit set so R1 is installing that route into the routing table. I would think that the routing bit would be set for the LSA coming from R2 since it has a higher router id. Can someone please explain why I am seeing this behavior. Below is the diagram. Please let me know what output you would like to see from the routers. Thank you
Sorry for the late reply but I think I know why this is occurring. The path selection for zero and non-zero forward address works a bit different, it’s not the router ID that makes the difference here. Take a look at the RFC, section 16.4:
It seems that when the forward address is 0.0.0.0, OSPF looks for the metric to reach the ASBR. When we do have a forward address, we look for the total cost to reach the forward address.
I did a little experiment to verify this…I used the same topology as you but my interfaces are all gigabit links so the default cost for all interfaces is 1.
When R2/R3 redistribute 4.4.4.4 in OSPF, their forward addresses are both 0.0.0.0 so R1 installs two entries in the routing table (cost 20).
Once you advertise 192.168.234.0/24 on R3, it will set the forward address to 192.168.234.4.
R1 now installs the path through R2 (zero forward address) in its routing table because the cost to reach R2 (20 + 1) is lower than to reach forward address 192.168.123.4 (20 + 1 + 1 = 22).
On R1, I changed the cost of the interface that connects to R2 to 2.
R1 now installs both paths for 4.4.4.4 in its routing table because both paths have a cost of 22. Through R2 it's 2 +20 = 22 and through R3 it's 1 + 20 + 1 = 22.