Route filtering

In the context of network routing, route filtering is the process by which certain routes are not considered for inclusion in the local route database, or not advertised to one's neighbours. Route filtering is particularly important for the Border Gateway Protocol on the global Internet, where it is used for a variety of reasons. One way of doing route filtering with external-resources in practice is using Routing Policy Specification Language in combination with Internet Routing Registry databases.

Types of filtering

There are two times when a filter can be naturally applied: when learning routes from a neighbour, and when announcing routes to a neighbour.

Input filtering

In input filtering, a filter is applied to routes as they are learned from a neighbour. A route that has been filtered out is discarded straight away, and hence not considered for inclusion into the local routing database.

Output filtering

In output filtering, a filter is applied to routes before they are announced to a neighbour. A route that has been filtered out is never learned by a neighbour, and hence not considered for inclusion in the remote route database.

Reasons to filter

Economic reasons

When a site is multihomed, announcing non-local routes to a neighbour different from the one it was learned from amounts to advertising the willingness to serve for transit, which is undesirable unless suitable agreements are in place. Applying output filtering on these routes avoids this issue.

Security reasons

An ISP will typically perform input filtering on routes learned from a customer to restrict them to the addresses actually assigned to that customer. Doing so makes address hijacking more difficult.

Similarly, an ISP will perform input filtering on routes learned from other ISPs to protect its customers from address hijacking.

Technical reasons

In some cases, routers have insufficient amounts of main memory to hold the full global BGP table. A simple work-around is to perform input filtering, thus limiting the local route database to a subset of the global table.[1] This can be done by filtering on prefix length (eliminating all routes for prefixes longer than a given value), on AS count, or on some combination of the two; security is the most important point for this.

However, this practice is not recommended, as it can cause suboptimal routing[2] or even communication failures with small networks[citation needed], and frustrate the traffic-engineering efforts of one's peers.

See also

References

  1. ^ Santos, Omar (May 12, 2014). "The Size of the Internet Global Routing Table and Its Potential Side Effects". Cisco Systems. Retrieved 10 April 2015. [T]he Internet routing table growth could cause Ternary Content Addressable Memory (TCAM) resource exhaustion for some networking products.... Route filtering and the use of a default route can also be used to decrease the number of routes in an affected device.
  2. ^ Lagerholm, Stephan. "IPv4 / IPv6 and TCAM memory". The IPv4 Depletion Site. Retrieved 10 April 2015. An option that service providers can consider is to filter smaller routes. ... What is likely to happen is providers will start filtering deaggregates where a covering prefix exists, at least for some time until this problem is resolved. This might create a suboptimal path for packets resulting in an increased latency.