IOS filsystem

Routrar och switchar som kör Cisco IOS har ett inbyggt filsystem som gör det möjligt att lagra, visa och hantera filer – till exempel konfigurationsfiler och operativsystem avbildningar (IOS). Detta filsystem kallas IOS File System (IFS) och fungerar ungefär som filsystem i vanliga operativsystem, fast med ett förenklat kommando gränssnitt.

I detta avsnitt går vi igenom hur du använder kommandon som dir, copy, show file systems och andra, för att hantera filer på routrar och switchar. Du får även lära dig hur du sparar och återställer konfigurationer via TFTP, USB eller en textfil med hjälp av terminalprogram som Tera Term.

Filsystem på routrar

I större nätverk är det varken rimligt eller effektivt att manuellt hålla reda på hur varje enhet är konfigurerad. Det handlar inte bara om att kunna läsa av den aktuella konfigurationen i exempelvis RAM-minnet, utan om att kunna återskapa en viss konfiguration när det verkligen behövs – till exempel vid fel, ominstallation eller utbyte av utrustning. För att göra detta på ett tillförlitligt sätt krävs att man förstår hur routerns och switchens filsystem fungerar och hur konfigurationsfiler kan sparas, kopieras och återställas.

Cisco IOS File System (IFS) ger administratörer möjlighet att navigera mellan olika kataloger, visa innehåll och hantera filer direkt från kommandoraden. Vilka kataloger som är tillgängliga beror på vilken typ av enhet du arbetar med.

Exemplet visar resultatet av kommandot show file systems, som listar alla tillgängliga filsystem på en Cisco 4221-router.

Router# show file systems
File Systems:
    Size(b)   Free(b)    Type    Flags    Prefixes
          -         -    opaque     rw    system:
          -         -    opaque     rw    tmpsys:
* 7194652672 6294822912    disk     rw    bootflash: flash:#
  256589824  256573440     disk     rw    usb0:
  1804468224 1723789312    disk     ro    webui:
          -        -     opaque     rw    null:
          -        -     opaque     ro    tar:
          -        -     network    rw    tftp:
          -        -     opaque     wo    syslog:
   33554432 33539983     nvram      rw    nvram:
          -        -     network    rw    rcp:
          -        -     network    rw    ftp:
          -        -     network    rw    http:
          -        -     network    rw    scp:
          -        -     network    rw    sftp:
          -        -     network    rw    https:
          -        -     opaque     ro    cns:
Router#

Kommandot show file systems visar användbar information om enhetens lagringssystem, till exempel mängden totalt och ledigt minne, vilken typ av filsystem det är samt vilka behörigheter som gäller. Behörigheterna kan vara skrivskyddat (ro), skrivbart (wo) eller både läs- och skrivbart (rw), och visas i kolumnen Flags i kommandots utdata.

Även om flera filsystem listas, är det framför allt tftp, flash och nvram som är relevanta i våra sammanhang.

Lägg märke till att filsystemet flash har ett asterisktecken (*) framför sig. Det betyder att flash är det aktuella standard filsystemet. Den startbara IOS-filen är lagrad i flash, vilket också markeras med ett has-tecken (#) efter filnamnet – detta visar att det är en startbar enhet.

Flash-filsystemet

Exemplet visar utdata från kommandot dir (directory).

Router# dir
Directory of bootflash:/
    11   drwx          16384  Aug 2 2019 04:15:13 +00:00 lost+found
370945   drwx          4096   Oct 3 2019 15:12:10 +00:00 .installer
338689   drwx          4096   Aug 2 2019 04:15:55 +00:00 .ssh
217729   drwx          4096   Aug 2 2019 04:17:59 +00:00 core
379009   drwx          4096   Sep 26 2019 15:54:10 +00:00 .prst_sync
80641    drwx          4096   Aug 2 2019 04:16:09 +00:00 .rollback_timer
161281   drwx          4096   Aug 2 2019 04:16:11 +00:00 gs_script
112897   drwx        102400   Oct 3 2019 15:23:07 +00:00 tracelogs
362881   drwx          4096   Aug 23 2019 17:19:54 +00:00 .dbpersist
298369   drwx          4096   Aug 2 2019 04:16:41 +00:00 virtual-instance
    12   -rw-            30   Oct 3 2019 15:14:11 +00:00 throughput_monitor_params
  8065   drwx          4096   Aug 2 2019 04:17:55 +00:00 onep
    13   -rw-            34   Oct 3 2019 15:19:30 +00:00 pnp-tech-time
249985   drwx          4096   Aug 20 2019 17:40:11 +00:00 Archives
    14   -rw-         65037   Oct 3 2019 15:19:42 +00:00 pnp-tech-discovery-summary
    17   -rw-       5032908   Sep 19 2019 14:16:23 +00:00 isr4200_4300_rommon_1612_1r_SPA.pkg
    18   -rw-     517153193   Sep 21 2019 04:24:04 +00:00 isr4200-universalk9_ias.16.09.04.SPA.bin
7194652672 bytes total (6294822912 bytes free)
Router#

Eftersom flash är det förvalda filsystemet listar kommandot dir innehållet i flash-minnet. Flera filer finns lagrade i flash-minnet, men det sista objektet i listan är särskilt intressant. Det är namnet på den aktuella Cisco IOS-image som körs i RAM-minnet.

Filsystemet NVRAM

För att visa innehållet i NVRAM börjar man med att köra kommandot cd nvram, vilket ändrar den aktuella arbetskatalogen till NVRAM-minnet. Därefter kan du använda kommandot pwd för att bekräfta att du befinner dig i rätt katalog. När detta är gjort används kommandot dir för att lista filerna som finns lagrade i NVRAM.

Router#
Router# cd nvram:
Router# pwd
nvram:/
Router# dir
Directory of nvram:/
32769   -rw-        1024   startup-config
32770   ----          61   private-config
32771   -rw-        1024   underlying-config
1       ----           4   private-KS1
2       -rw-        2945   cwmp_inventory
5       ----         447   persistent-data
6       -rw-        1237   ISR4221-2x1GE_0_0_0
8       -rw-          17   ecfm_ieee_mib
9       -rw-           0   ifIndex-table
10      -rw-        1431   NIM-2T_0_1_0
12      -rw-         820   IOS-Self-Sig#1.cer
13      -rw-         820   IOS-Self-Sig#2.cer
33554432 bytes total (33539983 bytes free)
Router#

Bland de filer som visas är det framför allt startup-config som är av intresse, eftersom det är denna fil som innehåller den sparade konfigurationen som laddas vid uppstart.

Filsystem på switchar

På en Cisco 2960-switch används flash-filsystemet för att hantera filer, såsom konfigurationsfiler och IOS-image. Du kan både kopiera filer till och från switchen samt arkivera programvaran genom att ladda upp eller ner filer vid behov.

För att se vilka filsystem som är tillgängliga på en Catalyst-switch används samma kommando som på en Cisco-router, vilket visas i exemplet nedan.

Switch# show file systems
File Systems:
       Size(b)   Free(b)    Type    Flags    Prefixes
*    32514048    20887552   flash      rw    flash:#
           -           -    opaque     rw    vb:
           -           -    opaque     ro    bs:
           -           -    opaque     rw    system:
           -           -    opaque     rw    tmpsys:
        65536       48897   nvram      rw    nvram:
           -           -    opaque     ro    xmodem:
           -           -    opaque     ro    ymodem:
           -           -    opaque     rw    null:
           -           -    opaque     ro    tar:
           -           -    network    rw    tftp:
           -           -    network    rw    rcp:
           -           -    network    rw    http:
           -           -    network    rw    ftp:
           -           -    network    rw    scp:
           -           -    network    rw    https:
           -           -    opaque     ro    cns:
Switch#

Använd en textfil för att säkerhetskopiera en konfiguration

Konfigurationsfiler kan sparas till en textfil med hjälp av Tera Term, som visas i figuren.

  1. I Tera Term klicka på Log i File-menyn.
  2. Välj den mapp och det filnamn du vill spara till och klicka på Save. Tera Term öppnar då fönstret Tera Term: Log och börjar spara alla kommandon och all utdata från terminalfönstret.
  3. För att fånga aktuell konfiguration, skriv kommandot show running-config eller show startup-config i privilegierat EXEC-läge. Den text som visas i terminalfönstret kommer också att sparas i den valda filen.
  4. När inspelningen är klar, klicka på Close i fönstret Tera Term: Log.
  5. Öppna filen för att kontrollera att konfigurationen har fångats korrekt och inte är skadad.

Återställ en konfiguration från en textfil

En konfiguration kan återanvändas genom att kopieras från en textfil och klistras in direkt i enheten. När detta sker tolkar Cisco IOS varje rad i filen som ett kommando och tillämpar det direkt i terminalen. För att det ska fungera korrekt behöver textfilen redigeras i förväg. Det innebär att krypterade lösenord bör ersättas med klartext, och att ta bort allt som inte är kommandon – till exempel –More—pauser eller meddelanden från systemet.

Det är också en god idé att inleda filen med kommandona enable och configure terminal, eller att manuellt gå in i globalt konfigurationsläge innan du klistrar in innehållet. Detta säkerställer att kommandona hamnar i rätt läge och tillämpas korrekt.

Som alternativ till att klistra in innehållet manuellt kan du också återställa en konfiguration direkt från en textfil med hjälp av terminalemulerings programmet Tera Term, vilket illustreras i figuren.

När du använder Tera Term, följ dessa steg:

  1. Klicka på Send file i File-menyn.
  2. Leta upp den fil som ska kopieras till enheten och klicka på Open.
  3. Tera Term klistrar då in filens innehåll i enheten.

Texten i filen tolkas som kommandon i CLI och blir enhetens aktuella running configuration.

Använd TFTP för att säkerhetskopiera och återställa en konfiguration

Kopior av konfigurationsfiler bör sparas som säkerhetskopior ifall något problem uppstår. Konfigurationsfiler kan lagras på en TFTP-server (Trivial File Transfer Protocol) eller på ett USB-minne. En kopia av konfigurationsfilen bör också inkluderas i nätverkets dokumentation.

För att spara den aktuella running configuration eller startup configuration till en TFTP-server, använd kommandot copy running-config tftp eller copy startup-config tftp, som visas i exemplet.

R1# copy running-config tftp
Remote host []? 192.168.10.254
Name of the configuration file to write[R1-config]? R1-Jan-2025
Write file R1-Jan-2025 to 192.168.10.254? [confirm]
Writing R1-Jan-2025 !!!!!! [OK]

Följ dessa steg för att säkerhetskopiera den aktuella konfigurationen (running-config) till en TFTP-server:

  1. Skriv kommandot copy running-config tftp.
  2. Ange IP-adressen till värddatorn där konfigurationsfilen ska sparas.
  3. Ange det filnamn som ska tilldelas konfigurationsfilen.
  4. Tryck på Enter för att bekräfta varje val.

För att återställa running configuration eller startup configuration från en TFTP-server används kommandot copy tftp running-config eller copy tftp startup-config.

Följ dessa steg för att återställa running configuration från en TFTP-server:

  1. Skriv kommandot copy tftp running-config.
  2. Ange IP-adressen till värddatorn där konfigurationsfilen är sparad.
  3. Ange filnamnet på konfigurationsfilen som ska hämtas.
  4. Tryck på Enter för att bekräfta varje val.

USB-portar på en Cisco-router

Funktionen för USB-lagring (Universal Serial Bus) gör det möjligt för vissa modeller av Cisco-routrar att använda USB-minnen. Det ger en praktisk möjlighet till sekundär lagring och kan även fungera som en extra startenhet.

IOS-image, konfigurationsfiler och andra filer kan kopieras till eller från USB-minnet med samma tillförlitlighet som vid användning av ett Compact Flash card. En router kan dessutom starta från valfri Cisco-image som är sparad på USB-minnet.

Idealiskt sett kan ett USB-minne innehålla flera versioner av Cisco IOS och flera olika router konfigurationer. Routern kan också ha andra USB typ, exempelvis en USB Type B mini-port som kan användas för konsol anslutning. USB-portarna på en Cisco 2911-router visas i figuren.

Använd kommandot dir för att visa innehållet på USB-minnet, som visas i exemplet.

Router# dir usbflash0:
Directory of usbflash0:/
1 -rw- 30125020 Dec 22 2032 05:31:32 +00:00 c3825-entservicesk9-mz.123-14.T
63158272 bytes total (33033216 bytes free)

Använd USB för att säkerhetskopiera och återställa en konfiguration

När du säkerhetskopierar till en USB-port är det en god idé att först köra kommandot show file systems för att verifiera att USB-enheten är ansluten och för att bekräfta dess namn, som visas i exemplet.

R1# show file systems
File Systems:
Size(b)      Free(b)     Type   Flags     Prefixes
             -           -      opaque       rw   archive:
             -           -      opaque       rw   system:
             -           -      opaque       rw   tmpsys:
             -           -      opaque       rw   null:
             -           -      network      rw   tftp:
*    256487424   184819712      disk         rw   flash0: flash:#
             -          -       disk         rw   flash1:
        262136     249270       nvram        rw   nvram:
             -          -       opaque       wo   syslog:
             -          -       opaque       rw   xmodem:
             -          -       opaque       rw   ymodem:
             -          -       network      rw   rcp:
             -          -       network      rw   http:
             -          -       network      rw   ftp:
             -          -       network      rw   scp:
             -          -       opaque       ro   tar:
             -          -       network      rw   https:
             -          -       opaque       ro   cns:
    4050042880 3774152704       usbflash     rw   usbflash0:
R1#

Observera att den sista raden i utdatan visar USB-porten och dess namn: ”usbflash0:”.

Därefter används kommandot copy run usbflash0:/ för att kopiera konfigurationsfilen till USB-minnet. Se till att använda det exakta namnet på USB-enheten, så som det visas i filsystemet. Snedstrecket (”/”) är valfritt, men det anger att filen ska sparas i rotkatalogen på USB-enheten.

IOS kommer att be om ett filnamn. Om en fil med det namnet redan finns på USB-enheten, kommer routern att fråga om den ska skriva över filen – vilket visas i exemplen.

Om du kopierar till USB utan att en fil redan existerar kommer IOS att visa följande utdata.

R1# copy running-config usbflash0:
Destination filename [running-config]? R1-Config
5024 bytes copied in 0.736 secs (6826 bytes/sec)

Om du kopierar till ett USB-minne och det redan finns en konfigurationsfil med samma namn på enheten, kommer IOS att visa en utdata som frågar om du vill skriva över den befintliga filen.

R1# copy running-config usbflash0:
Destination filename [running-config]? R1-Config
%Warning:There is a file already existing with this name
Do you want to over write? [confirm]
5024 bytes copied in 1.796 secs (2797 bytes/sec)
R1#

Använd kommandot dir för att se filen på USB-minnet, och använd sedan kommandot more för att visa innehållet i filen, som visas i exemplet.

R1# dir usbflash0:/
Directory of usbflash0:/
    1   drw-      0    Oct 15 2010 16:28:30 +00:00  Cisco
   16   -rw-   5024    Jan 7 2013 20:26:50 +00:00   R1-Config
4050042880 bytes total (3774144512 bytes free)
R1#
R1# more usbflash0:/R1-Config
!
! Last configuration change at 20:19:54 UTC Mon Jan 7 2013 by
admin version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
logging buffered 51200 warnings
!
no aaa new-model
!
no ipv6 cef
R1#

Återställ konfigurationer från ett USB-minne

För att kopiera tillbaka en konfiguration från USB krävs det att filen R1-Config först redigeras i en textredigerare. Detta för att ta bort oönskade rader, som till exempel meddelande från systemet eller krypterade lösenord, innan den används.

Lösenords återställning (Password Recovery Procedures)

Lösenord på nätverksenheter används för att förhindra obehörig åtkomst. Om ett lösenord är krypterat – exempelvis ett enable secret-lösenord – måste det ersättas efter att det återställts.

Även om exakta steg varierar beroende på enhet, följer lösenords återställning alltid samma grundprincip:

  1. Gå in i ROMMON-läge (ROM Monitor Mode).
  2. Ändra configuration register för att förhindra automatisk inläsning av startup-config.
  3. Kopiera startup-config till running-config.
  4. Ändra lösenordet.
  5. Spara den nya running-config som startup-config.
  6. Starta om enheten (reload).

För lösenords återställning krävs konsol åtkomst till enheten, via en terminal eller ett terminalprogram på en dator. Terminal inställningar för åtkomst till enheten:

  • Baud rate: 9600
  • Databitar: 8
  • Paritet: None
  • Stopbitar: 1
  • Flödeskontroll: None

Exempel på lösenordsåterställning

  1. Enter the ROMMON mode.
  2. Ändra configuration register
  3. Kopiera startup-config till running-config
  4. Ändra lösenordet
  5. Spara running-config som ny startup-config

Med konsolåtkomst kan du nå ROMMON-läge genom att använda en break-sekvens under uppstarten, eller genom att fysiskt ta bort flashminnet när enheten är avstängd. När du lyckats visas prompten:

Readonly ROMMON initialized
 
monitor: command "boot" aborted due to user interrupt
rommon 1 >

Obs: I terminalprogrammet PuTTY används Ctrl+Break som break-sekvens. En lista över motsvarande tangenter i andra terminalprogram eller operativsystem kan hittas via en internet sökning.

ROMMON-mjukvaran har stöd för vissa grundläggande kommandon, till exempel confreg. Kommandot confreg 0x2142 används för att ställa in configuration register till värdet 0x2142. När registret är inställt på 0x2142 kommer enheten att ignorera startup-config filen vid uppstart. Det är i denna fil som sparade – och ofta bortglömda – lösenord finns.

Efter att du ställt in configuration register till 0x2142, skriv kommandot reset vid prompten för att starta om enheten. Under omstarten, medan IOS dekomprimeras, kan du återigen behöva använda en break-sekvens.

Exemplet visar terminalutdata från en Cisco 1941-router i ROMMON-läge, efter att en break-sekvens använts under uppstarts processen.

rommon 1 > confreg 0x2142
rommon 2 > reset
 
System Bootstrap, Version 15.0(1r)M9, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2010 by cisco Systems, Inc.
(output omitted)

När routern har startat om, kopiera filen startup-config till running-config med kommandot copy startup-config running-config, precis som visas i exemplet.

Notera att prompten ändras till R1#, eftersom routerns namn är inställt till R1 i startup-konfigurationen.

Varning: Använd inte kommandot copy running-config startup-config i detta läge. Det kommandot skriver över den ursprungliga startup-konfigurationen och kan leda till att viktig information går förlorad.

Router# copy startup-config running-config
Destination filename [running-config]?
 
1450 bytes copied in 0.156 secs (9295 bytes/sec)
R1#

Eftersom du nu befinner dig i privilegierat EXEC-läge (R1#), kan du konfigurera om alla nödvändiga lösenord.

Observera: Lösenordet "cisco" används här enbart som exempel – det är inte ett säkert lösenord och bör aldrig användas i verkliga nätverk. Använd alltid starka, unika lösenord.

Exempel:

R1# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)# enable secret cisco

När du har konfigurerat nya lösenord, behöver du:

Återställa configuration register till sitt standardvärde (0x2102) så att routern vid nästa omstart laddar startup-konfigurationen som vanligt. Spara den aktuella konfigurationen (running-config) till startup-config.

Exempel:

R1(config)# config-register 0x2102
R1(config)# end
R1# copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
R1#

Starta om enheten, se exemplet.
Som visas i exemplet kommer du att uppmanas att bekräfta omstarten. Tryck på Enter för att fortsätta, eller Ctrl+C om du vill avbryta.

Efter omstarten använder enheten de nykonfigurerade lösenorden för autentisering. Använd gärna olika show-kommandon för att kontrollera att all konfiguration är kvar och att allt fungerar som det ska. Kontrollera till exempel att alla nödvändiga interface är aktiverade och inte har blivit nedstängda under återställningsprocessen.

För detaljerade instruktioner om lösenordsåterställning för en specifik enhet, rekommenderas att söka på internet.

R1# reload
Proceed with reload? [confirm]

*Mar  1 13:04:53.009: %SYS-5-RELOAD: Reload requested by console. Reload Reason: Reload Command.

Efter omstarten kommer enheten att använda de nya lösenorden du konfigurerade för autentisering.