MCID—When receiving a route from a client, the RR does not reflect it to another client if both clients belong to a cluster
for which client-to-client reflection has been disabled. Therefore, route reflection is disabled only intracluster (within
the cluster specified). Other cases for reflection (client-to-nonclient, nonclient-to-client, and intercluster) are maintained.
This functionality is usually configured when all the clients for a particular cluster are fully meshed among themselves (but
not with clients of other clusters). The command to disable client-to-client route reflection for a particular cluster is
entered in router configuration mode and it applies globally to all address families:
no bgp client-to-client reflection intra-cluster cluster-id {any |
cluster-id1 cluster-id2... }
The
any keyword is used to disable client-to-client reflection for any cluster.
The Classic, previously released command for disabling all client-to-client reflection is also still available during this
post-MCID release timeframe:
no bgp client-to-client reflection [all]
(The optional
all keyword has no effect in either the positive or negative form of the command, and does not appear in configuration files.
It is just to remind the network administrator that both intercluster and intracluster client-to-client reflection are enabled
or disabled.)
In summary, after the introduction of the multiple cluster IDs feature, there are three levels of configuration that can disable
client-to-client reflection. The software performs them in the following order, from least specific to most specific:
-
Least specific:
no bgp client-to-client reflection [all] Disables intracluster and intercluster client-to-client reflection.
-
More specific:
no bgp client-to-client reflection intra-cluster cluster-id any Disables intracluster client-to-client reflection for any cluster-id.
-
Most specific:
no bgp client-to-client reflection intra-cluster cluster-id
cluster-id1 cluster-id2 ... Disables intracluster client-to-client reflection for the specified clusters.
When BGP is advertising updates, the software evaluates each level of configuration in order. Once any level of configuration
disables client-to-client reflection, no further evaluation of more specific policies is necessary.
Note the results of the base (positive) and negative (no ) forms of the three commands listed above:
-
A negative configuration (that is, with the
no keyword) overwrites any less specific configuration.
-
A positive configuration (that is, without the
no keyword) will lose out to (default to) what is configured in a less specific configuration.
-
Configurations at any level appear in the configuration file only if they are negative.
All levels can be configured independently and all levels appear in the configuration file independently of the configuration
of other levels.
Note that negative configuration makes any more specific configuration unnecessary (because even if the more specific configuration
is positive, it is not processed after the negative configuration; if the more specific configuration is negative, it is functionally
the same as the earlier negative configuration). The following examples illustrate this behavior.
Example 1
no bgp client-to-client reflection
no bgp client-to-client reflection intra-cluster cluster-id any
Intercluster and intracluster reflection are disabled (based on the first command). The second command disables intracluster
reflection, but it is unnecessary because intracluster reflection is already disabled by the first command.
Example 2
no bgp client-to-client reflection intra-cluster cluster-id any
bgp client-to-client reflection intra-cluster cluster-id 1.1.1.1
Cluster ID 1.1.1.1 has intracluster route reflection disabled (even though the second command is positive), because the first
command is used to evaluate the update. The first command was negative, and once any level of configuration disables client-to-client
reflection, no further evaluation is performed.
Another way to look at this example is that the second command, because it is in a positive form, defaults to the behavior
of the first command (which is less specific). Thus, the second command is unnecessary.
Note that the second command would not appear in a configuration file because it is not a negative command.