BGP : bgp deterministic-med and bgp always-compare-med

Today I am going to discuss about some of the BGP commands, starting from one of the common parameters used by service providers to route the traffic over the specific path

The MED is one of the parameters that is considered when selecting the best path among many alternative paths. The path with a lower MED is preferred over a path with a higher MED.

By default, during the best-path selection process, MED comparison is done only among paths from the same autonomous system. This command changes the default behavior by allowing comparison of MEDs among paths regardless of the autonomous system from which the paths are received.

Fig 1.1- BGP MED Parameter

“bgp always-compare-med”
You heard about this command but some of you know about the functionality of this command. Let’s talk about “bgp always-compare-med”

When you want to allow the comparison of the Multi Exit Discriminator (MED) for paths from neighbors in different autonomous systems, use the bgp always-compare-med router configuration command.

The important thing to note here is “different autonomous systems”

Configuring “bgp always-compare-med”
R1(config)#router bgp 500
R1(config-router)#bgp always-compare-med

“bgp deterministic-med”
The other command you heard about is “bgp deterministic-med” , When using the “bgp deterministic-med”  comparison is made across all routes received from the same autonomous system.

The important thing to note here is “same autonomous system”

Configuring “bgp deterministic-med
R1(config)#router bgp 600
R1(config-router)# bgp deterministic-med

So, let’s understand if “bgp deterministic-med” Enabled

Group1Entry1: ASPATH 1, MED 500, internal, IGP metric to NEXT_HOP 10 >>>> AS500
Group1Entry 2: ASPATH 2, MED 550, internal, IGP metric to NEXT_HOP 5>>>>AS500
Group2Entry3: ASPATH 1, MED 600, external >>>AS600

So, in group 1, there are two entries and the best path is entry 1, Why ? because of lower MED value.
In group 2, we have only one entry, so it is best path in another group

So now the question, are these two entries which is best from each group compared ? The answer is no because “bgp deterministic-med” only compare with in same AS number. So how can these be compared then ? As we discuss above to compare with two different AS you need “bgp always-compare-med”

Ok, let’s understand one more thing, if we disable bgp deterministic-med, the order in which routes are received may impact MED-based best path decisions. This can occur when the same route is received from multiple ASs or confederation sub-ASs, with the same path length, but different MEDs.

“bgp bestpath med missing-med-worst
If the MED is not attached to a BGP route, it is interpreted as value 0, and thus as the best metric. With this command, a missing MED is interpreted as infinity (worst).

R1(config-router)# bgp bestpath med missing-med-worst

“bgp bestpath med-confed”
To enable MED comparison among paths learned from confederation peers, use the bgp bestpath med-confed router configuration command. To prevent the software from considering the MED attribute in comparing paths, use the no form of this command

R1(config-router)# bgp bestpath med-confed

Well, if you say you have more than 3 entries and having two or three different AS numbers, we would recommend to enable both “bgp deterministic-med” and “bgp always-compare-med”