Jeremy’s IT Lab lecture video:

Day 43 - FTP & TFTP


Commands


FTP & TFTP Info

File Transfer Protocol (FTP) and Trivial File Transfer Protocol (TFTP) are industry standard protocols used to transfer files over a network

  • FTP servers use port 20 for FTP Data connections and port 21 for FTP Control connections.
  • TFTP servers use port 69.
  • They both use a client-server model.
    • Clients can use FTP or TFTP or copy files from a server.
    • Clients can use FTP or TFTP to copy files to a server.

For network engineers, the most common use for FTP/TFTP is to upgrade the operating system of a network device, as you can use it to download a newer version of IOS and then reboot the device with the new IOS image.

Example: Updating an IOS image

Trivial File Transfer Protocol (TFTP) General Information

TFTP is called ‘Trivial’ because it is a simpler version of FTP and has only basic features.

  • TFTP servers listen on port 69
  • Uses UDP, which is connectionless and doesn’t provide reliability with retransmissions, however, TFTP has built-in features to ensure the delivery of files.
  • Only allows a client to copy a file to or from a TFTP server.
  • No authentication system (Username/Password), so servers will respond to all TFTP requests.
  • No encryption, so all data is sent in plain text.
  • Best used in controlled environments to quickly transfer small files.

TFTP Reliability

The TFTP protocol provides some reliability by having a built-in acknowledgement system for file transfers.

  • Every TFTP data message is acknowledged with an Ack message:
    • If a client is transferring files to a server, the server will send Ack messages.
    • If the server is transferring files to a client, the client will send Ack messages.
  • Timers are used, and if an expected message isn’t received in time, the waiting device will re-send its previous message.

TFTP: Lock-step communication

This method of communicating in TFTP where one party sends the files and the other waits for an Ack reply is called Lock-step communication.

  • The client and server alternately send a message and then wait for a reply.
  • And retransmissions are sent as needed.
Lock-step communication demonstration

TFTP Connections

TFTP file transfers have three different phases:

  1. Connection
    • TFTP client sends a request and the server responds back, initializing the connection.
  2. Data Transfer
    • The client and server exchange TFTP messages. One sends data while the other responds with Ack messages.
  3. Connection Termination
    • After the last data message has been sent, a final Ack is sent to terminate the connection.
TFTP connections demonstration

Extra: TFTP Transfer IDs

TFTP uses a Transfer ID system when sending files between the client and the server.

  • When the client sends the first message to the server, the source port is a random ephemeral range port, and the destination port is UDP 69.
  • This random port is called a ‘Transfer Identifier (TID)’ and identifies the data transfer.
  • The server then also selects a random TID to use as the source port when it replies, rather than port 69
  • When the client sends the next message, it will change the destination port from port 69 to the newly established server TID
Transfer IDs demonstration

File Transfer Protocol (FTP)

File Transfer Protocol (FTP) is the more advanced file sharing protocol.

  • FTP servers use port 20 for FTP Data connections and port 21 for FTP Control connections.
  • Uses TCP, which is connection-based and ensures the delivery of files
  • Allows for file transfers, navigation of file directories, adding and removing directories, listing files, and etc.
  • Has an authentication system (Username/Password).
  • No encryption, so all data is sent in plain text.
  • The client sends FTP commands to the server to perform these functions.

FTP Connections Types

FTP uses two types of connections:

  1. FTP Control (TCP 21)
    • Established and used to send FTP commands and replies.
  2. FTP Data (TCP 20)
    • Established and terminated as needed when files or data are transferred between devices.

FTP Control Connections

FTP Control is established between devices and used to send FTP orders (commands) from the client to the server.

FTP Control connection demonstration

FTP Data Connections

FTP Data connections are established and terminated as needed in order to send and receive files between the two participating parties.

  • There are two types of FTP Data connection modes:
    1. Active Mode
      • In this mode, the server initiates the TCP connection.
      • This is the default method that FTP Data connections use.
    2. Passive Mode
      • In this mode, the client initiates the TCP connection.
      • It is often used when the client is behind a firewall, which could block incoming connections from the server.
FTP Data - Active ModeFTP Data - Passive Mode

Firewalls and connections

  • Firewalls usually don’t permit ‘outside’ devices to initiate connections.
  • In this case, FTP passive mode is used and the client (which is behind the firewall) initiates the TCP connection.

FTP VS. TFTP

FTPTFTP
Uses TCP
(ports 20, 21)
Uses UDP
(port 69)
Clients can use FTP commands to perform various actions
(Copy files, add and remove directories, list directories, etc.)
Clients can only copy files to and from the server.
Username/Password authenticationNo Username/Password authentication
ComplexSimple

General Cisco IOS Information

IOS File Systems

A file system is a way of controlling how data is stored and retrieved.

  • You can see the file systems of a Cisco IOS device with the show file systems command.
  • The most important file systems for the CCNA are:
    1. Disk
      • Storage devices such as flash memory.
    2. Opaque
      • Used for logical internal functions.
    3. NVRAM
      • Internal Non-volatile RAM. (which stays after the device has been shutdown)
      • The startup-config file is stored in here.
    4. Network
      • Represents external file systems.
      • For example, external FTP/TFTP servers.

Cisco IOS Updating (Configurations)

  • show version
    • Views the current version of IOS.
  • show flash
    • Shows the flash memory’s contents.
    • You can also view the identify IOS images by looking for the .bin file extension in the output.
  • boot system FILEPATH
    • Allows you to change the boot system IOS image.
    • Used for changing IOS versions.
    • (If no file-path is specified, the system will default to the first IOS image it finds)
  • delete FILEPATH
    • Deletes the specified file.
  • copy SOURCE DESTINATION
    • The general command used to copy files from source to destination
  • copy tftp: flash:
    • Used to copy files from a TFTP server to the flash memory of the device.
    • It asks for the server’s IP, source filename and the destination filename.
  • copy ftp: flash:
    • Used to copy files from a FTP server to the flash memory of the device.
    • It asks for the server’s IP, source filename and the destination filename.
    • If authentication is enabled, then you have to configure it through the ip ftp username USERNAME and ip ftp password PASSWORD commands.
  • ip ftp username USERNAME
    • Configures the FTP username used in FTP connections.
  • ip ftp password PASSWORD
    • Configures the FTP password used in FTP connections.

Jeremy’s IT Lab előadásvideó:

43. Nap - FTP és TFTP


Parancsok


FTP & TFTP Információk

A File Transfer Protocol (FTP) és a Trivial File Transfer Protocol (TFTP) iparági szabvány protokollok, amelyeket fájlok hálózaton keresztüli átvitelére használnak.

  • Az FTP szerverek a 20-as portot használják FTP Data kapcsolatokhoz és a 21-es portot FTP Control kapcsolatokhoz.
  • A TFTP szerverek a 69-es portot használják.
  • Mindkettő kliens-szerver modellt alkalmaz:
    • A kliensek letölthetnek (copy) fájlokat a szerverről.
    • A kliensek feltölthetnek (copy) fájlokat a szerverre.

Hálózati mérnökök számára a leggyakoribb felhasználási eset az FTP / TFTP protokollokra a hálózati eszközök operációs rendszerének (IOS image) frissítése vagy mentése, valamint a konfigurációs fájlok biztonsági mentése.

Példa: Egy IOS image frissítése

Trivial File Transfer Protocol (TFTP) Általános Információk

A TFTP azért kapta a 'Trivial' elnevezést, mert az FTP egy leegyszerűsített változata, és csak alapvető fájlátviteli funkciókkal rendelkezik.

  • A TFTP szerverek a 69-es porton figyelnek.
  • UDP-t használ, amely kapcsolatmentes (connectionless) és a szállítási rétegben nem biztosít újraküldést, viszont a TFTP alkalmazásrétegi beépített mechanizmussal garantálja a fájlok sikeres átvitelét.
  • Kizárólag fájlok küldését és fogadását teszi lehetővé egy TFTP szerver és kliens között.
  • Nincs hitelesítési rendszere (Username / Password), így a szerverek minden beérkező TFTP kérésre válaszolnak.
  • Nincs titkosítás, minden adat nyers szövegként utazik.
  • Kifejezetten megbízható helyi hálózatokban ajánlott kisebb fájlok gyors mozgatására vagy bootstrap indításra.

TFTP Megbízhatóság (Reliability)

A TFTP beépített nyugtázási mechanizmussal gondoskodik a megbízhatóságról az adatátvitel során:

  • Minden elküldött TFTP adatblokkot egy Ack (nyugta) üzenet igazol vissza:
    • Ha a kliens tölt fel fájlt a szerverre, a szerver küldi az Ack üzeneteket.
    • Ha a szerver küld fájlt a kliensnek, a kliens küldi az Ack üzeneteket.
  • Időzítőket (timer) használ, és ha a várt nyugta nem érkezik meg időben, a küldő fél újraküldi az előző adatcsomagot.

TFTP: Lock-step kommunikáció

A TFTP-nek ezt a működési modelljét, ahol az egyik fél elküld egy adatblokkot, majd megvárja a partner Ack válaszát a következő blokk küldése előtt, Lock-step communication-nek (lépcsőzetes/szinkron kommunikációnak) nevezik.

  • A kliens és a szerver felváltva küldenek üzenetet, majd várnak a válaszra.
  • Szükség esetén újraküldések (retransmissions) történnek.
Lock-step communication bemutatása

TFTP Kapcsolatok (Connections)

A TFTP fájlátvitel három fő szakaszból áll:

  1. Kapcsolatfelépítés (Connection)
    • A TFTP kliens kérést küld (olvasási vagy írási), a szerver válaszol, és inicializálják a kapcsolatot.
  2. Adatátvitel (Data Transfer)
    • A kliens és a szerver adatblokkokat és Ack nyugtákat cserél egymással.
  3. Kapcsolatbontás (Connection Termination)
    • Az utolsó adatblokk elküldése után egy végső Ack üzenet lezárja a munkamenetet.
TFTP kapcsolatok folyamata

Kiegészítés: TFTP Transfer ID-k

A TFTP egy Transfer ID (átviteli azonosító) rendszert használ a kliens és a szerver közötti forgalom azonosítására:

  • Amikor a kliens elküldi az első kérést a szervernek, a source port egy véletlenszerű dinamikus port, a destination port pedig az UDP 69.
  • Ezt a véletlen portot nevezzük Transfer Identifier-nek (TID), amely egyértelműen azonosítja ezt a fájlátvitelt.
  • A szerver válaszként szintén egy véletlenszerű TID portot választ ki forrásportként (nem a 69-est használja a válaszhoz).
  • A következő üzenetekben a kliens már a szerver által megadott új TID portra küldi a csomagokat célportként a 69-es helyett.
Transfer ID-k működésének bemutatása

File Transfer Protocol (FTP)

A File Transfer Protocol (FTP) egy jóval fejlettebb, teljes funkcionalitású fájlmegosztó protokoll.

  • Az FTP szerverek a 20-as portot használják FTP Data kapcsolatokhoz és a 21-es portot FTP Control kapcsolatokhoz.
  • TCP-t használ, amely kapcsolat-orientált, és megbízható adatátvitelt biztosít.
  • Lehetővé teszi a fájlok átvitelét, könyvtárszerkezetben való navigációt, mappák létrehozását/törlését, fájlok listázását stb.
  • Rendelkezik felhasználói hitelesítési rendszerrel (Username / Password).
  • Nincs titkosítás, a jelszavak és adatok egyszerű szövegként utaznak a hálózaton.
  • A kliens különböző FTP parancsokat küld a szervernek ezen műveletek végrehajtására.

FTP Kapcsolattípusok (FTP Connection Types)

Az FTP két különálló kapcsolatot használ:

  1. FTP Control (Vezérlő kapcsolat - TCP 21)
    • Folyamatosan nyitva marad a munkamenet alatt az FTP parancsok és válaszkódok küldésére.
  2. FTP Data (Adatkapcsolat - TCP 20 vagy dinamikus port)
    • Csak szükség szerint épül fel és zárul le, amikor tényleges fájl- vagy könyvtárlista-átvitel történik.

FTP Control Kapcsolatok

Az FTP Control kapcsolat jön létre először az eszközök között, és a kliens ezen keresztül küld vezérlő utasításokat (parancsokat) a szervernek.

FTP Control kapcsolat bemutatása

FTP Data Kapcsolatok

Az FTP Data kapcsolatok igény szerint épülnek fel és bomlanak le fájlok küldéséhez és fogadásához.

  • Az FTP Data kapcsolatnak két üzemmódja van:
    1. Active Mode (Aktív mód)
      • Ebben a módban a szerver kezdeményezi a TCP adatkapcsolatot a kliens felé (a szerver forrásportja a 20-as).
      • Ez az FTP alapértelmezett hagyományos adatkapcsolati módja.
    2. Passive Mode (Passzív mód)
      • Ebben a módban a kliens kezdeményezi a TCP adatkapcsolatot a szerver egy dinamikus portja felé.
      • Gyakran használatos, ha a kliens tűzfal (firewall) vagy NAT mögött van, amely blokkolná a szerver felől érkező bejövő kapcsolatot.
FTP Data - Active ModeFTP Data - Passive Mode

Tűzfalak és kapcsolatok

  • A tűzfalak általában tiltják a külső eszközök által kezdeményezett bejövő kapcsolatokat.
  • Ilyen esetben az FTP passive mode-ot használják, így a kliens (amely a tűzfal mögött ül) indítja el a TCP adatkapcsolatot kifelé.

FTP VS. TFTP Összehasonlítás

FTPTFTP
TCP-t használ
(portok: 20, 21)
UDP-t használ
(port: 69)
A kliensek számos FTP paranccsal végezhetnek műveleteket
(fájlok másolása, mappák kezelése, listázás stb.)
A kliensek kizárólag fájlokat tölthetnek le vagy fel a szerverre.
Username / Password hitelesítés támogatottNincs felhasználónév/jelszó hitelesítés
Komplexebb működésEgyszerű, minimalista működés

Általános Cisco IOS Információk

IOS Fájlrendszerek (File Systems)

A fájlrendszer (file system) határozza meg, hogyan tárolódnak és érhetők el az adatok a háttértárakon.

  • A Cisco IOS eszköz fájlrendszereit a show file systems paranccsal tekinthetjük meg.
  • A CCNA szempontjából a legfontosabb fájlrendszertípusok:
    1. Disk
      • Fizikai háttértárak, mint a flash memória (ahol az IOS képmások találhatók).
    2. Opaque
      • Belső, logikai funkciókra használt virtuális fájlrendszer.
    3. NVRAM
      • Belső, nem felejtő memória (amely kikapcsolás után is megőrzi tartalmát).
      • Itt tárolódik a startup-config fájl.
    4. Network
      • Hálózaton keresztüli külső fájlrendszerek elérését reprezentálja.
      • Például külső FTP vagy TFTP szervereket.

Cisco IOS Frissítés (Konfiguráció)

  • show version
    • Megmutatja a jelenleg futó IOS verziót és hardveradatokat.
  • show flash
    • Kilistázza a flash memória tartalmát.
    • Az IOS képmások a kimenetben található .bin kiterjesztésű fájlokról ismerhetők fel.
  • boot system FILEPATH
    • Lehetővé teszi az indítandó rendszer IOS image fájl elérési útjának megadását.
    • IOS verzióváltáshoz használatos.
    • (Ha nincs megadva file-path, a rendszer alapértelmezetten a flash memóriában talált legelső IOS image-et tölti be).
  • delete FILEPATH
    • Törli a megadott fájlt.
  • copy SOURCE DESTINATION
    • Általános parancs fájlok másolására forrásból célba.
  • copy tftp: flash:
    • Fájlok (pl. IOS image) letöltésére szolgál egy TFTP szerverről az eszköz flash memóriájába.
    • Interaktív módon bekéri a szerver IP címét, a forrásfájl nevét és a célfájl nevét.
  • copy ftp: flash:
    • Fájlok letöltésére szolgál egy FTP szerverről a flash memóriába.
    • Interaktívan bekéri a szerver IP címét, a forrásfájl és célfájl nevét.
    • Ha a szerver hitelesítést kér, előzőleg meg kell adni a felhasználónevet és jelszót az ip ftp username USERNAME és ip ftp password PASSWORD parancsokkal.
  • ip ftp username USERNAME
    • Beállítja az FTP kapcsolatokhoz használandó felhasználónevet.
  • ip ftp password PASSWORD
    • Beállítja az FTP kapcsolatokhoz használandó jelszót.