Le protocole TFTP (Trivial File Transfer Protocol) est un protocole d’application simplifié dédié au transfert de fichiers sur les réseaux IP. Il constitue un élément fondamental dans l’administration des équipements Cisco, particulièrement pour la gestion des images IOS et des fichiers de configuration. Contrairement au protocole FTP (File Transfer Protocol), le protocole TFTP utilise UDP (User Datagram Protocol) sur le port 69, ce qui le rend extrêmement léger mais moins sécurisé.
Spécifications techniques du protocole TFTP
RFC et normes :
- RFC 1350 : Spécification initiale du protocole TFTP
- RFC 2347 : Extension pour la négociation d’options TFTP
- RFC 2348 : Option de taille de bloc (Blocksize Option)
- RFC 2349 : Options de timeout et taille de transfert
Caractéristiques principales :
- Port : UDP 69 (port de destination initial)
- Protocole de transport : UDP exclusivement
- Taille de bloc par défaut : 512 octets
- Modes de transfert : netascii, octet (binaire), mail (obsolète)
Fonctionnement du protocole TFTP
Le protocole TFTP fonctionne selon un modèle client-serveur avec des mécanismes de contrôle simplifiés. Le client initie toujours la communication en envoyant une requête RRQ (Read Request) pour la lecture ou WRQ (Write Request) pour l’écriture.
Types de paquets TFTP :
- RRQ (Read Request): Opcode 1 – Demande de lecture
- WRQ (Write Request): Opcode 2 – Demande d’écriture
- DATA : Opcode 3 – Données à transférer
- ACK (Acknowledgment): Opcode 4 – Accusé de réception
- ERROR : Opcode 5 – Message d’erreur
Le transfert s’effectue par blocs numérotés séquentiellement. Chaque bloc DATA est suivi d’un accusé de réception ACK. Un bloc de taille inférieure à 512 octets (ou à la taille négociée) indique la fin du transfert.
Commandes Cisco essentielles pour le protocole TFTP
Commandes de transfert fondamentales
R1# copy tftp flash:
Copier un fichier depuis un serveur TFTP vers la mémoire flash.
R1# copy flash: tftp
Sauvegarder un fichier de la mémoire flash vers un serveur TFTP.
R1# copy running-config tftp
Sauvegarder la configuration courante vers TFTP.
R1# copy tftp running-config
Charger une configuration depuis TFTP vers la configuration courante.
R1# copy startup-config tftp
Sauvegarder la configuration de démarrage vers TFTP.
R1# copy tftp startup-config
Restaurer une configuration de démarrage depuis TFTP.
Commandes de vérification et de diagnostic
R1# show flash:
Afficher le contenu de la mémoire flash.
R1# show file systems
Afficher tous les systèmes de fichiers disponibles.
R1# dir
Lister le contenu du répertoire courant.
R1# show version
Vérifier la version IOS et l’image de démarrage.
Commandes de configuration avancées
R1(config)# tftp-server flash:c2900-universalk9-mz.SPA.157-3.M5.bin
Configurer le routeur comme serveur TFTP.
R1(config)# ip tftp source-interface GigabitEthernet0/0
Définir l’interface source pour TFTP.
R1(config)# ip tftp blocksize 8192
Configurer la taille de bloc TFTP.
Configuration complète d’un transfert TFTP
Sauvegarde d’image IOS
R1# copy flash: tftp
Source filename []? c2900-universalk9-mz.SPA.157-3.M5.bin
Address or name of remote host []? 192.168.1.100
Destination filename [c2900-universalk9-mz.SPA.157-3.M5.bin]?
Mise à jour d’image IOS
R1# copy tftp flash:
Address or name of remote host []? 192.168.1.100
Source filename []? c2900-universalk9-mz.SPA.158-3.M6.bin
Destination filename [c2900-universalk9-mz.SPA.158-3.M6.bin]?
Accessing tftp://192.168.1.100/c2900-universalk9-mz.SPA.158-3.M6.bin...
Loading c2900-universalk9-mz.SPA.158-3.M6.bin from 192.168.1.100 (via GigabitEthernet0/0):
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Configuration de l’image de démarrage
R1(config)# boot system flash:c2900-universalk9-mz.SPA.158-3.M6.bin
R1(config)# exit
R1# copy running-config startup-config
R1# reload
Gestion des erreurs avec le protocole TFTP
Le protocole TFTP peut générer plusieurs types d’erreurs qu’il est important de comprendre :
- File not found : Le fichier demandé n’existe pas sur le serveur TFTP
- Access violation : Permissions insuffisantes sur le serveur TFTP
- Disk full : Espace insuffisant sur la destination
- Illegal TFTP operation : Opération non supportée
- File already exists : Le fichier existe déjà sur la destination
R1# debug tftp
Activer le debug TFTP pour diagnostiquer les problèmes.
R1# undebug all
Désactiver tous les debugs.
Options avancées du protocole TFTP
Extension RFC 2348 – Blocksize
Le protocole TFTP supporte la négociation de la taille de bloc pour améliorer les performances :
R1(config)# ip tftp blocksize 8192
Configurer une taille de bloc de 8192 octets pour améliorer significativement les performances sur des réseaux rapides en réduisant le nombre de paquets ACK nécessaires.
Extension RFC 2349 – Timeout et Tsize
ip tftp timeout : Configure le timeout pour les retransmissions
tsize : Permet au serveur d’indiquer la taille totale du fichier avant transfert
Sécurité et bonnes pratiques
Le protocole TFTP ne fournit aucune sécurité native. Voici les bonnes pratiques essentielles :
Isolation réseau :
- Utiliser le protocole TFTP uniquement sur des réseaux de management isolés
- Implementer des ACL pour restreindre l’accès au serveur TFTP
- Désactiver le serveur TFTP quand il n’est pas utilisé
Alternatives sécurisées :
- Utiliser SCP (Secure Copy Protocol) quand disponible
- Considérer HTTPS pour les transferts sur des réseaux non sécurisés
- Chiffrer les fichiers de configuration avant transfert TFTP
R1(config)# ip scp server enable
Activer le serveur SCP comme alternative sécurisée.
Utilisation sur les switchs Cisco
Les commandes TFTP fonctionnent également sur les switchs Cisco avec la même syntaxe :
SWC# copy tftp flash:
Télécharger vers un switch de niveau 3.
SWE# copy running-config tftp
Sauvegarder la configuration d’un switch de niveau 2.
SWC# show boot
Vérifier la configuration de démarrage sur un switch.
Dépannage avancé
Vérification de connectivité
R1# ping 192.168.1.100
Tester la connectivité vers le serveur TFTP.
R1# telnet 192.168.1.100 69
Tester l’accessibilité du port TFTP.
Analyse des transferts
R1# show processes cpu | include TFTP
Vérifier les processus TFTP actifs.
R1# show ip sockets
Afficher les connexions réseau actives.
Configuration pour certification CCNA
Pour l’examen CCNA 200-301, il est crucial de maîtriser :
- Les commandes copy de base avec le protocole TFTP
- La gestion des images IOS via TFTP
- La sauvegarde et restauration de configurations
- Le diagnostic des problèmes de transfert TFTP
- Les bonnes pratiques de sécurité
Le protocole TFTP reste un protocole fondamental dans l’écosystème Cisco malgré ses limitations sécuritaires. Sa simplicité et sa fiabilité en font un outil incontournable pour l’administration des équipements réseau.
Pour approfondir tes connaissances et te préparer efficacement à la certification CCNA 200-301, je te recommande la formation complète disponible sur Formation CCNA 200-301 qui couvre en détail tous les protocoles et commandes nécessaires à ta réussite.
