Le protocole TFTP

Article de blog | Finger In The Net

Le protocole TFTP cisco

Le protocole TFTP

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

les échanges 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 :

  1. Les commandes copy de base avec le protocole TFTP
  2. La gestion des images IOS via TFTP
  3. La sauvegarde et restauration de configurations
  4. Le diagnostic des problèmes de transfert TFTP
  5. 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.

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

CURSUS DE FORMATION

Administrateur Réseau