I'd like to pass a gift along that my Dad gave me. The gift of the "7Ps". What are the 7Ps and what do they have to do with Router IDs?
The "7 Ps"
The 7Ps apparently started off (according to wikipedia) as a British Military adage. I didn't, actually, know that until I started writing this blog today and googled "prior proper preparation". Voila! Wikipedia was the first hit - 7 Ps (military adage). I was raised one of the varieties of the 7Ps: "Prior Proper Preparation Prevents Poor Perfomance". Yea, I know that is only 6 "Ps" and not 7. I'll let you read the wikipedia article and do the scavenger hunt for my "missing P".
A "router ID" is a "router identification" and is commonly used by many protocols - BGP, EIGRP, OSPF, and MPLS to name a few. What happens if 2 routers in one of these environments has a duplicate router ID? "POOR PERFORMANCE!"
"Duplicate Router IDs Won't Happen to Us!"
I hear this a lot. "It's okay", I'm told, "We just let it default to Loopback0 and it is unique for every router, so we will never have duplicate router ids happen to us". I have to say I find that word "never" very entertaining. But, I digress.
There are two common situations where the duplicate router id will hit even these people: "Anycast" RPs and Migrations.
What is "Anycast RP?"
In Anycast RP, two or more RPs are configured with the same IP address on loopback interfaces.
Wait! What did that say? Did that say that "two or more RPs are configured with the same IP address on loopback interfaces"? Yup! It most certainly did. So now what about that perfect "uniqueness" of Loopbacks? So riddle me this. What happens if the IP address that y'all decide on is higher than the loopback 0 in your box? Truth? Nothing. At first. Which can also make this much much more difficult to troubleshoot. Cause it may be quite awhile before this bites you. Why? The BGP, EIGRP, OSPF, or MPLS already has a router-id assigned to the process. Creating a new one that happens to be higher isn't going to preempt your already existing router-id. Just think of it as a nice little boobytrap all ready to be triggered to cause "poor performance" due to lack of "prior proper preparation".
So say that you have an existing router and you are going to migrate to a new router on the same segment. Your plan is to add the new router to the network and then slowly phase out the other one. When the router you are phasing out is doing iBGP with its loopback it is very common to think that you can just give this loopback to the "new" router and stop the "old" router from advertising it's loopback so it "won't matter". Don't do this. You're just setting up the boobytrap again for poor perfomance as long as the "old" router is still up and running.
"Configure with Intent"
I love this expression. A friend of mine, Russ White, used this phrase years ago during a CiscoLive techtorial I was attending. What he was talking about was the concept of "using your configs to make your design intention clears".
So I ask you, "What are your "design intentions" in reference to what router-id BGP, EIGRP, OSPF or MPLS should use in each of your routers"?
Next question. "Why aren't you "configuring with intent" and hard-coding your design intention into the configurations and instructions for your routers"?
Remember those 7 Ps -- "Prior Proper Preparation Prevents Poor Perfomance". Oooops. I keep seeming to miss putting that 7th P in there.