# Policy Based Routing (PBR)

PBR är ett verktyg för att göra routing-beslut baserad på en policy. Routern kommer då vid matchning ta beslut enligt en konfigurerad policy istället för via routing-tabell/FIB. Policyn konfigureras via en route-map som sedan appliceras på inkommande interface.

[![image.png](https://wiki.jehrlander.net/uploads/images/gallery/2024-06/scaled-1680-/image.png)](https://wiki.jehrlander.net/uploads/images/gallery/2024-06/image.png)

PBR är en bra teknik att använda i en VXLAN/EVPN-fabric (troligtivis i en Nexus-miljö, om Cisco) för att låta en brandvägg sköta policy-beslut inom en VRF mellan VLAN. PBR-konfiguration måste då tilldelas samtliga SVI:er inom en VRF. Det kan vara en bra idé att undanta tung trafik, ex. lagring, från PBRn för att inte överlasta brandväggen.

## Konfiguration

Följande val finns i en route-map för beslut:

<table border="1" id="bkmrk-kommando-kommentar-s" style="border-collapse: collapse; width: 100%; height: 439.8px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">Kommando  
</td><td style="height: 29.8px;">Kommentar  
</td></tr><tr style="height: 57.8px;"><td style="height: 57.8px;">set ip next-hop *ip-address* set ipv6 next-hop *ipv6-address*

</td><td style="height: 57.8px;">Bestäm next hop. Måste vara direktanslutet.  
</td></tr><tr style="height: 63.4px;"><td style="height: 63.4px;">set ip default next-hop *ip-address*  
set ipv6 default next-hop *ipv6-address*  
</td><td style="height: 63.4px;">Samma som ovan, men försöker först att routa enligt RIB, och om ingen träff finns så används PBR. Default-routen i RIB ignoreras.  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">set interface *interface*  
</td><td style="height: 46.6px;">Bestämmer next hop interface. Bör enbart användas för P2P interface.  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">set default interface *interface*  
</td><td style="height: 46.6px;">Samma som ovan men enligt samma logik som set ip default next-hop.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">set ip df *0/1*  
</td><td style="height: 29.8px;">Sätter don't fragment biten till 1 eller 2. Stöds enbart för IPv4.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">set ip precedence *number | name*  
</td><td style="height: 29.8px;">Sätter IP precedence bit. 0-7 eller text-namn.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">set ipv6 precedence *number*  
</td><td style="height: 29.8px;">Sätt IPv6 precedence bit 0-7.  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">set ip tos *number | name*  
</td><td style="height: 46.6px;">Sätt ToS bit enligt decimalvärden eller ASCII namn. Stöds enbart för IPv4.  
</td></tr></tbody></table>

Exempelkonfiguration IPv4

```
route-map PBR-IPv4 permit 10
 match ip address prefix-list PBR-FILTER
 set ip next-hop

interface Vlan 10
 ip policy route-map
```

## Local PBR

Local PBR används för trafik som initieras från routern själv. Sätts med ett global kommando, `ip local policy route-map ROUTE_MAP_NAMN`. Verifiering med `show ip local policy`.