IMOLA User Guide - Rev.21 Ver. 001

196
IMOLA User Guide - Rev.21 Ver. 001 Tiesse 1 Imola User Guide

Transcript of IMOLA User Guide - Rev.21 Ver. 001

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 1

Imola User Guide

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 2

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 3

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 Direttiva per la Compatibilità Elettromagnetica EN 55022 Limiti e metodi di misura delle caratteristiche Class B di

radiodisturbo prodotto dalle apparecchiature per tecnologia dell'informazione

EN 61000-3-2 Limiti per emissioni di corrente armonica EN 61000-3-3 Limiti delle fluttuazioni di tensioni e dei flicker EN 55024 Limiti e metodi di misura delle caratteristiche di immunità delle

apparecchiature per la tecnologia dell'informazione 73/23 CE Direttiva per la Bassa Tensione EN 60950 Sicurezza delle apparecchiature per la tecnologia

dell'informazione, comprese le apparecchiature elettriche per ufficio

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 4

Conformità ROHS – RAEE

INFORMAZIONE AGLI UTENTI

ai sensi dell’art.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 dell’uso 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 l’uso di materiali pericolosi nella produzione di dispositivi elettrici ed elettronici. Il simbolo del cassonetto barrato riportato sull’apparecchiatura 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. L’utente che vorrà disfarsi della presente apparecchiatura dovrà quindi contattare Tiesse SpA e seguire il sistema che essa ha adottato per consentire la raccolta separata dell’apparecchiatura giunta a fine vita. L’adeguata raccolta differenziata per l’avvio successivo dell’apparecchiatura dismessa al riciclaggio, al trattamento e allo smaltimento ambientalmente compatibile contribuisce ad evitare possibili effetti negativi sull’ambiente e sulla salute e favorisce il reimpiego e/o riciclo dei materiali di cui è composta l’apparecchiatura. Lo smaltimento abusivo del prodotto da parte del detentore comporta l’applicazione delle sanzioni amministrative previste dalla normativa vigente.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 5

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 dell’interfaccia ...............................................................................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 dell’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 6

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 all’uso 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 7

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 8

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 9

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:

0 Nessuna connessione mobile presente X 1 La connessione mobile è gprs 2 La connessione mobile è gprs/edge 3 La connessione mobile è gprs/edge/umts/hsdpa 0 1 porta ethernet presente

Y 1 2 porte Ethernet 2 Switch Ethernet 5 porte (4 porte nella versione LX) 4 4 porte seriali asincrone 0 Nessuna connessione WAN presente

Z 1 La connessione WAN è ADSL 2 La connessione WAN è ADSL2+ 3 La connessione WAN è HDSL

Tabella 1

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 10

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 DESCRIZIONE ROUTER ACCESO/SPENTO • led verde On ACCESO: indica che il Router Imola è

acceso. INTERFACCE ETHERNET 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

INTERFACCIA ADSL 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. INTERFACCIA ISDN Lo stato dell’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 11

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 dall’applicazione. Il significato è il seguente: • led Pw ACCESO: indica che il modem GPRS

interno è operativo in modo corretto. All’accensione del router il led normalmente è spento. Esso viene acceso dopo aver richiesto l’attivazione dell’interfaccia 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: l’interfaccia dispone di un indirizzo IP per trasmettere e ricevere tramite la rete GPRS.

INTERFACCIA HDSL • led verde v35 ACCESO: indica che il Router ha rilevato la presenza della rete.

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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 12

• 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

L’ambiente 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 13

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. L’accesso 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 dell’eventuale 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 nell’ambiente di configurazione il prompt si presenta nella forma: username@hostname dove username è la login utilizzata per l’accesso e hostname è il nome macchina configurato. Vengono visualizzati il tipo di servizio (Administrative-User o Login-User) che indica i privilegi dell’utente 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>

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 14

ACCESSO MEDIANTE PORTA TTYS0

Cavo da utilizzare: cavo null-modem DB9 Porta Imola: porta ttyS0 Applicazione da usare: 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: 9600 Data bits: 8 Parity: none Stop bit(s): 1 Flow Control: 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: cavo LAN (Ethernet type) Porta Imola: porta eth0 o eth1 Applicazione da usare: telnet (o simili) Impostazioni eth0/eth1: Porta eth0 Porta Eth1 IP Address 10.10.113.1 172.151.113.1 Netmask 255.255.0.0 255.255.0.0 Broadcast 10.10.255.255 172.151.255.255 Network Address 10.10.0.0 172.151.0.0

Tabella 3

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 15

ACCESSO MEDIANTE PORTA ISDN BRI

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

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: root PASSWORD: tiesseadm É possibile cambiare la password dell’utente 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 16

Gli utenti aggiunti tramite il comando add_user sono di tipo Login. Il comando su 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#

Si accede al router usando l’utente 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 l’hostname. Con il comando quit si ritorna all’utente precedente. Da notare l’ultimo 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 all’utente <username> (di tipo Login) la possibilità di eseguire tutti i comandi che iniziano con il prefisso specificato. Il comando:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 17

revoke-to <username> <command prefix>

eseguito da un utente di tipo Administrative revoca all’utente <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 l’utente operatore può solo controllare la configurazione, ma non può intervenire su di essa, mentre l’utente tecnico può modificarla senza alcun vincolo. I comandi:

grant-to operatore set eth1 revoke-to tecnico set isdn dialer ippp1

consentono all’utente “operatore” la possibilità di configurare la porta ethernet e revocano all’utente ”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à all’utente 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 l’accesso 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 all’ambiente di configurazione, senza passare attraverso la shell di Linux.

DEFAULT SETTINGS

La configurazione di default di Imola prevede:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 18

• 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 19

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 20

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 • 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 21

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 l’ausilio 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 show add_user exit restore su append help router traceroute no-record run upload change_password ping save version clear_counter quit set who del_user reboot shell root@Imola>

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

root@Imola> set access-list no-access-list no-radius adsl no-adsl no-redirect alias no-alias no-rip autocmd no-autocmd no-route backup no-backup no-snmp banner no-banner no-source-nat bgp no-bgp no-trigger checkpoint-1 no-default-gateway no-vrrp checkpoint-2 no-dns ntp comment no-eth0 ospf default-gateway no-eth1 pos dns no-gprs ppp eth0 no-gre proxy eth1 no-host qos gprs no-ipsec radius gre no-iptables redirect host no-isdn rip hostname no-log route ipsec no-loopback snmp iptables no-ntp source-nat isdn no-ospf timezone log no-ppp trigger loopback no-qos vrrp root@Imola>

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 22

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 23

INTERFACCIA ETHERNET

CONFIGURAZIONE DELL’INTERFACCIA

Le interfacce Ethernet di Imola sono denominate eth0 ed eth1. L’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 24

È 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 25

È 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-FD 10BaseT 10BaseT-HD 100BaseTx 100BaseTx-HD 10BaseT-FD

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: 11.11.1.1 Netmask: 255.255.0.0 Broadcast: 11.11.255.255 MAC Address: 00:0D:5A:04:6F:F6 DHCP-Client: no Figura 6: Esempio di output comando: show interface ethernet eth0 config

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 26

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 Flags MSS Window irtt Iface 192.168.1.0 1.1.1.1 255.255.255.0 UG 40 0 0 eth1 1.1.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth1 11.11.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth0 10.10.0.0 1.1.1.1 255.255.0.0 UG 40 0 0 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 27

TRIGGER ETHERNET

E’ possibile definire delle azioni da eseguire al variare dello stato dell’interfaccia operativa delle porte ethernet mediante i comandi: set trigger eth0 up <action> set trigger eth0 down <action> set trigger eth1 up <action> set trigger eth1 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> L’esecuzione delle azioni avviene secondo l’ordine 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 dell’interfaccia 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. L’esecuzione delle azioni avviene secondo l’ordine 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 l’indirizzo 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 28

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 l’interfaccia 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 abilita e fa ripartire la procedura di autonegoziazione, specificando però le sole velocità accettate

-C 0|1|2 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

-v –v -- visualizza lo stato e la configurazione della porta specificata

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 29

Nell’esempio 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 automatic crossover abilitato 4110 crossover forzato manualmente 4100 crossover disabilitato manualmente

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 30

INTERFACCIA ISDN

COMANDI PER LA CONFIGURAZIONE DELL’INTERFACCIA 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 sull’interfaccia 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 isdn dialer ippp0 eaz all set isdn dialer ippp0 in-number set isdn dialer ippp0 accept-remote-ip set isdn dialer ippp0 dialmode manual set ppp login <user> password <password> set isdn dialer ippp0 on

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 31

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 pfifo_fast qlen 30 link/ppp 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 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 32

set isdn dialer ippp1 eaz 999999 set isdn dialer ippp1 out-number <number> set isdn dialer ippp1 login <user> password <passwrd> set isdn dialer ippp1 huptimeout 120 set isdn dialer ippp1 ipaddr 1.1.1.1 nexthop 2.2.2.2 set isdn dialer ippp1 masquerade set isdn dialer ippp1 accept-remote-ip set isdn dialer ippp1 no-accept-local-ip set isdn dialer ippp1 dialmode manual set isdn dialer ippp1 default-route set isdn dialer ippp1 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 l’invio dei pacchetti IP utilizzando come IP address sorgente l’indirizzo locale associato alla dialer, ovvero sull’interfaccia dialer verranno effettuate operazioni di NATP. I comandi set isdn dialer ippp1 accept-remote-ip e set isdn dialer ippp1

accept-local-ip definiscono la modalità in base alla quale verrano assegnati gli indirizzi sull’interfaccia ippp1. Il funzionamento è descritto in seguito. 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 sull’interfaccia 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 33

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 pfifo_fast qlen 30 link/ppp 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

Figura 13: Esempio di output comando: 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 dell’abbattimento del canale master.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 34

Al momento della attivazione del canale master è possibile verificare l’attivazione 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 dell’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 35

I seguenti comandi sono comuni a tutti e tre gli esempi: set isdn dialer ippp1 eaz 999999 set isdn dialer ippp1 out-number 0125230544 set isdn dialer ippp1 login isdnuser password isdnpasswd set isdn dialer ippp1 huptimeout 120 set isdn dialer ippp1 masquerade set isdn dialer ippp1 dialmode auto set isdn dialer ippp1 default-route

indirizzo locale e indirizzo nexthop entrambi assegnati da Imola stesso

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

Sia prima che dopo la chiamata ISDN l’interfaccia 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 isdn dialer ippp1 ipaddr 0.0.0.0 set isdn dialer ippp1 accept-remote-ip set isdn dialer ippp1 no-accept-local-ip set isdn dialer ippp1 on

Dopo l’attivazione della sessione ISDN l’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 36

indirizzo locale assegnato da Imola ed indirizzo nexthop assegnato dal sistema remoto

set isdn dialer ippp1 ipaddr 1.1.1.1 set isdn dialer ippp1 accept-remote-ip set isdn dialer ippp1 accept-local-ip set isdn dialer ippp1 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 tipo chiamata (incoming/outgoing) Calling Number numero di telefono chiamante Called Number numero di telefono chiamato Sec. Used tempo di occupazione della linea Setup Time durata setup ISDN Term. Cause codice della causa della disconnessione Txed Bytes/Rxed Bytes 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 dell’esecuzione del comando.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 37

È 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 dell’interfaccia ISDN viene indicato mediante 2 led di colore giallo (sinistra) e verde (destra) posti ai lati del connettore. L’accensione del led giallo indica che il livello fisico ISDN è attivo. L’accensione del led verde indica invece l'attività di almeno una sessione ISDN.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 38

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> L’esecuzione delle azioni avviene secondo l’ordine con cui sono stati impostati. Ad esempio mediante la sequenza di comandi: set trigger isdn up ip route add 12.12.12.12 dev ippp1 set trigger isdn up logger –r 10.10.1.212 ISDN is up set trigger isdn down ip route del 12.12.12.12 dev ippp1 set trigger isdn down logger –r 10.10.1.212 ISDN is down si imposta una rotta statica verso l’host 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.

2 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 39

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 isdn traffic-control input-threshold 30000 set isdn traffic-control output-threshold 20000 set isdn traffic-control mode or set isdn traffic-control 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 l’attivazione 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 40

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 41

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 42

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 l’IP 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

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 43

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 adsl encap rfc1483-vcmux set adsl backup isdn set adsl extbackup no set adsl pvc-number 1 set adsl description muxadsl set adsl pvc atm0 vpi 8 vci 35 set adsl pvc atm0 pcr 0 set adsl pvc atm0 default-route set adsl pvc atm0 ipaddr 1.1.1.1 nexthop 2.2.2.2 set adsl 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 44

L’output 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 l’output 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 dell’interfaccia atm0 relativa al PVC e i dati dell’interfaccia ppp0 relativa alla connessione PPP over ATM. Il comando: show interface adsl statistics

produce un output a video del seguente tipo:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 45

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 46

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 4999779 txd_1jf 886957 txd_2jf 507275 txd_3jf 239456 txd_4jf 109038 txd_5jf 24093 txd_6jf 0 txd_7jf 0 txd_8jf 0 txd_9-20 0 txd_gt_20 30 txd_max 1671 txi_0jf 1602622 txi_1jf 1587667 txi_2jf 1098665 txi_3jf 374412 txi_4jf 282400 txi_5jf 208992 txi_6jf 256445 txi_7jf 184538 txi_8jf 96499 txi_9-20 703350 txi_gt_20 371037 txi_max 30103 Modem is operational

Figura 23: Esempio di output comando: show interface adsl status

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 47

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. L’accensione 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 l’interfaccia 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> L’esecuzione delle azioni avviene secondo l’ordine con cui sono stati impostati. Ad esempio mediante la sequenza di comandi: set trigger adsl up ip route add 12.12.12.12 dev atm0 set trigger adsl up logger –r 10.10.1.212 ADSL is up set trigger adsl down ip route del 12.12.12.12 dev atm0 set trigger adsl down logger –r 10.10.1.212 ADSL is down si imposta una rotta statica verso l’host 12.12.12.12 e si invia il messaggio di log “ADSL is up” quando l’interfaccia ADSL viene attivata, mentre si elimina la rotta e si invia il messaggio di log “ADSL is down” quando l’interfaccia ADSL non è operativa. Per cancellare un trigger si utilizzano i comandi: set no-trigger adsl up <action> set no-trigger Adsl down <action>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 48

INTERFACCIA FRAME RELAY

CONFIGURAZIONE

Le funzioni Frame Relay di Imola sono supportate dal chipset Serocco di Infineon. Esternamente l’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 49

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 backup checking-interface pvcX set trigger backup up <cmdUp> set trigger backup down <cmdDown> set 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 frame-relay pvc pvc0 dlci 21 set frame-relay pvc pvc0 default-route set frame-relay pvc pvc0 ipaddr 1.1.1.1 nexthop 1.1.1.2 set frame-relay pvc pvc0 netmask 255.255.255.252 set frame-relay on

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 50

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

L’output 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 51

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 52

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 dell’APN: 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 53

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 all’interno 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 l’inattività 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 è l’autenticazione CHAP), viene impiegato il comando:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 54

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 gprs apn ibox.tim.it set gprs login mylogin password mypasswd set gprs default-route set gprs masquerade set gprs 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 l’argomento <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. L’interfaccia 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 dell’indice X è funzione dell’ordine di attivazione delle connessione: la prima attivata sarà ppp0 e la seconda ppp1.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 55

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 dell’interfaccia 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 gprs statistics Number of GPRS Connection: 1 Total Bytes Transmitted: 40 Total Bytes Received: 1517 Total Duration: 3

Figura 29: Esempio di output comando: show interface gprs statistics

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 56

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 2 6 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, nell’esempio sopra, dal valore negativo –80 .

Il valore del livello di campo è anche ottenibile partendo dal valore CSQ.

Riferendosi all’esempio 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 # tacche

da -105 a -100 0

da -100 a -95 1

da -95 a -90 2

da -90 a -85 3

maggiore di -85 4

Tabella 4

Il valore CSQ 99,0 indica un livello di segnale non disponibile (il modem non è connesso alla rete).

Mediante l’attivazione del meccanismo di log di sistema è possibile verificare eventuali problemi di attivazione del link. Per attivare i log di sistema utilizzare i comandi descritti nell’apposito 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):

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 57

root@Imola> set gprs on root@Imola> shoo log 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 04:47:38 localhost pppd[13380]: Using interface ppp0 Jan 1 04:47:38 localhost pppd[13380]: Connect: ppp0 <--> /dev/ttyS1 Jan 1 04:47:38 localhost pppd[13380]: Remote message: TTP Com PPP - Password Verified OK Jan 1 04:47:39 localhost pppd[13380]: local IP address 217.201.192.147 Jan 1 04:47:39 localhost 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. L’accensione 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;

• l’accensione 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 58

TRIGGER GPRS

E’ possibile definire delle azioni da eseguire quando viene attivata e deattivata l’interfaccia 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> L’esecuzione delle azioni avviene secondo l’ordine con cui sono stati impostate. Ad esempio mediante la sequenza di comandi: set trigger gprs up ip route add 12.12.12.12 dev ppp0 set trigger gprs up logger –r 10.10.1.212 ADSL is up set trigger gprs up hello 85.34.166.18 514 set trigger gprs down ip route del 12.12.12.12 dev ppp0 set trigger gprs down logger –r 10.10.1.212 ADSL is down si imposta una rotta statica verso l’host 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 l’indirizzo e la porta specificati un messaggio contenente l’indirizzo IP dell’interfaccia gprs, l’hostname 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 59

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 trigger gprs-tc. Il seguente esempio ne chiarisce l'utilizzo. set gprs traffic-control input-threshold 10000 set gprs traffic-control output-threshold 20000 set gprs traffic-control mode or set gprs traffic-control timer-unit 60 set trigger gprs-tc up logger -h 192.168.2.1 GPRS Traffic is too High set 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 dall’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 60

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 è l’utilizzo 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 l’indirizzo associato all’interfaccia 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>

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 61

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 è case-sensitive. 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 dell’esecuzione 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 62

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 l’utilizzo 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, l’opzione 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 ....

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 63

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 l’interfaccia tun0 (tunnel gre) e verso l’host 172.16.1.1 mediante l’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 64

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 Genmask Flags Metric Ref Use Iface 172.16.12.12 10.10.254.2 255.255.255.255 UGH 0 0 0 eth0 85.34.147.96 0.0.0.0 255.255.255.252 U 0 0 0 atm0 131.120.12.0 10.10.254.3 255.255.255.0 UG 0 0 0 eth0 10.10.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.151.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 85.34.147.97 0.0.0.0 UG 0 0 0 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 65

INDIRIZZO DI LOOPBACK, GESTIONE INTERFACCE DI RETE

INDIRIZZO LOOPBACK

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 l’indirizzo 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 all’interfaccia loopback è dummy0. Per eliminare l’indirizzo di loopback si usa il comando: set no-loopback

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 66

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) dell’interfaccia 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 all’interfaccia di rete corrispondente alla porta eth0. Tra le altre: il valore del MAC Address assegnato (HWaddr) l’indirizzo IP (inet addr) la netmask (Mask) l’indirizzo di broadcast (Bcast) il valore di Maximum Transfer Unit (MTU)

Visualizza inoltre alcuni flags di stato dell’interfaccia: UP indica che l’interfaccia è 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. Nell’esempio seguente il comando visualizza lo stato dell’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 67

Applicando i comando all’interfaccia 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 l’assenza del flag UP che del flag RUNNING. Lo stato dell’interfaccia 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 68

Ad esempio per impostare sull’interfaccia eth0 l’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 69

IL COMANDO IP

GENERALITÀ

Il comando ip consente di gestire, in modalità estremamente avanzata, l’attivazione 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 consente di visualizzare e modificare le caratteristiche dei

dispositivi di uscita ip route aggiunge o cancella una riga della routing table in cui sono

contenute le informazioni sui percorsi per raggiungere gli altri nodi di rete

ip rule 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

ip addr associa indirizzi ip ai dispositivi di rete ip neigh manipola le tabelle di corrispondenza tra indirizzi IP e indirizzo

fisici 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 70

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 71

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 l’indirizzo IP sorgente del pacchetto da gestire.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 72

Ad esempio il router è collegato alla rete ADSL e alla rete ISDN. L’interfaccia per ADSL è atm0 mentre quella per ISDN è ippp1, dove:

• atm00 con IP address 172.151.113.42 nexthop 172.151.113.41 • ippp1 con IP address 192.168.113.42 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 all’indirizzo 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 l’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 73

GUIDA ALL’USO DEL COMANDO IP

L’area 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 • route routing table • 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 { on | off } | dynamic { on | off } | multicast { on | off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU } ip link show [ DEVICE ]

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 ]

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 74

[ 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 := STRING ADDR := { IP_ADDRESS | any } TOS := { NUMBER | inherit } TTL := { 1..255 | inherit } KEY := { 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 ]

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 75

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 (Access Control List) consente di mettere dei filtri per accettare o scartare pacchetti IP in transito

redirect consente di effettuare operazioni di reindirizzamento dei pacchetti da/verso indirizzi IP e/o porte diverse

source-nat 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 l’ordine mediante il quale vengono attivate le regole appartenenti alle liste. L’ordine è il seguente:

1. iptables 2. acccess-list 3. redirect 4. 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 76

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 77

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 log-prefix 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 un’access-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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 78

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 l’ordine con il quale le regole vengono inserite: vengono accettati i pacchetti in arrivo se provenienti dall’indirizzo 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 destination DROP tcp -- anywhere anywhere tcp dpt:echo Chain FORWARD (policy ACCEPT) target prot opt source destination DROP tcp -- anywhere anywhere tcp dpt:echo Chain OUTPUT (policy ACCEPT) target prot opt source destination root@Imola>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 79

e per esaminare i contatori statistici dei pacchetti che attraversano l’access list: root@Imola> iptables –L -v Chain INPUT (policy ACCEPT 943K packets, 77M bytes) pkts bytes target prot opt in out source destination 934 0 DROP tcp -- any any anywhere anywhere tcp dpt:echo Chain FORWARD (policy ACCEPT 4053K packets, 2778M bytes) pkts bytes target prot opt in out source destination 138 6584 DROP tcp -- any any anywhere anywhere tcp dpt:echo Chain OUTPUT (policy ACCEPT 957K packets, 81M bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT) target prot opt source destination DROP tcp -- anywhere anywhere 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 80

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 no-redirect: 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 .

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 81

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 no-source-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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 82

In questo esempio si vogliono mascherare i pacchetti in uscita e destinati ai servizi snmp e radius . I pacchetti dovranno essere spediti sostituendo l’IP address sorgente con l’indirizzo IP della interfaccia di loopback . Per configurare l’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 83

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 Regola le funzioni di firewall: quali pacchetti accettare, quali bloccare nat Regola le attività di natting (source-nat, destination-nat, pat ) mangle 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 un’indicazione (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 dell’elaborazione 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 all’interno di una qualsiasi catena. Il significato di ogni catena è spiegato nei paragrafi seguenti. La sintassi generica del comando iptables è la seguente:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 84

iptables –t table -[AD] chain rule-specification [options] iptables –t table -[I] chain [rulenum] rule-specification [options] iptables –t table -D chain rulenum [options] iptables –t table -[L] [chain] [options] dove si specificano: la tabella di riferimento (-t nat table), se aggiungere o togliere la regola all’interno della catena (-A chain, -D chain, -I chain), la regola per il match dei pacchetti e l’azione (target) da eseguire. Il comando:

iptables -t table –L –v mostra informazioni e contatori statistici relativamente al regole che sono state soddisfatte (vedi paragrafo sull’accounting). 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: INPUT si applica ai pacchetti ricevuti dal router e diretti ad esso OUTPUT si applica ai pacchetti inviati dal router, cioè generati localmente FORWARD si applica ai pacchetti in transito dal router Per permettere l’accesso 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 l’host 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 l’accesso alla porta 80 all’host 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 all’ordine con cui sono state aggiunte. Una regola può essere inserita in testa alla lista mediante l’opzione –I oppure in fondo (e quindi valutata per ultima) mediante l’opzione –A. E’ possibile inserire una regola in una determinata posizione mediante l’opzione: -I chain num. Ad esempio: iptables –A FORWARD -p udp --dport 37 –s 10.0.1.2 –d 192.168.0.1 –j DROP

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 85

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 d’ordine 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. L’azione di default è quella di accettare il pacchetto e passare alla tabella successiva. Mediante l’opzione –P è possibile modificare l’azione 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:

PREROUTING 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.

OUTPUT Usata per alterare i pacchetti in uscita dal router stesso, cioè quelli generati localmente. Si usa per Source NAT. Il target è –j SNAT.

POSTROUTING

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.

Ad esempio: I pacchetti provenienti dalla sottorete 10.10.0.0/16 e diretti alla sottorete 192.168.1.0/24 vengono trasmessi con l’ip 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 sull’interfaccia ppp0 vengono trasmessi con l’IP associato a tale interfaccia: iptables -t nat –A POSTROUTING –o ppp0 -j MASQUERADE

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 86

I pacchetti diretti alla sottorete 192.168.1.0/24 si presentano con l’IP 172.16.1.1, mentre quelli diretti alla sottorete 192.168.2.0/24 si presentano con l’IP 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 all’indirizzo pubblico 85.34.166.21 sono rediretti all’indirizzo 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 dell’indirizzo pubblico 85.34.166.21 sono rediretti alla porta 8080 dell’indirizzo 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 dell’header IP oppure il valore del camp MSS di TCP. Prevede le seguenti catene: INPUT altera i pacchetti di rete in ingresso

OUTPUT altera i pacchetti di rete prima che vengano inviati all'esterno

FORWARD altera i pacchetti di rete in transito dal router

PREROUTING altera i pacchetti ricevuti attraverso un'interfaccia di rete prima che vengano instradati

POSTROUTING altera i pacchetti prima che vengano inviati attraverso un'interfaccia di rete

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 87

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 88

APPLICAZIONE DELLE REGOLE SUI PACCHETTI

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

Il pacchetto entra dall’interfaccia di rete (eth0 nell’esempio) e prima del processo di routing viene sottoposto all’applicazione 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 all’interfaccia 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 l’applicazione 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 all’interno della stessa regola: -p proto Protocollo IP (tcp, udp, icmp, gre, ah, ...) -s address[/mask] Indirizzo IP sorgente (o network sorgente con maschera) -d address[/mask] Indirizzo IP destinazione (o network con maschera) -i interfaccia Interfaccia di ingresso -o interfaccia Interfaccia di uscita I criteri possono essere negati usando il carattere !. Ad esempio tutti i protocolli tranne icmp: -p ! icmp.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 89

Nel caso di protocollo tcp (-p tcp) valgono le seguenti estensioni: --sport port[:port] La porta o un range di porte sorgente. Ad esempio 1:1024

= > tutte le porte tra 1 e 1024 --dport port[:port] La porta o un range di porte di destinazione. Ad esempio

1:1024 = > tutte le porte tra 1 e 1024 --tcp-flags flag 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.

--syn 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] La porta o un range di porte sorgente. Ad esempio

1:1024 = > tutte le porte tra 1 e 1024 --dport port[:port] 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 90

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 l’interruzione 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 Il pacchetto che soddisfa il criterio di match viene accettato e

procede verso la sua destinazione. Usato per definire il traffico permesso.

-j DROP Il pacchetto viene rifiutato e scartato senza alcuna notifica al mittente. Si usa in alternativa a REJECT per bloccare il traffico

-j REJECT Il pacchetto viene rifiutato. Al mittente viene inviato un pacchetto (configurabile) di notifica, tipo ICMP port-unreachable: --reject-with icmp-port-unreachable. L’elenco delle possibili notifiche viene visualizzato mediante il comando iptables –j REJECT -–help

-j LOG Il pacchetto viene loggato mediante syslog e procede l’attraversamento delle catene. Possibili opzioni sono: --log-level e --log-prefix

-j DNAT Viene modificato l’IP destinazione del pacchetto. Il target è disponibile solo nelle catene di PREROUTING e OUTPUT della tabella nat. L’opzione –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.

-j SNAT Viene modificato l’IP sorgente. Si usa solo nella catena di POSTROUTING della tabella nat. Prevede l’opzione –to-source IP:porta. Il parametro porta è opzionale. Si usa per permettere l’accesso ad Internet ad una rete locale con IP privati.

-j MASQUERADE Simile a SNAT, si usa quando i pacchetti escono da un’interfaccia con indirizzo dinamico. Valido nella catena di POSTROUTING della tabella nat.

-j REDIRECT Ridirige il pacchetto verso una porta locale al router. Si usa nelle catene PREROUTING ed OUTPUT della tabella nat.

-j TOS Si usa nella tabella mangle, permette di cambiare il valore del TOS (Type Of Service) del pacchetto.

-j DSCP Si usa nella tabella mangle, permette di modificare il valore del DSCP dell’header di IP.

-j ECN Si usa nella tabella mangle per rimuovere il campo ECN (Explicit Congestion Notification) dall’header TCP. Ad esempio: iptables -t mangle -A FORWARD -p tcp -j ECN --ecn-tcp-remove

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 91

-j IPV4OPTSSTRIP Si usa nella tabella mangle per eliminare le opzioni presenti all’interno dell’header IPv4: iptables –t mangle –A FORWARD –j IPV4OPTSSTRIP

-j NETMAP Permette di sostituire gli host di una rete con quelli di un’altra. Ad esempio il comando: iptables –t nat –A PREROUTING –d 10.10.10.0/24 –j NETMAP –to 192.168.1.0/24 sostituisce l’indirizzo di destinazione 10.10.10.x con l’indirizzo 192.168.1.x

-j TCPMSS Usata per modificare il valore del Maximum Segment Size del TCP. Ad esempio: iptables .... –j TCPMSS --clamp-mss-to-pmtu E’ prevista l’opzione --set-mss value.

-j MARK Permette di marcare i pacchetti in modo da analizzarli in altri punti. Ad esempio per aggiungere una rotta in base all’indirizzo 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 l’elenco 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 92

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 ammette massimo 4 connessioni telnet contemporaneamente attive telnet verso il router dall’indirizzo 191.168.254.201. Le altre vengono rifiutate.

-m limit 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 vengono accettati solo i pacchetti di ping al ritmo di 10 al secondo

-m mac 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 scarta in maniera random il 10 per cento dei ping verso 10.10.1.1

-m pkttype Verifica il tipo di pacchetto in base all’indirizzo di destinazione di livello 2. E’ prevista l’opzione –-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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 93

-m addrtype Verifica il tipo di pacchetto in base all’indirizzo 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 l’opzione:

--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 l’opzione:

--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 all’interno dell’header 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) dell’header 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 l’opzione:

--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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 94

-m ipv4options Indentificazione in base alle opzioni presenti nell’header 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 l’opzione 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 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.

-m nth Verifica il match ogni N pacchetti. Ad esempio: iptables –A FORWARD –p icmp –d 10.10.10.10 –m nth –-every 3 –j LOG ogni 3 match consecutvi, viene effettato un log.

-m psd 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

-m tos Identifica il pacchetto in base al valore del TOS. L’elenco dei possibili possibili valori dell’opzione --tos viene visualizzato mediante il comando: iptables -m tos –-help Ad esempio: iptables –A FORWARD –m tos --tos Minimize-Delay conteggia tutti i pacchetti il cui tos è impostato a Minimize-Delay (16).

-m ttl Identifica il pacchetto in base al valore del campo TTL: iptables –A INPUT –m ttl --ttl 5

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 95

-m iprange Permette di impostare una regola usando un range di indirizzi IP. Ad esempio per bloccare l’accesso 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 l’invio 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

L’esempio 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 dall’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 96

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 dall’indirizzo 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 TTL=64 ID=0 DF

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 TTL=64 ID=0 DF

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 TTL=64 ID=61743

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 TTL=64 ID=61744

PROTO=ICMP TYPE=0 CODE=0 ID=5743 SEQ=0

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 l’accounting dei pacchetti. Ad esempio: per conteggiare tutti i pacchetti ricevuti sull’interfaccia 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 destination 86 3513 all -- eth0 any anywhere anywhere Per azzerare i contatori: iptables –Z. Per conteggiare tutti i pacchetti destinati dal router stesso all’indirizzo IP 10.10.1.209:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 97

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 destination 86 3902 all -- eth0 any anywhere anywhere Chain OUTPUT (policy ACCEPT 154 packets, 11812 bytes) pkts bytes target prot opt in out source destination 9 514 all -- any any anywhere 10.10.1.209 Per conteggiare i pacchetti in transito provenienti dall’indirizzo 192.168.1.2 e diretti verso la porta 80 dell’indirizzo 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 l’host 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 l’host 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 dell’host 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 98

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 -d 192.168.0.0/255.255.0.0 -j ACCEPT iptables -A FORWARD -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 all’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 99

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 100

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 (connection-tracking). L'opzione di iptables che permette di utilizzare questa funzionaltà è l'estensione –m state, con l’opzione --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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 101

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 dell’entry. 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 un’altra 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 102

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 l’ACK 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 l’ultimo ACK. Si deve considerare che il meccanismo di connection tracking non considera i flags tcp all’interno 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é

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 103

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, l’entry 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 l’entry 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 104

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 l’id dell’invio. 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 l’host 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 è

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 105

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 all’interno 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 106

UN ESEMPIO DI FIREWALL

Consideriamo il seguente scenario:

LANDMZ

LAN IP 192.168.0.0/24HTTP IP 192.168.1.2

Internet

eth1eth0

atm0HTTP IP 85.34.147.17FRWL IP 85.34.147.18

dove il router, cui sono assegnati gli indirizzi pubblici 85.34.147.17 e 85.34.147.18, è collegato: • alla rete pubblica attraverso l’interfaccia atm0, • alla lan interna con indirizzo 192.168.0.0/24 attraverso l’interfaccia eth1. • alla lan DMZ con indirizzo 192.168.1.0/24 attraverso l’interfaccia eth0 All’interno della DMZ esiste un server HTTP con indirizzo 192.168.1.2. Gli utenti accedono al server HTTP mediante l’indirizzo 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 l’esterno consenti tutto iptables -A FORWARD -i eth1 -o atm0 -j ACCEPT # Dalla DMZ verso l’esterno consenti tutto iptables -A FORWARD -i eth0 -o atm0 -j ACCEPT # Da router verso l’esterno consenti tutto iptables -A OUTPUT -o atm0 -j ACCEPT # Tra la DMZ e la LAN consenti tutto

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 107

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 dall’indirizzo 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 l’esterno 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 l’accesso verso l’host 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 108

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_log_invalid_scale ip_conntrack_tcp_timeout_syn_sent ip_conntrack_tcp_log_out_of_window ip_conntrack_tcp_timeout_syn_recv ip_conntrack_tcp_loose ip_conntrack_tcp_timeout_established ip_conntrack_tcp_be_liberal ip_conntrack_tcp_timeout_fin_wait ip_conntrack_tcp_max_retrans ip_conntrack_tcp_timeout_close_wait ip_conntrack_udp_timeout ip_conntrack_tcp_timeout_last_ack ip_conntrack_udp_timeout_stream ip_conntrack_tcp_timeout_time_wait ip_conntrack_icmp_timeout ip_conntrack_tcp_timeout_close ip_conntrack_generic_timeout ip_conntrack_tcp_timeout_max_retrans

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 109

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 110

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 dell’attivazione 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 l’indirizzo 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 l’interfaccia 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 l’intervallo tra l’invio 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 l’IP 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 111

set vrrp on

Un esempio di configurazione tipica del protocollo VRRP è la seguente: set vrrp interface eth0 set vrrp delay 1 set vrrp priority 50 set vrrp vipaddr 10.10.2.90 set vrrp 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 # Virtual Router Redundancy Protocol VRRP_INTERFACE=eth1 # Interface name VRRP_VRID=11 VRRP_PRIO=100 # Priority VRRP_DELAY=1 VRRP_PREEMPT=yes VRRP_VMAC=no VRRP_AUTH= VRRP_VIPADDR=10.10.1.1 # Virtual IP Address VRRP_STATUS=Master # We are Master VRRP_UP_CMD= VRRP_DOWN_CMD= 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 112

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 sull’interfaccia 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 l’istanza 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 113

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 l’utilizzo 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: • l’instradamento all’interno dello stesso dominio amministrativo (Intradomain

routing o Interior Gateway Protocols) o RIP (Distance vector) o OSPF (Link state)

• l’instradamento tra differenti domini amministrativi (Interdomain routing o Exterior Gateway Protocols)

o BGP (Border Router Protocol)

• l’instradamento 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 l’AS 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 114

I comandi: set bgp keepalive-interval N set bgp holdtime N set bgp route-advt-interval N set bgp 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, l’instradamento 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 115

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

sistema Imola2: set bgp local-as 3269 set bgp network 172.151.113.0/24 set bgp remote-as 65000 set bgp neighbor 10.10.2.7 set bgp 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 44.44.2.2 172.151.2.0/24 via 10.10.2.212 dev eth0 proto zebra equalize 44.44.0.0/16 dev eth0 proto kernel scope link src 44.44.1.2 10.10.0.0/16 dev eth0 proto kernel scope link src 10.10.2.7

Figura 42: Esempio di output comando: show iproute

Nell’esempio 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 proto zebra equalize 44.44.2.0/24 via 10.10.2.7 dev eth0 proto zebra equalize 172.151.2.0/24 dev eth1 proto kernel scope link src 172.151.2.212 10.10.0.0/16 dev eth0 proto kernel scope link src 10.10.2.212

Figura 43: Esempio di output comando: show iproute

Nell’esempio 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>.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 116

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 117

CONFIGURAZIONE PROTOCOLLO RIP

Il protocollo RIP prevede l’annuncio periodico delle reti direttamente connesse al router. Per configurare l’interfaccia 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 un’interfaccia 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 all’host a.b.c.d, invece che all’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 118

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, l’amministrazione 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 119

router ospf | bgp | rip senza specificare ulteriori opzioni. Ad esempio per configurare OSPF, dopo aver eseguito router ospf si entra nell’ambiente 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 …. …. …..

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 120

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 rip list router bgp list router ospf list router zebra list mostrano tutte le possibili opzioni che possono essere specificate.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 121

PROTOCOLLO DI MULTICAST ROUTING

PROTOCOL INDIPENDENT MULTICAST

Il Multicast Routing è un protocollo usato su reti TCP/IP, che lega la sua ragion d’essere 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 l’instradamento 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 122

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 pim directive cand_rp [<local-addr>] [priority <value> ] [time <value>] set pim directive cand_bootstrap_router [<local-addr>] [priority <value>] set pim directive group_prefix <group-addr> [masklen <masklen>] set pim 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 l’intervallo 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 l’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 123

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 un’interfaccia upstream e di una o più interfacce downstream. L’interfaccia upstream è quella da cui arriva il traffico Multicast, le interfacce downstream sono quelle su cui deve essere reinstradato. Per specificare l’interfaccia di tipo upstrem il comando è:

set igmp-proxy upstream <ifname> Per specificare l’interfaccia di downstream il comando è:

set igmp-proxy downstream <ifname> Nel caso in cui si la sorgente di traffico sia esterna alla classe di indirizzi dell’interfaccia 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 dall’interfaccia upstream sono automaticamente reinstradati. Impostando il comando set igmp-proxy altnet a.b.c.d/N, l’effetto è 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 l’intervallo di invio dei pacchetti IGMP Query sull’interfaccia downstream si può usare il comando: set igmp-proxy directive membership-query-interval N

8 La funzionalità è disponibile a partire dalla versione 1.1.4.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 124

mentre per inoltrare sull’interfaccia 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 igmp-proxy upstream tun0 ratelimit 0 threshold 1 set igmp-proxy altnet 10.184.23.0/24 set igmp-proxy downstream eth1 set igmp-proxy 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 sull’interfaccia 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 125

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 add <input_interface> <OriginAddress> <MulticastGroup> smcroute add <input_interface> <OriginAddress> <MulticastGroup> smcroute join <interface> <MulticastGroup> smcroute 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 126

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. L’attivazione di un tunnel GRE richiede la configurazione dei seguenti parametri:

• il nome da attribuire all’interfaccia tunnel GRE; • l’indirizzo IP della interfaccia fisica sulla quale si attiverà il tunnel (tunnel-

source); • l’indirizzo IP della interfaccia fisica remota verso cui sarà terminato il tunnel

(tunnel-destination); • l’indirizzo IP da attribuire in locale al tunnel (tunnel-address); • l’indirizzo 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 l’interfaccia tunnel);

Per stabilire il nome dell’interfaccia 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 l’indirizzo fisico di partenza del tunnel viene usata la forma: set gre generic tunnel-source <ipaddr>

per indicare direttamente l’IP sorgente del tunnel, oppure set gre generic tunnel-source <ifname>

per indicare che l’indirizzo sorgente deve essere quello associato all’interfaccia specificata.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 127

L’indirizzo 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 l’indirizzo dell’altro estremo del tunnel: set gre generic tunnel-peer <ipaddr/N>

Ad esempio, supponendo di voler stabilire un tunnel GRE tra l’interfaccia GPRS locale e l’host remoto 89.119.108.108, possiamo creare il tunnel tgprs0 mediante i seguenti comandi CLI: set gre generic name tgprs0 set gre generic tunnel-source 217.201.146.129 set gre generic tunnel-destination 89.119.108.108 set gre generic tunnel-address 3.3.3.1/30 set gre generic tunnel-peer 3.3.3.2/30 set gre generic 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 dell’interfaccia. 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 128

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 dell’interfaccia è 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 sull’interfaccia 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 dell’interfaccia fisica e 24 è l’overhead 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 129

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 l’interfaccia specificata sia attiva, per cui è opportuno che l’attivazione 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 l’intervallo di keepalive e il numero di tentativi prima di dichiarare fuori servizio il tunnel. Anche se la trasmissione non è abilitata, Imola risponde sempre ad eventuali pacchetti di keep-alive ricevuti.

TRIGGER GRE

Nel caso in cui sia stata abilitata la funzione di trasmissione dei messaggi di keep-alive è possibile configurare dei trigger che verranno eseguiti nel momento in cui si ha il cambiamento di stato dell’interfaccia 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 sull’interfaccia tunnel quando questo è attivo, e sull’interfaccia 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 l’indirizzo locale attestato all’interfaccia GPRS è 172.10.1.1 e l’indirizzo remoto è 172.20.1.1 i comandi:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 130

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

sono equivalenti ai seguenti, prodotti utilizzando il comando ip: ip tunnel add tgprs0 mode gre local 172.10.1.1 remote 172.20.1.1 ttl 64 ip link set tgprs0 up ip link set tgprs0 multicast on ip addr add 100.100.100.1/30 peer 100.100.100.2/30 In questo caso, per l’attivazione automatica al restart del router, è necessario impostare come trigger tutta la sequenza di comandi ip necessari: Ad esempio, per attivare il tunnel all’attivazione 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 all’interfaccia 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

L’utilizzo diretto del comando ip consente di attivare più tunnel GRE contemporanei. Qualora l’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 131

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 l’interfaccia 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 l’indirizzo IP della interfaccia locale sulla quale sarà attivato il tunnel si usa il comando: set ipsec local-end <ip address>

Per impostare l’indirizzo IP della interfaccia remota che costituisce l’estremo 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 l’attivazione del comando: set ipsec nexthop <value> Il parametro <value> dovrà coincidere con l’indirizzo IP pubblico con il quale il router si affaccia alla rete IP pubblica. Volendo specificare come il router locale si deve presentare per l’autenticazione, si usa il comando: set ipsec local-id <value> Il parametro <value> può essere un indirizzo IP o un fully-qualified domain name.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 132

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| … |tunnel7] remote-subnet <subnet address>/<subnet prefix length> 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 I I) si usa il comando: set ipsec tunnel0| … |tunnel7 esp <protocol>

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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 133

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

Una configurazione single-tunnel IPsec può, ad esempio, essere attivata mediante i seguenti semplici comandi CLI: set ipsec interface eth0 set ipsec local-end 10.10.2.210 set ipsec local-subnet 172.151.0.0/16 set ipsec nexthop 10.10.2.211 set ipsec remote-end 10.10.2.211 set ipsec remote-subnet 173.151.0.0/16 set ipsec secret pippo654321 set ipsec nat-t yes set ipsec tunnel0 negotiation main set ipsec tunnel0 ike 3des-md5-modp1024 set ipsec tunnel0 keyexchange yes set ipsec auto-on set ipsec 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 => [email protected] 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, l’IPSec 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 134

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 ipsec interface eth0 set ipsec local-end 10.10.2.210 set ipsec local-subnet 172.151.0.0/16 set ipsec nexthop 10.10.2.211 set ipsec remote-end 10.10.2.211 set ipsec remote-subnet 173.151.0.0/16 set ipsec secret pippo654321 set ipsec nat-t yes set ipsec tunnel0 negotiation main set ipsec tunnel0 ike 3des-md5-modp1024 set ipsec tunnel0 keyexchange yes set ipsec auto-on set ipsec on set trigger ipsec up ipstun0 ip route add 173.151.0.0/24 dev ipsec0 set trigger ipsec up ipstun0 logger –r 10.10.2.1 IPSec is up set trigger ipsec down ipstun0 ip route del 173.151.0.0/24 dev ipsec0 set trigger ipsec down ipstun0 logger –t 10.10.2.1 IPSec is down 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 sull’interfaccia 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 sull’interfaccia ipsec0.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 135

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 dall’interfaccia. 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 136

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 dall’interfaccia, 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 qos class <class name> no-rate set qos class <class name> no-max-rate set qos class <class name> no-burst set qos class <class name> 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 137

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 qos class <class name> no-prot set qos class <class name> no-sport set qos class <class name> no-dport set qos class <class name> no-ipp set qos class <class name> no-from set qos class <class name> 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 138

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 class DSCP (TOS): 40 RT class source IP address: RT class destionation IP address: RT class IPP vaule: RT class rate (kbit) 240 RT class max rate (kbit) 240 MC class DSCP (TOS): MC class source IP address: MC class destionation IP address: 11.11.11.250 MC class IPP vaule: 16 MC class rate (kbit): 180 MC class max rate (kbit): 530 BE class DSCP (TOS): BE class source IP address: BE class destionation IP address: BE class IPP vaule: 0 BE class rate (kbit): 80 BE class 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 htb 1:1 root rate 530000bit ceil 530000bit burst 95Kb cburst 95Kb class htb RT parent 1:1 prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb class htb MC parent 1:1 prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb class htb BE parent 1:1 prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb class htb 1:1 root rate 530000bit ceil 530000bit burst 95Kb cburst 95Kb class htb RT parent 1:1 prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb class htb MC parent 1:1 prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb class htb BE parent 1:1 prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb class htb 1:1 root rate 530000bit ceil 530000bit burst 95Kb cburst 95Kb class htb RT parent 1:1 prio 1 rate 240000bit ceil 240000bit burst 30Kb cburst 30Kb class htb MC parent 1:1 prio 2 rate 180000bit ceil 530000bit burst 45Kb cburst 45Kb class htb BE parent 1:1 prio 2 rate 80000bit ceil 530000bit burst 20Kb cburst 20Kb

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 139

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 1: protocol ip pref 1 fw filter parent 1: protocol ip pref 1 fw handle 0x64 classid RT [truncated police tbf] Sent 0 bytes 0 pkts (dropped 0, overlimits 0) filter parent 1: protocol ip pref 2 fw filter parent 1: protocol ip pref 2 fw handle 0x12c classid BE filter parent 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 qos dev atm0 set qos total-rate 530 set qos class RT ipp 5 set qos class MC to 11.11.11.250 setipp 2 set qos class BE setipp 0 set qos class RT rate 240 maxrate 240 set qos class MC rate 180 maxrate 530 set qos class BE rate 80 maxrate 530 set qos on

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 140

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. L’unità 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 l’intero 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 un’altra classe: set qos-ext policy <name> r2q <value>

Una politica di traffico può essere cancellata con il commando: set qos-ext no-policy <name>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 141

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 qos-ext class <name> no-bandwidth set qos-ext class <name> no-bandwidth percent set qos-ext class <name> no-bandwidth max set qos-ext class <name> no-bandwidth burst set qos-ext class <name> no-bandwidth burst-max

Una classe può essere cancellata con il comando: set qos-ext no-class <name>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 142

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>] L’opzione chain può essere specificata per applicare il filtro appena il pacchetto è ricevuto sulla interfaccia (pre-routing) oppure dopo che è già stato instradato verso l’interfaccia 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 l’opzione 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>]

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 143

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 all’azione 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 144

Visualizzazione della configurazione e statistiche

La configurazione della QoS introdotta via CLI può essere esaminata nell’output di show config <option> … … … set qos-ext policy my-policy set qos-ext policy my-policy interface eth1 set qos-ext policy my-policy bandwidth 500 set qos-ext policy my-policy reserved-bandwidth 10 set qos-ext class RT set qos-ext class RT policy my-policy set qos-ext class RT priority 300 set qos-ext class RT filter match ipp 5 set qos-ext class DATA1 set qos-ext class DATA1 policy my-policy set qos-ext class DATA1 bandwidth percent 50 set qos-ext class DATA1 filter match dst-ip 13.13.13.0/24 set qos-ext class DATA1 filter set ipp 2 set qos-ext class DATA2 set qos-ext class DATA2 policy my-policy set qos-ext class DATA2 bandwidth percent 50 set qos-ext class DATA2 filter set ipp 0 set qos-ext 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 parent 1: protocol ip pref 1 fw filter parent 1: protocol ip pref 1 fw handle 0x64 classid RT filter parent 1: protocol ip pref 2 fw filter parent 1: protocol ip pref 2 fw handle 0x12c classid DATA2 filter parent 1: protocol ip pref 2 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 145

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 parent 1: protocol ip pref 1 fw filter parent 1: protocol ip pref 1 fw handle 0x64 classid RT filter parent 1: protocol ip pref 2 fw filter parent 1: protocol ip pref 2 fw handle 0x12c classid DATA2 filter parent 1: protocol ip pref 2 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 anywhere DSCP match 0x05 MARK set 0x64 0 0 ACCEPT all -- any any anywhere 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 anywhere MARK match 0xc8 DSCP set 0x10 0 0 ACCEPT all -- any any anywhere anywhere MARK match 0xc8 386 32154 MARK all -- any any anywhere anywhere MARK set 0x12c 386 32154 ACCEPT all -- any any anywhere anywhere 0 0 DSCP all -- any any anywhere anywhere MARK match 0x12c DSCP set 0x00 0 0 ACCEPT all -- any any anywhere 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 146

Esempi

Nell’esempio 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 147

Ad esempio, per limitare ad 1 Mbit/sec il traffico in uscita dall’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 148

VLAN

Imola supporta il protocollo 802.1q che permette di costruire LAN virtuali completamente indipendenti su un solo link fisico. L’header dei pacchetti LAN viene modificato includendo l’indicazione 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 dall’identificativo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 149

Per rimuovere la configurazione di una porta si usa il comando:

set switch no-port ethx Per rimuovere l’intera 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. Per visualizzare la configurazione di tutte le VLan si usa il comando:

show switch vlan 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 status eth1 eth1 VLan id: 1 802.1Q is enabled as Secure mode Port is a member of VLan 100. Frames egress Tagged

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

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 150

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 l’interfaccia fisica di rete e non l’interfaccia associata ad una porta. Per i modelli Imola X2Z0 con Z=2, si può specificare solo l’interfaccia 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 > show interface vlan status eth0.100 eth0.100 VID: 100 REORDER_HDR: 1 dev->priv_flags: 1 total frames received: 0 total bytes received: 0 Broadcast/Multicast Rcvd: 0 total frames transmitted: 0 total bytes transmitted: 0 total headroom inc: 0 total encap on xmit: 0 Device: eth0 INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 EGRESSS priority mappings: EGRESSS dscp mappings:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 151

RADIUS

CONFIGURAZIONE PROTOCOLLO RADIUS

Imola supporta l’autenticazione e relativo logging mediante protocollo Radius. Le modalità di autenticazione offerte sono le seguenti:

• locale mediante database user/password interno all’Imola • remota tramite protocollo Radius

In caso di autenticazione Radius abilitata, l’accesso da remoto all’apparato è negato se l’utente fornisce login o password errati. In caso di mancata risposta ad una richiesta di autenticazione Radius sarà richiesta l’autenticazione locale. Per quanto riguarda la configurazione della modalità di autenticazione Radius, i parametri più significativi sono:

• l’ordine con il quale l’autenticazione viene effettuata: quest’ultima può essere local (per autenticazione locale mediante database interno) o radius (autenticazione remota);

• l’indirizzo IP (ed eventuale porta) del Radius Server; • l’indirizzo IP (ed eventuale porta) dell’Account Server; • la chiave mediante la quale la richiesta di autenticazione (prima

dell’autenticazione di un utente) si dovrà presentare al Radius Server. È inoltre attivabile la possibilità di inviare all’Account Server tutti i comandi impostati sulla interfaccia di configurazione CLI dall’utente. L’autenticazione mediante Radius Server può essere effettuata mediante i seguenti comandi CLI: set radius authhost <IP>[:<port>] [<IP>:<port>] set radius accthost <IP>[:<port>] [<IP>:<port>] set radius authorder radius local set radius log-cli-commands set radius retries 2 set radius timeout 5 set radius secret <IP> <secret> set radius on

Il comando set radius authhost <IP>[:<port>] [<IP>:<port>] viene utilizzato per configurare gli IP address dei Radius Server. Il comando set radius accthost <IP>[:<port>] [<IP>:<port>] viene utilizzato per configurare gli IP address degli Account Server.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 152

Il comando: set radius authorder radius local viene utilizzato per configurare l’ordine con il quale si dovrà consentire l’autenticazione. La sequenza contenuta nel comando indica che l’autenticazione 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 153

PROTOCOLLO SNMP

CONFIGURAZIONE PROTOCOLLO SNMP

Per attivare l’agente 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 L’agent 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 154

set snmp community notsopublic access ro source <ipaddr> oid system set snmp on

permette l’accesso 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, LinkUp, LinkDown, AuthenticationFailure) sono disponibili i comandi: set snmp trapcommunity <value> set snmp traphost <ipaddr>

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 snmp trap-poll-frequency <value> set snmp trap-retries <value> set snmp trap-timeout <value> set snmp on

Ad esempio la sequenza di comandi: set snmp trap-poll-frequency 30 set snmp trap-retries 5 set snmp trap-timeout 10 set snmp 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 155

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 snmp no-authtrap set snmp no-community <value> access ro|rw set snmp no-trapcommunity <value> set snmp no-traphost <ipaddr> set snmp 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 156

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 157

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> è l’indirizzo 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 applicazioni

livello 2 applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di acl, redirect, source-nat

livello 3 applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di acccess-list, redirect, source-nat, accessi telnet e ftp, attivazione dialer isdn

livello 4

applicazioni, autenticazione logon utenti, log pacchetti IP in transito e filtrate dalle regole di access-lst, redirect, source-nat, accessi telnet e ftp, attivazione dialer isdn con messaggi di debug, attivazione link ADSL

Tabella 6

E’ possibile raccogliere i messaggi di log che arrivano solo da una categoria di messaggi con il comando:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 158

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 messaggi di debug info messaggi informativi notice messaggi di notifica warning messaggi di attenzione err messaggi di errore crit messaggi di errore critico alert messaggi di allerta emerg 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 log local set log level 4 set log max-lines 4000 set log 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 159

È 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 160

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. L’implementazione 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 all’impostazione 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> L’impostazione 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 dell’host della rete SNA raggiungibile tramite il peer remoto:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 161

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 l’opzione 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 icanreach no-mac-addr <mac address> [ mask <value> ]

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 l’invio 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:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 162

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 163

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 l’interfaccia hdlc con il seguente comando:

set cdn ipaddr 1.1.1.1 Si procede poi con la configurazione del sdlc. E’ necessario configurare l’interfaccia fisica :

set sdlc interface hdlc0 e l’indirizzo fisico della stazione connessa al router:

set sdlc cu addr <address> L’indirizzo deve essere specificato in notazione esadecimale. Se si desidera cancellare l’indirizzo 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,

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 164

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 l’indirizzo 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 Per visualizzare lo stato del peer locale e delle sue connessioni si usa il comando:

show dlsw peers

root@Imola > show config current set dlsw local-peer ipaddr 172.151.113.1 set dlsw remote-peer ipaddr 172.151.1.1 set dlsw local-peer keepalive 0 set dlsw local-peer pacing-window 20 set dlsw remote-peer target-mac 00:c0:26:dc:d8:39 set dlsw log level 1 set dlsw sdlc-binder addr c1 set dlsw sdlc-binder addr c1 sap 8 remote-sap 4 set dlsw sdlc-binder addr c1 xid 05d15a01 type 2 set dlsw sdlc-binder addr c1 vmac 00:c0:26:a1:46:00 set dlsw sdlc-binder addr c1 log level 6 set sdlc interface hdlc0 set sdlc cu addr c1 set sdlc log level 1 set dlsw on set wan protocol hdlc set wan mode v28 set cdn ipaddr 1.1.1.1 set cdn encoding nrz

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 165

Per visualizzare le capabilities del peer locale si usa il comando:

show dlsw capabilities local analogamente, per visualizzare le capabilities del peer remoto si usa il comando:

show dlsw capabilities Per visualizzare i circuiti stabiliti tra il peer locale e il suo partner remoto si usa il comando:

show dlsw circuits

root@Imola > show dlsw peers Peer state ckts pkts_tx pkts_rx pkts_enq connect time 172.17.6.221 CONNECTED 0 2 2 0 Thu Jan 1 04:50:13 1970

root@Imola > show dlsw capabilities local Capabilities for peer: 172.17.6.221 Vendor Id : 5AB00 DLSW version : 1 DLSW release : 0 init pacing window : 20 tcp connections : 1 supported saps : all MAC Address exclusivity : 0

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 166

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

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:

root@Imola > show dlsw circuits Id local addr(lsap) remote addr(rsap) state connect time 0 00:a0:d1:be:4c:a1(4 ) 02:00:68:0e:04:00(4 ) CONNECTED Thu Jan 1 02:36:56 1970 Flow Control Tx CW:20 Permitted:37 Rx CW:20 Granted:37 Bytes:85/42 Info Frames:3/3 XID-frames:1/0 UInfo Frames:0/0 Total number of circuits connected = 1

root@Imola > show dlsw ssp Peer:172.17.6.221 received transmitted CANUREACH_cs - circuit start 0 1 ICANREACH_cs - circuit start 1 0 REACH_ACK - reach acknowledgment 0 1 XIDFRAME - XID frame 0 1 CONTACT - contact remote station 1 0 CONTACTED - remote station contacted 0 1 INFOFRAME - information (I) frame 3 3 CAP_EXCHANGE - capabilities exchange 2 2 Last SSP Received: INFOFRAME Last SSP Sent: INFOFRAME

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 167

internet

Imola

Sede Periferica

Router

CED

Host

Remote Peer 10.160.1.1

Local Peer 10.10.0.1

MAC address 00:0A:0B:0C:0D:0E

DLS

W

TCP

/IP

DLC

DLC

SSP

SSP

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. L’indirizzo IP assegnato è 10.10.0.1.

• Un router generico DLSw che collega la LAN del CED alla rete internet. L’indirizzo è 10.160.0.1

• Un client, con MAC address 00:0A:01:02:03:04, che colloquia via DLC con l’host 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 dlsw local-peer ipaddr 10.10.0.1 set dlsw remote-peer ipaddr 10.160.1.1 set dlsw remote-peer target-mac 00:0A:0B:0C:0D:0E set dlsw on Per verificare il funzionamento: show dlsw peers show dlsw capabilities local show dlsw capabilities

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 168

Attivazione e verifica dei circuiti L’attivazione di un circuito avviene in seguito ad uno scambio di messaggi DLC tra il client e l’host che, a sua volta, genera uno scambio di messaggi SSP tra i partner DLSw.

Client

Local DLSw

Remote DLsw

Host

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

Local DLSw

Remote DLsw

Host

Info Info Info Info

Test req

XID

ContactSABME

UA Contacted

I Can Reach Ex

XID

I can Reach Cs

Reach ACK

XID

Test req Can U Reach Ex

Test res Test res

Can U Reach Cs

SABME

UA

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 169

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 l’implementazione 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 l’allineamento 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 l’allineamento 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 170

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à dell’indirizzo 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 all’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 171

mentre il comando: set udhcp off

disattiva il servizio DHCP Server. Sono infine disponibili i comandi per rimuovere le opzioni precedentemente impostate: set udhcp no-router set udhcp no-subnet set udhcp no-wins set udhcp no-dns set udhcp no-directive <directive> Infine con: set no-udhcp

il servizio DHCP Server viene disattivato e la relativa configurazione rimossa. Esempio: set udhcp interface eth0 set udhcp start-range 172.151.1.1 set udhcp end-range 172.151.1.100 set udhcp router 172.151.10.10 set udhcp dns 172.151.113.50 set udhcp lease-time 6000 set udhcp subnet 255.255.0.0 set udhcp 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 172

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 Expires in 00:c0:49:f2:30:69 172.151.113.10 9 days, 23 hours, 59 minutes, 30 seconds

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 173

TIMEZONE

CONFIGURAZIONE DEL TIMEZONE O FUSO ORARIO

Mediante apposito comando CLI è possibile configurare il timezone su Imola. I timezone configurabili sono: CET GMT+12 GMT+7 GMT-11 GMT-4 GMT0 WET GMT GMT+2 GMT+8 GMT-12 GMT-5 Greenwich Zulu GMT+0 GMT+3 GMT+9 GMT-13 GMT-6 MET GMT+1 GMT+4 GMT-0 GMT-14 GMT-7 UCT GMT+10 GMT+5 GMT-1 GMT-2 GMT-8 UTC GMT+11 GMT+6 GMT-10 GMT-3 GMT-9 Universal

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 174

TRIGGER: GESTIONE ED ATTIVAZIONE EVENTI

TRIGGER O COMANDI DA ATTIVARE DOPO UN EVENTO

A seguito di un determinato evento è possibile l’attivazione di trigger o comandi di sistema. Normalmente l’esecuzione 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: l’interfaccia ADSL può venire attivata in un momento successivo all’accensione dell’Imola: se al momento dell’attivazione di tale interfaccia l’utente 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 l’utente desidera disattivare il servizio bgp dovrà configurare il trigger : set trigger adsl down set bgp off

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 175

Analogamente, al momento dell’attivazione dell’interfaccia 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 nell’esempio 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 backup check-interval 5 set backup check-retries 3 set backup check-wait 1 set backup 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à dell’indirizzo 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 176

con tali comandi nel momento in cui Imola entra nello stato di backup, cioè l’indirizzo 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 dall’impiego del trigger timer-tick. Per l’impiego di questo comando deve essere preliminarmente specificata la frequenza temporale (in secondi) con cui il router genera l’evento timer-tick . set timer-tick 3600 Alla rilevazione di ognuno di questi eventi, può essere programmata l’esecuzione periodica di un comando CLI, mediante la seguente sintassi: set trigger timer-tick <command>

E’ possibile attivare l’esecuzione di un comando CLI condizionatamente alla disponibilità dell’interfaccia tunnel GRE9. Ad esempio, se al momento in cui tale tunnel sarà attivo l’utente 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, l’utente 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 all’evento 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 l’interfaccia GPRS e set trigger isdn-tc per quella ISDN. I seguenti esempi ne chiariranno il modo di impiego. set gprs traffic-control input-threshold 10000 set gprs traffic-control output-threshold 20000 set gprs traffic-control mode or set gprs traffic-control timer-unit 60 set trigger gprs-tc up logger -h 192.168.2.1 GPRS Traffic is too High set 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 9 La disponibilità del tunnel GRE è controllata solo e soltanto se al momento della definizione del tunnel è stato configurato il meccanismo di keep-alive.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 177

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 isdn traffic-control input-threshold 60000 set isdn traffic-control output-threshold 60000 set isdn traffic-control mode or set isdn traffic-control timer-unit 10 set trigger isdn-tc up isdnctrl addlink ippp1 set 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 un’interfaccia di rete, mentre il comando set trigger ifstate up|down permette di specificare le azioni da eseguire in base allo stato dell’interfaccia 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 dell’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 178

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: l’opzione –i specifica l’intervallo di campionamento dell’occupazione di cpu. Se non è specificato, il controllo viene effettuato ogni 5 secondi l’opzione –h definisce la soglia massima che, se superata per un tempo pari all’intervallo specificato con l’opzione –r, scatena l’evento. Tale soglia viene espressa come un valore percentuale compreso tra 1 e 100. l’opzione –l definisce la soglia minima che, se l’occupazione di cpu ne rimane al di sotto per un tempo pari all’intervallo specificato con l’opzione –f, scatena l’evento. 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. L’evento 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 dell’evento si usa la seguente sintassi: set trigger cpu-threshold rise sendtrap cpuThresholdRise <host> <community> set trigger cpu-threshold fall sendtrap cpuThresholdFall <host> <community>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 179

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 l’intervallo 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 sull’interfaccia specificata e il collegamento principale viene dichiarato disponibile non appena si ottiene una risposta. Mediante il comando: set backup check-tos N

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 180

è 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 l’indirizzo a.b.c.d utilizzando l’interfaccia ifn1, in caso di fallimento si inviano i pacchetti utilizzando l’interfaccia ifn2. La linea primaria viene dichiarata indisponibile se l’indirizzo 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 l’interfaccia ifn1 si tenta di raggiungere uno degli indirizzi della lista. Se nessuno risponde si utilizza l’interfaccia 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 l’intervallo tra un gruppo di tentativi e il successivo sono configurabili mediante i comandi: set backup check-retries N

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 181

set backup check-wait T1 set backup check-interval T2

La sequenza di pacchetti bfd continua ad essere trasmessa sull’interfaccia 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 un’interfaccia di rete specificata. Il comando necessario è:

set backup checking-interface <ifname> Il collegamento principale viene dichiarato non disponibile se lo stato operativo dell’interfaccia è down. La frequenza di verifica dello stato dell’interfaccia 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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 182

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>

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 183

ROUTING AVANZATO E BACKUP

Si consideri il seguente scenario come esempio:

1.1.1.1

1.1.1.2 3.3.3.2

3.3.3.1

10.10.0.0/16

atm0ppp0

ADSL GPRS

10.10.10.1210.10.10.11

dove senza perder in generalità, si assume che: l’indirizzo 1.1.1.1 è associato all’interfaccia atm0 di Imola e 1.1.1.2 è il

nexthop l’indirizzo 3.3.3.1 è associato all’interfaccia ppp0 di Imola e 3.3.3.2 è il

nexthop la rete raggiungibile attraverso l’interfaccia atm0 è ADSL la rete raggiungibile attraverso l’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 184

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è sull’interfaccia 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 l’altra 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 185

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 rip network 1.1.1.0/30 set rip directive route 10.10.0.0/16 set rip directive redistribute static set rip on In questo caso non è stato necessario utilizzare il meccanismo di trigger in quanto abbiamo assunto che l’interfaccia 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 186

SCRIPT

Il comando script permette la creazione, la modifica, la visualizzazione, il salvataggio e l’esecuzione 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 l’editor 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 187

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 l’esecuzione manuale: script run-sync run_service.sh (esecuzione sincrona) script run-backg run_service.sh (esecuzione in background) e per l’esecuzione programmata: set trigger gprs up script run-backg run_service.sh Per interrompere l’esecuzione di uno script, impiegare il comando: script stop <nome_file>.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 188

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 rtr frequency <seconds> set rtr timeout <millisec> set rtr lifetime <seconds> set rtr pkt-size <bytes> set rtr 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 un’operazione di icmp echo request, dall’invio 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 dst-port verso l'indirizzo dst-host. Con il comando: set rtr threshold N

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 189

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 l’operazione 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 L’esecuzione 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 è:

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 190

show rtr config|status|statistics

Specificando l’argomento 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 l’argomento 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

L’output 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 l’argomento 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 191

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 gprs apn myapn.tim.it set gprs login mylogin password mypasswd set gprs default-route set gprs on set loopback ipaddr 10.10.0.1 set loopback on set eth1 ipaddr 172.15.113.1 netmask 255.255.0.0 set 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 192

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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 193

A parte casi molto rari, l’aggiornamento 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, l’utente riceve due file, chiamati hsdpa_1.1.2.tgz ed upgrade_hspa.sh e li copia sul suo server TFTP. L’aggiornamento 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.

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 194

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 l’esecuzione 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 l’impiego 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 195

il tunnel sarà eseguito anche al riavvio del router. È inoltre possibile condizionare l’esecuzione di un comando ad una vasta gamma di eventi di trigger, come ad esempio la disponibilità o meno di un’interfaccia o di un servizio. A titolo di esempio, per subordinare l’esecuzione del precedente Tunnel GRE alla disponibilità dell’interfaccia 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. L’interfaccia 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

IMOLA User Guide - Rev.21 Ver. 001

Tiesse 196

all'interfaccia ADSL. E' possibile specificare l’indirizzo 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 add -net a.b.c.d netmask n.n.n.n dev atm0 route add -net a.b.c.d netmask n.n.n.n gw <nexthop> route add -host a.b.c.d dev atm0 route add -host a.b.c.d gw <nexthop>