Sei sulla pagina 1di 196

IMOLA User Guide - Rev.21 Ver.

001

Imola User Guide

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Pubblicazione a cura di:


Tiesse S.p.A. Via Asti, Area Industriale S. Bernardo 10015 IVREA (TO) Italy Copyright 2003-2007, by Tiesse S.p.A. Tutti i diritti riservati.

Diritti di propriet intellettuale


Marchi registrati, marchi, diritti d'autore e ogni altra sigla contenuta in questo documento sono propriet dei loro rispettivi possessori. Tiesse S.p.A. rispetta la propriet intellettuale di altri, e chiede pertanto ai propri Clienti e Utenti un comportamento analogo. Luglio, 2004 Maggio, 2005 Luglio, 2005 Ottobre, 2005 Marzo, 2006 Maggio, 2006 Novembre, 2006 Dicembre, 2006 Gennaio, 2007 Febbraio, 2007 Marzo, 2007 Aprile, 2007 Agosto, 2007 Dicembre, 2007 Gennaio, 2008 Maggio, 2008

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Compatibilit elettromagnetica e conformit agli standards di sicurezza

Questo prodotto soddisfa i requisiti essenziali di Compatibilit Elettromagnetica e di Sicurezza previsti dalle direttive: 89/336/CEE EN 55022 Direttiva per la Compatibilit Elettromagnetica Limiti e metodi di misura delle caratteristiche Class B di radiodisturbo prodotto dalle apparecchiature per tecnologia dell'informazione Limiti per emissioni di corrente armonica Limiti delle fluttuazioni di tensioni e dei flicker Limiti e metodi di misura delle caratteristiche di immunit delle apparecchiature per la tecnologia dell'informazione Direttiva per la Bassa Tensione Sicurezza delle apparecchiature per la tecnologia dell'informazione, comprese le apparecchiature elettriche per ufficio

EN 61000-3-2 EN 61000-3-3 EN 55024

73/23 CE EN 60950

La conformit ai suddetti requisiti viene attestata mediante l'apposizione della Marcatura CE sul prodotto.

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Conformit ROHS RAEE INFORMAZIONE AGLI UTENTI

ai sensi dellart.13 del Decreto Legislativo 25 luglio 2005, n.151: Attuazione delle Direttive 2002/95/CE, 2002/96/CE e 2003/108/CE, relative alla riduzione delluso di sostanze pericolose nelle apparecchiature elettriche ed elettroniche, nonch allo smaltimento dei rifiuti. Tiesse S.p.A. garantisce che le apparecchiature da essa prodotte soddisfano le direttive RoHS (Restriction of Hazardous Substances), che limitano luso di materiali pericolosi nella produzione di dispositivi elettrici ed elettronici.

Il simbolo del cassonetto barrato riportato sullapparecchiatura o sulla sua confezione indica che il prodotto alla fine della propria vita utile deve essere raccolto separatamente dagli altri rifiuti. La raccolta differenziata della presente apparecchiatura giunta a fine vita organizzata e gestita da Tiesse SpA. Lutente che vorr disfarsi della presente apparecchiatura dovr quindi contattare Tiesse SpA e seguire il sistema che essa ha adottato per consentire la raccolta separata dellapparecchiatura giunta a fine vita. Ladeguata raccolta differenziata per lavvio successivo dellapparecchiatura dismessa al riciclaggio, al trattamento e allo smaltimento ambientalmente compatibile contribuisce ad evitare possibili effetti negativi sullambiente e sulla salute e favorisce il reimpiego e/o riciclo dei materiali di cui composta lapparecchiatura. Lo smaltimento abusivo del prodotto da parte del detentore comporta lapplicazione delle sanzioni amministrative previste dalla normativa vigente.

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Introduzione ..............................................................................................9 Accedere ad Imola ..................................................................................13


Accesso mediante porta ttyS0..................................................................................14 Accesso mediante porta eth0 o eth1.........................................................................14 Accesso mediante porta ISDN BRI .........................................................................15 Username e Password ..............................................................................................15 Concedere e Revocare Privilegi...............................................................................16 Procedura di Password Recovery.............................................................................17 Default settings ........................................................................................................17

Configurazione di Imola.........................................................................19
La procedura di configurazione ...............................................................................19 Guida ai comandi CLI..............................................................................................21

Interfaccia Ethernet................................................................................23
Configurazione dellinterfaccia ...............................................................................23 Visualizzazione stato interfaccia..............................................................................25 Significato LED interfaccia Ethernet.......................................................................26 Trigger Ethernet .......................................................................................................27 Trigger DHCP Client ...............................................................................................27 Gestione porte Ethernet: mii-tool.............................................................................28

Interfaccia ISDN .....................................................................................30


Comandi per la configurazione dellinterfaccia ISDN ............................................30 Significato LED ISDN.............................................................................................37 Trigger ISDN ...........................................................................................................38 Controllo di traffico .................................................................................................38

Interfaccia ADSL ....................................................................................40


Configurazione.........................................................................................................40 Visualizzazione ........................................................................................................43 Significato dei LED .................................................................................................47 Trigger ADSL ..........................................................................................................47

Interfaccia Frame Relay.........................................................................48


Configurazione.........................................................................................................48 Visualizzazione ........................................................................................................50

Interfaccia GPRS/EDGE UMTS/HSDPA ............................................52


Configurazione.........................................................................................................52 Visualizzazione ........................................................................................................55 Significato dei LED .................................................................................................57 Trigger GPRS...........................................................................................................58 Controllo di traffico .................................................................................................58 Controllo Sessione GPRS ........................................................................................59 Gestione SMS ..........................................................................................................60

Rotte Statiche ..........................................................................................62


Configurazione Rotte Statiche .................................................................................62 Visualizzazione Rotte Statiche ................................................................................64

Indirizzo di Loopback, Gestione Interfacce di Rete............................65


Indirizzo Loopback ..................................................................................................65 Comando ifconfig.....................................................................................................66 Indirizzi Secondari (Alias).......................................................................................67

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Il Comando ip..........................................................................................69
Generalit.................................................................................................................69 Visualizzare lo stato delle interfacce, le tabelle di arp e di routing mediante comando ip...............................................................................................................70 Gestione routing mediante comando ip ...................................................................71 Guida alluso del comando ip ..................................................................................73

Access List, Source Nat e Redirect ........................................................75


Access List ...............................................................................................................75 Configurazione.........................................................................................................75 Visualizzazione ........................................................................................................78 Redirect ....................................................................................................................79 Configurazione.........................................................................................................79 Visualizzazione ........................................................................................................80 Source-nat ................................................................................................................80 Configurazione.........................................................................................................80 Visualizzazione ........................................................................................................82

Funzioni di Firewall: iptables.................................................................83


Generalit.................................................................................................................83 Tabelle, Catene, Regole e Target.............................................................................83 Firewall con la tabella filter .....................................................................................84 Network address translation con la tabella nat ........................................................85 Port Forwarding .......................................................................................................86 Alterazione dei pacchetti con la tabella mangle ......................................................86 Applicazione delle regole sui pacchetti ...................................................................88 Criteri standard di match..........................................................................................88 Target .......................................................................................................................90 Criteri avanzati di match..........................................................................................92 Load Balancing ........................................................................................................95 Logging dei pacchetti...............................................................................................95 Accounting dei pacchetti..........................................................................................96 Esempi di utilizzo ....................................................................................................97 Connection Tracking..............................................................................................100 Un esempio di Firewall..........................................................................................106 Comandi di gestione e configurazione...................................................................107

Protocollo VRRP ...................................................................................110


Configurazione.......................................................................................................110 Visualizzazione ......................................................................................................111 Trigger VRRP.........................................................................................................111 Configurazione VRRP mediante comando vrrpd...................................................112

Protocolli di Routing Dinamico: BGP, OSPF e RIP ..........................113


Configurazione protocollo bgp ..............................................................................113 Configurazione protocollo ospf..............................................................................116 Configurazione protocollo rip................................................................................117 Comando router .....................................................................................................118

Protocollo di Multicast Routing............................................................121


Protocol Indipendent Multicast .............................................................................121 IGMP Proxy ...........................................................................................................123 Static Multicast Routing.........................................................................................125

Tunnel GRE ...........................................................................................126


6

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Configurazione di un tunnel GRE..........................................................................126 Trigger GRE...........................................................................................................129 Configurazione GRE mediante comando ip ..........................................................129

IPsec .......................................................................................................131
Configurazione di un tunnel IPsec.........................................................................131 Trigger IPSec .........................................................................................................134

Quality of Service..................................................................................135
Introduzione ...........................................................................................................135 Classificazione del Traffico Mediante QOS ..........................................................135 Configurazione della politica di traffico ................................................................135 Configurazione delle classi ....................................................................................136 Classificazione del traffico ....................................................................................136 Marcatura del traffico ............................................................................................137 Attivazione della Qos.............................................................................................137 Visualizzazione della configurazione e statistiche ................................................138 Esempio..................................................................................................................139 Classificazione Mediante QOS Estesa...................................................................140 Configurazione di una politica di traffico..............................................................140 Configurazione di una classe .................................................................................141 Classificazione del traffico ....................................................................................142 Marcatura del traffico ............................................................................................143 Policing ..................................................................................................................143 Attivazione della QOS ...........................................................................................143 Visualizzazione della configurazione e statistiche ................................................144 Esempi....................................................................................................................146 Limitazione della Banda in Output ........................................................................146

VLAN .....................................................................................................148 RADIUS .................................................................................................151


Configurazione protocollo Radius .........................................................................151

Protocollo SNMP...................................................................................153
Configurazione protocollo SNMP..........................................................................153 Visualizzazione SNMP...........................................................................................155

Syslog......................................................................................................157
Configurazione della funzionalit di logging ........................................................157

Protocollo DLSW...................................................................................160
Introduzione ...........................................................................................................160 Configurazione DLSw ...........................................................................................160 Configurazione in Ambiente DLC IEEE 802.2 .....................................................162 Configurazione in Ambiente SDLC.......................................................................163 Visualizzazione Configurazione e Stato DSLw.....................................................164 Esempio di Uso ......................................................................................................166

NTP.........................................................................................................169
Configurazione del protocollo NTP .......................................................................169 Trigger NTP ...........................................................................................................169

Protocollo DHCP...................................................................................170
Configurazione del servizio DHCP .......................................................................170 Servizio DHCP Relay Agent..................................................................................171 Visualizzazione del servizio DHCP.......................................................................172

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Timezone................................................................................................173
Configurazione del TimeZone o fuso orario..........................................................173

Trigger: Gestione ed Attivazione Eventi ............................................174


Trigger o comandi da attivare dopo un evento ......................................................174 Controllo Stato Operativo Interfacce di Rete.........................................................177 Controllo occupazione della CPU..........................................................................178

Meccanismi di Attivazione Backup.....................................................179


Comando set backup ..............................................................................................179 Comando set trigger backup..................................................................................181

Routing Avanzato e Backup ................................................................183


Split Access............................................................................................................184 Load Balancing ......................................................................................................184 Backup ...................................................................................................................185

Script ......................................................................................................186 Responder Time Reporter ......................................................................188


Configurazione del servizio ...................................................................................188 Visualizzazione del servizio ..................................................................................189

Gestione Configurazioni e Aggiornamento Software........................191


Gestione delle configurazioni intermedie ..............................................................191 Download e upload delle configurazioni ...............................................................191 Aggiornamento del software..................................................................................192

Caveat.....................................................................................................194
Esecuzione comandi CLI al reboot del router .......................................................194 Routing tables ........................................................................................................195

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

INTRODUZIONE
IMOLA una linea di dispositivi di rete che offrono funzioni di Access Router in configurazioni wired e wireless (in questo caso supportando connessioni GPRS/EDGE e UMTS/HSDPA). progettato per connettere tra loro siti locali e remoti, in particolare in tutti i casi in cui siano esigenze primarie la sicurezza, la continuit del servizio e le prestazioni della rete.

Figura 1: IMOLA Mod. 2210

Imola si basa su tre moduli funzionali, non necessariamente fisicamente distinti: un modulo su cui sono implementate tutte le funzionalit principali; un modulo su cui risiedono i controllori di protocollo e i dispositivi di interfaccia delle linee per le estensioni WAN infine il modulo di alimentazione, che pu equipaggiare sia un convertitore AC/DC (Internal Power Supply) oppure un convertitore DC/DC (External Power Supply). Per distinguere le varie caratteristiche e interfacce di comunicazione, ogni modello identificato dalla sigla Imola XYZ0, dove: X identifica il tipo di connessione geografica su rete mobile presente Y identifica il tipo di connessione locale Z identifica il tipo di connessione geografica su rete fissa. I valori definiti sono:
X 0 1 2 3 0 1 2 4 0 1 2 3 Nessuna connessione mobile presente La connessione mobile gprs La connessione mobile gprs/edge La connessione mobile gprs/edge/umts/hsdpa 1 porta ethernet presente 2 porte Ethernet Switch Ethernet 5 porte (4 porte nella versione LX) 4 porte seriali asincrone Nessuna connessione WAN presente La connessione WAN ADSL La connessione WAN ADSL2+ La connessione WAN HDSL

Tabella 1

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Le versioni Imola 0010 e 0220 sono disponibili anche con alimentatore esterno e denominate Imola LX. In questo caso la porta ISDN BRI non presente. Le caratteristiche principali sono: Network Processor Risc 64MB RAM di sistema 512KB Boot Flash 16 MB Flash Memory per sistema operativo e applicazioni Dispone, inoltre, delle seguenti porte di comunicazione: 2 Ethernet/FastEthernet (salvo il modello LX 0010) 1 porta console RS232 con connettore DB9 1 ISDN S/T BRI con connettore RJ 45 (non sui modelli LX) 1 switch LAN integrato con 5 (4 sul modello LX) porte Ethernet/FastEthernet con support VLAN 802.1q (opzionale) 4 porte RJ45 RS232 (opzionale e alternativo allo switch) 1 ADSL/ADSL2+ con connettore RJ11 (opzionale) 1 porta GSM/GPRS/EDGE (opzionale) 1 porta GSM/GPRS/EDGE/UMTS/HSDPA (opzionale) 1 porta seriale sincrona con connettore LFH 60 V.35(opzionale) 1 porta ausiliaria RS232 con connettore DB9

Per verificare lo stato delle connessioni sono disponibili led luminosi:


TIPO LED ROUTER ACCESO/SPENTO INTERFACCE ETHERNET DESCRIZIONE led verde On ACCESO: indica che il Router Imola acceso. Nei connettori RJ45 delle interfacce Ethernet sono incorporati due led: a sinistra di colore giallo, a destra di colore verde. led giallo ACCESO: indica che l'interfaccia ethernet connessa alla velocit di 100Mbps led verde LAMPEGGIANTE: indica attivit di LAN Lo stato dell'interfaccia ADSL viene indicato mediante 3 led di colore verde, etichettati con le seguenti denominazioni: Pw, Link e Data. led Pw ACCESO: indica che il modem ADSL interno alimentato in modo corretto led Link LAMPEGGIANTE: indica la fase di sincronizzazione con la centrale led Link ACCESO FISSO: indica che la fase di sincronizzazione stata effettuata con successo led Data LAMPEGGIANTE: viene utilizzato per visualizzare il traffico dati. Lo stato dellinterfaccia ISDN viene indicato mediante 2 led di colore giallo (sinistra) e verde (destra) incorporati nel connettore stesso. led giallo ACCESO: indica che il livello fisico ISDN attivo (chiamata in corso) led verde ACCESO: indica l'attivit di almeno una sessione ISDN

INTERFACCIA ADSL

INTERFACCIA ISDN

10

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA GPRS

Lo stato dell'interfaccia GPRS viene indicato mediante 3 led di colore verde. Sono etichettati con le seguenti denominazioni: Pw, Link e Data . I rimanenti due led non hanno un significato predefinito e sono dipendenti dallapplicazione. Il significato il seguente: led Pw ACCESO: indica che il modem GPRS interno operativo in modo corretto. Allaccensione del router il led normalmente spento. Esso viene acceso dopo aver richiesto lattivazione dellinterfaccia GPRS. led Link LAMPEGGIANTE ad intermittenza veloce (alcune accensioni al secondo): indica la fase di sincronizzazione con la centrale led Link LAMPEGGIANTE ad intermittenza lenta (un'accensione ogni 1-2 secondi): indica la corretta connessione alla rete led Link ACCESO FISSO: indica che la connessione attiva di tipo GSM (solo se il router stato espressamente configurato per questa funziona), altrimenti indica che la rete UMTS led Data acceso indica che la connessione GPRS attiva: linterfaccia dispone di un indirizzo IP per trasmettere e ricevere tramite la rete GPRS. led verde v35 ACCESO: indica che il Router ha rilevato la presenza della rete.

INTERFACCIA HDSL
Tabella 2

Ai servizi di comunicazione possono essere associate le seguenti soluzioni di sicurezza: PAP, CHAP e ACLs RADIUS support NAT/PAT Stateful Firewalling VPN con IPSec 3DES Encryption IP Tunnel GRE PPTP Tunneling Open VPN Tunneling e le seguenti principali features software: Advanced Routing RIP, OSPF, BGP IGMP Proxy PIM (Protocol Indipendent Multicast - routing Multicast) Ottimizzazione di banda con il QoS (Quality of Service) VRRP (Virtual Router Redundant Protocol) Responder Time Reporter I principali servizi TCP/IP disponibili sono:

Tiesse

11

IMOLA User Guide - Rev.21 Ver. 001

Client e Server telnet Client e Server ssh Client e Server dhcp Client e Server ftp snmp v1/v2/v3 OPENSSL con demone stunnel

I tools di amministrazione supportati sono: ping traceroute tcpdump ifconfig netstat route syslog (locale e remoto) MII tools per la gestione delle porte Ethernet Lambiente software di Imola basato su Sistema Operativo Linux. Una Command Line Interface (CLI) permette la configurazione e la gestione del sistema in maniera guidata e facilitata anche a utenti non esperti del sistema operativo Linux.

12

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

ACCEDERE AD IMOLA
In questo capitolo verr descritto come effettuare la connessione ad Imola, al fine di accedere al sistema e di effettuarne la configurazione. Modificando il valore di alcuni parametri sar possibile configurare Imola a proprio piacimento, predisponendolo al dialogo con l'ambiente circostante. Laccesso pu essere effettuato mediante la porta console tramite apposito cavo null modem, utilizzando un qualsiasi emulatore di terminale oppure tramite connessione telnet verso uno degli indirizzi IP presenti su Imola. In caso di connessione diretta alla porta eth0 necessario usare un cavo LAN cross, mentre il tipo di cavo ininfluente se si collega ad una delle porte delleventuale switch integrato, essendo prevista la funzionalit di auto-mdx:
TieSse spa - IMOLA Interworking Unit No Radius configured. Using Local authentication login: root Password: local: Authentication OK Service Type is: Administrative-User Idle timeout is set to 3600 seconds Connected Users: ttyp1 root You are logged on ttyp1 root@Imola>

Una volta entrati nellambiente di configurazione il prompt si presenta nella forma: username@hostname dove username la login utilizzata per laccesso e hostname il nome macchina configurato. Vengono visualizzati il tipo di servizio (Administrative-User o Login-User) che indica i privilegi dellutente utilizzato, il valore del timeout di inattivit della sessione, gli utenti collegati e la virtual tty utilizzata. In qualsiasi istante digitando il comando who si pu verificare tale lista1:
root@Imola> who Connected Users: ttyp1 root ttyp2 root You are logged on ttyp2 root@Imola>

Bench pi utenti possano essere collegati al router, opportuno che solo uno di questi effettui le modifiche alla configurazione, per evitare effetti indesiderati.

Tiesse

13

IMOLA User Guide - Rev.21 Ver. 001

ACCESSO MEDIANTE PORTA TTYS0


Cavo da utilizzare: Porta Imola: Applicazione da usare: cavo null-modem DB9 porta ttyS0 Windows HyperTerminal (o simili)

Impostazione della porta ttyS0: Volendo utilizzare la porta ttyS0 per l'accesso ad Imola, occorre essere sicuri che il sistema impiegato per connettersi e dialogare con Imola sia configurato in accordo alle impostazioni riportate nella seguente tabella: Bits per second: Data bits: Parity: Stop bit(s): Flow Control: 9600 8 none 1 N.A. (Not Applicable)

Le operazioni sono riepilogate a scopo esemplificativo nella seguente figura:


TieSse spa - IMOLA Interworking Unit login: root Password: ********* Imola# cli Service Type is: Administrative-User Idle timeout is set to 600 seconds Connected Users: ttyS0 root You are logged on ttyp1 root@Imola> Figura 2

ACCESSO MEDIANTE PORTA ETH0 O ETH1


Cavo da impiegare: Porta Imola: Applicazione da usare: Impostazioni eth0/eth1:
IP Address Netmask Broadcast Network Address Tabella 3 Porta eth0 10.10.113.1 255.255.0.0 10.10.255.255 10.10.0.0 Porta Eth1 172.151.113.1 255.255.0.0 172.151.255.255 172.151.0.0

cavo LAN (Ethernet type) porta eth0 o eth1 telnet (o simili)

Nel caso di modello con switch LAN integrato (Imola X2X0), la connessione alla porta eth1 avviene mediante una qualsiasi delle porte dello switch stesso.

14

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

ACCESSO MEDIANTE PORTA ISDN BRI


Cavo da impiegare: Porta Imola: Applicazione da usare: Impostazioni ISDN : Nella configurazione di default, Imola accetta sulla porta ISDN BRI chiamate da qualsiasi numero. Lutente da utilizzare per lattivazione della sessione PPP pppuser con password tiesse e la sessione IP viene attivata accettando lindirizzo IP assegnato dal chiamante. cavo ISDN porta ISDN BRI telnet (o simili)

USERNAME E PASSWORD
Per accedere ad Imola necessario specificare login e password: La configurazione di fabbrica di Imola riconosce la seguente login e relativa password: LOGIN: PASSWORD: root tiesseadm

possibile cambiare la password dellutente root mediante il comando cli:


change_password root

che in modalit interattiva chiede di introdurre la nuova password. possibile aggiungere ulteriori utenti mediante il comando:
add_user <user_name>

il quale richiede di specificare anche la password associata. Sono previsti due tipi di utenti: Administrative-User e Login-User. Gli utenti Administrative possono eseguire qualsiasi comando previsto dalla CLI, mentre gli utenti Login possono eseguire un sottoinsieme ridotto di comandi, ad esempio non possono eseguire quei comandi che permettono di modificare la configurazione.

Tiesse

15

IMOLA User Guide - Rev.21 Ver. 001

Gli utenti aggiunti tramite il comando add_user sono di tipo Login. Il comando permette di passare dalla modalit Login a quella Administrative. Ad esempio:
TieSse spa - IMOLA Interworking Unit No Radius configured. Using Local authentication login: mario Password: local: Authentication OK Service Type is: Login-User Idle timeout is set to 3600 seconds Connected Users: ttyp0 mario You are logged on ttyp0 mario@Imola# set hostname MyRouter Command "set hostname MyRouter ..." not allowed for this user mario@Imola# su root Password: root@Imola> set hostname MyRouter Setting hostname to MyRouter root@Imola> quit mario@Imola# mario@Imola# set eth1 ipaddr 3.3.3.3 Command "set eth1 ipaddr 3.3.3.3 ..." not allowed for this user mario@Imola#

su

Si accede al router usando lutente mario e si tenta di eseguire il comando


set hostname

per cambiare il nome del router, ma il comando fallisce a causa dei mancati privilegi. Si esegue allora il comando su, specificando correttamente la password si entra nella modalit Administrative, e si cambia lhostname. Con il comando quit si ritorna allutente precedente. Da notare lultimo carattere del prompt: il carattere # in caso di Login-User ed il carattere > in caso di Administrative-User. possibile configurare la modalit di autenticazione tramite protocollo Radius come descritto nel capitolo relativo. In tale caso il server Radius che determina quale utente ha pieni diritti e quali utenti hanno diritti limitati.

CONCEDERE E REVOCARE PRIVILEGI


Un utente di tipo Administrative-User pu concedere ad utente di tipo Login la possibilit di eseguire particolari comandi che altrimenti sarebbero negati e allo stesso modo pu revocare ad un utente di tipo Administrative la possibilit di eseguire alcuni comandi che normalmente sarebbero concessi. Il comando:
grant-to <username> <command prefix>

eseguito da un utente di tipo Administrative concede allutente <username> (di tipo Login) la possibilit di eseguire tutti i comandi che iniziano con il prefisso specificato. Il comando:

16

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

revoke-to <username> <command prefix>

eseguito da un utente di tipo Administrative revoca allutente <username> (di tipo Administrative) la possibilit di eseguire i comandi che iniziano con il prefisso specificato. Ad esempio, supponiamo che siano stati definiti gli utenti operatore e tecnico, rispettivamente di tipo Login-User e Administrative-User. Normalmente lutente operatore pu solo controllare la configurazione, ma non pu intervenire su di essa, mentre lutente tecnico pu modificarla senza alcun vincolo. I comandi:
grant-to operatore set eth1 revoke-to tecnico set isdn dialer ippp1

consentono allutente operatore la possibilit di configurare la porta ethernet e revocano allutente tecnico la possibilit di configurare la dialer isdn. Per eliminare un privilegio concesso e togliere una revoca si usano rispettivamente i comandi:
no-grant-to <username> <command prefix> no-revoke-to <username> <command prefix>

La stringa <command prefix> la parte iniziale di un qualsiasi commando di configurazione. Attenzione al caso in cui sia presente un solo utente Admnistrative, ad esempio root. I comandi:
revoke-to root set revoke-to root no-revoke

tolgono definitivamente la possibilit allutente root di eseguire un qualsiasi commando di configurazione.

PROCEDURA DI PASSWORD RECOVERY


Se si utilizza il collegamento seriale possibile utilizzare una login particolare che consente laccesso al router senza chiedere la password in modo da poter effettuare il ripristino della configurazione di fabbrica. Il valore della login pu essere quello di default, oppure possibile concordare con il cliente un valore riservato solo ad esso. Utilizzando tale login si accede direttamente allambiente di configurazione, senza passare attraverso la shell di Linux.

DEFAULT SETTINGS
La configurazione di default di Imola prevede:

Tiesse

17

IMOLA User Guide - Rev.21 Ver. 001

Indirizzo eth0 (di servizio): 10.10.113.1/16 Indirizzo eth1 (switch integrato): 172.151.113.1/16 SNMP v1 e v2 abilitati, con la community public per accessi read-only e tiesseadm per accessi read-write. syslog disabilitato ADSL disabilitata GPRS disabilitato Routing Dinamico e tunneling disabilitati Dialer ISDN abilitata per le chiamate entranti Dialer ISDN disabilitata per le chiamate uscenti Nel caso in cui sia nota a priori l'applicazione di Imola e sia stata definita la configurazione iniziale (sia in termini di parametri che di servizi da attivare) Imola viene rilasciato dalla fabbrica con tale configurazione gi predisposta, in modo da minimizzare le operazioni di installazione.

18

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

CONFIGURAZIONE DI IMOLA
Per effettuare la configurazione di Imola l'operatore ha a disposizione una interfaccia a caratteri denominata Command Line Interface (CLI). Mediante la CLI possibile configurare, attivare e verificare interfacce e servizi disponibili su Imola.

LA PROCEDURA DI CONFIGURAZIONE
La procedura di configurazione di Imola prevede le fasi: di configurazione di verifica di attivazione dei parametri di salvataggio Per svolgere le fasi di configurazione e di attivazione si ha a disposizione il comando:
set

Per la fase di verifica si hanno a disposizione lo stato dei led e il comando:


show

Per salvare la configurazione completa e verificata si ha a disposizione il comando:


save

Si impiega inoltre il comando:


restore

al fine di ripristinare particolari configurazioni. Distinguiamo tre tipi differenti di configurazione:


current saved started

La configurazione current quella contenente tutti i valori impostati nella fase di configurazione. La configurazione saved quella salvata sulla flash di Imola con il comando save ed quella con la quale l'apparato si attiver al prossimo boot. La configurazione started quella con la quale l'apparato si attivato al boot. Al termine del boot e prima che cominci la fase di configurazione, le tre configurazioni sono uguali.

Tiesse

19

IMOLA User Guide - Rev.21 Ver. 001

Durante la fase di configurazione e verifica, le configurazioni saved e started sono uguali. Dopo aver eseguito il comando save, la configurazione current diventa anche saved e sar quella con cui si attiver l'apparato al prossimo boot. possibile visualizzare il contenuto dei tre diversi profili di configurazione mediante il comando:
show config current|saved|started

Occorre completare sempre la fase di configurazione e di verifica con il comando save, cos da rendere permanenti i valori assegnati ai vari parametri. Inoltre possibile gestire fasi intermedie di configurazione. Il comando CLI set checkpoint permette di creare un salvataggio intermedio, denominato checkpoint, utile per salvare un profilo di configurazione relativo ad un certo istante. Tramite il comando restore checkpoint possibile ripristinare la particolare configurazione salvata. Ad esempio:
set checkpoint-1

crea un salvataggio intermedio che in qualsiasi momento pu essere richiamato mediante il comando:
restore checkpoint-1

Possono essere presenti 2 configurazioni intermedie: checkpoint-1 e checkpoint-2. Dopo aver effettuato il comando di restore, necessario eseguire il comando save ed effettuare il reboot del router. Il comando:
sync-config

permette invece di allineare lo stato del router (configurazione interfacce, indirizzi IP etc.) ad una specifica configurazione. Distinguiamo cinque tipi differenti di configurazione a cui possibile sincronizzare lo stato del router:
checkpoint-1 checkpoint-2 current saved started

dove: la configurazione checkpoint-1 quella salvata con il comando:


set checkpoint-1

20

la configurazione checkpoint-2 quella salvata con il comando:


set checkpoint-2

la configurazione current quella contenente tutti i valori impostati nella fase di configurazione la configurazione saved quella salvata sulla flash di Imola con il comando save ed quella con la quale l'apparato si attiver al prossimo boot. la configurazione started quella con la quale l'apparato si attivato al boot.

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

GUIDA AI COMANDI CLI


La CLI di Imola fornita di un help in linea, che consente di guidare l'utente verso la corretta formulazione sintattica e semantica di tutti i comandi disponibili. Premendo due volte il pulsante <TAB> verranno mostrati tutti i comandi disponibili. Inoltre possibile il completamento intelligente dei comandi o la visualizzazione delle alternative disponibili mediante lausilio del tasto <TAB>. Infine, nel caso in cui il comando invocato fosse incompleto, verr chiamata automaticamente una funzionalit di help che fornir tutti i ragguagli necessari al corretto completamento dell'istruzione CLI.
TieSse spa - IMOLA Interworking Unit No Radius configured. Using Local authentication login: root Password: ********* local: Authentication OK Service Type is: Administrative-User Idle timeout is set to 600 seconds Connected Users: ttyp0 recovery_user root@Imola> # download record add_user exit restore append help router no-record run upload ping save version quit set who reboot shell root@Imola>

show su traceroute change_password clear_counter del_user

Figura 3: alcuni comandi disponibili con la doppia pressione del tasto <TAB>

root@Imola> set access-list adsl alias autocmd backup banner bgp checkpoint-1 checkpoint-2 comment default-gateway dns eth0 eth1 gprs gre host hostname ipsec iptables isdn log loopback root@Imola>

no-access-list no-adsl no-alias no-autocmd no-backup no-banner no-bgp no-default-gateway no-dns no-eth0 no-eth1 no-gprs no-gre no-host no-ipsec no-iptables no-isdn no-log no-loopback no-ntp no-ospf no-ppp no-qos

no-radius no-redirect no-rip no-route no-snmp no-source-nat no-trigger no-vrrp ntp ospf pos ppp proxy qos radius redirect rip route snmp source-nat timezone trigger vrrp

Figura 4: autocompletamento del comando ed elencazione parametri accettati alla pressione del tasto <TAB>

Tiesse

21

IMOLA User Guide - Rev.21 Ver. 001

root@Imola> set eth1 Usage: set eth1 keyword <value> set eth1 ipaddr <value> [netmask <value>] [broadcast <value>] [mtu <value>] set eth1 broadcast <value> set eth1 dhcp-client set eth1 dhcp-server .... set eth1 netmask <value> set eth1 no-dhcp-client set eth1 no-dhcp-server set eth1 description set eth1 no-description set eth1 speed <value> set eth1 on set eth1 off root@Imola> Figura 5: help in linea automatico per comandi inseriti in modo non corretto

Le regole base per il setup di una interfaccia o di un servizio sono sostanzialmente di configurazione e di successiva attivazione dei parametri configurati. I comandi si suddividono in 3 categorie: il comando per la configurazione set <opzioni> il comando per la visualizzazione show <opzioni> comandi di gestione e amministrazione.

22

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA ETHERNET
CONFIGURAZIONE DELLINTERFACCIA
Le interfacce Ethernet di Imola sono denominate eth0 ed eth1. Linterfaccia eth0 quella pi a sinistra, normalmente viene utilizzata come porta di servizio. Per impostare l'indirizzo IP di un'interfaccia ethernet si utilizza il seguente comando CLI:
set eth0|eth1 ipaddr <ip_address> [netmask <netmask> broadcast <broadcast>]

Ad esempio, per configurare un'interfaccia eth0 con indirizzo IP 10.10.9.1/16, specificandone il broadcast, si procede come nel seguente modo:
set eth0 ipaddr 10.10.9.1 netmask 255.255.0.0 broadcast 10.10.255.255

Per attualizzare i parametri impostati necessario eseguire il comando:


set eth0|eth1 on

Per disattivare un'interfaccia ethernet si usa il comando:


set eth0|eth1 off

Per disattivare e disabilitare un'interfaccia ethernet si usa il comando:


set no-eth0|no-eth1

Per configurare il default gateway il comando :


set default-gateway <gw_ip_address>

mentre per rimuoverlo:


set no-default-gateway

Ad esempio, per impostare l'indirizzo 10.10.254.254 come gateway di default pu essere impiegata la seguente linea di comando:
set default-gateway 10.10.254.254

mentre per rimuovere lo stesso default gateway:


set no-default-gateway

possibile, per ciascuna interfaccia ethernet, impostare o rimuovere il servizio DHCP Client mediante i comandi:
set eth0|eth1 dhcp-client set eth0|eth1 no-dhcp-client

Tiesse

23

IMOLA User Guide - Rev.21 Ver. 001

inoltre possibile configurare le due interfacce ethernet in modalit Transparent Bridge IEEE 802.1d mediante il comando:
set eth0 bridge

In questo modo il router viene visto con lo stesso indirizzo IP sia attraverso la porta eth0 che attraverso la eth1. Per ripristinare invece la configurazione con due porte si usa:
set eth0 no-bridge

Per aggiungere una voce alla lista degli host si utilizza il seguente comando CLI:
set host <ip_address> <HOSTNAME>

mentre per effettuarne la rimozione:


set no-host <ip_address>

Ad esempio, per aggiungere l'host 10.7.10.10 con hostname BarryWhite:


set host 10.7.10.10 BarryWhite

e per cancellarlo dalla lista:


set no-host 10.7.10.10

Inoltre possibile attivare, su ciascuna interfaccia ethernet, uno o pi indirizzi secondari, denominati alias. Per impostare o rimuovere una alias interface si utilizza il seguente comando CLI:
set alias|no-alias <interface> ipaddr <alias_ip_addr> netmask <netmask>

Ad esempio, per impostare e rimuovere l'alias per l'interfaccia eth0 con indirizzo IP 10.10.10.3/24 si procede come nel seguente esempio:
set alias eth0 ipaddr 10.10.10.3 netmask 255.255.255.0 set no-alias eth0 ipaddr 10.10.10.3 netmask 255.255.255.0

possibile disattivare la funzione di IP Redirect mediate il comando:


set eth0 no-ip-rediect

oppure abilitarle mediante


set eth0 ip-redirect.

possibile attivare (o disattivare) una descrizione dell'interfaccia ethernet, restituita dall'agent SNMP (se configurato ed attivato) ad interrogazioni della variabile della Mib_II ifDescr, con i seguenti comandi:
set eth0|eth1 description|no-description <value>

24

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

possibile impostare il tipo di connessione ethernet, evitando la procedura di autonegoziazione:


set eth0|eth1 speed <value>

dove value pu assumere uno dei seguenti valori:


100BaseT4 100BaseTx 100BaseTx-FD 100BaseTx-HD 10BaseT 10BaseT-FD 10BaseT-HD

VISUALIZZAZIONE STATO INTERFACCIA


Per visualizzare la configurazione di un'interfaccia ethernet viene impiegato il seguente comando CLI:
show interface ethernet eth0|eth1 config|statistics|status

In particolare con l'argomento config vengono visualizzati i seguenti dati dell'interfaccia in oggetto:
Indirizzo IP Netmask Broadcast MAC_Address

Specificando l'argomento statistics vengono visualizzate le statistiche relative all'interfaccia in oggetto. Infine, mediante l'argomento status viene visualizzato lo stato dell'interfaccia ethernet specificata. Per visualizzare la tabella di routing possibile impiegare il comando CLI:
show route

Infine possibile visualizzare gli alias impostati su un router Imola mediante il comando CLI
show alias

mentre per visualizzare l'elenco degli hosts aggiunti su un router Imola viene impiegato il comando
show hosts

Seguono alcuni esempi significativi degli output a video dei comandi descritti nel presente paragrafo.
root@Imola> show interface ethernet eth0 config IP Address: Netmask: Broadcast: MAC Address: DHCP-Client: 11.11.1.1 255.255.0.0 11.11.255.255 00:0D:5A:04:6F:F6 no

Figura 6: Esempio di output comando:

show interface ethernet eth0 config

Tiesse

25

IMOLA User Guide - Rev.21 Ver. 001

root@Imola>

show interface ethernet eth0 statistics

6: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0D:5A:04:6F:F6 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1578722 15255 0 0 0 0 TX: bytes packets errors dropped carrier collsns 3659952 13964 0 0 0 0 inet 11.11.1.1/16 brd 11.11.255.255 scope global eth0

Figura 7: Esempio di output comando:

show interface ethernet eth0 statistics

root@Imola> show interface ethernet eth0 status eth0: negotiated 100baseT4 flow-control, link ok Figura 8: Esempio di output comando: show interface ethernet eth0 status

root@Imola> show route Kernel IP routing table Destination Gateway Genmask 192.168.1.0 1.1.1.1 255.255.255.0 1.1.1.0 0.0.0.0 255.255.255.0 11.11.0.0 0.0.0.0 255.255.0.0 10.10.0.0 1.1.1.1 255.255.0.0

Flags UG U U UG

MSS 40 40 40 40

Window 0 0 0 0

irtt 0 0 0 0

Iface eth1 eth1 eth0 eth1

Figura 9: Esempio di output comando:

show route

root@Imola> show alias ALIAS=eth0 ipaddr 11.11.10.10 netmask 255.255.0.0 ALIAS=eth0 ipaddr 7.113.10.10 netmask 255.255.255.0 Figura 10: Esempio di output comando: show alias

Lo stato delle porte dello switch sono denominate rispettivamente eth2, eth3, eth4 ed eth5. Il loro stato viene visualizzato mediante il comando:
show interface ethernet eth2|eth3|eth4|eth5

SIGNIFICATO LED INTERFACCIA ETHERNET


Sul connettore RJ45 dell'interfaccia Ethernet sono presenti due led: a sinistra di colore giallo, a destra di colore verde. L'accensione del led di colore giallo indica che l'interfaccia ethernet connessa alla velocit di 100Mbps. L'accensione a intermittenza del led verde, invece, indica attivit di LAN.

26

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

TRIGGER ETHERNET
E possibile definire delle azioni da eseguire al variare dello stato dellinterfaccia operativa delle porte ethernet mediante i comandi:
set set set set trigger trigger trigger trigger eth0 eth0 eth1 eth1 up <action> down <action> up <action> down <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Una sequenza di azioni viene configurata mediante una sequenza di comandi:
set trigger eth0 up <action1> set trigger eth0 up <action2> set trigger eth0 up <actionN>

Lesecuzione delle azioni avviene secondo lordine con cui sono state impostate. Ad esempio mediante i comandi:
set trigger eth0 up logger Ethernet0 is up set trigger eth0 down logger Ethernet0 is down

viene effettuato il log di un messaggio che indica la variazione dellinterfaccia operativa della porta Ethernet eth0. Per cancellare un trigger si utilizzano i comandi:
set no-trigger eth0 up <action> set no-trigger eth0 down <action>

TRIGGER DHCP CLIENT


Nel caso sia configurato il DHCP Client, possibile definire delle azioni da eseguire quando viene ottenuto un indirizzo IP e delle azioni da eseguire quando questo viene rilasciato mediante i comandi:
set trigger dhcp up <action> set trigger dhcp down <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Lesecuzione delle azioni avviene secondo lordine con cui sono state impostate. Ad esempio mediante i comandi:
set trigger dhcp up logger We got an address set trigger dhcp up ip route add 131.151.10.12 via 10.10.254.254 set trigger dhcp down logger Ethernet is not ready

si effettua il logging di un messaggio che indica che stato ottenuto un indirizzo IP e si aggiunge una rotta statica verso un host. Quando lindirizzo viene rilasciato si logga un messaggio. Per cancellare un trigger si utilizzano i comandi:
set no-trigger dhcp up <action> set no-trigger dhcp down <action>

Tiesse

27

IMOLA User Guide - Rev.21 Ver. 001

GESTIONE PORTE ETHERNET: MII-TOOL


Il comando mii-tool verifica o imposta lo stato delle interfacce Fast Ethernet eth0 e eth1 e delle 5 interfacce dello switch integrato (denominate rispettivamente eth1, eth2, eth3, eth4 ed eth5). Attivato con le apposite opzioni, le funzionalit offerte dal comando sono sostanzialmente le seguenti: effettuare il reset della porta, forzando la velocit di negoziazione a 10Mbps forzare il restart della autonegoziazione fissare la velocit della porta ad uno specifico valore effettuare il restart della negoziazione, specificando per le velocit accettate dalla porta modificare la funzionalit di crossover delle porte switch effettuare il monitor dello stato delle porte La modalit operativa del comando la seguente:
mii-tool [<opzione>] [<parametro>] <interfaccia>

Nel seguito sono descritte le opzioni ed i parametri accettati: opz. parametri uso -r restart autonegoziazione -R resetta linterfaccia alla configurazione di default e fissa la velocit di negoziazione a 10Mbps
-F 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD

disabilita la capacit di autonegoziazione e forza la velocit della porta al valore indicato


-A 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD

-C

0|1|2

-v v --

abilita e fa ripartire la procedura di autonegoziazione, specificando per le sole velocit accettate permette di modificare le caratteristiche relative alla funzionalit di crossover delle porte switch; il valore dei parametri indica: 0 crossover disabilitato (tx: TXP/TXN, rx: RXP/RXN) 1 crossover forzato (tx: RXP/RXN, rx: TXP/TXN) 2 automatic crossover visualizza lo stato e la configurazione della porta specificata

28

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Nellesempio di seguito si verifica lo stato della porta eth2 disabilitando la modalit di crossover :
root@Imola> mii-tool -v -v eth2 eth2: no link bmcr=1000, bmsr=7849, advert=5e1 lkpar=0 registers for MII PHY 17: 1000 7849 0141 0c87 05e1 0000 0004 2001 0000 0000 0000 0000 0000 0000 0000 0000 4130 0010 0000 0050 0000 0000 4584 30cc 42bf 0000 0000 0000 0002 0000 0000 0000 product info: vendor 00:50:43, model 8 rev 7 basic mode: autonegotiation enabled basic status: no link capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control root@Imola> root@Imola> mii-tool -C 0 eth2 Crossover Register before change = 0x4130 Crossover Register after change = 0x4100 restarted auto negotiation ... root@Imola> set autocmd mii-tool -C 0 eth2 cmd "mii-tool -C 0 eth2" stored. Figura 11: Esempi di output comando: mii-tool

A seconda del valore assunto dal campo 17 del registro MII possiamo capire la configurazione della funzionalit di crossover:
4130 4110 4100

automatic crossover abilitato crossover forzato manualmente crossover disabilitato manualmente

Tiesse

29

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA ISDN
COMANDI PER LA CONFIGURAZIONE DELLINTERFACCIA ISDN
L'interfaccia ISDN di Imola pu essere utilizzata per attivare dei circuiti di comunicazione di tipo temporaneo tra due punti terminali (per esempio tra due Imola). La sua configurazione basata sulle dialer map. Una dialer map una interfaccia logica che consente una connessione (in uscita o in ingresso) verso un utente remoto. La configurazione di fabbrica di Imola prevede 2 dialer map:
ippp0 accetta chiamate in ingresso ippp1 consente di effettuare chiamate in uscita

Le chiamate in uscita possono essere attivate automaticamente o manualmente. L'attivazione automatica delle chiamate in uscita consente ad Imola di agire in modalit di dial on demand router. I parametri fondamentali per la configurazione delle dialer map sono sostanzialmente: la modalit di gestione delle chiamate, che pu essere incoming (in questo caso la dialer accetter solo chiamate in ingresso) o outgoing (che consente la sola esecuzione di chiamate in uscita) la modalit di esecuzione delle chiamate in uscita, che pu essere automatica o manuale il numero di telefono cui connettersi (per le chiamate in uscita) login e password per l'autenticazione delle chiamate in uscita login e password per l'autenticazione delle chiamate in ingresso Per l'attivazione automatica delle chiamate in uscita dovr essere necessario configurare una interfaccia IP associata alla outgoing dialer map. Le chiamate in uscita verranno attivate solo al momento in cui il processo di routing avr stabilito che un pacchetto necessita di essere trasmesso sullinterfaccia ISDN. La configurazione di una dialer map (per esempio la dialer ippp0) che accetti esclusivamente chiamate in ingresso viene effettuata con l'utilizzo dei seguenti comandi:
set set set set set set isdn dialer ippp0 eaz all isdn dialer ippp0 in-number isdn dialer ippp0 accept-remote-ip isdn dialer ippp0 dialmode manual ppp login <user> password <password> isdn dialer ippp0 on

30

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Il comando set isdn dialer ippp0 eaz <all|number> viene utilizzato per configurare il numero di telefono che accetter le connessioni in ingresso: solo le chiamate entranti destinate a quel numero saranno accettate. La chiave all consente di accettare le chiamate a prescindere dal numero chiamato. Se viene configurato un numero di telefono non esistente, per esempio il numero 999999, la dialer map rifiuter qualsiasi chiamata che non sia destinata a quel numero ed essendo il numero non esistente, di conseguenza sar rifiutata qualsiasi chiamata. Il comando set isdn dialer ippp0 in-number <numero numero> permette di specificare una lista di numeri chiamante dai quali accettare le chiamate ISDN (Calling Line Identification). Il comando set isdn dialer ippp0 no-in-number consente di accettare le chiamate a prescindere dal numero chiamante. Il comando set ppp login <user> password <password> viene utilizzato per popolare il database di autenticazione degli utenti. Il database sar utilizzato durante la fase di autenticazione delle chiamate in uscita ed in ingresso. Per verificare la configurazione della dialer appena attivata pu essere utilizzato il comando show interface isdn dialer ippp0, il cui output viene mostrato nella Figura 12.
root@Imola> show interface isdn dialer ippp0 Current setup of interface 'ippp0': EAZ/MSN: * Phone number(s): Outgoing: 0125629552 Incoming: Dial mode: manual Secure: off Callback: off Reject before Callback: off Callback-delay: 5 Dialmax: 1 Hangup-Timeout: 60 Incoming-Hangup: on ChargeHangup: off Charge-Units: 0 Charge-Interval: 0 Layer-2-Protocol: hdlc Layer-3-Protocol: trans Encapsulation: syncppp Login: pppuser Accept Remote IP: yes Set Local IP: no Default Route: no Masquerade: no --------------------------------------ippp0 is not connected 8: ippp0: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc link/ppp RX: bytes packets errors dropped overrun 0 0 0 0 0 TX: bytes packets errors dropped carrier 0 0 0 0 0

pfifo_fast qlen 30 mcast 0 collsns 0

Figura 12: Esempio di output comando:

show interface isdn dialer ippp0

La configurazione di una dialer map che consenta di effettuare le sole chiamate in uscita viene effettuata con l'utilizzo dei seguenti comandi:

Tiesse

31

IMOLA User Guide - Rev.21 Ver. 001

set set set set set set set set set set set

isdn isdn isdn isdn isdn isdn isdn isdn isdn isdn isdn

dialer dialer dialer dialer dialer dialer dialer dialer dialer dialer dialer

ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1

eaz 999999 out-number <number> login <user> password <passwrd> huptimeout 120 ipaddr 1.1.1.1 nexthop 2.2.2.2 masquerade accept-remote-ip no-accept-local-ip dialmode manual default-route on

Il comando set isdn dialer ippp1 eaz <all|number> viene utilizzato per configurare il numero di telefono che accetter le connessioni in ingresso: solo le chiamate entranti destinate a quel numero saranno accettate. La chiave all consente di accettare le chiamate provenienti da qualsiasi numero. Se viene configurato un numero di telefono non esistente, per esempio il numero 999999, la dialer map rifiuter qualsiasi chiamata che non sia destinata a quel numero ed essendo il numero non esistente, di conseguenza sar rifiutata qualsiasi chiamata, stabilendo in questo modo che la dialer ippp1 usata solo per chiamate uscenti. Il comando set isdn dialer ippp1 out-number <number> viene utilizzato per configurare il numero di telefono verso il quale la dialer map si dovr connettere. Il comando set isdn dialer ippp1 login <user> viene utilizzato per configurare l'utente che sar utilizzato per l'autenticazione al momento della connessione al numero di telefono chiamato. Il comando set isdn dialer ippp1 ipaddr 1.1.1.1 nexthop 2.2.2.2 consente la configurazione di una interfaccia IP associata alla outgoing dialer map. Nel caso in cui gli indirizzi saranno assegnati dal sistema remoto, pu essere usata la forma: set isdn dialer ippp1 ipaddr 0.0.0.0 Il comando set isdn dialer ippp1 masquerade viene utilizzato per consentire linvio dei pacchetti IP utilizzando come IP address sorgente lindirizzo locale associato alla dialer, ovvero sullinterfaccia dialer verranno effettuate operazioni di NATP. I comandi e set isdn dialer ippp1 definiscono la modalit in base alla quale verrano assegnati gli indirizzi sullinterfaccia ippp1. Il funzionamento descritto in seguito.
set isdn dialer ippp1 accept-remote-ip

accept-local-ip

Il comando set isdn dialer ippp1 dialmode manual viene utilizzato per stabilire la modalit di attivazione della chiamata: la modalit manual consente la attivazione della chiamata solo in modo manuale, mediante il comando isdnctrl dial ippp1 ; invece la modalit auto consente di attivare la chiamata ISDN in maniera automatica sulla prima richiesta di trasmissione sullinterfaccia ippp1. Si pu stabilire quali pacchetti potranno attivare in maniera automatica la connessione isdn mediante il comando:
set access-list dial-isdn prot <prot> port <value> from <src> to <src>

32

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

descritto nel capitolo relativo alle access list. Il comando set isdn dialer ippp1 default-route viene utilizzato per configurare una rotta di instradamento di default sulla dialer ippp1. La rotta sar attivata solo se la modalit di dial auto (set isdn dialer ippp1 dialmode auto) oppure nel momento in cui la chiamata viene instaurata. Per verificare la configurazione della dialer attivata (Figura 13):
root@Imola> show interface isdn dialer ippp1 Current setup of interface 'ippp1': EAZ/MSN: 999 Phone number(s): Outgoing: 0125629552 Incoming: Dial mode: manual Secure: off Callback: off Reject before Callback: off Callback-delay: 5 Dialmax: 1 Hangup-Timeout: 60 Incoming-Hangup: on ChargeHangup: off Charge-Units: 0 Charge-Interval: 0 Layer-2-Protocol: hdlc Layer-3-Protocol: trans Encapsulation: syncppp Login: pppuser Accept Remote IP: yes Set Local IP: no Default Route: no Masquerade: no --------------------------------------ippp1 is not connected 9: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc link/ppp RX: bytes packets errors dropped overrun 0 0 0 0 0 TX: bytes packets errors dropped carrier 0 0 0 0 0 Figura 13: Esempio di output comando:

pfifo_fast qlen 30 mcast 0 collsns 0

show interface isdn dialer ippp1

inoltre possibile utilizzare entrambi i canali ISDN sulla singola connessione logica (connessione multilink). Per abilitare la connessione multilink possono essere utilizzati i comandi:
set isdn dialer ippp1 multi-link

Il secondo canale, denominato slave, deve essere attivato al momento della connessione del canale master. Per questa operazione pu essere utilizzato il comando:
set trigger isdn up isdnctrl addlink ippp1

Il canale slave verr disconnesso automaticamente al momento dellabbattimento del canale master.

Tiesse

33

IMOLA User Guide - Rev.21 Ver. 001

Al momento della attivazione del canale master possibile verificare lattivazione dei due canali:
root@Imola> isdnctrl list ippp1 Current setup of interface 'ippp1': EAZ/MSN: 999 Phone number(s): Outgoing: 0125201010 Incoming: Dial mode: manual Secure: off Callback: off Reject before Callback: off Callback-delay: 5 Dialmax: 1 Hangup-Timeout: 60 Incoming-Hangup: on ChargeHangup: off Charge-Units: 0 Charge-Interval: 0 Layer-2-Protocol: hdlc Layer-3-Protocol: trans Encapsulation: syncppp Slave Interface: ippp62 Slave delay: 10 Slave trigger: 6000 cps Master Interface: None Pre-Bound to: Nothing PPP-Bound to: 1 root@Imola> show interface isdn status ISDN Status and Statistics: irq=28 io=24000000 led=25000000 link status = up, chan B1 status = active, chan B2 status = active link up = 00000009, link down = 00000009 chan B1 activations = 00000008, chan B1 deactivations = 00000007 chan B2 activations = 00000007, chan B2 deactivations = 00000006 D-frames rcvd = 00000533, D-frames sent = 00000188, D-rxowf = 00000000 B1-frames rcvd = 00000350, B1-frames sent = 00000172, B1-rxowf = 00000000 B2-frames rcvd = 00000056, B2-frames sent = 00000056, B2-rxowf = 00000000 Figura 14: Verifica connessione ISDN multilink

E` possibile configurare, sia per le chiamate in ingresso che per le chiamate in uscita, la modalit di subaddressing . Per accettare le chiamate in ingresso solo se corredate dal subaddress 400 :
set isdn dialer ippp0 eaz *.400

Per effettuare le chiamate in uscita verso un determinato numero (0125230544) associando il subaddress 500:
set isdn dialer ippp1 out-number 0125230544.500

Vengono di seguito riportati alcuni esempi di configurazione in base alla modalit con cui devono essere assegnati gli indirizzi dellinterfaccia ippp1. I casi sono: indirizzo locale e indirizzo nexthop entrambi assegnati da Imola stesso indirizzo locale ed indirizzo nexthop entrambi assegnati dal sistema remoto (RAS) Imola stabilisce il suo indirizzo mentre il nexthop viene assegnato dal RAS.

34

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

I seguenti comandi sono comuni a tutti e tre gli esempi:


set set set set set set set isdn isdn isdn isdn isdn isdn isdn dialer dialer dialer dialer dialer dialer dialer ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 ippp1 eaz 999999 out-number 0125230544 login isdnuser password isdnpasswd huptimeout 120 masquerade dialmode auto default-route

indirizzo locale e indirizzo nexthop entrambi assegnati da Imola stesso


set set set set isdn isdn isdn isdn dialer dialer dialer dialer ippp1 ippp1 ippp1 ippp1 ipaddr 1.1.1.1 nexthop 1.1.1.2 no-accept-remote-ip accept-local-ip on

Sia prima che dopo la chiamata ISDN linterfaccia si presenta nel modo seguente:
root@Imola> show interface isdn dialer ippp1 statistics 19: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp RX: bytes packets errors dropped overrun mcast 311 22 0 0 0 0 TX: bytes packets errors dropped carrier collsns 305 22 0 0 0 0 inet 1.1.1.1 peer 1.1.1.2/32 scope global ippp1

Figura 15: Indirizzi assegnati da Imola

indirizzo locale ed indirizzo nexthop entrambi assegnati dal sistema remoto


set set set set isdn isdn isdn isdn dialer dialer dialer dialer ippp1 ippp1 ippp1 ippp1 ipaddr 0.0.0.0 accept-remote-ip no-accept-local-ip on

Dopo lattivazione della sessione ISDN linterfaccia ippp1 si presenta nel modo seguente:
root@Imola> show interface isdn dialer ippp1 statistics 19: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp RX: bytes packets errors dropped overrun mcast 311 22 0 0 0 0 TX: bytes packets errors dropped carrier collsns 305 22 0 0 0 0 inet 151.25.132.24 peer 151.6.131.63/32 scope global ippp1

Figura 16: Indirizzi assegnati dal RAS

Tiesse

35

IMOLA User Guide - Rev.21 Ver. 001

indirizzo locale assegnato da Imola ed indirizzo nexthop assegnato dal sistema remoto
set set set set isdn isdn isdn isdn dialer dialer dialer dialer ippp1 ippp1 ippp1 ippp1 ipaddr 1.1.1.1 accept-remote-ip accept-local-ip on

root@Imola> show interface isdn dialer ippp1 statistics 19: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp RX: bytes packets errors dropped overrun mcast 311 22 0 0 0 0 TX: bytes packets errors dropped carrier collsns 305 22 0 0 0 0 inet 1.1.1.1 peer 2.2.2.1/32 scope global ippp1

Figura 17: Indirizzo locale assegnato da Imola e nexthop dal RAS

disponibile inoltre un comando che consente di verificare lo storico delle chiamate effettuate e ricevute (Figura 18):
root@Imola> show interface isdn history -----------------------------------------------------------------------------Call Calling Called Sec. Setup Term. Txed Rxed Type Number Number Used Time Cause Bytes Bytes -----------------------------------------------------------------------------In 125230544 125633581 32,480 8 223 223 Out 123456789 0125201010 0,990 166 16 181 154 Out 12345678 0125201010 0,990 166 16 181 154 Out 12345678 0125201010 0,290 128 16 0 0 Out 12345678 0125201010 12,550 157 16 181 262 Out 12345678 0125201010 12,220 155 16 181 262 Out 12345678 0125629552 N/A 146 0 0 Out 12345678 0125629552 N/A 146 0 0 Figura 18: Esempio di output comando: show interface isdn history

Vengono indicati:
Call Type Calling Number Called Number Sec. Used Setup Time Term. Cause Txed Bytes/Rxed Bytes

tipo chiamata (incoming/outgoing) numero di telefono chiamante numero di telefono chiamato tempo di occupazione della linea durata setup ISDN codice della causa della disconnessione byte trasmessi e ricevuti

Per quanto riguarda il codice riportato nella colonna Term. Cause, il valore identifica la modalit di chiusura della chiamata: se la disconnect viene effettuata a seguito di un evento remoto, il codice di chiusura sar maggiore di 128 . Mediante con il comando show interface isdn active-calls vengono visualizzate le chiamate attive al momento dellesecuzione del comando.

36

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

possibile attivare una descrizione dell'interfaccia ISDN, restituita dall'agent SNMP (se configurato ed attivato) ad interrogazioni della variabile della Mib_II ifDescr, con il comando:
set isdn description <value>

anche possibile configurare messaggi differenti per ciascuna dialer:


set isdn dialer ippp0 description <value>

Infine il comando nativo isdnctrl, descritto nel seguito del manuale, pu essere utilizzato per gestire direttamente le dialer isdn . Per stabilire invece quale traffico deve innescare la chiamata isdn, si usa il comando set access-list dial-isdn, in una delle seguente forme:
set access-list dial isdn prot <prot> port <value> from <sorgente> to <destinazione> set access-list dial isdn prot <prot> sport <value> from <sorgente> to <destinazione>

Di seguito alcuni esempi di utilizzo:


set access-list dial-isdn prot icmp from this to 5.5.5.5

Un comando di ping emesso localmente (in uscita dal router: sorgente uguale alla keyword this) verso 5.5.5.5 scatena il ping.
set access-list dial-isdn prot icmp from this to 5.5.0.0/16

per indicare la sottorete 5.5.0.0/16.


set access-list dial-isdn prot icmp from any to 5.5.5.5 set access-list dial-isdn prot icmp from any to 5.5.5.0/24

Tutti i pacchetti icmp in transito (sorgente uguale alla keyword any) verso 5.5.5.5 oppure 5.5.5.0/24 attivano la chiamata isdn
set access-list dial-isdn prot udp port all from any to any

Tutti i pacchetti UDP in transito dal router povenienti da qualsiasi sorgente verso qualsiasi destinazione attivano la chiamata isdn
set access-list dial-isdn prot udp port 2000:4000 from any to any

per indicare tutti i pacchetti UDP con porta destinataria compresa tra 2000 e 4000
set access-list dial-isdn prot udp sport 1010 from this to 7.7.7.7

per indicare tutti i pacchetti originati localmente (keyword this) con porta sorgente 1010 verso 7.7.7.7 Tale comando pu essere utilizzato anche per il protocollo TCP-IP

SIGNIFICATO LED ISDN


Lo stato dellinterfaccia ISDN viene indicato mediante 2 led di colore giallo (sinistra) e verde (destra) posti ai lati del connettore. Laccensione del led giallo indica che il livello fisico ISDN attivo. Laccensione del led verde indica invece l'attivit di almeno una sessione ISDN.

Tiesse

37

IMOLA User Guide - Rev.21 Ver. 001

TRIGGER ISDN
E possibile definire delle azioni da eseguire quando viene attivata e deattivata una chiamata ISDN, rispettivamente mediante i comandi2:
set trigger isdn up <action> set trigger isdn down <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Una sequenza di azioni viene configurata mediante una sequenza di comandi:
set trigger isdn up <action1> set trigger isdn up <action2> set trigger isdn up <actionN>

Lesecuzione delle azioni avviene secondo lordine con cui sono stati impostati. Ad esempio mediante la sequenza di comandi:
set set set set trigger trigger trigger trigger isdn isdn isdn isdn up ip route add 12.12.12.12 dev ippp1 up logger r 10.10.1.212 ISDN is up down ip route del 12.12.12.12 dev ippp1 down logger r 10.10.1.212 ISDN is down

si imposta una rotta statica verso lhost 12.12.12.12 e si invia il messaggio di log ISDN is up quando la connessione ISDN viene attivata, mentre si elimina la rotta e si invia il messaggio di log ISDN is down quando la sessione ISDN viene terminata. Per cancellare un trigger si utilizzano i comandi:
set no-trigger isdn up <action> set no-trigger isdn down <action>

CONTROLLO DI TRAFFICO
possibile configurare il router in modo da effettuare il controllo del traffico in ingresso ed in uscita sull'interfaccia ISDN. In particolare si pu configurare un valore di soglia ed innescare degli eventi quando il traffico in una data unit di tempo superiore od inferiore a tale soglia3.
set isdn traffic-control input-threshold <N>

Il valore N espresso in byte e rappresenta il valore di soglia per il traffico in ingresso.

I comandi di trigger hanno significato ed effetto solamente sulla dialer map ippp1. Sono ininfluenti se la dialer attiva invece ippp0. 3 I comandi di traffic control hanno significato ed effetto solamente sulla dialer map ippp1. Sono ininfluenti se la dialer attiva invece ippp0.

38

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set isdn traffic-control output-threshold <N>

Il valore N espresso in byte e rappresenta il valore di soglia per il traffico in uscita.


set isdn traffic-control timer-unit <N>

Il valore N espresso in secondi e rappresenta la frequenza con cui viene effettuato il controllo.
set isdn traffic-control mode or|and

Definisce se il controllo del traffico relativo alla soglia di ingresso e a quella di uscita, oppure alla soglia di ingresso o a quella di uscita.
set isdn traffic-control prewait <N>

Rappresenta un valore in secondi di attesa prima di iniziare il controllo del traffico.


set isdn traffic-control on|off

Attiva/disattiva il controllo del traffico. Tipicamente i comandi si usano in concomitanza del comando set trigger isdn-tc per attivare il secondo canale ISDN. Il seguente esempio ne chiarisce l'utilizzo.
set set set set isdn isdn isdn isdn traffic-control traffic-control traffic-control traffic-control input-threshold 30000 output-threshold 20000 mode or timer-unit 10

set trigger isdn-tc up isdnctrl addlink ippp1 set trigger isdn-tc down isdnctrl removelink ippp1 set trigger isdn up set isdn traffic-control on set trigger isdn down set gprs traffic-control off

Il controllo del traffico viene attivato contestualmente all'attivazione della sessione ISDN e disattivato quando termina la sessione. Si imposta un valore di soglia di 30Kbyte per il traffico in ingresso ed un valore di 20Kbyte per il traffico in uscita. Il controllo di effettua ogni 10 secondi. Se in 10 secondi il traffico in ingresso oppure quello in uscita supera il valore di soglia impostato viene eseguito il comando specificato dal trigger set isdn-tc up, che richiede lattivazione del secondo canale ISDN. Viceversa, se in 10 secondi il traffico inferiore ai valori di soglia viene eseguito il comando specificato dal trigger set trigger gprs-tc down.

Tiesse

39

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA ADSL
CONFIGURAZIONE
I modelli Imola XX10 supportano solo connessioni ADSL, mentre i modelli XX20 supportano sia connessioni ADSL che connessioni ADSL2+. In caso di ADSL la massima banda sostenuta : downstream fino a 8 Mbps upstream fino a 1 Mbps. Mentre per ADSL2+ la banda sostenuta : downstream fino a 24 Mbps upstream fino a 3.5 Mbps. Sono supportati fino a 8 PVC (Permanent Virtual Circuit) conforme ai seguenti standard: ADSL: G.992.1 (G.dmt) - Annex A (ADSL over POTS), G992.2 (G.lite), ANSI T1.413 issue 2 ATM: ITU T-I.361, ITU T.I.363.5, ITU T-I.432, ITU T.I.610, ITU T-I.731 RFC 2684 (former RFC 1483 Multiprotocol over ATM) RFC 2364 (PPP over ATM) RFC 2516 (PPP over Ethernet) Nei modelli Imola XX20 sono supportati inoltre i seguenti standard: G.992.3 annexA, B, I, J, L (extended reach), M (double upstream) G.992.4 g.Lite.bis G.992.5 annexA, B, C, I, J, M Il link ADSL configurabile ed attivabile mediante comandi CLI e la configurazione trasparente rispetto al tipo di ADSL presente. Per attivare l'interfaccia ADSL disponibile il comando:
set adsl on

Per disattivare l'interfaccia ADSL disponibile il comando:


set adsl off

Per disattivare l'interfaccia ADSL e disabilitarne la configurazione disponibile il comando:


set no-adsl

40

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Prima di attivare l'interfaccia ADSL necessario eseguire alcune operazioni di configurazione, secondo le indicazioni e i valori forniti dal Provider con cui si stipulato il contratto. Per configurare il tipo di incapsulamento :
set adsl encap pppoa-llc|pppoa-vcmux|pppoe-llc|pppoe-vcmux| rfc1483-llc|rfc1483-vcmux

Per configurare il numero ed il tipo di PVC :


set adsl pvc_number <value> set adsl pvc atmX vpi <value> vci <value>

dove pvc_number pu essere al massimo 84 e di conseguenza atmX dovr essere atm0, atm1,atm7. Il valore di default di pvc_number 1. Occorre quindi completare la configurazione di ogni PVC definito. Per configurare vpi (valore tipico 8), vci (valore tipico 35) e il Peak Cell Rate (valore tipico 0):
set adsl pvc atm0||atm7 vpi <value> vci <value> [pcr <value>]

oppure solo il Peak Cell Rate:


set adsl pvc atm0||atm7 pcr <value>

Per configurare il valore del timer rate (valori tipici 10, 50, 100 millisecondi), fornendo un valore in millisecondi:
set adsl pvc atm0||atm7 timer_rate <value>

Per abilitare le funzioni di NAT (Network Address Translation) :


set adsl pvc atm0||atm7 masquerade

Nel caso in cui il tipo di incapsulamento sia rfc-1483-vcmux oppure rfc1483-llc (protocolli descritti nella RFC 1483, Multiprotocol Encapsulation over ATM Adaptation Layer 5) necessario definire un indirizzo IP, mediante il comando:
set adsl pvc atm0||atm7 ipaddr <value> nexthop <value>

oppure a seconda delle informazioni ricevute dal Provider, potrebbero essere usati i comandi:
set adsl pvc atm0||atm7 ipaddr <value> set adsl pvc atm0||atm7 no-nexthop set adsl pvc atm0||atm7 netmask <value>

Opzionalmente pu essere richiesto di abilitare la rotta di default:


4

Per connessioni di tipo PPPoA e PPPoE ammesso un solo PVC.

Tiesse

41

IMOLA User Guide - Rev.21 Ver. 001

set adsl pvc atm0||atm7 default-route

Quando si utilizza invece il tipo di incapsulamento pppoa (PPP over ATM) oppure pppoe (PPP over Ethernet), occorre definire login e password che saranno usate per l'autenticazione:
set adsl login <value> password <value>

Nei modelli Imola XX20 possibile configurare la tipologia di traffico ATM per PVC nel seguente modo
set adsl pvc atm0||atm7 service <service-type>

dove service-type pu assumere i valori UBR, VBR e RTVBR. Inoltre, per il traffico VBR e RTVBR possibile specificare, oltre al PCR, i valori per SCR (Sustainable Cell Rate) e per MBS (Maximum Burst Size), nel seguente modo:
set adsl pvc atm0||atm7 scr <value> set adsl pvc atm0||atm7 mbs <value>

possibile attivare (o disattivare) una connessione ISDN o GPRS da utilizzarsi come link di backup qualora l'interfaccia ADSL non sia disponibile, con il seguente comando5:
set adsl backup gprs|isdn set adsl backup on|off

Inoltre possibile stabilire che la linea di backup venga attivata qualora un determinato indirizzo IP non sia raggiungibile. La verifica di raggiungibilit viene effettuata mediante invio di messaggi icmp request (ping). L'indirizzo IP pu essere l'indirizzo direttamente connesso al router oppure pu essere impostato dall'utente. Nel primo caso il comando :
set adsl extbackup nexthop

Nel secondo caso lIP address si dovr configurare con il comando:


set adsl extbackup ipaddr <value>

Per attivare (o disattivare) il criterio configurato disponibile il comando:


set adsl extbackup on|off

Per disabilitare una configurazione di backup dell'interfaccia ADSL disponibile il comando CLI:
set adsl no-backup

Il comando set adsl backup viene sostituito dal pi flessibile e potente set backup .ma viene mantenuto per compatibilit con precedenti versioni di software.

42

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per impostare la modalit di linea dello standard ADSL possibile impiegare il comando set adsl line-mode, che permette di selezionare i parametri ITU (Europa), ANSI e AUTO (Multimode):
set adsl line-mode itu|ansi|auto

Infine possibile attivare (o disattivare) una descrizione dell'interfaccia ADSL, che sar restituita dall'agent SNMP (se configurato ed attivato) ad interrogazioni della variabile della Mib_II ifDescr, con i seguenti comandi:
set adsl description|no-description <value>

Un esempio di sequenza di comandi di configurazione dell'interfaccia ADSL pu essere la seguente:


set set set set set set set set set set adsl adsl adsl adsl adsl adsl adsl adsl adsl adsl encap rfc1483-vcmux backup isdn extbackup no pvc-number 1 description muxadsl pvc atm0 vpi 8 vci 35 pvc atm0 pcr 0 pvc atm0 default-route pvc atm0 ipaddr 1.1.1.1 nexthop 2.2.2.2 on

VISUALIZZAZIONE
possibile visualizzare informazioni riguardanti la configurazione, i pvc, le statistiche e lo stato dell'interfaccia ADSL. Il comando CLI il seguente:
show interface adsl config|pvc|statistics|status

Ad esempio, il comando:
show interface adsl config

produce un output a video simile al seguente (Figura 19):


root@Imola> show interface adsl config Encapsulation: 1483 Routed IP VC_Mux Number of PVC Configured: 1 Configured Backup isdn Extended Backup no Figura 19: Esempio di output comando: show interface adsl config

Tiesse

43

IMOLA User Guide - Rev.21 Ver. 001

Loutput del comando:


show interface adsl pvc

invece:
root@Imola> show interface adsl pvc Configuration for PVC atm0: VPI/VCI: 8/35 Peak Cell Rate: 0 Local IP Address: 85.34.147.98 Nexthop IP Address: 85.34.147.97 Default Route on here: yes Masquerade: yes 26: atm0: <BROADCAST,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0d:5a:05:02:85 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 446 9 0 0 0 0 inet 85.34.147.98/30 brd 85.255.255.255 scope global atm0 root@Imola> Figura 20: Esempio di output comando: show interface adsl pvc

Nel caso di incapsulamento PPP over ATM oppure PPP over Ethernet loutput del comando il seguente:
root@Imola> show interface adsl pvc atm0 Configuration for PVC atm0: VPI/VCI: 8/35 Peak Cell Rate: 0 Default Route on here: yes Masquerade: yes 31: atm0: <BROADCAST,MULTICAST,UP> mtu 1520 qdisc pfifo_fast qlen 100 link/ether 00:0d:5a:05:02:85 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1659 35 0 0 0 0 TX: bytes packets errors dropped carrier collsns 1823 31 0 0 0 0 33: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3 link/ppp RX: bytes packets errors dropped overrun mcast 1578 30 0 0 0 0 TX: bytes packets errors dropped carrier collsns 1125 22 0 0 0 0 inet 87.15.170.186 peer 192.168.100.1/32 scope global ppp0 root@Imola> Figura 21bis: Esempio di output comando: show interface adsl pvc

Dove vengono visualizzati i dati dellinterfaccia atm0 relativa al PVC e i dati dellinterfaccia ppp0 relativa alla connessione PPP over ATM. Il comando:
show interface adsl statistics

produce un output a video del seguente tipo:

44

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

root@Imola> show interface adsl statistics 10: adsl: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1711710265 2670231 0 0 0 0 TX: bytes packets errors dropped carrier collsns 910575942 2590721 25 0 19 0

Figura 22: Esempio di output comando:

show interface adsl statistics

Tiesse

45

IMOLA User Guide - Rev.21 Ver. 001

Infine il comando:
show interface adsl status

produce la seguente visualizzazione sui router Imola XX10:


root@Imola> show interface adsl status eagle-usb status display ------------------------------------------------------------Driver version 2.3.1 Chipset: Eagle0 Vendor ID : 0x1110 Product ID : 0x9021 Rev: 0x500b USB Bus : 001 USB Device : 002 Dbg mask: 0x0 ADSL_STANDARD: G.992.x/G.994.1 Ethernet Interface : atm0 MAC: 00:30:0a:23:7e:75 Tx Rate 320 Rx Rate 1504 FEC 0 Margin 27 Atten 37 dB VID-CPE 0 VID-CO 28 HEC 0 VPI 8 VCI 35 Delin GOOD Cells Tx 39746757 Cells Rx 94574935 Pkts Tx 6766628 Pkts Rx 6982436 OAM 48253 Bad VPI 0 Bad CRC 135 Oversiz. 2688 Non-Integral. 95382 Tx_Timeouts 0 (5000) txd_0jf txd_3jf txd_6jf txd_9-20 txi_0jf txi_3jf txi_6jf txi_9-20 4999779 239456 0 0 1602622 374412 256445 703350 txd_1jf txd_4jf txd_7jf txd_gt_20 txi_1jf txi_4jf txi_7jf txi_gt_20 886957 109038 0 30 1587667 282400 184538 371037 txd_2jf txd_5jf txd_8jf txd_max 507275 24093 0 1671

txi_2jf 1098665 txi_5jf 208992 txi_8jf 96499 txi_max 30103

Modem is operational Figura 23: Esempio di output comando: show interface adsl status

46

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

SIGNIFICATO DEI LED


Nei router Imola XX10 lo stato dell'interfaccia ADSL viene indicato mediante 3 led di colore verde, etichettati con le seguenti denominazioni: Pw, Link e Data. Laccensione del led Pw indica che il modem ADSL interno alimentato in modo corretto. Il led Link lampeggiante indica la fase di sincronizzazione con la centrale. Il led Link acceso fisso indica che la fase di sincronizzazione stata effettuata con successo. Il led Data viene utilizzato per visualizzare il traffico dati. Nei router Imola XX20 lo stato dell'interfaccia ADSL viene indicato mediante 2 led di colore verde, etichettati con le seguenti denominazioni: Link e Data. Il led Link acceso indica che il modem stato inizializzato con successo. Il led Data acceso indica che la fase di sincronizzazione con la centrale stata effettuata con successo e che il modem in stato operativo.

TRIGGER ADSL
E possibile definire delle azioni da eseguire quando viene attivata e deattivata linterfaccia ADSL, rispettivamente mediante i comandi:
set trigger adsl up <action> set trigger adsl down <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Una sequenza di azioni viene configurata mediante una sequenza di comandi:
set trigger adsl up <action1> set trigger adsl up <action2> set trigger adsl up <actionN>

Lesecuzione delle azioni avviene secondo lordine con cui sono stati impostati. Ad esempio mediante la sequenza di comandi:
set set set set trigger trigger trigger trigger adsl adsl adsl adsl up ip route add 12.12.12.12 dev atm0 up logger r 10.10.1.212 ADSL is up down ip route del 12.12.12.12 dev atm0 down logger r 10.10.1.212 ADSL is down

si imposta una rotta statica verso lhost 12.12.12.12 e si invia il messaggio di log ADSL is up quando linterfaccia ADSL viene attivata, mentre si elimina la rotta e si invia il messaggio di log ADSL is down quando linterfaccia ADSL non operativa. Per cancellare un trigger si utilizzano i comandi:
set no-trigger adsl up <action> set no-trigger Adsl down <action>

Tiesse

47

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA FRAME RELAY


CONFIGURAZIONE
Le funzioni Frame Relay di Imola sono supportate dal chipset Serocco di Infineon. Esternamente linterfaccia si presenta con una porta seriale V.35 su connettore ISO DIN 2593. Supporta fino a 8 PVC (Permanent Virtual Circuit) conforme ai seguenti standard: Frame-Relay: ITU-T X.36 Protocolli PVC: ANSI T1 617 Annex D, ITU-T Q.933 Annex A (CCITT) Il link Frame Relay configurabile ed attivabile mediante comandi CLI. Per attivare l'interfaccia Frame Relay disponibile il comando:
set frame-relay on

Per disattivare l'interfaccia Frame Relay disponibile il comando:


set frame-relay off

Per disattivare l'interfaccia Frame Relay e disabilitarne la configurazione disponibile il comando:


set no-frame-relay

Prima di attivare l'interfaccia Frame Relay necessario eseguire alcune operazioni di configurazione. Per configurare la tipologia della station:
set frame-relay station dte|dce

il valore di default dte. Per configurare la velocit:


set frame-relay baud-rate <val>|external

il valore di default external. Per configurare il tipo di Protocollo di PVC management (LMI):
set frame-relay lmi-type ansi|ccitt

Il valore di default ansi.

48

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per configurare il singolo PVC:


set frame-relay pvc pvcX ipaddr <ip-value> nexthop <ip-value> set frame-relay pvc pvcX netmask <value> set frame-relay pvc pvcX dlci <value>

dove pvcX dovr essere pvc0, pvc1,pvc7. Occorre quindi completare la configurazione di ogni pvc definito. Per abilitare le funzioni di NAT (Network Address Translation) :
set frame-relay pvc pvc||pvc7 masquerade

e opzionalmente pu essere richiesto di abilitare la rotta di default:


set frame-relay pvc pvc||pvc7 default-route

possibile attivare (o disattivare) una connessione ISDN da utilizzarsi come link di backup qualora l'interfaccia Frame Relay non sia disponibile. Con il seguente comando:
set set set set backup checking-interface pvcX trigger backup up <cmdUp> trigger backup down <cmdDown> backup on|off

Dove il comando <cmdUp> verr eseguito nel momento in cui il backup attivato, e il comando <cmdDown> quando il backup viene disattivato. Inoltre possibile stabilire che la linea di backup venga attivata qualora un determinato indirizzo IP non sia raggiungibile. La verifica di raggiungibilit viene effettuata mediante invio di messaggi icmp request (ping).
set backup checking-ipaddr <ipaddr> via icmp|bfd through-interface pvcX set trigger backup up <cmd> set trigger backup down <cmd>

Per attivare (o disattivare) il criterio configurato disponibile il comando:


set backup on|off

Per disabilitare una configurazione di backup dell'interfaccia Frame Relay disponibile il comando CLI:
set no-backup

Un esempio di sequenza di comandi di configurazione dell'interfaccia Frame Relay pu essere la seguente:


set set set set set frame-relay frame-relay frame-relay frame-relay frame-relay pvc pvc pvc pvc on pvc0 pvc0 pvc0 pvc0 dlci 21 default-route ipaddr 1.1.1.1 nexthop 1.1.1.2 netmask 255.255.255.252

Tiesse

49

IMOLA User Guide - Rev.21 Ver. 001

VISUALIZZAZIONE
possibile visualizzare informazioni riguardanti la configurazione, i PVC, le statistiche e lo stato dell'interfaccia Frame Relay. Il comando CLI il seguente:
show interface frame-relay config|pvc|statistics|status

Ad esempio, il comando:
show interface frame-relay config

produce un output a video simile al seguente (Figura 24):


root@Imola> show interface frame-relay config Frame-Relay Protocol configuration: Internal clock, baud-rate: external Frame-relay station: dte Configured frame-Relay Backup: no Figura 24: Esempio di output comando: show interface frame-relay config

Loutput del comando:


show interface frame-relay pvc

invece simile a (Figura 25):


root@Imola> show interface frame-relay pvc Configuration for PVC pvc0: Local IP Address: 1.1.1.1 Nexthop IP Address: 1.1.1.2 Default Route on here: yes Masquerade: no DLCI 16 [pvc0] Status:active,Last time pvc status changed: 0:47:11 15: pvc0: <POINTOPOINT,UP> mtu 1500 qdisc noqueue link/dlci 00:10 peer 04:01 RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0 inet 1.1.1.1 peer 1.1.1.2/30 scope global pvc0 pvc1 is not defined pvc2 is not defined Configuration for PVC pvc3: Local IP Address: 11.11.11.1 Nexthop IP Address: 11.11.11.2 Default Route on here: no Masquerade: yes DLCI 17 [pvc3] Status:active,Last time pvc status changed: 0:40:10 35: pvc3: <POINTOPOINT,UP> mtu 1500 qdisc noqueue link/dlci 00:11 peer 04:01 RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0 inet 11.11.11.1 peer 11.11.11.2/30 scope global pvc3 pvc4 is not defined pvc5 is not defined pvc6 is not defined pvc7 is not defined Figura 25: Esempio di output comando: show interface frame-relay pvc

50

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Il comando:
show interface frame-relay statistics

produce un output a video del seguente tipo (Figura 26):


root@Imola> show interface frame-relay statistics 13: hdlc0: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/frad RX: bytes packets errors dropped overrun mcast 4810 305 0 0 0 0 TX: bytes packets errors dropped carrier collsns 4270 610 0 0 0 0

Figura 26: Esempio di output comando:

show interface frame-relay statistics

Infine il comando:
show interface frame-relay status

produce la seguente visualizzazione (Figura 27):


root@Imola> show interface frame-relay status V.35 mode: EXTERNAL CLOCK baude= 0 NRZ CRC16_PR1_CCITT Modem status: DTR active, DSR active, CTS active, RXINT: full=00000000 mend=00000307 flovr=00000000 dtovr=00000000 fovr=00000000 rxpckt=00000307 rxbytes=00004838 rxerrs=00000000 rxdrops=00000000 rxabort=00000000 rxover=00000000 rxcrcerr=00000000 rxlenerr=00000000 rxnospace=00000000 rxcecbusy=00000000 TXINT: ready=00000310 allsent=00000307 repeat=00000000 under=00000000 txpckt=00000614 txbytes=00004298 txerrs=00000000 txdrops=00000000 txnotrdy=00000001 txcecbusy=00000000 netifstop=00000308 netifwake=00000308 netiflast=Wake Figura 27: Esempio di output comando: show interface frame-relay status

Tiesse

51

IMOLA User Guide - Rev.21 Ver. 001

INTERFACCIA GPRS/EDGE UMTS/HSDPA


CONFIGURAZIONE
Imola pu essere impiegato come Router tra la rete Ethernet e una rete mobile. I modelli Imola 1XX0 supportano solo connessioni GPRS, i modelli 2XX0 supportano siano connessioni Edge che GPRS, i modelli 3XX0 supportano sia connessioni UMTS/HSDPA che GPRS/EDGE. La scelta del tipo di rete trasparente. La configurazione viene effettuata con gli stessi comandi della sessione GPRS della CLI. Per attivare l'interfaccia mobile di Imola disponibile il comando CLI:
set gprs on

Mentre per disattivare l'interfaccia GPRS pu essere impiegato il comando:


set gprs off

Se invece si vuole disattivare l'interfaccia GPRS e disabilitarne la configurazione disponibile il comando CLI:
set no-gprs

Prima di attivare l'interfaccia GPRS necessario eseguire alcune operazioni di configurazione, secondo le indicazioni e i valori forniti dal Provider con cui si stipulato il contratto, utilizzando i comandi CLI indicati di seguito. Configurazione dellAPN:
set gprs apn <value>

Configurazione login e password per l'autenticazione PPP:


set gprs login <value> password <value>

Per attivare o disattivare una rotta di default sulla connessione GPRS:


set gprs default-route set gprs no-default-route

Per abilitare o disabilitare il Port Address Translation (PAT) sulla connessione GPRS:
set gprs masquerade set gprs no-masquerade

52

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Nella configurazione di default la connessione GPRS rimane sempre attiva. possibile per configurare l'interfaccia in modo da terminare la connessione dopo un certo numero di secondi di inattivit, ristabilendola alla prima richiesta di trasmissione:
set gprs on-demand yes|no set gprs idle <value>

Il parametro idle permette di definire un intervallo di tempo di inattivit della sessione GPRS: se allinterno di tale intervallo non viene ricevuto o trasmesso alcun pacchetto la sessione GPRS viene abbattuta e nel caso in cui non sia stata configurata in modalit on-demand, essa viene automaticamente riattivata. E possibile conteggiare linattivit della sessione della sessione solamente in base ai caratteri ricevuti, ignorando quelli trasmessi, utilizzando i comandi:
set gprs idle 0 set gprs rx-idle <value>

Per configurare la velocit del modem viene impiegato il comando CLI:


set gprs speed <value>

La velocit da selezionare nel caso di modem EDGE 230400, per connessioni GPRS deve essere un valore inferiore, ad esempio 115200, mentre risulta invece ininfluente nel caso di modem UMTS/HSDPA. Il comando:
set gprs mtu 1500

imposta il Max Transfer Unit (MTU) relativo all'interfaccia GPRS. A volte alcune configurazioni di APN limitano a 1476 la dimensione dei pacchetti trasmessi, per cui in questi casi conviene utilizzare il comando:
set gprs mtu 1476

Mediante i seguenti comandi:


set gprs lcp-echo-interval set gprs lcp-echo-failure

possiamo impostare rispettivamente la frequenza con cui vengono inviati i pacchetti lcp echo request ed il numero di tentativi da effettuare prima di abbattere l'interfaccia GPRS. L'interfaccia verr ripristinata automaticamente, subito dopo l'abbattimento della stessa. possibile invece negoziare i parametri DNS direttamente dal peer con il comando:
set gprs usepeerdns

Per impostare la modalit di autenticazione su linee GPRS (il default lautenticazione CHAP), viene impiegato il comando:

Tiesse

53

IMOLA User Guide - Rev.21 Ver. 001

set gprs sgauth <auth_type_code>

Le varie modalit di autenticazione possono essere specificate impiegando i seguenti codici: 0: nessun tipo di autenticazione 1: autenticazione PAP 2: autenticazione CHAP 3: autenticazione PAP e CHAP

In caso di modello con modem UMTS/HSDPA per stabilire il tipo di autenticazione PAP bisogna usare il comando:
set gprs directive refuse-chap

possibile attivare (o disattivare) una descrizione dell'interfaccia GPRS, che sar restituita dall'agent SNMP (se configurato ed attivato) ad interrogazioni della variabile della Mib_II ifDescr, con i seguenti comandi:
set gprs description set gprs no-description <value>

Una sequenza significativa di comandi di configurazione dell'interfaccia GPRS pu essere la seguente:


set set set set set gprs gprs gprs gprs gprs apn ibox.tim.it login mylogin password mypasswd default-route masquerade on

possibile attivare sull'interfaccia una connessione GSM V110, anzich GPRS, con i seguenti comandi:
set gprs v110 set gprs apn <value>

in questo caso largomento <value> rappresenta il numero di telefono da chiamare. Se si configura la connessione di tipo on demand, si pu stabilire quali sono i pacchetti che contribuiscono a mantenere attiva la connessione ppp (gprs o v110) mediante il comando:
set access-list dial-ppp prot <prot> port <value> from <src> to <src>

descritto nel capitolo relativo alle access list. Linterfaccia di rete per la sessione GPRS di tipo PPP ed il nome ad essa assegnata pppX, dove X un indice che di solito assume il valore 0 (ppp0). Allo stesso modo anche una connessione ADSL con incapsulamento di tipo PPP over ATM (PPPoA) viene indicata con pppX. Il criterio di scelta dellindice X funzione dellordine di attivazione delle connessione: la prima attivata sar ppp0 e la seconda ppp1.

54

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Nel caso in cui sullo stesso router debbano essere attive sia una connessione ADSL di tipo PPPoA che una connessione mobile (gprs/edge/umts/hsdpa), per evitare indeterminazione nella scelta del nome previsto il comando:
set gprs directive unit N

mediante il quale il nome dellinterfaccia associata alla sessione mobile sar sempre pppN, riservando alla connessione ADSL il nome ppp0. Il valore di N deve essere scelto tra 1 e 9.

VISUALIZZAZIONE
possibile visualizzare informazioni riguardanti la configurazione, le statistiche e lo stato dell'interfaccia GPRS. Il comando CLI il seguente:
show interface gprs config|statistics|status

Ad esempio, il comando show interface gprs config produce un output a video simile a quanto riportato nella Figura 28:
root@Imola> show interface gprs config Start GPRS: yes APN: ibox.tim.it PPP Login: mylogin PPP Passwd: mypasswd MTU: 576 Idle Timeout: 3600 Masquerade: yes Deflt-Route: yes

Figura 28: Esempio di output comando: show interface gprs config

Il comando show interface gprs statistics produce un output a video simile al seguente (Figura 29):
root@Imola> show interface Number of GPRS Connection: Total Bytes Transmitted: Total Bytes Received: Total Duration: gprs statistics 1 40 1517 3

Figura 29: Esempio di output comando:

show interface gprs statistics

Tiesse

55

IMOLA User Guide - Rev.21 Ver. 001

Il comando show interface gprs status produce un output a video simile a quanto mostrato dalla Figura 30:
root@Imola> show interface gprs status Signal Quality: +CSQ: 17,99 Network: HSDPA/UMTS AT^MONI 45 30

-80 222

01 EDFB 03B1

33

-105

25 I

No connection

OK There is an active GPRS Connection: 31: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3 link/ppp RX: bytes packets errors dropped overrun mcast 40 4 0 0 0 0 TX: bytes packets errors dropped carrier collsns 77 6 0 0 0 0 inet 217.201.91.46 peer 192.168.254.254/32 scope global ppp0

Figura 30: Esempio di output comando:

show interface gprs status

Il livello di campo o dBm segnalato dal modem GPRS (le classiche tacche visualizzate dal telefono GSM) visualizzato tra le informazioni riportate dal comando AT^MONI ed identificabile, nellesempio sopra, dal valore negativo 80 . Il valore del livello di campo anche ottenibile partendo dal valore CSQ. Riferendosi allesempio precedente, il livello di campo (dBm) si ottiene mediante una semplice operazione aritmetica:
CSQ*2 - 113 = dBm

Il valore ottenuto ci servir per capire il livello di segnale disponibile (le classiche tacche visibili sul display del cellulare):
dBm da -105 a -100 da -100 a -95 da -95 a -90 da -90 a -85 maggiore di -85 Tabella 4 # tacche 0 1 2 3 4

Il valore CSQ 99,0 indica un livello di segnale non disponibile (il modem non connesso alla rete). Mediante lattivazione del meccanismo di log di sistema possibile verificare eventuali problemi di attivazione del link. Per attivare i log di sistema utilizzare i comandi descritti nellapposito capitolo. Di seguito sono riportate 2 sezioni di messaggi di log relativi ad una sessione attivata in modo corretto e ad una sessione non attivata (APN errato):

56

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

root@Imola> set gprs on root@Imola> shoo log Jan 1 04:47:25 localhost Jan 1 04:47:25 localhost Jan 1 04:47:31 localhost Jan 1 04:47:38 localhost Jan 1 04:47:38 localhost Jan 1 04:47:38 localhost Jan 1 04:47:38 localhost Verified OK Jan 1 04:47:39 localhost Jan 1 04:47:39 localhost

GPRS[13375]: GPRS[13375]: pppd[13380]: pppd[13380]: pppd[13380]: pppd[13380]: pppd[13380]:

Trying Speed 19200 Modem OK pppd 2.4.1 started by root, uid 0 Serial connection established. Using interface ppp0 Connect: ppp0 <--> /dev/ttyS1 Remote message: TTP Com PPP - Password

pppd[13380]: local IP address 217.201.192.147 pppd[13380]: remote IP address 10.0.0.1

Figura 31: Sessione GPRS attivata con successo

root@Imola> set gprs on root@Imola> set log watch Jan 1 04:47:25 localhost GPRS[13375]: Trying Speed 19200 Jan 1 04:47:25 localhost GPRS[13375]: Modem OK Jan 1 04:47:31 localhost pppd[13380]: pppd 2.4.1 started by root, uid 0 Jan 1 04:47:38 localhost pppd[13380]: Serial connection established.Jan 1 05:03:07 localhost pppd[14236]: Using interface ppp0 Jan 1 05:03:07 localhost pppd[14236]: Connect: ppp0 <--> /dev/ttyS1 Jan 1 05:03:08 localhost pppd[14236]: Remote message: TTP Com PPP - Password Verified OK Jan 1 05:03:17 localhost pppd[14236]: Terminating on signal 15. Jan 1 05:03:17 localhost pppd[14236]: Connection terminated. Jan 1 05:03:18 localhost pppd[14236]: Exit. Figura 32: Sessione GPRS non attivata per APN errato

SIGNIFICATO DEI LED


Per indicare lo stato dell'interfaccia GPRS sono stati impiegati tre led verdi. La loro denominazione la seguente: Pw, Link e Data. Laccensione del led Pw indica che il modem interno alimentato in modo corretto. Nel caso di modem GPRS oppure Edge (modelli 1xx0 e 2xx0), il led Link indica lo stato della connessione alla rete: il lampeggio ad intermittenza lenta (un'accensione ogni 1-2 secondi) indica la corretta connessione alla rete; un lampeggio ad intermittenza pi veloce indica la fase di connessione alla rete; laccensione permanente serve ad a indicare che la connessione attiva di tipo GSM. Il led (Data) viene impiegato per indicare che attiva una sessione PPP. Nel caso di modem HSDPA/UMTS (modelli 3xx0) il led Link acceso fisso in caso di corretta connessione alla rete.

Tiesse

57

IMOLA User Guide - Rev.21 Ver. 001

TRIGGER GPRS
E possibile definire delle azioni da eseguire quando viene attivata e deattivata linterfaccia GPRS, rispettivamente mediante i comandi:
set trigger gprs up <action> set trigger gprs down <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Una sequenza di azioni viene configurata mediante una sequenza di comandi:
set trigger gprs up <action1> set trigger gprs up <action2> set trigger adsl up <actionN>

Lesecuzione delle azioni avviene secondo lordine con cui sono stati impostate. Ad esempio mediante la sequenza di comandi:
set set set set set trigger trigger trigger trigger trigger gprs gprs gprs gprs gprs up ip route add 12.12.12.12 dev ppp0 up logger r 10.10.1.212 ADSL is up up hello 85.34.166.18 514 down ip route del 12.12.12.12 dev ppp0 down logger r 10.10.1.212 ADSL is down

si imposta una rotta statica verso lhost 12.12.12.12 e si invia il messaggio di log GPRS is up . Inoltre viene eseguito il comando hello con argomenti un indirizzo IP ed una porta. Il comando hello manda verso lindirizzo e la porta specificati un messaggio contenente lindirizzo IP dellinterfaccia gprs, lhostname ed il serial number. Si elimina la rotta e si invia il messaggio di log GPRS is down quando la sessione GPRS viene terminata. Per cancellare un trigger si utilizzano i comandi:
set no-trigger adsl up <action> set no-trigger adsl down <action>

CONTROLLO DI TRAFFICO
possibile configurare il router in modo da effettuare il controllo del traffico in ingresso ed in uscita sull'interfaccia GPRS. In particolare si pu configurare un valore di soglia ed innescare degli eventi quando il traffico in una data unit di tempo superiore od inferiore a tale soglia.
set gprs traffic-control input-threshold <N>

Il valore N espresso in byte e rappresenta il valore di soglia per il traffico in ingresso.


set gprs traffic-control output-threshold <N>

Il valore N espresso in byte e rappresenta il valore di soglia per il traffico in uscita.

58

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set gprs traffic-control timer-unit <N>

Il valore N espresso in secondi e rappresenta la frequenza con cui viene effettuato il controllo.
set gprs traffic-control mode or|and

Definisce se il controllo del traffico relativo alla soglia di ingresso e a quella di uscita, oppure alla soglia di ingresso o a quella di uscita.
set gprs traffic-control prewait <N>

Rappresenta un valore in secondi di attesa prima di iniziare il controllo del traffico.


set gprs traffic-control on|off

Attiva/disattiva il controllo del traffico. Tipicamente i comandi si usano in concomitanza del comando set Il seguente esempio ne chiarisce l'utilizzo.
set set set set set set trigger gprs-tc.

gprs traffic-control input-threshold 10000 gprs traffic-control output-threshold 20000 gprs traffic-control mode or gprs traffic-control timer-unit 60 trigger gprs-tc up logger -h 192.168.2.1 GPRS Traffic is too High trigger gprs-tc down logger -h 192.168.2.1 GPRS Traffic is at normal rate

set trigger gprs up set gprs traffic-control on set trigger gprs down set gprs traffic-control off

Il controllo del traffico viene attivato contestualmente all'attivazione della sessione GPRS e disattivato quando termina la sessione. Si imposta un valore di soglia di 10K per il traffico in ingresso ed un valore di 20K per il traffico in uscita. Il controllo di effettua ogni 60 secondi. Se in 60 secondi il traffico in ingresso oppure quello in uscita supera il valore di soglia impostato viene eseguito il comando specificato dal trigger set gprs-tc up, che invia un messaggio di log verso un determinato Host. Viceversa, se in 60 secondi il traffico inferiore ai valori di soglia viene eseguito il comando specificato dal trigger set trigger gprs-tc down.

CONTROLLO SESSIONE GPRS


E possibile applicare una serie di comandi su Imola per effettuare il controllo sulla sessione GPRS. Tramite le funzioni di rtr si invia un ping periodico (15 secondi) verso un ip specifico; impostando il valore rx-idle a 120 secondi, la sessione gprs si riattiva in caso di mancata risposta dallindirizzo ip. Di seguito un esempio:
set gprs idle 0 set gprs rx-idle 120 set rtr type ipIcmpEcho dst-addr <ip_addr> set rtr frequency 15 set rtr timeout 2000

Tiesse

59

IMOLA User Guide - Rev.21 Ver. 001

set rtr lifetime 0 set rtr start-time immediately set trigger gprs up set rtr on set trigger gprs down set rtr off

Un altro metodo possibile lutilizzo del comando bfdping, utile qualora non si ha a disposizione alcun indirizzo IP cui mandare i pacchetti di tipo icmp:
set gprs idle 0 set gprs rx-idle 120 set trigger timer-tick bfdping i ppp0 set trigger gprs up set timer-tick 15 set trigger gprs down set no-timer-tick

Ogni qualvolta che si attiva la sessione GPRS, viene fatto partire un timer periodico di 15 secondo, allo scadere del quale si esegue il comando bfdping, Questo comando forza la trasmissione sulla rete GPRS di un pacchetto UDP avente come indirizzo destinatario lindirizzo associato allinterfaccia GPRS, quindi il primo router della rete (il primo hop) obbligato a rimandarlo indietro. La mancata ricezione di tale pacchetto causa il timeout della sessioen GPRS (rx-idle 120), e la conseguente riattivazione.

GESTIONE SMS
Imola in grado di inviare e ricevere dei messaggi SMS6. Per inviare un messaggio si usa il comando:
send-sms d <dest-number> <message text>

dove <dest-number> il numero cui il messaggio deve essere inviato. Ad esempio:


send-sms d 3482688623 How are you?

Per abilitare Imola alla ricezione dei messaggi SMS necessario impostare il comando:
set gprs sms-handle

mentre per disabilitarne la gestione:


set gprs no-sms-handle

I messaggi ricevuti vengono interpretati come dei comandi, che Imola esegue ed invia il risultato al mittente. Ogni messaggio deve iniziare sempre con la parola chiave specificata mediante il comando:
set gprs sms-password <key>

La gestione di SMS supportata dal modulo gprs vers. 1.1.5 o superiori

60

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

altrimenti questo viene cancellato ed ignorato. Nel caso in cui non sia stata specificata, si assume che la parola chiave sia Tiesse. La parola chiave casesensitive. Il testo del messaggio pu essere un qualsiasi comando supportato da Imola. Una volta ricevuto, Imola invia un messaggio di conferma ed eventualmente un ulteriore messaggio contenente il risultato dellesecuzione del comando. Ad esempio, supponendo che abbia ricevuto il messaggio contenente il testo:
Tiesse ip route

Imola risponde prima con il messaggio:


Imola 00:0d:5a:xx:xx:xx command ip route scheduled for execution

e successivamente con il messaggio:


Tiesse ip route -> Imola 00:0D:5A:xx:xx:xx 172.151.0.0/16 dev eth1 proto kernel scope link src 172.151.113.1 10.10.0.0/16 dev eth0 proto kernel scope link src 10.10.1.1

Oppure, al messaggio:
Tiesse set gprs rx-idle 360

Imola risponde solamente con il messaggio:


Imola 00:0d:5a:xx:xx:xx command set gprs rx-idle 360 scheduled for execution

La risposta di Imola viene sempre troncata a 160 caratteri. Particolarmente utili sono i comandi gprs-signal e gprs-dialin. Il primo viene usato per leggere la qualit del segnale GPRS, il secondo invece pone Imola in uno stato in cui sono possibili connessioni GSM verso di esso.. Ad esempio, al messaggio:
Tiesse gprs-signal

Imola risponde con il messaggio:


Imola 00:0D:5A:xx:xx:xx Signal Power: CSQ=13 => -87dBm

Inviando il messaggio:
Tiesse gprs-dialin

Imola risponde con:


Imola 00:0d:5a:xx:xx:xx command gprs-dialin scheduled for execution

Esce dalla modalit dialin o dopo aver effettuato e successivamente terminato una connessione GSM oppure dopo 10 minuti.

Tiesse

61

IMOLA User Guide - Rev.21 Ver. 001

ROTTE STATICHE
CONFIGURAZIONE ROTTE STATICHE
Le tabelle di routing statico possono essere configurate mediante il comando:
set route net <dest> netmask <netmask> gw <gw_ipaddr> [metric N] set route net <dest> netmask <netmask> dev <interface> [metric N] set route host <dest> gw <gw_ip_addr> [metric N] set route host <dest> dev <interface> [metric N]

mentre per rimuovere una rotta il comando :


set no-route net <dest> netmask <netmask> gw <gw_ip_addr> set no-route net <dest> netmask <netmask> dev <interface> set no-route host <dest> gw <gw_ip_addr> set no-route host <dest> dev <interface>

Ad esempio, per impostare una rotta verso la rete 10.1.10.0/24, tramite il gateway 10.10.254.1:
set route net 10.1.10.0 netmask 255.255.255.0 gw 10.10.254.1

mentre per rimuovere la rotta:


set no-route net 10.1.10.0 netmask 255.255.255.0 gw 10.10.254.1

Le rotte aggiunte con il comando set route senza specificare alcun valore per il campo metric sono rotte statiche che prevalgono su tutte le altre verso la stessa destinazione, in particolare anche su quelle acquisite mediante lutilizzo di protocolli di routing dinamico (rip, bgp, ospf). Queste rimangono attive anche nel caso in cui lo stato dell'interfaccia non sia operativo. Nel caso in cui sia attivo un qualsiasi protocollo di routing dinamico, lopzione metric viene interpretata come valore della distanza amministrativa della rotta. In questo caso pu anche essere usata la forma:
set route net <dest> netmask <netmask> gw <gw_ipaddr> [distance N] set route net <dest> netmask <netmask> dev <interface> [distance N]

E possibile impostare le rotte utilizzando il comando ip7 in una delle seguenti forme:
ip route add <dst> dev <ifname> proto kernel [metric N] ip route add <dst> via <nexthop> proto kernel [metric N]
7

Le rotte impostate mediante il comando ip vengono attualizzate sul router ma non vengono salvate nella configurazione. Affinch queste vengano salvate nella configurazione ed attivate anche al prossimo reboot del router e' necessario che venga eseguito il comando: set autocmd ip route add ....

62

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

ip route add <dst> via <nexthop> dev <ifname> proto kernel [metric N]

In questo caso tuttavia non possibile specificare la distanza amministrativa. Nel caso in cui siano presenti rotte alternative verso la stessa destinazione, viene selezionata quella con metrica minore. Il comando:
ip route get <dst>

visualizza quale rotta sar selezionata per raggiungere la destinazione <dst>. Per eliminare le rotte statiche qualora lo stato dell'interfaccia di rete non sia operativo, si usa il comando:
detect-dead-routes <ifname1 ... ifnameN>

il quale verifica lo stato delle interfacce specificate e rimuove le rotte associate a quelle interfacce di rete non operative. Le rotte eliminate vengono automaticamente riattivate quando lo stato dell'interfaccia diventa nuovamente operativo. Ad esempio i comandi:
set autocmd ip route add 192.168.1.0/24 dev tun0 proto kernel mtric 5 set autocmd ip route add 172.16.1.1 dev tun1 proto kernel metric 3

attivano due rotte: verso la rete 192.168.1.0/24 attraverso linterfaccia tun0 (tunnel gre) e verso lhost 172.16.1.1 mediante linterfaccia tun1. Il comando:
detect-dead-routes tun0 tun1

fa in modo che quando lo stato delle due interfacce tun0 o tun1 non operativo le corrispondenti rotte non sono disponibili, e viceversa: se lo stato delle interfacce operativo anche le rotte sono attive. Per interrompere la verifica dello stato operativo delle interfacce e la conseguente rimozione della rotta, si usa il comando:
no-detect-dead-routes <ifname1 ... ifnameN>

E disponibile inoltre il comando mpath-route che consente di aggiungere la rotta di default verso una lista di gateway in modo da effettuare load-balancing del traffico:
mpath-route gw1 ... gwN

Qualora uno dei gateway della lista non sia raggiungibile, esso viene automaticamente escluso dalla lista e reinserita quando nuovamente disponibile.

Tiesse

63

IMOLA User Guide - Rev.21 Ver. 001

VISUALIZZAZIONE ROTTE STATICHE


Le rotte statiche configurate possono essere visualizzate mediante il comando:
show route configured

mentre quelle effettivamente attive possono essere visualizzate mediante il comando:


show route running

che pu essere abbreviato in:


show route

Ad esempio:
root@Imola > show route Kernel IP routing table Destination Gateway 172.16.12.12 10.10.254.2 85.34.147.96 0.0.0.0 131.120.12.0 10.10.254.3 10.10.0.0 0.0.0.0 172.151.0.0 0.0.0.0 0.0.0.0 85.34.147.97

Genmask 255.255.255.255 255.255.255.252 255.255.255.0 255.255.0.0 255.255.0.0 0.0.0.0

Flags UGH U UG U U UG

Metric 0 0 0 0 0 0

Ref 0 0 0 0 0 0

Use 0 0 0 0 0 0

Iface eth0 atm0 eth0 eth0 eth1 atm0

dove il flag U (UP) indica che la rotta attiva, il flag H indica che la destinazione un Host, il flag G indica che la destinazione raggiungibile attraverso un Gateway. Nel caso siano attivi i protocolli di routing dinamico, le rotte possono essere visualizzate mediante il comando:
router zebra show ip route

Ad esempio:
root@IMOLA> router zebra show ip route Router# show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, B - BGP, > - selected route, * - FIB route K * 0.0.0.0/0 via 10.64.64.64, ppp0 inactive C>* 10.10.0.0/16 is directly connected, eth0 B>* 11.11.0.0/16 [20/0] via 172.151.113.100, eth1, 09:39:06 R 11.11.0.0/16 [120/2] via 172.151.113.100, eth1, 09:39:30 C>* 11.11.11.11/32 is directly connected, ippp1 K * 44.44.44.44/32 is directly connected, unknown inactive C>* 100.100.100.0/30 is directly connected, tun0 R>* 111.111.111.111/32 [120/2] via 172.151.113.100, eth1, 09:39:30 C>* 127.0.0.0/8 is directly connected, lo C>* 172.151.0.0/16 is directly connected, eth1 C>* 202.202.202.202/32 is directly connected, dummy0 Router# root@IMOLA>

dove si pu notare il protocollo con cui le rotte sono state acquisite.

64

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

INDIRIZZO DI LOOPBACK, INTERFACCE DI RETE


INDIRIZZO LOOPBACK

GESTIONE

Imola prevede la possibilit di definire e configurare un indirizzo loopback, cio un indirizzo che identifica intrinsecamente il router e non associato ad alcuna interfaccia fisica. Tale indirizzo deve essere sempre attivo e disponibile a prescindere dallo stato delle interfacce fisiche. Per configurare lindirizzo loopback i comandi sono:
set loopback ipaddr <value> set loopback on

Per visualizzarne lo stato si usa il comando:


show interface loopback

Ad esempio:
root@Imola > show interface loopback 3: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 172.16.0.1/32 scope global dummy0

Il nome associato allinterfaccia loopback dummy0. Per eliminare lindirizzo di loopback si usa il comando:
set no-loopback

Tiesse

65

IMOLA User Guide - Rev.21 Ver. 001

COMANDO IFCONFIG
Il comando ifconfig permette di visualizzare informazioni sullo stato e sul funzionamento delle varie interfacce di rete presenti su Imola.
ifconfig <ifname>

dove if il nome (ifName) dellinterfaccia desiderata. Ad esempio:


root@Imola > ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0D:5A:04:6B:3E inet addr:10.10.113.1 Bcast:10.10.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4059 errors:0 dropped:0 overruns:0 frame:0 TX packets:3064 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:267940 (261.6 KiB) TX bytes:602643 (588.5 KiB) Interrupt:15

In questo esempio il comando visualizza informazioni relative allinterfaccia di rete corrispondente alla porta eth0. Tra le altre: il valore del MAC Address assegnato (HWaddr) lindirizzo IP (inet addr) la netmask (Mask) lindirizzo di broadcast (Bcast) il valore di Maximum Transfer Unit (MTU) Visualizza inoltre alcuni flags di stato dellinterfaccia: UP indica che linterfaccia amministrativamente attiva (ifAdminStatus) RUNNING indica che operativamente attiva (ifOperStatus) MULTICAST e BROADCAST indicano che sono supportate trasmissione e ricezione di pacchetti multicast e broadcast. Infine visualizza i contatori statistici, tra cui il numero di pacchetti trasmessi e ricevuti ed eventuali errori. Nellesempio seguente il comando visualizza lo stato dellinterfaccia eth3 associata alla terza porta dello switch integrato:
root@Imola > ifconfig eth3 eth3 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Notiamo che manca il flag RUNNING, poich a questa porta non collegato alcun device.

66

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Applicando i comando allinterfaccia di loopback, dummy0, si ottiene il seguente output:


root@Imola > ifconfig dummy0 dummy0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:172.16.0.1 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Invece eseguendo lo stesso comando in caso di loopback non definita, si ottiene:


root@Imola > ifconfig dummy0 dummy0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 BROADCAST NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

dove si pu notare sia lassenza del flag UP che del flag RUNNING. Lo stato dellinterfaccia ADSL in caso di incapsulamento PPP over ATM risulta essere:
root@Imola > ifconfig ppp0 ppp0 Link encap:Point-Point Protocol inet addr:82.54.202.150 P-t-P:192.168.100.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:5553 errors:0 dropped:0 overruns:0 frame:0 TX packets:5124 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:1188399 (1.1 MiB) TX bytes:829288 (809.8 KiB)

Lo stato della dialer isdn ippp1 sar:


root@Imola > ifconfig ippp1 ippp1 Link encap:Point-Point Protocol UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:30

INDIRIZZI SECONDARI (ALIAS)


Imola prevede la possibilit di definire e configurare degli indirizzi secondari associati ad un determinata interfaccia. Tali indirizzi sono chiamati alias e possono essere impostati mediante il comando:
set alias <ifname> ipaddr <ip_secondary> netmask <value>

Tiesse

67

IMOLA User Guide - Rev.21 Ver. 001

Ad

esempio

per

impostare

sullinterfaccia

eth0

lindirizzo

secondario

10.10.254.254:
set alias eth0 ipaddr 10.10.254.254 netmask 255.255.0.0

Per visualizzare gli indirizzi secondari configurati si pu usare il comando:


root@Imola > show alias ALIAS="eth0 ipaddr 10.10.254.254 netmask 255.255.0.0"

e per verificare se effettivamente sono attivi:


root@Imola > ip addr list dev eth0 5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0d:5a:04:6b:3e brd ff:ff:ff:ff:ff:ff inet 10.10.113.1/16 brd 10.10.255.255 scope global eth0 inet 10.10.254.254/16 brd 10.10.255.255 scope global secondary eth0:0

e analogamente mediante il comando ifconfig:


root@Imola > ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr 00:0D:5A:04:6B:3E inet addr:10.10.254.254 Bcast:10.10.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:15

68

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

IL COMANDO IP
GENERALIT
Il comando ip consente di gestire, in modalit estremamente avanzata, lattivazione e la verifica delle interfacce IP e il relativo routing di Imola. Esso risulta essere uno strumento molto flessibile e completo che consente, per esempio, di definire pi tabelle di routing da consultare a seconda della provenienza del pacchetto, della destinazione o semplicemente dell'utente che richiede l'utilizzazione della risorsa. Le opzioni pi comuni del comando sono le seguenti: ip link ip route consente di visualizzare e modificare le caratteristiche dei dispositivi di uscita aggiunge o cancella una riga della routing table in cui sono contenute le informazioni sui percorsi per raggiungere gli altri nodi di rete definisce delle regole di instradamento non dipendenti solo dalla destinazione del pacchetto ma anche da altri campi dell'header. A tale scopo vengono definite pi tabelle di routing, a seconda del particolare tipo di pacchetto da gestire associa indirizzi ip ai dispositivi di rete manipola le tabelle di corrispondenza tra indirizzi IP e indirizzo fisici

ip rule

ip addr ip neigh
Tabella 5

Il comando ip non ha effetti sulla configurazione di Imola, ovvero le modifiche alla tabella di routing effettuate tramite di esso verranno perse al prossimo reboot del router. Tipicamente esso si utilizza congiuntamente ai comandi di trigger per esprimere delle condizioni temporanee. Ad esempio per attivare una rotta allo start-up del router:
set autocmd ip route add 10.1.10.10 via 10.10.254.1

oppure per attivare una rotta quando si stabilisce una connessione ISDN:
set trigger isdn up ip route add 10.1.10.0/24 dev ippp1

oppure quando si attiva la connessione GPRS:


set trigger gprs up ip route add 10.2.10.0/24 dev ppp0

oppure per modificare una rotta quando si entra nello stato di backup:
set trigger backup up ip route del 10.1.10.10 via 10.10.254.1 set trigger backup up ip route add 10.1.10.10 via 192.168.1.2

Tiesse

69

IMOLA User Guide - Rev.21 Ver. 001

VISUALIZZARE LO STATO DELLE INTERFACCE, LE TABELLE DI ARP E DI ROUTING MEDIANTE COMANDO IP


Il comando ip consente la visualizzazione di link e rotte di instradamento presenti ed attivi sul router Imola. Per esempio, il comando ip link list (Figura 33):
root@Imola> ip link list 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: teql0: <NOARP> mtu 1500 qdisc noop qlen 100 link/void 3: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 4: gre0@NONE: <NOARP> mtu 1476 qdisc noop link/gre 0.0.0.0 brd 0.0.0.0 5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0D:5A:04:6F:F6 brd ff:ff:ff:ff:ff:ff 6: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0D:5A:84:6F:F6 brd ff:ff:ff:ff:ff:ff 7: ippp0: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp 8: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp 9: adsl: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 10: atm0: <NO-CARRIER,BROADCAST,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0d:5a:05:02:85 brd ff:ff:ff:ff:ff:ff 11: gprs: <BROADCAST,NOARP> mtu 1500 qdisc noop link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 10 Figura 33: Esempio di output comando: ip link show

Mentre il comando ip address show consente di visualizzare le interfacce con relativi IP address associati (Figura 34):
root@Imola> ip address show 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: teql0: <NOARP> mtu 1500 qdisc noop qlen 100 link/void 3: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 10.0.0.2/32 scope global dummy0 4: gre0@NONE: <NOARP> mtu 1476 qdisc noop link/gre 0.0.0.0 brd 0.0.0.0 5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0D:5A:04:6F:F6 brd ff:ff:ff:ff:ff:ff inet 10.10.254.254/16 brd 10.10.255.255 scope global eth0 6: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0D:5A:84:6F:F6 brd ff:ff:ff:ff:ff:ff inet 85.34.166.18/29 brd 85.34.166.23 scope global eth1 7: ippp0: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp inet 1.1.1.1 peer 2.2.2.2/32 scope global ippp0 8: ippp1: <POINTOPOINT,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 30 link/ppp inet 11.11.11.11 peer 22.22.22.22/32 scope global ippp1 9: adsl: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 10: atm0: <BROADCAST,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:0d:5a:05:02:85 brd ff:ff:ff:ff:ff:ff inet 85.34.147.98/30 brd 85.255.255.255 scope global atm0 11: gprs: <BROADCAST,NOARP> mtu 1500 qdisc noop

70

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 10 link/ppp inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0

Figura 34: Esempio di output comando:

ip address show

Il comando ip route show consente di visualizzare le tabelle di routing (Figura 35):


root@Imola> ip route show 22.22.22.22 dev ippp1 proto kernel scope link src 11.11.11.11 2.2.2.2 dev ippp0 proto kernel scope link src 1.1.1.1 10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1 85.34.147.96/30 dev atm0 proto kernel scope link src 85.34.147.98 85.34.166.16/29 dev eth1 proto kernel scope link src 85.34.166.18 10.1.10.0/24 via 10.10.254.1 dev eth0 10.8.0.0/24 via 10.8.0.2 dev tun0 10.10.0.0/16 dev eth0 proto kernel scope link src 10.10.254.254 default dev atm0 scope link

Figura 35: Esempio di output comando:

ip route show

Il comando ip neigh consente di visualizzare le tabelle ARP presenti sul router (Figura 36):
root@Imola> ip neigh show 10.10.4.0 dev eth0 lladdr 00:c0:26:a3:58:52 STALE 10.10.4.39 dev eth0 lladdr 00:17:a4:cf:25:67 STALE 10.10.10.10 dev eth0 lladdr 00:40:33:a7:f1:70 STALE 10.10.4.177 dev eth0 lladdr 00:c0:26:a3:58:7c REACHABLE 10.10.2.98 dev eth0 lladdr 00:e0:4c:00:00:cd STALE 10.10.1.212 dev eth0 lladdr 00:0a:e4:5a:4e:4e STALE 10.10.8.78 dev eth0 lladdr 00:50:da:45:a8:ee REACHABLE 10.10.8.2 dev eth0 lladdr 00:50:fc:04:01:78 STALE 10.10.4.90 dev eth0 lladdr 00:50:da:45:ab:2d STALE 10.10.7.201 dev eth0 lladdr 00:02:a5:6c:d2:06 REACHABLE 10.10.1.128 dev eth0 lladdr 00:50:fc:03:ff:7a STALE 10.10.4.171 dev eth0 lladdr 00:50:8d:6b:ae:b1 STALE 10.10.4.112 dev eth0 lladdr 00:0c:76:27:27:bf STALE

Figura 36: Esempio di output comando:

ip neigh show

Dove per ogni indirizzo IP viene visualizzato il corrispondente Ethernet Address e lo stato del protocollo ARP in cui questo si trova (REACHABLE, STALE, DELAY, PROBE, FAILED, etc.).

GESTIONE ROUTING MEDIANTE COMANDO IP


Mediante il comando ip possibile instradare pacchetti IP in base a regole che possono dipendere dagli indirizzi o porte sorgenti o destinatarie. inoltre possibile specificare lindirizzo IP sorgente del pacchetto da gestire.

Tiesse

71

IMOLA User Guide - Rev.21 Ver. 001

Ad esempio il router collegato alla rete ADSL e alla rete ISDN. Linterfaccia per ADSL atm0 mentre quella per ISDN ippp1, dove:
atm00 ippp1

con IP address 172.151.113.42 con IP address 192.168.113.42

nexthop 172.151.113.41 nexthop 192.168.113.41

i pacchetti destinati verso la network 10.254.223.0/24 devono essere instradati su ISDN (interfaccia ippp1) mentre il resto del traffico dovr essere instradato su ADSL (interfaccia atm0), i comandi ip da impostare saranno :
root@Imola > ip route add 10.254.223.0/24 via 192.168.113.41 dev ippp1 root@Imola > ip route add default dev atm0 root@Imola > ip route list Figura 37: Esempio di instradamento condizionato allindirizzo IP di destinazione

Nel seguente esempio, pi complesso, i pacchetti provenienti dalla rete 10.10.0.0/16 e destinati alla porta 80 sono instradati attraverso linterfaccia atm0, mentre i pacchetti di tipo icmp verranno instradati attraverso la dialer ippp1:
root@Imola > iptables -t mangle -A PREROUTING -p tcp --dport 80 -s 10.10.0.0/255.255.0.0 -j MARK --set-mark 0x04 root@Imola > iptables -t mangle -A PREROUTING -p icmp -s 10.10.0.0/255.255.0.0 j MARK --set-mark 0x08 root@Imola > ip rule add fwmark 0x04 table 40 root@Imola > ip rule add fwmark 0x08 table 80 root@Imola > ip route add table 40 default dev atm0 root@Imola > ip route add table 80 default dev ippp1

Figura 38

dove mediante il comando iptables si marchiano i pacchetti in base alla porta e al protocollo, mediante il comando ip rule si creano due tabelle di routing distinte, utilizzando il valore con cui i pacchetti sono stati marchiati. Infine con il comando ip route si stabilisce quale interfaccia utilizzare in base alla tabella di routing creata. Per i messaggi originati localmente dal router inoltre possibile specificare quale indirizzo sorgente utilizzare dopo aver selezionato una rotta:
ip route add default via 85.34.147.17 src 85.34.166.18

72

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

GUIDA ALLUSO DEL COMANDO IP


Larea di utilizzo del comando ip si suddivide in differenti sezioni: link network device address protocol (IP or IPv6) address on a device neighbor ARP o NDISC cache entry routing table route rule regole applicate su routing policy database maddress multicast address mroute multicast routing cache entry tunnel tunnel over IP Di seguito sono riportate le modalit di impiego relative alle differenti sezioni.
ip link
Usage: ip link set DEVICE { up | down | arp { dynamic { on | multicast { on name NEWNAME | address LLADDR mtu MTU } ip link show [ DEVICE ] on | off } | off } | | off } | txqueuelen PACKETS | | broadcast LLADDR |

ip address
Usage: ip addr {add|del} IFADDR dev STRING ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated ]

ip neigh
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] [ nud { permanent | noarp | stale | reachable } ] | proxy ADDR } [ dev DEV ] ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]

ip rule
Usage: ip rule [ list | add | del ] SELECTOR ACTION SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ] [ dev STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ nat ADDRESS ] [ prohibit | reject | unreachable ] [ realms [SRCREALM/]DSTREALM ] TABLE_ID := [ local | main | default | NUMBER ]

ip route
Usage: ip route { list | flush } SELECTOR ip route get ADDRESS [ from ADDRESS iif STRING ] [ oif STRING ] [ tos TOS ] ip route { add | del | replace | change | append | replace | monitor } ROUTE SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ]

Tiesse

73

IMOLA User Guide - Rev.21 Ver. 001

[ type TYPE ] [ scope SCOPE ] ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ rtt NUMBER ] [ rttvar NUMBER ] [ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM ] [ realms REALM ] TYPE := [ unicast | local | broadcast | multicast | throw | unreachable | prohibit | blackhole | nat ] TABLE_ID := [ local | main | default | all | NUMBER ] SCOPE := [ host | link | global | NUMBER ] FLAGS := [ equalize ] NHFLAGS := [ onlink | pervasive ] RTPROTO := [ kernel | boot | static | NUMBER ]

ip tunnel
Usage: ip tunnel { add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ] Where: NAME ADDR TOS TTL KEY := := := := := STRING { IP_ADDRESS | any } { NUMBER | inherit } { 1..255 | inherit } { DOTTED_QUAD | NUMBER }

ip maddress
Usage: ip maddr [ add | del ] MULTIADDR dev STRING ip maddr show [ dev STRING ]

ip mroute
Usage: ip mroute show [ PREFIX ] [ from PREFIX ] [ iif DEVICE ]

74

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

ACCESS LIST, SOURCE NAT E REDIRECT


La gestione delle tabelle di filtraggio dei pacchetti presente su Imola in tre modalit semplificate ed una avanzata. Le tre modalit semplificate sono: access-list redirect source-nat (Access Control List) consente di mettere dei filtri per accettare o scartare pacchetti IP in transito consente di effettuare operazioni di reindirizzamento dei pacchetti da/verso indirizzi IP e/o porte diverse consente di effettuare operazioni mascheramento o di cambiare l'indirizzo sorgente e/o destinatario dei pacchetti IP

La modalit avanzata la modalit: iptables che consente di applicare in modo esplicito le direttive di filtraggio dei pacchetti mediante attivazione diretta del comando iptables

importante considerare lordine mediante il quale vengono attivate le regole appartenenti alle liste. Lordine il seguente: 1. 2. 3. 4. iptables acccess-list redirect source-nat

Il comando iptables verr ampiamente trattato nel capitolo seguente.

ACCESS LIST
Configurazione La lista di regole per accettare o scartare pacchetti del protocollo IP (denominata Access List) , ed eventualmente effettuarne il logging pu essere attivata mediante il comando set access-list Di default, sul router Imola, non viene definita alcuna Access List, per cui tutti i pacchetti vengono accettati. Sono presenti sei diverse regole di impostazione delle Access List, come descritto nel seguito del paragrafo. Per accettare i pacchetti:
set access-list permit

Tiesse

75

IMOLA User Guide - Rev.21 Ver. 001

set access-list permit-log

Mentre, per scartare i pacchetti:


set access-list deny set access-list deny-log

Il suffisso log indica che, in relazione alla gestione dei pacchetti, verranno effettuate anche operazioni di logging. Per stabilire quali pacchetti possono attivare le chiamate isdn:
set access-list dial-isdn

Per stabilire quali pacchetti possono attivare le chiamate ppp in caso di connessione GPRS:
set access-list dial-ppp

Dopo aver definito la regola occorre specificare il tipo di pacchetto su cui applicarla, descrivendone il tipo di protocollo (prot), l'eventuale porta di destinazione (port) o sorgente (sport), l'indirizzo sorgente (from), l'indirizzo destinatario (to) e, eventualmente, l'interfaccia d'ingresso (in-interface) o d'uscita (out-interface). I protocolli che si possono specificare sono tcp, udp, icmp, ah, gre, ospf, esp e all. Viene accettato anche il valore numerico del protocollo. La configurazione della porta sorgente o destinataria (port/sport) pu essere effettuata specificando il servizio tramite nome (ad esempio: telnet) o numero (23). inoltre possibile utilizzare la keyword all per indicare che la regola sar applicata sui pacchetti destinati a qualsiasi porta. anche possibile configurare un range di porte (come ad esempio: 17:23). Per configurare l'indirizzo IP sorgente e/o destinatario possibile invece impostare direttamente l'indirizzo IP (anche specificandone la netmask), la chiave any (per indicare qualsiasi indirizzo IP) o this (per indicare un indirizzo IP residente su Imola). Di seguito troviamo un esempio relativo alle regole per pacchetti indirizzati al servizio echo da qualsiasi indirizzo IP esterno, verso Imola: per accettare i pacchetti con protcollo TCP verso il servizio di echo destinati ad Imola:
set access-list permit prot tcp port echo from any to this

oppure per scartarli:


set access-list deny prot tcp port echo from any to this

per scartare i pacchetti in transito:


set access-list deny prot tcp port echo from any to any

76

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Nel caso si voglia mantenere traccia dei pacchetti nel file di log, possibile specificare anche una label della linea di log (log-prefix) ed il numero di pacchetti al minuto da visualizzare nel log (limit). Se questi due parametri non vengono impostati si assume come limit 10 (10 pacchetti tracciati al minuto) e come logprefix il nome della regola pi il tipo di servizio (esempio permit-logicmp o deny-logecho). Nel seguente esempio vengono trattate le regole per pacchetti indirizzati al servizio
echo da qualsiasi indirizzo IP ad Imola con opzioni di log.

Per accettarli ed effettuarne il logging:


set access-list permit-log prot tcp port echo from any to this log-prefix YESecho

per scartarli ed effettuarne il logging:


set access-list deny-log prot tcp port echo from any to this log-prefix NOecho

Durante il logging la visualizzazione del pacchetto avr la seguente forma:


Mar 1 02:54:03 Imola kernel: YESechoIN=eth0 OUT=MAC=00:50:c2:1e:af:fe:00:c0:26:a 3:58:aa:08:00 SRC=10.10.8.197 DST=10.10.9.253 LEN=40 TOS=0x00 PREC=0x00 TTL=128 ID=11851 DF PROTO=TCP SPT=1600 DPT=7 WINDOW=17520 RES=0x00 ACK URGP=0

Per eliminare unaccess-list sufficiente negare la regola inserita con il comando CLI
set no-access-list

Esempio:
set access-list deny prot tcp port echo from any to this set no-access-list deny prot tcp port echo from any to this

Nelle impostazioni delle Access List necessario tener conto dell'importanza della sequenza delle regole; occorre infatti considerare il fatto che, appena una regola viene soddisfatta, il pacchetto viene accettato o scartato immediatamente, senza passare alle regole successive. Le Access List possono essere utilizzate, per esempio, nei seguenti casi: quando si ha la necessit di negare l'accesso solo ad alcuni pacchetti, ad esempio negare l'accesso al servizio icmp ed accettare quelli per tutti gli altri servizi:
set access-list deny prot icmp from any to this

quando si ha la necessit di accettare solo alcuni pacchetti, ad esempio accettare solo i pacchetti indirizzati verso una certa rete, negando l'accesso a qualsiasi altro servizio:
set access-list permit prot all port all from any to 192.168.0.0/255.255.0.0 set access-list deny prot all port all from any to this

Le regole implementate in questo esempio consentono di accettare il traffico snmp solo se proveniente da un IP address noto:

Tiesse

77

IMOLA User Guide - Rev.21 Ver. 001

set access-list permit prot udp port snmp from 172.16.0.1 to this set access-list deny prot udp port snmp from any to this

E` fondamentale lordine con il quale le regole vengono inserite: vengono accettati i pacchetti in arrivo se provenienti dallindirizzo IP 172.16.0.1 in quanto ricadono nella prima regola. I pacchetti provenienti da altri indirizzi invece vengono rifiutati, poich ricadono nella seconda regola, utilizzata appunto per vietare il traffico non desiderato. Visualizzazione possibile visualizzare le informazioni riguardanti le Access List con il seguente comando:
show access-list

questo comando ha l'effetto di elencare tutte le Access List impostate. Esempio:


root@Imola> show access-list ACCESSLIST="permit prot tcp port echo from any to this" ACCESSLIST="permit-log prot icmp from any to this log-prefix YESicmp limit 20"

Figura 39: Esempio di output comando:

show access-list

Per verificare quali sono effettivamente attualizzate si usa direttamente il comando itables:

root@Imola> set acess-list deny prot tcp port echo from any to this iptables -A INPUT -p tcp --destination-port echo -j DROP root@Imola> set acess-list deny prot tcp port echo from any to any iptables -A FORWARD -p tcp --destination-port echo -j DROP root@Imola> iptables -L Chain INPUT (policy ACCEPT) target prot opt source DROP tcp -- anywhere Chain FORWARD (policy ACCEPT) target prot opt source DROP tcp -- anywhere Chain OUTPUT (policy ACCEPT) target prot opt source root@Imola>

destination anywhere

tcp dpt:echo

destination anywhere

tcp dpt:echo

destination

78

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

e per esaminare i contatori statistici dei pacchetti che attraversano laccess list:

root@Imola> iptables L -v Chain INPUT (policy ACCEPT 943K packets, 77M bytes) pkts bytes target prot opt in out source 934 0 DROP tcp -- any any anywhere tcp dpt:echo Chain FORWARD (policy ACCEPT 4053K packets, 2778M bytes) pkts bytes target prot opt in out source 138 6584 DROP tcp -- any any anywhere tcp dpt:echo Chain OUTPUT (policy ACCEPT 957K packets, 81M bytes) pkts bytes target prot opt in out source Chain INPUT (policy ACCEPT) target prot opt source destination DROP tcp -- anywhere anywhere

destination anywhere

destination anywhere

destination

tcp dpt:echo

REDIRECT
Configurazione La lista di regole di reindirizzamento dei pacchetti su indirizzi IP e/o porte diverse (denominate Redirect) pu essere attivata mendiante il set di comandi redirect . Per impostare una regola di redirect occorre specificare alcuni parametri relativi al tipo di pacchetto da reindirizzare, descrivendone il tipo di protocollo (prot), l'eventuale porta (port), l'indirizzo sorgente (from), l'indirizzo destinatario (to) e impostando l'indirizzo IP (to-ip) o la porta (to-port) a cui inviare il pacchetto. I protocolli che si possono specificare sono ah, esp, gre, icmp, ospf, tcp, udp. E ammesso anche il valore numeico del protocollo. La configurazione della porta pu essere effettuata specificando il servizio tramite nome (ad esempio: telnet) o numero (23). Inoltre possibile utilizzare la keyword all per indicare che la regola sar applicata sui pacchetti destinati a qualsiasi porta. anche possibile configurare un range di porte (ad esempio: 17:23). Per quanto riguarda la configurazione dell'indirizzo IP sorgente e/o destinatario possibile invece impostare direttamente l'indirizzo (anche specificando la netmask), utilizzare la chiave any (per indicare qualsiasi indirizzo IP) o this (per indicare pacchetti destinati ad Imola). Esempio: il traffico destinato alla porta 7 (servizio echo), proveniente da qualsiasi indirizzo IP e diretto ad Imola, redirezionato all'indirizzo IP 192.168.0.2:
set redirect prot tcp port 7 from any to this to-ip 192.168.0.2

Tiesse

79

IMOLA User Guide - Rev.21 Ver. 001

Esempio: il traffico destinato alla porta 7 (servizio echo), proveniente da qualsiasi indirizzo IP e diretto ad Imola, redirezionato alla porta 13 (servizio daytime):
set redirect prot tcp port 7 from any to this to-port 13

possibile anche reindirizzare un pacchetto ad un diverso indirizzo IP e ad una diversa porta contemporaneamente. Esempio: il traffico destinato alla porta 7 (servizio echo), proveniente da qualsiasi indirizzo IP e diretto ad Imola, redirezionato all'indirizzo IP 192.168.0.2 ed alla porta 34 ; per completare la redirezione del traffico viene utilizzata una regola di source-nat (descritta nel paragrafo seguente):
set redirect prot tcp port 7 from any to this to-ip 192.168.0.2:34 set source-nat prot tcp port 7 from any to 192.168.0.2 dev eth0

Per eliminare una regola di redirect sufficiente rilanciare la regola con set noredirect:
set no-redirect prot tcp port 7 from any to this to-ip 192.168.0.2

Visualizzazione Le informazioni riguardanti le regole di redirect possono essere mostrate mediante il comando show redirect, il quale ha l'effetto di elencare tutte le regole redirect impostate. Esempio:

root@Imola> show redirect REDIR=prot tcp port echo from any to this to-ip 192.168.0.2 Figura 40: Esempio di output comando: show redirect

Per verificare quali sono effettivamente attualizzate si usa direttamente il comando itables t nat L -v:

SOURCE-NAT
Configurazione La lista di regole che consente di mascherare o cambiare l'indirizzo sorgente e/o destinatario dei pacchetti IP (denominata Source-nat) pu essere attivata mediante il set di comandi source-nat .

80

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per impostare una regola di source-nat bisogna specificare il tipo di pacchetto a cui applicarla, descrivendone il tipo di protocollo (prot), l'eventuale porta (port), l'indirizzo sorgente (from), l'indirizzo destinatario (to) e il nuovo indirizzo sorgente con cui mascherare il pacchetto (dev o ip). I protocolli che si possono specificare sono tcp, udp, icmp e all. Per la porta (port) possibile specificare sia il servizio sia il numero; per quanto riguarda l'indirizzo IP sorgente e/o destinatario possibile invece impostare direttamente l'indirizzo IP (anche specificando la netmask) o utilizzare la parola chiave any (per indicare qualsiasi IP). possibile effettuare due tipi di source-nat: mascheramento o cambio dell'indirizzo IP sorgente del pacchetto. Per effettuare operazioni di mascheramento necessario specificare il parametro dev; questo parametro indica l'interfaccia d'uscita su cui effettuare il mascheramento. I pacchetti che soddisferanno la regola impostata e che saranno spediti dall'interfaccia specificata avranno come nuovo indirizzo sorgente l'indirizzo IP dell' interfaccia d'uscita. Per assegnare invece un indirizzo IP arbitrario come sorgente ai pacchetti necessario specificare il parametro ip. Ecco un esempio di mascheramento di tutti i pacchetti in uscita dalla interfaccia eth1:
set source-nat prot all from any to any dev eth1

Il comando CLI da utilizzare per effettuare la sostituzione dell'indirizzo IP sorgente di tutti i pacchetti indirizzati alla rete 10.10.0.0/255.255.0.0 con l'indirizzo 10.10.0.1 il seguente:
set source-nat prot all from any to 10.10.0.0/255.255.0.0 ip 10.10.0.1

Per eliminare una regola di source-nat sufficiente rilanciare la regola con set nosource-nat, come nel seguente esempio:
set no-source-nat prot all from any to any dev eth1

Il source-nat pu essere utilizzato, per esempio, nei seguenti casi: quando si ha la necessit di mascherare l'indirizzo IP di una reta privata per connettersi alla rete pubblica:
set source-nat prot all from any to any dev ippp0

quando si ha la necessit di accedere alla rete esterna con particolari indirizzi pubblici:
set source-nat prot all from any to any ip xxx.yyy.jjj.kkk

Tiesse

81

IMOLA User Guide - Rev.21 Ver. 001

In questo esempio si vogliono mascherare i pacchetti in uscita e destinati ai servizi snmp e radius . I pacchetti dovranno essere spediti sostituendo lIP address sorgente con lindirizzo IP della interfaccia di loopback . Per configurare linterfaccia di loopback si utilizzeranno i comandi:
set loopback ipaddr 172.25.0.4 set loopback on

Mentre per configurare le regole di source-nat :


set source-nat prot udp port snmp-trap from any to any ip 172.25.0.4 set source-nat prot udp port radius from any to any ip 172.25.0.4 set source-nat prot udp port radacct from any to any ip 172.25.0.4

oppure:
set source-nat prot udp port snmp-trap from any to any dev dummy0 set source-nat prot udp port radius from any to any ip dev dummy0 set source-nat prot udp port radacct from any to any ip dev dummy0

Visualizzazione possibile visualizzare le informazioni riguardanti le regole di source-nat con il seguente comando:
show source-nat

questo comando ha l'effetto di elencare tutte le regole di source-nat impostate. Esempio:


root@Imola> show snmp SNAT="prot all from any to any dev eth1" SNAT="prot all from any to 10.11.0.0/255.255.0.0 ip 10.11.0.1" Figura 41: Esempio di output comando: show source-nat

82

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

FUNZIONI DI FIREWALL: IPTABLES


GENERALIT
Su Imola presente il comando iptables che un tool avanzato per il filtraggio dei pacchetti della rete, ovvero controlla i pacchetti che cercano di accedere, transitare e uscire dal router stesso. Esso consente di realizzare: Funzionalit di firewall sia stateless che stateful Operazioni di Network Address Translation (nat), sia statico che dinamico. Alterazione e marcatura dei pacchetti (mangle) Accounting e logging dei pacchetti Port forwarding Load balancing

TABELLE, CATENE, REGOLE E TARGET


Iptables raggruppa le regole di elaborazione dei pacchetti in tabelle. Sono definite tre tabelle di default: filter nat mangle Regola le funzioni di firewall: quali pacchetti accettare, quali bloccare Regola le attivit di natting (source-nat, destination-nat, pat ) Regola i meccanismi per alterare i pacchetti

Ogni tabella costituita da un gruppo di catene predefinite (INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING) cui possono eventualmente essere aggiunte catene personalizzate. Ogni catena composta da un insieme di regole che, in base ad un criterio di match, identificano i pacchetti di rete: protocollo, indirizzo ip, servizio, etc. (ad esempio: -p tcp --dport 80 -d 10.0.1.1). Ogni regola termina con unindicazione (target) su cosa fare dei pacchetti identificati dalla regola stessa (ad esempio, -j ACCEPT, -j DROP, -j LOG, ...). Le catene indicano dei punti prestabiliti (detti anche hook points) nel corso dellelaborazione del pacchetto di rete nei quali il pacchetto viene esaminato per applicare la regola stabilita ed eseguire il target nel caso in cui il match associato alla regola sia stato soddisfatto. In base alla tabella (filter, nat o mangle) vengono usate le catene associate. In particolare, per le funzioni di filter si utilizzano le catene di INPUT, FORWARD ed OUTPUT, per le funzioni di nat quelle di PREROUTING e POSTROUTING, mentre le funzioni di mangle possono avvenire allinterno di una qualsiasi catena. Il significato di ogni catena spiegato nei paragrafi seguenti. La sintassi generica del comando iptables la seguente:

Tiesse

83

IMOLA User Guide - Rev.21 Ver. 001

iptables iptables iptables iptables

t t t t

table table table table

-[AD] chain rule-specification [options] -[I] chain [rulenum] rule-specification [options] -D chain rulenum [options] -[L] [chain] [options]

dove si specificano: la tabella di riferimento (-t nat table), se aggiungere o togliere la regola allinterno della catena (-A chain, -D chain, -I chain), la regola per il match dei pacchetti e lazione (target) da eseguire. Il comando:
iptables -t table L v

mostra informazioni e contatori statistici relativamente al regole che sono state soddisfatte (vedi paragrafo sullaccounting). Successivamente saranno mostrati degli esempi esplicativi.

FIREWALL CON LA TABELLA FILTER


La tabella filter (-t filter) riguarda le attivit di filtraggio del traffico. E la tabella di default: viene usata qualora non venga specificata alcuna tabella dal comando iptables. Ha 3 catene di default: si applica ai pacchetti ricevuti dal router e diretti ad esso INPUT si applica ai pacchetti inviati dal router, cio generati localmente OUTPUT FORWARD si applica ai pacchetti in transito dal router Per permettere laccesso al servizio di telnet del router:
iptables t filter -I INPUT p tcp --dport 23 j ACCEPT

analoga a:
iptables I INPUT p tcp --dport 23 j ACCEPT

Per permettere che lhost con IP 10.0.1.1 possa accedere al server con IP 192.168.0.1:
iptables I FORWARD s 10.0.1.1 d 192.168.0.1 j ACCEPT

mentre per negare laccesso alla porta 80 allhost con IP 10.0.1.2:


iptables I FORWARD -p tcp --dport 80 s 10.0.1.2 d 192.168.0.1 j DROP

Le regole vengono analizzate in base allordine con cui sono state aggiunte. Una regola pu essere inserita in testa alla lista mediante lopzione I oppure in fondo (e quindi valutata per ultima) mediante lopzione A. E possibile inserire una regola in una determinata posizione mediante lopzione: -I chain num. Ad esempio:
iptables A FORWARD -p udp --dport 37 s 10.0.1.2 d 192.168.0.1 j DROP

84

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

iptables I FORWARD 2 -p tcp s 10.0.1.2 d 192.168.0.1 j DROP

Per visulizzare le regole presenti nella tabella di filter:


iptables t filter L v

mentre
iptables L v --line-numbers

mostra anche il numero dordine della regola. Ad ogni catena definita una azione di default da applicare qualora un pacchetto non abbia verificato il criterio di nessuna delle regole presenti. Lazione di default quella di accettare il pacchetto e passare alla tabella successiva. Mediante lopzione P possibile modificare lazione di default. Ad esempio:
iptables -P FORWARD DROP iptables P OUTPUT ACCEPT

NETWORK ADDRESS TRANSLATION CON LA TABELLA NAT


La tabella nat (-t nat) si usa per modificare indirizzi e porte sorgenti e destinazione dei pacchetti di rete. Ha 3 catene di default: Usata per alterare i pacchetti ricevuti attraverso un'interfaccia di rete, al momento del loro arrivo.Viene usata per effettuare Destination NAT. Il target j DNAT. Usata per alterare i pacchetti in uscita dal router stesso, cio quelli generati localmente. Si usa per Source NAT. Il target j SNAT. questa catena altera i pacchetti prima che vengano instradati attraverso un'interfaccia di rete. Si usa per Source NAT. Il target j SNAT oppure j MASQUERADE per interfacce con IP dinamici.

PREROUTING

OUTPUT

POSTROUTING

Ad esempio: I pacchetti provenienti dalla sottorete 10.10.0.0/16 e diretti alla sottorete 192.168.1.0/24 vengono trasmessi con lip sorgente 172.16.1.1:
iptables t nat A POSTROUTING s 10.10.0.0/16 d 192.168.1.0/24 j SNAT -to-source 172.16.1.1

Il parametro --to-source pu essere espresso solamente come --to I pacchetti in uscita sullinterfaccia ppp0 vengono trasmessi con lIP associato a tale interfaccia:
iptables -t nat A POSTROUTING o ppp0 -j MASQUERADE

Tiesse

85

IMOLA User Guide - Rev.21 Ver. 001

I pacchetti diretti alla sottorete 192.168.1.0/24 si presentano con lIP 172.16.1.1, mentre quelli diretti alla sottorete 192.168.2.0/24 si presentano con lIP 172.16.2.2:
iptables t nat A POSTROUTING d 192.168.1.0/24 j SNAT --to 172.16.1.1 iptables t nat A POSTROUTING d 192.168.2.0/24 j SNAT --to 172.16.2.2

I pacchetti ricevuti e indirizzati allindirizzo pubblico 85.34.166.21 sono rediretti allindirizzo privato 10.10.1.195:
iptables t nat A PREROUTING d 85.34.166.21 j DNAT --to-destination 10.10.1.195

Il parametro --to-destination pu essere espresso solamente come to.

PORT FORWARDING
Il target j DNAT della tabella nat viene spesso utilizzato per effettuare funzioni di Port Forwarding e Load balancing, ad esempio, i pacchetti TCP diretti alla porta 80 dellindirizzo pubblico 85.34.166.21 sono rediretti alla porta 8080 dellindirizzo privato 10.10.1.195:
iptables t nat A PREROUTING p tcp d 85.34.166.21 --dport 80 j DNAT --to 10.10.1.195:8080

e per distribuire le connessioni http verso un gruppo di server interni:


iptables t nat A PREROUTING p tcp d 85.34.166.21 --dport 80 j DNAT --to 10.10.1.195-10.10.1.198

Con tale commando le connessioni vengo reindirizzate in modalit round robin verso i server 10.10.1.195, 10.10.1.196, 10.10.1.197 e 10.10.1.198. E da notare che nel caso in cui uno dei server non sia disponibile, il tentativo di connessione fallisce.

ALTERAZIONE DEI PACCHETTI CON LA TABELLA MANGLE


Le tabella mangle (-t mangle) permette la modifica di vari header IP o TCP di un pacchetto. Viene tipicamente usata per alterare il valore del campo TOS dellheader IP oppure il valore del camp MSS di TCP. Prevede le seguenti catene: INPUT OUTPUT FORWARD PREROUTING POSTROUTING altera i pacchetti di rete in ingresso altera i pacchetti di rete prima che vengano inviati all'esterno altera i pacchetti di rete in transito dal router altera i pacchetti ricevuti attraverso un'interfaccia di rete prima che vengano instradati altera i pacchetti prima che vengano inviati attraverso un'interfaccia di rete

86

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Esempi: Impostazione del massimo throughput per il protocollo SSH:


iptables -t mangle -A FORWARD -p tcp --dport 22 -j TOS --set-tos Maximize-Throughput

Modifica del TOS per ridurre la latenza dei pacchetti DNS:


iptables -t mangle -A FORWARD -p udp --dport 53 -j TOS --set-tos Minimize-Delay

Impostazione di MSS al valore di 1400:


iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400

oppure per adattare il valore del MSS a quello della MTU:


iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Impostazione del valore del DSCP a 32 per i pacchetti che attraverso un tunnel GRE:
iptables t mangle -A POSTROUTING p 47 -j DSCP --set-dscp 32

Tiesse

87

IMOLA User Guide - Rev.21 Ver. 001

APPLICAZIONE DELLE REGOLE SUI PACCHETTI


Il percorso tipico di un pacchetto IP rappresentato dal seguente diagramma:

Il pacchetto entra dallinterfaccia di rete (eth0 nellesempio) e prima del processo di routing viene sottoposto allapplicazione delle regole presenti nella catena di PREROUTING. In questo passaggio vengono applicate le regole di Destination NAT (DNAT) se i match presenti nella catena trovano corrispondenza nel pacchetto in arrivo. Se il pacchetto, in base alla tabella di routing, destinato allinterfaccia di rete in uscita (eth1 nel diagramma) vengono applicate le regole descritte nella catena di FORWARD. Se il pacchetto destinato al router stesso vengono applicate le regole descritte nella catena di INPUT. Se il pacchetto stato generato dal un processo locale al router vengono applicate le regole contenute nella catena di OUTPUT. Sia nel caso di FORWARD che di OUTPUT, prima di uscire dalla scheda di rete eth1, il pacchetto subisce lapplicazione delle regole descritte nella catena di POSTROUTING. In tale fase vengono applicate le regole per il Source NAT (SNAT) o Masquerade. In ogni catena vengono applicate le regole di alterazione dei pacchetti.

CRITERI STANDARD DI MATCH


Le possibilit di matching di pacchetti sono diversi e possono essere combinate allinterno della stessa regola:
-p -s -d -i -o proto address[/mask] address[/mask] interfaccia interfaccia

Protocollo IP (tcp, udp, icmp, gre, ah, ...) Indirizzo IP sorgente (o network sorgente con maschera) Indirizzo IP destinazione (o network con maschera) Interfaccia di ingresso Interfaccia di uscita

I criteri possono essere negati usando il carattere !. Ad esempio tutti i protocolli tranne icmp: -p ! icmp.

88

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Nel caso di protocollo tcp (-p tcp) valgono le seguenti estensioni:


--sport port[:port] --dport port[:port] --tcp-flags flag

--syn

La porta o un range di porte sorgente. Ad esempio 1:1024 = > tutte le porte tra 1 e 1024 La porta o un range di porte di destinazione. Ad esempio 1:1024 = > tutte le porte tra 1 e 1024 Per specificare la presenza di flag nel pacchetto TCP (SYN,ACK,FIN,RST,URG). Viene indicata la lista dei bit da trattare ed ilvalore che devono assumere. I pacchetti con solo SYN attivo (nuove connessioni)

Esempio per scartare tutte le richieste di connessioni TCP in ingresso verso porte privilegiate:
iptables -I INPUT -p tcp --syn --dport 0:1024 -j DROP

Per verificare tutte le possibili estensioni TCP:


iptables p tcp --help

Nel caso di protocollo udp (-p udp) valgono le seguenti estensioni:


--sport port[:port] --dport port[:port]

La porta o un range di porte sorgente. Ad esempio 1:1024 = > tutte le porte tra 1 e 1024 La porta o un range di porte di destinazione. Ad esempio 1:1024 = > tutte le porte tra 1 e 1024

Esempio per permettere pacchetti UDP per traceroute:


iptables -I INPUT p udp --sport 32769:65535 --dport 33434:33523 -j ACCEPT

Per verificare tutte le possibili estensioni UDP:


iptables p udp --help

Nel caso di protocollo icmp (-p icmp) valgono le seguenti estensioni:


--icmp-type type

Dove type indica il tipo del pacchetto icmp da trattare. Pu essere il valore numerico oppure il valore simbolico.

Per verificare tutte le possibili estesioni di icmp:


iptables p icmp --help

Tiesse

89

IMOLA User Guide - Rev.21 Ver. 001

TARGET
Ogni regola termina con la definizione di un target che indica cosa viene fatto del pacchetto che ha soddisfatto il match. Il target determina linterruzione della catena: il pacchetto che ha soddisfatto il match segue le indicazioni del Target e non vengono considerate le catene successive. I target principali sono i seguenti:
-j ACCEPT

-j DROP -j REJECT

-j LOG

-j DNAT

-j SNAT

-j MASQUERADE

-j REDIRECT -j TOS -j DSCP -j ECN

Il pacchetto che soddisfa il criterio di match viene accettato e procede verso la sua destinazione. Usato per definire il traffico permesso. Il pacchetto viene rifiutato e scartato senza alcuna notifica al mittente. Si usa in alternativa a REJECT per bloccare il traffico Il pacchetto viene rifiutato. Al mittente viene inviato un pacchetto (configurabile) di notifica, tipo ICMP portunreachable: --reject-with icmp-port-unreachable. Lelenco delle possibili notifiche viene visualizzato mediante il comando iptables j REJECT -help Il pacchetto viene loggato mediante syslog e procede lattraversamento delle catene. Possibili opzioni sono: --log-level e --log-prefix Viene modificato lIP destinazione del pacchetto. Il target disponibile solo nelle catene di PREROUTING e OUTPUT della tabella nat. Lopzione to-destination IP:porta definisce il nuovo IP (e la nuova porta) di destinazione. Si usa per effettuare il nat di un indirizzo pubblico verso un server della DMZ. Viene modificato lIP sorgente. Si usa solo nella catena di POSTROUTING della tabella nat. Prevede lopzione tosource IP:porta. Il parametro porta opzionale. Si usa per permettere laccesso ad Internet ad una rete locale con IP privati. Simile a SNAT, si usa quando i pacchetti escono da uninterfaccia con indirizzo dinamico. Valido nella catena di POSTROUTING della tabella nat. Ridirige il pacchetto verso una porta locale al router. Si usa nelle catene PREROUTING ed OUTPUT della tabella nat. Si usa nella tabella mangle, permette di cambiare il valore del TOS (Type Of Service) del pacchetto. Si usa nella tabella mangle, permette di modificare il valore del DSCP dellheader di IP. Si usa nella tabella mangle per rimuovere il campo ECN (Explicit Congestion Notification) dallheader TCP. Ad esempio:
iptables -t mangle -A FORWARD -p tcp -j ECN --ecn-tcp-remove

90

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

-j IPV4OPTSSTRIP

Si usa nella tabella mangle per eliminare le opzioni presenti allinterno dellheader IPv4:
iptables t mangle A FORWARD j IPV4OPTSSTRIP

-j NETMAP

Permette di sostituire gli host di una rete con quelli di unaltra. Ad esempio il comando:
iptables t nat A PREROUTING d 10.10.10.0/24 j NETMAP to 192.168.1.0/24

-j TCPMSS

sostituisce lindirizzo di destinazione 10.10.10.x con lindirizzo 192.168.1.x Usata per modificare il valore del Maximum Segment Size del TCP. Ad esempio:
iptables .... j TCPMSS --clamp-mss-to-pmtu

-j MARK

E prevista lopzione --set-mss value. Permette di marcare i pacchetti in modo da analizzarli in altri punti. Ad esempio per aggiungere una rotta in base allindirizzo sorgente:
iptables t mangle A PREROUTING s 10.10.1.1 j MARK --set-mark 0x04

ip rule add fwmark 0x04 table 40 ip route add table 40 dev atm0

Per consultare lelenco dei parametri disponibili si usa il commando:


iptables j <TARGET> --help.

Ad esempio:
iptables j REJECT --help iptables j TOS --help iptables j DSCP --help

Tiesse

91

IMOLA User Guide - Rev.21 Ver. 001

CRITERI AVANZATI DI MATCH


Oltre ai criteri elencati esistono delle estensioni particolarmente versatili e potenti. La tabella ne illustra quelli pi significativi.
-m connlimit

Permtte di stabilire il numero di connessioni contemporanee. Ad esempio:


iptables A INPUT p tcp --dport 23 s 192.168.254.201 m connlimit --connlimit-above 4 j REJECT

-m limit

ammette massimo 4 connessioni telnet contemporaneamente attive telnet verso il router dallindirizzo 191.168.254.201. Le altre vengono rifiutate. La regola viene soddisfatta se il tasso di arrivo dei pacchetti conforme ai parametri specificati. Le possibili opzioni sono:
--limit rate/unit --limit-burst value/unit

Ad esempio mediante le regole:


iptables A FORWARD -p icmp m limit -limit 10/s j ACCEPT iptables A FORWARD p icmp j DROP

-m mac

vengono accettati solo i pacchetti di ping al ritmo di 10 al secondo Viene controllato il MAC sorgente del pacchetto. Ad esempio:
iptables A FORWARD -m mac --mac-source 00:0d:5a:04:01:02 j DROP

-m random

Usato per effettuare un match su base statistica, utile per simulare dei link difettosi. Ad esempio:
iptables A FORWARD d 10.10.1.1 m random --average 10 j DROP

-m pkttype

scarta in maniera random il 10 per cento dei ping verso 10.10.1.1 Verifica il tipo di pacchetto in base allindirizzo di destinazione di livello 2. E prevista lopzione -pkt-type type dove type pu assumere i valori:
broadcast multicast unicast

Ad esempio per scartare tutti i multicast in arrivo sulla interfaccia eth0:


iptables A INPUT i eth0 m pkttype --pkt-type multicast j DROP

92

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

-m addrtype

Verifica il tipo di pacchetto in base allindirizzo di destinazione di livello 3. Sono previste le opzioni:
--src-type type[,...] --dst-type type[,...]

dove type pu assumere i valori:


UNICAST LOCAL BROADCAST MULTICAST ANYCAST

Ad esempio, per scartare i pacchetti di multicast ricevuti:


iptables A INPUT m addrtype --dst-type MULTICAST j DROP -m length

Imposta un filtro sulla lunghezza del pacchetto. E prevista lopzione:


--length len1:len2

Ad esempio, per scartare i pacchetti di icmp con lunghezza maggiore di 700 byte:
iptables A INPUT p icmp m length -length 700:1500 j DROP

-m ah

Protocollo AH (Authentication Header) di IPSec. E prevista lopzione:


--ahspi min[:max]

Esempio:
iptables A INPUT p ah m ah -ahspi 500 j LOG -m dscp

Usata per identificare il pacchetto in base al valore del campo DSCP allinterno dellheader IP. Sono previste le opzioni:
--dscp value --dscp-class name.

Esempio:
iptables A FORWARD p icmp m dscp --dscp 32 j LOG -m ecn

Identificazione in base al valore del campo ECN (Explicit Congestion Notification) dellheader IP. Sono previste le opzioni:
--ecn-ip-ect [0..3] --ecn-tcp-cwr --ecb-tcp-ece

-m esp

Protocollo ESP (Encapsulating Security Payload) di IPSec. E prevista lopzione:


--espspi min[:max]

Esempio:
iptables A INPUT p esp m esp --espspi 500 j DROP -m icmp

Ha lo stesso effetto del match p icmp. Sono previste le opzioni:


--icmp-type typename Il comando iptables m icmp --help mostra tutti i possibili

codici utilizzabili come icmp-type.

Tiesse

93

IMOLA User Guide - Rev.21 Ver. 001

-m ipv4options

Indentificazione in base alle opzioni presenti nellheader Ipv4. Sono riconosciute le seguenti estensioni: --ssrr per Strict Source and Record Route --lsrr per Loose Source and Record Route --rr per Record Route --ts per TimeStamp --ra per Router Alert Esempio per scartare quei pacchetti che contengono lopzione RR:
iptables A FORWARD m ipv4options rr j DROP

-m multiport

Pemette di specificare una lista (fino a 15) porte con lo stesso comando. Ad esempio, per accettare i pacchetti diretti alle porte 22, 80 e 443:
iptables A FORWARD p tcp m multiport --dports 22,80,443 j ACCEPT

-m nth

Sono previste le opzioni: --dports per indicare le porte di destinazione --sports per indicare le porte sorgenti --ports per indicare sia quelle di destinazione che quelle sorgenti. Verifica il match ogni N pacchetti. Ad esempio:
iptables A FORWARD p icmp d 10.10.10.10 m nth -every 3 j LOG

-m psd

-m tos

ogni 3 match consecutvi, viene effettato un log. Controlla i tentativi di Port Scanning. Sono ammesse le opzioni: --psd-delay-threshold delay espresso in millisecondi --psd-hi-ports-weight weight --psd-lo-ports-weight weight Identifica il pacchetto in base al valore del TOS. Lelenco dei possibili possibili valori dellopzione --tos viene visualizzato mediante il comando:
iptables -m tos -help

Ad esempio:
iptables A FORWARD m tos --tos Minimize-Delay

-m ttl

conteggia tutti i pacchetti il cui tos impostato a Minimize-Delay (16). Identifica il pacchetto in base al valore del campo TTL:
iptables A INPUT m ttl --ttl 5

94

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

-m iprange

Permette di impostare una regola usando un range di indirizzi IP. Ad esempio per bloccare laccesso tcp ad un range di IP:
iptables A INPUT p tcp m iprange --src-range 10.10.10.1-10.10.10.5 j DROP

oppure per bloccare linvio di ping ad un blocco di IP:


iptables A OUTPUT p icmp m iprange --dst-range 10.10.1.0-10.10.1.5 j DROP

LOAD BALANCING
Lesempio di Load Balancing del paragrafo precedente:
iptables t nat A PREROUTING p tcp d 85.34.166.21 --dport 80 j DNAT --to 10.10.1.195-10.10.1.198

prevede che i server verso cui distribuire le connessioni abbiano indirizzi IP contigui. Utilizzando il match m nth possibile superare tale limite come descritto nel seguente esempio:
iptables t nat A PREROUTING p tcp d 85.34.166.21 --dport 80 -m nth -every 2 -packet 0 j DNAT --to 10.10.1.1 iptables t nat A PREROUTING p tcp d 85.34.166.21 --dport 80 -m nth -every 2 -packet 1 j DNAT --to 10.10.1.10

dove le connessioni vengono distribuite in maniera alternata al server 10.10.1.1 e al server 10.10.1.10.

LOGGING DEI PACCHETTI


Tramite il target j LOG possibile loggare i pacchetti che soddisfano determinate condizioni mediante syslog. Di solito si utilizza tale target per loggare i pacchetti droppati, in tal caso necessario che la regola di LOG sia inserita prima della corrispondente regola di DROP. Ad esempio:
iptables A INPUT p tcp dport 23 s 10.10.1.1 j LOG --log-level notice iptables A INPUT p tcp dport 23 s 10.10.1.1 j DROP

La prima regola effettua il log con facility notice dei pacchetti provenienti dallindirizzo 10.10.1.1 verso la porta telnet. La seconda li scarta. Le opzioni utilizzabili con il target LOG sono:
--log-level per definire la facility per i messaggi di log --log-prefix per definire un prefisso dei messaggi di log

Tiesse

95

IMOLA User Guide - Rev.21 Ver. 001

Tale regola deve essere usata congiuntamente al comando set log del router che permette di definire il syslog server:
set log remote 192.168.7.1 set log level 2 set log on

Un tipico messaggio di log per tenere traccia di tutti i pacchetti icmp ricevuti dallindirizzo 10.10.1.209, derivato dalla regola:
iptables A INPUT p icmp s 10.10.1.209 j LOG --log-prefix permit-logicmp --log-level notice

il seguente:
Feb 10 18:25:26 im1 kernel: permit-logicmp:IN=eth0 OUT= MAC=00:0d:5a:04:6b:3e:00:16:d4:4d:65:a7:08:00 SRC=10.10.1.209 DST=10.10.113.1 LEN=84 TOS=0x00 PREC=0x00 PROTO=ICMP TYPE=8 CODE=0 ID=8725 SEQ=1 Feb 10 18:25:27 im1 kernel: permit-logicmp:IN=eth0 OUT= MAC=00:0d:5a:04:6b:3e:00:16:d4:4d:65:a7:08:00 SRC=10.10.1.209 DST=10.10.113.1 LEN=84 TOS=0x00 PREC=0x00 PROTO=ICMP TYPE=8 CODE=0 ID=8725 SEQ=2 Feb 10 18:25:29 im1 kernel: permit-logicmp:IN=eth0 OUT= MAC=00:0d:5a:04:6b:3e:00:16:d4:4d:65:a7:08:00 SRC=10.10.1.209 DST=10.10.113.1 LEN=84 TOS=0x00 PREC=0xC0 PROTO=ICMP TYPE=0 CODE=0 ID=5735 SEQ=0 Feb 10 18:25:50 im1 kernel: permit-logicmp:IN=eth0 OUT= MAC=00:0d:5a:04:6b:3e:00:16:d4:4d:65:a7:08:00 SRC=10.10.1.209 DST=10.10.113.1 LEN=84 TOS=0x00 PREC=0xC0 PROTO=ICMP TYPE=0 CODE=0 ID=5743 SEQ=0

TTL=64 ID=0 DF

TTL=64 ID=0 DF

TTL=64 ID=61743

TTL=64 ID=61744

ACCOUNTING DEI PACCHETTI


Nel caso in cui non venga specificato alcun target vengono solamente conteggiati i pacchetti che hanno soddisfatto la regola configurata, fornendo di fatto uno strumento per effettuare laccounting dei pacchetti. Ad esempio: per conteggiare tutti i pacchetti ricevuti sullinterfaccia eth0 e diretti al router stesso:
iptables A INPUT i eth0

e per verificare tale numero:


iptables -L -v

che produce il seguente output:


Chain INPUT (policy ACCEPT 1185 packets, 80642 bytes) pkts bytes target prot opt in out source 86 3513 all -eth0 any anywhere destination anywhere

Per azzerare i contatori: iptables Z. Per conteggiare tutti i pacchetti destinati dal router stesso allindirizzo IP 10.10.1.209: 96

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

iptables A OUTPUT d 10.10.1.209

e per visualizzarne il valore: iptables L v che produce :


Chain INPUT (policy ACCEPT 182 packets, 12015 bytes) pkts bytes target prot opt in out source 86 3902 all -eth0 any anywhere Chain OUTPUT (policy ACCEPT 154 packets, 11812 bytes) pkts bytes target prot opt in out source 9 514 all -any any anywhere destination anywhere

destination 10.10.1.209

Per conteggiare i pacchetti in transito provenienti dallindirizzo 192.168.1.2 e diretti verso la porta 80 dellindirizzo 217.201.1.24:
iptables A FORWARD p tcp -dport 80 s 192.168.1.2 d 217.201.1.24

Per conteggiare i pacchetti in transito di tipo udp proveniente dalla sottorete 192.168.1.0/24:
iptables A FORWARD p udp s 192.168.1.0/24

ESEMPI DI UTILIZZO
Per bloccare tutti gli accessi TCP verso lhost 10.10.1.1:
iptables -A FORWARD -p tcp d 10.10.1.1 -j DROP

Per prevenire un eventuale attacco di icmp flooding:


iptables -A INPUT -p icmp -m limit --limit 10/s -j ACCEPT iptables -A INPUT -p icmp -j DROP

Per scartare i pacchetti di icmp di lunghezza superiore a 500 byte e diretti verso 10.10.1.1:
iptables A FORWARD p icmp d 10.10.1.1 m length --length 500:1500

Per limitare a 2 il numero di connessioni telnet contemporanee verso lhost 192.168.1.2:


iptables A FORWARD p tcp --dport 23 d 192.168.1.2 m connlimit --connlimit-above 2 j REJECT

Per simulare nei confronti dellhost 10.10.1.1 un link con un tasso di errore del 2%:
iptables A FORWARD d 10.10.1.1 m random -average 2 j DROP

Tiesse

97

IMOLA User Guide - Rev.21 Ver. 001

Riprendendo gli esempi riportati nelle sezioni precedenti (access-list, redirect e source-nat), di seguito vengono riportate le corrispondenze con il comando iptables . Per accettare solo i pacchetti indirizzati verso una certa rete, negando l'accesso a qualsiasi altro servizio: Mediante access-list:
set access-list permit prot all port all from any to 192.168.0.0/255.255.0.0 set access-list deny prot all port all from any to any

Comandi iptables equivalenti:


iptables -A FORWARD iptables -A FORWARD -d 192.168.0.0/255.255.0.0 -j ACCEPT -j DROP

Il traffico destinato alla porta 7 (servizio echo), provenienti da qualsiasi indirizzo IP e diretti ad Imola, redirezionati all'indirizzo IP 192.168.0.2: Mediante redirect:
set redirect prot tcp port 7 from any to this to-ip 192.168.0.2

Comandi iptables equivalenti:


iptables -t nat -A PREROUTING -p tcp --dport 7 -j DNAT --to 192.168.0.2

Il traffico destinato alla porta 7 (servizio echo), provenienti da qualsiasi indirizzo IP e diretti ad Imola, redirezionati alla porta 13 (servizio daytime): Mediante redirect:
set redirect prot tcp port 7 from any to this to-port 13

Comandi iptables equivalenti:


iptables -t nat -A PREROUTING -p tcp --dport 7 -j REDIRECT --to-ports 13

Il traffico destinato alla porta 7 (servizio echo), provenienti da qualsiasi indirizzo IP e diretti ad Imola, redirezionati all'indirizzo IP 192.168.0.2 alla porta 34 Mediante redirect:
set redirect prot tcp port 7 from any to this to-ip 192.168.0.2:34

Comandi iptables equivalenti:


iptables -t nat -A PREROUTING -p tcp --dport 7 -j DNAT --to-destination 192.168.0.2:34

Il traffico destinato alla porta 23 (servizio telnet), provenienti da qualsiasi indirizzo IP e diretti allindirizzo IP 10.10.2.9, redirezionati all'indirizzo IP 10.10.10.22 porta 7 (servizio echo); di questi pacchetti inoltre sar effettuato il log con prefisso REDIR : Mediante redirect:
set redirect prot tcp port 23 from any to 10.10.2.9 to-ip 10.10.10.22 to-port 7 log-prefix REDIR

Comandi iptables equivalenti:


iptables -t nat -A PREROUTING -p tcp -d 10.10.2.9 --dport 23 -j LOG --log-prefix REDIR --log-level notice

98

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

iptables -t nat -A PREROUTING -p tcp -d 10.10.2.9 --dport 23 -j DNAT --to-destination 10.10.10.22:7

Sostituire l'indirizzo IP sorgente di tutti i pacchetti indirizzati alla rete 10.10.0.0/255.255.0.0 con l'indirizzo 10.10.0.1: Mediante source-nat:
set source-nat prot all from any to 10.10.0.0/255.255.0.0 ip 10.10.0.1

Comandi iptables equivalenti:


iptables -t nat -A POSTROUTING -d 10.10.0.0/255.255.0.0 -j SNAT to 10.10.0.1

Mascheramento di tutti i pacchetti in uscita dalla interfaccia eth1: Mediante source-nat:


set source-nat prot all from any to any dev eth1

Comandi iptables equivalenti:


iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Tiesse

99

IMOLA User Guide - Rev.21 Ver. 001

CONNECTION TRACKING
INTRODUZIONE Il tracciamento delle connessioni mantiene in memoria delle tabelle dei pacchetti entranti e uscenti dalla macchina in modo da poter avere un controllo non solo in base alle caratteristiche del pacchetto analizzato, ma anche e soprattutto in base alla sua relazione con i pacchetti precedenti, cio allo stato della connessione (connectiontracking). L'opzione di iptables che permette di utilizzare questa funzionalt l'estensione m state, con lopzione --state che permette di specificare una lista di stati della sessione separati da virgola. Sono definiti 4 tipi diversi di stato: NEW per un pacchetto che crea una nuova connessione (cio un pacchetto tcp col flag SYN impostato oppure pacchetti udp o icmp non dovuti a connessioni gi validate) ESTABLISHED per un pacchetto che fa parte di una connessione gi stabilita, cio che ha gi avuto dei pacchetti in risposta. RELATED per un pacchetto relativo a connessioni esistenti ma che non fa parte di una connessione esistente (come ad esempio un pacchetto icmp di errore o una connessione ftp-data [porta 20] relativa ad una connessione ftp) INVALID per pacchetti che per alcune ragioni non possono essere classificati in altro modo. Esempio:
iptables A FORWARD d 192.168.1.0/24 m state --state ESTABLISHED,RELATED j ACCEPT

consente il traffico verso la rete 192.168.1.0/24 di pacchetti appartenenti a connessioni gi realizzati oppure a connessioni correlate a quelle gi attive.
iptables A FORWARD d 192.168.1.0/24 m state -state INVALID j DROP

E possibile esaminare le entries presenti nel conntrack database mediante il comando:


iptables-conntrack

Un esempio di output il seguente:

100

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

tcp 6 117 SYN_SENT src=192.168.1.6 dst=192.168.1.9 sport=32775 dport=22 [UNREPLIED] src=192.168.1.9 dst=192.168.1.6 sport=22 dport=32775 [ASSURED] use=2

nel quale si evidenziano: 1. Protocollo 2. Protocollo espresso con il valore numerico 3. Time-to-live della entry. Questo valore viene decrementato finch non compare altro traffico relativo a questa connessione. Quando la entry cambia stato viene impostato al valore di default per lo stato in esame 4. Stato attuale dellentry. Gli stati interni sono leggermente diversi da quelli usati esternamente da iptables. SYN_SENT riguarda una connessione che ha visto soltanto il SYN in una direzione 5. IP address sorgente 6. IP address destinazione 7. porta sorgente 8. porta destinazione 9. keyword (UNREPLIED) che indica che non stato visto traffico di ritorno per questa connessione 10. pacchetto atteso al ritorno Quando una connessione ha visto traffico in entrambe le direzione, viene cancellato il flag UNREPLIED, poi la entry viene rimpiazzata con unaltra che ha il flag ASSURED che indica che la entry non verr cancellata quando il numero massimo di connessioni tracciate raggiunto. La dimensione massima della cache e funzione della memoria disponibile. Su Imola il valore di default 4096. La potenza di questo sistema consiste nel fatto che non necessario aprire tutte le porte sopra 1024 per lasciare entrare il traffico di risposta, ma sufficiente aprire il firewall per il traffico di risposta operando sullo stato delle connessioni. CONNESSIONI TCP Una connessione TCP ha inizio sempre con un handshaking a tre tempi: 1. SYN packet da client verso server 2. SYN/ACK packet da server verso client 3. ACK packet da client verso server A questo punto la connessione stabilita e in grado di inviare dati:

Tiesse

101

IMOLA User Guide - Rev.21 Ver. 001

In questo modo se si permette ai pacchetti NEW e ESTABLISHED di uscire e soltanto ai pacchetti ESTABLISHED di entrare si taglieranno fuori tutti i tentativi di connessione verso la nostra rete interna Eseguendo il comando iptables-conntrack, lo stato riportato al ricevimento del primo pacchetto SYN il seguente:
tcp 6 117 SYN_SENT src=192.168.1.5 dst=192.168.1.35 sport=1031 dport=23 [UNREPLIED] src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 use=1

Il successivo stato interno raggiunto quando si riceve il pacchetto nella direzione opposta:
tcp 6 57 SYN_RECV src=192.168.1.5 dst=192.168.1.35 sport=1031 dport=23 src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 use=1

Lo stato established si raggiunge quando si vede lACK finale:


tcp 6 431999 ESTABLISHED src=192.168.1.5 dst=192.168.1.35 sport=1031 dport=23 src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 [ASSURED] use=1

Il seguente diagramma mostra il flusso dei pacchetti in chiusura (chiusura in condizioni normali):

Come si vede la connessione non realmente chiusa finch non arriva lultimo ACK. Si deve considerare che il meccanismo di connection tracking non considera i flags tcp allinterno dei pacchetti; anche un pacchetto senza SYN o ACK sar contato come NEW. Se si desidera che lo stato NEW sia associato alla presenza del SYN bisogna aggiungere la seguente regola:
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

CONNESSIONI UDP Le connessioni UDP sono tipicamente state-less. Ci sono diverse ragioni, principalmente per il fatto che esse non stabiliscono una connessione e perch

102

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

mancano di sequenzializzazione. Ricevere due datagram UDP in un certo ordine, non significa che essi sono stati inviati in quello stesso ordine.

Dal punto di vista del connection tracking, la connessione stabilita nello stesso modo che per il tcp; tuttavia la sequenza interna diversa. Quando viene inviato il primo pacchetto UDP, lentry nella tabella di conntrack diventa:
udp 17 20 src=192.168.1.2 dst=192.168.1.5 sport=137 dport=1025 [UNREPLIED] src=192.168.1.5 dst=192.168.1.2 sport=1025 dport=137 use=1

Quando il server vede una risposta al pacchetto la connessione considerata ESTABLISHED. Tuttavia, affinch il flag di ASSURED venga impostato, necessario che il pacchetto di risposta sia una legittima risposta al pacchetto inviato
udp 17 170 src=192.168.1.2 dst=192.168.1.5 sport=137 dport=1025 src=192.168.1.5 dst=192.168.1.2 sport=1025 dport=137 [ASSURED] use=1

Se la connessione non viene usata per 180 secondi, viene invalidata lentry nella tabella. Ogni volta che un pacchetta attraversa il firewall e viene accettato, il timer di timeout viene reinizializzato con il suo valore di default. CONNESSIONI ICMP I pacchetti ICMP non costituiscono uno stream stateful dal momento che non stabiliscono mai delle connessioni. Tuttavia ci sono fondamentalmente alcuni tipi di pacchetti che generano pacchetti di ritorno e di conseguenza possono prendere gli stati NEW e ESTABLISHED. Ad esempio i pacchetti Echo request e reply usati dal comando ping:

Tiesse

103

IMOLA User Guide - Rev.21 Ver. 001

La richiesta di icmp echo request considerata NEW dal firewall, mentre la risposta echo reply viene considerata causa la transizione allo stato di ESTABLISHED.
icmp 1 25 src=192.168.1.6 dst=192.168.1.10 type=8 code=0 id=33029 [UNREPLIED] src=192.168.1.10 dst=192.168.1.6 type=0 code=0 id=33029 use=1

Il formato della entry diverso rispetto a tcp e udp. Compaiono infatti tre campi nuovi: o type : icmp type o code : icmp code o id: icmp id Ogni pacchetto ICMP ha un ID che gli viene imposto quando inviato, quando il ricevente riceve il messaggio imposta lo stesso ID nel messaggio di risposta. Cos il mittente riesce ad associare la risposta al messaggio inviato. Come si vede, nella sezione della risposta attesa compaiono il type e code attesi e lid dellinvio. La connesione considerata established non appena viene intercettato il messaggio di risposta. Tuttavia certo che dopo la risposta non ci saranno pi messaggi legali associati a questa connessione. Perci la entry viene distrutta. La richiesta ICMP ha una tempo di permanenza di 30 secondi. Un messaggio ICMP viene utilizzato anche per informare lhost che ha iniziato una connessione tcp o udp circa la raggiungibilit del partner in questione. Si pensi ad un ICMP HOST unreacheable. Per questa ragione, le risposte ICMP sono riconosciute come RELATED.

In questo caso il client invia una pacchetto di SYN ad un indirizzo specifico; questa viene catalogata come una connessione NEW. Tuttavia il server non raggiungibile, cos un router invia un messaggio di ICMP unreacheable. Il connection tracking riconosce il pacchetto come RELATED grazie alla entry presente in tabella cos la risposta pu essere indirizzata al client. Subito dopo il client distrugge la entry in tabella. CONNESSIONI FTP Il protocollo FTP apre in prima istanza una sola connessione, chiamata sessione di controllo. Quando invochiamo un comando attraverso questa connessione vengono aperte altre porte per trasportare il resto dei dati relativi al comando specifico. Queste connessioni possono essere fatte in modo attivo o passivo. Quando la connessione 104

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

fatta in modo attivo, il client FTP invia al server una porta ed un ip address cui connettersi. In seguito, il client ftp apre la la porta e il server vi si connette da una porta non privilegiata, scelta in modalit random, poi ha inizio lo scambio dei dati. Il firewall non pu essere a conoscenza di queste connessioni aggiuntive dal momento che esse sono negoziate allinterno del payload dei pacchetti scambiati. Per questo motivo, il firewall non a conoscenza che deve lasciare connettere il server su queste porte. Sono perci necessarie delle estensioni ai filtri del firewall in modo che questi sia in grado di recuperare le informazioni tra i dati scambiati e classificare queste connessioni aggiuntive come RELATED.

Un FTP passivo opera nella direzione opposta. Il client FTP dice al server che vuole dei dati specifici; in seguito a questa richiesta il server risponde con un indirizzo IP cui connettersi e una porta. Il client si connette alla porta specificata dalla sua porta 20 (porta dei dati FTP) e prende i dati in questione. Anche in questo caso necessario un modulo aggiuntivo del firewall in grado di intercettare queste informazioni nel payload del pacchetto e classificare questa seconda connessione come RELATED.

Tiesse

105

IMOLA User Guide - Rev.21 Ver. 001

UN ESEMPIO DI FIREWALL
Consideriamo il seguente scenario:

Internet

HTTP IP 85.34.147.17 FRWL IP 85.34.147.18

atm0

eth0

eth1

HTTP IP 192.168.1.2

LAN IP 192.168.0.0/24

DMZ

LAN

dove il router, cui sono assegnati gli indirizzi pubblici 85.34.147.17 e 85.34.147.18, collegato: alla rete pubblica attraverso linterfaccia atm0, alla lan interna con indirizzo 192.168.0.0/24 attraverso linterfaccia eth1. alla lan DMZ con indirizzo 192.168.1.0/24 attraverso linterfaccia eth0

Allinterno della DMZ esiste un server HTTP con indirizzo 192.168.1.2. Gli utenti accedono al server HTTP mediante lindirizzo pubblico 85.34.147.17.
# La politica di default quella di scartare i pacchetti iptables P INPUT DROP iptables P OUTPUT DROP iptables P FORWARD DROP # Non accetta pacchetti relativi a nuove sessione senza il SYN iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # Dalla LAN verso lesterno consenti tutto iptables -A FORWARD -i eth1 -o atm0 -j ACCEPT # Dalla DMZ verso lesterno consenti tutto iptables -A FORWARD -i eth0 -o atm0 -j ACCEPT # Da router verso lesterno consenti tutto iptables -A OUTPUT -o atm0 -j ACCEPT

# Tra la DMZ e la LAN consenti tutto

106

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT # In ingresso al router ed in transito dal router # accetta solo pacchetti appartenenti a # sessione gi realizzate iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Accetta pacchetti in transito verso il Server iptables -A FORWARD -p tcp -d 192.168.1.2 -dport 80 j ACCEPT # D-NAT dallindirizzo pubblico al server iptables -t nat -A PREROUTING -p tcp -i atm0 -d 85.34.147.17 --dport 80 -j DNAT --to 192.168.1.2

# S-NAT verso lesterno iptables t nat A POSTROUTING o atm0 s 192.168.0.0/24 j SNAT --to-source 85.34.147.18 iptables -t nat -A POSTROUTING -o atm0 -s 192.168.1.2 -j SNAT --to 85.34.147.17 # Vieta laccesso verso lhost 217.201.2.3 iptables A FORWARD o atm0 s 192.168.0.0/24 d 217.201.2.3 j LOG iptables A FORWARD o atm0 s 192.168.0.0/24 d 217.201.2.3 j DROP

COMANDI DI GESTIONE E CONFIGURAZIONE


Affinche le regole impostate con iptables siano attualizzate al prossimo reboot del router necessario eseguire il comando:
iptables-save

Il comando:
iptables-stat

visualizza le regole presenti e i relativi contatori associati ad ognuna. Per annullare tutte le regole presenti disponibile il commando:
iptables-flush.

Affinch nessuna regola venga impostata al prossimo reboot occorre eseguire i comandi:
iptables-flush iptables-save

Il comando:

Tiesse

107

IMOLA User Guide - Rev.21 Ver. 001

iptables-conntrack

visualizza lo stato di tutte le connessioni attive. Il comando:


iptables-run

permette di eseguire un insieme di regole da un file. Si usa congiuntamente al comando download command-file. Ad esempio, supponiamo di avere creato su un server TFTP, il file ipt.txt, contenente la lista di comandi iptables che vogliamo eseguire. Su router si eseguono i comandi:
# Trasferisce sul router il file di comandi download command-file ipt.txt from <tftp-server> # Esegue il file di comandi iptables-run from ipt.txt # Visualizza le regole presenti sul router iptables-stat # Salva le regole iptables-save reboot

Il comando:
iptables-sysctl

permette di configurare e visualizzare il valore di vari parametri di sistema, ad esempio il numero massimo di connessioni oppure i timer associati allo stato delle connessioni:
ip_conntrack_max ip_conntrack_tcp_timeout_syn_sent ip_conntrack_tcp_timeout_syn_recv ip_conntrack_tcp_timeout_established ip_conntrack_tcp_timeout_fin_wait ip_conntrack_tcp_timeout_close_wait ip_conntrack_tcp_timeout_last_ack ip_conntrack_tcp_timeout_time_wait ip_conntrack_tcp_timeout_close ip_conntrack_tcp_timeout_max_retrans ip_conntrack_tcp_log_invalid_scale ip_conntrack_tcp_log_out_of_window ip_conntrack_tcp_loose ip_conntrack_tcp_be_liberal ip_conntrack_tcp_max_retrans ip_conntrack_udp_timeout ip_conntrack_udp_timeout_stream ip_conntrack_icmp_timeout ip_conntrack_generic_timeout

Ad esempio per configurare a 600 secondi il valore del timeout delle sessioni:
iptables-sysctl ip_conntrack_tcp_timeout_established 600

mentre per visualizzare il valore corrente:


iptables-sysctl ip_conntrack_tcp_timeout_established

Il comando:
iptables-restore

108

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Permette di ripristinare particolari configurazioni. Distinguiamo almeno tre tipi differenti di configurazione:
current saved started

La configurazione current quella contenente tutti i valori impostati nella fase di configurazione utilizzando il comando iptables. La configurazione saved quella salvata sulla flash di Imola con il comando iptables-save ed quella con la quale l'apparato si attiver al prossimo boot. La configurazione started quella con la quale l'apparato si attivato al boot. Al termine del boot e prima che cominci la fase di configurazione, le tre configurazioni sono uguali. Durante la fase di configurazione e verifica, le configurazioni saved e started sono uguali. Dopo aver eseguito dei comandi di configurazione ed aver eseguito il comando iptables-save, la configurazione current diventa anche saved e sar quella con cui si attiver l'apparato al prossimo boot. possibile visualizzare il contenuto dei tre diversi profili di configurazione mediante il comando:
iptables-show-config current|saved|started

Inoltre possibile gestire fasi intermedie di configurazione. Il comando CLI iptables-set-checkpoint permette di creare un salvataggio intermedio, denominato checkpoint, utile per salvare un profilo di configurazione relativo ad un certo istante. Tramite il comando iptables-restore checkpoint possibile ripristinare la particolare configurazione salvata. Ad esempio:
iptables-set-checkpoint-1

crea un salvataggio intermedio che in qualsiasi momento pu essere richiamato mediante il comando:
iptables-restore checkpoint-1

Possono essere presenti 2 configurazioni intermedie usando i comandi:


iptables-set-checkpoint-1 e iptables-set-checkpoint-2.

Dopo aver effettuato il comando di iptables-restore, necessario eseguire il comando iptables-save. Per fare in modo che la configurazione ripristinata diventi quella corrente al prossimo reboot del router necessario eseguire il comando: iptables-save.

Tiesse

109

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLO VRRP
CONFIGURAZIONE
Imola supporta il protocollo VRRP (Virtual Router Redundancy Protocol, RFC 2338), un protocollo standard tramite il quale pi router di una LAN possono dinamicamente assegnarsi il compito di rispondere a determinati indirizzi IP. In una configurazione ridondante distinguiamo un nodo master ed uno o pi nodi di backup. Al momento dellattivazione del protocollo VRRP (stato Iniziale) tutti i nodi coinvolti inviano dei pacchetti verso un indirizzo di gruppo specificando un valore di priorit necessario per decidere quale nodo deve assumere il ruolo di Master: il nodo il cui valore di priorit maggiore diventa il Master. Questo attiva un indirizzo IP virtuale sulla interfaccia configurata e tramite questa continua ad inviare i pacchetti (pacchetti di advertisement) verso lindirizzo di gruppo (multicast), mentre i nodi di backup rimangono in ascolto. Se il nodo di backup non riceve pi i pacchetti di advertisement oppure li riceve ma il valore per la priorit inferiore al suo, esso assume il ruolo di Master. Analogamente, se il nodo Master riceve degli Advertisement con un valore di priorit maggiore del suo, esso diventa backup. Per configurare linterfaccia su cui attivare il protocollo il comando :
set vrrp interface <ifname>

dove ifname pu essere eth0 oppure eth1, oppure il nome di una interfaccia VLAN del tipo eth1.N. Per stabilire lintervallo tra linvio di un pacchetto di advertisement ed il successivo il comando :
set vrrp delay N

Il backup si accorger della non-disponibilit del master dopo 3*delay. Il default 1s Per impostare la priorit:
set vrrp priority N

Il valore N pu variare da 1 a 254. Maggiore il valore e maggiore la priorit. Il comando:


set vrrp vipaddr 10.10.2.90

configura lIP address virtuale che sar attivato sulla interfaccia configurata nel caso in cui si assuma il ruolo di Master. Infine per attivare il protocollo si usa il comando:

110

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set vrrp on

Un esempio di configurazione tipica del protocollo VRRP la seguente:


set set set set set vrrp vrrp vrrp vrrp vrrp interface eth0 delay 1 priority 50 vipaddr 10.10.2.90 on

Per disabilitare il protocollo vrrp sufficiente digitare il comando:


set no-vrrp

VISUALIZZAZIONE
Per visualizzare lo stato e la configurazione del protocollo VRRP si usa il comando:
show vrrp

che mostra le seguenti informazioni:


root@Imola> show vrrp VRRP=yes VRRP_INTERFACE=eth1 VRRP_VRID=11 VRRP_PRIO=100 VRRP_DELAY=1 VRRP_PREEMPT=yes VRRP_VMAC=no VRRP_AUTH= VRRP_VIPADDR=10.10.1.1 VRRP_STATUS=Master VRRP_UP_CMD= VRRP_DOWN_CMD=

# Virtual Router Redundancy Protocol # Interface name # Priority

# Virtual IP Address # We are Master

VRRP ID 11 on eth1: we are now the master router. VRRP ID 11, Priority: 100, Virtual IP(s): 10.10.1.1 root@Imola>

TRIGGER VRRP
E possibile programmare dei trigger eseguiti nel momento in cui si ha un cambio di stato legato al protocollo VRRP. Ad esempio, nel momento in cui il router diventa Master VRRP attiva un tunnel GRE e il protocollo RIP ed esegue le operazioni inverse quando diventa Backup VRPP:
set trigger vrrp up set gre generic on set trigger vrrp up set rip on set trigger vrrp down set rip off set trigger vrrp down set gre generic off

dove sia il tunnel che il RIP sono stati precedentemente configurati, ma mai attivati.

Tiesse

111

IMOLA User Guide - Rev.21 Ver. 001

CONFIGURAZIONE VRRP MEDIANTE COMANDO VRRPD


I comandi della sezione set vrrp fanno uso implicito del comando Linux vrrpd, che pu essere usato direttamente per creare il numero di gruppi VRRP richiesti. Ad esempio i comandi:
vrrpd i eth1 n v 12 p 120 12.12.1.1 vrrpd i eth1 n v 13 p 130 13.13.1.1

attivano sullinterfaccia eth1 rispettivamente due servizi VRRP rispettivamente con gruppo 12, priorit 120 ed indirizzo virtuale 12.12.1.1 gruppo 13, priorit 130 ed indirizzo virtuale 13.13.1.1

Il parametro -n obbligatorio in caso di pi gruppi VRRP. I servizi attivati con il comando vrrpd convivono con listanza configurata mediante il comando set vrrp. Per fermare un determinato servizio si usa il comando no-vrrpd. Ad esempio:
no-vrrpd i eth1 v 12 no-vrrpd i eth1 v 13

Il comando vrrpd non ha effetti sulla configurazione di Imola, ovvero il gruppo VRRP non verr attivato automaticamente al prossimo reboot. Tipicamente il comando si utilizza congiuntamente ai comandi di trigger. Ad esempio per attivare i due gruppi allo start-up del router necessario impostare i comandi:
set autocmd vrrpd i eth1 n v 12 p 120 12.12.1.1 set autocmd vrrpd i eth1 n v 13 p 130 13.13.1.1

oppure il servizio pu essere attivato quanto si attiva la sessione GPRS e deattivato quando questa viene terminata:
set trigger gprs up vrrpd i eth1 n v 12 p 120 12.12.1.1 set trigger gprs down no-vrrpd i eth1 v 12

oppure al momento della attivazione della funzionalit di backup:


set trigger backup up set vrrpd i eth1 n v 13 p 130 13.13.1.1

Utilizzando direttamente il comando vrrpd non possibile specificare dei trigger associati al cambiamento di stato del gruppo attivato. Le azioni impostate mediante i comandi set trigger vrrp up e set trigger vrrp down sono relativi solamente al gruppo VRRP configurato mediante il comando set vrrp. Il comando show
vrrp

visualizza lo stato di tutte le istanze attive.

112

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLI DI ROUTING DINAMICO: BGP, OSPF E RIP


In uno scenario di rete complesso, nel quale sia necessario collegare host appartenenti a reti differenti, pu diventare fondamentale lutilizzo di protocolli di routing dinamico. Questo tipo di routing permette ai vari router di scambiarsi le informazioni necessarie a determinare i possibili percorsi per raggiungere destinazioni remote mediante dei protocolli chiamati appunto Routing Protocol, che usano appropriati algoritmi di routing. Tra i tipi di protocolli di routing Imola supporta i protocolli utilizzati per: linstradamento allinterno dello stesso dominio amministrativo (Intradomain routing o Interior Gateway Protocols) o RIP (Distance vector) o OSPF (Link state) linstradamento tra differenti domini amministrativi (Interdomain routing o Exterior Gateway Protocols) o BGP (Border Router Protocol) linstradamento Multicast o PIM (Protocol Independent Multicast) in entrambe le modalit (PIM-DM, PIM-SM)

CONFIGURAZIONE PROTOCOLLO BGP


Il protocollo BGP prevede una sessione TCP tra una coppia di router, ognuno dei quali appartiene ad un determinato Autonomous System (AS). Per configurare lAS locale si usa il comando:
set bgp local-as <value>

Per configurare il router remoto ed il relativo AS si usa la coppia di comandi:


set bgp remote-as <value> set bgp neighbor <ip address>

mentre per specificare una rete che deve essere annunciata al router remoto si usa il comando:
set bgp network <value>

che pu essere ripetuto per ogni rete da annunciare.

Tiesse

113

IMOLA User Guide - Rev.21 Ver. 001

I comandi:
set set set set bgp bgp bgp bgp keepalive-interval N holdtime N route-advt-interval N connect-timer N

permettono rispettivamente di configurare i valore dei timer di Keepalive, Hold-Time, Route Advertisement Interval e Connect Timer. Il comando:
set bgp multihop

permette di stabilire una sessione BGP anche se per raggiungere il router neighbor necessario attraversare pi router intermedi (hops). Il comando:
set bgp directive <comando router>

permette di specificare parametri avanzati per la configurazione del protocollo. Volendo, ad esempio, modificare il valore della distanza amministrativa, si deve introdurre il seguente comando:
set bgp directive distance 19

Il comando:
set bgp no-directive <comando router>

elimina dalla configurazione il parametro introdotto. Per abilitare il protocollo bgp utilizzare il comando:
set bgp on

Per disabilitare il protocollo bgp utilizzare il comando:


set no-bgp

Come esempio consideriamo uno scenario in cui un router, che indicheremo con Imola1, con indirizzo IP 10.10.2.7, sia connesso a 2 network con indirizzi di tipo 44.44.1.0/24 e 44.44.2.0/24; inoltre un altro router, che chiameremo Imola2, avente indirizzo IP 10.10.2.212, sia invece connesso ad una network con indirizzi di tipo 172.151.113.0/24. In una tale situazione, linstradamento mediante protocollo BGP pu essere attivato mediante i seguenti comandi CLI: sistema Imola1:
set bgp local-as 65000 set bgp network 44.44.1.0/24 set bgp network 44.44.2.0/24

114

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set bgp remote-as 3269 set bgp neighbor 10.10.2.212 set bgp on

sistema Imola2:
set set set set set bgp bgp bgp bgp bgp local-as 3269 network 172.151.113.0/24 remote-as 65000 neighbor 10.10.2.7 on

La propagazione delle rotte tra i due sistemi pu essere verificata mediante il comando:
show iproute

oppure mediante il comando:


router zebra show ip route

oppure ancora mediante


router bgp show ip bgp

Dal sistema Imola1:


root@Imola1> show iproute 44.44.2.0/24 dev eth0 proto kernel scope link src 172.151.2.0/24 via 10.10.2.212 dev eth0 proto zebra 44.44.0.0/16 dev eth0 proto kernel scope link src 10.10.0.0/16 dev eth0 proto kernel scope link src

44.44.2.2 equalize 44.44.1.2 10.10.2.7

Figura 42: Esempio di output comando:

show iproute

Nellesempio appena mostrato viene chiaramente indicato come la rotta 172.151.2.0 sia stata propagata mediante il protocollo bgp. Dal sistema Imola2:
root@Imola2> show iproute 44.44.1.0/24 via 10.10.2.7 dev eth0 44.44.2.0/24 via 10.10.2.7 dev eth0 172.151.2.0/24 dev eth1 proto kernel 10.10.0.0/16 dev eth0 proto kernel

proto proto scope scope

zebra equalize zebra equalize link src 172.151.2.212 link src 10.10.2.212

Figura 43: Esempio di output comando:

show iproute

Nellesempio appena mostrato, le rotte 44.44.1.0 e 44.44.2.0 sono state propagate mediante il protocollo bgp. Possono essere impostate opzioni avanzate del protocollo bgp mediante il comando:
set bgp directive <opzione>.

Tiesse

115

IMOLA User Guide - Rev.21 Ver. 001

Ad esempio:
set bgp directive neighbor 172.151.2.5 override-capability

Il comando
router bgp list

visualizza tutti i comandi che possono essere impostati.

CONFIGURAZIONE PROTOCOLLO OSPF


Per impostare tramite CLI uno qualsiasi dei comandi riportati si usa il comando:
set ospf directive <comando router>

mentre per eliminarlo dalla configurazione:


set ospf no-directive <comando router>.

Ad esempio per attivare il protocollo OSPF sulle interfacce di rete con indirizzi 10.10.113.1 e 172.151.113.1:
set ospf directive network 10.10.0.0/16 area 0.0.0.0 set ospf directive network 171.151.0.0/16 area 0.0.0.0 set ospf on

Per disabilitare il protocollo ospf utilizzare il comando:


set no-ospf

La propagazione delle rotte tra i due sistemi pu essere verificata mediante il comando:
show iproute

oppure mediante il comando:


router ospf show ip ospf route

Il comando
router ospf list

visualizza tutti i comandi che possono essere impostati.

116

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

CONFIGURAZIONE PROTOCOLLO RIP


Il protocollo RIP prevede lannuncio periodico delle reti direttamente connesse al router. Per configurare linterfaccia su cui trasmettere gli annunci RIP si usa il comando:
set rip network <network/N>

eventualmente ripetuto per tutte le interfacce su cui si voglion inviare gli annunci. Per impostare la metrica delle rotte distribuite il comando :
set rip default-metric <1-16>

mentre per definire la distanza amministrativa:


set rip distance N

Per configurare il valore dei timer del protocollo RIP:


set rip timers t1 t2 t3

dove t1 rappresenta il valore per il Routing Table Update Timer (default 30s), t2 rappresenta il valore per il Routing Information Timeout Timer (default 180s) e t3 rappresenta il valore per il Garbage Collection Timer (default 120s) Per stabilire che uninterfaccia deve essere passiva, ovvero pu solo ricevere annunci, senza inviarli, si usa il comando
set rip passive-interface <ifname>

ripetuto per tutte le interfacce che devono restare passive. Il comando:


set rip version 1|2

definisce la versione di RIP (RIPv1 o RIPv2) Il comando


set rip neighbor a.b.c.d

Permette di inviare gli annunci RIP direttamente allhost a.b.c.d, invece che allindirizzo di gruppo. Il comando set rip directive <comando router> permette di specificare eventuali parametri che non fanno parte delle opzioni del comando set rip . Ad esempio i comandi:
set rip directive route 33.33.33.0/24

Tiesse

117

IMOLA User Guide - Rev.21 Ver. 001

set rip directive route 44.44.0.0/16 set rip directive redistribute static

stabiliscono che le network 33.33.33.0/24 e 44.44.0.0/16 devono essere incluse negli annunci RIP. Il comando
router rip list

visualizza tutti i comandi che possono essere impostati. Il comando:


set rip no-directive <comando router>

elimina dalla configurazione il parametro introdotto. Per disabilitare il protocollo rip utilizzare il comando:
set no-rip

COMANDO ROUTER
Il comando router permette la gestione, lamministrazione e il debugging dei protocolli di routing dinamico attivi su Imola. Ad esempio:
router zebra show ip route

root@IMOLA> router zebra show ip route Router# show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, B - BGP, > - selected route, * - FIB route K * 0.0.0.0/0 via 10.64.64.64, ppp0 inactive C>* 10.10.0.0/16 is directly connected, eth0 B>* 11.11.0.0/16 [20/0] via 172.151.113.100, eth1, 09:39:06 R 11.11.0.0/16 [120/2] via 172.151.113.100, eth1, 09:39:30 C>* 11.11.11.11/32 is directly connected, ippp1 K * 44.44.44.44/32 is directly connected, unknown inactive C>* 100.100.100.0/30 is directly connected, tun0 R>* 111.111.111.111/32 [120/2] via 172.151.113.100, eth1, 09:39:30 C>* 127.0.0.0/8 is directly connected, lo C>* 172.151.0.0/16 is directly connected, eth1 C>* 202.202.202.202/32 is directly connected, dummy0 Router# root@IMOLA>

visualizza tutte le rotte statiche e dinamiche presenti nel sistema. Un utente con i privilegi di Administrator pu effettuare direttamente la configurazione del protocollo, usando:

118

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

router ospf | bgp | rip

senza specificare ulteriori opzioni. Ad esempio per configurare OSPF, dopo aver eseguito router ospf si entra nellambiente di configurazione nativo, si imposta il comando configure terminal e quindi i parametri desiderati:
root@IMOLA> set ospf on root@IMOLA> router ospf ospfd# configure terminal ospfd(config-router)# network 10.10.0.0/16 ospfd(config-router)# network 10.10.0.0/16 area 0 ospfd(config-router)# network 172.151.0.0/16 area 0 ospfd(config-router)# exit ospfd(config)# exit ospfd# exit root@IMOLA>

Se lo stesso comando viene eseguito da un utente che non ha i diritti di amministratore, viene visualizzata la lista dei comandi che esso pu eseguire:
TieSse spa - IMOLA Interworking Unit No Radius configured. Using Local authentication login: mario Password: local: Authentication OK Service Type is: Login-User Idle timeout is set to 3600 seconds Connected Users: ttyp0 root ttyp1 mario You are logged on ttyp1 mario@IMOLA# router ospf show debugging ospf show history show ip access-list show ip access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) show ip ospf show ip ospf border-routers show ip ospf database . . ..

Tiesse

119

IMOLA User Guide - Rev.21 Ver. 001

Per visualizzare lo stato di OSPF:


root@IMOLA> router ospf show ip ospf ospfd# show ip ospf OSPF Routing Process, Router ID: 172.151.113.1 Supports only single TOS (TOS0) routes This implementation conforms to RFC2328 RFC1583Compatibility flag is disabled SPF schedule delay 5 secs, Hold time between two SPFs 10 secs Refresh timer 10 secs Number of external LSA 0 Number of areas attached to this router: 1 Area ID: 0.0.0.0 (Backbone) Number of interfaces in this area: Total: 2, Active: 4 Number of fully adjacent neighbors in this area: 1 Area has no authentication SPF algorithm executed 5 times Number of LSA 3 ospfd# root@IMOLA>

Per visualizzare le rotte di OSPF:


root@IMOLA> router ospf show ip ospf route ospfd# show ip ospf route ============ OSPF network routing table ============ N 10.10.0.0/16 [10] area: 0.0.0.0 directly attached to eth0 N 172.151.0.0/16 [10] area: 0.0.0.0 directly attached to eth1 ============ OSPF router routing table ============= ============ OSPF external routing table =========== ospfd# root@IMOLA>

I comandi:
router router router router rip list bgp list ospf list zebra list

mostrano tutte le possibili opzioni che possono essere specificate.

120

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLO DI MULTICAST ROUTING


PROTOCOL INDIPENDENT MULTICAST
Il Multicast Routing un protocollo usato su reti TCP/IP, che lega la sua ragion dessere alla necessit di trasmettere dati (in particolare flussi multimediali real time, come videoconferenze o streaming video) a diversi destinatari in rete. I router Imola supportano linstradamento automatico Multicast grazie al Protocol Indipendent Multicast (PIM). In aggiunta alle regole di instradamento statico, sono supportate entrambe le modalit PIM-SM e PIM-DM (sparse e dense mode). I comandi fondamentali per la configurazione del protocollo PIM sono:
set pim mode <sparse|dense> set pim directive <option> set pim no-directive <option>

Per l'attivazione si usa il comando:


set pim on

Il comando:
set pim off

disattiva il protocollo PIM. Infine il comando:


set no-pim

disattiva il protocollo PIM e lo rimuove dalla configurazione.

Tiesse

121

IMOLA User Guide - Rev.21 Ver. 001

CONFIGURAZIONE DEL PROTOCOLLO PIM DENSE MODE La configurazione del protocollo PIM in modalit dense prevede i seguenti comandi:
set pim directive default_source_preference <preference> set pim directive default_source_metric <value> set pim directive phyint <ifname> [disable] | [preference <preference>] [metric <metric>]

Il protocollo PIM in modalit dense viene normalmente attivato su tutte le interfacce presenti. Se si intende disabilitare il Multicast Routing su determinate interfacce necessario utilizzare il comando:
set pim directive phyint <ifname> disable

CONFIGURAZIONE DEL PROTOCOLLO PIM SPARSE MODE La configurazione del protocollo PIM in modalit sparse mode prevede i seguenti comandi:
set set set set pim pim pim pim directive cand_rp [<local-addr>] [priority <value> ] [time <value>] directive cand_bootstrap_router [<local-addr>] [priority <value>] directive group_prefix <group-addr> [masklen <masklen>] directive

dove le prime due opzioni permettono di specificare se il router deve svolgere le funzioni di Candidate RP e di Candidate Bootstrap Router e la terza specifica la lista dei multicast ammessi. Se non specificato altrimenti buona norma fissare il parametro:
set pim directive group_prefix 224.0.0.0 masklen 4

Sono disponibili inoltre i comandi:


set pim directive dr-priority N set pim directive membership-query-interval N

per specificare rispettivamente la priorit utilizzata nei messaggi di Hello che il router invia periodicamente e lintervallo di invio dei pacchetti IGMP V2 Query. Infine i comandi:
set pim directive rp-address <ip-address> set pim directive bsr-address <ip-address>

permettono rispettivamente di specificare in maniera statica lindirizzo IP del router con funzioni di Rendezvous Point e di quello con funzioni di BootStrap Router. Tali opzioni sono utili qualora il neighbor PIM non annunci il router RP. Per visualizzare lo stato del protocollo PIM si usa il comando: show
pim

122

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

IGMP PROXY
Le funzioni di IGMP Proxy permettono il reinstradamento del traffico Multicast sulle varie interfacce di rete utilizzando semplicemente il signalling IGMP (Internet Group Management Protocol). La configurazione prevede la definizione di uninterfaccia upstream e di una o pi interfacce downstream. Linterfaccia upstream quella da cui arriva il traffico Multicast, le interfacce downstream sono quelle su cui deve essere reinstradato. Per specificare linterfaccia di tipo upstrem il comando :
set igmp-proxy upstream <ifname>

Per specificare linterfaccia di downstream il comando :


set igmp-proxy downstream <ifname>

Nel caso in cui si la sorgente di traffico sia esterna alla classe di indirizzi dellinterfaccia upstream necessario aggiungere il comando:
set igmp-proxy altnet <a.b.c.d/N>

in modo da autorizzare il reinstradamento dei pacchetti aventi come sorgente un indirizzo appartenente alla rete a.b.c.d/N. A partire dalla versione pimd 1.1.3 (visualizzabile mediante il comando show system) invece tutti i pacchetti in arrivo dallinterfaccia upstream sono automaticamente reinstradati. Impostando il comando set igmp-proxy altnet a.b.c.d/N, leffetto quello di restringere il reinstradamento solo ai pacchetti appartenenti alla classe indicata. Per specificare pi di una sorgente ed ammettere il traffico solo da queste, bisogna utilizzare la sequenza di comandi:
set igmp-proxy no-altnet set igmp-proxy no-upstream
set igmp proxy directive phyint <ifname> upstream altnet a.b.c.d/N altnet x.y.z.t/N ..

Per specificare eventuali altre interfacce di downstream bisogna usare il comando:


set igmp-proxy directive phyint <ifname> downstream

Per modificare8 lintervallo di invio dei pacchetti IGMP Query sullinterfaccia downstream si pu usare il comando:
set igmp-proxy directive membership-query-interval N

La funzionalit disponibile a partire dalla versione 1.1.4.

Tiesse

123

IMOLA User Guide - Rev.21 Ver. 001

mentre per inoltrare sullinterfaccia di upstream i pacchetti di IGMP report ricevuti si pu usare il comando:
set igmp-proxy directive relay-membership-report

I report vengono inviati specificando come indirizzo destinatario il gruppo stesso. E possibile inviarli ad uno specifico indirizzo utilizzando il comando:
set igmp-proxy directive helper-address a.b.c.d

Per attivare le funzioni di igmp-proxy il comando :


set igmp-proxy on

mentre mediante il comando:


set igmp-proxy off

il servizio viene fermato. Il comando di attivazione non ha effetto sulla configurazione del router, cioe il servizio non verr attivato automaticamente al prossimo reboot. Esso deve essere usato congiuntamente ai comandi di trigger o di autocmd. Ad esempio per attivare il servizio quando si attiva la connessione adsl:
set trigger adsl up set igmp-proxy on

Oppure per attivarlo allo startup del router:


set autocmd set igmp-proxy on.

Ad esempio:
set set set set igmp-proxy igmp-proxy igmp-proxy igmp-proxy upstream tun0 ratelimit 0 threshold 1 altnet 10.184.23.0/24 downstream eth1 on

Il traffico Multicast proveniente dal tunnel il cui nome tun0, con sorgente 10.84.23.0/24, oltre alla rete associata al tunnel, viene reinstradato sullinterfaccia eth1. E possibile effettuare una join statica ad un gruppo di multicast utilizzando il comando:
igmp-join <mc group> [ifname]

Mentre per eseguire la leave dal gruppo: igmp-leave <mc group>

124

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

STATIC MULTICAST ROUTING


In alternativa ai protocolli dinamici di instradamento Multicast, possibile implementare delle regole di instradamento statico. La configurazione di rotte statiche di instradamento Multicast prevede i seguenti comandi:
smcroute smcroute smcroute smcroute add <input_interface> <OriginAddress> <MulticastGroup> add <input_interface> <OriginAddress> <MulticastGroup> join <interface> <MulticastGroup> leave <interface> <MulticastGroup>

Il comando:
smcroute add <input_interface> <OriginAddress> <MulticastGroup>

aggiunge una rotta statica in base alla quale i messaggi con sorgente <OriginAddress> destinati al gruppo <MulticastGroup> ricevuti sull'interfaccia <input_interface> sono propagati anche sull'interfaccia <output_interface>. mentre:
smcroute add <input_interface> <OriginAddress> <MulticasGroup>

elimina la rotta. Il comando:


smcroute join <interface> <MulticastGroup>

consente di inserire un multicast group. Mentre il comando:


smcroute leave <interface> <MulticastGroup>

consente di rimuovere un multicast group.

Tiesse

125

IMOLA User Guide - Rev.21 Ver. 001

TUNNEL GRE
CONFIGURAZIONE DI UN TUNNEL GRE
GRE l'abbreviazione di Generic Routing Encapsulation ed uno standard di incapsulamento sviluppato al fine di stabilire tunnel tra le interfacce di due sistemi, in connessione diretta o remota. Lattivazione di un tunnel GRE richiede la configurazione dei seguenti parametri: il nome da attribuire allinterfaccia tunnel GRE; lindirizzo IP della interfaccia fisica sulla quale si attiver il tunnel (tunnelsource); lindirizzo IP della interfaccia fisica remota verso cui sar terminato il tunnel (tunnel-destination); lindirizzo IP da attribuire in locale al tunnel (tunnel-address); lindirizzo IP da attribuire in remoto al tunnel (tunnel-peer);

Opzionalmente, per ciascun tunnel configurato, possibile impostare i seguenti parametri:


mtu (Max Transfer Unit) ttl (Time to Live) multicast (Abilitazione alla trasmissione dei multicast) keep-alive: possibile abilitare funzionalit di keep alive configurando i parametri keepalive-intval (intervallo di emissione dei pacchetti keep alive) e keepalive-retries (massimo numero di pacchetti keep- alive persi

prima di abbattere linterfaccia tunnel); Per stabilire il nome dellinterfaccia di rete associata al tunnel si usa il comando:
set gre generic name <name>

dove <name> una qualsiasi stringa che inizia con il carattere t. E buona norma usare uno dei seguenti valori: tgprs0, tadsl0, tisdn0, tun0, tun8. Per configurare lindirizzo fisico di partenza del tunnel viene usata la forma:
set gre generic tunnel-source <ipaddr>

per indicare direttamente lIP sorgente del tunnel, oppure


set gre generic tunnel-source <ifname>

per indicare che lindirizzo sorgente deve essere quello associato allinterfaccia specificata.

126

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Lindirizzo fisico di terminazione del tunnel (quello del router remoto):


set gre generic tunnel-destination <ipaddr>

Al tunnel di solito viene associato un indirizzo mediante il comando:


set gre generic tunnel-address <ipaddr/N>

ed possibile stabilire lindirizzo dellaltro estremo del tunnel:


set gre generic tunnel-peer <ipaddr/N>

Ad esempio, supponendo di voler stabilire un tunnel GRE tra linterfaccia GPRS locale e lhost remoto 89.119.108.108, possiamo creare il tunnel tgprs0 mediante i seguenti comandi CLI:
set set set set set set gre gre gre gre gre gre generic generic generic generic generic generic name tgprs0 tunnel-source 217.201.146.129 tunnel-destination 89.119.108.108 tunnel-address 3.3.3.1/30 tunnel-peer 3.3.3.2/30 on

Lo stato del tunnel pu essere visualizzato mediante il comando:


ip addr list dev tgprs0

root@Imola> ip addr list dev tgprs0 20: tun0@NONE: <POINTOPOINT,NOARP,UP> mtu 1476 qdisc noqueue link/gre 217.201.146.129 peer 89.119.108.108 inet 3.3.3.1 peer 3.3.3.2/30 scope global tun0 root@Imola>

Mediante il comando ifconfig possibile esaminare lo stato e i contatori dellinterfaccia. Di seguito la visualizzazione di un tunnel attivo:
root@Imola> ifconfig tgprs0 tun0 Link encap:UNSPEC HWaddr 0A-0A-08-4D-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:3.3.3.1 P-t-P:3.3.3..2 Mask:255.255.255.252 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1476 Metric:1 RX packets:23 errors:0 dropped:0 overruns:0 frame:0 TX packets:23 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Figura 44: Visualizzazione stato tunnel GPRS

e di un tunnel non attivo:


root@Imola> ifconfig tgprs0 tun0 Link encap:UNSPEC HWaddr 0A-0A-08-4D-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:3.3.3.1 P-t-P:3.3.3.2 Mask:255.255.255.252 POINTOPOINT NOARP MULTICAST MTU:1476 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0

Tiesse

127

IMOLA User Guide - Rev.21 Ver. 001

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Figura 45: : Visualizzazione stato tunnel GPRS

Le indicazioni UP e RUNNING indicano che il tunnel attivo. Tipicamente il flag UP indica che lo stato dellinterfaccia amministrativamente attivo, mentre il flag di RUNNING indica che operativamente attiva. Il comando ip pu essere utilizzato per la configurazione di rotte statiche sul tunnel, ad esempio:
ip route add 131.121.1.0/16 dev tgprs0

E possibile definire un tunnel unnumbered mediante i comandi:


set gre generic name tun0 set gre generic tunnel-source 217.201.146.129 set gre generic tunnel-destination 89.119.108.108 set gre generic tunnel-address 0.0.0.0 set gre generic on ip route add 4.4.4.0/24 dev tun0

Per abilitare la trasmissione dei multicast sullinterfaccia si usa il comando:


set gre generic multicast

mentre per modificare il valore della MTU:


set gre generic mtu N

Il valore di default 1476, cioe 1500 24, dove 1500 il valore di MTU dellinterfaccia fisica e 24 loverhead del tunnel stesso. Il valore del campo TTI viene impostato con:
set gre generic ttl N

Il tunnel viene attivato mediante il comando:


set gre generic on

e disattivato con il comando:


set gre generic off.

Il comando di attivazione non ha effetti sulla configurazione di Imola, ovvero il tunnel non verr attivato automaticamente al prossimo reboot. Tipicamente esso si utilizza congiuntamente ai comandi di trigger: Ad esempio per attivare il tunnel allo start-up del router:
set autocmd set gre generic on

128

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

oppure il tunnel pu essere attivato quanto si attiva la sessione GPRS e deattivato quando questa viene terminata:
set trigger gprs up set gre generic on set trigger gprs down set gre generic on

oppure al momento della attivazione della funzionalit di backup:


set trigger backup up set gre generic on.

Nel caso in cui sia stato usato il comando:


set generic gre tunnel-source <ifname>

necessario che linterfaccia specificata sia attiva, per cui opportuno che lattivazione venga invocata con i comandi di trigger, invece che come autocmd. E possibile abilitare la trasmissione dei pacchetti di keep-alive mediante i comandi:
set gre generic keepalive-intval N set gre generic keepalive-retries K

dove si specifica rispettivamente lintervallo di keepalive e il numero di tentativi prima di dichiarare fuori servizio il tunnel. Anche se la trasmissione non abilitata, pacchetti di keep-alive ricevuti. Imola risponde sempre ad eventuali

TRIGGER GRE
Nel caso in cui sia stata abilitata la funzione di trasmissione dei messaggi di keepalive possibile configurare dei trigger che verranno eseguiti nel momento in cui si ha il cambiamento di stato dellinterfaccia del tunnel. Ad esempio
set trigger gre up ip route del 192.168.1.0/24 dev atm0 set trigger gre up ip route add 192.168.1.0/24 dev tun0 set trigger gre down ip route del 192.168.1.0/24 dev tun0 set trigger gre down ip route add 192.168.1.0/24 dev atm0

con i quali si stabilisce che la rotta verso la rete 192.168.1.0/24 deve essere impostata sullinterfaccia tunnel quando questo attivo, e sullinterfaccia atm0 quando il tunnel non sia attivo.

CONFIGURAZIONE GRE MEDIANTE COMANDO IP


I comandi della sezione set gre generic fanno uso implicito del comando Linux ip, che pu essere usato direttamente per creare il numero di tunnel richiesti. Ad esempio, se lindirizzo locale attestato allinterfaccia GPRS 172.10.1.1 e lindirizzo remoto 172.20.1.1 i comandi:

Tiesse

129

IMOLA User Guide - Rev.21 Ver. 001

set set set set set set set set

gre gre gre gre gre gre gre gre

generic generic generic generic generic generic generic generic

name tgprs0 multicast ttl 64 tunnel-source 172.10.1.1 tunnel-destination 172.20.1.1 tunnel-address 100.100.100.1/30 tunnl-peer 100.100.100.2/30 on

sono equivalenti ai seguenti, prodotti utilizzando il comando ip:


ip ip ip ip tunnel add tgprs0 mode gre local 172.10.1.1 remote 172.20.1.1 ttl 64 link set tgprs0 up link set tgprs0 multicast on addr add 100.100.100.1/30 peer 100.100.100.2/30

In questo caso, per lattivazione automatica al restart del router, necessario impostare come trigger tutta la sequenza di comandi ip necessari: Ad esempio, per attivare il tunnel allattivazione del GPRS:
set trigger gprs up ip tunnel add tgprs0 mode gre local 172.10.1.1 remote 172.20.1.1 ttl 64 set trigger gprs up ip link set tgprs0 up set trigger gprs up ip link set tgprs0 multicast on set trigger gprs up ip addr add 100.100.100.1/30 peer 100.100.100.2/30

Per abbattere il tunnel ed eliminare ogni traccia della programmazione relativa allo stesso, possibile sfruttare il trigger gprs down, legato appunto allinterfaccia gprs:
set trigger gprs up ip tunnel del tgprs0

Si pu effettuare la rimozione del tunnel tgprs0 (anche manualmente) mediante i seguenti comandi ip:
ip tunnel del tgprs0

Lutilizzo diretto del comando ip consente di attivare pi tunnel GRE contemporanei. Qualora lindirizzo di partenza del tunnel non sia noto, possibile utilizzare la notazione:
ip tunnel add tgprs0 mode gre local any remote 172.20.1.1 ttl 64

130

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

IPSEC
CONFIGURAZIONE DI UN TUNNEL IPSEC
IPSec l'abbreviazione di IP Security ed uno standard per ottenere connessioni sicure su una rete IP. La sicurezza viene raggiunta attraverso la cifratura e l'autenticazione dei pacchetti IP e viene quindi fornita a livello rete. La capacit di garantire protezione a livello di rete rende questo protocollo trasparente al livello delle applicazioni che non devono essere modificate. Per configurare linterfaccia su cui attivare il tunnel ipsec si usa il comando:
set ipsec interface <interface>

Per impostare la chiave di autenticazione, la stessa che deve essere impostata anche sul peer, si usa il comando:
set ipsec secret <key>

Per impostare lindirizzo IP della interfaccia locale sulla quale sar attivato il tunnel si usa il comando:
set ipsec local-end <ip address>

Per impostare lindirizzo IP della interfaccia remota che costituisce lestremo remoto del tunnel si usa il comando:
set ipsec remote-end <ip address>

Per attivare il tunnel IPsec in coincidenza di una configurazione con mascheramento degli indirizzi IP, attivo sulla interfaccia connessa alla rete pubblica (NAT Traversal) si usa il comando:
set ipsec nat-t yes|no

Se tra il router locale e la rete IP pubblica interposto un router, sar necessaria lattivazione del comando:
set ipsec nexthop <value>

Il parametro <value> dovr coincidere con lindirizzo IP pubblico con il quale il router si affaccia alla rete IP pubblica. Volendo specificare come il router locale si deve presentare per lautenticazione, si usa il comando:
set ipsec local-id <value>

Il parametro <value> pu essere un indirizzo IP o un fully-qualified domain name.

Tiesse

131

IMOLA User Guide - Rev.21 Ver. 001

Se si desidera configurare/disabilitare la modalit Perfect Forward Secrecy delle chiavi, si usa il comando:
set ipsec pfs yes|no

Se si desidera configurare la durata di una connessione, si usa il comando:


set ipsec keylife <value>

dove <value> pu essere un intero seguito da s (tempo in secondi) oppure un numero decimale seguito da m, h o d (tempo in minuti, ore o giorni, rispettivamente). Il valore di default 8 ore. Si possono configurare fino ad 8 tunnel IPsec. Alcuni comandi si possono esprimere in forma ridotta senza specificare il nome del tunnel, sottintendendo il tunnel 0. Per specificare la sottorete locale si usa il comando:
set ipsec [tunnel0| |tunnel7] local-subnet <subnet address>/<subnet prefix length>

Per specificare la sottorete remota si usa il comando:


set ipsec tunnel0| prefix length> |tunnel7] remote-subnet <subnet address>/<subnet

Per specificare il tipo di negoziazione si usa il comando:


set ipsec tunnel0| |tunnel7 negotiation <type>

dove <type> pu essere main o aggressive . Per specificare il protocollo di Internet Key Exchange o IKE (IPsec Phase I) si usa il comando:
set ipsec tunnel0| |tunnel7 ike <protocol>

Per specificare il protocollo di Encapsulating Security Payload o ESP (IPsec Phase si usa il comando:
set ipsec tunnel0| |tunnel7 esp <protocol>

I I)

Per restringere il numero di protocolli e porte ammessi sul tunnel IPsec si usa il comando:
set ipsec tunnel0| |tunnel7 local-proto-port <protocol> set ipsec tunnel0| |tunnel7 remote-proto-port <protocol>

Sono disponibili inoltre una serie di comandi da utilizzare per rimuovere opzioni precedentemente specificate.

132

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set set set set set set set set set set set set set set

ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec

no-secret no-nat-t no-local-end no-local-id no-pfs no-nexthop no-local-end no-remote-end no-remote-id [tunnel0| |tunnel7] no-local-subnet [tunnel0| |tunnel7] no-remote-subnet tunnel0| |tunnel7 no-negotiation tunnel0| |tunnel7 no-ike tunnel0| |tunnel7 no-esp

Una configurazione single-tunnel IPsec pu, ad esempio, essere attivata mediante i seguenti semplici comandi CLI:
set set set set set set set set set set set set set ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec interface eth0 local-end 10.10.2.210 local-subnet 172.151.0.0/16 nexthop 10.10.2.211 remote-end 10.10.2.211 remote-subnet 173.151.0.0/16 secret pippo654321 nat-t yes tunnel0 negotiation main tunnel0 ike 3des-md5-modp1024 tunnel0 keyexchange yes auto-on on

Per verificare lo stato di un tunnel IPsec possibile utilizzare il comando:


show interface ipsec

Se il tunnel attivo l'output generato del seguente tipo (Figura 46):


root@Imola> ip link list ipsec0
3 172.151.2.210/32:0 -> 173.151.2.211/32:0 => tun0x1002@172.151.2.210

14: ipsec0: <NOARP,UP> mtu 16260 qdisc pfifo_fast qlen 10 link/ether 00:50:c2:1e:af:04 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 29484 351 0 0 0 0 TX: bytes packets errors dropped carrier collsns 52650 351 0 0 0 0

Figura 46: Esempio di output comando:

ip link list ipsec0

Bench configurato, il tunnel IPsec, cos come il tunnel GRE, non viene attivato automaticamente: la sua attivazione invece demandata ai comandi di trigger oppure di autocmd. Ad esempio, dopo averlo configurato, lIPSec viene attivato nel momento in cui viene stabilita una sessione GPRS:
set trigger gprs up set ipsec on

e analogamente si deattiva quando termina la sessione GPRS:


set trigger gprs down set ipsec off

Tiesse

133

IMOLA User Guide - Rev.21 Ver. 001

TRIGGER IPSEC
E possibile configurare dei trigger che verranno eseguiti nel momento in cui viene stabilita la sessione IPSec con il peer remoto. Ad esempio
set set set set set set set set set set set set set set set set set ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec ipsec interface eth0 local-end 10.10.2.210 local-subnet 172.151.0.0/16 nexthop 10.10.2.211 remote-end 10.10.2.211 remote-subnet 173.151.0.0/16 secret pippo654321 nat-t yes tunnel0 negotiation main tunnel0 ike 3des-md5-modp1024 tunnel0 keyexchange yes auto-on on ipsec ipsec ipsec ipsec up ipstun0 ip route add 173.151.0.0/24 dev ipsec0 up ipstun0 logger r 10.10.2.1 IPSec is up down ipstun0 ip route del 173.151.0.0/24 dev ipsec0 down ipstun0 logger t 10.10.2.1 IPSec is down

trigger trigger trigger trigger

set ipsec on

con i quali si invia un messaggio di syslog per notificare lo stato del tunnel e configurare la rotta verso la rete remota sullinterfaccia ipsc0. In caso di utilizzo di trigger IPSec obbligatorio sia specificare il nome del tunnel cui il trigger si riferisce (ipstun0, ... ipstun7), sia configurare sempre la rotta verso la remote subnet sullinterfaccia ipsec0.

134

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

QUALITY OF SERVICE
INTRODUZIONE
Quality of Service un generico termine dato ai sistemi di accodamento e ai meccanismi attraverso i quali i pacchetti sono ricevuti o trasmessi su un router. Esso comprende le regole di decisione su quali pacchetti accettare, se accettarli e a quale velocit instradarli su una interfaccia e altres su quali pacchetti trasmettere e in quale ordine trasmetterli in uscita dallinterfaccia. La soluzione supportata da Imola offre le seguenti funzionalit:

limita la banda totale disponibile su una interfaccia ad un tasso predefinito (shaping) riserva la banda a particolari tipi di servizio utilizzando meccanismi di classificazione (scheduling) offre percorsi preferenziali a tipologie di traffico sensibili ai tempi di latenza (classes) ridistribuisce la banda in eccesso assicura il dropping dei pacchetti in eccesso (policing)

Sono disponibili due implementazioni. La prima, qos, mette a disposizione una sola classificazione di traffico che definisce tre classi con impostazioni predefinite: RT o Real Time MC o Mission Critical BE o Best Effort

La seconda, qos-ext, permette di definire un numero a piacere di classificazioni di traffico per le quali si possono definire un numero a piacere di classi con caratteristiche diverse. In entrambe le soluzioni la classificazione del traffico avviene secondo la politica di accodamento HTB (Hierarchical Token Bucket), mentre il comportamento di accodamento di tipo FIFO (First In, First Out). E inoltre disponibile il comando Linux tc, con il quale possibile configurare altre politiche di traffico, qualora le implementazioni di Imola non fossero sufficienti a risolvere una problematica di classificazione di traffico.

CLASSIFICAZIONE DEL TRAFFICO MEDIANTE QOS


Configurazione della politica di traffico

Tiesse

135

IMOLA User Guide - Rev.21 Ver. 001

Per stabilire su quale interfaccia applicare le regole di QoS, si usa il comando:


set qos dev <interface>

Per definire la banda o throughput sostenuto dallinterfaccia, espresso in kbits/sec, si usa il comando:
set qos total-rate <value>

Configurazione delle classi Ogni classe deve essere configurata per definire la banda garantita, le regole di classificazione dei pacchetti in ingresso ed eventuali marchiature da applicare ai pacchetti in uscita. Per configurare la banda che la QoS garantisce alla classe si usa il comando:
set qos class <class name> rate <value>

E inoltre possibile specificare la banda massima che la classe pu sostenere e che la QoS pu assegnare alla classe in caso di banda totale inutilizzata, con il comando:
set qos class <class name> max-rate <value>

E possibile specificare il valore del burst, cio del numero di kbits che possono essere inviati dalla classe senza interruzioni:
set qos class <class name> burst <value>

E inoltre possibile specificare il valore del burst quando la banda utilizzata dalla classe supera la banda garantita:
set qos class <class name> cburst <value>

Per classificare il traffico in ingresso alla classe si usano alcuni comandi che stabiliscono delle regole di classificazione. E disponibile una serie di comandi da utilizzare per rimuovere opzioni precedentemente specificate:
set set set set qos qos qos qos class class class class <class <class <class <class name> name> name> name> no-rate no-max-rate no-burst no-cburst

Classificazione del traffico Per classificare il traffico in base ad un IP Precedence, si usa il comando:
set qos class <class name> ipp <value>

136

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per classificare il traffico in base ad un IP Address / Network Address sorgente, si usa il comando:
set qos class <class name> from <subnet addr>/<subnet prefix length>

Per classificare il traffico in base ad un IP Address / Network Address destinazione, si usa il comando:
set qos class <class name> to <subnet addr>/<subnet prefix length>

Per classificare il traffico in base ad un protocollo e una porta sorgente, si usano i comandi:
set qos class <class name> prot <value> set qos class <class name> sport <value>

Per classificare il traffico in base ad un protocollo e una porta destinazione, si usano i comandi:
set qos class <class name> prot <value> set qos class <class name> dport <value>

E disponibile una serie di comandi da utilizzare per rimuovere opzioni precedentemente specificate:
set set set set set set qos qos qos qos qos qos class class class class class class <class <class <class <class <class <class name> name> name> name> name> name> no-prot no-sport no-dport no-ipp no-from no-to

Marcatura del traffico E possibile specificare un valore di IP Precedence da applicare ai pacchetti in uscita dalla classe con il seguente comando:
set qos class <class name> setipp <value>

Per rimuovere la marcatura:


set qos class <class name> no-setipp

Attivazione della Qos Per disattivare le regole di QoS utilizzare il comando:


set qos off

Per disabilitare le regole di QoS utilizzare il comando:


set no-qos

Tiesse

137

IMOLA User Guide - Rev.21 Ver. 001

Visualizzazione della configurazione e statistiche Per verificare la configurazione delle regole di QoS possibile utilizzare il comando:
show qos config

L'output generato del seguente tipo:

root@Imola> show qos config Device: atm0 Total device rate (kbit): 530 RT RT RT RT RT RT MC MC MC MC MC MC BE BE BE BE BE BE class class class class class class class class class class class class class class class class class class DSCP (TOS): 40 source IP address: destionation IP address: IPP vaule: rate (kbit) 240 max rate (kbit) 240 DSCP (TOS): source IP address: destionation IP address: 11.11.11.250 IPP vaule: 16 rate (kbit): 180 max rate (kbit): 530 DSCP (TOS): source IP address: destionation IP address: IPP vaule: 0 rate (kbit): 80 max rate (kbit): 530

Per verificare lo stato delle code (viene evidenziato se sono attive) possibile utilizzare il comando:
show qos status

L'output generato del seguente tipo:


root@Imola> show qos status Quality Of Service active on atm0 interface class class class class class class class class class class class class htb htb htb htb htb htb htb htb htb htb htb htb 1:1 root rate RT parent 1:1 MC parent 1:1 BE parent 1:1 1:1 root rate RT parent 1:1 MC parent 1:1 BE parent 1:1 1:1 root rate RT parent 1:1 MC parent 1:1 BE parent 1:1 530000bit ceil 530000bit burst 95Kb cburst 95Kb prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb 530000bit ceil 530000bit burst 95Kb cburst 95Kb prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb 530000bit ceil 530000bit burst 95Kb cburst 95Kb prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb

138

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per verificare le statistiche relative al traffico gestito dalle code possibile utilizzare il comando:
show qos statistics

L'output generato del seguente tipo:


root@Imola> show qos statistics Quality Of Service active on atm0 interface class htb 1:1 root rate 530000bit ceil 530000bit burst 95Kb cburst 95Kb Sent 1297 bytes 18 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 1202401 ctokens: 1202401 class htb RT parent 1:1 prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 838860 ctokens: 838860 class htb MC parent 1:1 prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 1677721 ctokens: 569792 class htb BE parent 1:1 prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb Sent 1297 bytes 18 pkts (dropped 0, overlimits 0) lended: 18 borrowed: 0 giants: 0 tokens: 1674445 ctokens: 252747

qdisc htb 1: r2q 10 default 30 direct_packets_stat 0 Sent 1297 bytes 18 pkts (dropped 0, overlimits 0) filter parent filter parent Sent 0 bytes filter parent filter parent filter parent 1: protocol ip pref 1 fw 1: protocol ip pref 1 fw handle 0x64 classid RT [truncated police tbf] 0 pkts (dropped 0, overlimits 0) 1: protocol ip pref 2 fw 1: protocol ip pref 2 fw handle 0x12c classid BE 1: protocol ip pref 2 fw handle 0xc8 classid MC

Esempio Le regole di QoS possono, per esempio, essere impostate mediante i seguenti comandi CLI:
set set set set set set set set set qos qos qos qos qos qos qos qos qos dev atm0 total-rate 530 class RT ipp 5 class MC to 11.11.11.250 setipp 2 class BE setipp 0 class RT rate 240 maxrate 240 class MC rate 180 maxrate 530 class BE rate 80 maxrate 530 on

Tiesse

139

IMOLA User Guide - Rev.21 Ver. 001

CLASSIFICAZIONE MEDIANTE QOS ESTESA


Configurazione di una politica di traffico E necessario come prima cosa configurare una politica di traffico:
set qos-ext policy <name>

La politica deve essere associata ad una interfaccia:


set qos-ext policy <name> interface <interface>

E possibile definire la banda massima di traffico consentita per questa politica. Specificare la banda opzionale solo con interfaccia adsl; in questo caso se la banda non viene specificata, viene impostata al valore di banda cui il modem si sincronizzato. Lunit di misura il kbits/sec:
set qos-ext policy <name> bandwidth <value>

E possibile specificare una percentuale di banda disponibile che viene riservata per il traffico non classificato:
set qos-ext policy <name> reserved-bandwidth <value>

E possibile specificare il burst, cio il numero massimo di kbit che la classe root, padre di tutte le classi, pu trasmettere, quando autorizzata a trsmettere:
set qos-ext policy <name> bandwidth burst <value>

E inoltre possibile specificare il valore di burst quando la classe root ha superato la banda garantita e quindi lintero sistema in congestione:
set qos-ext policy <name> bandwidth burst-max <value> Le impostazioni di banda si possono cancellare con uno dei seguenti comandi: set qos-ext class <name> no-bandwidth set qos-ext class <name> no-bandwidth burst set qos-ext class <name> no-bandwidth burst-max

E possibile specificare un valore di quantum, vale a dire quanta banda, in numero di bytes, una classe pu prendere in prestito prima che la QoS ceda il controllo ad unaltra classe:
set qos-ext policy <name> r2q <value>

Una politica di traffico pu essere cancellata con il commando:


set qos-ext no-policy <name>

140

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Configurazione di una classe Per creare una classe sottomettere il seguente comando:
set qos-ext class <name>

E necessario che la classe venga associata ad una policy:


set qos-ext class <name> policy <name>

E necessario specificare la banda garantita per la classe. E possibile indicare un valore assoluto in kbits:
set qos-ext class <name> bandwidth <value>

oppure una percentuale della banda totale disponibile:


set qos-ext class <name> bandwidth percent <value>

E possibile specificare una banda massima, che la classe non pu superare. Se questo valore non specificato, alla classe potr essere assegnata parte o tutta la banda eccedente, compatibilmente con la richiesta di banda da parte delle altre classi configurate:
set qos-ext class <name> bandwidth max <value>

E possibile specificare il burst, cio il numero massimo di kbit che la classe pu trasmettere, quando autorizzata a trasmettere:
set qos-ext class <name> bandwidth burst <value>

E inoltre possibile specificare il valore di burst quando la classe ha superato la banda garantita e usa in prestito la banda ancora disponibile:
set qos-ext class <name> bandwidth burst-max <value>

E possibile specificare che la classe prioritaria con una quantit di banda garantita e che il valore specificato rappresenta anche la massima banda consentita. Tipicamente questa configurazione pu essere utilizzata per classi di tipo real-time:
set qos-ext class <name> priority <value>

I valori di banda possono essere cancellati con uno dei seguenti comandi:
set set set set set qos-ext qos-ext qos-ext qos-ext qos-ext class class class class class <name> <name> <name> <name> <name> no-bandwidth no-bandwidth no-bandwidth no-bandwidth no-bandwidth percent max burst burst-max

Una classe pu essere cancellata con il comando:


set qos-ext no-class <name>

Tiesse

141

IMOLA User Guide - Rev.21 Ver. 001

Classificazione del traffico Per destinare il traffico verso una classe si definiscono uno o pi filtri mediante il seguente comando:
set qos-ext class <name> filter match <options> [chain <value>]

Lopzione chain pu essere specificata per applicare il filtro appena il pacchetto ricevuto sulla interfaccia (pre-routing) oppure dopo che gi stato instradato verso linterfaccia di uscita (post-routing). Se non specificato, si intende pre-routing. Per rimuovere il filtro si usa il comando:
set qos-ext class <name> filter no-match <options>

Per rimuovere solo lopzione di chain:


set qos-ext class <name> filter match <options> no-chain <value>

Per filtrare su un valore di DSCP:


set qos-ext class <name> filter match dscp <value> [chain <value>]

Per filtrare su un valore di IP-precedence:


set qos-ext class <name> filter match ipp <value> [chain <value>]

Per filtrare su un indirizzo ip sorgente:


set qos-ext class <name> filter match src-ip <value> [chain <value>]

Per filtrare su un indirizzo ip di destinazione:


set qos-ext class <name> filter match dst-ip <value> [chain <value>]

Per filtrare su una interfaccia sorgente:


set qos-ext class <name> filter match src-intf <value>

Attenzione: questo filtro si applica solo in pre-routing Per filtrare su una interfaccia di destinazione:
set qos-ext class <name> filter match dst-intf <value>

Attenzione: questo filtro si applica solo in post-routing Per filtrare sul tipo di protocollo:
set qos-ext class <name> filter match prot <value> [chain <value>]

Per filtrare per protocollo e per porta sorgente:


set qos-ext class <name> filter match prot <value> src-port <value> [chain <value>]

142

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per filtrare per protocollo e per porta destinazione:


set qos-ext class <name> filter match prot <value> dst-port <value> [chain <value>]

E possibile specificare che tutto il traffico non filtrato venga destinato ad una classe, specificando tale classe come classe preselezionata:
set qos-ext class <name> default

Infine possibile associare una priorit ai pacchetti che fluiscono attraverso una classe. La priorit espressa con un numero intero positivo; minore il valore, maggiore la priorit. Notare bene: il valore 1 riservato alla classe prioritaria, tutte le altri classi hanno un valore predefinito a 2.
set qos-ext class <name> filter priority <value>

Marcatura del traffico E possibile impostare un valore di DSCP o IP-Precedence a tutti i pacchetti che fluiscono per una classe mediante il seguente commando: Per marcare con un valore di DSCP:
set qos-ext class <name> filter set dscp <value>

Per marcare con un valore di IP-Precedence:


set qos-ext class <name> filter set ipp <value>

Policing E possibile specificare un banda massima di ingresso alla classe:


set qos-ext class <name> filter police <rate>

Il traffico che supera la banda impostata viene sottoposto allazione specificata (al momento solo drop):
set qos-ext class <name> filter police exceed-action drop

Attivazione della QOS Per disattivare le regole di QoS utilizzare il comando:


set qos-ext off

Per disabilitare le regole di QoS utilizzare il comando:


set no-qos-ext

Tiesse

143

IMOLA User Guide - Rev.21 Ver. 001

Visualizzazione della configurazione e statistiche La configurazione della QoS introdotta via CLI pu essere esaminata nelloutput di
show config <option>
set set set set set set set set set set set set set set set set set set qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext qos-ext policy my-policy policy my-policy interface eth1 policy my-policy bandwidth 500 policy my-policy reserved-bandwidth 10 class RT class RT policy my-policy class RT priority 300 class RT filter match ipp 5 class DATA1 class DATA1 policy my-policy class DATA1 bandwidth percent 50 class DATA1 filter match dst-ip 13.13.13.0/24 class DATA1 filter set ipp 2 class DATA2 class DATA2 policy my-policy class DATA2 bandwidth percent 50 class DATA2 filter set ipp 0 on

E possibile visualizzare lo stato della QoS come output del comandi di sistema tc:
show qos-ext status

root@Imola> show qos-ext status class htb 1:1 root rate 500000bit ceil 500000bit burst 1661b cburst 1661b class htb RT parent 1:1 prio 1 rate 300000bit ceil 300000bit burst 1636b cburst class htb DATA1 parent 1:1 prio 2 rate 75000bit ceil 450000bit burst 1608b cbur class htb DATA2 parent 1:1 prio 2 rate 75000bit ceil 450000bit burst 1608b cbur filter filter filter filter filter parent parent parent parent parent 1: 1: 1: 1: 1: protocol protocol protocol protocol protocol ip ip ip ip ip pref pref pref pref pref 1 1 2 2 2 fw fw handle 0x64 classid RT fw fw handle 0x12c classid DATA2 fw handle 0xc8 classid DATA1

Per la visualizzazione delle statistiche disponibile il comando:


show qos-ext statistics

root@Imola> show qos-ext statistics class htb 1:1 root rate 500000bit ceil 500000bit burst 1661b/8 mpu 0b overhead Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 27230 ctokens: 27230 class htb RT parent 1:1 prio 1 quantum 3750 rate 300000bit ceil 300000bit burst Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0

144

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

tokens: 44700 ctokens: 44700 class htb DATA1 parent 1:1 prio 2 quantum 1000 rate 75000bit ceil 450000bit bur Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 175745 ctokens: 30146 class htb DATA2 parent 1:1 prio 2 quantum 1000 rate 75000bit ceil 450000bit bur Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 175745 ctokens: 30146

filter filter filter filter filter

parent parent parent parent parent

1: 1: 1: 1: 1:

protocol protocol protocol protocol protocol

ip ip ip ip ip

pref pref pref pref pref

1 1 2 2 2

fw fw handle 0x64 classid RT fw fw handle 0x12c classid DATA2 fw handle 0xc8 classid DATA1

E infine possibile visualizzare i filtri e le relative statistiche usando il comando:


iptables t mangle L -v

root@Imola> iptables t mangle L -v Chain PREROUTING (policy ACCEPT 1190 packets, 103K bytes) pkts bytes target prot opt in out source destination 0 0 MARK all -- any any anywhere DSCP match 0x05 MARK set 0x64 0 0 ACCEPT all -- any any anywhere DSCP match 0x05 0 0 MARK all -- any any anywhere 13.13.13.0/24 MARK set 0xc8 0 0 ACCEPT all -- any any anywhere 13.13.13.0/24 0 0 DSCP all -- any any anywhere MARK match 0xc8 DSCP set 0x10 0 0 ACCEPT all -- any any anywhere MARK match 0xc8 386 32154 MARK all -- any any anywhere MARK set 0x12c 386 32154 ACCEPT all -- any any anywhere 0 0 DSCP all -- any any anywhere MARK match 0x12c DSCP set 0x00 0 0 ACCEPT all -- any any anywhere MARK match 0x12c Chain INPUT (policy ACCEPT 4792 packets, 407K bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1966 packets, 166K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 1966 packets, 166K bytes) pkts bytes target prot opt in out source destination

anywhere anywhere

anywhere anywhere anywhere anywhere anywhere anywhere

Tiesse

145

IMOLA User Guide - Rev.21 Ver. 001

Esempi Nellesempio seguente viene definita una classe RT, appartenente ad una data policy:
set qos-ext class RT set qos-ext class RT policy ...

Alla classe RT viene garantita una banda pari al 50% della banda disponibile.
set qos-ext class RT bandwidth percent 50

Nella classe fluiscono i pacchetti il cui indirizzo sorgente appartiene alla rete 172.151.1.0:
set qos-ext class RT filter match src-ip 172.151.1.0/24

I pacchetti che fluiscono attraverso la classe vengono evidenziati con un valore di ip precedence pari a 4:
set qos-ext class RT filter set ipp 4

I pacchetti ricevuti su queste rete sono instradati dal router in un tunnel gre; se si desidera che anche il pacchetto gre abbia un valore di ip precedence pari a 4, sufficiente dare la seguente direttiva:
set qos-ext class RT filter match prot 0x2f chain post-routing

Per riservare una porzione di banda al keep-alive del bgp, si pu dichiarare una classe:
set qos-ext class BGP set qos-ext class BGP policy ...

assegnarvi un minimo di banda disponibile:


set qos-ext class BGP bandwidth percent 1

e farvi fluire i pacchetti che hanno come porta di origine e destinazione la porta 179:
set qos-ext class BGP filter match prot tcp src-port 179 chain post-routing set qos-ext class BGP filter match prot tcp dst-port 179 chain post-routing

In questo caso il filtro viene applicato sulla catena di post-routing, poich il pacchetto di keep-alive viene generato dal router essendo un border router.

LIMITAZIONE DELLA BANDA IN OUTPUT


Senza ricorrere alle classi di Traffic Shaping, in alcuni casi pu essere necessario semplicemente limitare il traffico in uscita da un determinata interfaccia di rete. Per questo si usa il comando Linux tc.

146

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Ad esempio, per limitare ad 1 Mbit/sec il traffico in uscita dallinterfaccia eth0, il comando :


tc qdisc add dev eth0 root tbf rate 1000kbit latency 50ms burst 20000

mentre per visualizzare le statistiche si usa:


root@Imola> tc -s qdisc ls dev eth0 qdisc tbf 8003: rate 256000bit burst 20000b lat 48.8ms Sent 573274 bytes 572 pkts (dropped 2, overlimits 720)

Per eliminare la regola di traffic shaping:


tc qdisc del dev eth0 root tbf rate 1000kbit latency 50ms burst 20000

Il comando tc ha effetto immediato per la sessione corrente. Affinch sia valido anche al prossimo restart, deve essere legato ad uno dei trigger oppure pu essere attivato come autocmd:
set autocmd tc qdisc add dev eth0 root tbf rate 1000kbit latency 50ms burst 20000

Tiesse

147

IMOLA User Guide - Rev.21 Ver. 001

VLAN
Imola supporta il protocollo 802.1q che permette di costruire LAN virtuali completamente indipendenti su un solo link fisico. Lheader dei pacchetti LAN viene modificato includendo lindicazione di un tag che identifica la VLAN e un valore di priorit associato al pacchetto. Sono possibili fino a 4096 VLAN diverse, ciascuna delle quali pu avere fino a 8 livelli di priorit. Le porte Ethernet che possono essere configurate come VLAN sono quelle dello switch, cio le porte dalla 1 alla 5. Ogni singola porta pu essere configurata in modalit access o trunk. Modalit access: individua una porta che riceve e trasmette pacchetti senza tag 802.1q, consentendo ad un sistema che non in grado di operare in 802.1q, di partecipare ad una VLan 802.1q. Infatti la porta aggiunge il tag 802.1q ai pacchetti in ingresso e lo estrae, se presente, ai pacchetti in uscita. Il livello di sicurezza configurato per la porta tale che la porta pu comunicare solo con porte appartenenti alla stessa VLan 802.1q, individuata dallidentificativo di VLan che deve essere specificato al momento della configurazione. Modalit trunk, individua una porta che riceve e trasmette frames con tag 802.1q. Il livello di sicurezza tale per cui la porta pu trasmettere e ricevere tutti e solo i pacchetti appartenenti alle VLan configurate.

Per configurare una porta dello switch di Imola ad operare in modalit access si usa il comando:
set switch port ethx mode access

E inoltre necessario associare alla porta un VLan id che verr utilizzato per il tagging dei pacchetti in ingresso:
set switch port ethx vid <value>

Per configurare una porta dello switch di Imola ad operare in modalit trunk si usa il comando:
set switch port ethx mode trunk

In questo caso necessario specificare gli identificativi delle VLan abilitate ad attraversare la porta:
set switch port ethx allow vid <value>

E richiesto un comando per ciascun VLan id abilitato. Affinch la configurazione impostata diventi operativa, si deve dare il comando:
set switch on

148

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Per rimuovere la configurazione di una porta si usa il comando:


set switch no-port ethx

Per rimuovere lintera configurazione dello switch, si usa il comando:


set no-switch

Per visualizzare la configurazione di una porta, si usa il comando:


show switch status [<port-list>]

dove port-list una lista di porte separate da spazio.


root@Imola > show switch status eth1

eth1 VLan id: 1 802.1Q is enabled as Secure mode Port is a member of VLan 100. Frames egress Tagged

Per visualizzare la configurazione di tutte le VLan si usa il comando:


show switch vlan
root@Imola > show switch vlan

02.1Q VLans - VLan Table: DBNum:0, VID:100 eth0:Port is not a member of this VLan. eth1:Port is a member of this VLan. Frames egress Tagged eth2:Port is not a member of this VLan. eth3:Port is not a member of this VLan. cpuPort:Port is a member of this VLan. Frames egress Tagged

Per visualizzare i contatori statistici di una o pi porte si usa il comando:


show switch statistics [<port-list>]

dove port-list una lista di porte separate da spazio.


root@Imola > show switch statistics eth1 Getting counters for eth1. InUnicasts 00000000 InBroadcasts 00000000 InPause 00000000 InMulticasts 00000000 InFCSErr 00000000 AlignErr 00000000 InGoodOctets 00000000 InBadOctets 00000000 Undersize 00000000 Fragments 00000000 In64Octets 00000000 In127Octets 00000000 In255Octets 00000000 In511Octets 00000000 In1023Octets 00000000 InMaxOctets 00000000 Jabber 00000000 Oversize 00000000 InDiscards 00000000 Filtered 00000000 OutUnicasts 00000000 OutBroadcasts 00000000 OutPause 00000000 OutMulticasts 00000000 OutFCSErr 00000000 OutGoodOctets 00000000 Out64Octets 00000000 Out127Octets 00000000 Out255Octets 00000000 Out511Octets 00000000 Out1023Octets 00000000 OutMaxOctets 00000000 Collisions 00000000 Late 00000000 Excessive 00000000 Multiple 00000000 Single 00000000 Deferred 00000000 OutDiscards 00000000

Tiesse

149

IMOLA User Guide - Rev.21 Ver. 001

Per azzerare tutti i contatori di una porta o di tutte le porte, si usa il comando:
clear_counter switch [<port-list>]

dove port-list una lista di porte separate da spazio. Per configurare una VLan a livello OSI 3 (Network) si usa il comando:
set vlan add vid <vid> interface eth0|eth1

Attenzione: per interfaccia si intende linterfaccia fisica di rete e non linterfaccia associata ad una porta. Per i modelli Imola X2Z0 con Z=2, si pu specificare solo linterfaccia eth0, mentre sugli altri modelli sono disponibili sia eth0 che eth1. Il comando costruisce un VLan device con notazione:
<interfaccia>.<vid>

es. eth0.100, cui possibile associare indirizzo ip e netmask nel seguente modo:
set vlan <vlan-device> ipaddr <value> netmask <value>

Solo sui modelli di Imola X2Z0 con Z=2 disponibile il comando successivo per mappare uno o pi valori di DSCP (Diffserv Code Point) su un valore di COS (Class of Service) trasportato a livello OSI 2 (Data Link) dal protocollo 802.1p:
set vlan <vlan-device> map-to-cos <cos> dscp <dscp_0 ... dscp_7>

Infine, per rimuovere una VLan, si usa il comando:


set vlan rem <vlan-device>

Per rimuovere tutte le VLan, si usa il comando:


set no-vlan

Per visualizzare le VLan configurate e le relative statistiche:


show interface vlan status <vlan-device>

root@Imola > eth0.100

show interface vlan status eth0.100 dev->priv_flags: 1 0 0 0 0 0 0 0 2:0 3:0 4:0 5:0 6:0 7:0

VID: 100 REORDER_HDR: 1 total frames received: total bytes received: Broadcast/Multicast Rcvd:

total frames transmitted: total bytes transmitted: total headroom inc: total encap on xmit: Device: eth0 INGRESS priority mappings: 0:0 1:0 EGRESSS priority mappings: EGRESSS dscp mappings:

150

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

RADIUS
CONFIGURAZIONE PROTOCOLLO RADIUS
Imola supporta lautenticazione e relativo logging mediante protocollo Radius. Le modalit di autenticazione offerte sono le seguenti: locale mediante database user/password interno allImola remota tramite protocollo Radius

In caso di autenticazione Radius abilitata, laccesso da remoto allapparato negato se lutente fornisce login o password errati. In caso di mancata risposta ad una richiesta di autenticazione Radius sar richiesta lautenticazione locale. Per quanto riguarda la configurazione della modalit di autenticazione Radius, i parametri pi significativi sono: lordine con il quale lautenticazione viene effettuata: questultima pu essere local (per autenticazione locale mediante database interno) o radius (autenticazione remota); lindirizzo IP (ed eventuale porta) del Radius Server; lindirizzo IP (ed eventuale porta) dellAccount Server; la chiave mediante la quale la richiesta di autenticazione (prima dellautenticazione di un utente) si dovr presentare al Radius Server.

inoltre attivabile la possibilit di inviare allAccount Server tutti i comandi impostati sulla interfaccia di configurazione CLI dallutente. Lautenticazione mediante Radius Server pu essere effettuata mediante i seguenti comandi CLI:
set set set set set set set set radius radius radius radius radius radius radius radius authhost <IP>[:<port>] [<IP>:<port>] accthost <IP>[:<port>] [<IP>:<port>] authorder radius local log-cli-commands retries 2 timeout 5 secret <IP> <secret> on

Il comando set radius authhost <IP>[:<port>] utilizzato per configurare gli IP address dei Radius Server.

[<IP>:<port>]

viene

Il comando set radius accthost <IP>[:<port>] [<IP>:<port>] viene utilizzato per configurare gli IP address degli Account Server.

Tiesse

151

IMOLA User Guide - Rev.21 Ver. 001

Il comando:
set radius authorder radius local

viene utilizzato per configurare lordine con il quale si dovr consentire lautenticazione. La sequenza contenuta nel comando indica che lautenticazione avverr prima inviando la richiesta di autenticazione in remoto verso il Radius Server, ed eventualmente in locale. Il comando:
set radius log-cli-commands

viene utilizzato per inviare verso gli Account Server tutti i comandi di set impostati sulla interfaccia CLI. Il comando:
set radius retries 2

specifica il numero di tentativi (nel caso in esame pari a 2) per cui la richiesta di autenticazione sar inviata al Radius Server. Il comando:
set radius timeout 5

indica il timeout (in secondi) di attesa per risposta da parte del Radius Server.

152

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLO SNMP
CONFIGURAZIONE PROTOCOLLO SNMP
Per attivare lagente SNMP disponibile il comando:
set snmp on

Per fermare l'agent SNMP viene invece impiegato il comando:


set snmp off

Per fermare l'agent SNMP e disabilitarne la configurazione disponibile il comando:


set no-snmp

Lagent SNMP pu essere attivato su tutte le interfacce di rete oppure in modo da rispondere alle richieste verso prestabiliti indirizzi IP (ad esempio, il solo indirizzo di loopback). Nel primo caso il comando da impostare :
set snmp specific-interface

mentre nel secondo caso:


set snmp no-specific-interface set snmp directive agentaddress 172.16.0.1

Se viene fatto partire l'agent senza operazioni di setup, viene attivata la configurazione di default che prevede la community public di sola lettura, la community tiesseadm di lettura e scrittura, la disabilitazione dell'invio delle trap. Per aggiungere le community disponibile il comando CLI:
set snmp community <value> access ro|rw source [<source_ip> oid <value>]

dove il valore del parametro community deve essere una stringa di caratteri ascii, il valore del parametro source l'indirizzo IP del manager a cui permesso usare questa community, e il valore del parametro oid l'object identifier a cui ristretta questa community. Ad esempio la sequenza di comandi:

Tiesse

153

IMOLA User Guide - Rev.21 Ver. 001

set snmp community notsopublic access ro source <ipaddr> oid system set snmp on

permette laccesso in lettura alla sola porzione di albero sottostante l'object identifier
system tramite la community notsopublic .

Per rimuovere le community disponibile il comando:


set snmp no-community <value> access ro|rw

Per attivare l'invio delle trap standard (ColdStart, AuthenticationFailure) sono disponibili i comandi:
set snmp trapcommunity <value> set snmp traphost <ipaddr>

LinkUp,

LinkDown,

Per configurare con quale community e a quali manager le trap devono essere inviate si impiega, ad esempio, la sequenza di comandi:
set snmp trapcommunity publictrap set snmp traphost 10.1.10.25 set snmp on

La configurazione cos implementata stabilisce che le trap standard vengano inviate al manager di indirizzo 10.1.10.25 sulla porta 162 (di default per la ricezione di trap SNMP) con la community publictrap. Per attivare le trap su tentativi di accesso non autorizzati, occorre eseguire la sequenza di comandi:
set snmp authtrap set snmp on

Per attivare le trap sulle chiamate ISDN, occorre eseguire la sequenza di comandi:
set snmp trap-isdn set snmp on

Per configurare i parametri di controllo sulla generazione e l'invio delle trap, occorre eseguire la sequenza di comandi:
set set set set snmp snmp snmp snmp trap-poll-frequency <value> trap-retries <value> trap-timeout <value> on

Ad esempio la sequenza di comandi:


set set set set snmp snmp snmp snmp trap-poll-frequency 30 trap-retries 5 trap-timeout 10 on

fa s che lo stato delle interfacce venga controllato ogni 30 secondi e che, nel caso in cui i manager destinatari non rispondano, vengano compiuti 5 tentativi di invio, intervallati da un periodo di 10 secondi. 154

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

I valori di default sono :


trap-poll-frequency 20 trap-retries 3 trap-timeout 5

Infine, per disabilitare le community e l'invio di trap sono disponibili i seguenti comandi:
set set set set set snmp snmp snmp snmp snmp no-authtrap no-community <value> access ro|rw no-trapcommunity <value> no-traphost <ipaddr> no-trap-isdn

VISUALIZZAZIONE SNMP
Per visualizzare la sequenza di comandi usati per configurare Imola e quindi anche l'agent SNMP disponibile il comando CLI:
show config current | saved | started

L'output generato conterr una sezione di comandi relativi ai parametri snmp impostati sul router, come segue (Figura 47):

root@Imola> show config current set log remote 10.10.1.212 . . set snmp community public access ro set snmp community tiesseadm access rw set snmp trap-timeout 5 set snmp trap-retries 3 set snmp trap-poll-frequency 30 set snmp no-trap-isdn set snmp on . . Figura 47: Esempio di output comando: show config current

Per visualizzare i valori dei parametri di configurazione SNMP correnti disponibile il comando CLI:
show snmp

Tiesse

155

IMOLA User Guide - Rev.21 Ver. 001

con la seguente visualizzazione (Figura 48):


root@Imola> show snmp SNMP Services are configured. Running pid is 884 SNMP=yes SNMP_SECURITYNAME= SNMP_AUTHPASSPHRASE= SNMP_PRIVPASSPHRASE= SNMP_TRAP_TIMEOUT=5 SNMP_TRAP_RETRIES=3 SNMP_TRAP_POLL_FREQUENCY=30 SNMP_TRAP_ISDN=no SNMPCONF="rocommunity public" SNMPCONF="rwcommunity tiesseadm" SNMPCONF="syslocation Tiesse Farm" SNMPCONF="syscontact Root postmaster@tiesse.

Figura 48: Esempio di output comando:

show snmp

156

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

SYSLOG
CONFIGURAZIONE DELLA FUNZIONALIT DI LOGGING
Imola consente di collezionare i messaggi che riportano lo stato del sistema a mano a mano che si verificano gli eventi. La raccolta dei messaggi di sistema, effettuata mediante il servizio syslog, pu essere effettuata verso un server remoto oppure in locale. Per configurare il servizio di log locale si usa il comando:
set log local

Per configurare il servizio di log remoto si usa il comando:


set log remote <remote-ipaddr>

dove <remote-ipaddr> lindirizzo IP del server di log remoto. Per evitare che il file cresca a dismisura possibile specificarne la massima lunghezza in termini di numero di linee con il comando seguente:
set log max-lines <value>

E possibile inoltre specificare il livello di log con il comando:


set log level <value>

I livelli di log (da 1 a 4) consentono di visualizzare i messaggi di sistema con differenti dettagli:
LOG DESCRIZIONE

livello 1 livello 2 livello 3

livello 4
Tabella 6

applicazioni applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di acl, redirect, source-nat applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di acccess-list, redirect, sourcenat, accessi telnet e ftp, attivazione dialer isdn applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di access-lst, redirect, sourcenat, accessi telnet e ftp, attivazione dialer isdn con messaggi di debug, attivazione link ADSL

E possibile raccogliere i messaggi di log che arrivano solo da una categoria di messaggi con il comando:

Tiesse

157

IMOLA User Guide - Rev.21 Ver. 001

set log facility <facility>

Valori possibili di <facility> sono:


local0 local1 local2 local3 local4 local5 local6 local7

E inoltre possibile specificare il livello di gravit dei messaggi che si desiderano raccogliere con il comando:
set log priority <priority>

I valori possibili di <priority> sono:


debug info notice warning err crit alert emerg

messaggi di debug messaggi informativi messaggi di notifica messaggi di attenzione messaggi di errore messaggi di errore critico messaggi di allerta messaggi di emergenza

Per attivare il servizio di log si deve usare il comando:


set log on

Per disattivare il servizio di log:


set log off

Il logging in locale dei messaggi di sistema pu, per esempio, essere attivato mediante i seguenti comandi CLI:
set set set set log log log log local level 4 max-lines 4000 on

Il logging in remoto dei messaggi di sistema pu essere attivato mediante i seguenti comandi CLI:
set log remote <IP> set log level 4 set log on

158

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

possibile attivare la visualizzazione istantanea del file di log, con il comando:


show log

Se il logging attivo, l'output generato del tipo mostrato in Figura 49 . Per interrompere la visualizzazione dei messaggi, sar necessario premere per una sola volta la combinazione di tasti <Ctrl+C> .
root@Imola> show log Jan 1 06:36:38 localhost syslogd 1.4.1: restart. Jan 1 06:37:12 localhost exiting on signal 15 Jan 1 06:37:14 localhost syslogd 1.4.1: restart. Jan 1 06:37:18 localhost sshd[17904]: log: Closing connection to 10.10.10.19 Jan 1 06:37:26 localhost in.telnetd[17938]: connect from 10.10.10.19 Jan 1 06:37:26 localhost radlogin[17939]: //etc/radiusclient/radiusclient.conf: no authserver specified Jan 1 06:37:30 localhost radlogin[17939]: authentication OK, type local, username root

Figura 49: Esempio di output comando: show log

Tiesse

159

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLO DLSW
INTRODUZIONE
Imola supporta la funzione di Data Link Switching (DLSw), meccanismo di forwarding per le reti IBM SNA basato sul protocollo Switch-to-Switch (SSP) che incapsula le frames SNA in TCP/IP per il trasporto su Internet. Limplementazione segue le specifiche RFC 1795. Prima che il data link switching possa iniziare, deve essere stabilita una connessione TCP/IP tra due estremi DLSw (peers); stabilita la connessione, i due peers si scambiano le capabilities e, a questo punto, entrambi utilizzeranno il protocollo SSP per stabilire dei circuiti sul transport.

CONFIGURAZIONE DLSW
Il peer locale viene definito tramite il suo indirizzo ip, nel seguente modo:
set dlsw local-peer ipaddr <ip address>

E possibile definire alcune propriet aggiuntive per il peer locale. Se si vuole configurare un keepalive tra il peer locale e il suo partner remoto si usa il comando:
set dlsw local-peer keepalive <seconds>

Il valore 0 significa nessun keepalive e corrisponde allimpostazione predefinita. Valori validi sono compresi tra 0 e 1200. Per rimuovere una impostazione di keepalive e tornare cos al valore di default si usa il comando:
set dlsw local-peer no-keepalive

Se si desidera impostare una finestra di controllo del flusso dei pacchetti scambiati tra i due peers (pacing window) come definito in RFC 1795, si usa il comando:
set dlsw local-peer pacing-window <size>

Limpostazione predefinita per tale finestra 20. Valori validi sono compresi tra 1 e 2000. Il peer remoto viene definito tramite il suo indirizzo ip, nel seguente modo:
set dlsw remote-peer ipaddr <ip address>

Al momento della configurazione necessario impostare anche il MAC address dellhost della rete SNA raggiungibile tramite il peer remoto:

160

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set dlsw remote-peer target-mac <mac address>

Il MAC address deve essere introdotto come sequenza di 6 bytes separati dal carattere due punti, hh:kk:xx:yy:ww:zz, usando la notazione esadecimale. E possibile definire un peer di backup per il peer remoto, con il comando:
set dlsw remote-peer backup-peer <ip address>

Per configurare una risorsa che raggiungibile dal peer-locale, si deve usare il comando:
set dlsw icanreach mac-addr <mac address> [ mask <value> ]

Sia il MAC address che la maschera devono essere introdotti come sequenza di 6 bytes separati dal carattere due punti, hh:kk:xx:yy:ww:zz, usando la notazione esadecimale. Quando il router deve decidere la raggiungibilit di un dato MAC address, la maschera viene applicata in and ad esso; se il risultato ottenuto e il MAC address configurato, allora il MAC address raggiungibile. Se si desidera specificare un singolo MAC address, allora la maschera deve essere impostata a ff:ff:ff:ff:ff:ff oppure non specificata, essendo questo il valore preimpostato. E possibile specificare che il MAC address o la famiglia dei MAC address configurati sono gli unici raggiungibili dal peer, usando il comando:
set dlsw icanreach mac-exclusive

Per rimuovere lopzione di esclusivit si usa il comando:


set dlsw icanreach no-mac-exclusive

Per rimuovere un MAC address dalla lista dei MAC address raggiungibili, si usa il comando:
set dlsw <value> ] icanreach no-mac-addr <mac address> [ mask

E inoltre possibile definire una lista di SAP raggiungibili dal peer locale usando il comando:
set dlsw icanreach saps <value> [ <value> ]

I saps devono essere specificati in notazione esadecimale e separati da uno spazio. Tutte le informazioni di raggiungibilit vengono inviate dal DLSw locale al partner remoto al momento dello scambio delle capabilities. In questo modo il partner remoto potr evitare linvio di messaggi esplorativi (Can-u-reach-ex) con la conseguente riduzione di messaggi sulla connessione. Per abilitare le funzionalit di log del DLSw, si usa il comando:

Tiesse

161

IMOLA User Guide - Rev.21 Ver. 001

set dlsw log on

Per definire un livello di log, si usa il comando:


set dlsw log level <value>

Per disabilitare il log:


set dlsw log off

Per attivare il dlsw si usa il comando:


set dlsw on

e per disattivarlo si usa il comando:


set dlsw off

CONFIGURAZIONE IN AMBIENTE DLC IEEE 802.2


In ambiente DLC, essendo la connessione di tipo LAN, necessario configurare su quale interfaccia ethernet del router Imola avviene la connessione DLC:
set dlc net-interface eth0|eth1

Inoltre necessario configurare il MAC address del client, nel seguente modo:
set dlc source-mac <mac address>

Anche in questo caso il MAC address deve essere introdotto come sequenza di 6 bytes separati dal carattere due punti, hh:kk:xx:yy:ww:zz, usando la notazione esadecimale. Al momento della configurazione del peer locale necessario configurare i terminatori locali del data link, uno per ciascun Service Access Point (SAP), con il seguente comando:
set dlsw dlc-binder sap <local sap> remote-sap <remote sap>

Per rimuovere un terminatore locale, si usa il comando:


set dlsw no-dlc-binder sap <local sap> remote-sap <remote sap>

Analogamente per il controllo del log dei binders si usano i comandi:


set dlsw dlc-binder sap <local sap> log on set dlsw dlc-binder sap <local sap> log level <value> set dlsw dlc-binder sap <local sap> log off

162

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

CONFIGURAZIONE IN AMBIENTE SDLC


In ambiente SDLC necessario configurare per la connessione wan il protocollo hdlc:
set wan protocol hdlc

e la modalit operativa V28 (RS-232):


set wan mode v28

E inoltre possibile configurare alcune modalit operative della connessione fisica. Se si desidera impostare un valore di encoding diverso dal valore di default, nrz, si usa il seguente comando:
set cdn encoding nrz|nrzi|fm-mark|fm-space|manchester

e il baud-rate:
set cdn baud-rate <value>

Si deve infine porre in modalit ip-unnumbered linterfaccia hdlc con il seguente comando:
set cdn ipaddr 1.1.1.1

Si procede poi con la configurazione del sdlc. E necessario configurare linterfaccia fisica :
set sdlc interface hdlc0

e lindirizzo fisico della stazione connessa al router:


set sdlc cu addr <address>

Lindirizzo deve essere specificato in notazione esadecimale. Se si desidera cancellare lindirizzo assegnato si usa il comando:
set sdlc cu no-addr <address>

Al momento della configurazione del peer locale del DLSw necessario configurare il terminatore locale del data link associato con il seguente comando:
set dlsw sdlc-binder addr <address>

Poich il DLSw agisce sempre come se connettesse due LAN 802.2, necessario configurare sul binder sdlc le seguenti informazioni aggiuntive: il sap locale e remoto,
set dlsw sdlc-binder addr <address> sap <value> remote-sap <value>

lo xid,

Tiesse

163

IMOLA User Guide - Rev.21 Ver. 001

set dlsw sdlc-binder addr <address> xid <value> type <value>

e il mac address virtuale


set dlsw sdlc-binder addr <address> vmac <mac address>

Il MAC address deve essere introdotto come sequenza di 6 bytes separati dal carattere due punti, hh:kk:xx:yy:ww:00, usando la notazione esadecimale. Si noti che il byte basso deve essere 00. Il mac address associato alla stazione viene costruito partendo dal mac address virtuale cui viene sovrapposto nel byte basso lindirizzo della stazione stessa. Per rimuovere il binder si usa il comando:
set dlsw no-sdlc-binder addr <address>

Per il controllo del log del binder si usano i comandi:


set dlsw sdlc-binder addr <address> log on set dlsw sdlc-binder addr <address> log level <value> set dlsw sdlc-binder addr <address> log off

VISUALIZZAZIONE CONFIGURAZIONE E STATO DSLW


La configurazione del dlsw si pu estrarre dalla configurazione corrente del router, tramite il comando:
show config current
root@Imola > set set set set set set set set set set set set set set set set set set set show config current

dlsw local-peer ipaddr 172.151.113.1 dlsw remote-peer ipaddr 172.151.1.1 dlsw local-peer keepalive 0 dlsw local-peer pacing-window 20 dlsw remote-peer target-mac 00:c0:26:dc:d8:39 dlsw log level 1 dlsw sdlc-binder addr c1 dlsw sdlc-binder addr c1 sap 8 remote-sap 4 dlsw sdlc-binder addr c1 xid 05d15a01 type 2 dlsw sdlc-binder addr c1 vmac 00:c0:26:a1:46:00 dlsw sdlc-binder addr c1 log level 6 sdlc interface hdlc0 sdlc cu addr c1 sdlc log level 1 dlsw on wan protocol hdlc wan mode v28 cdn ipaddr 1.1.1.1 cdn encoding nrz

Per visualizzare lo stato del peer locale e delle sue connessioni si usa il comando:
show dlsw peers

164

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

root@Imola > Peer 172.17.6.221

show dlsw peers state ckts pkts_tx pkts_rx pkts_enq connect time CONNECTED 0 2 2 0 Thu Jan 1 04:50:13 1970

Per visualizzare le capabilities del peer locale si usa il comando:


show dlsw capabilities local
root@Imola > show dlsw capabilities local

Capabilities for peer: 172.17.6.221 Vendor Id DLSW version DLSW release init pacing window tcp connections supported saps MAC Address exclusivity

: : : : : : :

5AB00 1 0 20 1 all 0

analogamente, per visualizzare le capabilities del peer remoto si usa il comando:


show dlsw capabilities
root@Imola > show dlsw capabilities

Capabilities for peer: 10.250.255.1 Vendor Id : 00C DLSW version : 1 DLSW release : 0 init pacing window : 20 tcp connections : 1 supported saps : all MAC Address exclusivity : 1 MAC Address list : [ 400016702000 ffffffffffff ] version string : Cisco Internetwork Operating System Software IOS (tm) 3600 Software (C3640-IS-M), Version 12.2(1), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2001 by cisco Systems, Inc. Compiled Fri 27-Apr-01 03:19 by cmong

Per visualizzare i circuiti stabiliti tra il peer locale e il suo partner remoto si usa il comando:
show dlsw circuits

Tiesse

165

IMOLA User Guide - Rev.21 Ver. 001

root@Imola >

show dlsw circuits remote addr(rsap) 02:00:68:0e:04:00(4 ) state CONNECTED connect Thu Jan 1

Id local addr(lsap) time 0 00:a0:d1:be:4c:a1(4 ) 02:36:56 1970

Flow Control Tx CW:20 Permitted:37 Bytes:85/42 Info Frames:3/3 XID-frames:1/0 UInfo Frames:0/0 Total number of circuits connected = 1

Rx CW:20

Granted:37

La visualizzazione dei circuiti pu essere filtrata in base ad un MAC address, un sap o un id, nel seguente modo:
show dlsw circuits mac < mac address > show dlsw circuits sap < sap > show dlsw circuits id < circuit id >

E infine possibile visualizzare alcune informazioni statistiche sui messaggi SSP scambiati dai peers con il comando:
show dlsw ssp

root@Imola >

show dlsw ssp received transmitted 0 1 1 0 0 1 0 1 1 0 0 1 3 3 2 2

Peer:172.17.6.221 CANUREACH_cs - circuit start ICANREACH_cs - circuit start REACH_ACK - reach acknowledgment XIDFRAME - XID frame CONTACT - contact remote station CONTACTED - remote station contacted INFOFRAME - information (I) frame CAP_EXCHANGE - capabilities exchange Last SSP Received: INFOFRAME Last SSP Sent: INFOFRAME

ESEMPIO DI USO
La configurazione del dlsw si pu estrarre dalla configurazione corrente del router. Senza perdere in generalit si fa riferimento allo scenario del seguente diagramma:

166

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

MAC address 00:0A:0B:0C:0D:0E

Host

CED

DLC

Router SSP

Remote Peer 10.160.1.1

SSP Imola
Local Peer 10.10.0.1

DLC

Sede Periferica
Client
MAC address 00:0A:01:02:03:04

Esso prevede:

Un router Imola DLSw collegato in periferia alla rete LAN dei dispositivi di servizio. Lindirizzo IP assegnato 10.10.0.1. Un router generico DLSw che collega la LAN del CED alla rete internet. Lindirizzo 10.160.0.1 Un client, con MAC address 00:0A:01:02:03:04, che colloquia via DLC con lhost remoto Un Host, con MAC address 00:0A:0B:0C:0D:0E, che risponde alle richieste remote via DLC

Configurazione Su Imola vengono eseguiti i seguenti comandi per attivare la connessione DLSw tra i due peers e verificarne il funzionamento:
set set set set dlsw dlsw dlsw dlsw local-peer ipaddr 10.10.0.1 remote-peer ipaddr 10.160.1.1 remote-peer target-mac 00:0A:0B:0C:0D:0E on

Per verificare il funzionamento:


show dlsw peers show dlsw capabilities local show dlsw capabilities

DLSW TCP/IP

internet

Tiesse

167

IMOLA User Guide - Rev.21 Ver. 001

Attivazione e verifica dei circuiti Lattivazione di un circuito avviene in seguito ad uno scambio di messaggi DLC tra il client e lhost che, a sua volta, genera uno scambio di messaggi SSP tra i partner DLSw. Client
Test req

Local DLSw
Can U Reach Ex

Remote DLsw

Host
Test req

Test res

I Can Reach Ex

Test res

XID

Can U Reach Cs

I can Reach Cs

Reach ACK

XID

XID

SABME

Contact

SABME

UA

Contacted

UA

Per visualizzare i circuiti gi stabiliti, si utilizza il comando:


show dlsw circuits

Per visualizzare i messaggi scambiati dai DLSw, si utilizza il comando:


show dlsw ssp

Quando il circuito stabilito i frames fluiscono attraverso di esso: Client


Info

Local DLSw
Info

Remote DLsw
Info Info

Host

168

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

NTP
CONFIGURAZIONE DEL PROTOCOLLO NTP
Mediante il protocollo NTP possibile impostare e mantenere il clock di sistema in sincronia con i time servers configurati. Il protocollo NTP presente su Imola supporta limplementazione del Simple Network Time Protocol version 4 (RFC2030) e del Network Time Protocol version 3 (RFC 1305). Per configurare gli indirizzi IP dei server NTP che si desidera utilizzare per lallineamento della data di sistema si usa il comando:
set ntp <IP>

Per configurare il servizio ntp si usa il comando:


set ntp on

Per disabilitare il servizio ntp si usa il comando:


set ntp off

Sono inoltre disponibili alcuni comandi a supporto del servizio. Per forzare lallineamento della data di sistema al server NTP si usa il comando:
rdate s <IP>

Per visualizzare la data di sistema del server NTP si usa il comando:


rdate -p <IP>

Per visualizzare la data del sistema locale si usa il comando:


show date

E buona norma attivare il servizio NTP quando diventa attiva la connessione remota. Ad esempio, nel caso in cui la connessione avvenga via adsl, si deve programmare il seguente trigger:
set trigger adsl up set ntp on

TRIGGER NTP
E possibile programmare dei trigger eseguiti nel momento in cui il router sincronizza la data con il server NTP. Ad esempio:
set trigger ntp up logger Router has been synchronized

Tiesse

169

IMOLA User Guide - Rev.21 Ver. 001

PROTOCOLLO DHCP
CONFIGURAZIONE DEL SERVIZIO DHCP
possibile, per le interfacce ethernet eth0 e eth1, impostare il servizio DHCP Server mediante il comando:
set udhcp interface eth0|eth1

Per specificare il range degli indirizzi IP a disposizione del DHCP server si usano i seguenti comandi:
set udhcp start-address <ip address> set udhcp end-address <ip address>

Per specificare il tempo di validit dellindirizzo assegnato si usa il comando:


set udhcp lease-time <value>

Sono disponibili inoltre alcuni comandi per configurare informazioni che il DHCP server passa al client insieme allindirizzo assegnato. Per specificare una subnet:
set udhcp subnet <netmask>

Per specificare un router/gateway:


set udhcp router <ip address>

Per specificare uno o pi server DNS:


set udhcp dns <ip address> <ip address>

Per specificare uno o pi WINS server, nel caso di Windows clients:


set udhcp wins <ip address> <ip address>

Qualora si desideri impostare una opzione non prevista dai comandi nativi della CLI prevista la possibilit di introdurla con il comando:
set udhcp directive <directive>

Ad esempio, volendo specificare un dominio da passare al client, si pu dare il seguente comando:


set udhcp directive option domain local

Per l'attivazione del server DHCP si usa il comando:


set udhcp on

170

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

mentre il comando:
set udhcp off

disattiva il servizio DHCP Server. Sono infine disponibili i comandi per rimuovere le opzioni precedentemente impostate:
set set set set set udhcp udhcp udhcp udhcp udhcp no-router no-subnet no-wins no-dns no-directive <directive>

Infine con:
set no-udhcp

il servizio DHCP Server viene disattivato e la relativa configurazione rimossa. Esempio:


set set set set set set set set udhcp udhcp udhcp udhcp udhcp udhcp udhcp udhcp interface eth0 start-range 172.151.1.1 end-range 172.151.1.100 router 172.151.10.10 dns 172.151.113.50 lease-time 6000 subnet 255.255.0.0 on

SERVIZIO DHCP RELAY AGENT


E supportata anche la funzionalit di DHCP Relay per permettere ai client collegati in LAN di ricevere i parametri di rete da un server DHCP dislocato in una rete esterna e raggiungibile attraverso Imola. Il comando per attivare tale funzionalit dhcrelay: esso deve essere eseguito come trigger di qualche evento oppure come autocmd per attivarlo al bootstrap del router. Ad esempio per attivare il comando quando il router diventa Master vrrp:
set trigger vrrp up dhcrelay -i eth0 -i tgprs0 172.16.10.10

oppure per attivare il comando allo startup del router:


set trigger autocmd dhcrelay -i eth0 -i tgprs0 172.16.10.10

Tiesse

171

IMOLA User Guide - Rev.21 Ver. 001

VISUALIZZAZIONE DEL SERVIZIO DHCP


Per visualizzare lo stato del servizio DHCP Server si usa il comando:
show udhcp
root@IMOLA> show udhcp UDHCP Daemon is active. Running pid is 26034 # udhcpd configuration file start 172.151.113.10 end 172.151.113.20 interface eth1 option router 172.151.113.1 option subnet 255.255.0.0 option dns 151.99.0.100 151.99.125.2 lease_file /var/state/dhcp/dhcpd.leases auto_time 30 notify_file dumpleases Mac Address IP-Address 00:c0:49:f2:30:69 172.151.113.10 Expires in 9 days, 23 hours, 59 minutes, 30 seconds

172

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

TIMEZONE
CONFIGURAZIONE DEL TIMEZONE O FUSO ORARIO
Mediante apposito comando CLI possibile configurare il timezone su Imola. I timezone configurabili sono:
CET GMT GMT+0 GMT+1 GMT+10 GMT+11 GMT+12 GMT+2 GMT+3 GMT+4 GMT+5 GMT+6 GMT+7 GMT+8 GMT+9 GMT-0 GMT-1 GMT-10 GMT-11 GMT-12 GMT-13 GMT-14 GMT-2 GMT-3 GMT-4 GMT-5 GMT-6 GMT-7 GMT-8 GMT-9 GMT0 Greenwich MET UCT UTC Universal WET Zulu

Il timezone corretto per l'Italia GMT-1 d'inverno e GMT-2 d'estate, rispettivamente per l'ora solare e per l'ora legale. In alternativa si possono utilizzare MET o CET (Middle o Central Europe Time), che in aggiunta consentono di effettuare il passaggio automatico ora legale/ora solare. La configurazione dei timezone pu essere effettuata mediante i seguenti comandi CLI:
set timezone <TZ> set timezone on

Per verificare il timezone attivo possibile utilizzare il comando CLI:


show date

il cui output del seguente tipo (Figura 50):


root@Imola> show date Mon Oct 10 11:52:15 GMT-1 2005 Figura 50: Esempio di output comando: show date

Tiesse

173

IMOLA User Guide - Rev.21 Ver. 001

TRIGGER: GESTIONE ED ATTIVAZIONE EVENTI


TRIGGER O COMANDI DA ATTIVARE DOPO UN EVENTO
A seguito di un determinato evento possibile lattivazione di trigger o comandi di sistema. Normalmente lesecuzione di un trigger demandata alla attivazione o disattivazione di una interfaccia oppure al verificarsi di un dato evento ad esse legato. Gli eventi sui quali possibile attivare dei trigger sono sostanzialmente legati allo stato operativo di una qualsiasi interfaccia di rete: adsl eth0 eth1 gprs gre isdn pptp

Mentre possibile attivare dei trigger al momento di attivazione dei servizi: ntp rtg vrrp backup timer-tick gprs-tc dhcp client openvpn ipsec

Per esempio: linterfaccia ADSL pu venire attivata in un momento successivo allaccensione dellImola: se al momento dellattivazione di tale interfaccia lutente desidera attivare il servizio bgp dovr configurare un trigger come nel seguente esempio:
set trigger adsl up set bgp on

Allo stesso modo se al momento della disattivazione della interfaccia ADSL lutente desidera disattivare il servizio bgp dovr configurare il trigger :
set trigger adsl down set bgp off

174

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

Analogamente, al momento dellattivazione dellinterfaccia GPRS potrebbe essere necessario attivare effettuare un cambio delle rotte statiche:
set trigger gprs up ip route del 4.4.4.0/24 dev eth0 set trigger gprs up ip route add 4.4.4.0/24 dev ppp0

e viceversa:
set trigger gprs up ip route del 4.4.4.0/24 dev ppp0 set trigger gprs up ip route add 4.4.4.0/24 dev eth0

Da notare nellesempio che al posto di set route e set no-route, per eliminare e aggiungere le rotte stato utilizzato il comando ip, infatti questo state-less, cio non modifica la configurazione del router. Lo stato di backup pu essere attivato mediante verifica della raggiungibilit di un indirizzo remoto. Ad esempio:
set set set set backup backup backup backup check-interval 5 check-retries 3 check-wait 1 checking-ipaddress 10.10.1.1 via icmp through-interface atm0

Ogni 5 secondi viene mandato un messaggio di icmp request (ping) all'indirizzo 10.10.1.1: se entro 1 secondo e per 3 volte consecutive non si ha risposta, il router attualizza lo stato di backup, cio il router entra nello stato di backup. Oltre al protocollo icmp request inoltre possibile utilizzare il protocollo BFD-light:
set backup checking-ipaddress 10.10.1.1 via bfd through-interface atm0

Mediante appositi trigger, al passaggio allo stato di backup possono essere attivate delle azioni, ad esempio:
set trigger backup up set gprs on set trigger backup up set rip on

Una volta entrato nello stato di backup, Imola continua a controllare la raggiungibilit dellindirizzo IP specificato e quando questo nuovamente disponibile si rientra dallo stato di backup, eseguendo delle azioni programmate, ad esempio:
set trigger backup off set rip off set trigger backup off set gprs off

Per esempio possibile manipolare e controllare la configurazione VRRP del router:


set backup checking-ipaddress 1.1.1.1 via icmp through-interface eth0 set trigger backup up set vrrp priority 150 set trigger backup up set vrrp on set trigger backup down set vrrp priority 100 set trigger backup down set vrrp on

Tiesse

175

IMOLA User Guide - Rev.21 Ver. 001

con tali comandi nel momento in cui Imola entra nello stato di backup, cio lindirizzo specificato non raggiungibile, aumenta la priorit del protocollo VRRP diventando di fatto Master VRRP e quindi il default gateway della rete (vedi paragrafo VRRP). Un modo molto utile di programmare il router Imola per l'esecuzione di azioni ripetute a cadenze temporali prefissate costituito dallimpiego del trigger timertick. Per limpiego di questo comando deve essere preliminarmente specificata la frequenza temporale (in secondi) con cui il router genera levento timer-tick .
set timer-tick 3600

Alla rilevazione di ognuno di questi eventi, pu essere programmata lesecuzione periodica di un comando CLI, mediante la seguente sintassi:
set trigger timer-tick <command>

E possibile attivare lesecuzione di un comando CLI condizionatamente alla disponibilit dellinterfaccia tunnel GRE9. Ad esempio, se al momento in cui tale tunnel sar attivo lutente desiderasse attivare una rotta indispensabile per la comunicazione, dovr allora configurare un trigger simile al seguente:
set trigger gre up ip route add 10.1.10.0/24 via 10.10.254.1

Allo stesso modo, al momento della disattivazione del tunnel GRE, lutente potr cancellare la stessa rotta mediante il seguente trigger:
set trigger gre down ip route del 10.1.10.0/24 via 10.10.254.1

Un altro interessante impiego della funzionalit trigger la programmazione di azioni in relazione allevento traffic control, relativamente al quale, le azioni saranno condizionate al controllo del traffico in ingresso ed in uscita sull'interfaccia GPRS e ISDN. In tal caso i comandi verranno usati in concomitanza del comando set trigger gprs-tc per linterfaccia GPRS e set trigger isdn-tc per quella ISDN. I seguenti esempi ne chiariranno il modo di impiego.
set set set set set set gprs traffic-control input-threshold 10000 gprs traffic-control output-threshold 20000 gprs traffic-control mode or gprs traffic-control timer-unit 60 trigger gprs-tc up logger -h 192.168.2.1 GPRS Traffic is too High trigger gprs-tc down logger -h 192.168.2.1 GPRS Traffic is at normal rate

set trigger gprs on set gprs traffic-control on set trigger gprs off set gprs traffic-control off

In tal modo il controllo del traffico avr inizio con l'attivazione della sessione GPRS e verr disattivato quando la sessione terminer. Si imposta un valore di soglia di 10K per il traffico in ingresso ed un valore di 20K per il traffico in uscita. Il controllo si effettua ogni 60 secondi. Se in 60 secondi il
La disponibilit del tunnel GRE controllata solo e soltanto se al momento della definizione del tunnel stato configurato il meccanismo di keep-alive.
9

176

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

traffico in ingresso oppure quello in uscita supera il valore di soglia impostato viene eseguito il comando specificato dal trigger set gprs-tc up , che invia un messaggio di log verso un determinato Host. Viceversa, se in 60 secondi il traffico inferiore ai valori di soglia viene eseguito il comando specificato dal trigger set trigger gprs-tc down .
set set set set set set isdn traffic-control input-threshold 60000 isdn traffic-control output-threshold 60000 isdn traffic-control mode or isdn traffic-control timer-unit 10 trigger isdn-tc up isdnctrl addlink ippp1 trigger isdn-tc down isdnctrl removelink ippp1

set trigger isdn on set isdn traffic-control on set trigger isdn off set isdn traffic-control off

In tal modo il controllo del traffico avr inizio con l'attivazione della sessione GPRS e verr disattivato quando la sessione terminer. Si imposta un valore di soglia di 60Kbyte per il traffico in ingresso e per quello in uscita. Il controllo si effettua ogni 10 secondi. Se in 10 secondi il traffico in ingresso oppure quello in uscita supera il valore di soglia impostato viene eseguito il comando specificato dal trigger set isdn-tc up , che attiva il secondo canale isdn (preventivamente configurato in MLPPP). Viceversa, se in 10 secondi il traffico inferiore ai valori di soglia viene eseguito il comando specificato dal trigger set trigger isdn-tc down .

CONTROLLO STATO OPERATIVO INTERFACCE DI RETE


Il comando ifstate-mon verifica periodicamente lo stato di uninterfaccia di rete, mentre il comando set trigger ifstate up|down permette di specificare le azioni da eseguire in base allo stato dellinterfaccia controllata. Ad esempio, mediante la sequenza di comandi:
ifstate-mon i 5 pvc0 set trigger ifstate down pvc0 ip route del 7.7.8.8 dev pvc0 set trigger ifstate down pvc0 ip route add 7.7.8.8 dev eth1 set trigger ifstat up pvc0 ip route del 7.7.8.8 dev eth1 set trigger ifstate up pvc0 ip route add 7.7.8.8 dev pvc0

si controlla ogni 5 secondi lo stato dellinterfaccia pvc0 (Frame relay). Quando questo down si eseguono le azioni specificate mediante i due comandi: set trigger ifstate down pvc0. Quando lo stato del PVC attivo si eseguono le azioni specificate mediante i due comandi: set trigger ifstate pvc0.

Tiesse

177

IMOLA User Guide - Rev.21 Ver. 001

CONTROLLO OCCUPAZIONE DELLA CPU


Il comando cpustate-mon verifica periodicamente la percentuale di occupazione della cpu e permette di definire due soglie che, quando vengono attraversate, generano un evento a fronte del quale possono essere codificate delle azioni. La sintassi la seguente:
cpustate-mon [ i <interval> ] -h <rising threshold> -r <rising interval> [ -l <falling threshold> -f <falling interval> ]

dove: lopzione i specifica lintervallo di campionamento delloccupazione di cpu. Se non specificato, il controllo viene effettuato ogni 5 secondi lopzione h definisce la soglia massima che, se superata per un tempo pari allintervallo specificato con lopzione r, scatena levento. Tale soglia viene espressa come un valore percentuale compreso tra 1 e 100. lopzione l definisce la soglia minima che, se loccupazione di cpu ne rimane al di sotto per un tempo pari allintervallo specificato con lopzione f, scatena levento. Tale soglia viene espressa come un valore percentuale compreso tra 1 e 100. Se questa opzione non indicata, la soglia minima viene impostata uguale alla soglia massima. Levento generato a fronte del superamento delle soglie viene codificato nel seguente modo:
set trigger cpu-threshold rise <comando> set trigger cpu-threshold fall <comando>

Ad esempio, per codificare una notifica snmp dellevento si usa la seguente sintassi:
set trigger cpu-threshold rise sendtrap cpuThresholdRise <host> <community> set trigger cpu-threshold fall sendtrap cpuThresholdFall <host> <community>

178

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

MECCANISMI DI ATTIVAZIONE BACKUP


Il servizio di backup viene realizzato combinando opportunamente i comandi:
set backup <opzioni> set trigger backup <opzioni>

Questi comandi sono presenti a partire dalla versione software 1.0.9. Nelle versioni precedenti sono presenti i comandi:
set adsl backup set adsl extbackup

che sono stati mantenuti per compatibilit anche nella versione attuale.

COMANDO SET BACKUP


Il comando set backup viene usato per definire il criterio che verifica la disponibilit del collegamento principale, mentre il comando set trigger backup permette di programmare delle azioni che verranno eseguite quando Imola entra nello stato di backup (cio quando Imola rileva che il collegamento principale non disponibile), e delle azioni da eseguire quando Imola ritorna dallo stato di backup (cio quando il collegamento primario nuovamente disponibile). La disponibilit del collegamento principale viene verificata utilizzando uno dei seguenti criteri, cui corrisponde una determinata forma del comando set backup: 1. Invio periodico di un pacchetto di tipo icmp-echo-request (ping) verso un determinato indirizzo IP attraverso una determinata interfaccia di rete. Il comando necessario :
set backup checking-ipaddress a.b.c.d via icmp through-interface <ifname>

Il collegamento principale viene dichiarato non disponibile se non viene ricevuto alcun pacchetto di tipo icmp-echo-reply dopo N tentativi di trasmissione. Il numero di tentativi, il tempo di attesa della risposta ad ogni tentativo e lintervallo tra un gruppo di tentativi e il successivo sono configurabili mediante i comandi:
set backup check-retries N set backup check-wait T1 set backup check-interval T2

La sequenza di pacchetti icmp continua ad essere trasmessa sullinterfaccia specificata e il collegamento principale viene dichiarato disponibile non appena si ottiene una risposta. Mediante il comando:
set backup check-tos N

Tiesse

179

IMOLA User Guide - Rev.21 Ver. 001

possibile specificare il valore da inserire nel campo Type of service (TOS) dei pacchetti trasmessi. E possibile definire una lista di interfacce su cui effettuare la verifica mediante il comando:
set backup checking-ipaddress a.b.c.d via icmp through-interface <ifn1,ifn2 .. ifnN>

In questo caso i pacchetti incmp vengono inviati verso lindirizzo a.b.c.d utilizzando linterfaccia ifn1, in caso di fallimento si inviano i pacchetti utilizzando linterfaccia ifn2. La linea primaria viene dichiarata indisponibile se lindirizzo IP non raggiungibile mediante alcuna delle interfacce specificate. E possibile definire una lista di ipaddress cui spedire i pacchetti di tipo icmp:
set backup checking-one-of-ipaddr-list ip1,ip2, ipN via icmp through-interface <ifname>

In tal caso il backup viene attivato se nessuno degli indirizzi della lista risponde ai comandi di icmp. Anche in questo caso possibile specificare una lista di interfacce:
set backup checking-one-of-ipaddr-list ip1,ip2, ipN via icmp through-interface <ifn1,ifn2 ifnN>

Attraverso linterfaccia ifn1 si tenta di raggiungere uno degli indirizzi della lista. Se nessuno risponde si utilizza linterfaccia ifn2 e cosi via. Inoltre possibile utilizzare la variante:
set backup checking-all-in-ipaddr-list ip1,ip2, ipN via icmp through-interface <ifname>

ed attivare il backup se almeno uno degli indirizzi della lista non risponde ai comandi di ping.

2. Invio periodico di un pacchetto di tipo BFD-Light (bfdping) attraverso una determinata interfaccia di rete e diretto ad un indirizzo locale di Imola. Il comando necessario :
set backup checking-ipaddress <locipadr> via bfd through-interface <ifname>

Il collegamento principale viene dichiarato non disponibile se il pacchetto spedito non viene ricevuto dopo N tentativi di trasmissione. Il numero di tentativi, il tempo di attesa della risposta ad ogni tentativo e lintervallo tra un gruppo di tentativi e il successivo sono configurabili mediante i comandi:
set backup check-retries N

180

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

set backup check-wait T1 set backup check-interval T2

La sequenza di pacchetti bfd continua ad essere trasmessa sullinterfaccia specificata e il collegamento principale viene dichiarato disponibile non appena si ottiene una risposta. Mediante il comando:
set backup check-tos N

possibile specificare il valore da inserire nel campo Type of service (TOS) dei pacchetti trasmessi. 3. Verifica dello stato operativo (IfOperStatus) di uninterfaccia di rete specificata. Il comando necessario :
set backup checking-interface <ifname>

Il collegamento principale viene dichiarato non disponibile se lo stato operativo dellinterfaccia down. La frequenza di verifica dello stato dellinterfaccia viene specificata mediante il comando:
set backup check-interval T

4. Verifica della presenza di tabelle di routing acquisite dinamicamente per mezzo di un protocollo di routing. Il comando :
set backup checking-dynamic-routes via ospf|bgp|rip through-interface <ifname>

La frequenza di verifica della disponibilit delle rotte dinamiche viene configurata con il comando:
set backup check-interval T

COMANDO SET TRIGGER BACKUP


Non appena il criterio configurato non viene pi soddisfatto vengono eseguite tutte le azioni specificate mediante il comando:
set trigger backup up <action>

dove <action> pu essere un qualsiasi comando CLI oppure un qualsiasi comando Linux supportato da Imola. Una sequenza di azioni viene configurata mediante una sequenza di comandi:
set trigger backup up <action1> set trigger backup up <action2> set trigger backup up <actionN>

Tiesse

181

IMOLA User Guide - Rev.21 Ver. 001

Mentre Imola si trova nello stato di backup, il criterio continua ad essere verificato e quando questo di nuovo soddisfatto vengono eseguite tutte le azioni preventivamente specificate con il comando:
set trigger backup down <action>

182

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

ROUTING AVANZATO E BACKUP


Si consideri il seguente scenario come esempio:

ADSL
1.1.1.2 3.3.3.2

GPRS

atm0

ppp0

1.1.1.1

3.3.3.1

10.10.0.0/16

10.10.10.11

10.10.10.12

dove senza perder in generalit, si assume che: lindirizzo 1.1.1.1 associato allinterfaccia atm0 di Imola e 1.1.1.2 il nexthop lindirizzo 3.3.3.1 associato allinterfaccia ppp0 di Imola e 3.3.3.2 il nexthop la rete raggiungibile attraverso linterfaccia atm0 ADSL la rete raggiungibile attraverso linterfaccia ppp0 GPRS sulla LAN interna sono collegati due host con indirizzi rispettivamente 10.10.10.11 e 10.10.10.12. possibile raggiungere indirizzi esterni indifferentemente attraverso la rete ADSL oppure attraverso la rete GPRS. Si prevedono tre differenti configurazioni: split access load balancing backup descritte di seguito.

Tiesse

183

IMOLA User Guide - Rev.21 Ver. 001

SPLIT ACCESS
Si vuole separare il traffico proveniente dai due PC, in particolare il traffico proveniente da 10.10.10.11 deve essere inoltrato da Imola su rete ADSL, cio sullinterfaccia atm0, mentre il traffico originato da 10.10.10.12 deve essere inoltrato su interfaccia ppp0 e quindi su rete GPRS. Per tale scopo si applicano i seguenti comandi:
ip rule add from 10.10.10.11/32 table 11 ip rule add from 10.10.10.12/32 table 22 ip route add default via 1.1.1.2 dev atm0 table 11 ip route add default via 3.3.3.2 dev ppp0 table 22

dove i primi due comandi servono a creare due differenti tabelle di routing: una per i pacchetti provenienti da 10.10.10.11/32 e laltra per i pacchetti provenienti da 10.10.10.12, mentre i secondi stabiliscono le rotte di instradamento in funzione della tabella di routing. Come gi esaminato nei capitoli precedenti, un metodo pi sofisticato consiste nel combinare il comando iptables ed il comando ip. Ad esempio, tutti i pacchetti provenienti da 10.10.10.11 e diretti alla porta 8899 devono essere instradati su rete GPRS, tutti gli altri su rete ADSL:
iptables t mangle A PREROUTING p tcp dport 8899 s 10.10.10.11/32 j MARK set-mark 0x22 ip rule add fwmark 0x22 table 22 ip route add default via 3.3.3.2 dev ppp0 table 22 ip route add default via 1.1.1.2 dev atm0

LOAD BALANCING
I pacchetti in uscita dal router Imola devono essere trasmessi in modalit round-robin su entrambe le due interfacce di rete:
ip route add default scope global nexthop via 1.1.1.2 dev atm0 weight 1 nexthop via 3.3.3.2 dev gprs weight 1

A causa del meccanismo di caching delle rotte, il bilanciamento del traffico potrebbe non essere distribuito in maniera uniforme sulle due interfacce.

184

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

BACKUP
Si vuole usare la rete ADSL come collegamento principale e la rete GPRS come collegamento di backup per raggiungere la destinazione 172.16.0.0/16. Sulla rete ADSL attivo il protocollo dinamico RIP mediante il quale vengono acquisite le destinazioni remote, mentre sulla rete GPRS configurata una rotta statica con peso minore rispetto a quella acquisita mediente rip. Di seguito la configurazione:
set autocmd ip route add 172.16.0.0/16 via 3.3.3.2 dev ppp0 proto kernel metric 20

set set set set

rip rip rip rip

network 1.1.1.0/30 directive route 10.10.0.0/16 directive redistribute static on

In questo caso non stato necessario utilizzare il meccanismo di trigger in quanto abbiamo assunto che linterfaccia GPRS sia attiva allo startup del router. Viceversa, volendo attivare la connessione GPRS solo in caso di assenza di rotte dinamiche acquisite via ADSL, la sequenza di comandi :
set backup checking-dynamic-routes via rip through-interface atm0 set trigger backup up set gprs on set trigger backup down set gprs off set trigger gprs up ip route add 172.16.0.0/16 dev ppp0 proto kernel

dove con il primo comando si stabilisce il meccanismo di controllo della rete ADSL: quando non arrivano pi annunci RIP si attiva la connessione GPRS, e quando la connessione GPRS diventa attiva si configura la rotta statica verso la destinazione 172.16.0.0/16. Da notare che in questo caso non stato necessario impostare la metrica in quanto le rotte statiche e quelle acquisite via RIP sono mutuamente esclusive.

Tiesse

185

IMOLA User Guide - Rev.21 Ver. 001

SCRIPT
Il comando script permette la creazione, la modifica, la visualizzazione, il salvataggio e lesecuzione di uno script di comandi Linux. L'esecuzione pu essere effettuata in modalit sincrona oppure in background. Sar possibile creare o modificare gli script mediante il comando script edit <nome_file>, come nel seguente esempio:
script edit run_service.sh

Per la creazione e la modifica dei file viene attivato leditor vi di Linux. La visualizzazione ottenuta dal precedente comando di esempio sar la seguente:
#!/bin/sh ~ ~ ~ : : ~ "/scripts/run_service.sh " line 1 of 1 --100%-Figura 51: Creazione, editing file di script Linux

Con il comando script show verr mostrato il contenuto di uno script. Ad esempio, il comando:
script show run_service.sh

produce una visualizzazione del seguente tipo:


root@Imola> script show run_service.sh #!/bin/sh usage (){ echo "USAGE: $0 <command> <n_times> <delay>" } if ! [ $# -eq 3 ]; then usage : : Figura 52: Esempio di output comando: script show

Con il comando script delete <nome_file> sar possibile cancellare uno script da eliminare, mentre per salvare lo script, ai fini di permetterne la preservazione anche dopo lo spegnimento del router, opportuno utilizzare il comando script save <nome_file>, come nel prossimo esempio:
script save run_service.sh

186

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

L'esecuzione di uno script precedentemente composto, pu avvenire in modo manuale (in modalit sincrona oppure con esecuzione in background), mediante i comandi:
script run-sync <nome_file> script run-backg <nome_file>

oppure lo script pu essere lanciato in associazione ad un evento specificato mediante il comando set trigger. Seguono i relativi esempi per lesecuzione manuale:
script run-sync run_service.sh script run-backg run_service.sh (esecuzione sincrona) (esecuzione in background)

e per lesecuzione programmata:


set trigger gprs up script run-backg run_service.sh

Per interrompere lesecuzione di uno script, impiegare il comando:


script stop <nome_file>.

Tiesse

187

IMOLA User Guide - Rev.21 Ver. 001

RESPONDER TIME REPORTER


CONFIGURAZIONE DEL SERVIZIO
Il servizio RTR (Responder Time Reporter) offre la possibilit di eseguire dei comandi in funzione del particolare osservatore RTR configurato. Pi precisamente, le funzionalit di RTR permettono di configurare dei probe da inviare verso un indirizzo preconfigurato al fine di misurare le prestazioni e i tempi di attraversamento della rete. Con i comandi:
set set set set set rtr rtr rtr rtr rtr frequency <seconds> timeout <millisec> lifetime <seconds> pkt-size <bytes> tos <value>

possibile configurare rispettivamente la frequenza (in secondi) con cui inviare il probe, il tempo di attesa (in millisecondi) della risposta al probe, la durata del probe (0 corrisponde ad una durata infinita), la dimensione del pacchetto di probe (in bytes), il valore (da 2 a massimo 254) del Type of Service. inoltre possibile scegliere che il probe venga costituito da unoperazione di icmp echo request, dallinvio di un pacchetto UDP o infine, una richiesta di connessione ad un dato servizio, verso un dato indirizzo di destinazione. I comandi utili a tali scopi sono i seguenti:
set rtr type ipIcmpEcho dst-addr <value> [src-addr <value>]

definisce che il probe costituito da un pacchetto icmp echo request verso l'indirizzo dst-addr (e con eventuale indirizzo sorgente src-addr).
set rtr type udpEcho dst-addr <valuedst-port> <value> [src-addr <value> [src-addr <value>]]

definisce che il probe costituito da un pacchetto UDP verso l'indirizzo dst-host e porta dst-port .
set rtr type tcpConnect dst-addr <valuedst-port> <value> [ src-addr <value> [src-addr <value>]]

definisce che il probe costituito da una richiesta di connessione al servizio dstport verso l'indirizzo dst-host. Con il comando:
set rtr threshold N

188

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

si definisce un valore di soglia superato il quale verranno eseguite le azioni configurate con il comando set rtr reaction-event, descritto successivamente.
set rtr reaction-event ifFailure <command>

esegue il comando fornito come argomento, nel caso in cui loperazione di probe impostata fallisca, cio nel caso in cui non si ottenga risposta per un numero di volte pari al valore specificato dal parametro threshold.
set rtr reaction-event ifSuccess <command>

esegue il comando nel caso in cui il probe abbia avuto risposta.


set rtr reaction-event ifFailureAfterSuccess <command>

esegue il comando nel caso il probe fallisca ma precedentemente avesse avuto successo.
set rtr reaction-event ifSuccessAfterFailure <command>

esegue il comando nel caso in cui il probe abbia successo e precedentemente fosse fallito. Per specificare una lista di comandi si usa in modo ripetuto il comando:
set rtr reaction-event

Lesecuzione dei comandi rispecchia la sequenza di inserimento. Ancora:


set rtr start-time immediately

attiva il probe immediatamente


set rtr start-time in N

attiva il probe entro un tempo non inferiore a N secondi. Infine possibile configurare il router in modo da rispondere ai probe ricevuti mediante i comandi:
set rtr responder local-port NNN [local-addr a.b.c.d]

Per fermare il servizio responder si utilizza il comando:


set rtr no-responder

VISUALIZZAZIONE DEL SERVIZIO


Il comando per la visualizzazione del RTR :

Tiesse

189

IMOLA User Guide - Rev.21 Ver. 001

show rtr config|status|statistics

Specificando largomento config si ottiene la visualizzazione della configurazione del servizio RTR, con un output simile a :
root@Imola> show rtr config set rtr frequency 60 set rtr timeout 5000 set rtr pkt-size 32 set rtr lifetime 3600 set rtr threshold 3000 set rtr no-tos set rtr no-reaction-configuration set rtr off

Figura 53: Esempio di output comando:

show rtr config

Specificando largomento statistics si ottiene la visualizzazione dei dati statistici del RTR, che sono: timestamp alla partenza del servizio numero di messaggi di probe spediti numero di messaggi di probe ricevuti numero di errori (numero di messaggi di probe senza risposta) percentuale di pacchetti perduti tempi di round-trip in millisecondi : minimo/medio/massimo/deviazione standard timestamp al termine del servizio Loutput che si ottiene del tipo:
root@Imola> show rtr statistics Response Time Reporter collected statistics: Start Time: Thu Jan 1 01:30:35 CET 1970 60 probes transmitted, 60 probes received, 0 errors, 0% probe loss round-trip min/avg/max/dev = 97.827/239.712/676.518/136.447 ms Stop Time: Thu Jan 1 01:31:40 CET 1970

Figura 54: Esempio di output comando:

show rtr statistics

Infine con largomento status si ottiene la visualizzazione dello stato del servizio RTR, con un output simile a:
root@Imola> show rtr statistics set rtr responder local-port 9000 Response Time Reporter is not running

Figura 55: Esempio di output comando:

show rtr statistics

190

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

GESTIONE CONFIGURAZIONI E AGGIORNAMENTO SOFTWARE


GESTIONE DELLE CONFIGURAZIONI INTERMEDIE
Il comando CLI set checkpoint permette di creare un checkpoint del router, utile per salvare la configurazione relativa ad un determinato istante. Tramite il comando restore checkpoint possibile ripristinare la configurazione salvata. Ad esempio:
set checkpoint-1

crea un punto di ripristino che in qualsiasi momento pu essere richiamato mediante il comando:
restore checkpoint-1

Possono essere definiti 2 punti di ripristino: checkpoint-1 e

checkpoint-2.

DOWNLOAD E UPLOAD DELLE CONFIGURAZIONI


I comandi CLI di configurazione possono essere contenuti in un file di testo preparato localmente, successivamente il file viene trasferito su Imola e ne vengono eseguiti i comandi contenuti. Il file con i comandi deve risiedere su un sistema dove attivo il server TFTP. Ad esempio, il file gprs.cli.txt si trova sul server 192.168.1.1 e contiene i comandi CLI:
set set set set set set set set gprs apn myapn.tim.it gprs login mylogin password mypasswd gprs default-route gprs on loopback ipaddr 10.10.0.1 loopback on eth1 ipaddr 172.15.113.1 netmask 255.255.0.0 eth1 on

Su Imola vengono eseguiti rispettivamente i comandi:


download command-file gprs.cli.txt from 192.168.1.1 run from gprs.cli.txt

il primo trasferisce il file localmente ad Imola ed il secondo esegue i comandi contenuti al suo interno.

Tiesse

191

IMOLA User Guide - Rev.21 Ver. 001

Viceversa per scaricare su un server TFTP la configurazione corrente di Imola si possono usare i seguenti comandi:
show config current > /tmp/imola.cli.txt upload command-file /tmp/imola.cli.txt to 192.168.1.1

il primo comando crea il file /tmp/imola.cli.txt contenente la configurazione del router ed il secondo trasferisce tale file sul server TFTP. inoltre possibile memorizzare in un file i comandi man mano che questi vengono eseguiti e successivamente salvarli sul server TFTP:
record in /tmp/myconf.cli.txt set adsl encap rfc1483-llc set adsl pvc atm0 ipaddr 83.1.1.1 nexthop 83.1.1.2 set trigger adsl up ip route default dev atm0 no-record upload command-file /tmp/myconf.cli.txt to 192.168.1.1

AGGIORNAMENTO DEL SOFTWARE


Il software su Imola organizzato in maniera modulare. I moduli presenti e la relativa versione di ognuno di essi sono visualizzati dal comando: show system
root@Imola> show system Tiesse Imola Multiprotocol Router Serial Number: S0610G046170 Software Version: Imola version: 1.1.2-S OS version: 2.4.20-Imola-1.0 (root@vll) Mon Feb 26 00:47:30 CPU: IBM 405EP 133Mhz revision : 9.80 (pvr 5121 0950) RAM Size: 64 MB FLASH Size: 16 MB Tag=21032007 STE 100P 10/100 Ethernet0 PHY Device. MAC Address: 00:0D:5A:04:B4:5A STE 100P 10/100 Ethernet1 PHY Device. MAC Address: 00:0D:5A:84:B4:5A Console UART Controller ST 3243 APW. DB9 DTE Connector. *** Packages version: zebra: Version 1.1.1 - Tue Feb 13 11:33:23 CET 2007 vrrp: Version 1.1.1 - Tue Feb 13 11:33:23 CET 2007 usb2: Version 1.1.1 - Tue Feb 13 11:33:23 CET 2007 snmp: Version 2.0.7 - Sat Mar 10 22:55:10 CET 2007 saa: Version 1.1.1 - Tue Feb 13 11:33:23 CET 2007 rip: Version 1.1.2 - Tue Feb 27 11:33:23 CET 2007 pptp: Version 1.1.2 - Fri Feb 16 07:23:14 CET 2006 pimd: Version 1.1.2 - Tue Feb 20 14:40:23 CET 2007 ospf: Version 1.1.2 - Tue Feb 27 11:33:23 CET 2007 ipsec: Version 1.1.2 - Thu Mar 22 17:57:57 CET 2007 hsdpa: Version 1.1.1 - Fri Mar 23 09:04:35 CET 2007 etc: Version 1.1.7 - Mon Mar 5 18:14:44 CET 2007 cli: Version 1.2.0 - Fri Mar 30 12:45:15 CEST 2007 bgp: Version 1.1.2 - Tue Feb 27 11:33:23 CET 2007 Figura 56: Esempio di output comando: show system

192

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

A parte casi molto rari, laggiornamento del software consiste nel caricare una nuova versione di uno dei packages presenti. Ad esempio, supponendo che sia disponibile la versione 1.1.2 (pi recente di quella installata) del pacchetto hsdpa per la gestione del collegamento UMTS/HSDPA, lutente riceve due file, chiamati hsdpa_1.1.2.tgz ed upgrade_hspa.sh e li copia sul suo server TFTP. Laggiornamento di tale pacchetto viene effettuato eseguendo la seguente sequenza di comandi:
download command-file hsdpa_1.1.2.tgz from 192.168.1.1 download command-file upgrade_hsdpa.sh from 192.168.1.1 shell sh upgrade_hsdpa.sh

I primi due comandi trasferiscono su Imola i due file ed il terzo provvede ad installare ed attualizzare il nuovo modulo.

Tiesse

193

IMOLA User Guide - Rev.21 Ver. 001

CAVEAT
ESECUZIONE COMANDI CLI AL REBOOT DEL ROUTER
La maggior parte dei comandi CLI vengono rieseguiti automaticamente al boot del router, a patto di aver provveduto al loro salvataggio prima dello spegnimento della macchina. Tuttavia, per un insieme di comandi, tale regola non applicabile: per questi infatti lesecuzione in effetto nel corso della sessione corrente non viene automaticamente richiamata dopo un restart del router . I comandi per i quali vanno applicate le precedenti considerazioni sono i seguenti:
set gre generic on set igmp-proxy on set backup on set ipsec on ip tc iptables smcroute mii-tool dhcrelay vrrpd tproxy ifstate-mon condition-mon cpumon

Per assicurare la loro esecuzione automatica, dopo un eventuale reboot del router, necessario lanciare gli stessi in dipendenza di comandi di trigger (per maggiori dettagli a riguardo consultare il capitolo relativo alla configurazione dei trigger ed alla gestione degli stati di backup). Seguono alcuni esempi volti a chiarire limpiego di questo tipo di esecuzioni automatiche programmate. Ad esempio, supponendo di aver configurato un Tunnel GRE nella sessione corrente, nel seguente modo:
set gre generic tunnel-source 1.1.1.1 set gre generic tunnel-destination 2.2.2.2 set gre generic tunnel-addr 100.100.100.1/30 ....

Con il comando set gre generic on il tunnel sar attivo per tutta la durata della sessione corrente, ma non sar ripristinato al boot successivo. Mediante il comando:
set autocmd set gre generic on

194

Tiesse

IMOLA User Guide - Rev.21 Ver. 001

il tunnel sar eseguito anche al riavvio del router. inoltre possibile condizionare lesecuzione di un comando ad una vasta gamma di eventi di trigger, come ad esempio la disponibilit o meno di uninterfaccia o di un servizio. A titolo di esempio, per subordinare lesecuzione del precedente Tunnel GRE alla disponibilit dellinterfaccia GPRS, potr essere salvato sul router il seguente comando:
set trigger gprs up set generic gre on

In tal modo il tunnel verr attivato solo al momento della attivazione della interfaccia GPRS. Linterfaccia si considera attiva quando ad essa vengono assegnati gli IP address classici di una connessione punto-punto. Per maggiori ragguagli sulle funzionalit accennate si rimanda al capitolo relativo alla configurazione dei trigger ed alla gestione degli stati di backup.

ROUTING TABLES
Il comando set route viene utilizzato per aggiungere una rotta statica. Oltre ad aggiungere la rotta, esso modifica la configurazione in modo tale che la stessa rotta verr aggiunta al prossimo reboot (purch sia stato effettuato il salvataggio della configurazione).
set route host 1.2.3.4 dev atm0

Sono possibili vari modi alternativi per aggiungere delle rotte statiche. Ad esempio
set adsl pvc atm0 default-route

in questo modo viene attivata una rotta di default sull'interfaccia atm0. Oppure:
set adsl pcv atm0 no-default-route set trigger adsl up ip route add 1.2.3.4 dev atm0

Il comando ip viene eseguito al momento della attivazione dell'interfaccia atm0 (ADSL). Puo' essere usato in varie forme tra le quali:
ip route add default dev atm0 ip route add default via <nexthop> ip route add X.Y.Z.0/N dev atm0 ip route add X.Y.Z.0/N via <nexthop>

In questo, se non specificato altrimenti, mediante regole di source-nat, l'indirizzo sorgente usato nei pacchetti per una certa destinazione e' quello associato

Tiesse

195

IMOLA User Guide - Rev.21 Ver. 001

all'interfaccia ADSL. E' possibile specificare lindirizzo sorgente da utilizzare a prescindere da quello dell'interfaccia usando l'opzione src:
ip route add <destination> via <nexthop> src x.y.z.t ip route add <destination> dev atm0 src x.y.z.t

Per rimuovere la rotta:


ip route del <destination> via <nexthop> src x.y.z.t

oppure:
ip route del <destination> dev atm0 src x.y.z.t

Invece del comando ip puo' essere usato il piu' tradizionale comando route:
route route route route add add add add -net a.b.c.d netmask n.n.n.n dev atm0 -net a.b.c.d netmask n.n.n.n gw <nexthop> -host a.b.c.d dev atm0 -host a.b.c.d gw <nexthop>

196

Tiesse