---
title: "PBR & VRF — Routage avancé Cisco"
domain: network
subdomain: routing
type: snippet
tags: [pbr, vrf, policy-routing, cisco, route-map, vrf-lite, segmentation, ios]
difficulty: advanced
status: stable
updated: "2025-05-14"
---
## PBR — Policy-Based Routing

### Use cases

```
- Forcer le trafic HTTP/HTTPS vers un proxy transparent
- Acheminer le trafic selon l'IP source (clients VIP vs standard)
- WAN différencié : voix sur lien MPLS, web sur Internet
- Contourner la table de routage pour un service spécifique
```

### Configuration PBR

```text
! 1. Définir le trafic à intercepter
ip access-list extended MATCH_HTTP
 permit tcp any any eq 80
 permit tcp any any eq 443

! 2. Créer la route-map
route-map PBR_MAP permit 10
 match ip address MATCH_HTTP
 set ip next-hop {{PROXY_IP}}

! 3. Clause par défaut : laisser passer le reste normalement
route-map PBR_MAP permit 20
 ! (pas de match = correspond à tout le reste)
 ! (pas de set = utilise la table de routage normale)

! 4. Appliquer sur l'interface d'ENTRÉE du trafic
interface {{INGRESS_INTERFACE}}
 ip policy route-map PBR_MAP
```

### PBR avec vérification de disponibilité (IP SLA)

```text
! Vérifier la disponibilité du next-hop avant de l'utiliser
route-map PBR_FAILOVER permit 10
 match ip address MATCH_HTTP
 set ip next-hop verify-availability {{PROXY_IP}} 1 track 1
 set ip next-hop verify-availability {{BACKUP_PROXY}} 2 track 2
 ! Si aucun next-hop disponible → table de routage normale
```

### Local PBR (trafic généré par le routeur lui-même)

```text
! Pour le trafic initié par le routeur (pings, SSH sortants, syslog)
ip local policy route-map {{MAP_NAME}}
```

### Vérification et debug PBR

```text
show route-map
show route-map {{MAP_NAME}}
show ip policy

! Debug : ATTENTION très verbeux, désactiver rapidement
debug ip policy
undebug all
```

---

## VRF-Lite — Segmentation sans MPLS

### Use cases

```
Multi-tenant          : isoler les clients sur un même équipement physique
Séparation mgmt/data  : plan de management dans un VRF dédié
Dual-ISP              : deux tables de routage, une par opérateur
Test/staging          : environnement isolé sur le même routeur
```

### Création d'un VRF

```text
! Définir le VRF avec Route Distinguisher
ip vrf {{VRF_NAME}}
 rd {{AS}}:{{ID}}
 ! Route Targets pour le route leaking (optionnel sans MPLS)
 route-target export {{AS}}:{{ID}}
 route-target import {{AS}}:{{ID}}
```

### Assigner une interface à un VRF

```text
interface {{INTERFACE}}
 ! ATTENTION : cette commande supprime l'adresse IP existante
 ip vrf forwarding {{VRF_NAME}}
 ! Reconfigurer l'adresse IP immédiatement après
 ip address {{IP}} {{MASK}}
 no shutdown
```

### Routage dans un VRF

```text
! Route statique dans un VRF
ip route vrf {{VRF_NAME}} {{NET}} {{MASK}} {{NEXT_HOP}}

! Route statique avec next-hop global (route leaking VRF → global)
ip route vrf {{VRF_NAME}} 0.0.0.0 0.0.0.0 {{GW}} global

! OSPF dans un VRF
router ospf {{PROCESS_ID}} vrf {{VRF_NAME}}
 network {{NET}} {{WILDCARD}} area {{AREA}}

! BGP dans un VRF
router bgp {{AS}}
 address-family ipv4 vrf {{VRF_NAME}}
  neighbor {{PEER_IP}} remote-as {{PEER_AS}}
  network {{NET}} mask {{MASK}}
 exit-address-family
```

### Route leaking entre VRF

```text
! Option 1 : route statique avec mot-clé global ou vrf cible
ip route vrf {{VRF_SRC}} {{NET}} {{MASK}} {{NEXT_HOP}} global
ip route {{NET}} {{MASK}} vrf {{VRF_SRC}} {{NEXT_HOP}}

! Option 2 : via BGP avec Route Targets (plus propre, scalable)
router bgp {{AS}}
 address-family ipv4 vrf {{VRF_A}}
  route-target import {{AS}}:200   ! importer les routes du VRF_B
 address-family ipv4 vrf {{VRF_B}}
  route-target export {{AS}}:200   ! exporter les routes du VRF_B
```

### Vérification VRF

```text
show ip vrf
show ip vrf interfaces
show ip vrf detail {{VRF_NAME}}

! Table de routage d'un VRF spécifique
show ip route vrf {{VRF_NAME}}

! Ping dans le contexte d'un VRF
ping vrf {{VRF_NAME}} {{DEST_IP}}

! Traceroute dans un VRF
traceroute vrf {{VRF_NAME}} {{DEST_IP}}

! SSH ou telnet dans un VRF
ssh -vrf {{VRF_NAME}} -l admin {{DEVICE_IP}}
```

---

## Tableau use cases VRF

```
Use case              VRF(s)           Routage inter-VRF    Notes
Multi-tenant          1 par client     Non (isolation)      RD unique par client
Mgmt / Data plane     MGMT + default   Route leaking SSH    Sécuriser l'accès mgmt
Dual-ISP              ISP_A + ISP_B    Non                  PBR pour sélection ISP
Test / Staging        PROD + TEST      Optionnel            Partage matériel
```

<Tip>
Lors d'un `ip vrf forwarding NAME` sur une interface, Cisco IOS **supprime automatiquement l'adresse IP** configurée. Toujours enchaîner la commande `ip address` immédiatement après dans la même session de configuration, sans quitter le mode interface — sinon la connectivité est perdue et une console physique (ou accès OOB) sera nécessaire pour récupérer.
</Tip>
