# [Cisco] VLAN

## Introduction

Les **VLANs** pour (*Virtual LAN*) sont des réseaux virtuels mis en place généralement sur les switchs pour segmenter les réseaux.

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/scaled-1680-/7Tiimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/7Tiimage.png)

## Généralités

#### Port Trunk

Connexion qui transporte le trafic de plusieurs VLANs entre les switchs.

Une étiquette VLAN est ajoutée aux trames réseau pour identifier à quel VLAN elles appartiennent dans l'en-tête **802.1Q (IEEE)**.

Une exception est faite pour le VLAN natif qui ne comporte pas de tag mais qui peut circuler sur une interface trunk.

#### Port Access

Associé à un seul VLAN, l'hôte n'a pas conscience d'être sur un VLAN (dédié aux terminaux).

## Affichage des VLANs

#### Afficher les VLANs configurés

```
show vlan brief
```

#### Afficher les trunks configurés

```
show interface trunk
```

## Configuration

Ils sont considérés dans les équipements Cisco comme des **interfaces** et se configurent donc de la même manière :

```
interface vlan <VLAN_NUMBER>
```

<p class="callout info">Le **VLAN1** est présent par défaut et concerne tous les ports du switch s'il n'a pas été modifié.</p>

On peut aussi définir une adresse IP pour le switch sur ce VLAN et une gateway si on le souhaite comme on le ferait sur une interface classique.

#### Créer un VLAN

En mode **configuration globale**, tapez les deux commandes suivantes :

```
vlan <VLAN_ID>
```

```
name <VLAN_NAME>
```

<p class="callout info">La commande **name** est facultative (vous n'êtes pas obligé de définir un nom pour votre VLAN).</p>

#### Port en mode access

Après avoir sélectionner l'interface, exécutez la commande suivante :

```
switchport mode access
```

```
switchport access vlan <VLAN_ID>
```


#### Port en mode trunk

Après avoir sélectionner l'interface, exécutez les deux commandes suivantes :

```
switchport trunk encapsulation dot1q
```

```
switchport mode trunk
```

Et pour sélectionner les VLANs qui pourront être utilisés sur l'interface, exécutez cette commande :

```
switchport trunk allowed vlan <VLAN_ID>,<VLAN_ID_2>
```

Quelques exemples pratiques si vous manipulez beaucoup de VLANs sur un port trunk :

```
switchport trunk allowed vlan 1,100-200
```

```
switchport trunk allowed vlan add 300
```

```
switchport trunk allowed vlan remove 100
```

```
switchport trunk allowed vlan except 400
```

```
switchport trunk allowed vlan all
```

<p class="callout warning">Par défaut, tous les VLANs sont autorisés sur les ports trunks !</p>

On peut définir le **VLAN natif** sur un port trunk :

```
switchport trunk native vlan <VLAN_ID>
```

<p class="callout info">Par défaut, il s'agit du **VLAN 1**.</p>

#### Port en mode dynamique

Le port va négocier avec le voisin s'il doit passer en mode trunk ou non (technologie propriétaire à Cisco) :

```
switchport mode dynamic desirable
```

Et voici la commande pour configurer le port en mode trunk si mon voisin me le demande :

```
switchport mode dynamic auto
```

#### Configurer un routeur on-the-stick

L'objectif va être de configurer un routeur de manière à permettre la communication entre les différents VLANs.

On admet la topologie suivante :

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-01/scaled-1680-/hZXimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-01/hZXimage.png)

Tout d'abord, l'interface qui va relier le routeur au switch devra être configuré en mode Trunk.

Ensuite, il va falloir créer et configurer les VLANs 100 et 200 sur le switch.

Puis la dernière étape consiste à configurer le routeur pour prendre en charge les VLANs.

Pour cela, on commence par segmenter l'**interface physique E0/0** en 2 **sous-interfaces** (virtuelles) avec les commandes :

```
interface e0/0.100
```

```
encapsulation dot1q 100
```

<p class="callout warning">Si le VLAN est un VLAN natif, ajoutez le mot-clé **native** à la fin de la commande précédente.</p>

Puis on saisis l'adresse IP de l'interface virtuelle (qui correspond à la passerelle du VLAN 100) :

```
ip address <IP> <MASK>
```

On réitère pour la deuxième interface virtuelle :

```
interface e0/0.200
```

```
encapsulation dot1q 200
```

Puis on saisis l'adresse IP de l'interface virtuelle (qui correspond à la passerelle du VLAN 200) :

```
ip address <IP> <MASK>
```

Enfin, on démarre l'interface physique (qui va démarrer l'ensemble des sous-interfaces) :

```
no shut
```

<p class="callout warning">Et n'oubliez pas de configurer la passerelle sur les machines hôtes !</p>

#### VLAN secondaire

Pour créer un VLAN communautaire :

```
vlan 101
private-vlan community
```

Pour créer un VLAN isolé :

```
vlan 101
private-vlan isolated
```

Et déclarez-les sur le VLAN primaire :

```
vlan 100
private-vlan primary
private-vlan association 101,102
```

Puis définissez un port qui est un VLAN communautaire :

```
int e0/0
switchport mode private-vlan host
switchport private-vlan host-association 100 101
```

Pour définir un port en mode promiscuous :

```
int e0/2
switchport mode private-vlan promiscuous
switchport private-vlan mapping 100 101,102
```