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. 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. Linux supports multiple routing tables since version 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
External links
- Policy routing Cisco Press article
- Policy based routing with Linux (ONLINE edition)
- Network overview by Rami Rosen
References
Routing based on source address should not be confused with source routing. /wiki/Source_routing ↩
Cisco IOS Release 12.0 Quality of Service Solutions Configuration Guide Archived 2008-05-13 at the Wayback Machine http://www.cisco.com/en/US/docs/ios/12_0/qos/configuration/guide/qcpolicy.html ↩
Linux Advanced Routing & Traffic Control HOWTO http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/index.html ↩