EIGRP split-horizon vs poison reverse
When using EIGRP, Split-horizon is used by default to ensure that routing loops do not occur. Specifically, and according to RFC7868, split horizon is defined like so:
Within Cisco, the split horizon rule suggests: "Never advertise a route out of the interface through which it was learned". EIGRP implements this to mean, "if you have a successor route to a destination, never advertise the route out the interface on which it was learned".
Comparatively, EIGRP will also use poison reverse for similar situations. According to the same RFC:
The poison reverse rule states: "A route learned through an interface will be advertised as unreachable through that same interface". As with the case of split horizon, EIGRP applies this rule only to interfaces it is using for reaching the destination. Routes learned though interfaces that EIGRP is NOT using to reach the destination may have the route advertised out those interfaces.
A route is marked as unreachable when the EIGRP metric is set to 4,294,967,295, which is the maximum value of the metric, and this is always considered to be infinity, thus the destination is unreachable.
So essentially, the difference between split-horizon and poison revers as far as their implementation in EIGRP is:
In EIGRP, split horizon suppresses a QUERY, where as poison reverse advertises a destination as unreachable. This can occur for a destination under any of the following conditions: o two routers are in startup or restart mode o advertising a topology table change o sending a query
So split horizon results in the suppression of a QUERY, while poison reverse allows the query to be sent, but it is simply sent with an unreachable metric for that particular network. Each is used in differing situations with EIGRP.
Links
https://forum.networklessons.com/t/detailed-look-at-eigrp-neighbor-adjacency/911/50?u=lagapides