Table of Contents

Cisco Router 2600

Reset configurazione

Router Cisco 2600, versione del sistema operativo (show version):

Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-IS-M), Version 12.0(7)T,  RELEASE SOFTWARE (fc2)
Copyright (c) 1986-1999 by cisco Systems, Inc.
Compiled Tue 07-Dec-99 02:21 by phanguye

Immagine del sistema operativo in flash memory (show flash):

System flash directory:
File  Length   Name/status
  1   7330920  c2600-is-mz.120-7.T.bin
  2   25       snmpengineid
[7331076 bytes used, 1057532 available, 8388608 total]
8192K bytes of processor board System flash (Read/Write)

Interfacce presenti (show interfaces):

Per resettare completamente la configurazione del router ai valori di fabbrica e per impostare le password di accesso (rispettivamente la password per accesso da console, per la modalità enable e per l'accesso via network):

Router>enable
Router#erase startup-config
Router#reload
... (system reboot)
... (initial configuration dialog: no)
Router>enable
Router#copy running-config startup-config

Router>enable
Router#configure terminal
Router(config)#line console 0
Router(config-line)#login
Router(config-line)#password CiscoRut
Router(config-line)#Ctrl-Z

Router>enable
Router#configure terminal
Router(config)#enable secret CiscoRut
Router(config)#Ctrl-Z

Router>enable
Router#configure terminal
Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password CiSPO
Router(config-line)#^Z

Bootstrap automatico

Durante il boot il router si può bloccare su initial configuration dialog, ignorando la startup-config. Ciò dipende dal bit 6 (0x40) del configuration register, se è impostato ad 1 il router ignora la startup-config al boot. Per vedere il valore corrente del configuration register:

Router>show version
...
Configuration register is 0x2142

Per modificare il valore:

Router>enable
Router#configure terminal
Router(config)#config-register 0x2102

Oppure se si è interrotta la sequenza di boot dalla console con un Ctrl-BRAK e si è arrivati al prompt del ROM monitor:

rommon 1 >confreg 0x2102
rommon 2 >reset

enable password

Vedere anche il paragrafo Gestione password.

Per impostare la password di enable (viene chiesta quando si usa tale comando per ottenere i permessi di amministratore):

enable secret MySecret

Usare invece questo comando solo su vecchie versioni del S.O. che non supportano la secret:

enable password MySecret

Se il S.O. supporta i due tipi di password e se sono impostate entrambe, la secret ha la precedenza e viene verificata solo quella.

Le due password impostate si vedono nello show running-config:

enable secret 5 $1$v4W3$P5zy5FOyWvJEdcwl3WqW0.
enable password 7 13151E021B03

Il 5 significa che la password è criptata (oneway hash), invece il 7 significa che la password è hidden (cioè offuscata).

Configurazione TCP/IP

Configurazione dell'interfaccia Ethernet

Mostra la configurazione attuale della scheda Ethernet, abilita il routing ip, assegna un indirizzo ip e attiva l'interfaccia. Salva la configurazione in NVRAM.

Router>enable
Router#show interfaces

Router#configure terminal
Router(config)#ip routing
Router(config)#interface ethernet 0/0
Router(config-if)#ip address 192.168.2.7 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#^Z
Router#write memory

Configurazione di un secondo IP address su Ethernet

Mostra la configurazione, abilita un numero di ip scondario su una interfaccia e poi lo toglie.

Router>enable
Router#show running-confg

Router>enable
Router#configure terminal
Router(config)#interface ethernet 0/0
Router(config-if)#ip address 10.1.1.1 255.0.0.0 secondary
Router(config-if)#^Z
Router#write memory

Router>enable
Router#configure terminal
Router(config)#interface ethernet 0/0
Router(config-if)#no ip address 10.1.1.1 255.0.0.0 secondary
Router(config-if)#^Z
Router#write memory

Configurazione del default gateway

Mostra la configurazione attuale del default gateway, attiva il routing ip e aggiunge un default gateway. Infine lo toglie.

ATTENZIONE: il comando ip default-gateway 192.168.2.2 non ottiene lo scopo desiderato. Cisco intende per dafault-gateway quello utilizzato quando non è attivo il routing ip, ma è in funzione il bridging. In quel caso per vedere il default gateway in uso “show ip redirects”.

Router>show ip route

Router>enable
Router#configure terminal
Router(config)#ip routing
Router(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.2 permanent
Router(config)#^Z
Router#write memory

Router>enable
Router#configure terminal
Router(config)#no ip route 0.0.0.0 0.0.0.0 192.168.2.2 permanent
Router(config)#^Z
Router#write memory

Configurazione di una route statica

Mostra le route statiche definite, ne aggiunge una e poi la toglie.

Routeri>show ip route
Router>enable
Router#show running-config | include ip route

Router>enable
Router#configure terminal
Router(config)#ip route 172.16.0.0 255.255.0.0 192.168.2.2
Router(config)#^Z
Router#write memory

Router>enable
Router#configure terminal
Router(config)#no ip route 172.16.0.0 255.255.0.0 192.168.2.2
Router(config)#^Z
Router#write memory

Configurazione del DNS

Mostra la configurazione attuale del server DNS, imposta un server DNS e lo rimuove.

Router>enable
Router#show running-config | include name-server

Router>enable
Router#configure terminal
Router(config)#ip name-server 192.168.2.2
Router(config)#^Z
Router#write memory

Router>enable
Router#configure terminal
Router(config)#no ip name-server
Router(config)#^Z
Router#write memory

Configurazione del NAT (SNAT)

NAT statico (NAT uno-a-uno, usato di rado)

NOTA: vedere il classico SNAT più avanti.

Configura il NAT statico di un singolo host interno (A.B.C.D) con un singolo indirizzo IP pubblico (E.F.G.H). L'interfaccia verso la rete interna è Ethernet0/0 e quella verso la rete esterna e' BRI0/0.

Router#configure terminal
Router(config)#interface Ethernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#interface BRI 0/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#ip nat inside source static A.B.C.D E.F.G.H
Router(config)#^Z

Router#show running-config | include ip nat

Invece dell'IP pubblico E.F.G.H è possibile specificare il nome dell'interfaccia (ad esempio se è dinamico), questo esempio è per un'interfaccia ppp su ATM, denominata Dialer1:

Router(config)#ip nat inside source static A.B.C.D interface Dialer1

Appena si imposta questa configurazione l'accesso telnet dall'interfaccia esterna viene interrotto, in quanto tutto il traffico viene dirottato sull'host interno. Quindi non è necessario attivare il port forward verso l'host interno.

Per rimuovere la configurazione:

Router#configure terminal
Router(config)#no ip nat inside source static A.B.C.D E.F.G.H.
Router(config)#interface Ethernet 0/0
Router(config-if)#no ip nat inside
Router(config-if)#exit
Router(config)#interface BRI 0/0
Router(config-if)#no ip nat outside
Router(config-if)#exit
Router(config)#^Z

NAT dinamico (SNAT classico)

Configura il NAT dinamico degli host interni (A.B.C.0/24) usando un pool di indirizzi esterni. Il pool è costituito da un singolo indirizzo (E.F.G.H/32), cioè inizio e fine pool coincidono, pertanto è necessario l'overload dell'inside global address E.F.G.H. L'interfaccia verso la rete interna è Ethernet 0/0 e quella verso la rete esterna e' BRI0/0.

Se il pool di indirizzi esterni è abbastanza ampio si può evitare l'overload (si omette l'opzione overload). Potranno essere nattati solo tanti host quanti sono gli indirizzi esterni del pool.

Router#configure terminal
Router(config)#ip nat pool NAT-POOL E.F.G.H E.F.G.H prefix-length 1
Router(config)#access-list 1 permit A.B.C.0 0.0.0.255
Router(config)#ip nat inside source list 1 pool NAT-POOL overload
Router(config)#interface Ethernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#interface BRI 0/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#^Z

Router#show running-config | include ip nat

Nel comando ip nat pool invece di prefix-length si può usare netmask, che però va intesa alla rovescia, cioè per indicare un solo indirizzo IP si mette 0.0.0.0.

Nel caso in cui l'IP pubblico sia dinamico, si può utilizzare il nome dell'interfaccia invece che definire un pool di indirizzi IP:

access-list 1 permit 10.11.12.0 0.0.0.255
ip nat inside source list 1 interface Dialer1 overload

Per rimuovere la configurazione:

Router#configure terminal
Router(config)#no ip nat pool NAT-POOL E.F.G.H E.F.G.H netmask 255.255.255.252
Router(config)#no access-list 1 permit A.B.C.0 0.0.0.255
Router(config)#no ip nat inside source list 1 pool NAT-POOL overload
Router(config)#interface Ethernet 0/0
Router(config-if)#no ip nat inside
Router(config-if)#exit
Router(config)#interface BRI 0/0
Router(config-if)#no ip nat outside
Router(config-if)#exit
Router(config)#^Z

Port forward (DNAT)

Ridirezione della porta 23 TCP dall'indirizzo esterno A.B.C.D verso la porta 23 dell'indirizzo interno E.F.G.H. L'interfaccia interna è Ethernet 0/0 e quella esterna e' BRI 0/0.

   Router>enable
   Router#configure terminal
   Router(config)#interface Ethernet 0/0
   Router(config-if)#ip nat inside
   Router(config-if)#exit
   Router(config)#interface BRI 0/0
   Router(config-if)#ip nat outside
   Router(config-if)#exit
   Router(config)#ip nat inside source static tcp E.F.G.H 23 A.B.C.D 23
   Router(config)#^Z

Al posto dell'indirizzo IP esterno è possibile usare il nome dell'interfaccia (ad esempio per una punto-punto con IP dinamico):

ip nat inside source static tcp 192.168.2.253 80 interface Dialer2 8443

Doppio PVC DSL con destination routing e NAT

Scenario: router ADSL con due canali PVC (connessione PPP), il primo usato come rotta predefinita, senza NAT. Il secondo utilizzato solo per raggiungere uno specifico host (server VoIP), ma con SNAT usando l'indirizzo punto-punto; su questo PVC infatti solo l'indirizzo punto-punto è pubblicamente raggiungibile.

Anzitutto la configurazione delle due interfacce dial-up:

interface Dialer1
 ip address negotiated
 ip virtual-reassembly
 encapsulation ppp
 dialer pool 1
 no cdp enable
 no ppp chap wait
 ppp pap sent-username MyLogin password 0 MySecret
 no ppp pap wait
!
interface Dialer2
 description BANDA PER VOIP
 ip address negotiated
 ip nat outside
 ip virtual-reassembly
 encapsulation ppp
 dialer pool 2
 no cdp enable
 no ppp chap wait
 ppp pap sent-username MyLogin2 password 0 MySecret2
!

Con le seguenti impostazioni si definisce il NAT quando la destinazione è il server VoIP (213.251.147.16) e l'interfaccia d'uscita è Dialer2

ip nat inside source route-map VOIP-MAP interface Dialer2 overload
access-list 100 permit ip any host 213.251.147.16

route-map VOIP-MAP permit 10
 match ip address 100
 match interface Dialer2
!

Infine con una semplice regola di routing si instrada opportunamente il traffico verso il server VoIP:

ip route 213.251.147.16 255.255.255.255 Dialer2

Rimozione regola NAT in uso

Non è possibile rimuovere una regola di NAT se questa è stata usata di recente, il router risponde Static entry in use, cannot remove. Si deve ripulire la lista delle translations in uso:

router# confgure terminal
router(config)# no ip nat inside source static tcp 192.168.1.2 1196 interface Dialer1 1196
%Static entry in use, cannot remove
router(config)# exit
router# show ip nat translations
Pro Inside global         Inside local          Outside local         Outside global
...
tcp 185.21.72.66:1196     192.168.1.2:1196      213.182.68.98:35942   213.182.68.98:35942
...
router# clear ip nat translation forced
router# confgure terminal
router(config)# no ip nat inside source static tcp 192.168.1.2 1196 interface Dialer1 1196
router(config)# exit
router# write memory

Dovrebbe essere possibile rimuovere selettivamente solo le regole interessate, vedere l'help del comando clear ip nat.

Aggiornamento Sistema Operativo IOS

Installare sul PC un server TFTP e abilitarlo in scrittura (la document root in Debian è /srv/tftp/):

apt-get install tftpd-hpa

Per abilitare il server TFTP in scrittura mettere in /etc/default/tftpd-hpa:

TFTP_OPTIONS="--secure --create"

Il server sta in ascolto sulla porta UDP/69, ma il trasferimento di dati avviene su porte effimere. Bisogna essere sulla stessa rete oppure il firewall deve avere il connection tracking TFTP abilitato:

10:55:39.494731 IP 77.239.141.26.55143 > 10.0.1.2.69:  31 WRQ "c2600-i-mz.122-12b.bin" octet
...
11:08:09.448816 IP 10.0.1.2.48939 > 77.239.141.26.55143: UDP, length 4
11:08:09.495166 IP 77.239.141.26.55143 > 10.0.1.2.48939: UDP, length 516

Salvare l'immagine esistente nel router:

Router#show flash: 

System flash directory:
File  Length   Name/status
  1   5427564  c2600-i-mz.122-12b.bin  
  2   749      cisco2600_nat_config  
[5428444 bytes used, 27601700 available, 33030144 total]
32768K bytes of processor board System flash (Read/Write)

router#copy flash:c2600-i-mz.122-12b.bin tftp://62.48.51.8

Con la vecchia versione 11.3 la sintassi è leggermente diversa:

Router#copy flash tftp 

System flash directory:
File  Length   Name/status
  1   3119712  c2600-i-mz.113-10.T  
[3119776 bytes used, 5268832 available, 8388608 total]
Address or name of remote host [255.255.255.255]? 192.168.10.46
Source file name? c2600-i-mz.113-10.T
Destination file name [c2600-i-mz.113-10.T]?
Verifying checksum for 'c2600-i-mz.113-10.T' (file # 1)...  OK
Copy 'c2600-i-mz.113-10.T' from Flash to server
  as 'c2600-i-mz.113-10.T'? [yes/no]yes

Quindi si fa spazio nella memoria flash per caricare la nuova versione:

Router#erase flash

Infine è possibile caricare dal server TFTP la nuova immagine nella flash:

Router#copy tftp flash 

System flash directory:
No files in System flash
[0 bytes used, 8388608 available, 8388608 total]
Address or name of remote host [192.168.7.46]? 
Source file name? c2600-i-mz.122-12b.bin
Destination file name [c2600-i-mz.122-12b.bin]? 
Accessing file 'c2600-i-mz.122-12b.bin' on 192.168.7.46...
Loading c2600-i-mz.122-12b.bin from 192.168.7.46 (via Ethernet0/0): ! [OK]

Erase flash device before writing? [confirm]

Copy 'c2600-i-mz.122-12b.bin' from server
  as 'c2600-i-mz.122-12b.bin' into Flash WITH erase? [yes/no]

Al reboot successivo il router parte con la prima immagine IOS che trova.

Gestione password

Password su console

line console 0
  login
  password MySecret

Password su accesso telnet

Con questa impostazione si attiva la richiesta di password per gli accessi telnet, si entra senza privilegi di enable:

line vty 0 4
 access-class 23 in
 password MySecret
 login
 transport input telnet ssh

La password di enable è impostata con:

enable secret MyEnableSecret

Con questa impostazione viene chiesto un nome di login, se i privilegi sono giusti si accede direttamente come enable, è richiesta la password associata al login, che va impostata a parte:

line vty 0 4
 access-class 23 in
 privilege level 15
 login local
 transport input telnet ssh
username admin privilege 15 secret MyEnableSecret