Skip to content
Adam Spera

Policy Based Routing (PBR)

Policy-Based Routing (PBR) allows forwarding decisions to be based on criteria other than destination IP address. While normal IP routing uses destination-based forwarding with longest match lookup, PBR enables routing decisions based on source, destination, protocol type, or incoming interface.

Normal IP Routing

  • Find the longest match to destination in routing table
  • Route the packet towards the next-hop

Policy-Based Routing

  • Route based on defined policies and criteria
  • Override normal routing table decisions when policies match

PBR uses route-maps to define traffic criteria and actions:

Route-Map Logic

  • Permit: Apply policy routing to matching traffic
  • Deny: Use normal destination-based forwarding for matching traffic

Traffic Criteria: Most commonly matched using access lists, but can also match on:

  • Packet length
  • Source interface
  • Destination interface

PBR should be applied on the ingress interface where the intended traffic is being received. This allows the router to make policy decisions before normal routing table lookup occurs.

Why Ingress Application:

  • PBR processes packets as they enter an interface
  • Allows policy decisions before normal routing table lookup
  • More efficient than applying on multiple egress interfaces
  • Catches traffic at the entry point for consistent policy enforcement
ip access-list extended ICMP_TRAFFIC
permit icmp 192.168.1.0 0.0.0.255 host 8.8.8.8
route-map PBR-ICMP permit 10
match ip address ICMP_TRAFFIC
set ip next-hop 10.0.0.6
route-map PBR-ICMP permit 20
! Deny statement - all other traffic uses normal routing
interface Ethernet0/0
description LAN-Interface-Ingress
ip policy route-map PBR-ICMP

Configuration Breakdown:

  • Access List: Defines ICMP traffic from 192.168.1.0/24 to 8.8.8.8
  • Route-Map Permit 10: Matches the ACL and sets specific next-hop
  • Route-Map Permit 20: Empty permit acts as deny - normal routing for other traffic
  • Interface Application: Applied to ingress interface where LAN traffic enters

The set ip default next-hop command modifies PBR behavior to check the routing table first before applying the policy route:

  • Standard PBR: set ip next-hop - Forces traffic through specified next-hop regardless of routing table
  • Default PBR: set ip default next-hop - Uses routing table first, only applies PBR if no route exists
route-map PBR-DEFAULT permit 10
match ip address BACKUP_TRAFFIC
set ip default next-hop 10.0.0.100

How Default Next-Hop Works

  1. Router checks routing table for destination
  2. If route exists in RIB, uses normal routing
  3. If no route exists in RIB, uses PBR next-hop
  4. Provides backup routing when normal paths fail

For router-generated traffic (such as management, SNMP, or syslog), use local PBR:

ip local policy route-map PBR-LOCAL

This applies PBR to traffic originated by the router itself rather than transit traffic.

show ip policy
show route-map
show ip local policy
debug ip policy
show ip route policy