Archivi tag: pppoe

Cisco 877W: configurare una porta ethernet come WAN

Alcuni provider esteri prevedono l’accesso ad Internet tramite connessione diretta (via cavo UTP) tra il router del cliente (CPE – Customer Premise Equipment) ed un loro router di zona. Ciò permette di evitare completamente la vecchia linea POTS (detta anche PSTN), garantendo un servizio sicuramente migliore.

Per quanto riguarda il router Cisco 877W, occorre precisare che con l’IOS fornita di default (ovvero la 870-advsecurityk9-mz.124-24.T4.bin), l’unico modo per connettersi al service provider è mediante l’interfaccia ATM, utilizzando quindi il doppino telefonico. Per questa ragione, affinchè si possa configurare una porta ethernet WAN dedicata, è necessario, in primo luogo, aggiornare l’IOS del dispositivo in oggetto, sostituendo la  870-advsecurityk9-mz.124-24.T4.bin con la c870-advipservicesk9-mz.124-24.T6.bin.

cisco 877

Preparazione del router

Per prima cosa è necessario assegnare al router un indirizzo IP che possa contattare il server SCP (su cui copiare la vecchia IOS come backup e da cui scaricare quella nuova).

Router>
Router#
Router(config)# int vlan 1
Router(config-if)# ip address 192.168.1.9 255.255.255.0
Router(config-if)# end
Router# copy run start

Facciamo un ping al server SCP (per sincerarci che sia effettivamente raggiungibile):

Router# ping 192.168.1.8

Upgrade dell’IOS 

Poichè l’IOS (ovvero il sistema operativo del router) viene salvata all’interno della memoria flash (che comunque è piuttosto limitata in termini di spazio), occorre dapprima cancellare quella di default, rimuovendo anche tutti i file con estensione *.tar ed il file home.shtml (che concorrono a formare l’SDM).

Per prima cosa facciamo un backup della vecchia IOS (nel caso in cui l’operazione di upgrade dovesse non riuscire):

Router# copy flash: scp://user@192.168.1.8:870-advsecurityk9-mz.124-24.T4.bin

cancelliamo i file precedentemente elencati:

Router# delete flash:c870-advsecurityk9-mz.124-24.T4.bin
Router# delete flash:home.tar
Router# delete flash:common.tar
Router# delete flash:sdm.tar
Router# delete flash:home.shtml

e salviamo la nuova immagine nella memoria flash:

Router# copy scp://user@192.168.1.8:c870-advipservicesk9-mz.124-24.T6.bin flash:

A questo punto dobbiamo definire la nuova immagine da caricare al boot:

Router# conf t
Router(config)# boot system flash:c870-advipservicesk9-mz.124-24.T6.bin
Router(config)# end
Router# copy run start
Router# reload

Dopo il riavvio del router dobbiamo appurare che la nuova IOS sia stata effettivamente caricata. Per fare ciò è sufficiente lanciare il comando:

Router# sh ver

Bene, ora che il dispositivo in questione è stato aggiornato correttamente, possiamo procedere con la configurazione dello stesso.

Configurazione

Per prima cosa cancelliamo la nvram (dove è stata salvata la configurazione precedente):

Router# erase nvram:

e successivamente passiamo alla configurazione vera e propria:

no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname RouterADSL
!
boot-start-marker
boot-end-marker
!
logging exception 100000
logging count
logging message-counter syslog
logging queue-limit 10000
logging buffered 150000 notifications
logging console informational
enable secret <secret>
enable password <password>
!
no aaa new-model
clock timezone UTC 2
!
!
dot11 syslog
ip source-route
!
!
ip dhcp excluded-address 192.168.1.1 192.168.1.127
!
ip dhcp pool LAN
   network 192.168.1.0 255.255.255.0
   default-router 192.168.1.1
   dns-server 8.8.8.8 8.8.4.4
   domain-name uniqro.local
!
!
ip cef
ip name-server 8.8.8.8
ip name-server 8.8.4.4
!
multilink bundle-name authenticated
!
vpdn enable
!
vpdn-group 1
 accept-dialin
  protocol pptp
  virtual-template 1

!
!
!
no spanning-tree vlan 2
username admin password <password>
!
!
!
archive
 log config
  hidekeys
!
!
!
!
interface ATM0
 no ip address
 shutdown
 no atm ilmi-keepalive
!
interface FastEthernet0
 switchport access vlan 2
 no cdp enable
!
interface FastEthernet1
!
interface FastEthernet2
!
interface FastEthernet3
!
interface Virtual-Template1
 ip unnumbered Vlan1
 ip nat inside
 ip virtual-reassembly
 peer default ip address pool PPTP-Pool
 no keepalive
 ppp encrypt mppe 128
 ppp authentication ms-chap ms-chap-v2
!
interface Dot11Radio0
 no ip address
 shutdown
 speed basic-1.0 basic-2.0 basic-5.5 6.0 9.0 basic-11.0 12.0 18.0 24.0 36.0 48.0 54.0
 station-role root
!
interface Vlan1
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
 ip tcp adjust-mss 1452
!
interface Vlan2
 no ip address
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface Dialer1
 ip address negotiated
 ip mtu 1492
 ip virtual-reassembly
 ip nat outside
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp authentication chap pap callin
 ppp chap hostname <username>
 ppp chap password <password>
 ppp pap sent-username <username> password <password>
 ppp ipcp dns request accept
 ppp ipcp route default
 ppp ipcp address accept
!
ip local pool PPTP-Pool 192.168.1.244 192.168.1.254
ip forward-protocol nd
no ip http server
no ip http secure-server
ip route 0.0.0.0 0.0.0.0 Dia1
!
!
!
!
!
ip nat inside source list 1 interface Dialer1 overload
!
access-list 1 permit 192.168.1.0 0.0.0.255
dialer-list 1 protocol ip permit
!
control-plane
!
!
line con 0
 password <vostrapass>
 login
 no modem enable
line aux 0
line vty 0 4
 access-class 1 in
 password <vostrapass>
 login
!
scheduler max-task-time 5000
sntp server 193.204.114.232
!

Da notare che la suddetta configurazione comprende la timezone (clock timezone UTC 2), un server SNTP tramite il quale aggiornare la data e l’ora del router (sntp server 193.204.114.232), i parametri per il logging, la configurazione del server DHCP embedded e la configurazione della VPN PPTP (vedi questo post per approfondire).

Occorre soffermarsi, inoltre, sulla configurazione della VLAN 2. Infatti, essa ci permette di fare in modo che una delle porte ethernet del router possa essere configurata come WAN (ed è il reale motivo per cui abbiamo aggiornato l’IOS, poichè quella di default non consentiva di configurare VLAN multipe). Il protocollo utilizzato per la connessione all’ISP è il PPPoE ed i parametri associati alla VLAN 2 sono i seguenti:

interface Vlan2
 no ip address
 pppoe enable group global
 pppoe-client dial-pool-number 1

Nella fattispecie, la suddetta VLAN viene messa in binding con l’interfaccia virtuale (spoofed) Dialer 1, nella quale bisogna configurare i seguenti parametri:

interface Dialer1
 ip address negotiated
 ip mtu 1492
 ip virtual-reassembly
 ip nat outside
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp authentication chap pap callin
 ppp chap hostname <username>
 ppp chap password <password>
 ppp pap sent-username <username> password <password>
 ppp ipcp dns request accept
 ppp ipcp route default
 ppp ipcp address accept

Infine, nella configurazione completa che ho illustrato precedentemente, potete notare che il protocollo spanning-tree è stato disabilitato per la VLAN 2:

no spanning-tree vlan 2

Ciò è preferibile in quanto, non conoscendo la configurazione del router di zona del provider, potrebbe venir fuori un port type mismatch con il successivo shutdown dell’interfaccia fa0 del nostro router (mi è già successo).

Infine, salviamo la nostra configurazione mediante il comando:

RouterADSL# copy run start

ed abbiamo finito.

Alla prossima.

Configurare un router Cisco SOHO per PPPoE

Dopo una breve (ma necessaria) pausa ho deciso di riprendere la pubblicazione sul blog, trattando argomenti di grande interesse che durante questo lasso di tempo ho potuto approfondire.

Uno di questi riguarda la configurazione di un router Cisco SOHO, nella fattispecie il 77, per il PPPoE (Point-to-Point Protocol over Ethernet). Infatti, da qualche mese, Telecom sta convertendo le proprie linee da ATM a FullIP, costringendo gli utenti ad utilizzare la configurazione PPPoE, l’unica compatibile con il FullIP.

Ma quali sono i vantaggi di una rete FullIP? Beh, uno su tutti è sicuramente la possibilità di ridurre l’overhead, facendo aumentare di conseguenza la banda disponibile all’utente.

Dopo questa breve introduzione passiamo alla configurazione vera a propria.

La prima cosa da fare è munirci di un cavo console (quello che esce in dotazione con il dispositivo – Vedi foto) e collegarlo alla porta com del nostro pc ed alla porta console (di colore blu) del router. A collegamento avvenuto apriamo hyperterminal (Start -> Programmi -> Accessori -> Comunicazioni -> Hyper Terminal) associamo un nome alla connessione (nella finestra di popup che appare dopo l’avvio del programma) e premiamo su “OK”. Adesso selezioniamo la porta com del pc alla quale è collegato il cavo (nel mio caso COM1) clickiamo nuovamente su “OK” ed entreremo all’interno del menu di configurazione della porta precedentemente selezionata.

7e502c2fa9f21120f389e5cfae1afa5f.jpg

 

Scegliamo i seguenti parametri:

1) Bit per secondo: 9600

2) Bit di dati: 8

3) Parità: nessuno

4) Bit di stop: 1

5) Controllo del flusso: Hardware

Bene adesso selezioniamo “OK” e ci apparirà una schermata bianca (non vi preoccupate è perfettamente normale). Accendiamo quindi il router (dal pulsante opportuno presente nel retro del dispositivo) e vedremo apparire come per magia l’output relativo alla sequenza di bootstrap. Terminata tale operazione ci apparira il propt:

Router>

Entriamo in modalità enable che ci permette di accedere ai comandi di configurazione del router semplicemente digitando ena (oppure enable, è indifferente):

Router > ena

Adesso il prompt ci apparirà così:

Router#

Entriamo nel menù di configurazione vero e proprio digitando conf t (oppure configure terminal):

Router# conf t

Il prompt ci apparirà nel modo seguente:

Router(config)#

Impostiamo il nome del router utilizzando il comando hostname. Ad esempio:

Router(config)# hostname NightRouter

Il prompt cambierà nuovamente:

NightRouter(config)#

Definiamo password sia per la connessione via console sia per l’accesso tramite telnet, scrivendo rispettivamente:

NightRouter(config)# line console 0

NightRouter(config-line)# password <vostrapass>

NightRouter(config-line)# login

mentre per telnet:

NightRouter(config-line)# line vty 0 4

NightRouter(config-line)# password <vostrapass>

NightRouter(config-line)# login

Bene, adesso configuriamo la password per entrare in modalità enable:

NightRouter(config)# enable password <vostrapass>

NightRouter(config)# enable secret <vostrapass>

NightRouter(config)# service password-encryption

NightRouter(config)# exit

NightRouter#

Il comando service password-encryption serve a calcolare il digest md5 di tutte le password presenti all’interno del file di configurazione, in modo tale che un semplice show run non le mostri in chiaro.

Fatto ciò possiamo dedicarci alla configurazione delle varie interfacce. Cominciamo dall’interfaccia Ethernet:

NightRouter(config)# interface eth0

Associamo indirizzo ip e subnet mask alla stessa:

NightRouter(config-if)# ip address 192.168.1.0 255.255.255.0

“Accendiamo” l’interfaccia:

NightRouter(config-if)# no shutdown

Identifichiamo l’interfaccia interna per il NAT:

NightRouter(config-if)# ip nat inside

Usciamo dalla modalità di configurazione della porta Ethernet

NightRouter(config-if)# exit

NightRouter(config)#

Configuriamo ora l’interfaccia ATM:

NightRouter(config)# interface ATM0

NightRouter(config-if)# pvc 8/35

Dopo aver digitato questo comando, il prompt ci apparirà nel modo seguente:

NightRouter(config-atm-vc)#

Settiamo il protocollo PPPoE:

NightRouter(config-atm-vc)# pppoe-client dial-pool-number 1

Configuriamo il Dialer:

NightRouter(config)# int Dialer0

Poichè spesso si utilizza ip pubblico dinamico assegnato direttamente dall’ISP occorre digitare:

NightRouter(config-if)# ip address negotiated

NB: Se si utilizza ip pubblico statico bisogna associarlo all’interfaccia attraverso il comando ip adcdress <indirizzo> <subnet mask>

Identifichiamo l’interfaccia esterna per il NAT:

NightRouter(config-if)# ip nat outside

Definiamo il protocollo di incapsulamento:

NightRouter(config-if)# encapsulation ppp

Specifichiamo quale dialer pool utilizzare:

NightRouter(config-if)# dialer pool 1

Definiamo adesso i parametri (userid e pass) per collegarsi all’ISP:

NightRouter(config-if)# ppp chap hostname <vostrauserid>

NightRouter(config-if)# ppp chap password <vostrapassword>

Se il vostro provider utilizza il PAP anzichè il CHAP occorre digitare:

NightRouter(config-if)# ppp pap sent-username <vostrauserid> password <vostrapassword>

Ora, poichè si sta utilizzando il protocollo PPPoE, occorre definire la dimensione dell’MTU, che nella fattispecie è pari a 1492 byte (mentre per l’ATM è di 1500 byte).

NightRouter(config-if)# ip mtu 1492

NightRouter(config-if)# exit

NightRouter(config)#

Non abbiamo ancora finito. Poichè il PPPoE supporta una dimensione massima dei segmenti TCP pari a 1452, occorre settare il seguente paramentro nell’ambito dell’interfaccia ethernet0 (altrimenti la navigazione sul Web ne risentirà parecchio):

NightRouter(config)# interface eth0

NightRouter(config-if)# ip tcp adjust-mss 1452

NightRouter(config-if)# exit

NightRouter(config)#

Adesso possiamo configurare i DNS che il router utilizzerà per la risoluzione degli indirizzi:

NightRouter(config)# ip domain-lookup

NightRouter(config)# ip name-server 151.99.125.2

NightRouter(config)# ip name-server 151.99.125.3

Configuriamo il NAT:

NightRouter(config)# ip nat inside source list 1 interface dialer 0 overload

Definiamo una default route:

NightRouter(config)# ip route 0.0.0.0 0.0.0.0 dialer0

Definiamo la policy per l’access list 1:

NightRouter(config)# access-list 1 permit 192.168.1.0 0.0.0.255

NB: tale access list permette a tutti gli host della net locale di uscire verso la rete esterna (Internet). Il paramentro 0.0.0.255 è detto wildcard mask ed effettua un check solo sugli ultimi 4 bit degli indirizzi ip locali.

Adesso non ci resta che bloccare l’accesso Telnet dall’esterno (ovvero da Internet) ed abilitare i log:

NightRouter(config)# line vty 0 4

NightRouter(config-line)# access-class 1 in

NightRouter(config-line)# exit

NightRouter(config)# service timestamps log datetime localtime show-timezone msec

NightRouter(config)# service timestamps debug datetime localtime show-timezone msec

NightRouter(config)# service sequence-numbers

NightRouter(config)# logging queue-limit 10000

NightRouter(config)# logging buffered 1000000 notifications

NightRouter(config)# logging console critical

NightRouter(config)# logging monitor debug

NightRouter(config)# logging history notifications

NightRouter(config)# logging buffered 150000

NightRouter(config)# logging count

NightRouter(config)# logging exception 100000

NB: per visualizzare i log basta lanciare il comando show log (dalla modalità enable).

Ah, quasi dimenticavo, per motivi di sicurezza conviene disabilitare il server HTTP interno:

NightRouter(config)# no ip http

Adesso salviamo quanto fatto fino ad ora digitando:

NightRouter# copy run start

Ecco completata la configurazione del nostro Router. A presto 🙂

PS: Per utilizzare alcuni programmi, quali ad esempio client p2p, è necessario impostare correttamente il port forwarding. Un esempio di rule è la seguente (porta tcp di aMule):

NightRouter(config)# ip nat inside source static tcp 192.168.1.4 4652 interface dialer0 4652

Dove 192.168.1.4 è l’host su cui è in esecuzione aMule, tcp il protocollo utilizzato e 4652 il numero della porta usata per la connessione al server p2p.