---
title: "Inter-VLAN Routing — Router-on-a-Stick & SVI"
domain: network
subdomain: vlan
type: snippet
tags: [vlan, inter-vlan, roas, svi, cisco, layer3, routing]
difficulty: intermediate
status: stable
updated: "2025-05-14"
---
## Concepts

```
Inter-VLAN Routing = permettre la communication entre VLANs différents via un équipement L3

Deux méthodes principales :
  ROAS (Router-on-a-Stick) : routeur externe, une interface physique trunk + sous-interfaces
  SVI (Switch Virtual Interface) : switch L3 fait le routage en interne, plus performant

ROAS : simple, économique, mais crée un bottleneck sur l'interface physique
SVI  : meilleure perf, moins de câblage, nécessite un switch L3 (ex: 3560, 3650, 3850, 9300)
```

## Router-on-a-Stick (ROAS)

### Topologie

```
[SW access/trunk] --- (trunk 802.1Q) --- [Routeur Gi0/0]
                                             ├── Gi0/0.10 → VLAN 10 gateway
                                             ├── Gi0/0.20 → VLAN 20 gateway
                                             └── Gi0/0.99 → VLAN mgmt
```

### Configuration switch (côté trunk)

```text
conf t
interface GigabitEthernet0/1
 switchport mode trunk
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,20,30,99
 switchport trunk native vlan 999
 no shutdown
```

### Configuration routeur

```text
conf t
! Activer l'interface physique parente — SANS IP
interface GigabitEthernet0/0
 no ip address
 no shutdown

! VLAN 10 — LAN Utilisateurs
interface GigabitEthernet0/0.10
 encapsulation dot1Q 10
 ip address {{VLAN10_GW}} {{VLAN10_MASK}}
 ip helper-address {{DHCP_SERVER}}    ! relay DHCP si besoin
 no shutdown

! VLAN 20 — LAN Serveurs
interface GigabitEthernet0/0.20
 encapsulation dot1Q 20
 ip address {{VLAN20_GW}} {{VLAN20_MASK}}
 no shutdown

! VLAN 30 — VoIP
interface GigabitEthernet0/0.30
 encapsulation dot1Q 30
 ip address {{VLAN30_GW}} {{VLAN30_MASK}}
 no shutdown

! VLAN 99 — Management
interface GigabitEthernet0/0.99
 encapsulation dot1Q 99
 ip address {{MGMT_GW}} {{MGMT_MASK}}
 no shutdown
```

### Native VLAN sur le routeur (si besoin)

```text
! Native VLAN = pas de tag 802.1Q — ne pas mettre dot1Q native sur ROAS en prod
interface GigabitEthernet0/0.999
 encapsulation dot1Q 999 native
 no ip address    ! VLAN poubelle, pas d'IP
```

## SVI — Switch Virtual Interface (L3 Switch)

### Prérequis : activer le routage IP

```text
conf t
! Indispensable — sans ça, les SVIs sont up mais ne routent pas
ip routing
```

### Créer les SVIs

```text
conf t
! SVI VLAN 10
interface Vlan10
 description ** LAN Utilisateurs **
 ip address {{VLAN10_GW}} {{VLAN10_MASK}}
 ip helper-address {{DHCP_SERVER}}
 no shutdown

! SVI VLAN 20
interface Vlan20
 description ** LAN Serveurs **
 ip address {{VLAN20_GW}} {{VLAN20_MASK}}
 no shutdown

! SVI VLAN 30
interface Vlan30
 description ** VoIP **
 ip address {{VLAN30_GW}} {{VLAN30_MASK}}
 no shutdown

! SVI Management
interface Vlan99
 description ** Management **
 ip address {{MGMT_GW}} {{MGMT_MASK}}
 no shutdown
```

### Route par défaut vers le WAN

```text
! Pointer vers le routeur/firewall upstream
ip route 0.0.0.0 0.0.0.0 {{UPSTREAM_GW}}
```

### Ports access sur le switch L3

```text
! Les ports access restent identiques
interface GigabitEthernet1/0/1
 switchport mode access
 switchport access vlan 10
 spanning-tree portfast
 no shutdown

interface GigabitEthernet1/0/2
 switchport mode access
 switchport access vlan 20
 no shutdown
```

### Lien routed vers le routeur upstream (alternative au SVI)

```text
! Sur un switch L3, on peut aussi router directement une interface physique
interface GigabitEthernet1/0/24
 description ** Uplink vers Routeur WAN **
 no switchport                ! passe en mode routed (L3)
 ip address {{L3_LINK_SW}} {{L3_LINK_MASK}}
 no shutdown
```

## Vérifications

```text
! Table de routage — doit voir les réseaux VLAN en "C" (connected)
show ip route
show ip route connected
show ip route ospf         ! si OSPF redistribue les SVIs

! État des SVIs
show interfaces vlan 10
show interfaces vlan 20
show ip interface brief | include Vlan

! Trunks
show interfaces trunk
show interfaces GigabitEthernet0/0.10

! Adjacences L3 (si routage dynamique)
show ip ospf neighbor
show ip arp vlan 10
```

### Ping inter-VLAN

```text
! Depuis le routeur — tester la joignabilité des gateways
ping {{VLAN10_GW}} source GigabitEthernet0/0.20
ping {{VLAN20_GW}} source GigabitEthernet0/0.10

! Depuis un hôte VLAN 10 vers VLAN 20
! ping {{HOST_VLAN20}}
! traceroute {{HOST_VLAN20}}   → doit passer par la gateway VLAN 10
```

## ROAS vs SVI — Comparaison

```
Critère              ROAS                          SVI (switch L3)
─────────────────────────────────────────────────────────────────
Matériel requis      Routeur + switch L2           Switch L3 uniquement
Coût                 Plus élevé (2 équipements)    Moindre en prod (1 équipement)
Performance          Limité par l'interface trunk  Hardware switching, très rapide
Scalabilité          Mauvaise (>20 VLANs = pb)     Excellente
Complexité config    Faible                        Faible (+ ip routing)
Fonctions avancées   NAT, ACL avancées, VPN        Moins de fonctions que routeur
Cas d'usage          Lab, petits sites, SOHO       Production, datacenter, campus
```

<Tip>
Sur un switch L3, si le routage inter-VLAN ne fonctionne pas malgré des SVIs configurées, vérifier en premier : `show running-config | include ip routing` — la commande `ip routing` doit être présente. Sans elle, le switch reste en mode L2 et les SVIs ne routent pas, même si elles affichent "up/up".
</Tip>
