Policy-based routing
In computer networking, policy-based routing (PBR) is a technique used to make routing decisions based on policies set by the network administrator.
When a router receives a packet it normally decides where to forward it based on the destination address in the packet, which is then used to look up an entry in a routing table. However, in some cases, there may be a need to forward the packet based on other criteria. For example, a network administrator might want to forward a packet based on the source address, not the destination address.[lower-alpha 1] This permits routing of packets originating from different sources to different networks even when the destinations are the same and can be useful when interconnecting several private networks.
Policy-based routing may also be based on the size of the packet, the protocol of the payload, or other information available in a packet header or payload.
In the Cisco IOS, PBR is implemented using route maps.[1] Linux supports multiple routing tables since version 2.2.[2] FreeBSD supports PBR using either IPFW, IPFilter or OpenBSD's PF.
Examples
PBR can be used to redirect traffic to a proxy server by using a PBR-aware L3-switch (router). In such deployment, specific source traffic (e.g. HTTP, FTP) can be redirected to a cache engine. This is known as virtual inline deployment.
Notes
- Routing based on source address should not be confused with source routing.
References
External links
- Policy routing Cisco Press article
- Policy based routing with Linux (ONLINE edition)
- Network overview by Rami Rosen