Déploiement complet sur matériel physique Cisco — Configuration, tests de validation et documentation des incidents techniques rencontrés en production réelle.
VinciBot est un acteur de pointe dans le secteur de la nanorobotique. Dans le cadre de son expansion technologique, l'entreprise a entrepris de muscler son architecture réseau afin de sécuriser les flux de données de ses stations de travail stratégiques, notamment celles du service Recherche & Développement.
Pour piloter cette transformation, VinciBot a missionné l'expert NexusIT afin de concevoir et d'intégrer une infrastructure réseau sur mesure, reposant sur des équipements matériels dédiés Cisco.
| Type | Référence | Rôle dans la solution |
|---|---|---|
| Routeur | Cisco ISR4221/K9 — IOS XE 16.9.2 | Passerelle inter-VLAN, DHCP, NAT/PAT, ACL, SSH |
| Commutateur | Cisco Catalyst 3560G 24p — IOS 15.0 | Segmentation VLAN, trunk 802.1Q, Port-Security |
| Stations | 3 PC portables physiques | PC-RD (VLAN 10) · PC-EMP (VLAN 20) · PC-MNIT (VLAN 99) |
| Câblage | RJ45 Cat. 5e / câble console | Connectivité physique et configuration hors bande |
| Simulation | Cisco Packet Tracer | Tests préliminaires avant déploiement physique |
| Zone | Nom VLAN | N° VLAN | Réseau | Passerelle | Plage DHCP |
|---|---|---|---|---|---|
| Zone 1 — R&D | RD | 10 | 172.16.10.0/24 | 172.16.10.254 | .11 → .253 |
| Zone 2 — Employés | Employees | 20 | 172.16.20.0/24 | 172.16.20.254 | .11 → .253 |
| Zone 3 — Management | MGMT_NIT | 99 | 172.16.99.0/24 | 172.16.99.254 | .1 → .10 |
| Ports | VLAN | Zone | Port-Security |
|---|---|---|---|
| Gi0/1 — Gi0/8 | 10 (RD) | Zone 1 — R&D | ✔ Sticky · max 1 · Shutdown |
| Gi0/9 — Gi0/16 | 20 (Employees) | Zone 2 — Employés | — Non appliqué |
| Gi0/23 | 99 (MGMT_NIT) | Zone 3 — Management | — Non appliqué |
| Gi0/24 | Trunk 802.1Q | Lien vers R1 | — |
hostname SW1 ! ── Création des VLANs ───────────────────────────────────── vlan 10 name RD vlan 20 name Employees vlan 99 name MGMT_NIT ! ── Ports VLAN 10 — Zone R&D (port-security strict) ──────── interface GigabitEthernet0/1 description Zone_Strategique_RD switchport access vlan 10 switchport mode access switchport port-security mac-address sticky switchport port-security mac-address sticky 3822.e2e2.afbf switchport port-security spanning-tree portfast ! [interfaces GigabitEthernet0/2 à 0/8 — même configuration] ! ── Ports VLAN 20 — Zone Employés ─────────────────────────── interface GigabitEthernet0/9 description Zone_Acces_Standard switchport access vlan 20 switchport mode access spanning-tree portfast ! [interfaces GigabitEthernet0/10 à 0/16 — même configuration] ! ── Port VLAN 99 — Management NexusIT ─────────────────────── interface GigabitEthernet0/23 description Port_Administration_NexusIT switchport access vlan 99 switchport mode access spanning-tree portfast ! ── Trunk 802.1Q vers R1 ──────────────────────────────────── interface GigabitEthernet0/24 description Trunk_802.1Q_vers_R1 switchport trunk encapsulation dot1q switchport mode trunk ! ── VLAN 1 désactivé (bonne pratique sécurité) ────────────── interface Vlan1 no ip address shutdown
hostname R1 ! ── Domaine, credentials, SSH ─────────────────────────────── ip domain-name vincibot.lan username admin privilege 15 secret nexusit1024 enable secret nexusit1024 ip ssh version 2 ! ── Exclusions DHCP ───────────────────────────────────────── ip dhcp excluded-address 172.16.10.1 172.16.10.10 ip dhcp excluded-address 172.16.10.254 ip dhcp excluded-address 172.16.20.1 172.16.20.10 ip dhcp excluded-address 172.16.20.254 ip dhcp excluded-address 172.16.99.11 172.16.99.253 ip dhcp excluded-address 172.16.99.254 ! ── Pools DHCP ────────────────────────────────────────────── ip dhcp pool POOL_RD network 172.16.10.0 255.255.255.0 default-router 172.16.10.254 dns-server 8.8.8.8 ip dhcp pool POOL_EMP network 172.16.20.0 255.255.255.0 default-router 172.16.20.254 dns-server 8.8.8.8 ip dhcp pool POOL_MGMT network 172.16.99.0 255.255.255.0 default-router 172.16.99.254 dns-server 8.8.8.8 ! ── Interfaces — Router-on-a-Stick 802.1Q ─────────────────── interface GigabitEthernet0/0/0 no ip address negotiation auto interface GigabitEthernet0/0/0.10 description Passerelle_RD encapsulation dot1Q 10 ip address 172.16.10.254 255.255.255.0 ip nat inside interface GigabitEthernet0/0/0.20 description Passerelle_Employes encapsulation dot1Q 20 ip address 172.16.20.254 255.255.255.0 ip nat inside ip access-group 100 in interface GigabitEthernet0/0/0.99 description Passerelle_Management encapsulation dot1Q 99 ip address 172.16.99.254 255.255.255.0 ip nat inside interface GigabitEthernet0/0/1 description Internet_vers_Box ip address dhcp ip nat outside negotiation auto ! ── NAT/PAT overload ──────────────────────────────────────── access-list 1 permit 172.16.0.0 0.0.255.255 ip nat inside source list 1 interface GigabitEthernet0/0/1 overload ! ── ACL 100 : bloque VLAN20 → VLAN10 ─────────────────────── access-list 100 deny ip 172.16.20.0 0.0.0.255 172.16.10.0 0.0.0.255 access-list 100 permit ip any any ! ── ACL 99 : restreint SSH au seul VLAN 99 ────────────────── access-list 99 permit 172.16.99.0 0.0.0.255 access-list 99 deny any ! ── Lignes VTY — SSH uniquement depuis VLAN 99 ────────────── line vty 0 4 access-class 99 in exec-timeout 5 30 login local transport input ssh
En raison des limitations d'IOS XE 16.9.2, le fichier suivant doit être créé sur le PC-MNIT. (Voir incident INC-03 — section 6 pour le détail.)
Host 172.16.99.254 KexAlgorithms diffie-hellman-group14-sha1 HostKeyAlgorithms ssh-rsa User admin
Créer via CMD : mkdir %USERPROFILE%\.ssh puis notepad %USERPROFILE%\.ssh\config. Vérifier l'absence d'extension .txt.
| # | De | Vers | Type | Rôle |
|---|---|---|---|---|
| 1 | SW1 Gi0/24 | R1 Gi0/0/0 | RJ45 droit | Trunk 802.1Q inter-VLAN |
| 2 | R1 Gi0/0/1 | SW02.SANDBOX | RJ45 droit | Accès WAN / DHCP client |
| 3 | PC-RD | SW1 Gi0/1 à 8 | RJ45 droit | Zone R&D — VLAN 10 |
| 4 | PC-EMP | SW1 Gi0/9 à 16 | RJ45 droit | Zone Employés — VLAN 20 |
| 5 | PC-MNIT | SW1 Gi0/23 | RJ45 droit | Zone Management — VLAN 99 |
| 6 | PC console | Port Console SW1/R1 | Câble console RJ45 | Configuration initiale hors bande |
show vlan briefshow ip interface brief — Gi0/0/1 doit obtenir une IP DHCP.ssh/config sur PC-MNIT| Test | Commande | Résultat attendu | Résultat |
|---|---|---|---|
| DHCP PC-RD (VLAN 10) | ipconfig /renew | IP 172.16.10.11+ · GW .254 | ✔ Validé |
| DHCP PC-EMP (VLAN 20) | ipconfig /renew | IP 172.16.20.11+ · GW .254 | ✔ Validé |
| DHCP PC-MNIT (VLAN 99) | ipconfig /renew | IP 172.16.99.1–10 · GW .254 | ✔ Validé |
| Ping passerelle VLAN 20 | ping 172.16.20.254 | Réponse < 5 ms | ✔ Validé |
PC-RD — VLAN 10 — IP obtenue : 172.16.10.11
PC-EMP — VLAN 20 — IP obtenue : 172.16.20.11
PC-MNIT — VLAN 99 — IP obtenue : 172.16.99.1
| Test | Depuis | Vers | Résultat attendu | Résultat |
|---|---|---|---|---|
| Blocage EMP → RD | PC-EMP (VLAN 20) | ping 172.16.10.254 | Timeout — bloqué ACL 100 | ✔ Validé |
| Internet depuis RD | PC-RD (VLAN 10) | ping 8.8.8.8 | Réponse via NAT | ✔ Validé |
| Internet depuis EMP | PC-EMP (VLAN 20) | ping 8.8.8.8 | Réponse via NAT | ✔ Validé |
| Test | Depuis | Résultat attendu | Résultat |
|---|---|---|---|
| SSH depuis VLAN 99 | PC-MNIT | Prompt R1> obtenu | ✔ Validé |
| SSH bloqué VLAN 10/20 | PC-RD / PC-EMP | Connexion refusée (access-class 99) | ✔ Validé |
| Test | Action | Résultat attendu | Résultat |
|---|---|---|---|
| Violation Port-Security | Brancher un 2e PC sur Gi0/1 (VLAN 10) | Port passe err-disabled · Violation Count = 1 |
✔ Validé |
| Reset post-violation | shutdown / no shutdown | Port repasse up/up | ✔ Validé |
Lors du déploiement sur matériel physique réel, deux incidents techniques ont été rencontrés et résolus. Ces incidents sont documentés selon la méthode Symptôme → Investigation → Solution → Alternative.
Remplacer l'ACL étendue statique par une ACL réflexive pour un filtrage dynamique avec suivi d'état : mémorisation des sessions initiées depuis le VLAN 10 et autorisation automatique des réponses correspondantes.
R1(config-ext-nacl)# permit ip 172.16.10.0 0.0.0.255 any reflect FLUX_VLAN10 % Invalid input detected at '^' marker. R1(config-ext-nacl)# evaluate FLUX_VLAN10 % Invalid input detected at '^' marker.
Cisco IOS XE Software, Version 16.09.02 ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9_IAS-M), Version 16.9.2
Les mots-clés reflect et evaluate sont supportés sur IOS classique 15.x mais non disponibles dans l'image IAS-M d'IOS XE 16.9 pour la plateforme ISR 4000 series.
L'ACL étendue 100 déjà en place atteint pleinement l'objectif : tout trafic initié par le VLAN 20 à destination du VLAN 10 est bloqué. Les tests confirment son efficacité.
Le Zone-Based Firewall (ZBF), pleinement supporté sur IOS XE 16.9, est la technologie Cisco recommandée en remplacement. Il offre un filtrage stateful natif avec politique deny-all par défaut entre zones non autorisées.
-- Erreur 1 : KEX incompatible -- Unable to negotiate with 172.16.99.254 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha1 -- Erreur 2 : Host key incompatible -- Unable to negotiate with 172.16.99.254 port 22: no matching host key type found. Their offer: ssh-rsa -- Erreur 3 : Clé mémorisée invalide après régénération RSA -- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! Host key verification failed.
L'image IOS XE 16.9.2 IAS-M supporte uniquement les algorithmes legacy (diffie-hellman-group14-sha1, ssh-rsa), désactivés par défaut dans OpenSSH 9.5p2 (Windows 11). La tentative de génération de clés RSA 2048 bits a également échoué : l'image limite la taille des clés à 1024 bits.
Action 1 — Supprimer l'ancienne empreinte mémorisée :
ssh-keygen -R 172.16.99.254
Action 2 — Créer le fichier .ssh/config forçant les algorithmes compatibles :
Host 172.16.99.254 KexAlgorithms diffie-hellman-group14-sha1 HostKeyAlgorithms ssh-rsa User admin
La mise à jour vers IOS XE 17.x (image universalk9 complète) permettrait au routeur de proposer des algorithmes modernes (ecdh-sha2-nistp256, ssh-ed25519) nativement acceptés par Windows 11 sans configuration client additionnelle.
| # | Incident | Cause racine | Solution retenue | Statut |
|---|---|---|---|---|
| INC-01 | reflect/evaluate non supportés | IOS XE 16.9.2 IAS-M | ACL étendue 100 maintenue | ✔ Résolu |
| INC-02 | Algorithmes SSH legacy refusés | IOS XE 16.9.2 + OpenSSH 9.5p2 | Fichier .ssh/config client | ✔ Résolu |
| Compétence | Mise en œuvre dans ce projet |
|---|---|
| Concevoir une solution d'infrastructure réseau | Définition du plan d'adressage VLAN, conception du routage inter-VLAN et de la politique de sécurité ACL étendue |
| Installer, tester et déployer une solution | Configuration complète sur matériel physique réel (ISR4221 + Catalyst 3560G), exécution du plan de tests complet avec captures |
| Exploiter, dépanner et superviser | Diagnostic des 3 incidents (câblage, IOS XE, SSH), identification des causes racines, déploiement des solutions de contournement documentées |