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.[a] 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

edit

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

edit
  1. ^ Routing based on source address should not be confused with source routing.

References

edit
edit