Sei sulla pagina 1di 305

IMOLA User Guide - Rev.24 Ver.

07

Imola User Guide

Tiesse 1
IMOLA User Guide - Rev.24 Ver. 06

Pubblicazione a cura di:


Tiesse S.p.A.
Via Asti, Area Industriale S. Bernardo
10015 IVREA (TO)
Italy

Copyright © 2003-2012, 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
Ottobre, 2005
Maggio, 2006
Dicembre, 2006
Febbraio, 2007
Aprile, 2007
Agosto, 2007
Dicembre, 2007
Gennaio, 2008
Maggio, 2008
Agosto, 2009
Ottobre, 2009
Dicembre,2009
Maggio, 2010
Ottobre, 2010
Novembre, 2010
Febbraio, 2011
Aprile, 2011
Luglio, 2011
Settembre, 2011
Dicembre, 2011
Gennaio, 2012
Aprile, 2012
Maggio, 2012
Giugno, 2012
Ottobre, 2012
Dicembre, 2012
Marzo, 2013
Luglio, 2013

2 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Avvertenze per la sicurezza dell’utente

Utilizzare il cavo di alimentazione fornito in dotazione. Inserire la spina del cavo di


alimentazione direttamente in una presa correttamente collegata a terra.

Non collocare il sistema in un punto in cui il cavo di alimentazione possa essere


calpestato.

Non appoggiare oggetti sul cavo di alimentazione.

Se occorre scollegare l’alimentazione, staccare il cavo di alimentazione dalla parte


della presa di corrente.

Se presenti, le antenne, sia GSM che wi-fi, devono essere posizionate ad almeno 20
cm dalle persone.

Nel caso di modello provvisto di boccola


posteriore per la messa a terra (vedi es. in
figura): collegare l’apparato alla presa di terra
dell’impianto tramite capocorda e cavo giallo-
verde.

INSERIMENTO / ESTRAZIONE SIM (solo per i modelli che lo prevedono):

ATTENZIONE: prima di rimuovere il coperchio,


• spegnere l’apparato
• staccare i cavi di telecomunicazione (xDSL, ISDN)
• staccare il cavo di alimentazione dalla presa di corrente

Dopo aver operato all’interno del router,


• richiudere l’apparato
• collegare il cavo di alimentazione alla presa di corrente
• collegare i cavi di telecomunicazione (xDSL, ISDN)
• accendere l’apparato.

IN CASO DI GUASTO DELL’APPARATO:

• non intervenire in alcun modo sull’apparato


• contattare il distributore
• spedire l’apparato al centro di riparazione abilitato, seguendo le
procedute concordate.

Tiesse 3
IMOLA User Guide - Rev.24 Ver. 07

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.

4 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Introduzione ......................................................................................... 11
Accedere ad Imola ............................................................................... 17
Versione Software e Modello ............................................................................... 18
Accesso mediante porta ttyS0 ............................................................................... 18
Accesso mediante porta eth0 o eth1 ...................................................................... 19
Accesso mediante porta ISDN BRI ....................................................................... 19
Username e Password ........................................................................................... 20
Concedere e Revocare Privilegi ............................................................................ 21
Livelli di Privilegio e Comando enable ................................................................. 22
Accesso tramite SSH ............................................................................................ 25
Procedura di Password Recovery .......................................................................... 25
Reboot del router .................................................................................................. 26
Default settings ..................................................................................................... 26
Configurazione di Imola ...................................................................... 27
La procedura di configurazione ............................................................................ 27
Guida ai comandi CLI .......................................................................................... 30
Interfaccia Ethernet ............................................................................. 32
Configurazione dell’interfaccia ............................................................................. 32
Comando detect-link-state .................................................................................... 34
Visualizzazione stato interfaccia ........................................................................... 34
Significato LED interfaccia Ethernet .................................................................... 36
Trigger Ethernet ................................................................................................... 36
Trigger DHCP Client ............................................................................................ 37
Gestione porte Ethernet: mii-tool .......................................................................... 37
Interfaccia ISDN .................................................................................. 39
Comandi per la configurazione dell’interfaccia ISDN ........................................... 39
Significato LED ISDN.......................................................................................... 47
Trigger ISDN ....................................................................................................... 48
Verifica Sessione ISDN ........................................................................................ 48
Controllo di traffico .............................................................................................. 49
Interfaccia ADSL ................................................................................. 51
Configurazione ..................................................................................................... 51
Visualizzazione .................................................................................................... 53
Comando oamping ............................................................................................... 56
Significato dei LED .............................................................................................. 57
Trigger ADSL ...................................................................................................... 57
Interfaccia SHDSL ............................................................................... 58
Configurazione ..................................................................................................... 58
Visualizzazione .................................................................................................... 61
Significato dei LED .............................................................................................. 62
Trigger SHDSL .................................................................................................... 62
Interfaccia Frame Relay ...................................................................... 63
Configurazione ..................................................................................................... 63
Visualizzazione .................................................................................................... 65
Interfaccia Mobile ................................................................................ 67
Configurazione ..................................................................................................... 67
Visualizzazione .................................................................................................... 72
Significato dei LED .............................................................................................. 77

Tiesse 5
IMOLA User Guide - Rev.24 Ver. 07

Trigger GPRS ....................................................................................................... 77


Controllo di Traffico ............................................................................................. 78
Controllo Sessione GPRS ..................................................................................... 79
Verifica Sessione GPRS ....................................................................................... 80
Raccolta dati di Traffico ....................................................................................... 80
Gestione SMS....................................................................................................... 82
Notifica Connessione Mobile: Comando hello ...................................................... 84
Interrogazione diretta del modem: Comando gprsat .............................................. 84
Doppia SIM Dati .................................................................................................. 87
Sblocco SIM......................................................................................................... 87
Lettura IMSI ed IMEI ........................................................................................... 88
Interfaccia WiFi ................................................................................... 90
Configurazione ..................................................................................................... 90
Visualizzazione .................................................................................................... 91
Interfaccia RS232 ................................................................................. 92
Introduzione ......................................................................................................... 92
Configurazione ..................................................................................................... 93
Visualizzazione .................................................................................................... 96
Connettori Seriali ................................................................................................. 97
Rotte Statiche ....................................................................................... 98
Configurazione Rotte Statiche .............................................................................. 98
Blocco del Traffico mediante Rotte statiche ........................................................ 100
Visualizzazione Rotte Statiche ............................................................................ 100
Indirizzo di Loopback, Gestione Interfacce di Rete......................... 102
Indirizzo Loopback ............................................................................................. 102
Comando ifconfig ............................................................................................... 103
Indirizzi Secondari (Alias) .................................................................................. 104
Comando ip ........................................................................................................ 105
Generalità ........................................................................................................... 105
Visualizzare lo stato delle interfacce, le tabelle di arp e di routing mediante
comando ip ......................................................................................................... 106
Cancellare le tabelle di arp mediante comando ip................................................ 107
Disabilitare un’interfaccia di rete mediante comando ip ...................................... 107
Aggiungere un indirizzo di rete mediante comando ip ........................................ 108
Policy routing mediante comando ip ................................................................... 108
PVC Bundling .................................................................................................... 109
Comando ping .................................................................................................... 113
Comando traceroute............................................................................................ 114
Comando tcpdump ............................................................................................. 114
Comando load-avg ............................................................................................. 115
Comando set interface ........................................................................................ 116
Access List, Source Nat e Redirect .................................................... 117
Access List ......................................................................................................... 117
Configurazione ................................................................................................... 117
Visualizzazione .................................................................................................. 120
Redirect .............................................................................................................. 121
Configurazione ................................................................................................... 121
Visualizzazione .................................................................................................. 122
Source-nat .......................................................................................................... 122

6 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Configurazione ................................................................................................... 122


Visualizzazione .................................................................................................. 124
Funzioni di Firewall: iptables ............................................................ 125
Generalità ........................................................................................................... 125
Tabelle, Catene, Regole e Target ........................................................................ 125
Firewall con la tabella filter ................................................................................ 126
Network address translation con la tabella nat..................................................... 127
Port Forwarding.................................................................................................. 128
Alterazione dei pacchetti con la tabella mangle ................................................... 128
Applicazione delle regole sui pacchetti ............................................................... 130
Criteri standard di match..................................................................................... 130
Target ................................................................................................................. 132
Criteri avanzati di match ..................................................................................... 134
Load Balancing .................................................................................................. 137
Logging dei pacchetti ......................................................................................... 137
Accounting dei pacchetti .................................................................................... 138
Esempi di utilizzo ............................................................................................... 139
Connection Tracking .......................................................................................... 142
Un esempio di Firewall....................................................................................... 148
Comandi di gestione e configurazione ................................................................ 149
Protocollo VRRP ................................................................................ 153
Configurazione ................................................................................................... 153
Visualizzazione .................................................................................................. 154
Trigger VRRP .................................................................................................... 154
Configurazione VRRP mediante comando vrrpd................................................. 155
Protocolli di Routing Dinamico: BGP, OSPF e RIP ........................ 156
Configurazione protocollo rip ............................................................................. 156
Configurazione protocollo ospf........................................................................... 158
Configurazione protocollo bgp ........................................................................... 161
Esempi di configurazione ................................................................................... 164
BGP ................................................................................................................... 165
Configurazione del Router-Id ............................................................................. 167
BGP con filtro delle rotte e route-map ................................................................ 168
BGP con annuncio della rotta di default .............................................................. 169
BGP con redistribuzione di network connesse .................................................... 169
BGP con redistribuzione di rotte statiche ............................................................ 170
BGP con redistribuzione di rotte ospf ................................................................. 172
BGP che redistribuisce OSPF e OSPF che redistribuisce BGP ............................ 175
BGP con doppio neighbor................................................................................... 176
Comando router .................................................................................................. 180
Protocollo di Multicast Routing ........................................................ 183
Protocol Indipendent Multicast ........................................................................... 183
Multicat Source Discovery Protocol ................................................................... 185
IGMP ................................................................................................................ 186
-IGMP Snooping ................................................................................................ 186
IGMP Proxy ....................................................................................................... 186
Static Multicast Routing ..................................................................................... 188
Comandi per il Multicast Generici ...................................................................... 189
Tunnel GRE ....................................................................................... 190

Tiesse 7
IMOLA User Guide - Rev.24 Ver. 07

Configurazione di un tunnel GRE ....................................................................... 190


Configurazione di più tunnel GRE ...................................................................... 193
Trigger GRE ....................................................................................................... 193
Configurazione GRE mediante comando create-tunnel ....................................... 194
Configurazione GRE mediante comando ip ........................................................ 194
Dynamic GRE mediante procollo NHRP ............................................................ 195
IPsec.................................................................................................... 197
Configurazione di un tunnel IPsec ...................................................................... 197
Trigger IPSec ..................................................................................................... 200
Tunnel L2TP ...................................................................................... 201
Configurazione di un tunnel L2TP ...................................................................... 201
Visualizzazione stato del tunnel .......................................................................... 202
Trigger l2tp ........................................................................................................ 203
Easy VPN............................................................................................ 204
Configurazione di un tunnel EasyVPN ............................................................... 204
Trigger ezvpn ..................................................................................................... 205
Quality of Service ............................................................................... 206
Introduzione ....................................................................................................... 206
Classificazione del Traffico Mediante QOS ........................................................ 206
Configurazione della politica di traffico .............................................................. 206
Configurazione delle classi ................................................................................. 207
Classificazione del traffico ................................................................................. 207
Marcatura del traffico ......................................................................................... 208
Attivazione della Qos ......................................................................................... 208
Visualizzazione della configurazione e statistiche ............................................... 209
Esempio ............................................................................................................. 210
Classificazione Mediante QOS Estesa ................................................................ 211
Configurazione di una politica di traffico ............................................................ 211
Configurazione di una classe .............................................................................. 212
Classificazione del traffico ................................................................................. 213
Marcatura del traffico ......................................................................................... 215
Policing .............................................................................................................. 216
Queue Discipline PRIO ...................................................................................... 216
Attivazione della QOS ........................................................................................ 216
Visualizzazione della configurazione e statistiche ............................................... 217
Esempi ............................................................................................................... 219
Limitazione della Banda in Output ..................................................................... 220
VLAN e Switch ................................................................................... 221
TACACS............................................................................................. 226
Configurazione protocollo TACACS .................................................................. 226
Accounting e Autorizzazione .............................................................................. 228
RADIUS .............................................................................................. 231
Configurazione protocollo RADIUS ................................................................... 231
Protocollo SNMP ............................................................................... 233
Configurazione protocollo SNMP ....................................................................... 233
Configurazione SNMP v3 ................................................................................... 235
Visualizzazione SNMP ....................................................................................... 236
Syslog .................................................................................................. 238
Configurazione della funzionalità di logging ...................................................... 238

8 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Protocollo DLSW ............................................................................... 242


Introduzione ....................................................................................................... 242
Configurazione DLSw ........................................................................................ 242
Configurazione in Ambiente DLC IEEE 802.2 ................................................... 244
Configurazione in Ambiente SDLC .................................................................... 245
Visualizzazione Configurazione e Stato DSLw ................................................... 246
Esempio di Uso .................................................................................................. 248
NTP ..................................................................................................... 251
Configurazione del protocollo NTP .................................................................... 251
Trigger NTP ....................................................................................................... 252
Esecuzione Pianificata di Comandi ................................................... 253
Esecuzione di Comandi in base alla posizione geografica................ 255
Protocollo DHCP ............................................................................... 258
Configurazione del servizio DHCP ..................................................................... 258
Istanze Multiple del servizio DHCP .................................................................... 259
Servizio DHCP Relay Agent............................................................................... 262
Visualizzazione del servizio DHCP .................................................................... 263
Timezone ............................................................................................ 264
Configurazione del TimeZone o fuso orario ........................................................ 264
Trigger: Gestione ed Attivazione Eventi .......................................... 265
Trigger o comandi da attivare dopo un evento .................................................... 265
Controllo Stato Operativo Interfacce di Rete....................................................... 268
Controllo occupazione della CPU ....................................................................... 268
Meccanismi di Attivazione Backup ................................................... 270
Comando set backup........................................................................................... 270
Comando set trigger backup ............................................................................... 274
Comando set extbackup ...................................................................................... 274
Policy Routing .................................................................................... 276
Split Access ........................................................................................................ 277
Load Balancing .................................................................................................. 277
Script .................................................................................................. 278
Responder Time Reporter ................................................................. 280
Configurazione del servizio ................................................................................ 280
Visualizzazione del servizio ............................................................................... 281
IPSLA Responder ............................................................................................... 282
Gestione Configurazioni Aggiornamento Software ......................... 284
Gestione delle configurazioni intermedie ............................................................ 284
Download e upload delle configurazioni ............................................................. 285
Aggiornamento del software ............................................................................... 286
Caveat ................................................................................................. 288
Esecuzione comandi CLI al reboot del router...................................................... 288
Routing tables..................................................................................................... 289
Protocollo gre ..................................................................................................... 290
Esempi di Configurazione ................................................................. 291
DHCP Server...................................................................................................... 291
VLAN in modalità Access .................................................................................. 291
VLAN in modalità Trunk ................................................................................... 292
ADSL con NAT di un IP Pubblico e LAN Cliente con IP Privati ........................ 293

Tiesse 9
IMOLA User Guide - Rev.24 Ver. 07

ADSL con un Pool di IP Pubblici e un Pool di IP Privati ................................... 293


Connessione HDSL ........................................................................................... 294
GPRS su APN Pubblica (Navigazione Internet) ................................................. 295
GPRS su APN privata con Tunnel GRE.............................................................. 296
ISDN con indirizzo dinamico ricevuto dal Pop e NAT sull’interfaccia ISDN ...... 298
ADSL con Backup su GPRS............................................................................... 298
ADSL con Backup su GPRS con invio segnalazione backup via SMS ................ 300
QoS Per Connessione ADSL .............................................................................. 302
QoS Per Connessione HDSL .............................................................................. 303
Configurazione Loopback................................................................................... 303
Configurazione SNMP ....................................................................................... 303
Configurazione TACACS ................................................................................... 304
Configurazione RADIUS .................................................................................... 304
Configurazione Banner ....................................................................................... 305

10 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

INTRODUZIONE
IMOLA è una linea di dispositivi di rete che offrono funzioni di Router in
configurazioni wired e wireless (in questo caso supportando connessioni
GPRS/EDGE e UMTS/HSDPA/HSUPA/LTE). È 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.

Tiesse 11
IMOLA User Guide - Rev.24 Ver. 07

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
4 La connessione mobile è gprs/edge/umts/hsdps/hsupa
5 La connessione mobile è gprs/edge/umts/hsdpa/hsupa/lte
0 1 porta Ethernet presente
Y 1 2 porte Ethernet
2 Switch Ethernet 5 porte (4 porte nella versione LX)
3 E’ presente una porta wifi (oltre allo switch Ethernet)
4 4 porte seriali asincrone
8 8 porte seriali asincrone
0 Nessuna connessione WAN presente
Z 1 La connessione WAN è ADSL
2 La connessione WAN è ADSL2+
3 La connessione WAN è HDSL
4 La connessione WAN è SHDSL

Le versioni Imola 0220, 0320, 0320, 4320, 4200, 4300 e 0800 sono disponibili anche
con alimentatore esterno e denominate Imola LX, in questo caso la porta ISDN BRI
non è presente e lo switch presenta 4 porte Fast Ethernet invece di 5. Negli altri casi
per identificare un modello generico si adotta il termine Imola Full.

E’ disponibile inoltre il modello Lipari, funzionalmente equivalente al router Imola


con la differenza che supporta solo connessioni mobili.

Le caratteristiche principali sono:


• Network Processor Risc
• 64-128MB 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 i modelli LX)


• 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)
• 1 porta wifi 802.11 b/g/n
• 4/8 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/HSUPA (opzionale)
• 1 porta GMS/GPRS/EDGE/UMTS/HSDPA/HSUPA/LTE (opzionale)
• 1 porta seriale sincrona con connettore LFH 60 V.35(opzionale)
• 2 porte g.SHDSL che possono essere usate in modalità 2-Wire o 4-Wire

12 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Per verificare lo stato delle connessioni sono disponibili led luminosi1:

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

1
La disposizione dei led e la relativa etichetta possono variare in funzione del modello di
router

Tiesse 13
IMOLA User Guide - Rev.24 Ver. 07

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 funzione),
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.
INTERFACCIA SHDSL • led verde link ACCESSO: indica che il router ha
rilevato la presenza della rete
• led vede data LAMPEGGIANTE viene utilizzato per
indicare attività di traferimento dati

Ai servizi di comunicazione possono sono associate le seguenti funzionalità:

• Supporto ACLs
• Supporto Autenticazion e Accounting tramite RADIUS
• Supporto AAA tramite TACACS+
• Funzioni di NAT/PAT
• Funzioni Stateful Firewalling
• VPN con IPSec 3DES Encryption
• Tunnel GRE
• Tunnel PPtP
• Tunnel Open VPN
• Tunnel Easy VPN
• Advanced Routing (Policy Routing)
• Routing RIP, OSPF, BGP e supporto BFD
• Muticast con IGMP Proxy
• Supporto PIM (Protocol Indipendent Multicast - routing Multicast)
• Ottimizzazione di banda con il QoS (Quality of Service)
• Supporto VRRP (Virtual Router Redundant Protocol)
• Funzioni di IP SLA con Responder Time Reporter

14 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

• Supporto SNMP v1/v2/v3


• Supporto TR-069
• Supporto DHCP Server
• Funzioni di logging locale e remoto
• Accesso tramite Telnet ed SSH
• Comandi di amministrazione (ping, traceroute, ifconfig, …)

Un ambiente di Command Line Interface (CLI) permette la configurazione e la


gestione del sistema in maniera guidata e facilitata.

Tiesse 15
IMOLA User Guide - Rev.24 Ver. 07

Il modello Lipari si presenta come nella seguente figura::

E’ dotato di un modulo di alimentazione esterno AC/DC 5V.

Analogamente ad Imola, per distinguere le varie caratteristiche e interfacce di


comunicazione, ogni modello è identificato dalla sigla Lipari XY00, dove:

X identifica il tipo di connessione geografica su rete mobile presente.

I valori definiti sono:


X 1 La connessione mobile è gprs
2 La connessione mobile è gprs/edge
3 La connessione mobile è gprs/edge/umts/hsdpa
4 La connessione mobile è gprs/edge/umts/hsdpa/hsupa

Y identifica il numero di porte Lan Ethernet 10/100 presenti.

Y 0 1 porta Lan Ethernet 10/100


1 2 porte Lan Ethernet 10/100

16 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ACCEDERE AD IMOLA
L’accesso al router può essere effettuato mediante la porta console tramite apposito
cavo null modem, utilizzando un qualsiasi programma di emulazione di terminale
(hyperterm, minicom, ..) oppure tramite connessione telnet verso uno degli indirizzi IP
presenti su Imola.

I modelli Imola Full dispongono di una porta singola Fast Ethernet identifcata con il
termine eth0 e di uno switch integrato a 5 porte numerate da 1 a 5. Nella
configurazione di fabbrica tutte le porte dello switch asseriscono ad un unico indirizzo
IP e l’interfaccia logica è chiamata eth1.

I modelli Imola LX dispongono solamente dello switch integrato a 4 porte numerate


da 1 a 4. Nella configurazione di fabbrica tutte le porte asseriscono ad un unico
indirizzo IP associato all’interfaccia logica eth0.

In caso di connessione diretta alla singola del modello Imola Full (porta eth0) è
necessario usare un cavo LAN cross, mentre il tipo di cavo è ininfluente se si collega
ad una delle porte dello switch integrato, essendo prevista la funzionalità di auto-mdx:

Per i modelli con due solo porte Ethernet, senza lo switch le porte sono associate a
due interfacce logiche distinte chiamate rispettivamente eth0 ed eth1.

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 lista2:

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

Tiesse 17
IMOLA User Guide - Rev.24 Ver. 07

root@Imola> who
Connected Users:
ttyp1 root
ttyp2 root

You are logged on ttyp2


root@Imola>

VERSIONE SOFTWARE E MODELLO


Mediante il comando: show model si può leggere il modello di router:

root@IMOLA> show model


Tiesse Imola 4220 Multiprotocol Route

Mentre il comando show version mostra la versione di software presente:

root@IMOLA> show version

Imola version: 4.3.1-2

Il numero di versione segue la seguente convenzione: 4.x.y-N

Oltre ai router con versione 4.x.y-N, sono stati prodotti router la cui versione è del
tipo 1.x.y-N e router con versioni del tipo 2.x.y-N. Da un punto di vista funzionale
non vi è alcuna differenza: la prima cifra identifica la piattaforma hw utilizzata per la
produzione.

Il valore di x indica il major number, il valore di y indica il minor number.

Il valore del major number cambia in caso di funzionalità rilevanti, ad esempio con il
supporto del protocollo IPv6 si passa dalla release 4.3.1 alla release 4.4.0.
Il valore del minor si incrementa quando si aggiungono funzionalità indipendenti che
non impattano le altre funzioni software. Ad esempio con l’aggiunta del supporto
Tacacs si passa dalla release 4.3.0 alla release 4.3.1.
Il suffisso N indica il numero di build. Esso si incremente in caso di bug-fixing di
minore entità che in generale non richiedono l’esecuzione di test di non regressione.
Ad esempio effettuando una correzione all’interno del modulo che gestisce le funzioni
di IPSLA si passa dalla release 4.3.1-0 alla release 4.3.1-1.

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:

18 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

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

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

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

Tiesse 19
IMOLA User Guide - Rev.24 Ver. 07

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.

20 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:

Tiesse 21
IMOLA User Guide - Rev.24 Ver. 07

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


di configurazione.

LIVELLI DI PRIVILEGIO E COMANDO ENABLE


Oltre agli utenti di tipo Administrative-User e di tipo Login se l’accesso al router
viene regolato da un server TACACS+ (o RADIUS) su Imola è possibile gestire dei livelli
di privilegio per stabilire quali comandi possono essere eseguiti.

E’ possibile definire fino a 15 livelli di privilegio, numerati da 0 a 14, dove maggiore


è il livello e maggiore sono i comandi disponibili. Inoltre esiste il livello 15 che
corrisponde a quello di utente superuser, cioè un utente che non ha alcuna restrizione
sui comandi da eseguire (analogo all’utente di tipo Administrative descritto nella
sezione precedente).

Nella configurazione di default sono presenti 3 livelli predefiniti:

• Livello 0 dove i soli comandi disponibili sono: enable, exit e quit

22 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

• Livello 1 dove i comandi disponibili sono quelli associati ad un utente di tipo


Login, ovvero solo i comandi di lettura, senza possibilità di modificare la
configurazione
• Livello 15 dove i comandi disponibili sono quelli associato ad un utente di
tipo Administrative, ovvero sono potenzialmente disponibili tutti comandi

Il livello di privilegio viene stabilito dal server di Autenticazione utilizzato (Radius o


Tacacs+). Nel primo caso è necessario configurare sul server un attributo di tipo
Custom, descritto nella sezione Radius.

Mentre un livello N eredita i privilegi dei livelli inferiori, per passare ad un livello
superiore è necessario conoscere la password associata a quel livello.

Il comando:

set privilege level N <command prefix>

eseguito da un utente abilitato stabilisce che a livello N possono essere eseguiti tutti i
comandi che iniziano con il prefisso specificato. Ad esempio, utilizzando:

set privilege level 3 set adsl

si specifica che gli utenti che hanno ricevuto un livello di privilegio 3, potranno
eseguire tutti i comandi di configurazione dell’interfaccia adsl.

Per eliminare dei privilegi precedentemente impostati, si utilizza:

set no-privilege level N <command prefix>

Per visualizzare il livello di privilegio corrente si usa il comando:

show privilege

Per accedere da un livello inferione ad un livello superiore è necessario che al livello


superiore sia associata una password.

Il comando che permette di associare la password ad un determinato livello è:

set enable password level N

che in modalità interattiva chiede di introdurre la passord. Per rimuovere la password


si utilizza:

set no-enable password level N

rendendo quindi inaccessibile il livello N dai livelli inferiori.

Per accedere ad un livello superiore si utilizza il comando:

enable N

Tiesse 23
IMOLA User Guide - Rev.24 Ver. 07

il quale chiede di introdurre la passoword associata al livello N ed in caso di password


impostata correttamente, l’utente potrà eseguire tutti i comandi associati al livello N.

Ad esempio,

supponiamo che un utente superuser abbia impostato sul router i seguenti comandi:

set privilege level 3 set eth1


set privilege level 3 set gprs

set enable password level 3

tramite i quali si concede ad un utente con livello di privilegio 3 di configurarare la


porta ethernet e la porta mobile ed inoltre è stata associata una password a tale livello.
Il comando per impostare la password è interattivo e il suo comportamento è il
seguente:

admin@IMOLA> set enable password level 3


Changing password for $enable3$
New password: ********
Retype password: ********
Password for $enable3$ changed by root

Su un server di Autenticazione, Tacacs o Radius, è stato configurato un utente,


chiamato poor cui è associato il livello di privilegio 1. Si effettua una connessione
verso il router e ci si autentica con l’utente poor:
vll$ telnet 10.10.113.1
Trying 10.10.113.1...
Connected to 10.10.113.1.
Escape character is '^]'.

---------------------------------------------------------------
(IMOLA) (port 0)
---------------------------------------------------------------
login: poor
Password:
TACACS+: Authentication OK
Service Type is: Login-User
Privilige Level is: 1
Idle timeout is set to 3600 seconds
Connected Users:
pts/0 poor@IMOLA

You are logged on pts/0


poor@IMOLA#

Si tenta di eseguire il comando per configurare l’indirizzo IP dell’interfaccia Ethernet:

poor@IMOLA# set eth1 ipaddr 192.168.1.1


% Command "set eth1 ipaddr 192.168.1.1" not allowed for this user
poor@IMOLA#

e il comando fallisce. Quindi si esegue il comando per accedere al livello superiore:

poor@IMOLA# enable 3
Password: ********
$enable3$@IMOLA#
$enable3$@IMOLA# show privilege

24 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Current privilege level is 3


$enable3$@IMOLA#

A questo punto il comando:

$enable3$@IMOLA# set eth1 ipaddr 192.168.1.1

viene correttamente eseguito.

Infine, il comando disable:

$enable3$@IMOLA# disable
poor@IMOLA#
poor@IMOLA#
poor@IMOLA# show privilege
Current privilege level is 1

ci riporta al nostro livello iniziale.

Nel caso in cui l’accesso al router sia regolato dal server Tacacs, anche il controllo
della password di enable viene effettuato dal server. Tuttavia se vogliamo ottenere
l’accesso al router dal server Tacacs e controllare localmente le password di enable,
allora bisogna impostare il comando:

set enable local-authentication

mentre con

set enable no-local-authentication

si rimanda nuovamente il controllo al server Tacacs.

ACCESSO TRAMITE SSH


Il comando:

set ssh2-enabled

abilità l’accesso al router tramite protocollo SSHv2. Analogamente alle sessioni


telnet, anche in questo caso l’accesso viene regolato dal server Radius o Tacacs+ se
opportunamente configurato.

Pe disabilitare l’accesso il comando è:

set no-ssh2-enabled

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

Tiesse 25
IMOLA User Guide - Rev.24 Ver. 07

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.

REBOOT DEL ROUTER


Per effettuare il riavvio del router è disponibile il comando:

reboot
Al riavvio, tutte le modifiche non salvate, tramite il comando save, verranno perse.

E’ possibile programmare un reboot a tempo, specificando dopo quanti secondi questo


deve essere eseguito:
schedule-reboot wait N

Il controllo viene restituito all’utente, in modo che possono essere eseguiti eventuali
altri comandi.

Per annullare l’operazione di reboot programmata è disponibile il comando:

no-schedule-reboot

Si raccomanda di non effettuare salvataggi della configurazione quando è


programmata l’operazione di reboot.

DEFAULT SETTINGS
La configurazione di default di Imola prevede:

• Indirizzo eth0 (di servizio): 10.10.113.1/16


• Indirizzo eth1 (e 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

26 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

CONFIGURAZIONE DI IMOLA
Per effettuare la configurazione di Imola l'operatore ha a disposizione una interfaccia
a caratteri denominata Command Line Interface (CLI).

Mediante la CLI è possibile configurare, attivare e verificare interfacce e servizi


disponibili su Imola.

LA PROCEDURA DI CONFIGURAZIONE
La procedura di configurazione di Imola prevede le fasi:
• di configurazione
• di verifica
• di attivazione dei parametri
• di salvataggio

Per svolgere le fasi di configurazione e di attivazione si ha a disposizione il comando:

set

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


show

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

save

Si impiega inoltre il comando:

restore

al fine di ripristinare particolari configurazioni.

Distinguiamo tre tipi differenti di configurazione:

current saved started

La configurazione current è quella contenente tutti i valori impostati nella fase di


configurazione.

La configurazione saved è quella salvata sulla flash di Imola con il comando save ed
è quella con la quale l'apparato si attiverà al prossimo boot.

La configurazione started è quella con la quale l'apparato si è attivato al boot. Al


termine del boot e prima che cominci la fase di configurazione, le tre configurazioni
sono uguali.

Tiesse 27
IMOLA User Guide - Rev.24 Ver. 07

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

oppure, nel caso si voglia visualizzare la configurazione di un singolo modulo:

show config current|saved|started <module-name>

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 ad una specifica configurazione.


Questa può essere una di quelle predefinite (checkpoint-1, checkpoint-2, saved,
started) oppure può essere letta da un file di comandi opportunamente scaricato sul
router .

La sintassi è la seguente:

sync-config <conf-file> immediately


sync-confg <conf-file> in N seconds
sync-config <conf-file> on-next-reboot [<watch-ip> <tmout> <rstr>]

dove <conf-file> può essere una delle keyword: checkpoint-1, checkpoint-2,


saved, started,oppure un file contenente i comandi di configurazione da applicare.

28 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

La configurazione può essere applicata immediatamente, oppure dopo N secondi,


oppure al prossimo reboot del router.
Nel caso di next-reboot, il router effettua il boot con quella che è la sua
configurazione saved e subito dopo applica i comandi contenuti nel file <conf-file>.
E’ possibile specificare alcuni parametri di controllo:

<watch-ip>
indica un indirizzo di cui inviare dei pacchetti di ping dopo aver applicatio la nuova
configurazione.

<tmout>
indica n tempo di attesa prima di iniziare l’invio dei ping.

<rstr>
Il parametro può essere assente oppure può assumere il valore 1. Nel secondo caso
indica se deve essere effettuato un nuovo reboot del router dopo aver applicato la
nuova configurazione.

Il significato è il seguente:

dopo aver applicato la configurazione, il router aspetta il tempo specificato dal


parametro <tmout> e quindi invia dei pacchetti icmp verso l’indirizzo <whatch-ip>. Se
non si ottiene risposta, allora viene ripristinata la configurazione precedente,
viceversa, la nuova configurazione diventa la configurazione current, sovrascrivendo
la precedente. Il parametro <rstr> indica se il router dovrà effetture un nuovo reboot
dopo aver attualizzato la nuova 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.

Oltre alle configurazioini checkpoint predefinite, è possibile definire un numero


arbitrario di configurazioni mediante il comando:

set checkpoint <name>

Per queste valogono le stesse regole per i checkpoint predefiniti 1 e 2, ad esempio,


possono essere riprisitinate mediante il commando:

Tiesse 29
IMOLA User Guide - Rev.24 Ver. 07

restore checkpoint <name>.

Per visualizzare il numero di checkpoint presenti, si usa il comando:

show checkpoint-list

e pre rimuovere un checkpoint:

set no-checkpoint <name>

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> oppure il carattere ‘?’ 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 2: 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

30 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 3: autocompletamento del comando ed elencazione parametri accettati alla


pressione del tasto <TAB>

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

Il comando:

show version

visualizza la versione del firmware installata sul router, mentre il comando:

show system

visualizza i dettagli hardware e software del router.

Tiesse 31
IMOLA User Guide - Rev.24 Ver. 07

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. Se presente,
lo switch LAN è collegato alla porta eth1. Sui modelli LX, l’eventuale switch LAN
con 4 porte è collegato invece alla porta eth0.

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

E’ possibile impostare un indirizzo di tipo IPv6 mediante il comando:

set eth0 ipv6addr X:X::X:X/M

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

32 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set eth0|eth1 dhcp-client


set eth0|eth1 no-dhcp-client

È 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

Se l’indirizzo da aggiungere è di tipo IPv6 il comando divernta:

set alias eth0 ipv6addr X:X::X:X/M

È possibile disattivare la funzione di IP Redirect mediate il comando:

set eth0 no-ip-rediect

oppure abilitarla mediante

Tiesse 33
IMOLA User Guide - Rev.24 Ver. 07

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>

È 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

Nel caso in cui sia presente lo switch i parametri della connessione dovranno essere
impostati mediante appositi comandi descritti nella sezione relativa alle funzioni di
Switch.

Sui modelli di router Imola-LX oppure Lipari è presente solamente la porta eth0.

COMANDO DETECT-LINK-STATE
E’ da tenere presente che una volta configurata, l’interfaccia Ethernet è sempre
disponibile indipendentemente dal suo stato operativo: il router risponde sempre ad
eventuali richieste che arrivano sull’indirizzo IP associato all’interfaccia. Se tali
richieste vogliono essere inibite, occorre utilizzare il comando:

detect-link-state <interface-name>3

grazie al quale il router abilita l’interfaccia specificata solamente se lo stato operativo


di essa è attivo (i.e., è presente il cavo di collegamento).

Oltre alle interfacce LAN, tale comando vale per tutte le interfacce configurate, in
particolare vale anche per le VLAN.

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:
3
Affinchè il comando venga eseguito anche al reboot del router occorre impostare il
comando set autocmd detect-link-state <ifname>

34 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Per visualizzare l’ARP table si usa il comando:

show arp

Per visualizzare i sistemi adiacenti di tipo IPv6 si usa il comando:

show ipv6 neighbor

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

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

root@Imola> show interface ethernet eth0 status


eth0: negotiated 100baseT4 flow-control, link ok

Tiesse 35
IMOLA User Guide - Rev.24 Ver. 07

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

root@Imola> show alias


eth0 ipaddr 11.11.10.10 netmask 255.255.0.0
eth0 ipaddr 7.113.10.10 netmask 255.255.255.0

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.

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>

36 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

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

Il comando viene usato prevalentemente per scopi diagnostici. Per impostare il


funzionamento della porta si utilizza il comando:

set switch port N <opzioni>

descritto nella sezioen relativa. 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:

Tiesse 37
IMOLA User Guide - Rev.24 Ver. 07

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 -- visualizza lo stato e la configurazione della porta
specificata

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

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

38 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 <value> [<value>]
set isdn dialer ippp0 accept-remote-ip
set isdn dialer ippp0 dialmode manual
set ppp login <user> password <password>
set isdn dialer ippp0 on

Tiesse 39
IMOLA User Guide - Rev.24 Ver. 07

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
seguente figura:

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

La configurazione di una dialer map che consenta di effettuare le sole chiamate in


uscita viene effettuata con l'utilizzo dei seguenti comandi:

40 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

Tiesse 41
IMOLA User Guide - Rev.24 Ver. 07

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:

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

È 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.
Al momento della attivazione del canale master è possibile verificare l’attivazione dei
due canali:

42 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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

Nel caso di utilizzo del router collegato a linee ISDN di tipo punto-punto, invece che
punto-multi-punto, occorre impostare il comando:

set isdn mode point-to-point

Invece il comando:

set isdn mode multi-point

passa alla modalità multi-point.

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:

Tiesse 43
IMOLA User Guide - Rev.24 Ver. 07

 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.

44 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

 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

Tiesse 45
IMOLA User Guide - Rev.24 Ver. 07

 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

È disponibile inoltre un comando che consente di verificare lo storico delle chiamate


effettuate e ricevute:

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

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

46 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 attiva la chiamata isdn.

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

Tiesse 47
IMOLA User Guide - Rev.24 Ver. 07

TRIGGER ISDN
E’ possibile definire delle azioni da eseguire quando viene attivata e deattivata una
chiamata ISDN, rispettivamente mediante i comandi4:

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>

VERIFICA SESSIONE ISDN


Il comando:

isdnchat <numero-di-telefono>

attiva una sessione Q.931 senza innescare la fase di autenticazione PPP. Esso è utile
per verificare il funzionamento della sola linea telefonica.

Il comando:

isdnping <ip-address>

permette di attivare una chiamata sulla dialer ippp1 senza innescare gli effetti
collaterali dei trigger. Ess attiva una connessione isdn utilizzando i parametri della
dialer ippp1 ed esegue una serie di ping verso l'ip specificato senza l'intervento dei
trigger “isdn up” e “isdn down”.

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

48 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Un esempio di utilizzo ed output del comando, in caso di esito positivo, sono visibili
nella seguente figura:

root@IMOLA> isdnping 85.34.166.21


Dialing of ippp2 triggered
PING 85.34.166.18 (85.34.166.18) from 151.71.17.73 ippp2: 56(84) bytes of
data.
64 bytes from 85.34.166.18: icmp_seq=0 ttl=56 time=212.459 msec
--- 85.34.166.18 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/mdev = 212.459/212.459/212.459/0.000 ms
PING 85.34.166.18 (85.34.166.18) from 151.71.17.73 ippp2: 56(84) bytes of
data.
64 bytes from 85.34.166.18: icmp_seq=0 ttl=56 time=255.972 msec
64 bytes from 85.34.166.18: icmp_seq=1 ttl=56 time=185.896 msec
64 bytes from 85.34.166.18: icmp_seq=2 ttl=56 time=93.655 msec
64 bytes from 85.34.166.18: icmp_seq=3 ttl=56 time=89.054 msec
64 bytes from 85.34.166.18: icmp_seq=4 ttl=56 time=82.312 msec
64 bytes from 85.34.166.18: icmp_seq=5 ttl=56 time=189.865 msec
64 bytes from 85.34.166.18: icmp_seq=6 ttl=56 time=268.800 msec
64 bytes from 85.34.166.18: icmp_seq=7 ttl=56 time=424.999 msec
64 bytes from 85.34.166.18: icmp_seq=8 ttl=56 time=88.148 msec
64 bytes from 85.34.166.18: icmp_seq=9 ttl=56 time=171.538 msec
--- 85.34.166.18 ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max/mdev = 82.312/185.023/424.999/103.606 ms
ippp2 hung up

Nel caso di esito negativo:

root@IMOLA> isdnping 85.34.199.23


Dialing of ippp2 triggered
PING 85.34.199.23 (85.34.199.23) from 151.71.17.73 ippp2: 56(84) bytes of
data.
--- 85.34.199.23 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
PING 85.34.199.23 (85.34.199.23) from 151.71.17.73 ippp2: 56(84) bytes of
data.
--- 85.34.199.23 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
PING 85.34.199.23 (85.34.199.23) from 151.71.17.73 ippp2: 56(84) bytes of
data.
--- 85.34.199.23 ping statistics ---
10 packets transmitted, 0 packets received, 100% packet loss
ippp2 hung up

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

set isdn traffic-control input-threshold <N>


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

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

Tiesse 49
IMOLA User Guide - Rev.24 Ver. 07

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

50 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 51
IMOLA User Guide - Rev.24 Ver. 07

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 rfc1483-llc|rfc1483-bridged|ppoa-vcmux|pppoe-llc

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

Per assegnare un indirizzo di tipo IPv6 il comando è:

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

52 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set adsl pvc atm0|…|atm7 ipv6addr X:X::X:X/M

Opzionalmente può essere richiesto di abilitare la rotta di default:

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>

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

Tiesse 53
IMOLA User Guide - Rev.24 Ver. 07

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:

root@Imola> show interface adsl config


Encapsulation: 1483 Routed IP VC_Mux
Number of PVC Configured: 1
Configured Backup isdn
Extended Backup no

L’output del comando:

show interface adsl pvc atm0

è invece:

root@Imola> show interface adsl pvc atm0


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>

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
Service category: UBR
Peak Cell Rate: no
Local IP Address: 94.95.231.152
Nexthop IP Address: no
Default Route on here: yes
Masquerade: no
11: atm0: <BROADCAST,MULTICAST,NOARP,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:0d:5a:00:00:00 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
17588634 189164 0 0 0 0

54 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

TX: bytes packets errors dropped carrier collsns


20510132 216024 0 0 0 0
inet 94.95.231.152/30 brd 94.95.231.155 scope global atm0

Il comando:

show interface adsl status

produce la seguente visualizzazione sui router Imola XX20:

root@Imola> show interface adsl status


General Information
---------------------------------------------------------------------------
FW Revision: 0x061d 0x1235 0x0009

Near End Data Far End Data


Vendor country: 0xb5 0xb5
Vendor code: AWRE BDCM
Vendor product code: 0x5052 0xf2a1

Line Operational Data


---------------------------------------------------------------------------
ADSL Standard: ITU-T G.992.5 annex A

Near End Data Far End Data


Attenuation (db): 40.5 22.7
Noise Margin (db): 11.1 14.2
Output Power (dbm): 12.3 19.1
Relative Capacity Occupancy (%): 92 101

Channel Operational Data


---------------------------------------------------------------------------
Near End Data Far End Data
Datarate (Interl/Latency-0) (kb/s): 830 6546
Datarate (Fast/Latency-1) (kb/s): 0 0

Errors Data
---------------------------------------------------------------------------
Near End Data Far End Data
CRC (Interl/Latency-0): 6793 0
CRC (Fast/Latency-1): 0 0
FEC (Interl/Latency-0): 64572 0
FEC (Fast/Latency-1): 0 0
HEC (Interl/Latency-0): 55677 0
HEC (Fast/Latency-1): 0 0
No cell delineation (Bearer-1): yes none

Atm Cell Counter Statistics


---------------------------------------------------------------------------
Rx Tx
Total Cell Count (Bearer-0): 1809151150 229435580
Total Cell Count (Bearer-1): 0 0
User Total Cell Count (Bearer-0): 555032 563454
User Total Cell Count (Bearer-1): 0 0
---------------------------------------------------------------------------

Current modem state: SHOWTIME (for 1 day, 8 hr, 32 min, 57 sec)

Tiesse 55
IMOLA User Guide - Rev.24 Ver. 07

COMANDO OAMPING
Il coamdo oamping permette di verificare lo stato del collegamento inviando una cella
OAM di tipo F5. Un esempio di utilizzo è il seguqnete:

root@TLC-GTW> oamping flow 5 vpi 8 vci 35


seq 0 response from vpi-vci 8-35 time=28.0 ms
seq 1 response from vpi-vci 8-35 time=27.6 ms
seq 2 response from vpi-vci 8-35 time=28.8 ms

E’ possible specificare il numero di cella da inviare:

root@TLC-GTW> oamping flow 5 vpi 8 vci 35 count 10


seq 0 response from vpi-vci 8-35 time=27.2 ms
seq 1 response from vpi-vci 8-35 time=27.6 ms
seq 2 response from vpi-vci 8-35 time=27.7 ms
seq 3 response from vpi-vci 8-35 time=29.3 ms
seq 4 response from vpi-vci 8-35 time=27.7 ms
seq 5 response from vpi-vci 8-35 time=28.5 ms
seq 6 response from vpi-vci 8-35 time=27.6 ms
seq 7 response from vpi-vci 8-35 time=28.2 ms
seq 8 response from vpi-vci 8-35 time=29.0 ms
seq 9 response from vpi-vci 8-35 time=27.9 ms

56 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

Tiesse 57
IMOLA User Guide - Rev.24 Ver. 07

INTERFACCIA SHDSL

CONFIGURAZIONE
L’interfaccia SHDSL è disponibile tramite due connetori RJ11 indicati
rispettivamente come Line0 e Line1. Ognuno fornisce una banda di 2 Mbps, possono
essere utilzzati contemporaneamente (4-Wire) per sostenere quindi la banda di:

• downstream fino a 4 Mbps


• upstream fino a 4 Mbps.

Sono supportati fino a 4 PVC (Permanent Virtual Circuit)

È conforme ai seguenti standard:

• ETSI TS 101 524 (SDSL ETSI)


• ITU-T G.991.2, inclusi Annex A, B, F, G (G.SHDSL)
• ITU-T G.994.1 (G.hs)
• IEEE 802.3ah-2004 (IEEE EFM)
• ANSI T1E1.4/2003-334R6 (ATM bonding)
• ITU G.998.1 (ATM bonding)
• ITU G.998.2 (EFM bonding)

Per attivare l'interfaccia SHDSL è disponibile il comando:

set shdsl on

Per disattivare l'interfaccia SHDSL è disponibile il comando:

set shdsl off

Per disattivare l'interfaccia SHDSL e disabilitarne la configurazione è disponibile il


comando:

set no-shdsl

Prima di attivare l'interfaccia SHDSL è necessario eseguire alcune operazioni di


configurazione, secondo le indicazioni e i valori forniti dal Provider con cui si è
stipulato il contratto.

Al fine di configurare il chip SHDSL in modalità ATM oppure EFM si può asserire il
seguente comando:

set shdsl chipmode atm|efm

Per configurare il tipo di Annex è disponibile il seguente comando:

set shdsl annex A|B|B-ANFP

58 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Per configurare la modalità di funzionamento 2-Wire è disponibile il seguente


comando:

set shdsl line-mode 2-wire

Il comando attiva la modalità 2-Wire sulla linea 0.

Per configurare la modalità di funzionamento 4-Wire è disponibile il seguente


comando:

set shdsl line-mode 4-wire standard

Per configurare il chip SHDSL come CPE oppure CO si può asserire il seguente
comando:

set shdsl line-term cpe|co

Per configurare la modalità di selezione del data rate durante la fase di


sincronizzazione sono disponibili i comandi:

set shdsl line-rate-type adaptive

e
set shdsl line-rate-type fixed

Se si configura il line rate in modalità adaptive è possibile specificare un valore di


margine minimo desiderato, nel seguente modo:

set shdsl line-rate-type margin <value>

dove <value> può essere un valore compreso tra 0db e +10b. Se non specificato, il
valore di default è 0db.

Se si configura il line rate in modalità fixed, è possibile specificare i valori di rate


minimo e massimo, nel seguente modo:

set shdsl line-rate min <value>


set shdsl line-rate max <value>

dove i valori di default sono rispettivamente 192 (kbit/sec) e 2034 (kbit/sec)

Se non viene configurato il line-rate-type, la modalità di default è fixed.

Per configurare il tipo di incapsulamento:


set shdsl pvc atmX encap rfc1483-bridged|rfc1483-llc

Per configurare il numero ed il tipo di PVC :

set shdsl pvc_number <value>


set shdsl pvc atmX vpi <value>
set shdsl pvc atmX vci <value>

Tiesse 59
IMOLA User Guide - Rev.24 Ver. 07

dove pvc_number può essere al massimo 4 e di conseguenza atmX dovrà essere


atm0, atm1, atm2, atm3.

Il valore di default di pvc_number è 1.

Occorre quindi completare la configurazione di ogni PVC definito.

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

set shdsl pvc atm0|…|atm3 masquerade

Per assegnare un indirizzo IP all’interfaccia SHDSL:

set shdsl pvc atm0|…|atm3 ipaddr <value>

Per assegnare un indirizzo di tipo IPv6:


set shdsl pvc atm0|…|atm3 ipv6addr X:X::X:X/M

Opzionalmente può essere richiesto di abilitare la rotta di default:

set shdsl pvc atm0|…|atm3 default-route

Un esempio di sequenza di comandi di configurazione dell'interfaccia SHDSL può


essere la seguente:

CPE 4-Wire standard


set shdsl chipmode atm
set shdsl line-mode 4-wire standard
set shdsl line-term cpe
set shdsl pvc atm0 encap rfc1483-llc
set shdsl pvc atm0 vpi 8
set shdsl pvc atm0 vci 35
set shdsl pvc atm0 default-route
set shdsl on

CPE 2-Wire
set shdsl chipmode atm
set shdsl line-mode 2-wire
set shdsl line-term cpe
set shdsl pvc atm0 encap rfc1483-bridged
set shdsl pvc atm0 vpi 8
set shdsl pvc atm0 vci 35
set shdsl pvc atm0 default-route
set shdsl on

Una volta attivata, il nome dell’interfaccia logica SHDSL che identifica il PVC è:
shdsl.835.

60 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

VISUALIZZAZIONE
È possibile visualizzare informazioni riguardanti la configurazione, i pvc, le
statistiche e lo stato dell'interfaccia SHDSL.
Il comando:

show interface shdsl statistics

produce un output a video del seguente tipo:


root@Imola> show interface shdsl statistics

8: shdsl: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast


qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
101796 87 0 0 0 0
TX: bytes packets errors dropped carrier collsns
658422 503 0 0 0 0

Il comando:

show interface shdsl status

produce la seguente visualizzazione:

root@Imola> show interface shdsl status

General Information
Controller Chipset: Ikanos CX98102
DSL Mode: SHDSL Annex B
Line Mode: Two Wire
Framer Mode: ATM
Line Termination: CPE
Firmware Version: G119
Remote Country Code 0x00B5 (181)
Remote Provider Code PNGS
Remote FW Version 0x0042 (66)

Line 0 Status
Actual rate: 2312 kbps
Transmit Power: 9.5 dBm
Receiver Gain: 21.86 dB
Loop Attenuation 0.0 dB
SNR (SQ Mean): 41.24 dB

DSL Framer Status


Last 1 Sec. Errors
CRC Errors: 0
SEGment Anomaly Errors: 0
LOSs of Signal Errors: 0

ATM Framer Status


Received Cells: 4160
Transmitted Cells: 13890
Dropped Cells: 0
HEC on Received Cells: 0

Modem Status: DATA Mode (for 10 hr, 1 min, 54 sec)

Tiesse 61
IMOLA User Guide - Rev.24 Ver. 07

E’ inoltre possibile visualizzare le celle oam scambiate mediante il comando

show interface shdsl oam

SIGNIFICATO DEI LED


Nei router Imola4 lo stato dell'interfaccia viene indicato mediante 2 led di colore
verde, etichettati con le seguenti denominazioni: Link, Data.
L’accensione del led Link indica che il modem SHDSL interno è alimentato in modo
corretto e che il chip è stato correttamente inizializzato.
Il led Data lampeggiante indica la fase di sincronizzazione con la centrale.
Il led Data acceso fisso indica che la fase di sincronizzazione è stata effettuata con
successo e che dunque il chip è pronto a gestire la trasmissione dei dati.

TRIGGER SHDSL
E’ possibile definire delle azioni da eseguire quando viene attivata e deattivata
l’interfaccia SHDSL, rispettivamente mediante i comandi:

set trigger shdsl up <action>


set trigger shdsl 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 shdsl up <action1>


set trigger shdsl up <action2>

set trigger shdsl up <actionN>

L’esecuzione delle azioni avviene secondo l’ordine con cui sono stati impostati.
Ad esempio mediante la sequenza di comandi:

set trigger shdsl up ip route add 12.12.12.12 dev atm0


set trigger shdsl up logger –r 10.10.1.212 SHDSL is up
set trigger shdsl down ip route del 12.12.12.12 dev atm0
set trigger shdsl down logger –r 10.10.1.212 SHDSL is down

si imposta una rotta statica verso l’host 12.12.12.12 e si invia il messaggio di log
“SHDSL is up” quando l’interfaccia SHDSL viene attivata, mentre si elimina la rotta
e si invia il messaggio di log “SHDSL is down” quando l’interfaccia SHDSL non è
operativa.

Per cancellare un trigger si utilizzano i comandi:


set no-trigger shdsl up <action>
set no-trigger shdsl down <action>

62 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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|cisco|none


Il valore di default è ansi.

Tiesse 63
IMOLA User Guide - Rev.24 Ver. 07

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.

Per assegnare un indirizzo di tipo IPv6:

set frame-relay pvc pvcX ipv6addr X:X::X:X/M

Occorre quindi completare la configurazione di ogni pvc definito.

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

set frame-relay pvc pvc0|…|pvc7 masquerade

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

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

E’ possibile configurare un’interfacce di tipo Frame Relay in bridge con


un’interfaccia di LAN mediante il comando:

set frame-relay pvc pvc0 bridge-with <Ethernet-ifname>

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

64 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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:

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

L’output del comando:

show interface frame-relay pvc

è invece simile a:

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

Tiesse 65
IMOLA User Guide - Rev.24 Ver. 07

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

Il comando:

show interface frame-relay statistics

produce un output a video del seguente tipo:

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

Infine il comando:

show interface frame-relay status

produce la seguente visualizzazione dei parametri relativi al modem, come lo stato dei
segnali, il tipo di modulazione, il baud-rate, etc.

root@Imola> show interface frame-relay status

Mode: V.35
Clock: EXTERNAL
Encoding: NRZ
Parity: CRC16_PR1_CCITT

Modem Status
DTR: active DSR: active CTS: active

Data Reception
Packets: 55753 Bytes: 9476470
Dropped: 8
Errors:
Frame: 4 CRC: 0
Len: 0 Overflow: 4
No Space: 0

Data Transmission
Packets: 44519 Bytes: 7877889
Dropped: 5
Errors:
XFIFO Disabled: 1 XFIFO Error: 1

PVC status for Frame Relay interface


DLCI 454 [pvc0] Status: active, Last time pvc status changed: 6:54:44

66 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

INTERFACCIA MOBILE

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
sia connessioni Edge che GPRS, i modelli 3XX0 supportano sia connessioni
UMTS/HSDPA che GPRS/EDGE, i modelli 4XX0 supportano connessione
GPRS/EDGE/UMTS/HSDPA ed HSUPA, infine i modelli 5XX0 supportano qualsiasi
tipo di connessione mobile fino ad LTE. 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

Tiesse 67
IMOLA User Guide - Rev.24 Ver. 07

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

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:

68 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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/HSUPA per stabilire il tipo di


autenticazione PAP bisogna usare il comando:

set gprs directive refuse-chap

Sono disponbili dei comandi che permettono di selezione il tipo di rete mobile (3G o
2G) cui collegarsi:

set gprs auto-network


La scelta viene affidata al modulo radio, il quale seleziona la rete migliore disponibile
in quel momento, al variare della disponibilità il modem passa in maniera automatica
da una rete all’altra, effettuando l’operazione di roaming.

set gprs umts


Il modem tenta di registrarsi alla rete 3G, se non riesce passa alla rete 2G. Rispetto al
comando precedente, una volta selezionato un tipo di rete, il modem resta collegato ad
essa fino alla disconnessione.

set gprs no-umts


Configura il modem per lavorare solamente sulla rete 2G.

set gprs umts-only


Configura il modem per lavorare solamente sulla rete 3G.

set gprs lte


Configura il modem per lavorare sulla rete LTE, se disponibile, altrimenti viene
utilizzata la tecnologia HSPA disponibile in quella cella.. Se viene impostato tale
comando è possibile specificare altre opzioni per selezionare le frequenze di lavoro o
la tecnologia di accesso radio, in particolare, il comando:

set gprs lte-band <value>


dove i valori ammessi sono: b1, b3, b7, b8, b20, b8-900, b1-2100 permette di
selezionare la frequenza di lavoro sulla rete LTE., mentre il comando:

set gprs selrat <value>

dove <value> può essere uno dei seguenti:

2G-Only 3G-Only 2G-3G-Only LTE-Only 2G-3G-LTE

permette di specificare la tecnologia radio di accesso

Tiesse 69
IMOLA User Guide - Rev.24 Ver. 07

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


set gprs no-description

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.

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/hsupa), 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.

Sui modelli 5XX0 è inoltre disponibile il comando:

set gprs direct-ip

70 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

il quale permette di utilizzare nativamente la connessione mobile, senza ricorrere


all’utilizzo del protocollo PPP. In tal caso l’interfaccia mobile viene chiamata:
wwan0.

Su tali modelli è possibile configurare una seconda APN utilizzata


contemporanemente a quella principale mediante i comandi:

set gprs second-apn <apn-name>


set gprs second-login <login-second-apn> password <password>

Nel caso si utilizzi tale comando, diventa obbligatorio impostare anche il comando:

set gprs direct-ip

in modo tale che il nome dell’interfaccia di rete che corrisponde alla APN principale
sia wwan0, mentre quello per la seconda APN sia ppp0.

Tiesse 71
IMOLA User Guide - Rev.24 Ver. 07

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 Errore. L'origine riferimento non è stata trovata.:

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

Il comando show interface gprs statistics produce un output a video simile al


seguente:

root@Imola> show interface gprs statistics


Number of GPRS Connection: 1
Total Bytes Transmitted: 40
Total Bytes Received: 1517
Total Duration: 3

Il comando show interface gprs status visualizza lo stato della sessione.


L’outut prodotto potrebbe cambiare in funzione della tecnologia di accesso:

root@Imola> show interface gprs status


Signal Quality: +CSQ: 17,99
Network: HSDPA/UMTS

IMSI: 222017302670415 IMEI: 355841030174450

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

72 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

root@Imola> show interface gprs status

Signal Power: CSQ = 23 => -67 dBm


Network: HSDPA/UMTS vodafone IT

HSDPA Category: 24 HSUPA Category: 6


Current Time: 75749 Temperature: 38
Bootup Time: 1 Mode: ONLINE
System mode: WCDMA PS state: Attached
WCDMA band: WCDMA 2100
WCDMA channel: 10838
GMM (PS) state:REGISTERED NORMAL SERVICE
MM (CS) state: IDLE NORMAL SERVICE

WCDMA L1 State:L1M_PCH_SLEEP RRC State: DISCONNECTED


RX level C0: -68 LAC: 3ABB (15035)
RX level C1: -106 Cell ID: 003A5837 (3823671)

Current Network Technology: 0,UMTS


Available Network Technology: 1,UMTS
Supported Network Technology: 2,GSM,GPRS,EDGE,UMTS,HSDPA/HSUPA,HSPA+,LTE

IMSI: 222101900000052 IMEI: 358178040098990

Nel caso in cui venga usato il meccanismo del Dual Carrier HSPA, la riga Current
Network Technology mostra: DC-HSPA+.

root@Imola> show interface gprs status

Signal Power: CSQ = 30 => -53 dBm


Network: LTE I TIM

HSDPA Category: 24 HSUPA Category: 6


Current Time: 2932 Temperature: 40
Bootup Time: 1 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B7 LTE bw: 15 MHz
LTE Rx chan: 3175 LTE Tx chan : 21175

EMM state: Registered Normal Service


EMM connection: RRC Connected

RSSI (dBm): -53 Tx Power: -26


RSRP (dBm): -77 TAC: 0BDF (3039)
RSRQ (dB): -7 Cell ID: 0493ED01 (76803329)
SINR (dB): 30.0

Current Network Technology: 0,LTE


Available Network Technology: 1,GSM,GRS,EDGE,UMTS,HSDPA,HSUPA,HSPA+,LTE
Supported Network Technology: 2,GSM,GPRS,EDGE,UMTS,HSDPA/HSUPA,HSPA+,LTE

IMSI: 222018234762487 IMEI: 358178040098891

Il livello di campo o dBm segnalato dal modem GPRS (le classiche tacche
visualizzate dal telefono GSM) è visualizzato tra le informazioni riportate dal
comando ed è identificabile, nell’esempio sopra, dal Signal Quality: +CSQ: 17,99.
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

Tiesse 73
IMOLA User Guide - Rev.24 Ver. 07

17 * 2 – 113 = -79

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 1

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):

74 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

root@Imola> set gprs on


root@Imola> show 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

root@Imola> set gprs on


root@Imola> show 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
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.

Tiesse 75
IMOLA User Guide - Rev.24 Ver. 07

E’ possibile tracciare tutta la sequenza di attivazione del protocollo PPP specificando


l’opzione:

set gprs debug

In questo caso la sequenza di messaggi di log contiene maggiori dettagli relativamente


alla fase di negoziazione dei parametri:

root@Imola> set gprs on


root@Imola> show log
Dec 2 07:17:11 MR-Coach287-8 root: GPRS - Power On Modem..
Dec 2 07:17:21 MR-Coach287-8 GPRS[22884]: Trying Port /dev/ttyUSB0
Dec 2 07:17:22 MR-Coach287-8 GPRS[22884]: Modem OK
Dec 2 07:17:31 MR-Coach287-8 root: GPRS - Trying Auto Network
Dec 2 07:17:31 MR-Coach287-8 root: GPRS - Verify Network Registration
Dec 2 07:17:32 MR-Coach287-8 root: AT+CREG?
Dec 2 07:17:32 MR-Coach287-8 root: +CREG: 0,1
Dec 2 07:17:32 MR-Coach287-8 root: OK
Dec 2 07:17:32 MR-Coach287-8 root: AT+CSQ
Dec 2 07:17:32 MR-Coach287-8 root: +CSQ: 6,0
Dec 2 07:17:32 MR-Coach287-8 root: OK
Dec 2 07:17:32 MR-Coach287-8 root: GPRS - Network Registered
Dec 2 07:17:33 MR-Coach287-8 pppd[23130]: pppd 2.4.2 started by Tiesse
Dec 2 07:17:34 MR-Coach287-8 chat[23132]: send (AT+CGDCONT=1,"IP","ibox.tim.it”
Dec 2 07:17:34 MR-Coach287-8 chat[23132]: AT+CGDCONT=1,"IP","intrainwifi.tim.it
Dec 2 07:17:34 MR-Coach287-8 chat[23132]: send (AT+CGATT=1^M)
Dec 2 07:17:34 MR-Coach287-8 chat[23132]: send (ATD*99***1#^M)
Dec 2 07:17:34 MR-Coach287-8 chat[23132]: CONNECT

… … … … …

sent [LCP ConfReq id=0x1 <mru 1476> <asyncmap 0x0> <magic 0xe2270bc4> ..
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0x6d503910> ..
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0x6d503910> ..
rcvd [LCP ConfAck id=0x1 <mru 1476> <asyncmap 0x0> <magic 0xe2270bc4> <pcomp> ..
sent [LCP EchoReq id=0x0 magic=0xe2270bc4]
rcvd [LCP DiscReq id=0x1 magic=0x6d503910]
rcvd [CHAP Challenge id=0x1 <e4c6aed962128461f211d325443a3f44>, name = “..”
sent [CHAP Response id=0x1 <9fabe2d692114fc609f6d85634254c16>, name = "..”
rcvd [LCP EchoRep id=0x0 magic=0x6d503910 61 f2 11 d3]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x4 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfRej id=0x4 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x5 <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfNak id=0x5 <addr 172.22.1.33>]
sent [IPCP ConfReq id=0x6 <addr 172.22.1.33>]
rcvd [IPCP ConfAck id=0x6 <addr 172.22.1.33>]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 217.1.1.1
remote IP address 10.64.64.64

76 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

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

Tiesse 77
IMOLA User Guide - Rev.24 Ver. 07

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 gprs up <action>
set no-trigger gprs 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.

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.

78 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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
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 sessione GPRS (rx-idle 120), e la conseguente
riattivazione.

Infine il comando gprs-keep-alive consente di effettuare dei ping verso l'indirizzo


associato all'interfaccia gprs ad intervalli regolari e configurabili, per controllare il
collegamento.

set trigger gprs up gprs-keep-alive [-k <Freq_sec>]

Il parametro -k <freq_sec> è opzionale; se omesso, si assume il valore di default è 60


secondi. Ogni qualvolta si attiva la sessione GPRS questo comando forza la

Tiesse 79
IMOLA User Guide - Rev.24 Ver. 07

trasmissione di un pacchetto UDP avente come destinazione l’indirizzo associato


all’interfaccia GPRS. La mancata risposta causa il timeout della sessione GPRS e la
conseguente riattivazione.

VERIFICA SESSIONE GPRS


La verifica della sessione GPRS ci permette di attivare una connessione, utilizzando i
parametri impostati mediante i comandi “set gprs”7, senza innescare gli effetti
collaterali dei trigger.

gprsping <ip-address>

attiva una connessione gprs ed esegue una serie di ping verso l'ip specificato senza
l'intervento dei trigger “gprs up” e “gprs down”.

Un esempio di utilizzo ed output del comando, in caso di esito positivo, sono visibili
nella seguente figura:

root@IMOLA> gprsping 85.34.166.21


Starting GPRS Ping...
This will take some time, please wait....
PING 85.34.166.21 (85.34.166.21) from 95.74.52.82 ppp9: 56(84) bytes of data.
64 bytes from 85.34.166.21: icmp_seq=0 ttl=249 time=1.224 sec
64 bytes from 85.34.166.21: icmp_seq=1 ttl=249 time=503.793 msec
64 bytes from 85.34.166.21: icmp_seq=2 ttl=249 time=323.527 msec
64 bytes from 85.34.166.21: icmp_seq=3 ttl=249 time=336.110 msec
64 bytes from 85.34.166.21: icmp_seq=4 ttl=249 time=345.791 msec
64 bytes from 85.34.166.21: icmp_seq=5 ttl=249 time=435.462 msec
64 bytes from 85.34.166.21: icmp_seq=6 ttl=249 time=426.071 msec
64 bytes from 85.34.166.21: icmp_seq=7 ttl=249 time=365.806 msec
64 bytes from 85.34.166.21: icmp_seq=8 ttl=249 time=345.464 msec
64 bytes from 85.34.166.21: icmp_seq=9 ttl=249 time=346.212 msec
--- 85.34.166.21 ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max/mdev = 323.527/465.246/1224.227/258.727 ms
GPRS Test Successfully Completed

Nel caso di esito negativo:

root@IMOLA> gprsping 85.34.166.150


Starting GPRS Ping...
This will take some time, please wait....
PING 85.34.166.150 (85.34.166.150) from 95.74.64.177 ppp9: 56(84) bytes of
data.
--- 85.34.166.150 ping statistics ---
10 packets transmitted, 0 packets received, 100% packet loss
GPRS Test Successfully Completed

RACCOLTA DATI DI TRAFFICO


E’ possibile conteggiare i dati di traffico della sessione GPRS ed inviarli
periodicamente verso un server remoto affinchè questi vengano memorizzati.

7
Tranne che per i modelli 2xxx è consigliato l'inserimento del comando “set gprs pwroff-modem”
nell'impostazione dei parametri del gprs per una corretta esecuzione del comando gprsping.

80 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Il comando da utilizzare è:

gather_stats –i <ifname> -h <rem-host> -p <rem-port> -n <interval>

dove:

• -i specifica l’interfaccia della sessione GPRS. Il valore di default è ppp0.


• -h specifica l’indirizzo IP del server cui mandare i messaggi.
• -p specifica il valore della porta sull’host remoto
• -n specifica l’intervallo in secondi di invio dei contatori di traffico. Il valore di
default è 900 secondi.

Se vengono omessi sia l’host remoto che il valore della porta allora i dati vengono
inviati come un messaggio di syslog, quindi possono essere letti o localmente sul
router stesso oppure sul server remoto di syslog, in base alla configurazione del
servizio di log sul router.

Il messaggio inviato ha il seguente formato:

TS800,00:0d:5a:07:01:13,IMOLA@192.168.254.3,449598,63720,449598,63720

Dove sono contenuti i seguenti campi separati dal carattere virgola:

• testata fissa del messaggio (TS800)


• MAC Address del router
• Hostname@Indirizzo IP
• Numero di caratteri ricevuti nell’ultimo intervallo
• Numero di caratteri trasmessi nell’ultimo intervallo
• Numero di caratteri ricevuti da quando il router è stato acceso
• Numero di caratteri trasmessi da quando il router è stato acceso.

E’ possibile consultare gli ultimi dati raccolti mediante il comando:

show gathered-stats

Ad esempio:

root@IMOLA> show gathered-stats


Traffic in the last interval (900 sec): bytes tx=38469, bytes rx=37800
Traffic since startup (77400 sec ago): bytes tx=11254187, bytes rx=6800200

La prima riga contiene i dati trasmessi e ricevuti nell’ultimo intervallo di rilevazione e


la seconda contiene i dati trasmessi e ricevuti dall’accensione del router.

Tiesse 81
IMOLA User Guide - Rev.24 Ver. 07

GESTIONE SMS
Imola è in grado di inviare e ricevere dei messaggi SMS8. 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>

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:

8
La gestione di SMS non è supportata su tutti i modelli di router.

82 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

E’ possibile configurare la connessione mobile in modo che questa venga attiva a


fronte della ricezione di un messagio SMS. Oltre alla configurazione dell’interfaccia
mobile, sul router deve essere impostato il comando:

set gprs sms

Inviando un SMS contenente il comando:

Tiesse gprs-connect

il router attiverà la connessione mobile.

Il router può essere configurato in modo da inoltrare ad un numero esterno i messaggi


SMS che non contengono la parala chiave concordata, invece di ignorarli.
Il comando da utilizzare è:

set gprs sms-helper-number <numero telefonico>

mentre con il comando:

set gprs no-sms-helper-number

la funzionalità viene disabilitata.

Tiesse 83
IMOLA User Guide - Rev.24 Ver. 07

NOTIFICA CONNESSIONE MOBILE: COMANDO HELLO


E’ possibile inviare un messaggio contentente alcune informazioni utili relative alla
sessione mobile verso un server remoto affinchè questi vengano memorizzati.

Il comando da utilizzare è:

hello <rem-host> <rem-port>

dove:

• <rem-host> specifica l’indirizzo IP del server cui mandare i messaggi.


• <rem-port> specifica il valore della porta sull’host remoto

Il messaggio inviato ha il seguente formato:

00:0d:5a:07:01:13,222017392670415,355841030174450,6 CSQ (-101 dBm), HSDPA I


TIM, IMOLA@217.1.1.1

Dove sono contenuti i seguenti campi separati dal carattere virgola:

• MAC Address del router


• IMSI della SIM Card usata dal Router
• IMEI del Router
• Valore CSQ (6) e traduzione in dBm (-101)
• Tipo di rete (HSDPA) ed operatore cui il router è collegato (TIM)
• Hostname@Indirizzo IP del router

E’ possibile inviare periodicamente tale messaggio specificando la sequenza di


comandi:

set timer-tick 600


set trigger timer-tick hello 85.34.166.18 22000

Il messaggio viene inviato mediante un pacchetto UDP. Se come porta di destinazione


si specifa il valore 514 (syslog) e sul sistema specificato è attivo il servizio di syslog
server, allora i dati inviati saranno raccolti direttamente da questo.

INTERROGAZIONE DIRETTA DEL MODEM: COMANDO


GPRSAT
E’ possibile utilizzare un comando che interroga direttamente il modem mobile e
restituisce informazioni di stato utili alla diagnosi.
Il comando da utilizzare è: gprsat <comando AT>, il quale invia al modem delle
direttive secondo il formalismo AT e ne visualizza il risultato. La lista dei comandi
disponibili è contenuta in un manuale separato.
Normalmente tutti i comandi visualizzano la stringa OK se il modem funziona
correttamente ed ERROR in caso di guasto. Quelli più comuni sono:

84 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Verifica che il modem sia operativo:


root@IMOLA> gprsat at
at
OK

Qualora non si ottenga la stringa OK come risposta, provare ad effettuare un reset del
modem utilizzando i comandi9:

gprs --poweroff
gprs --poweron

e quindi riprovare il comando gprsat at.

Informazioni sul modem:

root@IMOLA> gprsat ati

Manufacturer: SIMCOM INCORPORATED


Model: SIMCOM_SIM5218A
Revision: SIM5218A_240065_090911_V1.16
QCN:
IMEI: 355841030174450
+GCAP: +CGSM,+DS,+ES

OK

Visualizza il segnale disponibile:

root@IMOLA> gprsat AT+CSQ


AT+CSQ
+CSQ: 6,0
OK

Il valore in dBm del segnale si ottiene ricorrendo alla formula 2 * CSQ – 113.

Ricerca operatori disponibili:


10
root@IMOLA> gprsat at+cops?
at+cops?
+COPS: 0,0,"I TIM",2
OK

Verifica se il modem è registrato sulla rete mobile:

root@IMOLA> gprsat AT+CREG?


AT+CREG?
+CREG: 0,1

OK

9
Il comando gprs --poweroff deve essere eseguito con la sessione mobile non
attiva (set gprs off)
10
Su alcune release di software per utilizzare il carattere ? (punto interrogativo) bisogna
digitare prima la sequenza CTRL+V

Tiesse 85
IMOLA User Guide - Rev.24 Ver. 07

Il valore +CREG:0,1 indica che il modem è correttamente registrato sulla rete.

Verifica che il modem sia collegato alla APN mobile:

root@IMOLA> gprsat AT+CGATT?


AT+CGATT?
+CGATT: 1

OK

Il valore +CGATT: 1 indica che il modem è collegato alla APN.

Lettura dell’IMSI:

root@IMOLA> gprsat AT+CIMI


AT+CIMI
222017302670415

OK

Lettura delle Informazioni sulla Location:

root@IMOLA> gprsat AT+CPSI?


AT+CPSI?
+CPSI: WCDMA,Online,222-01,0xEEB2,72507253,WCDMA IMT
2000,334,10638,0,16,103,16,12

OK

86 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

DOPPIA SIM DATI


Alcuni modelli di router potrebbero essere equipaggiati con una doppia SIM dati:
oltre alla SIM interna al router, è disponibile un alloggiamento per una seconda SIM
accessibile dall’esterno.

La SIM interna è detta Primary-SIM, mentre quella esterna è detta Secondary-SIM.

Il loro utilizzo è mutuamente esclusivo ed è regolato dalle seguenti regole:

• Di default viene sempre utilizzata la SIM all’interno del router (Primary-SIM)


• Specificando i comandi:

set gprs secondary-sim


set gprs secondary-apn <myapn2>

viene usata sempre la SIM esterna collegandosi all’APN myapn2.

• Specificando i comandi:

set gprs primary-sim


set gprs-primary-apn <myapn1>
set gprs secondary-sim
set gprs secondary-apn <myapn2>

viene usata la prima SIM come collegamento primario all’APN myapn1.


Tuttavia se per 3 volte consecute fallisca la registrazione su tale APN, allora si
passa ad utilizzare la seconda SIM sull’APN myapn2.

Il comando:

set gprs no-secondary-sim

disabilita l’uso della seconda SIM.

Analogamente il comando:

set gprs no-primary-sim

disabilita il meccanismo di selezione tra le due SIM utilizzando quella di default.

SBLOCCO SIM
Le funzioni di attivazione della sessione mobile richiedono che la SIM inserita sia
senza il codice PIN. Qualora tale codice sia impostato, è possibile disattivarlo
mediante il comando:

unlock-sim

Tiesse 87
IMOLA User Guide - Rev.24 Ver. 07

Tale comando eseguito senza argomenti verifica la presenza o meno del codice PIN.
Ad esempio, se il PIN non è presente, il risultato del comando è:

root@IMOLA> unlock-sim

AT+CPIN?
+CPIN: READY

OK

per cui il modulo GPRS può essere tranquillamento attivato. Se invece esso
visualizza:

root@IMOLA> unlock-sim

AT+CPIN?
+CPIN: PIN

OK

Allora occorre inserire eseguire il comando specificando il PIN come argomento:

root@IMOLA> unlock-sim 1234

Affinché il comando abbia effetto è necessario che il modem sia operativo, in caso
contrario il comando non darà alcun output. Per portare il modem nella sua
condizione di operatività si deve utilizzare i comando gprs –poweroff descritto nella
sezione Verifica che il modem sia operativo contenuta nel paragrafio Interrogazione
diretta tramite comandi AT.

LETTURA IMSI ED IMEI


Il comando

show interface gprs status

oltre ai dati di funzionamento della sessione mobile, visualizza anche il codice IMEI
associato al modem e il codice IMSI associato alla SIM presente. In alternativa,
queste informazioni possono essere recuperate rispettivamente mediante i comandi:

root@IMOLA> gprsat at+cgsn


at+cgsn
355841030879777

root@IPV6-DTE> gprsat AT+CIMI


AT+CIMI
222015902932414

88 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Tiesse 89
IMOLA User Guide - Rev.24 Ver. 07

INTERFACCIA WIFI

CONFIGURAZIONE
L’interfaccia wifi è disponibile tramite un modulo interno che supporta gli standard
802.11 a/b/g oppure b/g/n e permette al router di svolgere le funzioni di Access Point
oppure di collegarsi tramite wifi ad un AP esterno.

Per attivare l'interfaccia WIFI è disponibile il comando:

set wifi on

Per disattivarla:

set wifi off

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

set no-wifi

Per configurare la modalità si usa il comando:

set wifi mode ap | station

La modalità di default è: AP.

Per configurare il canale su cui operare:

set wifi channel N

Per configurare le frequenza:

set wifi freq <Value>

Per configurare la string che identifica l’ESSID:

set wifi essid <stringa>

Il comando:

set wifi hide-essid

nasconde il nome della rete.

Per configurare le funzioni di sicurezza sono disponibili i comandi:

set wifi security none | wpa | wpa2

e nel caso in cui si voglia proteggere l’accesso:

90 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set wifi password <password>

Per assegnare un indirizzo IP all’interfaccia WIFI:

set wifi ipaddr a.b.c.d netmask 255.255.255.0

E’ possibile configurare le funzioni di DHCP Server sull’interfaccia wifi mediante i


comandi11:

set dhcp-server wifi interface wlan0


set dhcp-server wifi start-address <ip-address-iniziale>
ser dhcp-server wifi end-address <ip-address-finale>
set dhcp-server wifi dns <ip-dns>
set dhcp-server wifi router <ip-address>

E’ possibile effettuare il bridge diretto dei pacchetti wifi su una delle interfacce
Ethernet mediante il comando:

set wifi bridge-with <ethernet-interface>

Per disabilitare le funzioni di bridge:

set wifi no-bridge

Un esempio di sequenza di comandi di configurazione dell'interfaccia WIFI può


essere la seguente:

set wifi ipaddr 192.168.21.1 netmask 255.255.255.0


set wifi essid VOLODANGELO
set wifi channel 6
set wifi security wpa2
set wifi password segreto123
set wifi on

set dhcp-server wifi interface wlan0


set dhcp-server wifi start-address 192.168.21.100
ser dhcp-server wifi end-address 192.168.21.200
set dhcp-server wifi dns 151.99.0.100 151.99.125.1
set dhcp-server wifi router 192.168.21.1

Una volta attivata, il nome dell’interfaccia logica WIFI è: wlan0.

VISUALIZZAZIONE
È possibile visualizzare informazioni riguardanti la configurazione, le statistiche e lo
stato dell'interfaccia WIFI mediante il comando:
show interface wifi status

che mostra le stazioni connesse e vari parametri di funzionamento dell’interfaccia.

11
Per maggiori dettagli si consulti la sezione DHCP, tenendo presente che il nome
dell’interfaccia wifi è wlan0.

Tiesse 91
IMOLA User Guide - Rev.24 Ver. 07

INTERFACCIA RS232

INTRODUZIONE
In alternativa allo switch LAN di 5 porte, Imola può essere equipaggiato con 4 oppure
8 porte seriali con connettore RJ45. Ad esempio la versione LX (Imola 0800 LX) con
8 porte:

In tal caso viene anche chiamato Imola TSE ed offre le funzioni di Terminal Server:
uno o più dispositivi collegati alle porte seriali di Imola possono accedere alla rete IP
e viceversa è possibile scambiare dati con terminali seriali semplicemente inviando
dati sulla rete IP.

Le principali applicazioni di Imola TSE sono:

• Concentrazione di POS seriali con relativa conversione dei dati per trasportali
su rete TCP/IP
• Funzioni di Reverse Telnet
• Concentrazioni di terminali X.28 e relativa conversione dei dati per
trasportarli su rete TCP/IP
• Funzioni di Modbus Gateway per consentire la gestione di dispositivi PLC
attraverso la rete TCP/IP.

Nel caso specifico di terminali POS, è possibile attivare delle funzioni utili per
ottimizzare le risorse di rete, come ad esempio l’impiego del protocollo X.28 oppure
la possibilità di inviare i dati verso un gruppo di Host.

92 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

CONFIGURAZIONE
Nella sua configurazione di fabbrica Imola TSE è configurato in modo tale che ad
ogni porta seriale sia associato un socket tcp/ip, secondo il seguente schema:

Porta seriale Socket TCP


1 8081
2 8082
3 8083
4 8084
5 8085
6 8086
7 8087
8 8088

I dati ricevuti sul socket vengono inviati quindi sulla porta seriale corrispondente e
viceversa, secondo la modalità di reverse telnet.

Qualora dalle porte seriali vengano ricevuti dei dati, ma nessun applicativo ha
effettuato la connessione alla porta socket corrispondente, questi sono inviati ad un
indirizzo IP e porta configurabile.

Con l’obiettivo di ottimizzare la comunicazione, è possibile abilitare l’utilizzo di


protocolli di comunicazione specifici dei terminali collegati. In questa sezione
vengono descritti i comandi di utilizzo generale, indipendenti dal tipo di protocollo
utilizzato. Documenti specifici trattano le applicazioni specifiche. Quelle
fondamentali supportate sono:

• Gestione di terminali POS rs232 nativi


• Gestione di terminali che utilizzano il protocollo X.28
• Protocollo modbus per dispositivi PLC
• Protocollo awp per dispositivi Comma6
• Transparent: i dati vengono inviati senza alcuna elaborazione.

Nella configurazione di fabbrica, Imola supporta la modalità Transparente (utile per


le applicazioni di Reverse Telnet) e il protocollo X.28. I parametri di configurazione
principali sono:

set rs232-protocol modbus/transparent/pos/awp


Specifica il tipo di protocollo utilizzato sulla porta seriale. Di default è transparent,
utile per le applicazioni di tipo reverse-telnet. Nel caso in cui viene specificato il
valore POS, sono riconosciuti i protocolli HGEPOS per i pos in banda magnetica e
ISO 8583 per i POS a micro circuito.

set rs232 tty-server-port <port>


Configura la porta socket su cui ricevere i dati da Host. In particolare i dati ricevuti
sul socket <port> vengono inviatui sulla porta seriale 1, i dati ricevuti sul socket
<port>+1 vengono inviati sulla porta seriale 2, e così via, i dati ricevuti sulla porta
socket <port>+7 vengono inviati sulla porta seriale 8.

Tiesse 93
IMOLA User Guide - Rev.24 Ver. 07

set rs232 pos-server-port <port>


set rs232 hge-server-port <port>
Configura la porta socket su cui ricevere i dati da eventuali terminali POS collegati in
rete locale ad Imola.
set rs232 primary-host <ipaddr>
set rs232 primary-port <port>
Configura l’indirizzo IP e la porta cui tentare l’invio dei dati ricevuti da una porta
seriale quando ancora nessuna applicazione ha effettuato la connessione alla porta
socket associata. Nel caso di protocollo POS indica l’indirizzo IP del centro di
autorizzazione delle transazioni.

set rs232 primary-host-timeout <msec>


Configura timeout d’attesa per connessione ad host primario; espresso in millisecondi.

set rs232 primary-type <adsl/gprs/isdn/lan>


Configura il tipo di connessione necessario per raggiungere l’host specificato. E’
obbligatorio configurarlo quando l’host primario è raggiungibile attraverso la rete
ISDN.

set rs232 secondary-host <ipaddr>


set rs232 secondary-port <port>
Configura l’indirizzo IP e la porta dell'Host secondario a cui mandare i dati ricevuti
da una porta seriale quando ancora nessuna applicazione ha effettuato la connessione
alla porta socket associata e l’host primario non è disponibile.

set rs232 secondary-host-timeout <msec>


Configura il timeout d’attesa connessione con l'host secondario; espresso in
millisecondi.

set rs232 secondary-type <adsl/gprs/isdn/lan>


Configura il tipo di connessione necessario per raggiungere l’host specificato. E’
obbligatorio configurarlo quando l’host secondario è raggiungibile attraverso la rete
ISDN.

set rs232 no-secondary-host


Elimina l’host secondario dalla configurazione.

set rs232 backup-host <ipaddr>


set rs232 backup-port <port>
Configura l’indirizzo IP e la porta dell'Host di backup a cui mandare i dati ricevuti da
una porta seriale quando nessuna applicazione ha effettuato la connessione alla porta
socket corrispondente e nè l’host primario e nè quello secondario sono disponibili.
set rs232 no-backup-host
Elimina l’host di backup dalla configurazione.
set rs232 backup-timeout <msec>
Indica il valore del timer attivato nel caso in cui l’host primario non soddisfi le
richieste prodotte dai POS. Le richieste successive, ricevute entro tale timer, verranno
re-indirizzate direttamente all'host secondario. Allo scadere del timer di backup sarà
verificata di nuovo la disponibilità del collegamento principale.

set rs232 isdn-hold-time <msec>

94 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Indica il valore del timeout dopo il quale abbattere la sessione ISDN in caso di
inattività.

set rs232 enq-timeout <msec>


Significativo solo se il tipo di protocollo è POS. Configura il tempo d’attesa del
carattere di ENQ inviato dall’host. Se l’ENQ non arriva entro tale periodo, le richieste
prodotte dai POS vengono inoltrate all'host secondario.

set rs232 pos-helper


Significativo solo se il tipo di protocollo è POS. A fronte della richiesta di
connessione dal POS, il router invia il pacchetto di ENQuire al POS, attiva la
connessione verso l’host e scarta l'eventuale ENQuire ricevuto da quest’ultimo.
Eventuali pacchetti ricevuti dal POS sono accodati dal router in attesa della ricezione
dell'ENQuire da Host.

set rs232 no-pos-helper


Significativo solo se il tipo di protocollo è POS.Disabilita il meccanismo precedente.
A fronte della richiesta di connessione dal POS, il router prova ad attivare una
sessione verso host. Il carattere di ENQuire ricevuto da Host, viene inoltrato al POS.
set rs232 tty-speed <value>
Imposta la velocità di connessione sulle porte seriali. Valori validi sono 2400, 4800,
9600, 19200.

set rs232 tty-flow-control


set rs232 no-tty-flow-control
abilita (disabilita) il controllo di flusso hardware sulla porta seriale.
set rs232 tty-check-dsr
il riconoscimento dell’inizio transazione avviene quando il segnale DSR diventa
attivo: ovvero quando Imola rileva il segnale DSR effettua una chiamata TCP verso
l’indirizzo IP configurato. Quando invece il segnale si disattiva, Imola abbatte la
connessione TCP.

set rs232 no-tty-check-dsr


il segnale DSR viene ignorato da Imola.
set rs232 tty-check-dcd
il riconoscimento dell’inizio transazione avviene quando il segnale DCD diventa
attivo: ovvero quando Imola rileva il segnale DCD effettua una chiamata TCP verso
l’indirizzo IP configurato. Quando invece il segnale si disattiva, Imola abbatte la
connessione TCP.
set rs232 no-tty-check-dcd
il segnale DCD viene ignorato da Imola.

set rs232 tty-check-cts


il riconoscimento dell’inzio transazione avviene quando il segnale CTS diventa attivo:
ovvero quando Imola rileva il segnale CTS effettua una chiamata TCP verso
l’indirizzo IP configurato. Quando invece il segnale si disattiva, Imola abbatte la
connessione TCP.

set rs232 no-tty-check-cts

Tiesse 95
IMOLA User Guide - Rev.24 Ver. 07

il segnale CTS viene ignorato da Imola.


set rs232 use-x28
set rs232 explicit-nua
Abilita il protocollo X.28 sulle porte seriali. E’ necessario in questo caso configurare
il NUA e l’indirizzo IP e socket ad esso associati.

set rs232 nua <value> <ipaddr> <port>


Configura l’associazione NUA-Indirizzo IP, Porta socket. I dati ricevuti per quel
NUA sono inviati da Imola all’indirizzo IP e porta associati.
set rs232 no-nua <value>
Elimina l’associazione con il NUA specificato.
set rs232 no-use-x28
set rs232 implicit-nua
Disabilita il protocollo X.28 sulle porte seriali passando alla modalità trasparente. I
parametri relativi al NUA sono ignorati.

SALVATAGGIO CONFIGURAZIONE

Per rendere permanente la configurazione dell'interfaccia rs232 occorre eseguire,


oltre al comando "save" già descritto, il seguente comando:

shell saveconf rs232

VISUALIZZAZIONE
È possibile visualizzare informazioni riguardanti lo stato delle porte seriali mediante il
comando:

show interface rs232

root@IMOLA-TA-TSE> show interface rs232


serinfo:1.0 driver:5.05c revision:2001-07-08
0: uart:16550A port:EF600400 irq:1 baud:9645 tx:51 rx:0 RTS|DTR
1: uart:16550A port:EF600300 irq:0 tx:0 rx:0 DSR|CD

EXAR serial multiport driver version 2.0


EXAR ST16C554 card #0
0: /dev/ttyM0 tx:93688 rx:158420 oe:0 pe:0 fe:0 RTS|DTR
1: /dev/ttyM1 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
2: /dev/ttyM2 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
3: /dev/ttyM3 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
EXAR XR16L2550 card #1
4: /dev/ttyM4 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
5: /dev/ttyM5 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
EXAR XR16L2550 card #2
8: /dev/ttyM8 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR
9: /dev/ttyM9 tx:0 rx:0 oe:0 pe:0 fe:0 RTS|DTR

96 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

CONNETTORI SERIALI
Le porte RS232 di Imola sono di tipo RJ45 il cui schema dei PIN è il seguente:

12345678
12345678
DCD Vista RJ45 TOP
RTS
DSR lato opposto
TX linguetta
RX
GND
CTS
DTR

Tiesse 97
IMOLA User Guide - Rev.24 Ver. 07

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

Per aggiungere una rotta verso una destinazione di tipo IPv6:

set route ipv6 X:X::X:X/N

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 specificare un tag da applicare alle rotte utile nel caso in cui si vogliono
attivare meccanismi di redistribuzione di rotte medinate protocolli di routing
dinamico. In questo caso la sintassi del comando è:

set route net <dest> netmask <netmask> gw <gw_ipaddr> tag N


set route net <dest> netmask <netmask> dev <interface> tag N

98 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

E’ possibile impostare le rotte utilizzando il comando ip12 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]
ip route add <dst> via <nexthop> dev <ifname> proto kernel [metric N]

Nel caso che la destinazione sia di tipo IPv6, occorre specificare:


ip –6 route add <dst> dev <ifname> proto kernel [metric N]
ip –6 route add <dst> via <nexthop> 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>.

Analogamente per le destinazioni di tipo IPv6:

ip –6 route get <ipv6-dst>

visualizza quale rotta sarà selezionata per raggiungere la destinazione <ipv6-dst>.

Le rotte aggiunte direttamente mediante il comando ip hanno precedente su tutte le


altre rotte.

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.

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>

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

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

Tiesse 99
IMOLA User Guide - Rev.24 Ver. 07

BLOCCO DEL TRAFFICO MEDIANTE ROTTE STATICHE


Mediante il comando set route è possibile bloccare il traffico verso determinate
destinazioni configurando il device null0 come interfaccia di uscita dei pacchetti:
Ad esempio:

set route net 85.34.166.16 netmask 255.255.255.248 dev null0

blocca il traffico verso la sottorete 85.34.166.16/29. Analogamente

set route host 10.1.10.10 dev null0

blocca tutto il traffico verso l’host 10.1.10.10.

Un'altra possibilità e' l'utilizzo del comando nativo ip, che permette di specificare
delle rotte di tipo: blackhole, prohibit e unreachable.

Ad esempio:

ip route add blackhole 1.1.1.1


ip route add prohibit 2.2.2.2
ip route add unreachable 3.3.3.3

Nel caso blackhole l'effetto e' lo stesso della rotta su null0, cioe' i pacchetti vengono
semplicemente scartati.
Nel caso prohibit, i pacchetti vengono scartati ma viene generato un ICMP di tipo
Proihitb verso il sorgente.
Nel caso unreachable i pacchetti vengono scartati ma generato un ICMP di tipo
Unreachable verso il sorgente.

VISUALIZZAZIONE ROTTE STATICHE


Le rotte statiche possono essere visualizzate mediante il comando:

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

100 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 in cui siano attivi dei protocolli di routing dinamico, è conveniente utilizzare
il comando:

show ip route

Ad esempio:
root@IMOLA> 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.

Per le rotte di tipo IPv6 si utilizza invece il comando: show ipv6 route

Tiesse 101
IMOLA User Guide - Rev.24 Ver. 07

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 assegnare un indirizzo di tipo IPv6:

set loopback ipv6addr X:X::X:X/128

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

102 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

Tiesse 103
IMOLA User Guide - Rev.24 Ver. 07

Applicando il 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>

104 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 aggiungere un indirizzo secondario di tipo IPv6:


set alias eth0 ipv6addr X:X::X:X/N

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

root@Imola > show 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

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

Tiesse 105
IMOLA User Guide - Rev.24 Ver. 07

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 ARP di corrispondenza tra indirizzi IP e
indirizzo fisici

Per operare su oggetti di tipo IPv6 (indirizzi, rotte, neighbor) occorre specificare
l’opzione –6. Ad esempio:

ip –6 addr <opzioni>
ip –6 route <opzioni>

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

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:

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
3: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
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

106 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Mentre il comando ip address show consente di visualizzare le interfacce con


relativi IP address associati:

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

Il comando ip route show consente di visualizzare le tabelle di routing :

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

Il comando ip neigh consente di visualizzare le tabelle ARP presenti sul router :

root@Imola> ip neigh show


10.10.4.0 dev eth0 lladdr 00:c0:26:a3:58:52 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

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

CANCELLARE LE TABELLE DI ARP MEDIANTE COMANDO IP

La sintassi del comando ip per effettuare il flush della tabella di ARP è:

ip neigh flush dev <ifname>

Ad esempio,

ip neigh flush dev eth0

azzera le tabelle di ARP associata all’interfaccia eth0.

DISABILITARE UN’INTERFACCIA DI RETE MEDIANTE COMANDO IP

La sintassi del comando ip per mettere in shut un’interfaccia di rete è:

ip link set <ifname> down

Tiesse 107
IMOLA User Guide - Rev.24 Ver. 07

mentre per riabilitarla:

ip link set <ifname> up

AGGIUNGERE UN INDIRIZZO DI RETE MEDIANTE COMANDO IP

La sintassi del comando ip per aggiungere un indirizzo ad un’interfaccia di rete è:

ip addr add <ip-address>/N dev <ifname>

mentre per eliminarlo:

ip addr del <ip-address>/N dev <ifname>

Ad esempio:

ip addr add 172.20.1.1/24 de eth1

POLICY ROUTING MEDIANTE COMANDO IP

A differenza del routing classico, che permette di effettuare delle decisioni in base
all'indirizzo IP destinazione, il Policy Routing permette di selezionare la rotta di
instradamento oltre che in base alla destinazione anche su altri parametri, quali ad
esempio l'indirizzo IP sorgente, il tipo di protocollo, la porta sorgente o destinazione,
il campo TOS o una qualsiasi combinazione dei campi del pacchetto IP.
Ogni criterio di routing viene quindi descritto all'interno di una tabella di routing
distinta.

Il concetto risulta più chiaro ricorrendo ad alcuni esempi:

Supponiamo di avere due interfacce di rete, chiamate rispettivamente atm0 ed atm1:


sulla prima si vogliono inviare i pacchetti TCP provenienti dalla sottorete
10.10.0.0/16 e diretti verso il servizio 80, sulla seconda si vogliono inviare tutti i
pacchetti UDP provenienti dalla sottorete 10.10.0.0/16.

Mediante i comandi:

ip route add table 10 default via 1.1.1.2 dev atm0


ip route add table 20 default via 1.1.2.2 dev atm1

vengono definite due tabelle di routing, chiamate rispettivamente 10 e 20, dove la


tabella 10 invia tutto il traffico verso il nexthop 1.1.1.2 attraverso l'interfaccia atm0,
mentre la tabella 20 invia tutto il traffico sull'interfaccia atm1.

Una volta definite le tabelle, e' necessario caratterizzare il tipo di traffico che deve
utilizzare la tabella 10 ed il tipo di traffico che deve utilizzare la tabella 20.

Per fare questo si usa il comando iptables che grazie all’opzione mangle permette di
classificare il traffico in base ad una qualsiasi combinazione del pacchetto IP (il
comando iptables viene trattato im dettaglio in una sezione dedicata).

108 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Ad esempio il comando:

set iptables -t mangle -A PREROUTING -p tcp --dport 80 -s 10.10.0.0/16


-j MARK --set-mark 0x04

marchia con il valore 0x04, tutti i pacchetti di tipo TCP,provenienti dalla subnet
10.10.0.0/16 e diretti verso la porta 80, mentre il comando:

set iptables -t mangle -A PREROUTING -p udp -s 10.10.0.0/16


-j MARK --set-mark 0x08

marchia tutti i pacchetti di tipo UDP con il valore 0x08. (Da tenere presente che la
marchiatura non viene effettuata sul pacchetto trasmesso in rete, ma su un descrittore
di esso). Infine i comandi:

set ip rule add fwmark 0x04 table 10


set ip rule add fwmark 0x08 table 20

stabiliscono che i pacchetti marchiati con 0x04 devono consultare la tabella 10,
mentre i pacchetti marchiati con 0x08 seguiranno la tabella 20. Pertanto:

• i pacchetti provenienti dalla subnet 10.10.0.0/16 di tipo TCP ed inviati verso il


servizio 80 verrano instradati attraverso l'interfaccia atm0, mentre i pacchetti
di tipo UDP verranno inviati sull'interfaccia tm1.

La decisione di routing per il traffico non classificato viene presa consultando la


tabella di routing di default (se presente).

Il comando ip rule può essere specificato mediante l’opzione:

set ip rule <opzioni>

oppure impostato come un autocmd:

set autocmd ip rule <opzioni>

I comandi per aggiungere le tabelle di routing richiedono che l’interfaccia sia attiva,
per cui è opportuno che essi siano configurati come trigger dell’interfaccia:

set trigger adsl up ip route add table 10 dev atm0


set trigger adsl up ip route add table 20 dev atm1

PVC BUNDLING

La tecnica di PVC Bundling permette di creare un’interfaccia virtuale che aggrega


due interfacce fisiche, ovvero due circuiti differenti. Essa si applica a circuiti di
tipo ADSL, SHDSL e Frame Relay. Inoltre è possibile classificare il traffico in
modo tale che questo venga trasmesso solo sul circuito desiderato.

Ad esempio, nel caso di una rete SHDSL sono definiti due distinti circuiti:

set shdsl line-mode 4-wire standard

Tiesse 109
IMOLA User Guide - Rev.24 Ver. 07

set shdsl line-term cpe


set shdsl line-rate-type fixed
set shdsl pvc atm0 encap rfc1483-bridged
set shdsl pvc atm0 vpi 8
set shdsl pvc atm0 vci 35
set shdsl pvc atm0 no-default-route
set shdsl pvc atm0 no-masquerade
set shdsl pvc atm0 ipaddr 0.0.0.0
set shdsl pvc atm1 encap rfc1483-bridged
set shdsl pvc atm1 vpi 8
set shdsl pvc atm1 vci 36
set shdsl pvc atm1 no-default-route
set shdsl pvc atm1 no-masquerade
set shdsl pvc atm1 ipaddr 0.0.0.0
set shdsl on

I due corcuiti corrispondono alle interfacce di rete chiamate shdsl.835 e


shdsl.836.

Impostando i comandi:

set pvc-bundle pvc0 shdsl.835


set pvc-bundle pvc1 shdsl.836
set pvc-bundle ipaddr 192.168.1.2
set pvc-bundle netmask 255.255.255.252
set pvc-bundle on

oltre ai due circuiti SHDSL, verrà create l’interfaccia virtuale pbond0 cui verrà
assegnato l’indirizzo 192.168.1.2:

root@IMOLA> ifconfig pbond0


pbond0 Link encap:Ethernet HWaddr 00:0D:5A:9E:7B:B8
inet addr:7.1.1.10 Bcast:0.0.0.0 Mask:255.255.255.252
UP BROADCAST RUNNING MASTER 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:512
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

I pacchetti trasmessi su tale interfaccia verranno distribuiti in maniera round-robin


su entrambe le interfacce shdsl.835 ed shdsl.836, cioè su entrambi i circuiti
SHDSL.

Nell’esempio è stato scelto di non assegnare alcun indirizzo alle interfacce fisiche
shdsl.835 e shdsl.836, di conseguenza l’unico modo per utilizzare la rete SHDSL
è quello di attivare l’interfaccia logica pbond0.

Nella sezione precedente è stato descritto come grazie al comando iptables è


possibile classificare i pacchetti ed assegnare loro un marchio.
Nella configurazione del bundling ad ognuno dei due circuiti può essere associato
un marchio in modo tale che tutti i pacchetti contenente tale valore verranno
trasmessi sono sul circuito virtuale corrispondente.

Ad esempio, una variante dei comandi precedenti è la seguente:

set pvc-bundle pvc0 shdsl.835 mark 0x04


set pvc-bundle pvc1 shdsl.836
set pvc-bundle ipaddr 192.168.1.2

110 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set pvc-bundle netmask 255.255.255.252

Se impostiamo il comando:

set iptables -t mangle -A PREROUTING -p tcp --dport 80 -s 10.10.0.0/16


-j MARK --set-mark 0x04

che marchia con il valore 0x04, tutti i pacchetti di tipo TCP, provenienti dalla subnet
10.10.0.0/16 e diretti verso la porta 80, allora tali pacchetti verrano trasmessi
solamente sul circuito shdsl.835, mentre tutti gli altri pacchetti verranno ripartiti in
modo round-robin tra il circuito shdsl.835 ed shdsl.836.

Inoltre se impostiamo i comandi:

set pvc-bundle pvc0 shdsl.835 mark 0x04


set pvc-bundle pvc1 shdsl.836 mark 0x08
set pvc-bundle ipaddr 192.168.1.2
set pvc-bundle netmask 255.255.255.252

set iptables -t mangle -A PREROUTING -p tcp --dport 80 -s 10.10.0.0/16


-j MARK --set-mark 0x04

set iptables -t mangle -A PREROUTING -p tcp --dport 110 -s 10.10.0.0/16


-j MARK --set-mark 0x08

l’effetto è:

• i pacchetti diretti verso la porta 80 verranno inviati solo su shdsl.835


• i pacchetti diretti verso la porta 110 verranno inviati solo su shdsl.836
• tutti gli altri verranno ridistribuiti sulle due interfacce

Per disattivare le funzioni di bundling è disponibile il comando:

set pvc-bundle off

Questo comando distrugge l’interfaccia virtuale pbond0 per cui se non è stato
assegnato alcun indirizzo alle interfacce fisiche shdsl.835 ed shdsl.836, queste
difficilmente potranno essere utilizzate.

Sono disponibili anche i comandi:

set pvc-bundle masquerade


set pvc-bundle no-maquerade
Per abilitare o disabilitare le funzioni di PAT per i pacchetti in uscita sull’interfaccia
pbond0.

set pvc-bundle default-routene


set pvc-bundle no-default-route
Per attivare o disattivare una rotta statica di default sull’interfaccia bundling.

L’interfaccia pbond0 eredita i valori di MTU e dimensione della coda di


trasmissione dalla seconda interfaccia che viene messa nella lista di bundling.
E’ tuttavia possibile variarli mediante i comandi:

Tiesse 111
IMOLA User Guide - Rev.24 Ver. 07

set pvc-bundle mtu <valore>


set pvc-bunde qlen <valore>
set pvc-bundle no-mtu
set pvc-bundle no-qlen

Il valore di MTU non deve essere superiore al valore delle interfacce fisiche,
mentre i valori di MTU delle due interfacce fisiche deve essere uguali tra loro.

Infine per cancellare la configurazione del bundling è disponibile il comando:

set no-pvc-bundle

Le funzioni di PVC Bundling sono trasparti alla modalità di incapsulamento del


PVC (routed o bridged) e possono essere definiti anche su ADSL e su Frame
Relay. Un esempio ADSL:

set adsl pvc-number 2


set adsl pvc atm0 encap rfc1483-llc
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 no-default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr 0.0.0.0
set adsl pvc atm1 encap rfc1483-llc
set adsl pvc atm1 vpi 8 vci 36
set adsl pvc atm1 service UB
set adsl pvc atm1 no-default-route
set adsl pvc atm1 no-masquerade
set adsl pvc atm1 ipaddr 0.0.0.0
set adsl on

set pvc-bundle pvc0 atm0


set pvc-bundle pvc1 atm1
set pvc-bundle ipaddr 94.95.231.154
set pvc-bundle netmask 255.255.255.252
set pvc-bundle default-route
set pvc-bundle on

mentre su Frame Relay:

set wan protocol frame-relay


set wan mode v35
set frame-relay baud-rate external
set frame-relay station dte
set frame-relay lmi-type ansi
set frame-relay pvc pvc0 dlci 384
set frame-relay pvc pvc0 0.0.0.0
set frame-relay pvc pvc0 no-default-route
set frame-relay pvc pvc0 no-masquerade
set frame-relay pvc pvc1 mtu 1500
set frame-relay pvc pvc1 dlci 231
set frame-relay pvc pvc1 0.0.0.0
set frame-relay pvc pvc1 no-default-route
set frame-relay pvc pvc1 no-masquerade
set frame-relay pvc pvc1 mtu 1500

set frame-relay on

set pvc-bundle pvc0 pvc0


set pvc-bundle pvc1 pvc0
set pvc-bundle ipaddr 94.95.231.154
set pvc-bundle netmask 255.255.255.252

112 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set pvc-bundle default-route


set pvc-bundle on

Per aggiungere le rotte sul’’interfaccia di bundling, in alternativa al comando:

set pvc-bundle default-route

si può usare il comando:

set route net <destination> netmask <netmask> dev pbond0

COMANDO PING
Il comando ping permette di inviare pacchetti ICMP di tipo request verso un indirizzo
IP remoto:

PING 151.1.1.1 (151.1.1.1) from 85.34.166.22 : 56(84) bytes of data.


64 bytes from 151.1.1.1: icmp_seq=0 ttl=55 time=40.242 msec
64 bytes from 151.1.1.1: icmp_seq=1 ttl=55 time=39.860 msec
64 bytes from 151.1.1.1: icmp_seq=2 ttl=55 time=40.606 msec
64 bytes from 151.1.1.1: icmp_seq=3 ttl=55 time=40.107 msec
64 bytes from 151.1.1.1: icmp_seq=4 ttl=55 time=40.358 msec
64 bytes from 151.1.1.1: icmp_seq=5 ttl=55 time=39.570 msec

--- 151.1.1.1 ping statistics ---


6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max/mdev = 39.570/40.123/40.606/0.424 ms

I pacchetti vengono inviati ogni secondo. Per interromperne l’esecuzione occorre


digitare <CTRL>-C. Le statistiche riportano il tempo di Round Trip minimo, medio,
massimo e lo scarto quadratico medio misurato.

Accetta numerose opzioni. Ad esempio

Per specificare l’intervallo tra un pacchetto e l’altro:


ping -i N <ip-destinazione>

dove N è espresso in secondi e può assumere anche valori decimali.

Per specificare la dimensione del pacchetto da trasmettere:


ping –s <size> <ip-destinazione>

Per specificare l’indirizzo IP sorgente (ping esteso):


ping –I <ip-sorgente> <ip-destinatario>

Per inviare un numero predefinito di pacchetti:


ping –c N <ip-destinatario>

Per specificare specificare il valore del TOS da inserire nel pacchetto IP:
ping –Q <tos-value> <ip-destinazaione>

Per inviare pacchetti con il bit DF settato ad 1:


ping –M do <ip-destinazione>

Tiesse 113
IMOLA User Guide - Rev.24 Ver. 07

Per inviare pacchetti con il bit DF settato ad 0:


ping –M dont <ip-destinazione>

Le varie opzioni del comando possono essere combinate tra di loro, ad sempio:
ping 151.1.1.1 –s 1472 –M do –Q 192 –i 0.2 –c 5

PING 151.1.1.1 (151.1.1.1) from 85.34.166.22 : 1472(1500) bytes of data.


1480 bytes from 151.1.1.1: icmp_seq=0 ttl=55 time=58.794 msec
1480 bytes from 151.1.1.1: icmp_seq=1 ttl=55 time=58.333 msec
1480 bytes from 151.1.1.1: icmp_seq=2 ttl=55 time=59.094 msec
1480 bytes from 151.1.1.1: icmp_seq=3 ttl=55 time=59.150 msec
1480 bytes from 151.1.1.1: icmp_seq=4 ttl=55 time=58.585 msec

--- 151.1.1.1 ping statistics ---


5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 58.315/58.684/59.150/0.405 ms

Per inviare dei pacchetti ICMP verso un host di tipo IPv6 si usa invece la viariante:
ping6 X:X::X:X

COMANDO TRACEROUTE
Il comando traceroute permette di tracciare il percorso necessario per raggiungere
un host remoto:

root@IMOLA> traceroute 10.10.10.10


traceroute to 10.10.10.10 (10.10.10.10), 30 hops max, 40 byte packets
1 85.34.166.18 (85.34.166.18) 1.429 ms 1.047 ms 1.310 ms
2 85.34.166.17 (85.34.166.17) 1.485 ms 1.301 ms 1.521 ms
3 10.10.10.10 (10.10.10.10) 2.614 ms 2.525 ms 2.542 ms

E’ possibile spcificare l’indirizzo IP sorgente:

traceroute –s <ip-sorgente> <ip-destinazione>

Inoltre è possibile inviare pacchetti ICMP invece che pacchetti UDP mediante
l’opzione:

traceroute –I <ip-destinazione>

COMANDO TCPDUMP
Il comando tcpdump visualizza tutti i pacchetti trasmessi e ricevuti su un’interfaccia
di rete specificata:

tcpdump –i <ifname>

Per interrompere l’esecuzione del programma bisogna digitare <CTRL>-C.

E’ possibile applicare dei filtri ai pacchetti ricevuti:

Solo i pacchetti diretti o ricevuti dall’host 151.1.1.1:


tcpdump –i atm0 host 151.1.1.1

114 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Tutti i pacchetti tranni quelli diretti e ricevuti dall’host 151.1.1.1


tcpdump –i eth0 host not 151.1.1.1

Solo i pacchetti ricevuti con indirizzo sorgente 85.34.166.18:


tcpdump -i atm0 src host 85.34.166.18

Solo i pacchetti del protocollo http::


tcpdump –i atm0 port 80

Tutti i pacchetti tranne quelli verso la porta telnet:


tcpdump –i atm0 port not telnet

Solo i pacchetti di tipo ICMP:


tcpdump –i atm0 icmp

Solo i pacchetti ICMP diretti all’host 82.1.1.1:


tcpdump –i atm0 icmp and dst host 82.1.1.1

Tutti i pacchetti UDP:


tcpdump –i atm0 udp

Solo i pacchetti icmp e i pacchetti verso l’host 82.1.1.1:


tcpdump –i atm0 icmp or host 82.1.1.1

Solo i pacchetti HTTP ed SSH:


tcpdump –i atm0 port 23 or port 22

Tutti i pacchetti tranne quelli VRRP:


tcpdump –i eth1 not vrrp

Solo i pacchetti GRE:


tcpdump –i atm0 proto 47

Solo i pacchetti OSPF:


tcpdump –i eth1 proto ospf

COMANDO LOAD-AVG
Il comando load-avg misura il carico di un’interfaccia di rete in termini di traffico
trasmesso e ricevuto in un determinato intervallo. Per attivare il comando:

load-avg interface <ifname> interval <seconds>

mentre per visualizzare il carico:

show interface load-avg <ifname>

Ad esempio:

load-avg interface eth0 period 30

Tiesse 115
IMOLA User Guide - Rev.24 Ver. 07

e dopo aver atteso almeno 30 secondi:

show interface load-avg eth0

30 second input rate 2.71 Kbit/sec, 1 packets/sec


30 second output rate 3.44 Kbit/sec, 2 packets/sec
53 packets input, 10412 bytes
0 multicast, 0 input errors, 0 dropped
0 frame error, 0 overruns
62 packets output, 13212 bytes
0 output errors, 0 dropped, 0 carrier lost
0 frame error, 0 overruns, 0 collisions

Per interrompere la misura si usa il comando:

no-load-avg

COMANDO SET INTERFACE


Il comando set interface permette di definire dei parametri di funzionamento per
un determinata interfaccia di rete. Le opzioni principali sono:

set interface <ifname> bandwidth <1-1000000>


per impostare la banda associata all’interfaccia. Tale valore verrà eventualmente
utilizzato dal protocollo OSPF.

set interface <ifname> unnumbered


Per mettere l’interfaccia in modalità unnumbered. Tale comando si utilizza insieme al
protocollo OSPF soprattutto per configurazioni su linee ISDN.

set interface <ifname> ipv6 nd <opzioni>


Per configurare il protocollo di Network Discovery di IPV6. Le opzioni permettono di
specificare i vari parametri di protocollo, come Router Advertisment lifetime,
interval, etc.

116 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ACCESS LIST, SOURCE NAT E REDIRECT


La gestione delle tabelle di filtraggio dei pacchetti è presente su Imola in tre
modalità semplificate ed una avanzata13.

Le tre modalità semplificate sono:

(Access Control List) consente di mettere dei filtri per accettare


access-list
o scartare pacchetti IP in transito
consente di effettuare operazioni di reindirizzamento dei
redirect
pacchetti da/verso indirizzi IP e/o porte diverse
consente di effettuare operazioni mascheramento o di cambiare
source-nat
l'indirizzo sorgente e/o destinatario dei pacchetti IP

La modalità avanzata è la modalità:

che consente di applicare in modo esplicito le direttive di filtraggio dei


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

13
E’ consigliato l’utilizzo della modalità avanzata, mediante il comando iptables invece che
i comandi set redirect, set source-nat set access-list.

Tiesse 117
IMOLA User Guide - Rev.24 Ver. 07

Per accettare i pacchetti:

set access-list permit


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

118 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

per scartare i pacchetti in transito:

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

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

Tiesse 119
IMOLA User Guide - Rev.24 Ver. 07

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:

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"

Per verificare quali sono effettivamente attualizzate si usa direttamente il comando


iptables:

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>

120 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 mediante 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 numerico del protocollo.

La configurazione della porta può essere effettuata specificando il servizio tramite


nome (ad esempio: telnet) o numero (23). Inoltre è possibile utilizzare la keyword
all per indicare che la regola sarà applicata sui pacchetti destinati a qualsiasi porta. È
anche possibile configurare un range di porte (ad esempio: 17:23).
Per quanto riguarda la configurazione dell'indirizzo IP sorgente e/o destinatario è
possibile invece impostare direttamente l'indirizzo (anche specificando la netmask),
utilizzare la chiave any (per indicare qualsiasi indirizzo IP) o this (per indicare
pacchetti destinati ad Imola).

Esempio:
il traffico destinato alla porta 7 (servizio echo), proveniente da qualsiasi indirizzo IP e
diretto ad Imola, redirezionato all'indirizzo IP 192.168.0.2:

set redirect prot tcp port 7 from any to this to-ip 192.168.0.2

Tiesse 121
IMOLA User Guide - Rev.24 Ver. 07

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”

Per verificare quali sono effettivamente attualizzate si usa direttamente il comando


iptables –t nat –L -v:

SOURCE-NAT

CONFIGURAZIONE

La lista di regole che consentono 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 .

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),

122 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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 .

Tiesse 123
IMOLA User Guide - Rev.24 Ver. 07

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

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"

124 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:


Tiesse 125
IMOLA User Guide - Rev.24 Ver. 07

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

126 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:

Usata per alterare i pacchetti ricevuti attraverso


PREROUTING un'interfaccia di rete, al momento del loro arrivo.Viene usata
per effettuare Destination NAT. Il target è –j DNAT.
Usata per alterare i pacchetti in uscita dal router stesso, cioè
OUTPUT quelli generati localmente. Si usa per Source NAT. Il target è
–j SNAT.
questa catena altera i pacchetti prima che vengano instradati
attraverso un'interfaccia di rete. Si usa per Source NAT. Il
POSTROUTING
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

Tiesse 127
IMOLA User Guide - Rev.24 Ver. 07

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


altera i pacchetti di rete prima che vengano inviati
OUTPUT
all'esterno
FORWARD altera i pacchetti di rete in transito dal router
altera i pacchetti ricevuti attraverso un'interfaccia di rete
PREROUTING
prima che vengano instradati
altera i pacchetti prima che vengano inviati attraverso
POSTROUTING
un'interfaccia di rete

128 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 attraversano un tunnel
GRE:

iptables –t mangle -A POSTROUTING –p 47 -j DSCP --set-dscp 32

Tiesse 129
IMOLA User Guide - Rev.24 Ver. 07

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

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

130 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

--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 il valore 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

Tiesse 131
IMOLA User Guide - Rev.24 Ver. 07

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
-j IPV4OPTSSTRIP Si usa nella tabella mangle per eliminare le opzioni presenti
all’interno dell’header IPv4:

132 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 default table 40 dev atm0

Per consultare l’elenco dei parametri disponibili si usa il comando:

iptables –j <TARGET> --help.

Ad esempio:

iptables –j REJECT --help


iptables –j TOS --help
iptables –j DSCP --help

Tiesse 133
IMOLA User Guide - Rev.24 Ver. 07

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

134 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 135
IMOLA User Guide - Rev.24 Ver. 07

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


-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

136 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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

Tiesse 137
IMOLA User Guide - Rev.24 Ver. 07

è 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:

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

138 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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

Tiesse 139
IMOLA User Guide - Rev.24 Ver. 07

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

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:

140 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Comandi iptables equivalenti:


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

Tiesse 141
IMOLA User Guide - Rev.24 Ver. 07

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:

142 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:

Tiesse 143
IMOLA User Guide - Rev.24 Ver. 07

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é
mancano di sequenzializzazione. Ricevere due datagram UDP in un certo ordine, non
significa che essi sono stati inviati in quello stesso ordine.

144 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 pacchetto 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:

La richiesta di icmp echo request è considerata NEW dal firewall, mentre la risposta
echo reply 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

Tiesse 145
IMOLA User Guide - Rev.24 Ver. 07

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

146 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

porte. Sono perciò necessarie delle estensioni ai filtri del firewall in modo che questi
sia in grado di recuperare le informazioni tra i dati scambiati e classificare queste
connessioni aggiuntive come RELATED.

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

Tiesse 147
IMOLA User Guide - Rev.24 Ver. 07

UN ESEMPIO DI FIREWALL
Consideriamo il seguente scenario:

Internet

HTTP IP 85.34.147.17
FRWL IP 85.34.147.18 atm0

eth0 eth1

HTTP IP 192.168.1.2 LAN IP 192.168.0.0/24

DMZ LAN

dove il router, cui sono assegnati gli indirizzi pubblici 85.34.147.17 e 85.34.147.18, è
collegato:

• alla rete pubblica attraverso 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


iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

148 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

# 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


Il comando iptables ha effetto immediato, tuttavia affinchè le regole impostate siano
memorizzate nella configurazione e attualizzate al prossimo reboot del router sono
disponibilie due possibilità. La prima richiede che tutti i comandi abbiano la sintassi:

set iptables <opzioni>

La seconda prevede l’utilizzo del comando:

iptables-save

In genere se le regole impostate sono in numero limitato, allora conviene l’utilizzo


della sintassi: set iptables …, altrimenti si ricorre al comando iptables-save.

Tale comando appartiene ad un gruppo di comandi che permettono esclusiovamente


la manipolazione delle regole di iptables. Il comando:

iptables-stat

visualizza le regole presenti e i relativi contatori associati ad ognuna.

Per annullare tutte le regole presenti è disponibile il comando:

iptables-flush.

Tiesse 149
IMOLA User Guide - Rev.24 Ver. 07

Affinchè nessuna regola venga impostata al prossimo reboot occorre eseguire i


comandi:

iptables-flush
iptables-save

Il comando:

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

150 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

mentre per visualizzare il valore corrente:

iptables-sysctl ip_conntrack_tcp_timeout_established

Il comando:

iptables-restore

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:

Tiesse 151
IMOLA User Guide - Rev.24 Ver. 07

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.

152 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:

Tiesse 153
IMOLA User Guide - Rev.24 Ver. 07

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


set vrrp vmac
set vrrp interface eth1
set vrrp vrid 11
set vrrp priority 100
set vrrp delay 1
set vrrp vipaddr 10.10.10.10
set vrrp on

VRRP ID 11 on eth1: we are now the master router.


VRRP ID 11, Priority: 100, Virtual IP(s): 10.10.10.10 Virtual MAC: 00:00:5e:00:01:0b
VRRP ID 11 Changed state 2 times. Last time change was 25 sec ago

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

154 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

CONFIGURAZIONE VRRP MEDIANTE COMANDO VRRPD


In alternativa al comando set vrrp può essere usato direttamente il comando
vrrpd, utile soprattutto per creare un numero di gruppi VRRP a piacere.. 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 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.

Tiesse 155
IMOLA User Guide - Rev.24 Ver. 07

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


per determinare i possibili percorsi per raggiungere destinazioni remote.
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 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 vogliono 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-basic t1 t2 t3

156 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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


parametri avanzati del protocollo. Ad esempio i comandi:

set rip directive route 33.33.33.0/24


set rip directive route 44.44.0.0/16

stabiliscono che le network 33.33.33.0/24 e 44.44.0.0/16 devono essere incluse


negli annunci RIP.

Il comando
set rip directive redistribute static

stabilisce che devoo essere annunciate tutte le rotte statiche presemti.

Il comando:

set rip no-directive <comando router>

elimina dalla configurazione la direttiva rip introdotta.

I principali comandi che possono essere specificati con tale opzione sono:
network network
network ifname
neighbor a.b.c.d
timers-basic update timeout garbage

passive-interface (IFNAME|default)
ip split-horizon

Tiesse 157
IMOLA User Guide - Rev.24 Ver. 07

version version

redistribute kernel
redistribute kernel metric <0-16>
redistribute kernel route-map <rm-name>
redistribute static
redistribute static metric <0-16>
redistribute static route-map <rm-name>
redistribute connected
redistribute connected metric <0-16>
redistribute connected route-map <rm-name>
redistribute ospf
redistribute ospf metric <0-16>
redistribute ospf route-map <rm-name>
redistribute bgp
redistribute bgp metric <0-16>
redistribute bgp route-map <rm-name>
default-information originate

route a.b.c.d/m
distribute-list access_list direct ifname
distribute-list prefix prefix_list (in|out) ifname
distribute-list prefix prefix_list (in|out) ifname
distance <1-255>
distance <1-255> A.B.C.D/M
distance <1-255> A.B.C.D/M access-list

route-map <rm-name> permit match interface word


route-map <rm-name> permit match ip address word
route-map <rm-name> permit match ip address prefix-list word
route-map <rm-name> permit match ip next-hop A.B.C.D
route-map <rm-name> permit match metric <0-4294967295>
route-map <rm-name> permit match tag <1-65356>
route-map <rm-name> deny match interface word
route-map <rm-name> deny match ip address word
route-map <rm-name> deny match ip address prefix-list word
route-map <rm-name> deny match ip next-hop A.B.C.D
route-map <rm-name> deny match metric <0-4294967295>
route-map <rm-name> deny match tag <1-65356>

route-map <rm-name> permit set ip next-hop A.B.C.D


route-map <rm-name> permit set metric <0-4294967295>
route-map <rm-name> permit set tag <1-65356>
route-map <rm-name> deny set ip next-hop A.B.C.D
route-map <rm-name> deny set metric <0-4294967295>
route-map <rm-name> deny set tag <1-65356>

ip prefix-list <prf-name> description <description>


ip prefix-list <prf-name> permit <prefix-list-rule>
ip prefix-list <prf-name> permit <prefix-list-rule>

ip prefix-list <prf-name> deny <prefix-list-rule>


ip prefix-list <prf-name> deny <prefix-list-rule>

Per disabilitare il protocollo rip utilizzare il comando:


set no-rip

CONFIGURAZIONE PROTOCOLLO OSPF


Per configurare il protocollo OSPF si usa il comando:

set ospf directive <comando ospf>

158 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

mentre per eliminarlo dalla configurazione:

set ospf no-directive <comando ospf>.

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 configurare i parametri relativi ad una specifica interfaccia si usa il comado:

set ospf directive interface <ifname> <parametro> <valore>

Ad esempio per impostare un costo e una priorità sull’interfaccia pvc0:

set ospf directive interface pvc0 ospf cost 1000


set ospf directive interface pvc0 ospf priority 50

Per arrestare e per disabilitare il protocollo ospf utilizzare rispettivamente i seguenti


comandi:
set ospf off
set no-ospf

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

show ip route ospf

Sono disponibili vari comandi per la verifica del funzionamento. Ad esempio:

show ip ospf neighbor


show ip ospf border-routers
show ip ospf database
show ip ospf route

E’ possibile abilitare il debugging del funzionamento mediante il comando:

debug ospf <opzioni>

I principali comandi di OSPF sono:

ospf router-id a.b.c.d


ospf abr-type cisco|standard
ospf rfc1583compatibility
log-adjacency-changes [detail]
passive-interface interface
timers throttle spf delay initial-holdtime max-holdtime

network a.b.c.d/m area a.b.c.d


network a.b.c.d/m area <0-4294967295>

neighbor A.B.C.D
neighbor A.B.C.D poll-interval <1-65535>
neighbor A.B.C.D poll-interval <1-65535> priority <0-255>

Tiesse 159
IMOLA User Guide - Rev.24 Ver. 07

neighbor A.B.C.D priority <0-255>


neighbor A.B.C.D priority <0-255> poll-interval <1-65535>

area a.b.c.d stub


area a.b.c.d stub no-summary
area <0-4294967295> stub no-summary
area a.b.c.d default-cost <0-16777215>
area a.b.c.d filter-list prefix NAME in
area a.b.c.d filter-list prefix NAME out
area <0-4294967295> filter-list prefix NAME in
area <0-4294967295> filter-list prefix NAME out

ip ospf cost <1-65535>


ip ospf dead-interval <1-65535>
ip ospf dead-interval minimal hello-multiplier <2-20>
ip ospf hello-interval <1-65535>
ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)
ip ospf priority <0-255>
ip ospf retransmit-interval <1-65535>
ip ospf transmit-delay

redistribute (kernel|connected|static|rip|bgp)
redistribute (kernel|connected|static|rip|bgp) route-map
redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)
redistribute (kernel|connected|static|rip|bgp)
metric-type (1|2) route-map word
redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>
redistribute (kernel|connected|static|rip|bgp)
metric <0-16777214> route-map word
redistribute (kernel|connected|static|rip|bgp)
metric-type (1|2) metric <0-16777214>
redistribute (kernel|connected|static|rip|bgp)
metric-type (1|2) metric <0-16777214> route-map word

default-information originate
default-information originate metric <0-16777214>
default-information originate metric <0-16777214> metric-type (1|2)
default-information originate metric <0-16777214>
metric-type (1|2) route-map word

distribute-list NAME out (kernel|connected|static|rip|ospf


default-metric <0-16777214>
distance <1-255>

route-map <name> permit <seq> set metric <0-4294967295>


route-map <name> permit <seq> set metric-type type-2
route-map <name> permit <seq> set metric-type type-1
route-map <name> permit <seq> set tag <1-65536>

route-map <name> deny <seq> set metric <0-4294967295>


route-map <name> deny <seq> set metric-type type-2
route-map <name> deny <seq> set metric-type type-1
route-map <name> deny <seq> set tag <1-65536>

route-map <name> permit <seq> match tag <1-65536>

route-map <name> deny <seq> match tag <1-65536>

access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D


access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D
access-list (<1-99>|<1300-1999>) (deny|permit) any
access-list (<1-99>|<1300-1999>) (deny|permit) host A.B.C.D
access-list (<100-199>|<2000-2699>) (deny|permit)
ip A.B.C.D A.B.C.D A.B.C.D A.B
access-list (<100-199>|<2000-2699>) (deny|permit)
ip A.B.C.D A.B.C.D any
access-list (<100-199>|<2000-2699>) (deny|permit)

160 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ip A.B.C.D A.B.C.D host A.B.C.


access-list (<100-199>|<2000-2699>) (deny|permit)
ip any A.B.C.D A.B.C.D
access-list (<100-199>|<2000-2699>) (deny|permit) ip any any
access-list (<100-199>|<2000-2699>) (deny|permit) ip any host A.B.C.D
access-list (<100-199>|<2000-2699>) (deny|permit)
ip host A.B.C.D A.B.C.D A.B.C.
access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D any
access-list (<100-199>|<2000-2699>) (deny|permit)
ip host A.B.C.D host A.B.C.D
access-list WORD (deny|permit) A.B.C.D/M
access-list WORD (deny|permit) A.B.C.D/M exact-match
access-list WORD (deny|permit) any

ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)


ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>

ip prefix-list WORD
description .LINE
ip prefix-list WORD
seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)
ip prefix-list WORD
seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>
ip prefix-list WORD
seq <1-4294967295> (deny|permit) A.B.C.D/M
ge <0-32> le <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M
le <0-32> ge <0-32>
ip prefix-list sequence-number

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.

Tiesse 161
IMOLA User Guide - Rev.24 Ver. 07

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 attivate la sessione BGP anche se per raggiungere il router neighbor è


necessario attraversare più router intermedi (hops).

Per abilitare il protocollo bgp utilizzare il comando:


set bgp on

Per arrestare o per disabilitare il protocollo bgp utilizzare rispettivamente i comandi:


set bgp off
set no-bgp

La propagazione delle rotte tra i due sistemi può essere verificata mediante il
comando:
show ip route bgp

Sono disponibili vari comandi per la verifica del funzionamento. Ad esempio:

show ip bgp neighbor


show ip bgp summary
show ip bgp neighbor X.Y.Z.T advertised-routes
show ip bgp neighbor X.Y.Z.T received-routes

Possono essere impostate opzioni avanzate del protocollo bgp mediante il comando:

set bgp directive <opzione>.

Ad esempio:
set bgp directive neighbor 172.151.2.5 override-capability

I principali comandi che possono essere specificati con l’opzione directive sono:

bgp router-id A.B.C.D


distance bgp <1-255> <1-255> <1-255>
distance <1-255> A.B.C.D/M
network A.B.C.D/M
redistribute kernel
redistribute static
redistribute connected
redistribute rip
redistribute ospf

162 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

neighbor peer remote-as asn


neighbor peer ebgp-multihop
neighbor peer description ...
neighbor peer version version
neighbor peer next-hop-self
neighbor peer update-source <ifname|address>
neighbor peer default-originate
neighbor peer port port
neighbor peer send-community
neighbor peer send-community
neighbor peer weight weight
neighbor peer distribute-list name [in|out]
neighbor peer prefix-list name [in|out]
neighbor peer filter-list name [in|out]
neighbor peer route-map name [in|out
neighbor peer strict-capability-match
neighbor peer dont-capability-negotiate
neighbor peer override-capability

access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D


access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D
access-list (<1-99>|<1300-1999>) (deny|permit) any
ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)
ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>
ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M
ge <0-32> le <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>
ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M
ip prefix-list sequence-number

route-map <name> permit|deny <seq> set aggregator as <1-4294967295> A.B.C.D


route-map <name> permit|deny <seq> set as-path exclude .<1-4294967295>
route-map <name> permit|deny <seq> set as-path prepend .<1-4294967295>
route-map <name> permit|deny <seq> set atomic-aggregate
route-map <name> permit|deny <seq> set community .AA:NN
route-map <name> permit|deny <seq> set community none

route-map <name> permit|deny <seq>


set extcommunity rt .ASN:nn_or_IP-address:nn
route-map <name> permit|deny <seq>
set extcommunity soo .ASN:nn_or_IP-address:nn

route-map <name> permit|deny <seq> set ip next-hop A.B.C.D


route-map <name> permit|deny <seq> set ip next-hop peer-address
route-map <name> permit|deny <seq> set local-preference <0-4294967295>
route-map <name> permit|deny <seq> set metric <+/-metric>
route-map <name> permit|deny <seq> set metric <0-4294967295>
route-map <name> permit|deny <seq> set origin (egp|igp|incomplete)
route-map <name> permit|deny <seq> set originator-id A.B.C.D
route-map <name> permit|deny <seq> set pathlimit ttl <1-255>
route-map <name> permit|deny <seq> set weight <0-4294967295>

route-map <name> permit|deny <seq> match as-path WORD


route-map <name> permit|deny <seq> match community (<1-99>|<100-500>|WORD)
route-map <name> permit|deny <seq>
match community (<1-99>|<100-500>|WORD) exact-match
route-map <name> permit|deny <seq>
match extcommunity (<1-99>|<100-500>|WORD)
route-map <name> permit|deny <seq>
match ip address (<1-199>|<1300-2699>|WORD)
route-map <name> permit|deny <seq> match ip address prefix-list WORD

Tiesse 163
IMOLA User Guide - Rev.24 Ver. 07

route-map <name> permit|deny <seq>


match ip next-hop (<1-199>|<1300-2699>|WORD)
route-map <name> permit|deny <seq> match ip next-hop prefix-list WORD
route-map <name> permit|deny <seq>
match ip route-source (<1-199>|<1300-2699>|WORD)

route-map <name> permit|deny <seq> match ip route-source prefix-list WORD


route-map <name> permit|deny <seq> match metric <0-4294967295>
route-map <name> permit|deny <seq> match origin (egp|igp|incomplete)
route-map <name> permit|deny <seq> match pathlimit as <1-65535>
route-map <name> permit|deny <seq> match peer (A.B.C.D|X:X::X:X)
route-map <name> permit|deny <seq> match peer local

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

elimina dalla configurazione il parametro introdotto.

E’ possibile abilitare il debugging del funzionamento mediante il comando:

debug bgp <opzioni>

ESEMPI DI CONFIGURAZIONE
Senza perdere in generalità, si consideri il seguente scenario:

Router PE
88.58.10.245

88.58.10.246

Router A 172.20.1.221/32

10.45.15.192/27

dove i due router, chiamati A e PE sono connessi attraverso un collegamento


geografico. Il router A ha un indirizzo di loopback 172.20.1.221 e una LAN
10.45.15.192/27. Gli esempi che seguono riportano alcune configurazioni tipiche del
protocollo BGP e mostrano anche interazioni con il protocollo OSPF.

164 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

BGP
Il router A annuncia tramite protocolo BGP la propria LAN e il suo indirizzo di
loopback:

set bgp local-as 65201


set bgp remote-as 3269
set bgp network 172.20.1.221/32
set bgp network 10.45.15.192/27
set bgp neighbor 88.58.10.245
set bgp on

Il comando show ip bgp neighbor mostra lo stato della connessione con il router
neighbor. Nel caso in cui non vi sia alcuna sessione attiva il risultato è:

show ip bgp neighbor

BGP neighbor is 88.58.10.245, remote AS 3269, local AS 65201, external link


BGP version 4, remote router ID 0.0.0.0
BGP state = Active
Last read 00:00:52, hold time is 180, keepalive interval is 60 seconds
Message statistics:
Inq depth is 0
Outq depth is 0
Sent Rcvd
Opens: 0 0
Notifications: 0 0
Updates: 0 0
Keepalives: 0 0
Route Refresh: 0 0
Capability: 0 0
Total: 0 0
Minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast


Community attribute sent to this neighbor(both)
0 accepted prefixes

Connections established 0; dropped 0


Last reset never
Next connect timer due in 74 seconds
Read thread: off Write thread: off

Mentre nel caso in cui la sessione sia stata stabilita:

BGP neighbor is 88.58.10.245, remote AS 3269, local AS 65201, external link


BGP version 4, remote router ID 172.31.34.79
BGP state = Established, up for 00:00:16
Last read 00:00:15, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
Route refresh: advertised and received(old & new)
Address family IPv4 Unicast: advertised and received
Message statistics:
Inq depth is 0
Outq depth is 0
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 1 6
Keepalives: 2 1
Route Refresh: 0 0
Capability: 0 0
Total: 4 8

Tiesse 165
IMOLA User Guide - Rev.24 Ver. 07

Minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast


Community attribute sent to this neighbor(both)
6 accepted prefixes

Connections established 1; dropped 0


Last reset never
Local host: 88.58.10.246, Local port: 1035
Foreign host: 88.58.10.245, Foreign port: 179
Nexthop: 88.58.10.246

Per ottenere informazioni sulla sessione BGP:

show ip bgp

BGP table version is 0, local router ID is 88.58.10.246


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 0.0.0.0 88.58.10.245 0 3269 i
*> 7.0.255.1/32 88.58.10.245 0 0 3269 3269 65210 i
*> 7.0.255.2/32 88.58.10.245 0 0 3269 3269 65210 i
*> 10.1.10.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.8.0.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.10.0.0/16 88.58.10.245 0 0 3269 i
*> 10.45.15.192/27 0.0.0.0 0 32768 i
*> 172.20.1.221/32 0.0.0.0 0 32768 i

Total number of prefixes 8

Dove vengono visualizzate le rotte annunciate e quelle ricevute dal neighbor.

Per visualizzare la tabella di routing BGP, si usa il comando:

show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 0.0.0.0/0 [20/0] via 88.58.10.245, tun0, 00:05:12


B>* 7.0.255.1/32 [20/0] via 88.58.10.245, tun0, 00:05:11
B>* 7.0.255.2/32 [20/0] via 88.58.10.245, tun0, 00:05:11
B>* 10.1.10.0/24 [20/0] via 88.58.10.245, tun0, 00:05:11
B>* 10.8.0.0/24 [20/0] via 88.58.10.245, tun0, 00:05:11
B>* 10.10.0.0/16 [20/0] via 88.58.10.245, tun0, 00:05:11

Per visualizzare le rotte annunciate verso il proprio neighbor:

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 88.58.10.246


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 0 32768 i
*> 172.20.1.221/32 88.58.10.246 0 32768 i

166 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Total number of prefixes 2

Per visualizzare le rotte ricevute è disponibile il comando:

show ip bgp neighbor 88.58.10.245 received-routes

% Inbound soft reconfiguration not enabled

Affinché abbia effetto occorre però aggiungere alla configurazione il comando:

set bgp directive neighbor 88.58.10.245 soft-reconfiguration inbound

Il risultato quindi sarà:

show ip bgp neighbor 88.58.10.245 received-routes

BGP table version is 0, local router ID is 88.58.10.246


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 0.0.0.0 88.58.10.245 0 3269 i
*> 7.0.255.1/32 88.58.10.245 0 0 3269 3269 65210 i
*> 7.0.255.2/32 88.58.10.245 0 0 3269 3269 65210 i
*> 10.1.10.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.8.0.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.10.0.0/16 88.58.10.245 0 0 3269 i
*> 192.168.184.6/32 88.58.10.245 0 3269 65201 i

Total number of prefixes 7

E’ possibile impostare i comandi BGP usando esclusivamente l’opzione directive, ad


esempio:

set bgp local-as 65201


set bgp directive neighbor 88.58.10.245 remote-as 3269
set bgp directive neighbor 88.58.10.245 description BGP router sample
set bgp directive neighbor 88.58.10.245 soft-reconfiguration inbound
set bgp directive neighbor 88.58.10.245 timers 60 180
set bgp directive neighbor 88.58.10.245 version 4
set bgp directive neighbor 88.58.10.245 activate
set bgp directive neighbor 88.58.10.245 advertisement-interval 5
set bgp directive network 172.20.1.221/32
set bgp directive network 10.45.15.192/27
set bgp on

aggiungendo alcuni parametri avanzati, tipo la description ed alcuni timer.

CONFIGURAZIONE DEL ROUTER-ID


E’ possibile specificare il valore del router-id mediante il seguente comando:

set bgp directive bgp router-id 172.20.1.221


In assenza di tale comando come router-id viene utilizzato l’indirizzo IP di valore più
alto presente sul router.

Tiesse 167
IMOLA User Guide - Rev.24 Ver. 07

BGP CON FILTRO DELLE ROTTE E ROUTE-MAP


E’ possibile aggiungere dei filtri alle rotte ricevute utilizzando la sequenza di
comandi:

set bgp directive neighbor 88.58.10.245 prefix-list FilterInBGP in

set bgp directive ip prefix-list FilterInBGP description Blocca alcune net


set bgp directive ip prefix-list FilterInBGP seq 10 deny 10.10.0.0/16
set bgp directive ip prefix-list FilterInBGP seq 20 deny 7.0.0.0/8 ge 32
set bgp directive ip prefix-list FilterInBGP seq 30 permit 0.0.0.0/0 le 32

Nonostante dal neighbor vengano ricevute tutte le network:

show ip bgp neighbor 88.58.10.245 received-routes

BGP table version is 0, local router ID is 88.58.10.246


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 0.0.0.0 88.58.10.245 0 3269 i
*> 7.0.255.1/32 88.58.10.245 0 0 3269 3269 65210 i
*> 7.0.255.2/32 88.58.10.245 0 0 3269 3269 65210 i
*> 10.1.10.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.8.0.0/24 88.58.10.245 0 0 3269 3269 65210 i
*> 10.10.0.0/16 88.58.10.245 0 0 3269 i
*> 10.45.15.192/27 88.58.10.245 0 3269 65201 ?
*> 192.168.184.6/32 88.58.10.245 0 3269 65201 i

Total number of prefixes 8

nella tabella di routing vengono installate soltanto quelle definite dal filtro:

show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 0.0.0.0/0 [20/0] via 88.58.10.245, tun0, 00:02:16


B>* 10.1.10.0/24 [20/0] via 88.58.10.245, tun0, 00:02:15
B>* 10.8.0.0/24 [20/0] via 88.58.10.245, tun0, 00:02:15

E’ possibile utilizzare delle route-map per filtrare sia in ingresso che in uscita. Ad
esempio:

set bgp directive neighbor 88.58.10.245 route-map ToPeerBGP out


set bgp directive neighbor 88.58.10.245 route-map FromPeerBGP in

set bgp directive route-map ToPeerBGP permit 10 match ip address prefix-list ToPeerBGP
set bgp directive route-map ToPeerBGP permit 10 set as-path prepend <ASN>

set bgp directive ip prefix-list ToPeerBGP description Reti annunciate al neighbor


set bgp directive ip prefix-list ToPeerBGP seq 10 permit 172.20.1.221/32
set bgp directive ip prefix-list ToPeerBGP seq 20 permit 10.45.15.192/27

Definisce una route map per gli annunci verso il neighbor che stabilisce di annunciare
gli indirizzi definiti dal costrutto ip prefix-list ToPeerBGP e di aggiungere ad ogni
annuncio il valore di AS definito dalla regola set as-path prepend <ASN>.

168 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Mentre la route-map
set bgp directive neighbor 88.58.10.245 route-map FromPeerBGP in
set bgp directive route-map FromPeerBGP permit 10 match as-path 10
set bgp directive route-map FromPeerBGP permit 10 set local-preference 140
set bgp directive ip as-path access-list 10 permit _65210_

assegna un valore di local-preference di 140 agli annunci definiti dal costrutto ip as-
path. Questa funzione risulta particolarmente utile nel caso di sessioni BGP verso
neighbor differenti.

BGP CON ANNUNCIO DELLA ROTTA DI DEFAULT

E’ possibile annunciare la rotta di default mediante l’opzione:

set bgp directive neighbor 88.58.10.245 default-originate

BGP CON REDISTRIBUZIONE DI NETWORK CONNESSE

L’utilizzo del comando set bgp network A.B.C.D/N (o equivalentemente set bgp
directive network A.B.C.D/N) fa in modo che la network A.B.C.D/N venga
annunciata in maniera indiscriminata, qualsiasi sia il suo stato.

E’ possibile configurare il BGP in modo da annunciare le reti direttamente connesse


soltanto se queste sono effettivamente disponibili:

set bgp local-as 65201


set bgp directive neighbor 88.58.10.245 remote-as 3269
set bgp directive neighbor 88.58.10.245 description eBGP
set bgp directive redistribute connected route-map ConnBGP

set bgp directive route-map ConnBGP permit 10 match ip address prefix-list LocNet

set bgp directive ip prefix-list LocNet seq 10 permit 10.45.15.192/27


set bgp directive ip prefix-list LocNet seq 10 permit 172.20.1.221/32

Poichè sia la lan che l’interfaccia di loopback sono attive, le rotte annunciate sono:

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 1 32768 ?
*> 172.20.1.221/32 88.58.10.246 1 32768 ?

Total number of prefixes 2

Tiesse 169
IMOLA User Guide - Rev.24 Ver. 07

Scollegando invece il cavo di LAN, si ottiene:

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 172.20.1.221/32 88.58.10.246 1 32768 ?

Total number of prefixes 1

Dove si nota che la rete locale è scomparsa dagli annunci, per ricomparire non appena
il collegamento verrà ripristinato.

Tuttavia affinchè il meccanismo funzioni è necessario che venga specificato il


comando:

detect-link-state <ifname>14

dove <ifname> è il nome dell’interfaccia di LAN.

E’ possibile specificare una lista di nomi di interfacce:

detect-link-state eth1.10 eth1.10 eth1.20 eth1.30

BGP CON REDISTRIBUZIONE DI ROTTE STATICHE

Con lo stesso criterio è possibile configurare il BGP in modo da annunciare le reti


verso le quali è presente una rotta statica:

set bgp local-as 65201


set bgp directive neighbor 88.58.10.245 remote-as 3269
set bgp directive neighbor 88.58.10.245 description eBGP

set bgp directive redistribute connected route-map ConnBGP


set bgp directive redistribute static route-map StatBGP

set bgp directive route-map ConnBGP permit 10 match ip address prefix-list LocNetworks

set bgp directive ip prefix-list LocalNetwork seq 10 permit 10.45.15.192/27

set bgp directive route-map StatBGP permit 10 match ip address prefix-list StatRoute

set bgp directive ip prefix-list StatRoute seq 10 permit 44.44.0.0/16


set bgp directive ip prefix-list StatRoute seq 20 permit 55.55.0.0/16

Le rotte annunciate sono:

14
Affinchè il comando venga eseguito anche al reboot del router occorre impostare il
comando set autocmd detect-link-state <ifname>

170 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 1 32768 ?
*> 44.44.0.0/16 88.58.10.246 0 32768 ?
*> 55.55.0.0/16 88.58.10.246 0 32768 ?
*> 172.20.1.221/32 88.58.10.246 1 32768 ?

Eliminando invece le rotte statiche precedentemente configurate, si ottiene:

set no-route net 55.55.0.0 netmask 255.255.0.0 gw 10.45.15.219


set no-route net 44.44.0.0 netmask 255.255.0.0 gw 10.45.15.219

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 1 32768 ?
*> 172.20.1.221/32 88.58.10.246 1 32768 ?

Total number of prefixes 2

Tiesse 171
IMOLA User Guide - Rev.24 Ver. 07

BGP CON REDISTRIBUZIONE DI ROTTE OSPF


Aggiungiamo un ulteriore router, chiamato O, collegato alla rete locale del router A,
che scambia le rotte tramite protocollo OSPF:

Il router A annuncia verso il router O una rotta di default, mentre il router O annuncia
le sue LAN connesse e il router A le redistribuisce tramite BGP:

Router PE
88.58.10.245

88.58.10.246

Router A 172.20.1.221/32

10.45.15.221

10.45.15.219

Router O 172.20.1.219/32

192.168.1.1/24

Una configurazione tipica del protocollo OSPF sul router O è la seguente:

set ospf directive router ospf router-id 10.45.15.219


set ospf directive network 10.45.15.192/27 area 0
set ospf directive network 172.20.1.219/32 area 0
set ospf directive network 192.168.1.0/24 area 0
set ospf on

Lo stato della tabella di routing è:

show ip route ospf

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

O>* 0.0.0.0/0 [110/20] via 10.45.15.221, eth0, 00:01:54


O 10.45.15.192/27 [110/10] is directly connected, eth0, 00:01:55
O 172.20.1.219/32 [110/10] is directly connected, dummy0, 00:02:09
O 192.168.1.0/24 [110/10] is directly connected, eth1, 00:02:04

Sul router A, abbiamo:

set ospf directive router ospf router-id 10.45.15.221

172 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set ospf directive network 10.45.15.192/27 area 0


set ospf directive default-information originate metric 20
set ospf on

con le rotte OSPF:

show ip route ospf

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

O 10.45.15.192/27 [110/10] is directly connected, eth1, 00:10:10


O>* 172.20.1.219/32 [110/20] via 10.45.15.219, eth1, 00:03:32
O>* 192.168.1.0/24 [110/20] via 10.45.15.219, eth1, 00:03:32

Alla configurazione BGP aggiungiamo il comando che indica di annunciare verso il


neighbor le rotte acquisite tramite OSPF:

set bgp local-as 65201


set bgp directive neighbor 88.58.10.245 remote-as 3269
set bgp directive neighbor 88.58.10.245 description EBGP router master

set bgp directive redistribute ospf route-map RedOSPF

set bgp directive redistribute connected route-map ConnBGP


set bgp directive redistribute static route-map StatBGP

set bgp directive route-map ConnBGP permit 10 match ip address prefix-list LocalNet
set bgp directive route-map StatBGP permit 10 match ip address prefix-list StatRoute

set bgp directive route-map RedOSPF permit 10 match ip address prefix-list RedOSPF

set bgp directive ip prefix-list LocalNet seq 20 permit 172.20.1.221/32


set bgp directive ip prefix-list LocalNet seq 10 permit 10.45.15.192/27

set bgp directive ip prefix-list StatRoute seq 10 permit 44.44.0.0/16


set bgp directive ip prefix-list StatRoute seq 20 permit 55.55.0.0/16

set bgp directive ip prefix-list RedOSPF seq 10 permit 192.168.0.0/16 le 32


set bgp directive ip prefix-list RedOSPF seq 20 permit 172.0.0.0/8 le 32
set bgp directive ip prefix-list RedOSPF seq 30 permit 10.0.0.0/8 le 32
set bgp on

Le rotte annunciate sono:

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 1 32768 ?
*> 44.44.0.0/16 88.58.10.246 0 32768 ?
*> 55.55.0.0/16 88.58.10.246 0 32768 ?
*> 172.20.1.219/32 88.58.10.246 20 32768 ?
*> 172.20.1.221/32 88.58.10.246 1 32768 ?
*> 192.168.1.0 88.58.10.246 20 32768 ?

Total number of prefixes 6

Qualora venga interrotto il collegamento con il router O, lo stato delle rotte diventa:

Tiesse 173
IMOLA User Guide - Rev.24 Ver. 07

show ip bgp neighbor 88.58.10.245 advertised-routes

BGP table version is 0, local router ID is 172.20.1.221


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 10.45.15.192/27 88.58.10.246 1 32768 ?
*> 44.44.0.0/16 88.58.10.246 0 32768 ?
*> 55.55.0.0/16 88.58.10.246 0 32768 ?
*> 172.20.1.221/32 88.58.10.246 1 32768 ?

Total number of prefixes 4

Le rotte appariranno nuovamente non appena verrà ripristinato il collegamento


interrotto.

E’ possibile gestire uno scenario di backup, aggiungendo un ulteriore router, chiamato


B, che annuncia le stesse LAN del router A verso il PE, mentre annuncia la rotta di
default tramite OSPF con una metrica maggiore rispetto a quella del router A:

Router PE

Router A Router B

10.45.15.221 10.45.15.220

10.45.15.219

Router O
192.168.1.1/24

La configurzione BGP del router B è simile a quella del router A, mentre la


configurazione OSPF è la seguente:

set ospf directive router ospf router-id 10.45.15.221


set ospf directive network 10.45.15.192/27 area 0
set ospf directive default-information originate metric 40
set ospf on

dove viene annunciata la rotta di default con metrica 40 (meno prioritaria rispetto al
router A).

174 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Sul router O, vediamo che la rotta di default viene acquisita dal router A
(10.45.15.221) con metrica 20:

show ip route ospf

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

O>* 0.0.0.0/0 [110/20] via 10.45.15.221, eth0, 00:13:31


O 10.45.15.192/27 [110/10] is directly connected, eth0, 00:13:32
O 172.20.1.219/32 [110/10] is directly connected, dummy0, 00:22:01
O 192.168.1.0/24 [110/10] is directly connected, eth1, 00:21:56

Mentre sono presenti due neighbor OSPF appartenenti alla stessa area:
show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface


RXmtL RqstL DBsmL
10.45.15.220 1 Full/DR 39.670s 10.45.15.220 eth0:10.45.15.219
0 0 0
10.45.15.221 1 Full/Backup 37.140s 10.45.15.221 eth0:10.45.15.219
0 0 0

Nel momento in cui il collegamento con il router A viene interrotto, la tabella di


routing mostra:

root@LIPARI> show ip route ospf

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

O>* 0.0.0.0/0 [110/40] via 10.45.15.220, eth0, 00:00:11


O 10.45.15.192/27 [110/10] is directly connected, eth0, 00:16:23
O 172.20.1.219/32 [110/10] is directly connected, dummy0, 00:24:52
O 192.168.1.0/24 [110/10] is directly connected, eth1, 00:24:47

Dove si nota che l’annuncio della rotta di default viene ricevuto dal router B
(10.45.15.220).

In virtù del comando:


set ospf directive default-information originate metric 20

che annuncia la rotta di default su OSPF, solo se questa è presente sul router, lo stesso
effetto si ottiene anche se sul router A si interrompe il collegamento geografico con il
POP. Infatti, in questo caso scompare la rotta di default e questa non viene propagata
su OSPF.

BGP CHE REDISTRIBUISCE OSPF E OSPF CHE


REDISTRIBUISCE BGP

Tiesse 175
IMOLA User Guide - Rev.24 Ver. 07

Estendiamo la configurazione precedente in modo che il router distribuisca tramite


OSPF le rotte acquisite tramite BGP e viceversa, tramite BGP si redistribuiscono le
rotte acquisite tramite OSPF.

Nel caso di doppio router (router A e router B), al fine di evitare loop di annunci, è
opportuno che il router A non annunci tramite BGP le rotte ospf ricevute dal router B
che a sua volta ha ricevuto tramite bgp.

Per questo motivo, le rotte bgp, redistribuite via ospf vengono taggate15, e tramite bgp
si redistribuiscono solamente le rotte ospf non taggate.

La sequenza di comandi sul router A è la seguente:

set bgp local-as 65201


set bgp directive neighbor 88.58.10.245 remote-as 3269
set bgp directive neighbor 88.58.10.245 description EBGP router master

set bgp directive redistribute ospf route-map RedOspfBGP


set bgp directive redistribute connected route-map ConnBGP
set bgp directive redistribute static route-map StatBGP

set bgp directive route-map ConnBGP permit 10 match ip address


prefix-list LocalNetwork
set bgp directive route-map StatBGP permit 10 match ip address
prefix-list StatRoute

set bgp directive ip prefix-list LocalNetwork seq 20 permit 172.20.1.221/32


set bgp directive ip prefix-list LocalNetwork seq 10 permit 10.45.15.192/27

set bgp directive ip prefix-list StatRoute seq 10 permit 44.44.0.0/16


set bgp directive ip prefix-list StatRoute seq 20 permit 55.55.0.0/16

set bgp directive route-map RedOspfBGP deny 10 match tag 1


set bgp directive route-map RedOspfBGP permit 20

set bgp on

set ospf directive router ospf router-id 10.45.15.221


set ospf directive network 10.45.15.192/27 area 0

set ospf directive redistribute bgp metric 50 metric-type 1


route-map RedBgpOSPF
set ospf directive route-map RedBgpOSPF permit 10 set tag 1

BGP CON DOPPIO NEIGHBOR


E’ possibile configurare due neighbor sia per gestire una situazione di ridondanza e
sia per effettuare load-balancing16
.
Nel primo caso si assegna una local-preference maggiore al router considerato
master:

15
Il meccanismo di tagging è disponibile a partire dalla versione di sw 2.3.0-8
16
La funzionalità di Load Balancing è disponibile a partire dalla versione di software 2.3.0-
8.

176 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set bgp local-as 3269


set bgp directive neighbor 88.58.10.246 activate
set bgp directive neighbor 88.58.10.246 advertisement-interval 5
set bgp directive neighbor 88.58.10.246 default-originate
set bgp directive neighbor 88.58.10.246 fall-over bfd17
set bgp directive neighbor 88.58.10.246 remote-as 65201
set bgp directive neighbor 88.58.10.246 route-map From-A in
set bgp directive neighbor 88.58.10.246 soft-reconfiguration inbound
set bgp directive neighbor 88.58.10.246 timers 60 180
set bgp directive neighbor 88.58.10.246 version 4

set bgp directive neighbor 94.92.113.170 activate


set bgp directive neighbor 94.92.113.170 advertisement-interval 5
set bgp directive neighbor 94.92.113.170 default-originate
set bgp directive neighbor 94.92.113.170 remote-as 65201
set bgp directive neighbor 94.92.113.170 route-map From-B in
set bgp directive neighbor 94.92.113.170 soft-reconfiguration inbound
set bgp directive neighbor 94.92.113.170 timers 60 180
set bgp directive neighbor 94.92.113.170 version 4

set bgp directive network 10.10.0.0/16


set bgp directive network 10.1.10.0/24 route-map LAN-CED
set bgp directive network 10.8.0.0/24 route-map LAN-CED
set bgp directive network 7.0.255.1/32 route-map LAN-CED
set bgp directive network 7.0.255.2/32 route-map LAN-CED

set bgp directive route-map From-A permit 10 set local-preference 150


set bgp directive route-map From-B permit 10 set local-preference 140

set bgp directive route-map LAN-CED permit 10 set as-path prepend 3269 65210
set bgp on

Le rotte verso le reti remote passano attraverso il router A:

show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 10.45.15.192/27 [20/1] via 88.58.10.246, tun0, 00:01:01


B>* 44.44.0.0/16 [20/0] via 88.58.10.246, tun0, 00:01:01
B>* 55.55.0.0/16 [20/0] via 88.58.10.246, tun0, 00:01:01
B>* 172.20.1.219/32 [20/20] via 88.58.10.246, tun0, 00:01:01
B>* 172.20.1.221/32 [20/1] via 88.58.10.246, tun0, 00:01:01
B>* 192.168.1.0/24 [20/20] via 88.58.10.246, tun0, 00:01:01
B>* 192.168.184.6/32 [20/0] via 94.92.113.170, tun1, 00:01:03

Mentre il comando show ip bgp mostra che sono disponibili entrambi i neighbor:

BGP table version is 0, local router ID is 172.31.34.79


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 7.0.255.1/32 0.0.0.0 0 32768 3269 65210 i
*> 7.0.255.2/32 0.0.0.0 0 32768 3269 65210 i
*> 10.1.10.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.8.0.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.10.0.0/16 0.0.0.0 0 32768 i
*> 10.45.15.192/27 88.58.10.246 1 150 0 65201 ?

17
La versione 2.3.0-8 prevede la funzionalità di verifica del neighbor tramite protocollo
BFD (Bidirectional Forwarding Detection)

Tiesse 177
IMOLA User Guide - Rev.24 Ver. 07

* 94.92.113.170 1 140 0 65201 ?


*> 44.44.0.0/16 88.58.10.246 0 150 0 65201 ?
*> 55.55.0.0/16 88.58.10.246 0 150 0 65201 ?
*> 172.20.1.219/32 88.58.10.246 20 150 0 65201 ?
* 94.92.113.170 20 140 0 65201 ?
*> 172.20.1.221/32 88.58.10.246 1 150 0 65201 ?
*> 192.168.1.0 88.58.10.246 20 150 0 65201 ?
* 94.92.113.170 20 140 0 65201 ?
*> 192.168.184.6/32 94.92.113.170 0 140 0 65201 i

Total number of prefixes 12

Interompendo il collegamento con il router A, le reti diventano raggiungibili


attraverso il router B:

show ip bgp

BGP table version is 0, local router ID is 172.31.34.79


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 7.0.255.1/32 0.0.0.0 0 32768 3269 65210 i
*> 7.0.255.2/32 0.0.0.0 0 32768 3269 65210 i
*> 10.1.10.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.8.0.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.10.0.0/16 0.0.0.0 0 32768 i
*> 10.45.15.192/27 94.92.113.170 1 140 0 65201 ?
*> 172.20.1.219/32 94.92.113.170 20 140 0 65201 ?
*> 192.168.1.0 94.92.113.170 20 140 0 65201 ?
*> 192.168.184.6/32 94.92.113.170 0 140 0 65201 i

Total number of prefixes 9

show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 10.45.15.192/27 [20/1] via 94.92.113.170, tun1, 00:00:24


B>* 172.20.1.219/32 [20/20] via 94.92.113.170, tun1, 00:00:24
B>* 192.168.1.0/24 [20/20] via 94.92.113.170, tun1, 00:00:24
B>* 192.168.184.6/32 [20/0] via 94.92.113.170, tun1, 00:02:54

Per effettuare una configurazione in load-balancing:

set bgp local-as 3269

set bgp directive maximum-paths 2

set bgp directive neighbor 88.58.10.246 activate


set bgp directive neighbor 88.58.10.246 advertisement-interval 5
set bgp directive neighbor 88.58.10.246 default-originate
set bgp directive neighbor 88.58.10.246 fall-over bfd
set bgp directive neighbor 88.58.10.246 remote-as 65201
set bgp directive neighbor 88.58.10.246 soft-reconfiguration inbound
set bgp directive neighbor 88.58.10.246 timers 60 180
set bgp directive neighbor 88.58.10.246 version 4

set bgp directive neighbor 94.92.113.170 activate


set bgp directive neighbor 94.92.113.170 advertisement-interval 5
set bgp directive neighbor 94.92.113.170 default-originate

178 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set bgp directive neighbor 94.92.113.170 remote-as 65201


set bgp directive neighbor 94.92.113.170 soft-reconfiguration inbound
set bgp directive neighbor 94.92.113.170 timers 60 180
set bgp directive neighbor 94.92.113.170 version 4

set bgp directive network 10.10.0.0/16


set bgp directive network 10.1.10.0/24 route-map LAN-CED
set bgp directive network 10.8.0.0/24 route-map LAN-CED
set bgp directive network 7.0.255.1/32 route-map LAN-CED
set bgp directive network 7.0.255.2/32 route-map LAN-CED

set bgp directive route-map LAN-CED permit 10 set as-path prepend 3269 65210
set bgp on

Visualizzando le rotte BGP, si nota come la stessa destinazione è raggiungibile


attraverso i due neighbor:

show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,


I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 10.45.15.192/27 [20/1] via 94.92.113.170, tun1, 00:00:25


* via 88.58.10.246, tun0, 00:00:25
B>* 44.44.0.0/16 [20/0] via 88.58.10.246, tun0, 00:00:25
B>* 55.55.0.0/16 [20/0] via 88.58.10.246, tun0, 00:00:25
B>* 172.20.1.219/32 [20/20] via 94.92.113.170, tun1, 00:00:25
* via 88.58.10.246, tun0, 00:00:25
B>* 172.20.1.221/32 [20/1] via 88.58.10.246, tun0, 00:00:25
B>* 192.168.1.0/24 [20/20] via 94.92.113.170, tun1, 00:00:25
* via 88.58.10.246, tun0, 00:00:25
B>* 192.168.184.6/32 [20/0] via 94.92.113.170, tun1, 00:00:25

Lo stato BGP indica che il peso delle rotte è equivalente:

show ip bgp

BGP table version is 0, local router ID is 172.31.34.79


Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*> 7.0.255.1/32 0.0.0.0 0 32768 3269 65210 i
*> 7.0.255.2/32 0.0.0.0 0 32768 3269 65210 i
*> 10.1.10.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.8.0.0/24 0.0.0.0 0 32768 3269 65210 i
*> 10.10.0.0/16 0.0.0.0 0 32768 i
*> 10.45.15.192/27 94.92.113.170 1 0 65201 ?
*- 88.58.10.246 1 0 65201 ?
*> 44.44.0.0/16 88.58.10.246 0 0 65201 ?
*> 55.55.0.0/16 88.58.10.246 0 0 65201 ?
*- 172.20.1.219/32 88.58.10.246 20 0 65201 ?
*> 94.92.113.170 20 0 65201 ?
*> 172.20.1.221/32 88.58.10.246 1 0 65201 ?
*- 192.168.1.0 88.58.10.246 20 0 65201 ?
*> 94.92.113.170 20 0 65201 ?
*> 192.168.184.6/32 94.92.113.170 0 0 65201 i

Total number of prefixes 12

Tiesse 179
IMOLA User Guide - Rev.24 Ver. 07

COMANDO ROUTER
Il comando router permette la gestione, l’amministrazione e il debugging dei
protocolli di routing dinamico attivi su Imola.

Ad esempio:

shell router zebra show ip route

root@IMOLA> shell 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:

shell router ospf | bgp | rip

senza specificare ulteriori opzioni.

Ad esempio per configurare OSPF, dopo aver eseguito shell 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> shell 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>

180 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Per visualizzare lo stato di OSPF:

root@IMOLA> shell 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>

Tiesse 181
IMOLA User Guide - Rev.24 Ver. 07

Per visualizzare le rotte di OSPF:

root@IMOLA> shell 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:

shell router rip list


shell router bgp list
shell router ospf list
shell router zebra list

mostrano tutte le possibili opzioni che possono essere specificate.

182 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

PROTOCOLLO DI MULTICAST ROUTING

PROTOCOL INDIPENDENT MULTICAST


Il Multicast Routing permette la trasmissione di dati (in particolare flussi multimediali
real time, come videoconferenze o streaming video) da una sorgente verso 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).

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 ne rimuove dalla configurazione.

Tiesse 183
IMOLA User Guide - Rev.24 Ver. 07

CONFIGURAZIONE DEL PROTOCOLLO PIM DENSE MODE

La configurazione del protocollo PIM in modalità dense prevede i seguenti comandi:

set pim mode dense


per definire la modalità di lavor.

set pim interface <string> enable [localpref <int>]

Per attivare il servizio sull’interfaccia specificata. Significativo solo per la modalità


Dense.

CONFIGURAZIONE DEL PROTOCOLLO PIM SPARSE MODE

La configurazione del protocollo PIM in modalità sparse mode prevede i seguenti


comandi:

set pim mode sparse


per definire la modalità di lavoro

set pim bsr-cand-intf <val>


Abilita la canditatura a bootstrap router sull’interfaccia. Il parametro <val> indica
l’interfacci di rete oppure l’indirizzo IP prescelto.

set pim bsr-prio <val>


Definisce la priorità per il ruolo di bootstrap router. Il parametro <val> può assumere
valori da 0 a 255. Maggiore è il valore, maggiore è la priorità.

set pim rp-cand-intf <interface>


Abilita il router a candidarsi come RP. Il parametro <interface> indica l’interfaccia di
rete sulla quale il router trasmette i messaggi PIM

set pim rp-prio <val>


Definisce la priorità per il ruolo di RP. Il parametro <val> assume valori da 0 a 255.
Maggiore è il valore, maggiore la priorità.

set pim rp-cand-hold <val>


Definisce il valore del timer di Holding per il ruolo di RP. Il parametro <val> può
assumere valori da 0 a 65535.

set pim switch-data-rate <int>


Definisce il data rate per lo switch su source path tree. Il parametro <val> può
assumere un valore numerico oppure il valore infinity.

set pim switch-data-int <val>


Definisce l’intervallo di misurazione ed il data rate. I valori ammessi sono da 5 a
65535

184 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set pim switch-reg-rate <val>


Definisce il valore per lo switch su RP tree . Il parametro può assumere un valore
numerico oppure il alore infinity.

set pim switch-reg-int <val>


Definisce l'intervallo di misurazione del rate per lo switch su RP tree . I valori
ammessi sono da 5 a 65535.

set pim register-source <val>


Definisce l’indirizzo IP da usare come sorgente da usare per i messaggi di PIM
Register.

set pim static-rp <addr> group-addr <addr> masklen <0-32> [priority] <0-255>
Definisce un RP statico per il gruppo specificato.

set interface <interface> [enable|disable] [dr-priority] <0-255>


[hello-delay] <1-255> [hello-period]
Attiva il servizio PIM sull’interfaccia specificata.

set pim cand-rp-group <addr> [masklen] <0-32>


Abilita il router a candidarsi come RP per il gruppo specificato.

set pim accept-join-prune <string>


Usato per attivare un filtro sui messagi di tipo join e prune.
La classe di filtraggio si configura mediante il comando: set class-list.

set pim accept-register <string>


Usato per attivare il filtro dei messaggi di tipo Register.

set pim log-level [lev1lev2|lev3|lev4|lev5]


Definisce il livello di logging.

Il comando

show pim status

mostra lo stato corrente del protocollo


show pim statistics

visualizza i contatori statistici.

MULTICAT SOURCE DISCOVERY PROTOCOL

Il protocollo Multicast Source Discovery (MSDP) permette la connessione di due


router con il servizio PIM attivo in moda da gestire la ridondanza ta RP.
Per configurarlo vengono usati i seguenti comandi:

set msdp default-peer <ipaddr>


se settato non effettua RPF check se l'SA è ricevuta dal default-peer,

Tiesse 185
IMOLA User Guide - Rev.24 Ver. 07

set msdp originator-id <interface>


per utilizzare l’indirizzo IP dell’interfaccia specificata come originator RP.

Per attivare il servzio si usa il comando:

set msdp on

Altre opzioni disponibili sono:

set msdp peer <ipaddr> connect-source <interface>


per configurare il peer con cui scambiare le SA, con IP sorgente quello associato
all’interfaccia specificata.

set msdp mesh-group <name> <ip-addr>


Per aggiungere un indirizzo IP ad un mesh-group.
set msdp filter-SA <class-list> in!out
Controlla con un filtro la ricezione o trasmissione delle SA

IGMP
Il protocollo IGMP permette di gestire join/leave di gruppi in router direttamente
connesso ad una destinazione o sorgente.

set igmp accept-join-leave <class-list>


Attiva il filtro sulla ricezione di messaggi di join o leave

-IGMP SNOOPING

La funzione di IGMP Snooping permette di inoltrareil traffico solamente sulle porte


dello switch cui sono collegati utenti che abbiano realmente richiesto di ricevere
traffico multicast. Essa si attiva semplicemente impostando il comando:

set igmp-snooping <interface>

mentre il comando:

show igmp-snooping

visualizza informazioni sul funzionamento.

IGMP PROXY
Le funzioni di IGMP Proxy permettono il reinstradamento del traffico Multicast sulle
varie interfacce di rete utilizzando semplicemente il signaling IGMP (Internet Group
Management Protocol).

186 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 upstream il comando è:

set igmp-proxy upstream <ifname>

Per specificare l’interfaccia di downstream il comando è:

set igmp-proxy downstream <ifname>

Utilizzando il comando:

set igmp-proxy altnet <a.b.c.d/N>

solo i pacchetti appartenenti alla sittorete indicata sono reinstradati sull’interfaccia


downstream. 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 modificare l’intervallo di invio dei pacchetti IGMP Query sull’interfaccia


downstream si può usare il comando:
set igmp-proxy directive membership-query-interval N

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.

Tiesse 187
IMOLA User Guide - Rev.24 Ver. 07

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>

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:

set multicast-static-join <input-interface> <group-addr>


set multicast-static-group <in-ifname> <src-addr> <group-addr> <out-ifname>

il primo aggiunge un join-groiup sull’interfaccia specificata, il secondo aggiunge una


rotta statica per i messaggi multicast in modo tale che i messaggio ricevuti
dall’interfaccia <in-ifname> e destinati al gruppo multicat <roup-addr> siano
propagati anche sull’interfaccia <out-ifname>.

Per elimnare la join statica e le rotte statiche sono disponibili i comandi:

set no-multicast-static-join ….
set no-multicast-static-group ….

188 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

COMANDI PER IL MULTICAST GENERICI

set multicast-route-limit <value> [drop]


Permette la visualizzazione di un messaggio (syslog) di warning al raggiungimento del limite
impostato. Con l'opzione drop la rotta non viene creata.
i

Sono disponibili dei comandi utili per l’analisi e la disgnostica del traffico di tipo
Multicast. Quelli più utili sono:

set multicast-accept-icmp-echo on
set multicast-accept-icmp-echo off

per abilitare e disabilitare la risposta ai pacchetti ICMP ricevuti su un indirizzo di tipo


multicast.

mtrace <source-host> <group-addr>

Per effettuare un trace delle rotte multicast.

Tiesse 189
IMOLA User Guide - Rev.24 Ver. 07

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.

190 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 191
IMOLA User Guide - Rev.24 Ver. 07

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.

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
set route net 4.4.4.0 netmask 255.255.255.0 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

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:

192 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

CONFIGURAZIONE DI PIÙ TUNNEL GRE


Sulle versioni di firmware più recenti è possibile configurare fino ad 8 tunnel GRE
mediante il comando. Per questo sono stati aggiunti i comandi:

set gre tun0 <opzioni>


set gre tun1 <opzioni>

set gre tun7 <opzioni>

dove le opzioni sono le stesse del comando set gre generic e tun0, tun1 ... tun7 e
rappresentano i nomi delle interfacce tunnel che verranno create.

Per rimuovere tutti i tunnel configurati si utilizza il comando:


set no-gre

mentre:
set no-gre tun0

rimuove il singolo tunnel.

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

Tiesse 193
IMOLA User Guide - Rev.24 Ver. 07

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


TUNNEL
E’ possibile attivare un tunnel GRE utilizzando il comando create-tunnel come
nell’esempio seguente:

create-tunnel tun0 source 10.10.1.1 destination 10.10.2.2


address 172.16.1.2/30 peer 172.16.1.1/30 mtu 1400 key 1

Il primo argomento (tun0) è il nome dell’interfaccia del tunnel.

Come valore dell’opzione source è possibile specificare il nome dell’interfaccia fisica:

create-tunnel tun0 source ppp0 destination 10.10.2.2


address 172.16.1.2/30 peer 172.16.1.1/30 mtu 1400

Il parametro key è opzionale.

Possono essere attivati fino a 100 tunnel. Il nome dell’interfaccia deve essere
differente per ognno di essi.

Per rimuovere un tunnel si usa il comando:

destroy-tunnel tun0.

CONFIGURAZIONE GRE MEDIANTE COMANDO IP


I comandi della sezione set gre generic fanno uso implicito del comando 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:

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

194 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ip addr add 100.100.100.1/30 peer 100.100.100.2/30 dev tgprs0

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
dev tgprs0

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

DYNAMIC GRE MEDIANTE PROCOLLO NHRP


Imola supporta il protocollo NHRP che in architetture di tipo Hub & Spoke (con
Imola nel ruolo di Spoke) consente al sistema con il ruolo di Hub di attivare dei tunnel
GRE in maniera dinamica, senza che questi sia stati configurati a-priori. Il compito
del protocollo NHRP in questo caso è quello di comunicare all’Hub qual e’ l’indirizzo
fisico con cui occorre instaurare il tunnel.

Ad esempio, supponiamo di avere un concentratore (Hub) con indirizzo IP fisico è


85.34.166.17 e un un router Imola (Spoke) con indirizzo IP fisico 217.201.121.1.
L’indirizzo IP del tunnel su Imola è 192.168.10.11/24 mentre l’indirizzo del tunnel
del concentratore è 192.168.10.1/24.

Su Imola si impostano i seguenti comandi:

set gre generic name tun0


set gre generic multicast
set gre generic ttl 64
set gre generic tunnel-source 217.201.121.1
set gre generic tunnel-destination 85.34.166.17
set gre generic tunnel-address 192.168.10.11/24
set gre generic on

Tiesse 195
IMOLA User Guide - Rev.24 Ver. 07

set nhrp interface tun0


set nhrp map 192.168.10.1/24 85.34.166.17
set nhrp holding-time 300
set nhrp on

L’attivazione del protcollo NHRP su Imola farà in modo che sul concentratore verrà
creato dinamicamente il tunnel richiesto. Il parametro di holding time specifica per
quanto tempo il tunnel rimane valido. Allo scadere di esso, verrà rinnovata la richiesta
di attivazione.

Il comando show nhrp consente di verificare lo stato di funzionamento. Ad esempio:

root@IMOLA> show nhrp nbma 85.34.166.17


Interface: tun0
Type: static
Protocol-Address: 192.168.10.1/24
NBMA-Address: 85.34.166.17
Flags: up

oppure

root@IMOLA> show nhrp schedule


Timeout: 10
Description: Admin connection timeout for fd 11
Timeout: 147
Description: Renew registration for 192.168.10.1/24 nbma 85.34.166.17 dev
tun0

Nel caso in cui il sistema Hub sia un router cisco, la configurazione speculare è del
tipo:

interface Tunnel1
ip address 192.168.10.1 255.255.255.0
no ip redirects
ip nhrp network-id 1000
tunnel source FastEthernet0/0
tunnel mode gre multipoint
end

dove è sufficiente specificare l’opzione tunnel mode gre multipoint.

196 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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. Il capitolo elenca solamente i
parametri fondamentali del modulo IPSec. Fornire una conoscenza approfondita del
protocollo IPSec esula dagli scopi del manuale.

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>

Tiesse 197
IMOLA User Guide - Rev.24 Ver. 07

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


(fqdn), nel qual caso la stringa dovrà essere sempre preceduta dal carattere “@” senza
spazio. Ad esempio:

set ipsec local-id @imola.com

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 II)
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>

198 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Sono disponibili inoltre una serie di comandi da utilizzare per rimuovere opzioni
precedentemente specificate:
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:

root@Imola> show interface ipsec


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

Benchè configurato, il tunnel IPsec 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

Tiesse 199
IMOLA User Guide - Rev.24 Ver. 07

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

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.

200 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

TUNNEL L2TP

CONFIGURAZIONE DI UN TUNNEL L2TP


L2TP è l'abbreviazione di Layer 2 Tunnel Protocol ed è uno standard di
incapsulamento sviluppato al fine di stabilire tunnel tra sistemi remoti. Gli estremi del
tunnel sono chiamati LNS (L2TP Network Server) e LAC (L2TP Access
Concentrator). LNS è il server che attende le connessioni, mentre il LAC è il cliente
che la richiede. La connessione avviene su protocollo UDP e, una volta attivata, il
traffico potrà fluire biderezionalmente all’interno di tale connessione, utilizzando il
protocollo PPP.

Su Imola viene utilizzata prevalentemente la componente LAC. I comandi di


configurazione principali sono i seguenti:

set l2tp peer addr <ip-address>


Per specificare l’indirizzo IP del sistema remoto.

set l2tp peer port <port>


Per specificare la porta UDP cui inviare le richieste di connessione. Valore di default
è 1701.

set l2tp peer secret <secret-key>


Per specificare la chiave di autenticazione per attivare il Tunnel

set l2tp peer hostname <hostname>


Per presentarsi verso il server con il nome specificato

set l2tp lac login <login-name> password <password>


Per impostare l’utente e la password da utilizzare per l’autentizazione PPP.

set l2tp masquerade


set l2tp no-maquerade
Per abilitare o disabilitare le funzioni di PAT per i pacchetti in uscita sul tunnel.

set l2tp default-route


set l2tp no-default-route
Per attivare o disattivare una rotta statica di default sul tunnel L2TP.

set l2tp idle <n>


Per impostare di inattività di N secondi sulla sessione PPP.

set l2tp rx-idle <n>


Per impostare il intattività sulla ricezione dei pacchetti PPP.

set l2tp mtu <val>


Per configurare il valore della MTU sul tunnel.

set l2tp lcp-echo-interval <n>

Tiesse 201
IMOLA User Guide - Rev.24 Ver. 07

set l2tp lcp-echo-failure <n>


Per 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 i
caso di mancate risposte.

set l2tp on
Per attivare il tunnel L2TP

set l2tp off


Per disattivare il tunnel.

set no-l2tp
Abbatte il tunnel ed elimina la configurazione.

Benchè configurato, il tunnel L2TP non viene attivato automaticamente: la sua


attivazione è invece demandata ai comandi di trigger oppure di autocmd.

Ad esempio, dopo averlo configurato, il tunnel L2TP viene attivato nel momento in
cui viene stabilita una sessione GPRS:

set trigger gprs up set l2tp on

e analogamente si deattiva quando termina la sessione GPRS:

set trigger gprs down set l2tp off

VISUALIZZAZIONE STATO DEL TUNNEL


È possibile visualizzare informazioni riguardanti la configurazione, le statistiche e lo
stato dell'interfaccia del tunnel L2T mediante il comando:
show interface l2tp

che mostra i seguenti dati:

NumL2TPTunnels 1
Tunnel MyID 449 AssignedID 53 NumSessions 1 PeerIP 1.1.1.1 State established
Session LAC MyID 18349 AssignedID 55787 State established

ppp13 Link encap:Point-to-Point Protocol


inet addr:13.13.0.2 P-t-P:13.13.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:24414 (23.8 KiB) TX bytes:24414 (23.8 KiB)

Il nome dell’interfaccia L2TP è ppp13.

202 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

TRIGGER L2TP
E’ possibile configurare dei trigger che verranno eseguiti nel momento in cui viene
stabilita la sessione L2TP con il peer remoto. Ad esempio:

set trigger l2tp up ip route add 173.151.0.0/24 dev ppp13


set trigger l2tp up logger L2TP is up
set trigger l2tp down ip route del 173.151.0.0/24 dev ipsec0
set trigger l2tp down logger L2TP is down

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

Tiesse 203
IMOLA User Guide - Rev.24 Ver. 07

EASY VPN

CONFIGURAZIONE DI UN TUNNEL EASYVPN


EasyVPN è un’alternativa ad IPSec per la gestione delle VPN. E’ particolarmente
utile quando l’indirizzo IP di partenza è dinamico. E’ compatibile con i principali
VPN Concentrator come:

• Cisco VPN concentrator 3000 Series


• Cisco IOS routers
• Cisco PIX / ASA Zecurity Appliances
• Juniper/Netscreen

Il capitolo elenca solamente i parametri fondamentali del modulo EZVpn. Fornire una
conoscenza approfondita del protocollo esula dagli scopi del manuale.

I principali comandi di configurazione sono:

set ezvpn ipsec-gateway


per impostare l’indirizzo IP del concentratore VPN.

set ezvpn ipsec-secret


per impostare la pre-shared key per la cifratura

set ezvpn-id
per impostare il gruppo della VPN

set ezvpn xauth-username


per impostare lo user name per l’autenticazione XAUTH.

set ezvpn xauth-password


per impostare la passorwd.

set ezvpn vendor cisco | netscreen


configura il tipo di concentratore

set ezvpn natt cisco-udp | force-natt | natt | none


per configurare il metodo di NAT Traversal.
• cisco-udp protocollo proprietary cisco su porta udp 4500
• natt come definito dalla RFC 3947
• force-natt utilizza NAT Traversal sempre, anche se non sono presenti
dispositivi che effettuato il NAT
• none disabilita NAT-T

set ezvpn masquerade


set ezvpn no-masquerade
per mascherare cioè effettuare il PAT, dei pacchetti in uscita sul tunnel

set ezvpn dpd-idle N

204 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set ezvpn no-dpd-idle


invia un pacchetto DPD /Dead Peer Detection) se non è stato ricevuto alcun pacchetto
per N secondi.

set ezvpn ike-dh-group dh1 | dh2 | dh5


imposta il nome dello IKE DH Group.

set ezvpn perfect-forward-secrecy dh1 | dh2 | dh5 | nopfs | server


set ezvpn no-perfect-forward-secrecy
per impostare la modalità di Diffie-Hellman group per usare PFS.

set ezvpn on
Attiva il tunnel Easy VPN.

TRIGGER EZVPN
E’ possibile configurare dei trigger che verranno eseguiti nel momento in cui viene
stabilita la sessione VPN con il peer remoto. Ad esempio
set trigger ezvpn up ip route add 10.1.10.10 dev tun0
set trigger ezvpn up ip route add 10.1.10.0/24 dev tun0
set trigger ezvpn up ip route add 10.3.10.0/24 dev tun0

Analogamente si possono configurare i comandi da eseguire quando la connessione


VPN termina:
set trigger ezvpn down ip route add 10.1.10.10 dev tun0
set trigger ezvpn down ip route add 10.1.10.0/24 dev tun0
set trigger ezvpn down ip route add 10.3.10.0/24 dev tun0

Tiesse 205
IMOLA User Guide - Rev.24 Ver. 07

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. E’ fortemente consigliato l’utilizzo delle funzioni di qos-ext,
in quanto quelle apparteenti alla qos sono mantenute per compatibilità con release
precedenti.

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

CLASSIFICAZIONE DEL TRAFFICO MEDIANTE QOS

CONFIGURAZIONE DELLA POLITICA DI TRAFFICO

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

206 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

Tiesse 207
IMOLA User Guide - Rev.24 Ver. 07

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

208 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 209
IMOLA User Guide - Rev.24 Ver. 07

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

210 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 bytes che la classe root,
padre di tutte le classi, può trasmettere, quando è autorizzata a trasmettere:

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 comando:

set qos-ext no-policy <name>

Tiesse 211
IMOLA User Guide - Rev.24 Ver. 07

In alternativa alla banda dispnibile, è possibile associare alla Policy una queue-discipli
di tipo PRIO, per considersare prioritari i pacchetti associati:

set qos-ext policy <name> qdisc prio

CONFIGURAZIONE DI UNA CLASSE

Per creare una classe eseguire 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 bytes 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. Il valore può
essere espresso come valore assoluto o come percentuale della banda disponibile.
Tipicamente questa configurazione può essere utilizzata per classi di tipo real-time.

set qos-ext class <name> priority <value>


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

212 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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
set qos-ext class <name> no-priority

Una classe può essere cancellata con il comando:


set qos-ext no-class <name>

E’ possibile associare alla classe una queue-discipline differente da quella FIFO.


Quelle disponibili sono:
set qos-ext no-class <name> qdisc pfifo | sfq |sfqtun

dove sfq indica la disciplina Stocastic Fairness Queue, che concede agli stessi
pacchetti la stessa probabilità di essere serviti. Essa è necessario quando la banda di
uscita non è deterministica (come per le connessioni mobili) per evitare che particolari
flussi monopolizzano tutta la banda a discapito degli altri.
La politica sfqtun invece è la stessa della SFQ, ma applicata quando l’interfaccia di
uscita è un tunnel GRE.

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>

Le condizioni associate ai filtri vengono applicate sul traffico di ingresso tramite una
relazione di unione (match x or match y or match … ).

Per rimuovere il filtro si usa il comando:


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

Per filtrare su un valore di DSCP:


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

Per filtrare su un valore di classe di DSCP:


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

Per filtrare su un valore di IP-precedence:


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

Tiesse 213
IMOLA User Guide - Rev.24 Ver. 07

Per filtrare su un indirizzo ip sorgente:

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

Per filtrare su un indirizzo ip di destinazione:


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

Per filtrare su una interfaccia di destinazione:

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

Per filtrare sul tipo di protocollo:


set qos-ext class <name> filter match prot <value>

Per filtrare per protocollo e per porta sorgente:


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

Per filtrare per protocollo e per porta destinazione:


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

Per filtrare in base all’appartenza ad un’altra classe, si specifica il mark ad essa


associata:
set qos-ext class <name> filter match mark <value>

Per conoscere quale mark è associato ad una classe, utilizzare il seguente comando:

show qos-ext class mark

Nel caso in cui le condizioni associate ai filtri debbano essere applicate tramite una
relazione di intersezione (match x and match y and match … ) si deve allocare un
filter group nel seguente modo:

set qos-ext filter-group <name>

Per rimuovere il filtro si usa il comando:


set qos-ext no-filter-group <name>

E’ possibile specificare su quale catena, pre-routing o post-routing, filtrare il traffico:

set qos-ext filter-group <name> chain pre-routing|post-routing

E’ poi necessario specificare le condizioni di filtro.

Per filtrare su un valore di DSCP:


set qos-ext filter-group <name> match dscp <value>

Per filtrare su un valore di classe di DSCP:

214 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set qos-ext filter-group <name> match dscp-class <value>

Per filtrare su un valore di IP-precedence:


set qos-ext filter-group <name> match ipp <value>

Per filtrare su un indirizzo ip sorgente:

set qos-ext filter-group <name> match src-ip <value>

Per filtrare su un indirizzo ip di destinazione:


set qos-ext filter-group <name> match dst-ip <value>

Per filtrare su una interfaccia sorgente:

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

Attenzione: per questo filtro è necessario aggiungere la direttiva che specifica la


catena di pre-routing

Per filtrare su una interfaccia di destinazione:


set qos-ext filter-group <name> match dst-intf <value>

Per filtrare sul tipo di protocollo:


set qos-ext filter-group <name> match prot <value>

Per filtrare per protocollo e per porta sorgente:


set qos-ext filter-group <name> match prot <value> src-port <value>

Per filtrare per protocollo e per porta destinazione:


set qos-ext filter-group <name> match prot <value> dst-port <value>

Il filter group deve essere associato ad una classe nel seguente modo:

set qos-ext class <name> filter group <name>

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à. Tutte le altri classi hanno un valore predefinito a 2.

set qos-ext class <name> filter priority <value>

MARCATURA DEL TRAFFICO

Tiesse 215
IMOLA User Guide - Rev.24 Ver. 07

E’ possibile impostare un valore di DSCP, di classe DSCP o IP-Precedence a tutti i


pacchetti che fluiscono per una classe.

Per marcare con un valore di DSCP:

set qos-ext class <name> filter set dscp <value>

Per marcare con un valore di classe di DSCP:

set qos-ext class <name> filter set dscp-class <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

QUEUE DISCIPLINE PRIO

Se si ha soltanto la necessità di assegnare priorità diverse a diverse tipologie di


traffico senza effettuare policing o shaping allora è possibile specificare una queue
discipline di tipo prio sulla policy, nel seguente modo:

set qos-ext policy <name> qdisc prio

Una policy con queue discipline prio alloca tante bande di priorità quante sono le
classi ad essa associate. Ad ogni classe deve essere assegnata un valore progressivo e
consecutivo di priorità a partire da 1, la priorità più alta.
Per assegnare la priorità ad una classe si utilizza il comando:

set qos-ext class <name> filter priority <value>

Per ogni classe devono inoltre essere specificati i filtri o i filter-groups per
classificarne il traffico.

ATTIVAZIONE DELLA QOS

Per attivare le regole di QoS utilizzare il comando:

set qos-ext on

216 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Attenzione: le regole di QoS non sono applicate automaticamente all’avvio del router,
ma devono essere attivate mediante auto-command:

set autocmd set qos-ext on

oppure su trigger:

set trigger <interface> up set qos-ext on

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

VISUALIZZAZIONE DELLA CONFIGURAZIONE E STATISTICHE

La configurazione della QoS introdotta via CLI può essere esaminata nell’output di

show config <option> qos

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 i mark associati alle classi nel seguente modo:

show qos-ext class mark

root@Imola> show qos-ext class mark


class RT has mark 100
class DATA1 has mark 200
class DATA2 has mark 300

E’ possibile visualizzare lo stato della QoS nel seguente modo:


show qos-ext status

Tiesse 217
IMOLA User Guide - Rev.24 Ver. 07

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

218 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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

Se i pacchetti sono instradati in un tunnel gre è necessario che la marcatura del


traffico venga fatta prima dell’instradamento. Si deve allora definire un filter group:

set qos-ext filter-group 100


set qos-ext filter-group 100 chain pre-routing
set qos-ext filter-group 100 match src-ip 172.151.1.0/24

set qos-ext class RT filter group 100


set qos-ext class RT filter set ipp 4

Tiesse 219
IMOLA User Guide - Rev.24 Ver. 07

Per riservare una porzione di banda al trafico di controllo 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 valore di dscp 0x30 equivalente alla classe
dscp cs6:
set qos-ext class BGP filter match dscp-class cs6

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.

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

220 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

VLAN E SWITCH
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à.

Per configurare una VLan a livello si usa il comando:


set vlan add vid <vid> interface eth0|eth1

L’interfaccia è eth0 per i modelli Imola-LX ed eth1 per tutti gli altri.

Il comando costruisce un VLan device con notazione:


<interfaccia>.<vid>

es. eth1.100, cui è possibile associare indirizzo ip e netmask nel seguente modo:

set vlan <vlan-device> ipaddr <value> netmask <value>

E’ disponibile il comando per mappare uno o più valori di DSCP (Diffserv Code
Point) su un valore di COS (Class of Service) del protocollo 802.1p:

set vlan <vlan-device> map-to-cos <cos> dscp <dscp_0 ... dscp_7>

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:

Tiesse 221
IMOLA User Guide - Rev.24 Ver. 07

Lo switch all’interno del router Imola dispone di 5 porte Fast Ethernet 10/100
autosensitive. Esso è collegato al MAC della CPU di Imola identificata
dall’interfaccia ethernet eth1. Nel caso del modello Imola LX le porte sono 4 e sono
collegate al MAC della CPU identificata da eth0.

Esso può essere utilizzato in modalità Trasparente oppure modalità Controllata.


Nella configurazione di fabbrica si trova nella modalità Trasparente: tutte le porte
sono equivalenti e sono abilitate e programmate in auto-negoziazione ed auto-
crossover. Su Imola esse corrispodono alle interfacce: eth1, eth2, eth3, eth4 ed eth5,
mentre su Imola-LX alle interfacce eth0, eth1, eth2 ed eth3. Esse sono in grado di
ricevere qualsiasi pacchetto destinata al MAC address di Imola, oppure all’indirizzo
di Broadcast o Multicast. Tutte le porte afferiscono all’indirizzo IP assegnato
all’interfaccia eth1 (nel caso di Imola Full) o eth0 nel caso di Imola LX.
Non vi è nessuna distinzione tra pacchetti 802.1q tagged e pacchetti 802.1q untagged
e la decisione di accettare o meno un pacchetto tagged dipende esclusivamente dalla
CPU di Imola, in particolare dipende dalla configurazione o meno della VLAN
associata a quel tag.

Ad esempio, una configurazione del tipo:

set vlan add vid 100 interface eth1


set vlan eth1.100 ipaddr 192.168.100.1 netmask 255.255.255.0
set eth1 ipadr 10.10.100.1 netmask 255.255.255.0

consente di ricevere i pacchetti 802.1q con VLAN id 100 sull’interfaccia eth1.100 ed


i pacchetti senza il VLAN ID (cioè i pacchetti 802.3 nativi) sull’interfaccia eth1.

Il comando: set switch <opzioni> permette di utilizzare lo switch in modalità


controllata.

Ogni singola porta può essere configurata in modalità access, trunk o hybrid.

• 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.
• Modalità hybrid, individua una porta che può riceve e trasmette sia frames
con tag 802.1q che frame senza tag. In caso di assenza di tag, le frame
appartengono alla VLAN nativa.

Per configurare una porta dello switch di Imola ad operare in modalità access si usa il
comando:

222 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set switch port N mode access18

E’ inoltre necessario associare alla porta un VLan id che verrà utilizzato per il tagging
dei pacchetti in ingresso:
set switch port N vid <value>

Per configurare una porta dello switch di Imola ad operare in modalità trunk si usa il
comando:

set switch port N mode trunk

Per operare in modalità trunk ed accettare anche le frame native, si usa il comando:

set switch port N mode hybrid

In questo caso è necessario specificare gli identificativi delle VLAN abilitate ad


attraversare la porta:

set switch port N allow vid <value>

E’ richiesto un comando per ciascun VLan id abilitato.

E’ possibile programmare la velocità della porta mediante il comando:

set switch port N speed <value>

dove <value> può assumere uno dei seguenti valori:

100BaseTx per specificare 100 Mbit/sec


100BaseTx-FD per specificare 100 Mbit/sec Full-Duplex
100BaseTx-HD per specificare 100 Mbit/sec Half-Duplex
10BaseT per specificare 10 Mbit/sec
10BaseT-FD per specificare 10 Mbit/sec Full-Duplex
10BaseT-HD per specificare 10 Mbit/sec Half-Duplex
auto per specificare Auto Negoziazione

Mediante il comando:

set switch port N no-crossover

viene disabilitata la funzionalità di auto-crossover della porta, mentre il commando:

set switch port N crossover

la riabilita.

Affinchè la configurazione impostata diventi operativa, si deve dare il comando:

set switch on

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


18
In alcune versioni di sistema operativo la sintassi del comando è set switch port ethN

Tiesse 223
IMOLA User Guide - Rev.24 Ver. 07

set switch no-port N

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

dove port-list è una lista di porte separate da spazio.

root@Imola > show switch status

port1 VLan id: 1 802.1Q is enabled as Secure mode


Port is a member of VLan 100. Frames egress Tagged
port2 VLan id: 1 802.1Q is enabled as Secure mode
Port is a member of VLan 200. Frames egress Tagged

Per visualizzare la configurazione di tutte le VLan si usa il comando:


show switch vlan

root@Imola > show switch vlan

02.1Q VLans - VLan Table:


DBNum:0, VID:100
eth0:Port is not a member of this VLan.
eth1:Port is a member of this VLan. Frames egress Tagged
eth2:Port is not a member of this VLan.
eth3:Port is not a member of this VLan.
cpuPort:Port is a member of this VLan. Frames egress Tagged

224 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Per visualizzare i contatori statistici di una porta si usa il comando:

show switch port N counters

dove port-list è una lista di porte separate da spazio:

root@Imola > show switch port 1 counters


Getting counters for port 1.
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

Altre opzioni possibili sono:

show switch port N diagnostic

per visualizzare lo stato della porta e

show switch port N vlan

per visualizzare la VLAN di appartenenza.

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.

Tiesse 225
IMOLA User Guide - Rev.24 Ver. 07

TACACS

CONFIGURAZIONE PROTOCOLLO TACACS


Imola supporta le funzioni di Autenticazione, Accounting e Autorizzazione mediante
protocollo Tacacs+.

Le modalità di autenticazione offerte sono le seguenti:

• locale mediante database user/password interno all’Imola


• remota tramite protocollo Tacacs

In caso di autenticazione Tacacs 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 Tacacs sarà richiesta l’autenticazione locale.

Per quanto riguarda la configurazione della modalità di autenticazione Tacacs, 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 tacacs
(autenticazione remota);
• l’indirizzo IP (ed eventuale porta) del Tacacs Server;
• la chiave mediante la quale la richiesta di autenticazione (prima
dell’autenticazione di un utente) si dovrà presentare al Tacacs Server.
• l’utilizzo o meno delle funzioni di accounting. Se queste sono abilitate ogni
comando eseguito verrà notificato al server e da questi memorizzato nel suo
data base.
• L’utilizzo o meno delle funzioni di autorizzazione. Se queste sono abilitate,
prima di eseguire un comando, viene esplicitamente richiesta l’autorizzazione
al Server e solo in caso di autorizzazione concessa, il comando viene eseguito.

Effettuata l’autenticazione, il server comunica al router il livello di privilegio


associato all’utente. Solo i comandi associati a tale livello potranno essere eseguiti.

Per configurare il servizio Tacacs, i comandi da utilizzare sono i seguenti:


set tacacs authhost <IP> [<IP>]
set tacacs authorder tacacs local
set tacacs key <secret-key>
set tacacs retries N
set tacacs timeout N
set tacacs login-timeout N
set tacacs do-accounting
set tacacs do-authorization
set tacacs source <ipaddr>
set tacacs on

Il comando

226 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set tacacs authhost <IP> [<IP>]

viene utilizzato per configurare l’indirizzo IP del Tacacs Server. Opzionalmente è


possibile specificare un secondo indirizzo da contattare qualora il primo non risponda.

Il comando:

set tacacs authorder tacacs 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 Tacacs Server,
e qualora questo non risponda, viene tentata l’autenticazione locale.

Il comando:

set tacacs retries N

specifica il numero di tentativi per la connessione con il Tacacs Server.

Il comando:

set tacacs timeout N

indica il timeout (in secondi) di attesa per risposta da parte del Tacacs Server.

Il comando:

set tacacs source 172.20.1.1

stabilisce che i pacchetti Tacacs orignati dal router debbano essere inviati utilizzando
come IP sorgente il valore 172.20.1.1. E’ disponibile anche la forma:

set tacacs source loopback

per imporre come indirizzo IP sorgente l’indirizzo di loopback.


Un esempio di connessione di un utente con livello di privilegio pari a 3 è il seguente:

vll$ telnet 10.10.113.1

---------------------------------------------------------------
(IMOLA) (port 0)
---------------------------------------------------------------
login: user
Password:
TACACS+: Authentication OK
Service Type is: Login-User
Privilige Level is: 3
Idle timeout is set to 3600 seconds
Connected Users:
pts/0 user@IMOLA

You are logged on pts/0


user@IMOLA#

Tiesse 227
IMOLA User Guide - Rev.24 Ver. 07

mentre un utente di tipo super-user:

vll$ telnet 10.10.113.1


---------------------------------------------------------------
(IMOLA) (port 0)
---------------------------------------------------------------
login: admin
Password:
TACACS+: Authentication OK
Service Type is: Administrative-User
Privilige Level is: 15
Idle timeout is set to 3600 seconds
Connected Users:
pts/0 admin@IMOLA

You are logged on pts/0


admin@IMOLA>

L’utente con privilegio 15 mediante il comando:


set privilege level 5 <command-prefix>

può stabilire quali sono i comandi che possono essere eseguiti dagli utenti con
privilegio 5. Ad esempio:

set privilege level 5 set adsl


set privilege level 5 set isdn
set privilege level 5 set gprs

Inoltre può impostare la password per l’accesso al livello 5 mediante il comando:


set enable password level 5

L’utente collegato con privilegio 3 può eseguire il comando:

enable 5

ed acquisire il diritto di eseguire i comandi configurati set adsl, set isdn e set
gprs.

ACCOUNTING E AUTORIZZAZIONE
Gli accessi al router sono controllati da un messaggio di Accounting inviato al Server
quando viene effettuata l’autenticazione (Accounting Start) ed un messaggio
inviato quando la sessione viene terminata (Accounting Stop).

I campi più significativi del messaggio di Start sono:

• Il nome dell’utente connesso


• Il livello di Privilegio assegnato
• L’indirizzo IP da cui è stata effettuata la connessione

Mentre il messaggio di Stop, oltre alle informazioni precedenti, contiene:

• La durata della sessione

228 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

• Il motivo della disconnessione

Se nella configurazione del Tacacs si imposta il comando:

set tacacs do-accounting

allora ogni comando eseguito nel corso della sessione verrà inviato con un apposito
messaggio di Accounting al Server Tacacs. Tale messaggio contiene il nome
dell’utente connesso, il terminale da cui è stata effettuata la connesione e il comando
eseguito.

Per disabilitare le funzioni di Accounting (i messaggi di Start e Stop non possono


essere disabiltati) si usa il comando:
set tacacs no-do-accounting

Se nella configurazione si imposta il comando:

set tacacs do-authorization

allora prima di eseguire un comando viene inviata la richiesta di Autorizzazione al


Tacacs Server e solo se questo risponde in modo positivo, allora il comando viene
eseguito, altrimenti esso viene rifiutato.
Supponiamo di aver configurato nel Data Base del Server l’utente chiamato limited
al quale abbiamo dato la possibilità di eseguire solo alcuni dei comandi disponibili. La
configurazione del Data Base varia in funzione del Tacacs Server utilizzato, nel
nostro esempio essa è la seguente:

Tiesse 229
IMOLA User Guide - Rev.24 Ver. 07

user = limited {
login = cleartext limited
service = exec {
priv-lvl=15
}
cmd = "set" {
permit "eth1 .*"
permit "gprs apn .*"
permit "isdn dialer ippp1 *"
}
cmd = "ping" {
permit .*
}
cmd = "show" {
deny "interface *"
deny "ip bgp .*"
permit .*
}
cmd = "traceroute" {
permit .*
}
cmd = "shell" {
deny .*
}
cmd = "iptables" {
deny .*
}
}

Alcuni esempi di escuzione di comandi vietati sono i seguenti:


vll$ telnet 10.10.113.1
---------------------------------------------------------------
(IMOLA) (port 0)
---------------------------------------------------------------
login: limited
Password:
TACACS+: Authentication OK
Service Type is: Administrative-User
Privilige Level is: 15
Idle timeout is set to 3600 seconds
Connected Users:
pts/0 limited@IMOLA

You are logged on pts/0


limited@IMOLA> set loopback 7.1.1.123
% Command "set loopback 7.1.1.123" rejected by TACACS+

limited@IMOLA> show ip bgp neighbor


% Command "show ip bgp neighbor" rejected by TACACS+

limited@IMOLA> iptables -A FORWARD -i eth1 -j DROP


% Command "iptables -A FORWARD -i eth1 -j DROP" rejected by TACACS+

Mentre i comandi ammessi vengono eseguiti senza alcun problema:

limited@IMOLA> set gprs apn ibox.tim.it


limited@IMOLA> set isdn dialer ippp1 out-number 0125230544

230 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 source <ipaddr>
set radius on

Il comando

set radius authhost <IP>[:<port>] [<IP>:<port>]

viene utilizzato per configurare gli IP address dei Radius Server.

Il comando

Tiesse 231
IMOLA User Guide - Rev.24 Ver. 07

set radius accthost <IP>[:<port>] [<IP>:<port>]

viene utilizzato per configurare gli IP address degli Account Server.

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.

Il comando:

set radius source 172.20.1.1

stabilisce che i pacchetti Radius orignati dal router debbano essere invuati utilizando
come IP sorgente il valore 172.20.1.1. E’ disponibile anche la forma:

set radius source loopback

per imporre come indirizzo IP sorgente l’indirizzo di loopback.

Sul server Radius è possibile specificare l’attributo:

cisco-avpair = "shell:priv-lvl=15"

usato per associare ad un utente il suo livello di privilegio

232 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

PROTOCOLLO SNMP

CONFIGURAZIONE PROTOCOLLO SNMP


Per attivare l’agent 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 (riportandola a quella di


fabbrica) è disponibile il comando:
set no-snmp

L’agent SNMP risponde solo alle richieste verso indirizzi IP preventivamente abilitati
(nella configurazione di fabbrica sono abilitate solo le richieste locali, dirette
all’indirizzo “127.0.0.1”). Il comando da impostare per abilitare le risposte verso altre
interfacce è:
set snmp directive agentaddress 172.16.0.1

dove “172.16.0.1“ è l’indirizzo assegnato ad una delle interfacce locali (loopback,


eth0, …).

La configurazione di default dell'agent SNMP prevede la community public di sola


lettura, la community tiesseadm di lettura e scrittura e la disabilitazione dell'invio
delle trap.

Per aggiungere le community è disponibile il comando CLI:

set snmp community <value> access ro|rw source [<source_ip> oid <value>]

dove il valore del parametro community deve essere una stringa di caratteri ascii, il
valore del parametro source è l'indirizzo IP del manager a cui è permesso usare
questa community, e il valore del parametro oid è l'object identifier a cui è ristretta
questa community. Ad esempio la sequenza di comandi:

Tiesse 233
IMOLA User Guide - Rev.24 Ver. 07

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

Per configurare l’indirizzo da utilizzare come sorgente nell’invio delle trap, si impiega
il comando:
set snmp trap-source 172.20.1.1

oppure

set snmp trap-source loopback

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

234 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

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

CONFIGURAZIONE SNMP V3
L’agent SNMP, se opportunamente configurato, è in grado di rispondere a richieste
SNMP versione 3 (SNMPv3). Le specifiche SNMPv3 riguardano essenzialmente gli
aspetti di security ed encryption.

Controllo di Accesso (Utenti SNMPv3)


Analogamente alle community è possibile creare un utente e definire la corrispondente
modalità di accesso, se in sola lettura o lettura e scrittura.
La creazione di un utente avviene mediante il comando:
set snmp user <username> auth MD5|SHA password <pass phrase>

mentre la definizione della modalità di accesso con:


set snmp user-access <username> ro|rw [auth|noauth|priv] [oid <value>]

dove MD5 o SHA definisce la modalità di autenticazione, <pass phrase> è una


password in cui è possibile utilizzare anche spazi, es.: “Il mio cane si chiama Fido”, e
deve essere maggiore o uguale a 8 caratteri.
Nella definizione della modalità di accesso è possibile opzionalmente specificare il
livello di security ed eventualmente l'object identifier a cui è ristretto l’accesso
dell’utente.
Il levello di security può essere rispettivamente: accesso esclusivamente mediante
autenticazione (<pass phrase>), anche senza autenticazione o forzando l’uso di
encryption.

Tiesse 235
IMOLA User Guide - Rev.24 Ver. 07

E’ possibile definire una modalità di encryption mediante il comando:

set snmp user-priv <username> DES|AES [secret <priv pass phrase>]

dove DES e AES sono protocolli di encryption. Se il parametro opzionale ‘secret’ non
viene specificato, come <priv pass phrase> viene assunta essere la stessa <pass
phrase> di autenticazione.

Come esempio supponiamo di voler creare un utente ‘tiesseuser’ con accesso


esclusivamente a ‘system’, in sola lettura e mediante autenticazione. Per far questo è
sufficiente eseguire i comandi:

set snmp user tiesseuser auth MD5 password mi chiamo tiesseuser


set snmp user-access tiesseuser ro auth oid system
set snmp on

Nota: L’autenticazione SHA e i protocolli DES/AES richiedono il supporto specifico


di un componente di encryption: OpenSSL, normalmente non presente. Nel caso si
desideri utilizzare una di queste caratteristiche si prega di contattare il supporto Tiesse
per richiedere le modalità di attivazione di tale componente.

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


o
show config current | saved | started snmp

L'output generato conterrà una sezione di comandi relativi ai parametri snmp


impostati sul router, come segue:

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

Per visualizzare i valori dei parametri di configurazione SNMP correnti è disponibile


il comando CLI:

show snmp

236 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

con la seguente visualizzazione:

root@Imola> show snmp


SNMP Services are configured. Running pid is 884

set snmp directive agentaddress 172.20.1.1


set snmp community public access ro
set snmp community tiesseadm access rw
set snmp directive syslocation Tiesse Farm
set snmp directive syscontact Root postmaster@tiesse.com
set snmp trap-timeout 5
set snmp trap-retries 3
set snmp trap-poll-frequency 30
set snmp no-trap-isdn
set snmp no-specific-interface
set snmp on

Tiesse 237
IMOLA User Guide - Rev.24 Ver. 07

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 specificare con quale IP sorgente debbano essere inviati i messaggi di syslog
verso il server remoto, si usa il comando:

set log source <local-ip>

oppure

set log source loopback

per utilizzare l’indirizzo di loopback.

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
applicazioni, autenticazione logon utenti, log pacchetti IP in
livello 2
transito e filtrate dalle regole di acl, redirect, source-nat
applicazioni, autenticazione logon utenti, log pacchetti IP in
livello 3
transito e filtrate dalle regole di acccess-list, redirect, source-

238 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

nat, accessi telnet e ftp, attivazione dialer isdn


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

E’ possibile raccogliere i messaggi di log che arrivano solo da una categoria di


messaggi con il comando:

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

Tiesse 239
IMOLA User Guide - Rev.24 Ver. 07

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

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


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

E’ possibile visualizzare l’intero file di log, con il comando:

show log full

Se il logging è attivo, l’output generato è del tipo mostrato in Figura 49.


Per interrompere la visualizzazione, introdurre la lettera “q”; per visualizzare riga per
riga, premere il tasto “invio” (enter); per visualizzare la pagina successiva, premere il
tasto “separatore” (space).

root@Imola> show log full


Jan 1 00:01:04 localhost syslogd 1.4.1: restart.
Jan 1 00:01:06 localhost kernel: Memory: 59672KB available (1688K code, 357K da
ta, 240K init)
Jan 1 00:01:06 localhost kernel: number of JEDEC chips: 1
Jan 1 00:01:06 localhost kernel: cfi_cmdset_0002: Disabling erase-suspend-progr
am due to code brokenness.
Jan 1 00:01:06 localhost kernel: Imola3 flash_0: Using Static image partition d
efinition
Jan 1 00:01:06 localhost kernel: Creating 2 MTD partitions on "Imola3:0":
Jan 1 00:01:06 localhost kernel: 0x00000000-0x00070000 : "U-boot"
Jan 1 00:01:06 localhost kernel: 0x00070000-0x00080000 : "environment"
Jan 1 00:01:06 localhost kernel: imola3_init: mach-type=604
Jan 1 00:01:06 localhost kernel: 3 cmdlinepart partitions found on MTD device i
mola3-nand
Jan 1 00:01:06 localhost kernel: Creating 3 MTD partitions on "imola3-nand":
Jan 1 00:01:06 localhost kernel: 0x00000000-0x00100000 : "kernel"
Jan 1 00:01:06 localhost kernel: 0x00100000-0x00400000 : "initrd"
Jan 1 00:01:06 localhost kernel: 0x00400000-0x01000000 : "user"
Jan 1 00:01:06 localhost kernel: RAMDISK: Compressed image found at block 0
Jan 1 00:01:06 localhost kernel: ISDN subsystem Rev: 1.1.4.1/1.1.4.1/1.1.4.1/1.
1.4.1/none/1.1.4.1 loaded
Jan 1 00:01:07 localhost ipppd[1696]: Found 1 device: /dev/ippp0
--More-- (70% of 1846 bytes)

240 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

E’ possibile trasferire tutto il contenuto del file di log su un server TFTP tramite il
comando:

upload log-file to <tftp-server>

Il file risultante dal trasferimento sul server è chiamato: imola.log.

Sono disponibili i comandi:


set alarm host <ip-address>
set alarm facility <facility>
set alarm priority <priority>
set alarm on

che causano l’invio verso l’host specificato specificato le varie segnalazioni di allarmi
prodotte dal router. Gli alarmi vengono inviati tramite syslog.

Per specificare con quale IP sorgente debbano essere inviati i messaggi verso il server
TFTP, si usa il comando:

set tft source <local-ip>

oppure

set tftp source loopback

per utilizzare l’indirizzo di loopback.

Tiesse 241
IMOLA User Guide - Rev.24 Ver. 07

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:

242 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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:

set dlsw log on

Tiesse 243
IMOLA User Guide - Rev.24 Ver. 07

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

244 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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,

Tiesse 245
IMOLA User Guide - Rev.24 Ver. 07

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

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

Per visualizzare lo stato del peer locale e delle sue connessioni si usa il comando:

show dlsw peers

246 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

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

show dlsw capabilities local

root@Imola > show dlsw capabilities local

Capabilities for peer: 172.17.6.221


Vendor Id : 5AB00
DLSW version : 1
DLSW release : 0
init pacing window : 20
tcp connections : 1
supported saps : all
MAC Address exclusivity : 0

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

show dlsw capabilities

root@Imola > show dlsw capabilities

Capabilities for peer: 10.250.255.1


Vendor Id : 00C
DLSW version : 1
DLSW release : 0
init pacing window : 20
tcp connections : 1
supported saps : all
MAC Address exclusivity : 1
MAC Address list : [ 400016702000 ffffffffffff ]
version string : Cisco Internetwork Operating
System Software
IOS (tm) 3600 Software (C3640-IS-M), Version 12.2(1), RELEASE SOFTWARE (fc2)
Copyright (c) 1986-2001 by cisco Systems, Inc.
Compiled Fri 27-Apr-01 03:19 by cmong

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

show dlsw circuits

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
Tiesse 247
IMOLA User Guide - Rev.24 Ver. 07

La visualizzazione dei circuiti può essere filtrata in base ad un MAC address, un sap o
un id, nel seguente modo:
show dlsw circuits mac < mac address >
show dlsw circuits sap < sap >
show dlsw circuits id < circuit id >

E’ infine possibile visualizzare alcune informazioni statistiche sui messaggi SSP


scambiati dai peers con il comando:
show dlsw ssp

root@Imola > show dlsw ssp

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

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:

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


Host

CED DLC

Remote Peer 10.160.1.1


Router

SSP
TCP/IP
DLSW

internet

SSP

Imola
Local Peer 10.10.0.1

DLC

Sede Periferica
Client MAC address 00:0A:01:02:03:04

Esso prevede:

248 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

• 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

Tiesse 249
IMOLA User Guide - Rev.24 Ver. 07

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

Test req Can U Reach Ex Test req

I Can Reach Ex Test res


Test res

Can U Reach Cs
XID

I can Reach Cs

Reach ACK

XID XID

SABME Contact SABME

UA Contacted UA

Per visualizzare i circuiti già stabiliti, si utilizza il comando:

show dlsw circuits

Per visualizzare i messaggi scambiati dai DLSw, si utilizza il comando:

show dlsw ssp

Quando il circuito è stabilito i frames fluiscono attraverso di esso:

Client Local DLSw Remote DLsw Host

Info Info Info Info

250 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 specificare con quale IP sorgente debbano essere inviati i messaggi verso il server
remoto, si usa il comando:

set ntp source <local-ip>

oppure

set ntp source loopback

per utilizzare l’indirizzo di loopback.

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

Tiesse 251
IMOLA User Guide - Rev.24 Ver. 07

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

E’ possibile configurare il servizio in modo che distribuisca la data ad eventuali


clients che la richiedano. Il comando da utilizzare per questo è:

set ntp listen on <ip-address>

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

252 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ESECUZIONE PIANIFICATA DI COMANDI


E’ disponibile il servzio di Command Scheduler che permette di configurare dei
comandi da eseguire a specifici orari e date. La configurazione prevede la definizione
di una policy, contenente uno o più comandi, e di un orario/data di attivazione. La
sintassi dei comandi:

Comandi di configurazione:

• set cron on|off


Attiva e disattiva il servzio di Command Scheduler
• set cron <cron-policy> hour <0-23> min <0-59>
Configura <cron-policy> per essere eseguita ogni giorno all'ora/minuti definiti
• set cron <cron-policy> hour <0-23> min <0-59> day <1-31> [month] <1-12>
Configura <cron-policy> per essere eseguita nel giorno e all'ora/minuti definiti,
tutti i mesi nel caso 'month' non sia definito altrimenti solo per il mese configurato
• set cron <cron-plcy> hour <0-23> min <0-59> month <1-12> [dayofweek]
<dow>
Configura <cron-policy> per essere eseguita all'ora/minuti definiti solo nel mese
configurato, tutti i giorni nel caso 'day-of-week' non sia definito altrimenti solo per
il giorno configurato (Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato o
Domenica)
• set cron <cron-policy> hour <0-23> min <0-59> day-of-week <dow>
Configura <cron-policy> per essere eseguita all'ora/minuti definiti per il giorno
della settimana configurato
• set cron <cron-policy> command <comando>
Specifica un comando da aggiungere alla policy
• set cron <cron-policy> no-command <comando>
Specifica il comando da rimuovere dalla policy
• set no-cron
Disattiva il cron daemon e rimuove tutte le policy, ripristinando così la situazione
'factory'
• set no-cron <cron-policy>
Rimuove solo la policy <cron-policy>
• set date day <1-31> month <1-12> year <2010-2099> hour <0-23> min <0-59>
Permette di configurare manualmente la data del router

Comandi di visualizzazione

• show crontab
Visualizza la cron table corrente.
Es. di visualizzazione:
> show crontab
Cron Daemon is active. Running pid is 5522
Current Cron table:
at 10h:45m 22th of April run 'AddRoute'
at 18h:50m 22th of April run 'DelRoute'

Tiesse 253
IMOLA User Guide - Rev.24 Ver. 07

• show cron
Visualizza lo stato completo del Command Scheduler
Es. di visualizzazione:
> show cron
Cron Daemon is active. Running pid is 5522
Current Cron table:
at 10h:45m 22th of April run 'AddRoute'
at 18h:50m 22th of April run 'DelRoute'

Commands to be run by Cron Policy 'DelRoute':


ip route del 1.1.1.1 dev eth1
ip route del 1.1.1.2 dev eth1

Commands to be run by Cron Policy 'AddRoute':


ip route add 1.1.1.1 dev eth1
ip route add 1.1.1.2 dev eth1

• show cron <policy-name>


Visualizza lo stato della policy <policy-name>
Es. di visualizzazione:
> show cron AddRoute
Cron Daemon is active. Running pid is 5522

Cron Policy 'AddRoute' run at 15h:45m 22th of April


commands to be run:
ip route add 1.1.1.1 dev eth1
ip route add 1.1.1.2 dev eth1

254 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ESECUZIONE DI COMANDI IN BASE ALLA


POSIZIONE GEOGRAFICA
Su alcuni modelli di router è disponibile il servizio di Command Position Scheduler
che permette di configurare dei comandi da eseguire quando il router si trova in
determinate posizioni geografiche. Questa funzione risulta particolarmente utile
quando il router viene usato su dei mezzi in movimento.

I dati di posizionamento sono ricevuti da una sorgente esterna nel formato NMEA.

La configurazione prevede:

• la definizione delle sorgente di georeferenziazione


• la definizione di:
o un’area geografica
o una lista di comandi da eseguire quando il router entra in quell’area
o una lista di comandi da eseguire quano il router esce da quell’area.

L’area viene rappresentata da un cerchio avente come centro una coppia di coordinate
geografiche, latitudine e longitudine ed un raggio specificato.
Le coordinate vengono espresse specificando Latitude e Longitudine nel formato
GGA, secondo le specifiche NMEA:

- Latitudine: ddmm.nnnnnN/S
- Longitudine: dddmm.nnnnnE/W

Dove dd = gradi, mm= primi e .mmmmm = decimi di primo.

Si possono configurare fino ad 8 aree geografiche, chiamate area0, area1, … area7.

I comandi di configurazione sono i seguenti:

set cps on|off


Attiva e disattiva il servzio di Command Scheduler Position
set cps nmea-source <source>
Definisce la sorgente di georeferziazione. Sono valide le seguenti casistiche:

set cps nmea-source rs232


per indicare che i dati di georefenziazione sono ricevuti da un dispositivo
collegato alla porta seriale del router.

set cps nmea-source gps


Per indicare che dati di georefernziazione sono ricevuti da un dispositivo GPS
interno al router (nel caso in cui il modello che lo preveda).

set cps nmea-source interface <intf> port <portno> group <mcast-addr>

Tiesse 255
IMOLA User Guide - Rev.24 Ver. 07

Per indicare che i dati di georeferenziazione sono ricevuti da un flusso multicast


sull’interfaccia di rete specificata.

set cps nmea-source host <ipaddr> port <port-number>


Per indicare che i dati vengono acquisiti tramite una connessione verso l’host e la
porta specificati.
set cps nmea-frequency N
Definisce la frequenza con la quale il servizo controlla un cambio di posizionamento
geografico. Il valore di default è di 1 secondo.

set cps <area> latitude <val> longitude <val> radius <val>


Configura il centro e il raggio dell’area geografica cui dovranno essere associati i
comandi da eseguire. La latititude e la longitudine sono coordinate NMEA mentre il
valore del raggio è espresso in metri.

set cps <area> description <descrizione-area>


Associa una descrizione all’area specificata.

set cps <area> command in <command>


Specifica un commando che deve essere eseguito quando il router entra la prima
volta all’interno dell’area specificata.

set cps <area> no-command in <command>


Rimuove il commando specificato.

set cps <area> command out <command>


Specifica un commando che deve essere eseguito quando il router esce dall’area
identificata dall’area specificata.

set cps <area> no-command out <command>


Rimuove il commando specificato.

set no-cps
Disabilita il servzio di georeferenzazione e rimuove tutte le policy specificate.

set cps no-area0|no-area1 ….. no-area7


Rimuove soltanto l’area speficata.

Ad esempio, il commando:

set cps nmea-source interface eth1 port 19100 group 239.1.1.1

specifica che i dati NMEA verranno ricevuti sull’interfaccia come un flusso multicast
verso l’indirizzo di gruppo 239.1.1.1 sulla porta UDP 19100.

La sequenza di comandi:
set cps area0 latitude 4525.91000N longitude 00753.41000E radius 1000
set cps area0 description around-ivrea
set cps area0 command in gprsmode no-umts
set cps area0 command in iptables –A FORWARD –o ppp0 –p udp –j DROP

256 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

causa l’esecuzione dei comandi per operare solamente su rete mobile 2G e bloccare
tutto il traffico UDP quando il router si trova in un raggio di 1000 metri dalla
posizione specificata, mentre i comandi
set cps area0 command out gprsmode auto
set cps area0 command out iptables –D FORWARD –o ppp0 –p udp –j DROP

eliminano le restrizioni impostate non appena il router esce dall’area identificata.

I comandi:
set cps area1 latitude 4380.0000N longitude 1125.0000E radius 100
set cps area1 descriprion in-firenze
set cps area1 command in upload log-file to 192.168.121.12
set cps area1 command in hello 192.168.121.12 22000

causano l’invio del file di log al server TFTP 192.168.121.12 e il commando di


hello verso lo stesso server e porta 22000.

E’ possibile in ogni istante visualizzare la posizione corrente del router mediante il


comando:

where-i-am

che restituisce le seguenti informazioni:

UTC Time: 120114130136


Latitude: 4525.9081N
Longitude: 00753.4123E

Tiesse 257
IMOLA User Guide - Rev.24 Ver. 07

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

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

19
Al comando set udhcp deve essere preferito l’utilizzo del comando set dhcp-
server, descritto nel paragrafo successivo. Le opzioni sono le stesse, ma il primo viene mantenuto
solo per compatibilità con precedenti release.

258 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

Per l'attivazione del server DHCP si usa il comando:

set udhcp on
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

ISTANZE MULTIPLE DEL SERVIZIO DHCP


È possibile attivare più istanze del servizio DHCP e configurare ognuna di esse
separatamente, utilizzando il comando:
set dhcp-server <name> <options>

dove <name> è un identificativo dell’istanza e <options> sono i parametri per tale


istanza. Questa funzionalità è particolarmente utile nel caso in cui sul router siano
configurate delle VLAN e si vuole attivare il servizio su ognuna di esse. Ad esempio,
supponendo che siano presenti tre VLAN identificate come eth1.10, eth1.20 ed
eth1.30 e con indirizzi rispettivamente 172.16.1.1/24, 172.16.2.1/24 e
172.16.3.1/24. Per attivare il servizio DHCP su ognuna di esse, si utilizza il
seguente gruppo di comandi:

set dhcp-server vlan10 interface eth1.10


set dhcp-server vlan10 start-range 172.16.1.50
set dhcp-server vlan10 end-range 172.16.1.100

Tiesse 259
IMOLA User Guide - Rev.24 Ver. 07

set dhcp-server vlan10 router 172.16.1.1


set dhcp-server vlan10 dns 151.99.0.100
set dhcp-server vlan10 subnet 255.255.255.0
set dhcp-server vlan10 on

set dhcp-server vlan20 interface eth1.20


set dhcp-server vlan20 start-range 172.16.2.50
set dhcp-server vlan20 end-range 172.16.2.100
set dhcp-server vlan20 router 172.16.2.1
set dhcp-server vlan20 dns 151.99.0.100
set dhcp-server vlan20 subnet 255.255.255.0
set dhcp-server vlan20 on

set dhcp-server vlan30 interface eth1.30


set dhcp-server vlan30 start-range 172.16.3.50
set dhcp-server vlan30 end-range 172.16.3.100
set dhcp-server vlan30 router 172.16.3.1
set dhcp-server vlan30 dns 151.99.0.100
set dhcp-server vlan30 subnet 255.255.255.0
set dhcp-server vlan30 on

E’ consigliato sempre l’utilizzo del comando set dhcp-server invece del comando
set udhcp, il quale viene usato per compatibilità con versioni precedenti di firmware.

E’ possibile inoltre abilitare le funzioni di antispoofing grazie alle quali il router


blocca tutto il trafifco su un’interfaccia tranne quello proveniente da un PC cui è stato
assegnata una lease dal router stesso.
Ad esempio, se si imposta il comando:

set dhcp-server vlan30 directive antispoofing 1

il router imposta delle regole di filtro sui pacchetti che bloccano tutto il traffico in
arrivo sulla VlAN 30, tranne le richieste DHCP. Quando viene assegnato un indirizzo
IP ad un client, allora viene abilitato il traffico che ha come IP sorgente l’indirizzo
rilasciato e come MAC sergente quello del PC che ha ottenuto tale indirizzo.

Per riservare un indirizzo IP ad un cliente specifico, si utilizza il comando:

set dhcp-server <pool> directive static_lease <mac-addr> <ip-addr>

Ad esempio:

set dhcp-server lan directive static_lease 00:24:36:a3:de:d7 172.16.113.100

E’ possibile specificare ulteriori opzioni tramite il comando:

set dhcp-server <pool> direction option <opt-name> <opt-value>

Ad esempio:

set dhcp-server vlan10 directive logsrv 192.168.1.1


set dhcp-server vlan10 directive tftp www.tiesse.com

La lista di tutte le possibili opzioni e il tipo di dati che può assumere è la seguente:

timesrv indirizzo IP

260 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

namesrv indirizzo IP
logsrv indirizzo IP
cookiesrv indirizzo IP
lpsrv indirizzo IP
domain stringa
swapsrv indirizzo IP
rootpath stringa
mtu valore numerico
nisdomain stringa
nissrv indirizzo IP
tftp stringa
staticroutes subnet nexthop
msstaticroutes subnet nexthop
sipsrv indirizzo IP
oaigateway indirizzo IP

Ad esempio per distribuire le rotte statiche tramite l’opzione staticsoutes:

set dhcp-server lan directive option staticroutes 10.10.0.0/16 172.16.1.1

Inoltre è possibile specificare direttamente il valore delle opzioni che il server DHCP
deve distribuire, mentre il contenuto delle opzioni può essere espresso in una
sequenza di caratteri esadecimali oppure ascii oppure come in indirizzo IP nel modo
seguente:

set dhcp-server <pool> directive option <val> ip <ip-address>


set dhcp-server <pool> directive option <val> hex <hex-string>
set dhcp-server <pool> directive option <val> ascii <ascii-string>

Ad esempio, per specificare le opzioni 120, 152 e 160 usate da alcuni telefoni IP:

set dhcp-server lan directive option 152 ip 10.10.10.11


set dhcp-server lan directive option 120 hex 010a0a0b0b
set dhcp-server lan directive option 160 ascii http://172.20.1.24

Le linee di configurazione per specificare direttamente il valore dell’opzione devono


essere messe in fondo. Ad esempio, la sequenza:

set dhcp-server lan interface eth1


set dhcp-server lan start-address 172.16.113.100
set dhcp-server lan end-address 172.16.113.200
set dhcp-server lan router 172.16.1.1
set dhcp-server lan directive option 152 ip 10.10.1.1
set dhcp-server lan directive option 120 hex 010a0a0b0b
set dhcp-server lan directive option 160 ascii http://10.10.1.1
set dhcp-server lan lease-time 1200
set dhcp-server lan dns 151.99.125.2 151.99.0.100
set dhcp-server lan directive static_lease 00:24:36:a3:de:d7 172.16.113.100
set dhcp-server lan directive option tftp www.tiesse.com
set dhcp-server lan directive option logsrv 10.10.4.4
set dhcp-server lan directive option 152 ip 10.10.1.1
set dhcp-server lan directive option 120 hex 010a0a0b0b
set dhcp-server lan directive option 160 ascii http://10.10.1.1
set dhcp-server lan on

è sbagliata. Ad essa deve essere preferita la sequenza:

set dhcp-server lan interface eth1


set dhcp-server lan start-address 172.16.113.100

Tiesse 261
IMOLA User Guide - Rev.24 Ver. 07

set dhcp-server lan end-address 172.16.113.200


set dhcp-server lan router 172.16.1.1
set dhcp-server lan directive option 152 ip 10.10.1.1
set dhcp-server lan directive option 120 hex 010a0a0b0b
set dhcp-server lan directive option 160 ascii http://10.10.1.1
set dhcp-server lan lease-time 1200
set dhcp-server lan dns 151.99.125.2 151.99.0.100
set dhcp-server lan directive static_lease 00:24:36:a3:de:d7 172.16.113.100
set dhcp-server lan directive option tftp www.tiesse.com
set dhcp-server lan directive option logsrv 10.10.4.4
set dhcp-server lan directive option 152 ip 10.10.1.1
set dhcp-server lan directive option 120 hex 010a0a0b0b
set dhcp-server lan directive option 160 ascii http://10.10.1.1
set dhcp-server lan 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à è:

dhcprelay client-ifname server-ifname [server-ipaddr]

dove viene specificata l’interfaccia cui sono collegati i client e l’interfaccia tramite la
quale si raggiunge il server DHCP. Opzionalmente può essere specificato
direttamente l’indirizzo IP del server.

Il comando 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 dhcprelay eth0 tgprs0

oppure per attivare il comando allo startup del router:

set trigger autocmd dhcprelay eth0 tgprs0 172.16.10.10

Nel caso in cui l’interfaccia di uscita sia di tipo ADSL il comando può essere eseguito
quando l’interfaccia diventa operativa:

set trigger adsl up dhcprelay eth0 atm0

262 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

VISUALIZZAZIONE DEL SERVIZIO DHCP


Per visualizzare lo stato del servizio DHCP Server si usa il comando:

show dhcp-server

root@IMOLA> show dhcp-server


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

oppure la forma show udhcp se è stato configurato mediante l’opzione set udhcp ..

Tiesse 263
IMOLA User Guide - Rev.24 Ver. 07

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:

root@Imola> show date


Mon Oct 10 11:52:15 GMT-1 2005

264 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 265
IMOLA User Guide - Rev.24 Ver. 07

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 alla successiva disattivazione:


set trigger gprs down ip route del 4.4.4.0/24 dev ppp0
set trigger gprs down ip route add 4.4.4.0/24 dev eth0

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 down set rip off


set trigger backup down 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

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

266 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

20
La disponibilità del tunnel GRE è controllata solo e soltanto se al momento della
definizione del tunnel è stato configurato il meccanismo di keep-alive.

Tiesse 267
IMOLA User Guide - Rev.24 Ver. 07

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 up set isdn traffic-control on


set trigger isdn down 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 ifstate 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.

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

268 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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>

Tiesse 269
IMOLA User Guide - Rev.24 Ver. 07

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

270 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

è 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 icmp 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


set backup check-wait T1

Tiesse 271
IMOLA User Guide - Rev.24 Ver. 07

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. Invio periodico di un pacchetto di tipo udp verso un determinato indirizzo IP e una


porta attraverso una determinata interfaccia di rete. Il comando necessario è:

set backup checking-ipaddress a.b.c.d via udp


through-interface <ifname>

Il collegamento principale viene dichiarato non disponibile se non viene ricevuta


alcuna risposta dall’host specificato dopo N tentativi di trasmissione. La porta udp
cui inviare i pacchetti si configura mediante il comando:
set backup check-port N

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 udp continua ad essere trasmessa sull’interfaccia


specificata e il collegamento principale viene dichiarato disponibile non appena si
ottiene una risposta.

4. Connessione periodica ad un servizio tcp verso un determinato indirizzo IP e una


porta attraverso una determinata interfaccia di rete. Il comando necessario è:

set backup checking-ipaddress a.b.c.d via tcp


through-interface <ifname>

Il collegamento principale viene dichiarato non disponibile se non è possibile


effettuare una connessione TCP con il servizio dell’host specificato.

La porta tcp verso cui effettuare le connessioni si configura mediante il comando:


set backup check-port N

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:

272 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set backup check-retries N


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

La connessione tcp continua ad essere richiesta sull’interfaccia specificata e il


collegamento principale viene dichiarato disponibile non appena questa avviene
con successo. Ogni connessione effettuata con successo viene automaticamente
terminata da Imola.

Una variante del comando

set backup checking-ipaddress a.b.c.d via ...

è la forma:

set backup checking-ipaddr-if-rx-idle a.b.c.d via .. rx-threshold N

con la quale il controllo verso l’host specificato viene effettuato soltanto se in


undeterminato intervallo di tempo non è stato ricevuto alcun carattere
sull’interfaccia specificata., oppure il numero di caratteri ricevuti è minore di una
soglia configurata.

Ad esempio:

set backup checking-ipaddr-if-rx-idle 1.1.1.1 via icmp


through-interface atm0 rx-threshold 500

attiva l’invio dei pacchetti di ping se nell’intervallo spcificato è stato ricevuto un


numero di caratteri inferiori a 500.

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

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

E’ possibile limitare il controllo alla ricezione di una sola network mediante


l’opzione watched:
set backup checking-dynamic-routes via ospf|bgp|rip
through-interface <ifname> watched <netwok>/N

Tiesse 273
IMOLA User Guide - Rev.24 Ver. 07

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>

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>

COMANDO SET EXTBACKUP


A partire dalla versione di firmware x.3.0, accanto alla funzionalità di base che
prevede la possibilità di configurare una sola condizione di backup, è possibile
definire altre 8 condizioni, per un totale di 9, mediante l’utilizzo del comando:

set extbackup N

La sintassi è la stessa del comando set backup <opzioni> tranne per la parte iniziale
del comando che rappresenta l’identificativo della condizione:

set extbackup <0-7> <opzioni>

Dove <opzioni> sono le stesse del comando set backup e il numero <0-7> è
l’identificativo del backup

Per rimuovere un backup precedentemente configurato.


set no-extbackup <0-7>

I comandi di trigger possono essere associati alla corretta condizione di test, mediante
il comando:

274 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set trigger extbackup <0-7> down|up <options>

mentre per rimuovere un trigger si usa il comando:


set no-trigger extbackup <0-7> down|up …

Per visualizzazare lo stato della condizione si usa il comando:

show extbackup <0-7>

Tiesse 275
IMOLA User Guide - Rev.24 Ver. 07

POLICY ROUTING
Il meccanismo di Policy Routing permette di effettuare delle decisioni
sull’instradamento dei pacchetti oltre che in base all’indirizzo di destinazione anche
su altri paramteri, quali ad esempio l’indirizzo IP sorgente, il tipo di protocollo, la
porta sorgente o destinazione, il campo TOS (o DSCP) dell’header di IP o una
qualsiasi combinazione dei campi dell’header IP.
Il concetto risulta più chiaro ricorrendo ad un esempio. Si consideri il seguente
scenario come esempio:

ADSL GPRS
1.1.1.2
3.3.3.2

atm0
ppp0
1.1.1.1 3.3.3.1

10.10.0.0/16

10.10.10.11 10.10.10.12

dove senza perder in generalità, si assume che:

 l’indirizzo 1.1.1.1 è associato all’interfaccia atm0 di Imola e 1.1.1.2 è il


suo nexthop
 l’indirizzo 3.3.3.1 è associato all’interfaccia ppp0 di Imola e 3.3.3.2 è il
suo 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.

Vengono mostrati due esempi che permettono di ottenere le funzioni di


 split access
 load balancing

276 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 ppp0 weight 1

A causa del meccanismo di caching delle rotte, il bilanciamento del traffico potrebbe
non essere distribuito in maniera uniforme sulle due interfacce.

Tiesse 277
IMOLA User Guide - Rev.24 Ver. 07

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 5: 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 6: 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

278 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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

Tiesse 279
IMOLA User Guide - Rev.24 Ver. 07

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

280 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

VISUALIZZAZIONE DEL SERVIZIO

Il comando per la visualizzazione del RTR è:

show rtr config|status|statistics

Specificando l’argomento config si ottiene la visualizzazione della configurazione


del servizio RTR, con un output simile a :

Tiesse 281
IMOLA User Guide - Rev.24 Ver. 07

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

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

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

IPSLA RESPONDER
E’ possibile configurare il router in modo da rispondere ai probe ricevuti mediante i
comandi:
set rtr responder local-port NNN

Per fermare il servizio responder si utilizza il comando:

282 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set rtr no-responder


La funzionalità di responder permette di effettuare le misure dei seguenti parametri:

• Jitter
• One Way Delay
• Round Trip Delay
• Packet Loss

Le risposte generate sono conformi alle funzni di IPSLA-Source (IPSLA Querier) dei
router Cisco.

Tiesse 283
IMOLA User Guide - Rev.24 Ver. 07

GESTIONE CONFIGURAZIONI
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

2 i punti di ripristino predefiniti: checkpoint-1 e checkpoint-2.

E’ possibile inoltre definire punti di ripristino personalizzati utilizzando il comando:


set checkpoint <nome>

dove <nome> è una stringa alfanumerica che identifica il punto di ripristino.


Per ripristinare la configurazione così salvata sarà sufficiente eseguire:
restore checkpoint <nome>

In ogni istante è possibile visualizzare tutti i checkpoint precedentemente creati


mediante il comando:
show checkpoint-list

o visualizzare la relativa configurazione:


show config checkpoint <nome>

Per rimuovere un punto di ripristino utilizzare il comando:


set no-checkpoint <nome>

oppure per rimuoverli tutti:


set no-checkpoint-all

284 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

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.

Per specificare con quale IP sorgente debbano essere inviati i messaggi verso il server
TFTP remoto, si usa il comando:

set tftp source <local-ip>

oppure

set tftp source loopback

per utilizzare l’indirizzo di loopback.

È 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

Tiesse 285
IMOLA User Guide - Rev.24 Ver. 07

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

286 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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.

A partire dalle versioni di sistema operativo superiori alla versione x.3.0 è disponibile
il comando:

update nos <os-name.tgz> <ip-addr> [blksize <32-65464>]

il quale scarica tramite protocollo TFTP il file <os-name.tgz> contenente una


versione completa del firmware e la installa sul router, dopo aver effettuato tutti i
controlli di integrità previsti. Il parametro opzionale blksize se specificato viene
utilizzato come block size per il trasferimento tftp.

E’ possibile specificare l’indirizzo IP da utilizzare come sorgente dei pacchetti TFTP


mediante il comando:

set tftp source <local-ipaddr>

oppure

set tftp source loopback

per specificare l’indirizzo di loopback.

E’ anche possibile effettuare il trasferimento del firmware tramite protocollo FTP


invece che TFTP mediante il comando:

update nos <os-name.tgz> <ip-addr> via-ftp login <user> password <passwd>

Tiesse 287
IMOLA User Guide - Rev.24 Ver. 07

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 nhrp on
set igmp-proxy on
set backup on
set ipsec on
ip
tc
iptables
smcroute
mii-tool
dhcprelay
vrrpd
create-tunnel
ifstate-mon
condition-mon
cpumon
detect-link-state

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

288 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

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 gre generic 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>

Tiesse 289
IMOLA User Guide - Rev.24 Ver. 07

Le rotte aggiunte direttamente mediante il comando ip hanno precedenza rispetto alle


rotte aggiunte mediante il comando set route e a qualle acquisite tramite protocolli
di routing.

PROTOCOLLO GRE
Sebbene l’help lo preveda, l’utilzzo della keyword gre all’interno di alcuni comandi
potrebbe produrre dei messaggi di errore. Questo succede ad esempio per i comandi:
dei comandi:

iptables
set redirect
set source nat
set access-list

In tal caso invece della parola gre bisogna utilizzare il valore numerico 47.

290 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ESEMPI DI CONFIGURAZIONE

DHCP SERVER
Configurazione del servizio DHCP su una delle interfacce LAN del router (es. eth0) e
distribuzione di IP address, IP Wins, Dns e Domain Info.

set dhcp-server <DHCP-POOL-NAME> interface <INTERFACE>


set dhcp-server <DHCP-POOL-NAME> start-address <IP-START-ADDRESS>
set dhcp-server <DHCP-POOL-NAME> end-address <IP-END-ADDRESS>
set dhcp-server <DHCP-POOL-NAME> router <GATEWAY-IP>
set dhcp-server <DHCP-POOL-NAME> subnet <SUBNET-MASK>
set dhcp-server <DHCP-POOL-NAME> lease-time <LEASETIME(s)>
set dhcp-server <DHCP-POOL-NAME> dns <DNS1-IP-ADDR> <DNS2-IP-ADDR>
set dhcp-server <DHCP-POOL-NAME> wins <WINS-IP-ADDR>
set dhcp-server <DHCP-POOL-NAME> directive option domain <MYDOMAIN>
set dhcp-server <DHCP-POOL-NAME> on

Nel caso in cui si avesse bisogno di specificare piu’ indirizzi WINS da distribuire, al
posto del precedente comando:
set dhcp-server <DHCP-POOL-NAME> wins <WINS-IP-ADDRESS>

e’ opportuno utilizzare il seguente:

set dhcp-server <DHCP-POOL-NAME> directive option wins <IPADDR1> <IPADDR2>

Configurando il servizio per piu’ di un <DHCP-POOL-NAME>, e’ possibile l’attivazione di


DHCP Server multipli sullo stesso apparato, ma su interfacce differenti.

Esempio di valorizzazione:

set dhcp-server pool1 interface eth0


set dhcp-server pool1 start-address 192.168.24.50
set dhcp-server pool1 end-address 192.168.24.70
set dhcp-server pool1 router 192.168.24.1
set dhcp-server pool1 subnet 255.255.255.128
set dhcp-server pool1 lease-time 864000
set dhcp-server pool1 dns 10.1.82.6 10.1.84.5
set dhcp-server pool1 directive option wins 10.1.80.38 10.1.80.39
set dhcp-server pool1 directive option domain tiesse.com
set dhcp-server pool1 on

Per utilizzare le possibili opzione del servizio DHCP si consulti il capitolo relativo.

VLAN IN MODALITÀ ACCESS


Le porte dello switch del router Imola possono essere ripartire in VLAN distinte,
ognuno con il suo indirizzo IP. Ad esempio, possiamo assegnare alla singola porta un
indirizzo IP specifico:

set switch port 1 mode access


set switch port 1 vid 10

Tiesse 291
IMOLA User Guide - Rev.24 Ver. 07

set switch port 2 mode access


set switch port 2 vid 20
set switch port 3 mode access
set switch port 3 vid 30
set switch port 4 mode access
set switch port 4 vid 40
set switch port 5 mode access
set switch port 5 vid 50
set switch on

set vlan add vid 10 interface eth1


set vlan add vid 20 interface eth1
set vlan add vid 30 interface eth1
set vlan add vid 40 interface eth1
set vlan add vid 50 interface eth1

set vlan eth1.10 ipaddr 192.168.10.1 netmask 255.255.255.0


set vlan eth1.20 ipaddr 192.168.20.1 netmask 255.255.255.0
set vlan eth1.30 ipaddr 192.168.30.1 netmask 255.255.255.0
set vlan eth1.40 ipaddr 192.168.40.1 netmask 255.255.255.0
set vlan eth1.50 ipaddr 192.168.50.1 netmask 255.255.255.0

VLAN IN MODALITÀ TRUNK


E’ possibile configurare le singole porte dello switch in modalità Trunk in modo tale
che vengano gestiti i pacchetti con il tag 802.1q. Ad esempio con i comandi:

set switch port 1 mode trunk


set switch port 1 allow vid 2
set switch port 1 allow vid 3
set switch port 1 allow vid 4

set switch port 2 mode access vid 10


set switch port 3 mode access vid 10
set switch port 4 mode access vid 10
set switch port 5 modem access vid 10
set switch on

set vlan add vid 2 interface eth1


set vlan add vid 3 interface eth1
set vlan add vid 4 interface eth1
set vlan add vid 10 interface eth1

set vlan eth1.2 ipaddr 192.168.2.1 netmask 255.255.255.0


set vlan eth1.3 ipaddr 192.168.3.1 netmask 255.255.255.0
set vlan eth1.4 ipaddr 192.168.4.1 netmask 255.255.255.0
set vlan eth1.10 ipaddr 192.168.10.1 netmask 255.255.255.0

si stabilisce che sulla porta 1 dello switch possono transitare pacchetti Ethernet
contenenti i tag (vlan id) 802.1q 2, 3 e 4 e questi saranno consegnati rispettivamente
alle VLAN eth1.2, eth1.3 ed eth1.4, mentre sulle restanti porte possono transitare i
pacchetti Ethernet senza il tag 802.1q e questi saranno consegnati all’interfaccoia
eth1.10

292 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

ADSL CON NAT DI UN IP PUBBLICO E LAN CLIENTE CON IP


PRIVATI

Viene descritta una configurazione di base per l’interfaccia ADSL (RFC 1483) con
NAT sulla Punto-Punto e rotta di default sull’interfaccia. Vengono inoltre configurati
un IP privato sull’interfaccia eth1 ed un indirizzo IP di management sull’interfaccia
eth0.

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <PRIVATE-NETMASK>


set eth1 on

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 pcr 0
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 ipaddr <PTP-IP-ADDRESS>
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl pvc atm0 default-route
set adsl pvc atm0 masquerade
set adsl on

Esempio di valorizzazione:

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 ipaddr 85.34.147.98
set adsl pvc atm0 netmask 255.255.255.252
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 pcr 0
set adsl pvc atm0 default-route
set adsl pvc atm0 masquerade
set adsl on

ADSL CON UN POOL DI IP PUBBLICI E UN POOL DI IP


PRIVATI
Viene descritta una configurazione di base per l’interfaccia ADSL con ip privato
sull’interfaccia LAN eth1 ed un indirizzo ip del pool di indirizzi pubblici
sull’interfaccia eth0.
Al fine di permettere lo scambio dati con l’esterno viene impostata una regola di NAT
per i pacchetti provenienti dalla LAN privata.

set eth0 ipaddr <PUBLIC-IP> netmask <NETMASK-IP-PUBLIC>


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

Tiesse 293
IMOLA User Guide - Rev.24 Ver. 07

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr <PTP-IP-ADDRESS>
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set iptables -t nat -A POSTROUTING -s <PRIVATE_LAN>/N -o atm0 -j SNAT --to <PUBLIC-IP>

Esempio di valorizzazione:

set eth0 ipaddr 80.21.88.177 netmask 255.255.255.240


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl description 054113517692
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr 94.94.112.186
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o atm0 -j SNAT --to 80.21.88.177

CONNESSIONE HDSL

Viene descritta una configurazione di base per l’interfaccia HDSL con ip privato
sull’interfaccia LAN eth1 ed un indirizzo ip pubblico sull’interfaccia eth0.

Al fine di permettere lo scambio dati con l’esterno viene impostata una regola di NAT
per i pacchetti provenienti dalla LAN privata.

set eth0 ipaddr <PUBLIC-IP> netmask <NETMASK-IP-PUBLIC>


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

set wan protocol frame-relay


set wan mode v35
set frame-relay baud-rate external
set frame-relay station dte
set frame-relay lmi-type <LMI-TYPE>
set frame-relay pvc pvc0 dlci <DLCI-NUMBER>
set frame-relay pvc pvc0 ipaddr <PTP-IP-ADDR> nexthop <PEER-IP-ADDR>
set frame-relay pvc pvc0 default-route
set frame-relay pvc pvc0 no-masquerade

294 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set frame-relay pvc pvc0 mtu 1500


set frame-relay on

set iptables -t nat -A POSTROUTING -s <PRIVATE-LAN>/N -o pvc0 -j SNAT --to <PUBLIC-IP>

Esempio di valorizzazione:

set eth0 ipaddr 80.21.88.177 netmask 255.255.255.240


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set wan protocol frame-relay


set wan mode v35
set frame-relay baud-rate external
set frame-relay station dte
set frame-relay lmi-type ansi
set frame-relay pvc pvc0 dlci 261
set frame-relay pvc pvc0 ipaddr 85.46.113.142 nexthop 85.46.113.141
set frame-relay pvc pvc0 default-route
set frame-relay pvc pvc0 no-masquerade
set frame-relay pvc pvc0 mtu 1500
set frame-relay on
set iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o pvc0 -j SNAT --to 80.21.88.177

GPRS SU APN PUBBLICA (NAVIGAZIONE INTERNET)

Viene descritta una configurazione di base per l’interfaccia GPRS con profilo di
connessione pubblico (Internet), con ip di management su interfaccia eth0 ed ip
privato su interfaccia LAN eth1. Al fine di permettere lo scambio dati con l’esterno
(Internet), l’interfaccia GPRS viene configurata in modo tale da effettuare PAT.

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

set gprs apn ibox.tim.it


set gprs auto-network
set gprs idle 0
set gprs rx-idle 1800
set gprs masquerade
set gprs default-route
set gprs mtu 1500
set gprs usepeerdns
set gprs debug
set gprs sgauth 1
set gprs speed 230400
set gprs pwroff-modem
set gprs on

Esempio di valorizzazione:
Tiesse 295
IMOLA User Guide - Rev.24 Ver. 07

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set gprs apn ibox.tim.it


set gprs auto-network
set gprs idle 0
set gprs rx-idle 1800
set gprs masquerade
set gprs default-route
set gprs mtu 1500
set gprs usepeerdns
set gprs debug
set gprs vjc
set gprs sgauth 1
set gprs speed 230400
set gprs pwroff-modem
set gprs on

GPRS SU APN PRIVATA CON TUNNEL GRE

Viene descritta una configurazione di base per l’interfaccia GPRS con profilo di
connessione basato su APN Privata, con ip di management su interfaccia eth0 ed ip
privato su interfaccia LAN eth1. La connessione della LAN interna privata con la
sede Master al centro viene effettuata con la configurazione di un tunnel GRE (con
KeepAlive) con rotta di default.
Per il corretto funzionamento del tunnel, l’indirizzo IP rilasciato all’interfaccia mobile
deve essere statico.

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

set gprs apn <PRIVATE-APN>


set gprs login <APN-USER> password <APN-PASSWORD>
set gprs idle 0
set gprs rx-idle 1800
set gprs mtu 1476
set gprs usepeerdns
set gprs debug
set gprs vjc
set gprs no-default-route
set gprs no-masquerade
set gprs speed 230400
set gprs pwroff-modem
set gprs no-sms-handle
set gprs on

set gre tun0 tunnel-source <GPRS-IP-ADDRESS>


set gre tun0 tunnel-destination <GRE-DESTINATION>
set gre tun0 tunnel-address <GRE-IP-ADDRESS>/30
set gre tun0 tunnel-peer <GRE-PEER-IP-ADDRESS>/30
set gre tun0 multicast

296 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set gre tun0 ttl 64


set gre tun0 mtu 1452
set gre tun0 keepalive-intval 10
set gre tun0 keepalive-retries 6
set gre tun0 on

set route host <GRE-DESTINATION> dev ppp0


set route net 0.0.0.0 netmask 0.0.0.0 dev tun0

set autocmd set gre tun0 on

L’autenticazione verso il Radius avviene sia in modalità dinamica sia CHAP che
PAP. Qualora il Radius non supporti l’autenticazione CHAP ma solo quella PAP,
allora è necessario aggiungere i seguenti comandi:

set gprs sgauth 1


set gprs directive refuse-chap

Esempio di valorizzazione:

set eth0 ipaddr 10.10.113.1 netmask 255.255.0.0


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set gprs apn intranet.tim.it


set gprs login tiesse1 password tiesse2
set gprs idle 0
set gprs rx-idle 1800
set gprs mtu 1476
set gprs usepeerdns
set gprs debug
set gprs sgauth 1
set gprs no-default-route
set gprs no-masquerade
set gprs speed 230400
set gprs pwroff-modem
set gprs no-sms-handle
set gprs on

set gre tun0 tunnel-source 172.30.16.2


set gre tun0 tunnel-destination 10.1.50.29
set gre tun0 tunnel-address 172.30.0.9/30
set gre tun0 tunnel-peer 172.30.0.10/30
set gre tun0 multicast
set gre tun0 ttl 64
set gre tun0 mtu 1452
set gre tun0 keepalive-intval 10
set gre tun0 keepalive-retries 6
set gre tun0 on

set route host 10.1.50.29 dev ppp0


set route net 0.0.0.0 netmask 0.0.0.0 dev tun0

set autocmd set gre tun0 on

Tiesse 297
IMOLA User Guide - Rev.24 Ver. 07

ISDN CON INDIRIZZO DINAMICO RICEVUTO DAL POP E NAT


SULL’INTERFACCIA ISDN

Viene descritta una configurazione di base per l’interfaccia ISDN con indirizzi ip
dinamici e NAT sull’interfaccia (PAT).

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP>


set eth1 on

set isdn dialer ippp1 eaz 999999


set isdn dialer ippp1 out-number <NUMBER-TO-DIAL>
set isdn dialer ippp1 login <ISDN-USER> password <ISDN-PASSWORD>
set isdn dialer ippp1 huptimeout 60
set isdn dialer ippp1 masquerade
set isdn dialer ippp1 default-route
set isdn dialer ippp1 dialmode auto
set isdn dialer ippp1 accept-remote-ip
set isdn dialer ippp1 no-accept-local-ip
set isdn dialer ippp1 ipaddr 0.0.0.0
set isdn dialer ippp1 on

ISDN SENZA NAT CON INDIRIZZO STATICO


Viene descritta una configurazione di base per l’interfaccia ISDN con indirizzi ip
impostati staticamente sull’interfaccia. La configurazione prevede una LAN eth0 di
management, una LAN eth1 privata e NAT sull’interfaccia (PAT).

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.251


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

set isdn dialer ippp1 eaz 999999


set isdn dialer ippp1 out-number <NUMBER-TO-DIAL>
set isdn dialer ippp1 login <ISDN-USER> password <ISDN-PASSWORD>
set isdn dialer ippp1 huptimeout 360
set isdn dialer ippp1 no-masquerade
set isdn dialer ippp1 default-route
set isdn dialer ippp1 dialmode auto
set isdn dialer ippp1 accept-remote-ip
set isdn dialer ippp1 accept-local-ip
set isdn dialer ippp1 ipaddr <IP_ISDN>
set isdn dialer ippp1 nexthop <IP_NEXTHOP>
set isdn dialer ippp1 on

ADSL CON BACKUP SU GPRS

Viene descritta una configurazione base esemplificativa per collegamento primario


ADSL pubblico con backup su gprs. Viene configurato un indirizzamento privato

298 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

interno sulla LAN eth1 ed un indirizzo ip del pool di indirizzi pubblici


sull’interfaccia eth0.

Al fine di permettere lo scambio dati con l’esterno viene impostata una regola di NAT
per i pacchetti provenienti dalla Lan privata.

set eth0 ipaddr 10.10.113.1 netmask 255.255.255.252


set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-IP-PRIVATE>


set eth1 on

set gprs apn ibox.tim.it


set gprs idle 0
set gprs rx-idle 1800
set gprs no-default-route
set gprs masquerade
set gprs mtu 1500
set gprs usepeerdns
set gprs debug
set gprs sgauth 1
set gprs pwroff-modem
set gprs off

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 no-default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr <PTP-IP-ADDRESS>
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set backup checking-ipaddr <PUBLIC-IP> via bfd through-interface atm0


set backup check-interval 30
set backup check-retries 3
set backup check-wait 5
set backup deactivate-delay 30
set backup on

set trigger backup up set gprs on


set trigger backup down set gprs off

set route net 0.0.0.0 netmask 0.0.0.0 dev atm0 distance 10


set route net 0.0.0.0 netmask 0.0.0.0 dev ppp0 distance 5

set iptables -t nat -A POSTROUTING -s <PRIVATE-LAN>/N -o atm0 -j SNAT --to < PUBLC-IP>

set autocmd set backup on


set autocmd set gprs off

Esempio di valorizzazione:

set eth0 ipaddr 2.21.172.162 netamsk 255.255.255.248


set eth0 on

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set gprs apn ibox.tim.it

Tiesse 299
IMOLA User Guide - Rev.24 Ver. 07

set gprs idle 0


set gprs rx-idle 1800
set gprs no-default-route
set gprs masquerade
set gprs mtu 1500
set gprs usepeerdns
set gprs debug
set gprs sgauth 1
set gprs pwroff-modem
set gprs off

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 no-default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr 88.34.53.2
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set backup checking-ipaddr 2.21.172.162 via bfd through-interface atm0

set backup check-interval 30


set backup check-retries 3
set backup check-wait 5
set backup deactivate-delay 30
set backup on

set trigger backup up set gprs on

set trigger backup down set gprs off

set route net 0.0.0.0 netmask 0.0.0.0 dev atm0 distance 10


set route net 0.0.0.0 netmask 0.0.0.0 dev ppp0 distance 5
set iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o atm0 -j SNAT --to 2.21.172.162

set autocmd set backup on


set autocmd set gprs off

ADSL CON BACKUP SU GPRS CON INVIO SEGNALAZIONE


BACKUP VIA SMS

Viene descritta una configurazione base esemplificativa per collegamento primario


ADSL pubblico con backup su gprs. Viene configurato un indirizzamento privato
interno sulla LAN eth1 ed un indirizzo ip del pool di indirizzi pubblici
sull’interfaccia eth0. Al fine di permettere lo scambio dati con l’esterno, viene
impostata una regola di NAT per i pacchetti provenienti dalla Lan privata. Inoltre
viene impostata la segnalazione della condizione di Backup via SMS verso un
determinato numero telefonico.

set eth0 ipaddr <PUBLIC-IP> netmask <NETMASK-IP-PUBLIC>

300 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set eth0 on

set eth1 ipaddr <PRIVATE-IP> netmask <NETMASK-PRIVATE>


set eth1 on

set gprs apn ibox.tim.it


set gprs idle 0
set gprs rx-idle 1800
set gprs no-default-route
set gprs masquerade
set gprs mtu 1500
set gprs debug
set gprs sgauth 1
set gprs pwroff-modem
set gprs sms-handle
set gprs off

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 no-default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr <PTP-IP-ADDRESS>
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set backup checking-ipaddr <IP-PUBLIC> via bfd through-interface atm0


set backup check-interval 30
set backup check-retries 3
set backup check-wait 5
set backup deactivate-delay 30
set backup on

set trigger backup up send-sms -d <TEL-NUMBER> ADSL DOWN ATTIVAZIONE BACKUP


set trigger backup up set gprs on

set trigger backup down send-sms -d <TEL-NUMBER> ADSL UP DISATTIVAZIONE BACKUP


set trigger backup down set gprs off

set route net 0.0.0.0 netmask 0.0.0.0 dev atm0 distance 10


set route net 0.0.0.0 netmask 0.0.0.0 dev ppp0 distance 5

set iptables -t nat -A POSTROUTING -s <PRIVATE-LAN>/N -o atm0 -j SNAT --to <PUBLIC-IP>

set autocmd set backup on


set autocmd set gprs off

Nel caso in cui si vuol ripetere periodicamente ogni giorno alle ore 12:05 l’invio del
messaggio SMS fino a quando la linea viene ripristinata bisogna aggiungere i seguenti
comandi:

set cron repeat-sms hour 12 min 5


set cron repeat-sms command send-sms -d <TEL-NUM> ADSL DOWN ATTIVAZIONE BACKUP

set trigger backup up set cron on


set trigger backup down set cron down

Esempio di valorizzazione:
set eth0 ipaddr 2.21.172.162 netamsk 255.255.255.248
set eth0 on

Tiesse 301
IMOLA User Guide - Rev.24 Ver. 07

set eth1 ipaddr 192.168.1.254 netmask 255.255.255.0


set eth1 on

set gprs apn ibox.tim.it


set gprs idle 0
set gprs rx-idle 1800
set gprs no-default-route
set gprs masquerade
set gprs mtu 1500
set gprs debug
set gprs sgauth 1
set gprs pwroff-modem
set gprs sms-handle
set gprs off

set adsl encap rfc1483-llc


set adsl pvc-number 1
set adsl pvc atm0 vpi 8 vci 35
set adsl pvc atm0 service UBR
set adsl pvc atm0 pcr 0
set adsl pvc atm0 default-route
set adsl pvc atm0 no-masquerade
set adsl pvc atm0 ipaddr 88.34.53.2
set adsl pvc atm0 no-nexthop
set adsl pvc atm0 netmask 255.255.255.252
set adsl on

set backup checking-ipaddr 2.21.172.162 via bfd through-interface atm0

set backup check-interval 30


set backup check-retries 3
set backup check-wait 5
set backup deactivate-delay 30
set backup on
`
set trigger backup up send-sms -d 3333333333 ADLS DOWN ATTIVAZIONE Backup
set trigger backup up set gprs on

set trigger backup down send-sms -d 3333333333 ADLS UP DISATTIVAZIONE BACKUP


set trigger backup down set gprs sms

set route net 0.0.0.0 netmask 0.0.0.0 dev atm0 distance 10


set route net 0.0.0.0 netmask 0.0.0.0 dev ppp0 distance 5

set iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o atm0 -j SNAT --to 2.21.172.162

set autocmd set backup on


set autocmd set gprs sms

QOS PER CONNESSIONE ADSL

Nella configurazione che segue viene considerato il caso di impostazione regole di


QoS su collegamento ADSL. Sulla policy non viene specificata banda, Imola assegna
la banda calcolata in fase di allineamento del cpe alla centrale.
Alla classe RT viene assegnato il traffico voce, la banda specificata tiene conto
dell’overhead atm. Viene inoltre assegnata la massima priorità (1), viene assegnato il
traffico con IPP 5 e il traffico con DSCP 46. Il traffico non classificato viene
assegnato alla classe BE, ad essa viene assegnato il 100% della banda rimanente.

set no-qos-ext

302 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

set qos-ext policy voip


set qos-ext policy voip interface atm0

set qos-ext class RT


set qos-ext class RT policy voip
set qos-ext class RT filter priority 1
set qos-ext class RT bandwidth 90
set qos-ext class RT filter match ipp 5
set qos-ext class RT filter match dscp 46

set qos-ext class BE


set qos-ext class BE policy voip
set qos-ext class BE default
set qos-ext class BE bandwidth percent 100

set trigger adsl up set qos-ext on


set trigger adsl down set qos-ext off

QOS PER CONNESSIONE HDSL

Nella configurazione che segue viene considerato il caso di impostazione regole di


QoS su collegamento HDSL. Sulla policy viene specificata una banda che tiene conto
dell’overhead. Alla classe RT viene assegnato il traffico voce, la banda specificata
tiene conto dell’overhead frame-relay e del fatto che i pacchetti voce sono piccoli.
Alla stessa classe viene assegnata la massima priorità (1) e viene assegnato il traffico
con IPP 5 e il traffico con DSCP 46. Il traffico non classificato viene assegnato alla
classe BE: ad essa viene assegnato il 100% della banda rimanente.
set no-qos-ext
set qos-ext policy voip
set qos-ext policy voip interface hdlc0
set qos-ext policy voip bandwidth 1650

set qos-ext class RT


set qos-ext class RT policy voip
set qos-ext class RT filter priority 1
set qos-ext class RT bandwidth 86
set qos-ext class RT filter match ipp 5
set qos-ext class RT filter match dscp 46

set qos-ext class BE


set qos-ext class BE policy voip
set qos-ext class BE default
set qos-ext class BE bandwidth percent 100
set autocmd set qos-ext on

CONFIGURAZIONE LOOPBACK
set loopback ipaddr <ip-address>
set loopback on

CONFIGURAZIONE SNMP
set snmp directive agentaddress <local-ip-address>

Tiesse 303
IMOLA User Guide - Rev.24 Ver. 07

set snmp community <nome-community-read> access ro


set snmp community <nome-community-rw> access rw
set snmp traphost <ip-address-manager>
set snmp trap-source loopback
set snmp no-specific-interface
set snmp on

L’opzione

set snmp directive agentaddress

deve essere ripetuta per ogni indirizzo su cui si vogliono ricevere richieste SNMP.

CONFIGURAZIONE TACACS
set tacacs authhost <ip-address-server>
set tacacs retries 2
set tacacs timeout 2
set tacacs key <password>
set tacacs source loopback
set tacacs on

E’ possibile specificare più di un server:

set tacacs authhost 192.168.1.1 192.168.1.2

Per attivare l’Accounting:

set tacacs do-accounting

Per attivare l’Autorizzazione:

set tacacs do-authorization

CONFIGURAZIONE RADIUS
set radius authhost <ip-address-server>
set radius accthost <ip-address-server>
set radius retries 2
set radius timeout 1
set radius secret <ip-address-server> <password>
set radius source loopback
set radius on

La porta di default utilizzata è 1812 per le richieste di Autenticazione e 1813 per le


richieste di accounting.
E’ possibile specificare più di un server e utilizzare una porta diversa da quelle di
default usando la seguente sintassi:

set radius authhost 192.168.1.1:1645 192.168.1.2:1645


set radius accthost 192.168.1.1:1646 192.168.1.2:1646

304 Tiesse
IMOLA User Guide - Rev.24 Ver. 07

CONFIGURAZIONE BANNER

set banner .
set banner .
set banner . ....:::: This is a banner message Title ::::....
set banner Banner Subtitle
set banner -----------------------------------------------
set banner .
set banner .
set banner . Banner row 1
set banner . Banner row 2
set banner . Banner row 3
set banner . Banner row 4
set banner .
set banner .
set banner . -- Vietato ogni accesso non autorizzato vietato --
set banner . --------- Unauthorized access is denied -----------
set banner .
set banner on

Il banner compare nel momento in cui si effettua la sessione Telnet verso il router,
purchè sia stato configurato anche il Radius oppure il Tacacs.

Tiesse 305