User Ref Oneos Book Admin
User Ref Oneos Book Admin
V 5 . 2
A D M I N U S E R G U I D E
( E D I T I O N 2 1 )
ONEOS V5.2 ADMIN USER GUIDE (EDITION 21)
OneAccess Networks
Pentagone Plaza
92140 Clamart
FRANCE
The law of 11 March 1957, paragraphs 2 and 3 of article 41, only authorizes, firstly, "copies and reproductions strictly reserved for use by copyists
and not for general use" and, secondly, "analyses and short quotations for the purpose of example and illustration". Therefore, "any representation
or reproduction, entire or partial, made without the consent of the author or his representatives is illegal” (paragraph 1 of article 40).
Any such representation or reproduction, made in any manner whatsoever, would therefore constitute an infringement of the law as sanctioned by
Information contained in this document is subject to change without prior notice and does not constitute any form of obligation on the part of
OneAccess.
OneAccess and the distributors can in no case be held responsible for direct or indirect damage of any kind incurred as a result of any error in the
software or guide.
Every care has been taken to ensure the exactitude of information in this manual. If however you discover an error, please contact OneAccess
1 I N T R O D U C T I O N
This edition of the OneOS Book corresponds to the V5.2 software releases. It is also available for all
previous software releases of OneOS according to the features matrix described hereafter.
The OneOS software developed for use with the ONE product range offers an extensive range of features
designed to provide a complete & highly powerful range of multi-service access routers:
• Full IP router with NAPT, Security, and Quality of Service management
• Support of voice for analog and ISDN S0/T0 terminals using Voice over IP and Voice over ATM
• Interworking of data protocols (FR, X.25, PAD, XOT, X.31)
• Application layer management tools (WAN Optimization)
• Advanced management tools based on CLI (Command Line Interface), SNMP, FTP/TFTP
This document is the OneOS user guide for admin functions of the OneOS-based range products.
Eight other user guides and two global indexes are available:
o OneOS – Bridging & LAN User Guide
o OneOS – Basic IP User Guide
o OneOS – Advanced IP User Guide
o OneOS – WAN User Guide
o OneOS – VoIP User Guide
o OneOS – VoATM & CES User Guide
o OneOS – IBC User Guide
o OneOS – Applications User Guide
o Index of OneOS User Guides (global table of contents)
o Index of CLI of OneOS User Guides (global list of CLI commands)
The following table is a resource providing, edition by edition, the released features. The table was done
as of the V3.5R2E3 software release. For simplification, the indicated software release shows the
presence of a feature in a given software release starting with V3.5R2E3. It should be noted that most
features were available in earlier versions.
The table also shows in which edition of the OneOS book a feature was added to the User Guide, starting
with Edition 16.
Present at Added in
Main Function Feature
least in: UG:
File system Checking downloaded SW and boot integrity V3.5R2E3
Dual SW image boot V3.5R2E3
File transfer via FTP client V3.5R2E3
File transfer via TFTP client V3.5R2E3
TFTP server for file uploading V4.1R5E6
Download and extract a TAR archive in file system V3.7R11E14
HTTP client over IPv6 V5.1R2E5
Limit the transfer from authorized TFTP servers by means V5.1R5 Edition 16
of an access list
When copying files to the file system, file name must be Edition 17
less than 39 characters.
File encryption / decryption commands added; refer to V5.2R1 Edition 21
2.3.3.1 Management of files and directories.
General Command output filtering with the ‘|’ command V3.5R2E3
management Command for checking integrity of a downloaded boot or V3.5R2E3
functions software image
Password recovery V3.5R2E3
Delayed reboot V3.5R2E3
Restore factory settings command V3.5R2E3
Banner (before/after logging in) up to 230 characters V3.5R2E3
Banner (before/after logging in) up to 9200 characters V4.3R2E2
Global statistics screen V3.5R2E3
CPU load statistics V4.2R5E6
show ip interface brief command V3.5R2E3
Logging to a syslog server V3.5R2E3
Syslog message at startup V4.3R4E24
Blacklist management (console, tshell, telnet, SSH, web) V4.2R5E2
Command blacklist attempts added V5.2R1E1
Limiting broadcast, multicast, unknown unicast traffic V5.2R1E1
Displaying CPU and memory usage per system task V5.1R5 Edition 16
Restore factory settings while preserving saved V5.2R1 Edition 16
configuration
Limiting broadcast, multicast, unknown unicast traffic by V5.2R1 Edition 16
percentage of bandwidth
List of managed events added in Annex A V5.2R1 Edition 16
CPU load statistics for every CPU core individually V5.2R1 Edition 16
User passwords are encrypted and stored in a more secure V5.2R1 Edition 17
way. Refer to 2.20 User Management.
Present at Added in
Main Function Feature
least in: UG:
Monitoring the level of free memory. V5.2R1 Edition 18
Refer to 2.4.4 Monitoring of Free memory.
power redundancy-mode command to activate dual V5.1R5 Edition 19
power supply function, on devices with 2 power inputs;
refer to 7 Power Redundancy.
Date/Time Manual date/time setting V3.5R2E3
Clock offset based on time zone and summer time V3.5R2E3
Synchronization with an NTP server (broadcast mode or V3.5R2E3
not)
Setting of SNTP source address (in non-broadcast mode) V3.5R2E3
SNTP server V4.2R3E6
IPv6 SNTP client V5.1R2E5
Added source option to the sntp-server unicast V5.2R1 Edition 18
command; refer to 2.24.5 SNTP Server.
Configuration Check SIP gateway registration to trigger configuration V3.7R10E3
Recovery recovery
Check ping status to trigger configuration recovery V3.7R10E3
SNMP Version 1, version 2C V3.5R2E3
Multiple read-write communities V3.5R2E3
Restricting SNMP access via IPv4 access-lists V3.5R2E3
Setting of SNMP source address V3.5R2E3
SNMP v3: DES/3DES/no encryption, SHA/MD5 V3.5R2E3
authentication
SNMP views V3.5R2E3
SNMP informs (acknowledged traps in SNMP v3) V3.5R2E3
Configuration of SNMP chassis-id, contact and location V3.5R2E3
Restricting SNMP access via IPv6 access-lists V5.1R5E4
SNMP MIBs: check OneOS software release notes V5.1R2E5
SNMP v3 user creation: AES128|192|256,3DES encryption V5.1R5 Edition 16
SNMP v3 user storage: in snmpv3_users.log or at the end V5.1R5 Edition 19
of the configuration
Traces and Event function (logging of state changes) to a syslog V3.5R2E3
logging server, SNMP traps, console/file logging
Logging of configuration history V3.5R2E3
Trace and debug function (logs: buffered, syslog, console, V3.5R2E3
file)
Possible to generate a log and send syslog messages for V5.2R1 Edition 17
successful and failed login attempts.
Refer to 2.12.6 Reporting login attempts.
Ping/traceroute Ping with source address setting V3.5R2E3
Extended ping V3.5R2E3
Ping for IPv6 V5.1R2E5
Traceroute with source address setting V3.5R2E3
Traceroute for IPv6 V.5.1R2E5
Device can reboot if a ping is not answered; V4.3R4 Edition 18
refer to 2.6.8 Reboot on no answer to a ping.
Telnet Telnet client. Configurable port and source address V3.5R2E3
Clear session of another user V3.5R2E3
Setting up an access-list to restrict access to the V3.5R2E3
embedded server
Telnet client over IPv6 V5.1R2E5
Telnet server: configurable timeout, attachment to one or V3.5R2E3
more interface and telnet server access restriction by an
ACL
Present at Added in
Main Function Feature
least in: UG:
Telnet server over IPv6 V5.1R2E5
Possibility to disable Telnet completely V5.2R1E1
SSH SSH server version 2 V3.5R2E3
Configurable DSA signature length V3.5R2E3
Enabling/disabling the SSH server V3.5R2E3
Attaching the SSH server to one or more interfaces V3.5R2E3
Attaching the SSH server to an ACL for access restriction V3.5R2E3
SSH remote "exec telnet" command V4.2R5E15
SSH local port forwarding V4.3R2E2
Initiating a SSH session as SSH client V5.1R5 Edition 16
SSH server can handle any CLI command inside a SSH V5.2R1 Edition 17
session; refer to 2.15.1.5 Handling CLI commands entered
remotely.
SSH client: optional destination port, source interface and V5.2R2 Edition 21
VRF added in command; refer to 2.15.2.12 Initiating a SSH
session as SSH client.
Web HTTP server V3.5R2E3
Configurator HTTPS server V4.2R2E2
Web downloading/uploading restriction V4.2R2E2
HTTP proxy V4.2R3E6
HTTPS certificate management V4.2R4E2
Command http-server user add expanded: V5.1R5 Edition 19
possibility to use serial number as password
Packet Filter and log packets of an interface V3.5R2E3
capturing Saved captured packets in a pcap file V3.5R2E3
Capture of 802.11 frames V4.2R3E6
Send captured packets to a remote capture server V5.1R5 Edition 16
AAA, Local Configuration of local users V3.5R2E3
user database Support of 15 privilege levels V3.5R4E3
and role-based
Modification of default command privilege level (‘privilege’ V3.5R2E3
CLI
command)
RADIUS based user authentication V3.5R2E3
RADIUS over IPv6 V5.1R2E5
TACACS+ based user authentication V3.5R2E3
Command authorization via TACACS+ servers V3.5R2E3
TACACS+ accounting (start-stop signal for commands, V3.5R4E3
stop-only signal for exec session)
TACACS+ over IPv6 V5.1R2E5
Vendor ID included in AAA authentication request to a V5.2R1 Edition 17
RADIUS server. Refer to 2.23AAA (Authentication,
Authorization and Accounting).
Possibility to use a maximum key length of up to 55 V5.2R1 Edition 18
characters;
refer to 2.23.3.1 TACACS+ Client Configuration.
Possibility to show and clear statistics per configured V5.1R5 Edition 19
TACACS+ server; refer to 2.23.5 Show and Debug
Functions.
SIP TLS SIP TLS - Show certificates; refer to 2.28 Certificates V5.2R1 Edition 17
Certificates management.
Public Key Infrastructure (PKI) V5.2R1 Edition 17
Self-signed server certificate V5.2R1 Edition 17
Certificate signing request V5.2R1 Edition 17
Certificate import V5.2R1 Edition 17
Revocation checking V5.2R1 Edition 17
Present at Added in
Main Function Feature
least in: UG:
Certificates Show certificates V4.2R5E2
Public Key Infrastructure (PKI) V4.2R5E6
Self-signed HTTPS server certificate V4.2R5E6
Certificate signing request V4.2R5E6
Certificate import V4.2R5E6
Use of a trust-point for revocation checking V4.3R3E2
Performance ICMP echo probe: measuring RTT and packet loss V3.5R2E3
Measurement ICMP echo configuration via CLI or SNMP V3.5R2E3
Probe (SLA
Path echo probe (configuration by CLI and SNMP) V3.5R2E3
Monitor)
Path jitter probe (configuration by CLI) V3.5R2E3
RTR responder V3.5R2E3
History of the last measurements V3.5R2E3
Measurement result distribution to form statistics V3.5R2E3
Reaction triggers V3.5R2E3
RTR Probe based on UDP echo added V5.2R1 Edition 16
Auto-update DHCP method: Automatic software download V3.5R4E3
DHCP method: Automatic configuration download V3.5R4E3
Auto-update via http V3.7R11E14
DHCP option 160 for software, configuration, file and TAR V5.2R1 Edition 16
file auto-update
Possibility to enter username and password for V5.2R1 Edition 21
configuration, software and file update;
refer to 3.2Auto-update Configuration
EEM applet execution after successful completion of V5.2R1 Edition 21
resource update: post-update-action applet <id>;
refer to 3.2.3 File Update and 3.2.4 TAR File Update.
Section added: 3.1.7 Behavior with a HTTPS server. V5.2R1 Edition 21
CWMP (TR-69) Download RPC: configuration, OS, web pages V4.2R2E2
Configuration download in add-in or overwrite mode
Upload RPC V4.2R2E2
Inform trigger events: periodic, boot, bootstrap, request V4.2R2E2
download
Reboot RPC V4.2R2E2
Factory Reset RPC V4.2R2E2
Get RPC Methods RPC V4.2R2E2
Schedule Inform RPC V4.2R2E2
TR-69 Pass-Through (TR-111) V4.2R2E2
STUN client configuration V4.2R2E2
Netbooster update via TR069; refer to 4.1.4.1.4. V5.2R1 Edition 21
Event-driven Object tracking function V5.1R5E1
CPE Tracking of the state of an RTR probe, of the IP routing V5.1R5E1
configuration state of an interface, of the state of a VRRP instance
Tracking of a list of objects V5.1R5E1
Embedded Event Manager (EEM) V5.1R5E1
EEM initial delay configuration V5.1R5E1
EEM applets V5.1R5E1
Dimensioning of EEM increased V5.2R1 Edition 16
-Up to 99 objects can be tracked simultaneously.
-Up to at least 30 EEM applets can be configured
simultaneously.
-At least 60 CLI commands are allowed within an applet.
Present at Added in
Main Function Feature
least in: UG:
EEM v2-Phase 1; applet exec on timer event, pattern V5.2R1 Edition 17
matching in CLI output, condit. exec within an applet).
Refer to 6.5 Embedded Event Manager Configuration.
EEM v2-Phase 2; applet exec on cron entry; applet exec V5.2R1 Edition 18
on syslog event; Regular Expression matching updated;
sending syslog message in applet, ....
Refer to 6.5 Embedded Event Manager Configuration.
Tracking of the state of an IP route; V5.2R2 Edition 20
refer to 6.4.5 Tracking the state of an IP route.
Sending an email notification in case of a LTE event; V5.2R2 Edition 21
refer to section 6.5.2.9.
Tracking the state of a MEP; V5.2R1 Edition 21
refer to 6.4.6 Tracking the state of a MEP.
RMON RMON mechanism added; refer to 2.11 RMON Mechanism V5.2R2 Edition 21
2 S Y S T E M M A N A G E M E N T
OneOS offers an embedded file system for software and configuration files. It is possible to save several
software releases and configuration files. When the device is started up, the boot software reads the
application software file (via the file system), decompresses this software image and launches the
application software and the configuration file.
The OneOS-based router provides interfaces for device management:
• Console Port: Asynchronous port, used primarily for access to the Command Line Interface (CLI) for
configuration and management, and optionally for using embedded debugging.
• Ethernet Port: Enables connection of a PC for configuration via Telnet or the downloading/uploading
of files with TFTP/FTP. The IP address of the port is configurable with the CLI. It is also possible to
manage configuration or file transfers via the second Ethernet port or remotely via IP over ATM.
Note: for security reasons, it is strongly recommended that you change the default username and
the default password on the first connection to the device (refer to 2.20).
The device is delivered with OneOS software and a default configuration file. Two methods can be used to
enter into the configuration CLI:
Username: admin
Password: admin
CLI>
2 – Connect to the FastEthernet 10/100 port (or to Ethernet 10Base-T port of ONE400). For routers with an
embedded switch, use the Fast Ethernet (port 0/0) on the right-hand side (port 0 on left-hand side for
ONE60) and use a Telnet client with the following default factory settings:
• IP address: 192.168.1.10
• Username = admin Password = admin
Note: unauthorized connection attempts are subject to blacklisting (see 2.29).
While entering CLI mode it is possible to read, modify or create a configuration and access the file system
(see next paragraphs).
The prompt (CLI in the example) can be changed using the following command:
CLI> hostname <newname: string 1..64>
Warning: the prompt may be truncated, depending on the context, when the hostname string gets a
high length.
The console port is enabled and functions with the following parameters: 9600 bps, 8 bit-encoding, No
parity check, 1 Stop bit, No flow control.
After an inactivity period, the user is prompted to enter its login and password again. By default, the
timeout is 10 minutes. To configure the console timeout, the command in global configuration mode is:
CLI(configure)> console timeout <seconds>
For security reason, it is sometimes desirable to forbid access to the system console port. From the
management center, we can use "telnet" or "FTP" to change the device configuration and disable the
console port with the following command:
CLI> console disable-input
To re-enable the console port, use the following command (via Telnet for example):
CLI# console enable-input
Warning: this function is only available on selected devices and needs a specific console cable to
work properly. Refer to OneAccess Customer Support for more information.
By default, the console session is not automatically logged out when the console cable is disconnected.
To enable automatic logging out of the console session when the console cable is disconnected, use the
following command in global configuration mode:
CLI(configure)> console loop-check enable
To disable the function, use the following command in global configuration mode:
CLI(configure)> console loop-check disable
2.3.1 Introduction
2.3.2 F i l e S ys t e m s L a yo u t
2.3.3 F i l e S ys t e m C o m m a n d s
Note that, when copying files to the file system of a OneOS device, the file name must be less than 39
characters.
• CLI commands are available for the management of files and directories on the disk file system.
• The following commands can be entered in exec mode as well as in configuration mode.
• Without parameter, the following command displays the drive in use (flash or ramdisk).
With parameter, the user can change the current device:
CLI> devs [flash | ramdisk]
• To display the current working directory, initialized when a CLI session is started to the root of the
current device, use the following command:
CLI> pwd
• To create a new directory inside the current directory, use the following command:
CLI> mkdir <directory-name>
• To list files and directories inside the current directory, use the following command:
CLI> ls
• To remove a directory and all files and sub-directories, use the following command:
CLI> rmtree <directory-path>
• To verify if the file system is corrupted, and optionally to correct the detected errors, use the following
command:
CLI> chkdsk { flash: | ramdisk: } [ -silent | -verbose | -v ]
[ -f | -check_only ]
• To display the available devices and optionally their status, use the following command:
CLI> show device [status { flash: | ramdisk: }]
• To encrypt a file on the file system of the device, use the following command:
CLI> encrypt <source_file> <target_file> aes [key <key>]
The source file and / or the destination file can be a local file, or a file on a TFTP server, or a file on a
FTP server, or a file on a HTTP server, as described below.
• To copy local file1 toward local file2:
CLI> copy <file1> <file2> [<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
TFTP server
• To download file1 from a TFTP server and save it under local file2:
CLI> copy tftp://<tftp_server>/<file1> <file2>
[<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
• To download TAR file1 from a TFTP server and save it under local file2:
CLI> copy tftp://<tftp_server>/<file1>.tar <file2>
[<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
• To upload local file1 to a TFTP server and save it as file2 on the server:
CLI> copy <file1> tftp://<tftp_server>/<file2>
[<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
FTP server
• To download file1 from a FTP server and save it under local file2:
CLI> copy ftp://<login>:<password>@<server_IP-address>/<file1> <file2>
[<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
• To download a file from an IPv4 HTTP server (if you need to include the "?" character in the URI, the
HTTP server
• To download a file from an IPv6 HTTP server (warning: the HTTP URI is encoded with IPv6 address
between brackets as explained in RFC 2732):
CLI> copy http://<ipv6-in-brackets>[:<port>]/<file1> <file2>
[<source-interface> <unit> | <IP-source>]
[silent] [vrf <vrf-name>]
2.3.3.3 Examples
CLI> cd /
CLI> pwd
/
CLI> ls
Listing the directory /
BSA/ 2048
ibc/ 2048
CWMP2.log 615
telnet2.log 3723
snmpv3_engine.log 51
telnet1.log 3612
password 43
CWMP1.log 188
CLI> cat snmpv3_engine.log
engine = 12 8000338703000012ef417f97
boots = 66.0.0 Atm 0.1
1. Read the bsaBoot.inf file to read the current location and name of the software:
CLI> cd BSA
CLI> cat bsaBoot.inf
flash:/BSA/binaries/OneOs
flash:/BSA/config/bsaStart.cfg
2. Run a TFTP server on a PC (IP address IP = 10.10.10.1) and enter the following command:
CLI> cd BSA/binaries
CLI> copy OneOs OneOs.sav
CLI> copy tftp://10.10.10.1/c:\temp\OneOs.ZZZ OneOs
To display additional details of the router hardware, enter the following command:
CLI> show product-info-area
To show the actual configuration (the running-config) of the OneOS-based router, enter the following
command:
CLI> show running-config
This command, like all show commands, can be used with filtering parameters to limit the number of lines
that will be displayed.
Use the following command to display only the lines that contain word (in that case the string word must
follow immediately the pipe character – with no space in between):
CLI> show running-config |<word>
Use the following forms of the command to use more filtering possibilities (in that case a space must follow
the pipe character).
CLI> show running-config | {begin|beginat <n>|include|exclude} <word>
Use | begin <word> to display starting from the first line that contains word.
th
Use | beginat <n> <word> to display from the first line that contains the n occurrence of word.
Use | include <word> to display only the lines that contain word.
Use | exclude <word> to display only the lines that do not contain word.
The running configuration is by default displayed in its shortest format with no extra lines.
Use the following command in global configuration mode to add separators (!) between logical groups of
commands (see an example below):
CLI> configure terminal
CLI(configure)> config-management
CLI(config-management)> [no] add-separator
CLI(config-management)> exit
CLI(configure)> exit
CLI>
Use the no form of the command to display again the shortest format.
Example:
Without separator (no add-separator) (default) With separator (add-separator)
show running-config show running-config
Building configuration... Building configuration...
To display the CPU and memory usage per system task, use the following command:
CLI> show system tasks <delayReport>
• This command reports CPU and memory task usage during 5s (default value).
• <delayReport> is the sampling period for the task monitoring, expressed in seconds; the default
value is 5 seconds.
The following is an example of what the show system tasks command displays:
vxTarget>show system tasks
Waiting 5s ... collecting tasks activities informations
vxTarget>
NAME ENTRY TID PRI total % (ticks) delta % (ticks)
-------- -------- ----- --- --------------- ---------------
tLogTask 7bebf00 0 0% ( 0) 0% ( 0)
tYieldTask 7b31d30 0 0% ( 0) 0% ( 0)
tNetSTask 7b31350 0 0% ( 0) 0% ( 0)
tMNTTask 7b23420 0 0% ( 0) 0% ( 0)
tMSTTask0 7225b60 0 0% ( 0) 0% ( 0)
tMSTTask1 72238d0 0 0% ( 0) 0% ( 0)
tMSTTask2 7221640 0 0% ( 0) 0% ( 0)
tMSTTask3 7057520 0 0% ( 0) 0% ( 0)
tExcTask 7bee890 0 0% ( 0) 0% ( 0)
VOICEwd 7189928 1 0% ( 0) 0% ( 0)
tShowTask 7dcd118 5 0% ( 1) 0% ( 1)
oaMontNet 7b30970 10 0% ( 0) 0% ( 0)
oaOamRun 70b7138 48 0% ( 0) 0% ( 0)
tPolTask 7be75b8 49 0% ( 0) 0% ( 0)
tNetTask 7b2e6e0 49 0% ( 0) 0% ( 0)
tSnmpTrap 721d698 49 0% ( 0) 0% ( 0)
tPoll oaSysPollT 7bfefb8 50 0% ( 0) 0% ( 0)
802.3ah OAM 7bf6d48 50 0% ( 1) 0% ( 1)
SALTask 7b28bb8 50 0% ( 0) 0% ( 0)
tTelnetd 728a6d0 50 0% ( 0) 0% ( 0)
SYS_PPP_D_1 7282008 50 0% ( 0) 0% ( 0)
SYS_PPP_C_1 727d550 50 0% ( 0) 0% ( 0)
PPPOE_FRWK_D 725cb80 50 0% ( 0) 0% ( 0)
PPPOE_FRWK_C 72580c8 50 0% ( 0) 0% ( 0)
DSL_SYS_FRWK 72456f0 50 0% ( 0) 0% ( 0)
DSL_SYS_FRWK 7240c38 50 0% ( 0) 0% ( 0)
tAtmMgmtTask 7229e20 50 0% ( 0) 0% ( 0)
tSnmpTmr 721f258 50 0% ( 0) 0% ( 0)
tSnmpd 7219408 50 0% ( 0) 0% ( 0)
tSnmpd6 720ebc0 50 0% ( 0) 0% ( 0)
tISM 7174610 50 0% ( 0) 0% ( 0)
SM 70d5800 50 0% ( 0) 0% ( 0)
NSCC 70d1000 50 0% ( 0) 0% ( 0)
PHDL 70cc800 50 0% ( 0) 0% ( 0)
V5 70c8000 50 0% ( 0) 0% ( 0)
APPL 70c4800 50 0% ( 0) 0% ( 0)
PPP_HDLC_D_4 70868a0 50 0% ( 0) 0% ( 0)
PPP_HDLC_C_4 7081e00 50 0% ( 0) 0% ( 0)
tMpSendQ 7072d80 50 0% ( 0) 0% ( 0)
tMpRxQ 706cb00 50 0% ( 0) 0% ( 0)
oacTelnetD 7066648 50 0% ( 0) 0% ( 0)
rtd 7007828 50 0% ( 0) 0% ( 0)
trLogTask 6fdea68 50 0% ( 0) 0% ( 0)
trShowTask 6fd8590 50 0% ( 0) 0% ( 0)
trMemTask 6fd20b8 50 0% ( 0) 0% ( 0)
trSlogTask 6fcbbe0 50 0% ( 0) 0% ( 0)
evLogTask 6fba1a0 50 0% ( 0) 0% ( 0)
evShowTask 6fb4958 50 0% ( 0) 0% ( 0)
evMemTask 6faf110 50 0% ( 0) 0% ( 0)
evSmsTask 6fa98c8 50 0% ( 0) 0% ( 0)
evTrapTask 6fa4080 50 0% ( 0) 0% ( 0)
evStartTask 6f9e838 50 0% ( 0) 0% ( 0)
evStopTask 6f98ff0 50 0% ( 0) 0% ( 0)
evSlogTask 6f937a8 50 0% ( 0) 0% ( 0)
L2TP 6f8dae0 50 0% ( 0) 0% ( 0)
oaAdslAmazon 6f82bd8 50 0% ( 0) 0% ( 0)
tRnis 6f72ad8 50 0% ( 0) 0% ( 0)
tMLPPP 6f6c598 50 0% ( 0) 0% ( 0)
Telnetd 6f1c3f8 50 0% ( 0) 0% ( 0)
CONSOLE 6ef77e8 50 0% ( 0) 0% ( 0)
paad 6eeb288 50 0% ( 0) 0% ( 0)
tEEMTask 6f61978 50 0% ( 0) 0% ( 0)
tPstn 6ebadc8 50 0% ( 0) 0% ( 0)
PDSTASK 626eb78 50 0% ( 0) 0% ( 0)
CMS2 slot 6f8a548 55 0% ( 0) 0% ( 0)
tMpSendQ 726b860 80 0% ( 0) 0% ( 0)
tMpRxQ 7266d78 85 0% ( 0) 0% ( 0)
tTffsPTask 7be7fc8 100 0% ( 0) 0% ( 0)
tDcacheUpd 71d2f10 250 0% ( 0) 0% ( 0)
DataCollecti 6f7db28 250 0% ( 0) 0% ( 0)
tIdle oaSysIdleT 7bffdb0 255 99% ( 494) 99% ( 494)
KERNEL 0% ( 0) 0% ( 0)
INTERRUPT 0% ( 1) 0% ( 1)
IDLE 0% ( 0) 0% ( 0)
TOTAL 100% ( 497) 100% ( 497)
By adding the following CLI in the configuration file, the router will monitor the level of free memory:
CLI (configure)> memory free low-watermark <threshold_low>
<threshold_high>
• <threshold_low> and <threshold_high> are integer values that set the memory threshold in
percentage of free memory.
• When the available memory falls below this threshold, a syslog notification message is triggered:
RAM usage low watermark [Class: System]
• When the available memory rises above this threshold, a syslog notification message is triggered:
RAM usage high watermark [Class: System]
2.5 START-UP
A file, bsaBoot.inf in directory BSA is used on start-up to load and execute the OneOS software and to
run the startup configuration file.
For example, in the bsaBoot.inf file 2 lines are written:
flash:/BSA/binaries/OneOs
flash:/BSA/config/bsaStart.cfg
The first line (OneOs) is the application software image file and the second line (bsaStart.cfg) is the
configuration file used on start up.
It is possible to change the content of the bsaBoot.inf file by using the following commands.
To change in the bsaBoot.inf file the application software image file name:
CLI> boot software image <full-pathname-OneOS>
If the startup configuration file is not present the device starts up with a default configuration.
Note: the software image file and the configuration file can be uploaded / downloaded to and from a server
using the file system commands depicted in 2.3.
The Command Line Interface enables the user to configure and to fully manage the OneOS-based router
with an easy-to-use interface. Modifications made to the parameters are applied immediately after
checking parameter consistency and validity. The CLI is accessed via a Telnet session (locally or
remotely) or via the Console serial port.
A shell/debug interface is accessible from the console interface by entering the command tshell on the
CLI (after entering the shell interface, the CLI command can be used to return to the CLI). The shell/debug
interface is outside the scope of this document and its usage is only intended for OneAccess support and
development team.
Note: unauthorized connection attempts are subject to blacklisting (see 2.29).
The configuration session is accessible via a Telnet client session from a PC (or from a UNIX station) or
from another connected OneOS-based router (see 2.14.1 for more information) using the following
command:
CLI> telnet { <ipv4-address> | <ipv6-address> | <name> }[<port>]
[<interface> <unit>] [vrf <vrf-name>][ipv4|ipv6]
[unset-crlf]
• Warning: name resolution is not currently supported in IPv6. The keywords ipv4 and ipv6 are
meant to force name resolution in either IPv4 or IPv6.
• If the optional arguments <interface> <unit> are provided, the source address of sent Telnet
packets will be forced to the IPv4/IPv6 address of the selected interface (depending of IP address
format or DNS resolution).
• With unset-crlf added to the command, the Telnet session uses CR as end of line delimiter.
Without unset-crlf, the Telnet session uses CRLF as end of line delimiter.
• When first configuring the device, it is recommended to connect a PC to the 10/100base-T interface of
the OneOS-based router (or the 10base-T interface of the ONE400) and use as target its
corresponding IP address with default value (factory setting) 192.168.1.10. The user and password
defined by default are admin and admin. (If the Telnet client is run from a PC under Microsoft
Windows, it is best to select terminal options as "VT100 arrow").
• By default, on the target, the Telnet server is attached to any interface with an IP address. To restrict
the access to the target (see 2.14.2 for more information), a bind command must be entered.
• Note: unauthorized connection attempts are subject to blacklisting (see 2.29).
• After logging in and entering a CLI session the CLI offers a similar interface as a "UNIX shell" with a
hierarchically defined tree of commands. It offers history and command editing, i.e.:
o CTRL-n or upper arrow: get next command
o CTRL-p or lower arrow: get previous command
o CTRL-b or left arrow: move cursor left
o CTRL-f or right arrow: move cursor right
o CTRL-d or delete key: delete a character
o ESC-b: move one word backward
o ESC-f: move one word forward
• The configuration commands are available after entering the configure terminal command that
makes the CLI enter in global configuration mode. To return to the initial CLI state, either enter exit
when the CLI is in global configuration mode or enter end at any stage of the device configuration.
• For each command there is an associated help string using the “?” character. The “?” character can
also be typed in a command to display command arguments.
For example:
CLI> configure terminal
CLI(configure)> interface loopback 1
CLI(config-if)> ?
bandwidth - Set bandwidth informational parameter
crypto - Encryption/Decryption commands
default - Set a parameter to its default value
description - Interface specific description
exit - Exit from interface configuration mode
ip - Interface IP configuration commands
ipv6 - Configure IPv6
no - Negate a command
service-policy - Configure QoS service policy
shutdown - Shutdown the interface
<cr>
CLI(config-if)>
By default only one configuration session (under configure terminal) is allowed at a time.
To allow more than one configuration session at a time (up to 10, one local console session plus 9 other
sessions e.g. 9 Telnet sessions), use the following command in global configuration mode:
CLI(configure)> set multiple-conf-sessions enable
To return to the default behavior and disallow multiple configuration sessions at a time:
CLI(configure)> set multiple-conf-sessions disable
The user can save the running configuration (volatile storage) into the startup file for boot specified in the
file bsaBoot.inf, or into a specific file when specified with the CLI save command (after leaving CLI
configuration mode):
CLI> save running-config [to <filename>]
This command has the same effect as the write mem command.
An event message can be triggered when saving the running configuration using the following command in
global mode (refer to 2.12.2 for more information about event filters):
CLI> event filter add adm config config-upd <action>
To program an automatic and periodic backup of the saved configuration file (see above) and optionally of
the IBC database files (see "OneOS – IBC User Guide" document), use the following commands in global
configuration mode:
CLI(configure)> config-management
CLI(config-management)> backup-copy [configuration-and-database]
{ daily | weekly | monthly } <HH:MM> [on-save]
CLI(config-management)> exit
CLI(configure)>
o The configuration file and optionally the IBC database files will be backed up in the
/BSA/config directory every day or week (every 7 days) or month (every 30 days) at time
HH:MM.
The backup command can be entered up to three times (daily + weekly + monthly) for
each option (configuration file only – default – or configuration and IBC database files).
Only one backup file (the last one) is kept per time period. It is a .bck text file for the
configuration file only and a .tar file for configuration and database backup. See example
below.
o on-save. This option has been implemented in order to preserve the saved configuration after
a restore:
To automatically create a backup copy of the configuration when it is saved, use the following command
CLI(config-management)> backup-copy on-save
The backup-copy on-save command will copy the configuration that is saved by any process (such as
the 'save running config' command, or CWMP, or ...) to the backup location that has been set with the
path command, described next.
The file is saved with a name containing the date and time.
Up to 10 backup copies can be saved. When 10 copies are saved, the 11th save operation removes the
oldest saved backup copy.
To stop the creation of a backup copy with each save operation use the following command:
CLI(config-management)> no backup-copy on-save
To set the location where the backup copies must be saved, use the following command:
CLI(config-management)> path <path-name>
The <path name> can for instance be /factory-backup, or any other directory.
The default path name is /BSA/config. To return to the default setting, use the following command:
CLI(config-management)> default path
Two additional commands are available that can be used as information when retrieving the backed up
files (these commands appear in the backed up configuration file):
CLI(config-management)> compatibility-index <0-255>
CLI(config-management)> web-compatibility-index <0-255>
Example:
CLI> ls
Listing the directory /BSA/config
. 0
.. 0
Auto1-Yesterday-310710-09h15am.bck 1032
Auto2-Lastweek-280710-09h15am.bck 1032
Auto3-Lastmonth-270710-09h15am.bck 1032
bsaStart.cfg 1032
CLI>
• This is similar to a power down / power up procedure except that the ramdisk device is not cleared.
• If no argument is provided, the device reboots immediately.
• When using the after <seconds> argument, a reboot is scheduled when the number of seconds
has elapsed.
• at argument schedules a reboot at the provided date and time.
The router can be configured to reboot if a ping is not answered. Use the following command:
CLI> reboot unreachable interface <interface_name> host <IPaddr>
delay <time> max-fail <maximum>
o interface <interface_name>. This is the interface through which the pings are sent. This
interface must exist on the device, but it can be down; the router tries to send pings even if the
interface is down.
o host <IPaddr>. This is the destination IP address of the pings.
o delay <time>. This is the time interval between two pings, expressed in seconds. It can be
set between 60 seconds and 3 hours, in steps of 60 seconds.
o max-fail <maximum>. This is the number of consecutive failed pings that are allowed,
before the device reboots.
If for instance after 4 consecutive failed pings, the fifth one is OK, then the process starts again
from 0, i.e. it means that the router must have 5 consecutive failed pings again to reboot.
You may want to test a new configuration file or test a new software image. For that purpose, a special
reboot command enables you to define a configuration file and a software image that are not the same as
those contained in the /BSA/bsaBoot.inf file (default start parameters). With this command, the router
reboots using the software image and configuration file and will re-use the default software image and
configuration file at the next reboot, thus enabling you to check whether the new files are satisfying or not.
The command line is the following:
CLI> reboot-check [at <hh>:<mm>:<ss>] <sw-image> <config-file>
at argument schedules a reboot at the provided time. If you wish to cancel a scheduled reboot, use the
following command:
CLI> reboot-check cancel
When the device is going to reboot, a first log file is generated (except when reboot is due to power fail).
Because the device can be in an "instable" situation following the reboot cause, this first log file contains
information about the reboot in a raw format. This is done in order to secure its creation and use as few as
possible system resources. After the reboot, a second log file is generated that contains the complete set
of information that will allow off line debugging.
The first log file is called a rawlog file also known as a secure-crashlog file while the second log file is
called a crashlog file.
The generation of the secure-crashlog file is enabled by default. The following command in global
configuration mode allows disabling the generation of the secure-crashlog files.
CLI(configure)> no system enable-secure-crashlogs
Use the following command in global mode to display the number of secure-crashlog files that are
actually stored in the /BSA/dump directory and sub-directories (maximum 5 files).
CLI> show system secure-crashlog count
Use the following command in global mode to display the content of the last secure-crashlog file.
CLI> show system secure-crashlog
Use the following command in global mode to erase all the crashlog files that are stored in the
/BSA/dump directory. Use the –force argument to erase the files without asking for confirmation.
CLI> system clean-crashlogs [-force]
When using a device, it might be tedious to destroy the configuration. The following command simply
erases the current configuration file and reboots immediately the device to take the default configuration
enter in effect:
CLI> erase saved-config
This function enables to reload a router as if it was coming from the factory. OneAccess factories can load
a set of custom default files in the flash of the router (to be discussed with OneAccess sales).
Note that it is possible to preserve saved configurations when restoring the factory settings, as explained in
section 2.6.5 Automatic and Periodic Backup of the Configuration.
As a first step, the restore-factory settings checks if flash:/BSA/binaries/OneOs exists and if it is a
valid binary. In case of error, the restore factory settings function fails and an error message is displayed.
If the above mentioned condition is met, the following actions are carried out:
• Remove all files except certain system files:
o flash: /BSA/bsaBoot.inf
o flash: /BSA/binaries/OneOs
o flash: /BSA/config/bsaStart.cfg
o flash: /factory-backup/ (and all files found under that directory)
o flash: /ibc (and all files found under that directory)
o flash: /tftpboot (and all files found under that directory)
The following command restores factory settings and reboots the OneOS-based router:
CLI> restore factory-setting
2.6.13 S ys l o g M e s s a g e a t Sta rt u p
This function enables the router to send a SYSLOG message once it has (re-)started. This message is
sent after the configuration is fully applied. It can optionally be delayed so as the SYSLOG server(s) are
reachable. The SYSLOG client must be configured as described in 2.25.
To enable the sending of the message, use the following command in global mode:
CLI> event filter add sys startup all syslog
To delay in seconds the sending of the message, use the following command in global configuration mode:
CLI(configure)> syslog delayed-start <0-3600>
Note that, when copying files to the file system of a OneOS device, the file name must be less than 39
characters.
There are several ways to upgrade a router with a new software release.
It is advised to use the following steps.
• Prior to making a software upgrade, it is strongly advised to read the information about the file system
in the following sections:
o 2.3 File system
o 2.6 Configuration of Management Functions
• First, you should verify that the file bsaBoot.inf has content shown below; the verification can be
done as follows:
CLI> cd /BSA
CLI> cat bsaBoot.inf
flash:/BSA/binaries/OneOs
flash:/BSA/config/bsaStart.cfg
The content of bsaBoot.inf, as listed above, conforms to OneAccess standard factory settings.
• Before downloading the new software to the device, check that the flash disk provides enough space
for the new file.
CLI> show device status flash
• The new software that will be downloaded to the device must be stored in the directory
/BSA/binaries. To go to this location and check the content, use the following commands:
CLI> cd /BSA/binaries
CLI> ls
This command copies the new software, named OneOs.ZZZ on the pc, to the device as OneOs.new.
Optionally, a source IP address can be provided (like loopback 1) for the TFTP transfer as follows:
CLI> copy tftp://193.1.1.2/c:\tftp\OneOs.ZZZ OneOs.new loopback 1
• The content of the directory can be checked again with the ls command:
CLI> ls
OneOs
OneOs.new
..
This example shows that there are 2 softwares on the device: OneOs and OneOs.new.
Or:
CLI> show soft-file info [<path>/]<filename>
For example:
CLI> verify soft-file OneOs.new
file is OK
Note that the file system is case sensitive. In other words, if OneOs is mistyped (wrong capital letters), the
boot software will not start any software (e.g.: Oneos is wrong).
Password recovery is needed when local passwords stored on the router are lost. With the password
recovery procedure, all users/passwords in flash memory are deleted and the admin/admin login/password
then become valid. However, a full restore of factory settings is done, meaning that the router configuration
is also deleted.
To learn more about restoring the factory settings, refer to 2.6.12 Restoring Factory Settings.
Password recovery is done by entering the following key sequence:
• <ESCAPE>, then
• <CTRL>+Y, and finally
• <CTRL>+N
2.9.1 Introduction
The router boots up with a default startup-configuration that could be loaded at factory and guarantees that
the network can be reached. A new configuration is imported on the router flash and the router is rebooted
with that new configuration. In the event of the new configuration is not satisfactory, the router should
reboot with the configuration specified by the recovery mechanism. The new configuration must have the
configuration recovery mechanism configured using the CLI detailed in this chapter.
Telling that a configuration is not satisfactory is a generic term. The criteria to define a configuration as
being invalid must be well defined; they are:
• configuration causing the router to crash;
• configuration causing the router not to reach a specific IP address (that should be the network
management IP address; if this IP can be reached, we consider that the NOC (Network Operations
Center) can still fix the configuration remotely in case of incomplete configuration execution);
• SIP gateway registration fails.
When the backup-configuration is set, bsaBoot.inf points to the backup-filename as long as the above
backup criteria are not met. The backup instructions appear at the top of the show running-config; in
other words, the configuration backup is done potentially before a faulty CLI command is executed.
The backup-filename must fulfill the following conditions:
• backup-filename exists, is not empty and has a file size that is less than 100 Kbytes
• The file contains only valid ASCII characters (A-Z, a-z, 0-9, \r\n\t, all punctuation marks)
• backup-filename contains the string configure terminal. That’s just a small check in order to
make sure the backup file looks like a configuration file.
The connection status is verified using ICMP echoes with a default timeout of 3 sec and/or the SIP
registration. At the first successful ping, the ping test stops. After the configured backup-configuration
criteria are all met, /BSA/bsaBoot.inf is restored and points again to the running-config.
If no successful ping is realized or no sip-gateway registration is realized or if the router crashes during
configuration loading, the router reboots with backup-configuration. A notification message is generated to
tell the final result of the "backup-configuration" test.
First, the criteria to reboot with backup configuration must be defined within a check list:
CLI(configure)> [no] check-list <name>
CLI(config-chk-list)>
Sending a ping to a destination can serve as backup criterion: if the ping fails, the router reboots with
backup configuration. If the ping criterion is used, the next command must be entered
CLI(config-chk-list)> ping target <ip-address>
All the following parameters are optional. The initial delay before sending the first ping is by default
60 seconds. To modify this value, enter:
CLI(config-chk-list)> ping init-delay <seconds>
By default, the source IP of ping packets takes the IP of the output interface. To force this IP:
CLI(config-chk-list)> ping source <interface> <unit>
The timeout to consider a ping test failed is 3 seconds. To remove the ping criterion:
CLI(config-chk-list)> no ping
To use SIP gateway registration status as backup criterion, the command is:
CLI(config-chk-list)> [no] sip-gw-registration
The check list is an object whose status is OK or KO (the overall status is OK only if sip-gateway
registration and ping tests are OK). The check list is then attached to a backup configuration element. If
the checklist is not OK at the backup configuration timeout, the router reboots with the backup filename as
start configuration. The configuration of backup configuration is as follows:
CLI(configure)> backup configuration
CLI(cfg-backup)>
Example:
configure terminal
! Start by setting the backup configuration
backup configuration
filename /BSA/config/mylastgood.cfg
timeout 240
check-list mylist
exit
! Then set the check-list configuration
check-list mylist
ping target 10.10.10.1
ping init-delay 30
ping retries-interval 30
ping source bvi 3
sip-gw-registration
exit
! Continue with my nominal equipment configuration
(...)
exit
2.9.3 Statistics
The device is manageable via the SNMP protocol, by means of its embedded SNMP agent.
The device can be managed using three security models: SNMP v1, SNMP v2C or SNMP v3 protocol. The
first two protocols provide a lower level of security, the latter offers the ability to authenticate and encrypt
SNMP messages.
• By default, the IP source address of SNMP messages is the IP address of the outgoing interface used
by these SNMP messages.
To set another SNMP IP source address, use the following command in global configuration mode:
CLI(configure)> snmp source { <interface> | any }
Use the following command to return to the default behavior (with no space).
CLI(configure)> snmp config ifdescr-no-space
To restrict access to device management data by using SNMP v1/v2, community names can be defined in
global configuration mode:
• The following command sets the community for read only access:
CLI(configure)> snmp set-read-community <ro-community> [<encryption>]
[<acl-name>] [v2group <group-name>]
• By default, public community is used for read-only access, while private community is used for
read-write access.
• To remove SNMP v1 and SNMP v2 access, use the following commands:
CLI(configure)> no snmp set-read-community <ro-community>
CLI(configure)> no snmp set-write-community <rw-community>
Note that the <ro-community> and <rw-community> can be omitted when using the no
commands.
• SNMP v1 and v2 traps are configurable, provided that event managers are configured.
For more information, go to the next chapter on traces and events.
When using IPv6, the commands are similar to when using IPv4, except that an IPv6 access list must be
used:
• The following command sets the community for read only access:
CLI(configure)> snmp set-read-community <ro-community> [<encryption>]
[ipv6 <acl-name>] [v2group <group-name>]
o <acl-name> is the name of an IPv6 access list. This option allows using an IPv6 access list to
filter traffic.
• The following command sets the community with the read+write access:
CLI(configure)> snmp set-write-community <rw-community> [<encryption>]
[ipv6 <acl-name>] [v2group <group-name>]
Note that the <ro-community> and <rw-community> can be omitted when using the no
commands.
SNMP views can be configured to allow certain users to read, write or be notified for only certain parts of
the MIB tree. SNMP views are typically configured when a telecom operator wants to access all MIB while
allowing its customers to only see part of the MIB tree (e.g. counters related to the LAN/WLAN interface).
The default views are the following:
• v1default: all MIBs except the OID 1.3.6.1.6, i.e. the SNMP v3 objects
• v3default: all MIBs
To configure an SNMP view, use the following command line:
CLI(configure)> snmp view <view-name> <oid> { included | excluded }
• oid stands for the root Object ID in the MIB tree (is in the form a.b.c.d…). For example, the 1.3.6
OID stands for access to the whole Internet MIB.
• included indicates that the objects part of this sub-tree are part of the view.
• excluded means they are not visible.
• You can combine included and excluded sub-trees for the same view-name. It enables to define sub-
trees that are globally visible, except few items in the sub-tree.
SNMP groups give access-rights and authorization to a group of users. A group tells the minimum security
level to use for users belonging to this group. To configure a SNMP group, use the following command:
CLI(configure)> snmp group <group-name> {v1 | v2c | v3 | v3auth | v3priv}
[read <view-name>] [write <view-name>]
[notify <view-name>] [acl <acl-name>]
Then, the group is required when configuring SNMP v3 users (see next paragraph).
To apply the SNMP view on a read/write v2C community, use the following command:
CLI(configure)> snmp { set-read-community | set-write-community }
<community> [<acl-name>] v2group <group-name>
2.10.3 SNMP v3
• To configure access to device management data by using SNMP v3, user names can be defined.
Prior to configuring users, a unique engine ID must be defined. By default, engineId is based on the
MAC address of the Ethernet interface.
To configure a new engineId, use the following command in configuration mode:
CLI(configure)> snmp engine-id <engineId>
Warning: As user security parameters are associated with local engineId, a change in the
engineId automatically removes all configured users.
• To reset the default engineId, use the following command in configuration mode.
CLI(configure)> default snmp engine-id
• As key material is tightly related to the engineId, all users declared prior to the change, have the
wrong key material. It is strongly advised to reconfigure passwords for each user, so that user
configurations become valid.
Creating users
• As of OneOS V5.1R5 software release: to create an SNMP v3 user, use the following command in
configuration mode:
CLI(configure)> snmp user <user-name> <group-name> v3
[ auth { md5 | sha } <auth-password>
| priv {des | aes{ 128 | 192 | 256} | 3des } <enc-password>]
If nor authenticated nor encrypted accesses are chosen when configuring a user, then the lowest
security level is configured for that user. The chosen group security profile must match the user’s
one: a group configured with only the attribute auth can only be associated with users' v3
authentication (without encryption).
If it is required to activate authentication and encryption, two commands must be entered; for
example:
CLI(configure)> snmp user username groupname v3 auth md5 auth-password
CLI(configure)> snmp user username groupname v3 priv aes256 enc-password
• Prior to OneOS V5.1R5 software release: to create an SNMP v3 user, use the following command in
configuration mode:
CLI(configure)> snmp user <user-name> <group-name> v3
[ auth { md5 | sha } <auth-password>
| priv des <enc-password>]
If nor authenticated nor encrypted accesses are chosen when configuring a user, then the lowest
security level is configured for that user. The chosen group security profile must match the user’s
one: a group configured with only the attribute auth can only be associated with users' v3
authentication (without encryption).
If it is required to activate authentication and encryption, two commands must be entered; for
example:
CLI(configure)> snmp user username groupname v3 auth md5 auth-password
CLI(configure)> snmp user username groupname v3 priv des enc-password
• Prior to OneOS V5.1R2E2 software release: to create an SNMP v3 user, use the following command
in configuration mode:
CLI(configure)> snmp user <user-name> <group-name> v3
[ auth { md5 | sha } <auth-password>
| encrypted auth { md5 | sha } <enc-password>]
• SNMP v3 traps are configurable, using event managers. However, users need to be declared so that
the necessary security level is retrieved inside the agent.
When configuring authentication and privacy passwords as described above, the following characters can
be used for the passwords:
• all letters of the alphabet, including capital letters
• all numerical characters
• all special characters, except:
o exclamation mark, !
o question mark, ?
o space
However, it is possible to use these three special characters by placing the entire string between quotation
marks (") or between apostrophes (').
When configuring users as described above, the following characters can be used for the <group-name>:
• all letters of the alphabet, including capital letters
• all numerical characters
• special character: underscore, _
All other characters are not allowed.
Example
• To send SNMP v3 informs, remote users and remote entities need to be known.
Inform requests are notifications that have to be acknowledged by the remote SNMP v3 entity (the
manager where informs are sent). When sending an inform request, the manager answers to the
device management with a response PDU. This reply ensures the emitting OneOS-based routers that
the notification reached its intended destination.
SNMP v3 informs are sent with the associated security parameters of the remote manager, i.e. the
remote engineId, and the associated user security parameters.
• There are several ways to know the remote engine ID. To retrieve the engineId, and its timing
parameters from a remote IP address, use the following command in global configuration mode:
CLI(configure)> snmp discover remote-agent <A.B.C.D>
This command triggers a discovery process that sends SNMP get request packets and waits for
SNMP get responses from the remote entity.
• It is also possible to manually configure an engineId associated with an IP address with the
following command in configuration mode:
CLI(configure)> snmp engine-id <engineId> remote <A.B.C.D>
[ max-msg-size <0-8192>]
• If the above commands are successful, the retrieved engineId is saved in a local configuration
datastore (LCD).
The LCD can be filled in dynamically when triggering the discovery process by sending an SNMP v3
inform, or by configuring an SNMP v3 user.
• To delete a remote engineId from the local configuration datastore, use the following command in
configuration mode:
CLI(configure)> no snmp engine-id <engineId> remote <A.B.C.D>
• The command below creates a SNMP v3 user with its remote IP address. A discovery process will
retrieve the remote engineId to get authentication or encryption keying material.
CLI(configure)> snmp user <user-name> <group-name> v3
remote ip-address <A.B.C.D>
[ auth { md5 |sha } <auth-password>
| encrypted auth { md5 |sha } <priv-password>]
Refer to 2.10.3.1 Basic Configuration for a description of allowed characters in passwords and group
names.
• To configure a user without triggering the discovery process, you can associate a user to the remote
engineId by using the following configuration command:
CLI(configure)> snmp user <user-name> <group-name> v3
remote engine-id <engineId>
[ auth { md5 | sha } <auth-password>
| encrypted auth { md5 | sha } <priv-password>]
Refer to 2.10.3.1 Basic Configuration for a description of allowed characters in passwords and group
names.
• To remove a remote user from the local configuration datastore, use the following configuration
command:
CLI(configure)> no snmp user <user-name> v3 remote engine-id <engineId>
CLI(configure)> no snmp user <user-name> v3 remote ip-address <A.B.C.D>
• Use the following configuration command to define, in seconds, the timeout for informs responses.
Use the no form of the command to use the default value (15s).
CLI(configure)> [no] snmp informs timeout <2-60>
• Use the following configuration command to define the number of retries for informs sending.
Use the no form of the command to use the default value (3).
CLI(configure)> [no] snmp informs retry-count <0-255>
• By default, the SNMPv3 users are stored in the file snmpv3_users.log on the file system of the device;
note that the username/password details are always stored in encrypted form, never as clear text.
• The following command gives the possibility to store the SNMP v3 users in a separate file (default) or
in the configuration:
CLI(configure)> snmp user-store <storage-type>
An IPv4 access list can be attached to either SNMP communities (SNMP V1/v2) or to SNMP group (SNMP
v1/v2/v3). The SNMP manager is enabled de-facto when IPv6 is enabled in the OneOS-based router. An
IPv6 access-list can be bound to the SNMP manager to prevent unwished access from specified sources.
The ACL binding is configured as follows under global configuration mode:
CLI(configure)> bind snmp acl ipv6 <ipv6-acl>
2.10.5 Miscellaneous
At any stage of the configuration, information about the SNMP agent can be modified. To configure the
location of the device, use the following command line:
CLI(configure)> [no] snmp location <text: 1-255 char>
To configure the person to contact, for managing the device, use the following command line:
CLI(configure)> [no] snmp contact <text: 1-255 char>
To configure a string that uniquely identifies the device, use the following command line:
CLI(configure)> [no] snmp chassis-id <text: 1-255>
By default, chassis-id is a MIB variable given by the manufacturer; this identifier is made up of the type of
equipment followed by a serial number.
In order to avoid IP fragmentation, the SNMP v1, v2 and v3 agent provides a command line to limit the
maximum SNMP message packet size. Thus, if forged SNMP messages are greater than the configured
packet size, an SNMP 'too big' message is sent to the manager.
CLI(configure)> snmp max-message-size <size: 484-8192>
SNMP v3 agent uses this maximum value to limit the size of outgoing SNMP packets. In addition, this
maximum message size is sent in SNMP v3 queries, as the remote entity is not allowed to respond with
messages greater than the size requested by initiator.
To restore the default values, use the no form of the command:
CLI(configure)> no snmp max-message-size
To add a SNMP manager (up to 10), use the following command in global configuration mode:
CLI(configure)> event manager { <A.B.C.D> | <X:X:X::X> | <hostname> }
[<port>]
[v1 | v2 | v3 | v3auth | v3priv]
[<name>] [<encryption>] [informs]
To display the configured event managers, use the following command line:
CLI> show event manager
10.1.2.1:162 V2 "public"
10.1.2.1:162 V3 "admin" authPriv
By default, a SNMP trap is sent for the following events: cold/warm start, link up/down, authentication
failures (bad SNMP communities).
To enable/disable such standard SNMP traps, use the following command:
CLI(configure)> [no] snmp traps { standard | acl | bgp | ipsec | isakmp
| isdn | nat | pstn | vrrp }
You can use the following command to help you debug configuration issues with SNMP:
CLI> debug snmp [packet | info | inform | error]
• At any stage of the configuration, information about SNMP can be displayed. To display the statistics
related to SNMP, use the following command line:
CLI> show snmp statistics
SNMP statistics:
IN: 120 total
0 bad version, community error: 0 bad name, 0 bad uses
0 ASN parse errors, trap authentication enabled
0 bad types, 0 too big, 0 no such name, 0 bad values
0 read only, 0 gen error, 120 total req, 0 total set
0 get requests, 120 get next, 0 set requests, 0 get responses
0 unknown security models
0 invalid, 0 unknown PDU handler, 0 unavailable context, 0 unknown context
0 unsupported sec level, 0 unknown engine Id, 0 wrong digest, 0 decryption error
OUT: 126 total
0 too big, 0 no such name, 0 bad values
0 read only, 0 gen error
0 traps, 120 get responses
• Use the following clear command in global configuration mode to reset SNMP counters:
CLI> clear snmp statistics
• To display the SNMP v1 and v2 configuration elements, use the following command:
CLI> show snmp community
no SNMP write community configured
SNMP read community: public
• To display the configured SNMP v3 engine ID, use the following command:
CLI> show snmp engine-id
Local SNMP engineId:
80003387030008005101001b
• SNMP traps can be shown when running the show running-config command,
with option include snmp trap:
CLI(configure)> show running-config | include snmp trap
Example output:
CLI(configure)> show running-config | include snmp trap
snmp traps acl
no snmp traps standard
snmp traps config
snmp trap-source vrf VRF_3
snmp traps shdsl
snmp traps vrrp
snmp set-write-community "private"
snmp set-read-community "public"
snmp traps cfm
snmp traps ether-oam
2.11.1 Introduction
• RMON is a feature similar to Simple Network Management Protocol (SNMP), that can generate
alarms.
• The RMON alarm generation mechanism can be realized using the following three actions:
o action alarm for computation of alarms and to raise the alarms; refer to
6.5.2.10 Sending an alarm as a trigger action using applet.
o action rmon-trap for generating RMON traps; refer to
6.5.2.11 Sending a RMON trap.
o action if-alarm for combining generation of e-mail/syslog based on alarm computation; refer to
6.5.2.12 Action if-alarm based on alarm computation.
2.11.3 Statistics
• Use the following command to show the alarm history of a specific applet:
CLI> show event manager alarm history <applet-name>
For example:
CLI> show event manager alarm history app5
Alarm History of applet app5
---------------------------------------------------------------------------------------------
AlarmIndex Method Type Threshold AlarmValue Time Of Alarm Owner
2.12.1 Introduction
The device can provide event information about the interfaces and protocols on the CLI, console port, in a
log file managed by the file system, and it can be sent to a syslog server. Some events can also generate
SNMP traps.
• To read the events, filters must be defined. Each filter defines a family of events, a severity code and
the output device (CLI, Console, file, SNMP trap, syslog).
o CLI: displays the filtered events on the CLI session, from which the filters were created.
o File: records the filtered events in a file.
o Console: shell/debug interface on the serial port.
o SNMP trap: upon occurrence of the selected events, the information will be sent to the SNMP
manager as an SNMP trap. This mechanism permits the user to select specific events, which
shall be monitored in the SNMP management system.
o Syslog: the event is sent to a syslog server.
• Several filters can be defined simultaneously. When an event is matched by one the filters, the event
is recorded.
• To add a filter, use the following command:
CLI> event filter add <group> <family> { all | <subfamilies> }
[<type>] [<severity>]
[argument <argument>] <action list>
Example:
CLI> event filter add sys GSHDSL ALL SHOW MEM LOG TRAP
2.12.3 L o g g i n g N AT s e s s i o n s vi a S ys l o g
• Any NAT session can be logged and sent to a syslog server using the following command:
CLI> event filter add ip nat { all | <subfamilies> } [<type>]
[<severity>] [argument <argument>] <action list>
With:
o A list of managed events can be found in Annex A – List of Managed Events.
o type: (optional) may be info, warning, error, fatal, event.
o severity: (optional) may be 1 up to 8.
o action list: use syslog to send the logging information to a syslog server.
• Records are sent for each session (between the local address and the global address to which the
local address is translated), and when sessions are created and destroyed.
• Records are sent to a syslog server in ASCII format.
• The activation of the NAT logging does not disable the Software Programmable Forwarding path
(SP-FWD)
• The NAT logging records include:
o Source IP address
o Destination IP address
o Translated source IP address
o Translated destination IP address
o Original source port
o Original destination port
o Translated source port
o Translated destination port
o VRF ID
o Protocol
o Timestamp
2.12.4 L o g g i n g th e I Ps e c I KE s ta te vi a S ys l o g
• An event can be generated when an IKEv1 or IKEv2 tunnel is created or deleted, and it can be sent to
a syslog server, using the following command:
CLI> event filter add ipsec ikev1 [<subfam>] [<type>]
[<severity>] <action list>
With:
o subfam: all, phase1 or phase2 can be entered here.
o type: (optional) may be info, warning, error, fatal, event.
o severity: (optional) may be 1 up to 8.
o action list: use syslog to send the logging information to a syslog server.
• To remove a specific filter (for example #2), use the following command:
CLI> event filter remove 2
• It is possible to generate a log and send syslog messages for successful and failed login attempts,
through:
o Telnet
o SSH
o Serial (VTY)
• To generate a log and send syslog messages for successful login attempts, use the following
command:
CLI> login on-success log
• To generate a log and send syslog messages for failed login attempts, use the following command:
CLI> login on-failure log
• The syslog messages are also buffered to memory and passed to the console.
• The syslog messages contain the following elements:
o TimeStamp; this is the time of syslog sending.
o Facility number 4 (auth).
o Severity 5 for Success, 4 for Failed.
o Message description including:
Short description of the event: LOGIN_SUCCESS or LOGIN_FAILED.
Hostname of the Device; for example Vxworks.
User identification; this is the username that is used for the connection attempt.
Management channel (VTY / SSH / Telnet).
Source IP address.
Destination port.
Timestamp when the login succeeded or failed.
Jul 23 21:43:35 10.4.33.141 One100D-CPE : #WARN# LOGIN_FAILED for Telnet user 'admin' from
Source IP Address '10.20.30.40' Local Port '23' at 21:43:32 IST Wed July 23 2014
Jul 23 22:01:45 10.4.33.141 One100D-CPE : #WARN# LOGIN_FAILED for SSH user 'admin' from Source
IP Address '10.20.30.50' Local Port '22' at 22:01:45 IST Wed July 23 2014
Jul 23 21:41:30 10.4.33.141 One100D-CPE : #WARN# LOGIN_FAILED for VTY user 'admin' from Local
Serial at 21:41:28 IST Wed July 23 2014
Jul 23 21:44:48 10.4.33.141 One100D-CPE : #NOTIFY# LOGIN_SUCCESS for Telnet user 'admin' from
Source IP Address '10.20.30.60' Local Port '23' at 21:44:47 IST Wed July 23 2014
Jul 23 22:05:22 10.4.33.141 One100D-CPE : #NOTIFY# LOGIN_SUCCESS for SSH user 'admin' from
Source IPv6 Address '2001::230:eff:fe30:22a9' Local Port '22' at 22:05:22 IST Wed July 23 2014
Jul 23 21:41:52 10.4.33.141 One100D-CPE : #NOTIFY# LOGIN_SUCCESS for VTY user 'admin' from
Local Serial at 21:41:49 IST Wed July 23 2014
• If the SHOW action is selected, the events appear immediately on the console/debug interface.
• If the MEM action is selected, the events are recorded in memory and can appear on the CLI interface.
The following command must be entered to view the events:
CLI> monitor events
The screen is cleared before the events appear and it is no more possible to enter a CLI command.
To return to CLI mode, enter ESC.
• If the LOG action is selected, the events are recorded in the file system (ramdisk device) in two files:
event1.log and event2.log (event1.log is used first and event2.log is used when
event1.log is full, etc.). The files can be uploaded in a TFTP server.
CLI> devs ramdisk:
CLI> ls
Listing the directory /
tmp/ 512
event1.log 3021
running-config 664
event2.log 840
• To recover the events recorded in memory (filter defined with MEM action) after a crash and to display
them on the CLI, enter:
CLI> event recover show
• To recover from memory and save the events in a file (for example: tr1.log) after a crash, enter:
CLI> event recover file tr1.log
2.12.8 S ys t e m L o g g i n g
• The system logging is based on the same mechanism as the events mechanism explained above.
The following command activates the traces and determines the media where the traces are
redirected (under configuration terminal):
CLI(configure)> [no] logging { buffered | console | file | syslog }
{ alerts | critical | errors | warnings | notifications | informational
| debug }
• The second argument refers to the severity level and provides the level of details to filter traces,
alerts being the least detailed filter and debug providing the most traces.
But note that messages with a lower numerical severity value have a higher practical severity than
those with a numerically higher value.
Numerical code Severity
1 alerts - action must be taken immediately
2 critical - critical conditions
3 errors - error conditions
4 warnings - warning conditions
5 notifications - normal but significant condition
6 informational - informational messages
7 debug - debug-level messages
• The following is a short extract from a trace output when debugging a cellular connection:
CLI> configure terminal
CLI(configure)> logging buffered debug
CLI(configure)> exit
CLI> debug ip route all
CLI> debug usb
CLI> debug sierra
CLI> debug dialup
CLI> monitor trace
cellularRadioTesting>01:01:21.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:21.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:21.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:21.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:22.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:22.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:22.381 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:22.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:23.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:23.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:23.381 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:23.383 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:24.300 RIP: sending RESPONSE(v2) to 224.0.0.9 via FastEthernet 0/0 (192.168.1.1)
01:01:24.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:24.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:24.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:24.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:24.720 PDS-LV3: PDS SCRIPT_RQ script called
01:01:24.720 PDS-LV3: PDS SCRIPT_RQ accepted
01:01:24.720 PDS-LV4: PDS-AUT [1][0] st [_ini] ev [USR_SCRIP] nature [SCRIPT]
01:01:24.721 PDS-LV4: PDS-AUT [1][0] new state [_sou]
01:01:25.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:25.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:25.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:25.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:25.720 SierraResetFSM: Current State = KeepInReset, Event = TimerOff
01:01:25.720 SierraResetFSM: New State = WaitForUsbDetection
01:01:25.720 PDS-LV4: open modem type 2 rate 17
01:01:25.720 PDS-LV4: oaPds : Vxx ModemConnect failed (ret=-4)
01:01:25.720 PDS-LV3: PDS-T01 [1][0] open COM PORT result=0x2
01:01:25.720 PDS-LV3: PDS SCRIPT_RQ clbk Result=0xfffffffa Cause=0x2
01:01:25.720 PDS-LV4: PDS-T01 [1][0] released
01:01:25.720 PDS-LV4: PDS-AUT [1][0] st [_sou] ev [TSK_TIMER]
01:01:25.720 PDS-LV4: PDS-AUT [1][0] new state [_ini]
01:01:26.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:26.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:26.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:26.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:27.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:27.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:27.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:27.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:28.360 ARP: arptfree for 0x30d43e0 (@ = 192.168.1.4): rt_refcnt = 0
01:01:28.360 IPR: deleted 192.168.1.4/32, FastEthernet 0/0, link
01:01:28.360 ARP: arptfree for 0x32698e8 (@ = 192.168.1.111): rt_refcnt = 2
01:01:28.361 IPR: added 192.168.1.4/32, FastEthernet 0/0, link
01:01:28.361 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:28.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:28.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:28.380 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:29.380 VR: ID 5, advertisement sent via 192.168.1.1 (prio=100)
01:01:29.380 VR: ID 4, advertisement sent via 192.168.1.1 (prio=100)
01:01:29.381 VR: ID 3, advertisement sent via 192.168.1.1 (prio=100)
01:01:29.382 ARP: sent who-has 192.168.1.4 tell 192.168.1.1 (MAC: 00:12:ef:60:17:be) on
FastEthernet 0/0
01:01:29.848 USB device detected: Sierra Wireless, Incorporated/MC8705/hip
01:01:29.856 USB device detected: Sierra Wireless, Incorporated/MC8705/at
01:01:29.857 SierraResetFSM: Current State = WaitForUsbDetection, Event = Detected
01:01:29.857 SierraResetFSM: New State = WaitForSierraSettled
• Another example is the following: a user wishes to view on the fly the debug traces for NAT from a
telnet session.
The commands to enter are:
CLI> configure terminal
CLI(configure)> logging buffered debug
CLI(configure)> exit
CLI> debug ip nat
CLI> monitor trace
• To show the current logging options and to display the buffered logs, use the following command:
CLI(configure)> show logging
Console logging: level debug, 35 messages logged
Buffered logging: disabled
File logging: disabled
Syslog logging: level alerts, 0 messages logged
• The memory buffer size can be increased/decreased if necessary (the default size is 16364 bytes),
using the following command:
CLI(configure)> logging buffered size <16364..131072 bytes>
• The log file size can be increased/decreased if necessary (the default size is 20000 bytes), using the
following command:
CLI(configure)> trace logging max-filesize <200..20000 bytes>
• Every trace can be generated with the device date and time, or the current time, or the device up time:
CLI(configure)> [no] logging timestamp { datetime [msec] [timezone]
| time | uptime}
o With datetime the optional msec argument adds the milliseconds to the actual date and time,
and the optional timezone argument adds the time zone.
o With time only the actual time is displayed.
o With uptime the displayed time is related to the device up-time.
• The memory buffer can be cleared (erased) on request using the following command:
CLI> clear buffered-logging
• This facility records all passed configuration commands since the router has rebooted. This logging is
activated by default (stored in RAM memory).
• The history file size can be increased/decreased if necessary (default size 128 Kbytes), using the
following command:
CLI(configure)> logging config-history max-size <10..256 Kbytes>
• Use the following command to de-activate the logging. Note that this command empties the history
file.
CLI(configure)> no logging config-history
• Use the following command to display the history of configuration commands file:
CLI> show command-config
Example:
CLI> ping 220.13.1.3 20.13.0.10
The xping command may be used to initiate several ping sessions for different targets.
The command measures the minimum, average, round trip jitter and maximum ping response time.
Command for creation of a new xping session:
CLI> xping <session-name>
CLI(xping)>
Then, the xping session (called session-name) must be then configured. The following parameters are
available:
CLI(xping)> ?
activate - Activate xping session.
address - Set target ip address.
data-size - Set datagram size for the icmp packet.
deactivate - Deactivate a session.
df-flag - Sets the DF flag on outgoing packets.
dsfield - DS field for IPv4.
exit - Exit xping mode.
frequency - Set ping frequency (interval in seconds).
ip-data-size - Set size for the IP packet (refer to size of IPv4 ping).
life-time - The amount of time the session remains active (in minutes).
probe-count - Set the number of packets sent for each ping.
show - Display xping session configuration.
source - Set source address.
target - Set target host name.
timeout - Set request time out (for 0 refer to –w option of IPv4 ping).
vrf - Use VRF
<cr>
CLI(xping)>
The source address is optional but must be a valid IP address if it has been specified. This command must
be entered to view all the declared sessions in real time:
CLI> monitor xping
The screen is cleared and shows real-time statistics for all the configured sessions. To return to the CLI
mode, enter ESC.
The xping sessions are removed with the command:
CLI> no xping <session-name>
source-address is optional. If not provided the source IP address is the primary IP address of the
traceroute output interface. vrf-name is optional. If not provided the default VRF is used. icmp keyword
is also optional. Use it to make traceroute use ICMP "echo" packets (instead of UDP packets by default).
Advanced options are available:
-l - Payload size
-i - Time to live
The available range for the packet size is from 64 to 1500. The number of packets is restricted between 1
and 15. The timeout can be configured between 1 and 60 seconds.
Example:
CLI> traceroute 220.13.1.3 20.13.0.10
Note that, when copying files to the file system of a OneOS device, the file name must be less than 39
characters.
• Example:
CLI> telnet 20.13.0.3
Trying 20.13.0.3...
Connected to 20.13.0.3.
Exit character is '^]' or '^$'.
• By default, the Telnet server is always on. Its source address is the one of the IP interface, primary or
secondary, where the packets are routed.
• For example, if a Telnet client connects via the LAN interface, the IP source address of the Telnet
server can be the primary or secondary IP address of the LAN interface. Refer to the following
examples:
A telnet server is attached to interface G0/0 with:
o primary IP address 20.20.20.1
o secondary IP address 10.10.10.1
Case 1
o If the telnet request comes from Host1, the reply packets come from the address 10.10.10.1,
i.e. the secondary address.
o If host 2 makes a telnet request, the reply packets come from 20.20.20.1, i.e. the primary
address.
Case 2
o If the host makes a telnet request to IP address 20.20.20.1, the replies come from the primary
address.
o If the host makes a telnet request to IP address 10.10.10.1, the replies come from the
secondary address.
• By default, the Telnet server can be accessed through any declared IP address.
To restrict access to the IP address of a specific IP interface, use the following command in global
mode:
CLI> [no] bind telnet <interface>
Example
To allow Telnet only on the IP address of the virtual IP address 0 (loopback 0), use the following
command:
CLI> bind telnet loopback 0
After having entered the command, the Telnet server and CLI are only accessible using the IP
address of the selected loopback interface.
It is possible to restrict access to telnet clients by using a list of addresses standing for the list of permitted
source IP addresses. Use the following command in global configuration mode:
CLI(configure)> [no] bind telnet acl <acl-name>
Restricted access can be activated for a certain amount of seconds using the following command:
CLI(configure)> bind telnet temp-acl <acl-name> <timeout: 10-100000>
Restricted access can be activated at boot for a certain amount of seconds using the following command:
CLI(configure)> bind telnet boot-acl <acl-name> <timeout: 10-100000>
Telnet server is enabled by default when IPv6 is enabled in the OneOS-based router. An IPv6 access-list
can be bound to the telnet server to prevent unwished access from specified sources. The ACL binding is
configured as follows under global configuration mode:
CLI(configure)> [no] bind telnet acl ipv6 <ipv6-acl>
Use the following command to use a designated VRF different from the default VRF:
CLI(configure)> [no] bind telnet vrf <vrf-name>
If a connected telnet client is inactive during a certain time, it is disconnected. By default, any inactive
telnet client is disconnected after 10 minutes. (Warning: previous OneOS releases used to have a 60-
minute timeout).
To change the telnet timeout, use the following command:
CLI(configure)> telnet timeout <seconds>
This procedure functions for console, telnet and SSH users. First, you must retrieve the session ID of the
host you want to be logged off. To get the session IDs of all connected users:
CLI> who
Then, enter the following command to disconnect the user (you need to have the admin user level):
CLI> clear vty-session <session-id>
Remote connections to the telnet server can be logged using the following command in global
configuration mode:
CLI(configure)> logging telnet enable
For each connection, the user name (login), the originating IP address, the connection date and time, the
disconnection date and time and the disconnection cause (logout or timeout) are logged.
To stop logging the telnet connections use the following command in global configuration mode:
CLI(configure)> no logging telnet
The telnet logging is recorded under flash:/. First, logs are dumped into the file named telnet1.log.
When telnet1.log is full, telnet2.log is used. When telnet2.log is full, telnet1.log is erased
then re-created and new logs are written in this file.
The log file size can be increased/decreased if necessary (default size 8200 bytes):
CLI(configure)> logging telnet max-filesize <82..8200 bytes>
A standard TFTP client is embedded in the OneOS, which enables the downloading and uploading of files
from/to a remote TFTP server using the following command in global mode:
CLI> copy <source-file> <destination-file>
[{ <source-address> | <source-interface> <unit> }]
[vrf <vrf-name>]
Use the no form of the command to remove the global source address.
Use the following command in global configuration mode to limit the number of TFTP servers from/to which
files can be transferred; this can be done by means of an access list, in which a list of authorized TFTP
servers can be set:
CLI> configure terminal
CLI(configure)> snmp-server tftp-server-list <acl-name>
o <acl-name> is the name of access list that contains the IP addresses of the authorized TFTP
servers.
o This command allows to limit the TFTP servers, used via SNMP controlled TFTP operations
(saving and loading configuration files), to the servers specified in the access list.
Use the no form of the command to remove the access list:
CLI(configure)> no snmp-server tftp-server-list
Refer to the copy command whose examples are described in this guide.
A TFTP server is embedded in the OneOS, only to upload files to another device. By default, files to
upload have to be located in the /tftpboot directory. The TFTP server can act as a TFTP relay to
upload a file that is located on another TFTP server.
The TFTP server is disabled by default. To enable the TFTP server, use the following command in global
configuration mode:
CLI(configure)> [no] tftp-server [<root-dir>] [address <interface><unit>]
• Use the optional parameter address to limit the access to a specific interface.
• root-dir defines the root directory where are located the files to upload (tftpboot by default).
• Use the no form of the command to disable the TFTP server.
The TFTP server is available from a non-default VRF. Use the following command to set the VRF:
CLI(configure)> tftp-server vrf <vrf-name>
The TFTP relay is disabled by default. To enable the TFTP relay and define the address of the other
server, use the following command in global configuration mode:
CLI(configure)> [no] tftp-relay server { <IP-address> | <hostname> }
A standard FTP client is embedded in the OneOS, which enables the downloading and uploading of files
from a remote host FTP server.
Command:
CLI> ftp { <host-ipv4-address> | <host-ipv6-address> | <host-name> }
[<source-address> | <source-interface>]
[ vrf <vrf-name>] [ipv4|ipv6]
Warning: name resolution is not currently supported in IPv6. The keywords ipv4 and ipv6 are meant to
force name resolution in either IPv4 or IPv6.
The source address used in the FTP messages can be:
• A defined IP address using source-address.
• The IP address of the referenced interface using source-interface.
• The IP address of the referenced interface using the global source address configuration command
(see below) if none of the 2 addresses above is defined.
• The IP address of the interface used by the FTP protocol if none of the 3 addresses above is defined.
In all cases the IP address must be known by the device.
To define a global source address, use the following command in global configuration mode:
CLI(configure)> [no] ip ftp source-interface <source-interface> <unit>
Example:
CLI> ftp 200.13.0.1
username: admin
password:
CLI(ftp session)>
SFTP stands for Secure File Transfer Protocol. SFTP consists of tunneling the FTP protocol within SSH
that adds an encryption layer to FTP, thus ensuring data confidentiality and integrity.
As pre-requisite to use SFTP, a DSA private / public key pair must be computed as described in 2.15.2.1
below.
The generated DSA key pair must be computed once and can be used for both SSH and SFTP.
• ip-or-name is either an IPv4 address or a host name that will be resolved as an IPv4 address.
• <interface> <unit> is optional and forces the source IP address of SFTP packets from OneOS to
match the IP address of the selected interface. If <interface> <unit> is forced, the packets are
routed through the VRF of the selected interface.
Similarly, a file download is performed as follows:
CLI> copy sftp://<login>:<password>@<ip-or-name>/<path> <local-filename>
[<interface> <unit>]
2.15.1 Features
Secure shell or SSH is both a computer program and an associated network protocol designed for logging
into and executing commands on a networked computer. SSH design was aimed at replacing the earlier
rlogin, telnet and rsh protocols by a secure protocol providing encrypted communications between two
hosts over an insecure network.
OneOS SSH server is compatible with the version 2.
Strong authentication using public keys protects against several security problems, such as IP spoofing,
fakes routes, and DNS spoofing. Authentication of the SSH peers is realized via public DSA keys. DSA
keys were introduced in SSH version 2. But the user authentication at login time is done like any telnet
session: based on the local password database, or through RADIUS or TACACS+ servers.
Note: unauthorized connection attempts are subject to blacklisting (see 2.29 Blacklist management).
Telnet
The SSH server of a OneOS device supports remote "exec telnet" commands in compliance with
RFC 4254 - The Secure Shell (SSH) Connection Protocol.
An SSH client can open an SSH session to the OneOS-based router, which in its turn relays the data in
this SSH session to another device, via a local telnet session between the OneOS-based router and the
other device.
This is typically used to manage a device behind the access router via a secure SSH connection over the
Internet, e.g. an IP telephone. As the IP telephone has a private LAN address, it is not directly reachable
over the Internet (except when specifically configured in NAT). The SSH remote command is a very useful
tool to manage such devices over the network without needing to change the access router configuration.
So the SSH server of a OneOS device can handle and execute a telnet command when it is sent inside a
SSH session; this can be configured through the following command:
ssh <user>[:<passwd>]@<host> -t telnet <telnet_destination>
With:
o <user>. This is the username of the user/administrator that wants to login.
o <password>. This is the password of the user/administrator that wants to login.
o <host>. This is the host through which the user is connecting.
o <telnet_destination>. This is the IP address of the remote device the user wants to
connect to.
The following shows how to connect from a UNIX machine to the device with (local) address 192.168.1.4
behind a router with address 170.20.52.58.
<Device identification>
SIP Phone> <- telnet prompt
The SSH server supports local port forwarding in compliance with RFC 4254 - The Secure Shell (SSH)
Connection Protocol.
The OneOS-based router accepts multiple applications running on different channels inside a single SSH
tunnel. The router gets where to forward the session traffic via the channel message (IP address and port
number). Multiple channels are supported per session.
Similarly to handling the telnet command, described above, the SSH server of a OneOS device can handle
any CLI command inside the SSH session, via the following command:
ssh <user>[:<passwd>]@<host> -t <CLI command>
With:
o <user>. This is the username of the user/administrator that wants to login.
o <password>. This is the password of the user/administrator that wants to login.
o <host>. This is the host the user is connecting to.
o <CLI command>. This can be any CLI command, for example
show version, show running-config, ter len 0, show debug,
ping -t <addr>, show tech-sup, show ip interface brief, …
2.15.2 Configuration
As the SSH daemon requires a public key to authenticate versus a remote host, it is mandatory to
generate a public key pair. Use the following command in global configuration mode to create a Digital
Signature Algorithm (DSA) key; the last argument is the key length in bits:
CLI(configure)> crypto key generate dsa { 256 | 512 | 1024 | 2048 }
[no-confirm]
Warning: because keys with less than 512 bits are no longer considered safe, a 512-bit long key is
generated in both cases when requesting a 256 or a 512-bit long key.
Note: Generation of a 2048-bit DSA key may take several minutes (up to 10 minutes on entry level
devices). Meanwhile no other CLI commands can be executed.
By default the above command prompts the user for confirmation.
SSH: key generation is time-consuming, especially for big keys. Do you want to continue ? (Y/N):
Use the no-confirm optional parameter to execute the key generation without confirmation message i.e.
in silent mode. Always use the no-confirm option when this command is used in a web interface.
Note that to make the generated DSA key being taken into account, the SSH daemon has to be
stopped (disable) then restarted (enable) as described below.
To remove the generated DSA key, use the following command:
CLI(configure)> crypto key zeroize
SSH is disabled by default. To start the SSH daemon, use the following command in configuration mode:
CLI(configure)> ip ssh enable
To stop the SSH daemon, use the following command in configuration mode:
CLI(configure)> ip ssh disable
If a connected SSH client is inactive during a certain time, it is disconnected. By default, any inactive SSH
client is disconnected after 600 seconds (10 minutes).
To change the SSH timeout in seconds, use the following command:
CLI(configure)> ip ssh timeout <120-4294967295>
If an SSH client is in the authentication phase and it is inactive during a certain time, it is disconnected. By
default, any inactive SSH client doing an authentication is disconnected after 120 seconds (2 minutes).
To change the SSH authentication timeout in seconds, use the following command in configuration mode:
CLI(configure)> ip ssh auth-timeout <5-120>
By default, the authentication retries number is 3. To change this value, use the following command in
global configuration mode:
CLI(configure)> ip ssh auth-retries <1-3>
Note that the number of retries covers both authentication using username/password and authentication
using public/private key pair.
To attach the SSH server to a specific interface use the following command:
CLI(configure)> [no] bind ssh <interface>
To permit SSH access from any interface, which is the default configuration, use the following command in
global configuration mode:
CLI(configure)> bind ssh any
It is possible to restrict access to SSH clients by using a list of addresses standing for the list of permitted
source IP addresses. Use the following command in configuration line:
CLI(configure)> [no] bind ssh acl <acl-name>
Restricted access can be activated for a certain amount of seconds using the following command:
CLI(configure)> bind ssh temp-acl <acl-name> <timeout: 10-100000>
Restricted access can be activated at boot for a certain amount of seconds using the following command:
CLI(configure)> bind ssh boot-acl <acl-name> <timeout: 10-100000>
Use the no form of the command to remove the access list at boot:
CLI(configure)> no bind ssh boot-acl
Use the following command to use a designated VRF different from the default VRF:
CLI(configure)> [no] bind ssh vrf <vrf-name>
By default, the maximum number of SSH sessions is limited to 5 but configurable between 1 and 5;
the maximum number of channels (for local port forwarding) per SSH session is by default 10.
To set the maximum number of SSH sessions (including local port forwarding sessions), use the following
command in global configuration mode:
CLI(configure)> ip ssh max-sessions <1-5>
To set the maximum number of channels per session, use the following command in global configuration
mode:
CLI(configure)> ip ssh max-session-channels <1-10>
• A third possibility is to enter both the username and password as part of the command, as illustrated
in the following example:
CLI> ssh mylogin:[email protected]
2.15.3 Statistics
Use the following show command to display the list of current SSH sessions and related parameters:
CLI> show ssh
Connection Remote port Username Algorithm used
192.168.2.133 2345 admin dsa-3des
Use the following show command to display the SSH server state and related parameters:
CLI> show ip ssh
SSH Enabled
Authentication timeout 120 secs, retries 3
Session timeout 600 secs
Maximum number of sessions 5
Maximum number of channels per session 10
Authorized public keys: none
The following example show the process to create a host DSA public key, followed by the running of SSH
daemon.
configure terminal
crypto key generate dsa 512
ip ssh enable
ip ssh timeout 600
ip ssh auth-timeout 30
ip ssh auth-retries 2
• The capture feature enables the user to observe and to decode incoming and outgoing traffic on
logical devices; a logical device is a list of filters – up to 8 – applied on one interface.
• Capturing packets consists of three steps:
o First, one or more filter(s) must be configured to determine the protocols to decode.
o Then, the filter(s) must be attached to an interface, giving a logical device.
o And finally, the decoding can be started.
o To limit the performance impact of capturing, the captured packets are truncated to the
caplen value and displayed and stored that way in the capture file (the caplen ranges from
32 to 2048 bytes; the default value is 68 bytes).
o When reflexive is set, the capturing is done in both directions.
o The exclude parameter is optional and can be set to exclude some frames based on their
type and sub-type values; for example:
Beacon frames: type=0, subtype=8.
Probe requests: type= 0, subtype=4.
Probe responses: type=0, subtype=5.
o The filter matches all the options (<macaddr1>, <macaddr2>, and frame type) that are
presents. If the frame type (data, control, or management) is not present, all frames are
captured.
Example:
CLI(capture)> filter dot11 11:22:33:44:55:66 data
CLI(capture)> filter dot11 exclude 0 8
• When a filter is created, it is identified by a number. To show the list of filter-id, use the following
command:
CLI(capture)> show filters
• To define a logical device by attaching the previously defined filter(s) to an interface, use the following
command:
CLI(capture)> [no] attach <filter-list> <interface-type> <port>
The filter list can either be one filter number, or several filter numbers separated by space characters.
o Example 1: the following defines two devices, each with one filter, that can be monitored
separately:
attach 1 fastethernet 0/0
attach 2 fastethernet 0/0
o Example 2: the following defines one device, with two filters, that will monitor the two filters
together.
attach 1 2 fastethernet 0/0
• The logical device is identified by a number. To show the list of device-id, use the command:
CLI(capture)> show devices
2.16.3 S ta rt i n g , d i s p l a yi n g, s to ri n g t h e t ra f fi c c a p tu re
• To start and optionally display the traffic capture, use the following command in global mode:
CLI(capture)> exit
CLI> monitor capture <device-id>
[console | file <fname> [max-size <64-192000>] | console
file <fname> [max-size <64-192000>]] [verbose <0-3>]
[capture-server <server-ipv4-address | server-ipv6-adress
| domain-name> <server-port>
[interface <interface-type> <unit>] [vrf <vrf-name>]]
o By default, the captured packets are displayed on console. Use the ESC key to stop the
monitoring.
o Use the file keyword to have the captured packets written to a file (only, or on console also).
o The output file fname is in pcap format, compatible with TCPDump and other protocol analysis
tools such as Ethereal.
o Use the optional parameter max-size to change the maximum size of the file (15000 bytes by
default).
o Use the capture-server keyword to have the captured packets sent to a remote server, for
example, a Netcat server, as illustrated in Example 2 following next:
server-ipv4-address. This is the IPv4 address of the remote capture server.
server-ipv6-adress. This is the IPv6 address of the remote capture server.
domain-name. Instead of entering an IPv4 or IPv6 address, the remote capture
server's domain name can be entered.
server-port. This is the destination port on the remote capture server. It can be set
to any value between 1 and 65535.
interface <interface-type> <unit>. Optionally, an interface can be set
through which the remote capture server can be reached.
vrf <vrf-name>. Optionally, a VRF name can be entered.
1 (detailed):
02:15:37.259654 192.168.1.1 > 192.168.1.10 icmp: echo request (ttl 128, id 21740, len 60)
2 (hexadecimal normal):
02:15:56.102409 192.168.1.1 > 192.168.1.10 icmp: echo request (ttl 128, id 21751, len 60)
0x0000 45 00 00 3c 54 f7 00 00 80 01 62 6e c0 a8 01 01 E..<T.....bn....
0x0010 c0 a8 01 0a 08 00 3d 5c 03 00 0d 00 61 62 63 64 ......=\....abcd
0x0020 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 efghijklmnopqrst
0x0030 75 76 77 61 uvwa
3 (hexadecimal detailed):
02:16:19.261415 192.168.1.1 > 192.168.1.10 icmp: echo request (ttl 128, id 21757, len 60)
0x0000 45 00 00 3c 54 fd 00 00 80 01 62 68 c0 a8 01 01 E..<T.....bh....
0x0010 c0 a8 01 0a 08 00 39 5c 03 00 11 00 61 62 63 64 ......9\....abcd
0x0020 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 efghijklmnopqrst
0x0030 75 76 77 61 uvwa
Example 1
capture
filter arp
filter all
show filters
1. arp [caplen=68]
2. all [caplen=68]
attach 1 fastethernet 0/1
attach 2 fastethernet 0/1
show devices
1. arp on FastEthernet 0/1 [caplen=68]
2. all on FastEthernet 0/1 [caplen=68]
exit
monitor capture 2 console verbose 1
13:15:03.239326 200.13.0.1.1135 > 200.13.0.10.23 . [tcp sum ok] ack 8912395 win 7597 (DF)
(ttl 128, id 47965, len 40)
...
<ESC>
CLI>
Example 2 – Capturing SIP and real time traffic on the LAN side (trunk between PABX and SIP-
server); captured packets sent to a Netcat server:
capture
no attach all
no filter all
!
filter udp sport 5060 dport 5060 reflexive caplen 1500
filter udp src 192.168.1.10 reflexive caplen 1500
attach 1 2 FastEthernet 0/1
exit
monitor capture 1 capture-server ipbx.lab-oa.net 20223
o The Netcat server can be run on Linux using the UDP protocol. Output of this can be redirected
to Wireshark directly or can be stored in pcap format file, using following commands:
nc -l -u -p <port number> | wireshark -k -i
nc -l -u -p <port number> > remote.pcap
o Communication between capture client and server is based on the UDP Protocol, which does
not support retransmission or ACK based services. So, if the server is not started before the
capture tool starts sending captured packets, packets will not be retransmitted again.
The interceptor feature is meant to provide a simple way to test an IP link that terminates on an interface of
the OneOS-based router.
The interceptor feature enables the user to activate a TCP or UDP packet interceptor on a specified IP
interface or sub-interface and on a specified TCP or UDP port. The intercepted packet can be either
"absorbed" or "reflected". When absorbed the packet is discarded (not routed anywhere) but taken into
account in IP statistics (that can be retrieved by several means including SNMP). When reflected the
packet is sent back to the sender as a "regular" packet (received source address and port become new
destination address and port; conversely received destination address and port become new source
address and port). Configured IP services (routing, QoS…) apply as usual to the packet.
To start an interceptor session, use the following command in global configuration mode:
CLI(configure)> ip pkt-interceptor <if-type> <number/sub-if>[.index]
{ tcp | udp } <port> { absorb | reflect } [<acl-name>]
TCP/UDP port number must be between 1024 and 65535. The optional access-list acl-name must
already exist if used.
The above command can be entered only one time. To modify the interceptor session, first delete the
actual session using the command below then start a new session.
CLI(configure)> no ip pkt-interceptor
Use the following command in global mode to display the interceptor statistics:
CLI> show ip pkt-interceptor statistics
Listening on interface : FastEthernet 0/0
Interface address is : 192.168.1.10
Protocol : udp
Port : 1999
Mode : reflect
Filter :
Nb packet filtered : 0
Task Id : 0x80e204d0
Nb bytes in : 80
Nb bytes out : 80
No client connected
Five UDP packets with 16 bytes of data each have been sent to IP/port address 192.168.1.10:1999 of
FastEthernet 0/0 interface.
Use the following command in global mode to debug the interceptor session:
CLI> debug ip pkt-interceptor
The output of this command displays the CPU load for every CPU core, for one second, and for one
minute. The non-critical tasks are the non-real time tasks like SNMP, Web server, etc.
The output of this command has the following form:
System Informations for device <MotherboardType> S/N <SerialNumber>
Core <i>, <Core_Type>, CPU load for 1 second: xx% (Critical xx%, Non Critical yy%),one minute
yy%
With:
o <i>. This is the number of the CPU core for which the CPU load is displayed.
o <core_Type>. This can have the following values: mixed | control | forwarding
|application
The following is a practical example of the output of the show system status command:
System Informations for device MB90Ss0UFPE0SNWsd+ S/N L1207008997000890
Core 0, control, CPU load for 1 second: 48.5% (Critical 12.7% Non Critical 35.8%), one minute
69.8%
Core 1, forwarding, CPU load for 1 second: 28.0% , one minute 30.0%
Use the following command to display the system load history. It is possible to:
• display the global CPU load, or
• the CPU load of an individual CPU core, by optionally adding the CPU core number to the command:
o <i> is the number of the CPU core for which the CPU load is displayed.
The CPU load is given for the last minute, the last hour and the last three days:
o GLOBAL CPU LOAD CORE <i> <Core_Type> (last 60 Seconds)
o CRITICAL CPU LOAD CORE <i> <Core_Type> (last 60 Seconds)
o NON CRITICAL CPU LOAD CORE <i> <Core_Type> (last 60 Seconds)
o GLOBAL CPU LOAD CORE <i> <Core_Type> (last 60 Minutes)
o CRITICAL CPU LOAD CORE <i> <Core_Type> (last 60 Minutes)
o NON CRITICAL CPU LOAD CORE <i> <Core_Type> (last 60 Minutes)
o GLOBAL CPU LOAD CORE <i> <Core_Type> (last 72 Hours)
o CRITICAL CPU LOAD CORE <i> <Core_Type> (last 72 Hours)
o NON CRITICAL CPU LOAD CORE <i> <Core_Type> (72 Hours)
With:
<i>. This is the number of the CPU core for which the CPU load is displayed.
<core_Type>. This can have the following values: mixed | control | forwarding
|application
For the last hour and the last three days, the maximum and average values are given.
The examples following next are a practical example of the output of this command:
################################################################################
974974944983974973975962973973974975949947858669498459488589
646723633312624866630724093575639734772722722916008053352042
100
90 | | | | | | | | | | | | | || | | | |
80 | | | || | | | | | | | | | || | | | || | || ||
70 || || | || || || || | || || || || | || || | | || | || ||
60 || || | || || || || || || || || || | || || |||| || | || ||
50 || || | || || || ||||| || || || |||| || ||||||| || || |||||
40 ||||||||||| ||||| ||||| || || ||||||||||||||||||||||||||||||
30 ||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||
20 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
100
90
80
70
60
50
40
30
20 | | | | | |
10 ||||| | ||||||||||||||| || |||||||||||||||| ||||||||||||||||
0 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
753753833762753762753741762862753754837835746547277247366367
893665151242771606887685374025897662062118638789910846375776
100
90
80 | | | |
70 | | | | | | | | | | | | | || | | || | |
60 | | | || | || | | || || | | | || | | | || | || ||
50 || || | || || || || | || || || || | || || || | || | || ||
40 || || | || || || || || || || || |||| || ||||||| || || || ||
30 ||||||||||| ||||| ||||| || || |||||||||||||||||| || ||||||||
20 ||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||
10 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
################################################################################
73641
avg 027900000000000000000000000000000000000000000000000000000000
100
90 ||||
80 ||||
70 #|||
60 #|#||
50 #|#||
40 #|##|
30 ####|
20 ####|
10 #####
0 #####
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
1 11
avg 484270000000000000000000000000000000000000000000000000000000
100
90
80
70
60 |
50 |
40 |
30 |
20 |||||
10 #|##|
0 #####
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
5253
avg 543720000000000000000000000000000000000000000000000000000000
100
90
80 | ||
70 ||||
60 ||||
50 #|#|
40 #|#|
30 #|##
20 ####|
10 ####|
0 #####
0....0....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5 0 5
################################################################################
avg 000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0
0....0....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
avg 000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0
0....0....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
avg 000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0
0....0....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
1 25 12 164 1
444434443354335444444344633363333384424122204120000000000030
100
90
80
70
60 *
50 * *
40 * **
30 * **
20 ** * **
10 * * **** ** *** *
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
1 25 12 164 1
222222222222223222222222522242222070124011204120000000000030
100
90
80
70
60 *
50 * *
40 * **
30 * **
20 ** * **
10 **** ** *** *
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
111111111121112111111111111111111314200000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....
0 5 0 5 0 5 0 5 0 5
000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0
000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0
000000000000000000000000000000000000000000000000000000000000000000000000
100
90
80
70
60
50
40
30
20
10
0....5....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0
===============================================
| Memory status report | Kbytes | |
===============================================
| Ram size | 65 536 | |
| :..Program | 27 186 | |
| : :..code | 18 476 | |
| : :..data | 8 709 | |
| :..Static buffers | 192 | |
| :..Dynamic total | 34 974 | |
| : : used | 13 909 | 39.7% |
| : : free | 21 065 | 60.2% |
| : :..System total | 19 806 | |
| : : used | 5 610 | 28.3% |
| : : free | 14 196 | 71.6% |
| : :..Data total | 15 167 | |
| : used | 8 299 | 54.7% |
| : free | 6 868 | 45.2% |
| :..Ram disk total | 1 011 | |
| used | 5 | 0.5% |
| free | 1 006 | 99.6% |
| | | |
| Flash size | 2 048 | |
| :..Boot | 1 024 | |
| :..Static areas | 48 | |
| | | |
| Extended Flash size | 32 768 | |
| :..Flash disk total | 32 306 | |
| used | 9 408 | 29.1% |
| free | 22 898 | 70.8% |
===============================================
Note that prior to the V3.6R10E3 OneOS software release, the output of this command was as follows:
CLI> show memory
Total memory : 8440536 bytes
Allocated : 3503648 bytes (41%)
Free : 4936888 bytes (58%)
• To check the reasons why the router did reboot, some commands are available. The following
command provides the last reboot cause (warning: under certain circumstances, the reboot cause
may not be determined):
CLI> show reboot cause
2.19 STATISTICS
OneOS provides two types of statistics: interfaces statistics and global statistics.
Interfaces statistics are displayed on request using the following command in global mode:
CLI> show interfaces [<if-type> [<if-number>[/<sub-if>[.<index>]]]]
Refer to the various chapters describing the interfaces for more information about the displayed items.
Among these items some are mean values that are by default calculated over the last 4 seconds. To
change the period of time over which statistics are calculated, use the following command in global
configuration mode:
CLI(configure)> load-interval mean-rate <4-4294967295 seconds>
To revert to the default value (4 seconds), use the following command in global configuration mode:
CLI(configure)> load-interval mean-rate default
An embedded tool is provided to display global statistics (in "real time") with a refresh period of one
second. The CLI command is:
CLI> monitor global-statistics
This command opens a first summary screen. The navigation between the screens is done by typing keys
shown at the bottom of each screen, i.e.:
<Q>: to quit
<R>: to go to the IP routing screen
<W>: to access the PVC screens
<ESC>: to quit or to go back to the previous screen
<1 - 2>: to access detailed screen for PVC number 1 or 2
2.19.2.2 IP Routes
IF VCI VPI Type Status Encaps QOS PCR SCR MBS in out
kbps kbps cells kbps kbps
1. 20201 0 33 pppoa up aal5/mux UBR 2300 0 1
[1 - 1] - PVC [ESC]-Back [Q]-Quit
2.20.1 Introduction
• An embedded database is provided to declare the users allowed to access the device and to define
their access rights.
• Each user has a username, a password, and belongs to a group. The username is a 15-character
long string; the password is a 32-character long string. Both can contain any character, except "?", "!"
and "space".
Note that it is possible to use the above-mentioned characters by placing the character string between
quotation marks (") or between apostrophes (') if the quotation mark is part of the string.
• Three groups are pre-defined and map three levels of access rights:
o User (level 0): only access to elementary show functions or diagnostics functions such as ping
(configuration in read-only mode).
o Manager (level 7): access to all show functions, traces and configuration functions.
o Administrator (level 15): access to all functions including shell (for system debugging).
• As of OneOS V5.2, the newly created passwords are by default encrypted with the PKBDF2 algorithm
(= type 2), which is a robust, industry standard password encryption, whereas passwords used to be
encrypted with a weaker hash method in previous versions (= type 1).
The password is stored under hashed format on the device; whatever the user, whenever entering the
same password, the stored hash is different for each user.
• Type 2 is the default encryption algorithm, but OneOS V5.2 and onwards will accept passwords
created with older OneOS versions.
• With the new or enhanced encryption, a unique salt can be added for each user. This is a 32 byte
string that is unique for each user and completely random, and used in the hashing of the password.
• The user database is managed via CLI commands.
• If type 2 encrypted passwords are stored, and the router is downgraded to a OneOS version only
supporting type 1, the passwords will not be interpreted correctly.
So before downgrading, the user must first create type 1 passwords. The following sub-sections
explain how to do so.
• Note that passwords that have been stored in encrypted form, will always be displayed in encrypted
form, for instance when retrieving the running configuration of the device.
It is not possible anymore to view the passwords in unencrypted form.
• To add a user, use the following command in global configuration mode; also refer to the examples
below.
CLI> user add <username> <password> { user | manager | administrator
|<level: 0..15> }
[type 1 | encrypted | encrypted type 2 <salt>]
With:
o <username> <password> { user | manager | administrator |
<level: 0..15> }. Each username and password has a corresponding privilege level.
The privilege level of the user to be created is either a predefined group level, or a given level
between 0 (lowest privilege) and 15 (highest privilege).
o type 1. Add this option to set that the password must be encrypted according to the old or
basic encryption; this can be set for backward compatibility.
o encrypted. Add this option to set that the password is already MD5 encrypted, i.e. with the
old or basic encryption.
o encrypted type 2 <salt>. Add this option to set that the password is already encrypted
according to the new or enhanced encryption, with <salt> being a random string that is used
in the hashing of the password.
2.20.3 Examples
o This adds user user1 with password1, with privilege level manager or 7; the password will
be encrypted with the PKBDF2 algorithm (= type 2).
CLI> user add user456 password456 15
o This adds user user456 with password456, with privilege level administrator or 15;
the password will be encrypted with the PKBDF2 algorithm (= type 2).
CLI> user add user123 password123 15 type 1
o This adds user user123 with password123, with privilege level administrator or 15;
the password will be encrypted with the old or basic encryption method.
CLI> user add usertest “passwordtest” 0 encrypted
o This adds user usertest with already encrypted password “passwordtest”, with privilege
level user or 0; the password has been encrypted with the old or basic encryption method.
CLI> user add userAdmin “passwordAdmin” 15 encrypted type 2 saltstring
Example:
user delete user1
• A user can change his own password with the following command:
CLI> user password <new-password> [type 1]
o By default, the password will be encrypted with the PKBDF2 algorithm (= type 2).
o By adding type 1, the password will be encrypted with the with the old or basic encryption
method.
o By default, the password will be encrypted with the PKBDF2 algorithm (= type 2).
o By adding option type 1, the password will be encrypted with the with the old or basic
encryption method.
o Adding option encrypted type 2 <salt> means that the password has already been
encrypted with the PKBDF2 algorithm (= type 2), with random string <salt>.
• Examples:
CLI> user change-password user5 password555
o This command changes the password of user user5 to password555, which will be
encrypted with the new or enhanced type of encryption.
CLI> user change-password userAdmin “passwordAdmin”
encrypted type 2 saltstring
• The group (access rights level) may be changed for a given user:
CLI> user change-access <username> { user | manager | administrator
| <level:0..15> }
Example:
user change-access user2 manager
• The access level can also be dropped to a lower access rights level for the current user during the
current session with the command:
CLI> user drop { user | manager | administrator | <level:0..15> }
Example:
user drop manager
The purpose of this feature is to allow an administrator to customize the list of commands that can be
accessed by a non-administrator user. By default, three user privilege levels are defined and mapped to
TACACS+ privilege levels: user (TACACS+ privilege level = 0), manager (7) and administrator (15). Each
CLI command has its own privilege level. If the user privilege level is greater than or equal to the command
privilege, the user is allowed to use the command. For example, the "ping" command has by default the
privilege 0. If this privilege is raised to a higher value, a user having the privilege level "user" (i.e. privilege
level = 0) cannot access the "ping" command.
In configuration mode, the privilege level of a global mode command is defined as follows:
CLI(configure)> privilege exec level <level> <command-string>
level is an integer, ranging from 0 to 15 representing the new privilege of the command (0 being the
lowest privilege and 15 being the highest privilege).
command-string is the keyword that designates a command or the beginning of a command whose
privilege level is modified. This command applies on commands found outside configure terminal.
To reset the default privilege level, use the following command:
CLI(configure)> privilege exec reset <command-string>
Similarly, the following two commands apply only on commands listed under configure terminal.
To configure the privilege level of a "configure" mode command:
CLI(configure)> privilege configure <level> <command-string>
Lastly, there are configuration-commands that are duplicated under several leafs of the CLI tree. That is
especially the case of interfaces configuration commands. To configure accessibility of specified
commands under an interface type, use the following command:
CLI(configure)> privilege { if-adsl | if-atm | if-bri | if-dot11radio
| if-efm | if-ethernet | if-fastethernet | if-gigabitethernet
| if-l2tunnel | if-loopback | if-pri | if-pstn | if-serial | if-tunnel
| if-va | if-vt | dhcp | router-bgp | router-ospf | router-rip | rtr
| sip-gateway | voice-port } <level> <command-string>
Note: if-va stands for interface virtual-access and if-vt for interface virtual-template.
Example: to allow a user of level 0 to change the IP address of the Fast Ethernet ports.
privilege exec level 0 configure terminal
privilege configure level 0 interface fastethernet
privilege if-fastethernet level 0 ip address
To view the current privilege level of the logged user, use the following command in global mode:
CLI> show privilege
Example:
CLI> show privilege
Current privilege level is: 15
CLI>
To view the current and the default privilege level of a given CLI command, use one of the following
commands in global mode:
CLI> show privilege command exec <command-string>
Example:
CLI> show privilege command exec configure
level (current / default): command node
------------------------------------------
7 / 7: configure
------------------------------------------
CLI>
2.22 BANNER
motd is for the text displayed when attempting to log in, whereas exec is for the text displayed when
logged in.
The string is delimited by stars and contains any character and can be up to 230 characters long.
Carriage return must be entered as \r\n.
For an example, see below.
As of V4.3R2E2 software release, for longer banner (up to 9200 characters – 40 lines of 230-char long),
use the following command in global configuration mode:
CLI(configure)> banner { motd | exec } sequence <1-40> *<string>*
Will output:
##############################
OneOS-based Router
##############################
Note: because this banner is less than 230 characters long, it can also be configured as follows:
CLI(configure)> banner exec *##############################\r\n\r\n
OneOs-based Router \r\n\r\n##############################*
To remove the banner (or banner line) use the no form of the command:
CLI(configure)> no banner { motd | exec } [sequence <1-40>]
As of V4.3R4E17 software release and for backward compatibility, for long banner (up to 8800 characters
– 40 lines of 220-char long), use the following command in global configuration mode:
CLI(configure)> banner_extension { motd|exec } sequence <1-40> *<string>*
Note that this command will silently truncate the banner string when more than 220 characters are entered.
To remove the banner (or banner line) use the no form of the command:
CLI(configure)> no banner_extension { motd | exec } [sequence <1-40>]
Note that when all forms of banner commands are used together, the banners are displayed in the
following order:
1. First, the banner entered by the banner command used without the sequence keyword.
2. Second, the banner lines entered by the banner_extension command.
3. And last, the banner lines entered by the banner command used with the sequence keyword.
Important remark:
Owing to CLI syntax limitation, the number of "words" in a banner is de facto limited.
• A banner entered without the sequence keyword is limited to 30 words.
• A banner line entered with the sequence keyword is limited to 28 words.
A "word" is a group of consecutive characters all different from the space character and separated from
another "word" by one or more space characters.
Instead of maintaining usernames and passwords inside the device, usernames and passwords can be
centrally managed in a database. Whenever a user needs to log in, the database server is queried and
authenticates the users’ login. Either the RADIUS or the TACACS+ protocol can be used to securely send
login/password in access requests and return authentication.
Three steps
Access rights
AAA configuration
• The OneOS device sends, within its AAA authentication request to a RADIUS server, a Vendor ID that
identifies the device and allows the RADIUS server to apply the correct privileges to the user.
• The Vendor ID that is included in the AAA authentication request, is of type 26, as defined by
RFC 2138 - Remote Authentication Dial In User Service (RADIUS).
• The String field of attribute 26 contains attribute 32, which is the NAS-Identifier; also refer to
RFC 2138 - Remote Authentication Dial In User Service (RADIUS) for further details.
• The Vendor ID value is 13191.
• Note that, if the Vendor ID would not be available in the AAA authentication request, the user would
only be assigned the privileges associated with level 7.
2.23.2 RADIUS
The RADIUS (Remote Access Dial-In User Service) protocol allows securely transmitting user names and
passwords, and authenticating the user by means of a RADIUS server. This maintains a list of users with
their access rights. The embedded RADIUS client is configured with following CLI commands.
• Prior to configuring the RADIUS client, enter the global configuration mode:
CLI> configure terminal
Then, to define the server the client will use, use the following command in global configuration mode:
CLI(configure)> radius-server { <ipv4-address> | < ipv6-address>
| <host-name> } <shared-key>
[clear-text | encrypted] [<interface> <unit>]
[<auth-UDP-port>] [retransmit <1-100>]
[timeout <1-600>] [vrf <vrf-name>]
• The following command enables to view the settings that are used to connect to the RADIUS server:
CLI> show radius-server
List of Radius server -----
• Example:
no radius-server 120.1.4.5 1813
The RADIUS server must be configured to define users and access rights (user, manager, and
administrator).
The example given below shows the configuration files for the FreeRadius server (www.freeradius.org):
• In the file /usr/local/etc/raddb/dictionary,
add the line: $INCLUDE dictionary.oneaccess.
• In the directory /usr/local/etc/raddb/,
create the file dictionary.oneaccess, which contains the access right definition:
VENDOR OneAccess 13191
ATTRIBUTE OA-User-Level 1 integer OneAccess
VALUE OA-User-Level user 0
VALUE OA-User-Level manager 7
VALUE OA-User-Level administrator 15
• Then, configure the passwords required by the enable command. For example, for the administrator
level:
$enab15$ Auth-Type := Local, User-Pasword == "password"
OA-User-Level=administrator
• In the file /usr/local/etc/raddb/clients.conf, add the following lines in order to identify the
client (e.g. an OneOS-based router with 192.168.2.60 as IP address) and the shared secret key:
client 192.168.2.60 {
secret = key23
shortname = OA-radius
}
2.23.3 TACACS+
TACACS+ (Terminal Access Controller Access Control System +) is an authentication protocol based on
TCP, which allows a network access server to offload the user administration to a central server, which
maintains a users list with their access rights as for a Radius server. When a user logs in the device (using
telnet), the login/password couple is sent to that server using the TACACS+ protocol. If the user name and
password are found in the TACACS+ server database, the access is granted to that user. In addition to
that authentication service, the TACACS+ server can respond with additional parameters, including access
rights.
Three levels of access rights have been defined:
• User: this only gives access to elementary show functions or diagnostics functions as ping
(configuration in read-only mode).
• Manager: this gives access to all show functions and configuration functions.
• Administrator: access to all functions including debug.
TACACS+ is not compatible with other protocols of the TACACS family such as TACACS or XTACACS.
The embedded TACACS+ client is configured by means of CLI commands.
To configure the TACACS+ client, use the following command in global configuration mode to define the
server:
CLI(configure)> tacacs-server { <ipv4-address> | <ipv6-address>
| <host-name> } [<auth-port>]
[<key>] [clear-text | encrypted] [timeout <1-600>]
[<interface> <unit>] [vrf <vrf-name>]
If more than 46 characters are required, the tacacs-server command must be used differently:
• The index option must be added to the command. This is a number between 1 and 99, referring to
the tacacs-server key command.
• The key option must be omitted.
CLI(configure)> tacacs-server { <ipv4-address> | <ipv6-address>
| <host-name> } [<auth-port>]
[timeout <1-600>]
[<interface> <unit>] [vrf <vrf-name>]
[index <index>]
• The tacacs-server key command must be set, with the index number that was added in the
tacacs-server command above, and the key:
CLI(configure)> tacacs-server key <index> [<key>]
[clear-text | encrypted]
o index. This is the index number that was added in the tacacs-server command, so this
links the tacacs-server key command to the tacacs-server command.
o key. This is the shared key that can be entered in clear-text or already encrypted.
In this case, the key length can have a maximum length of 55 characters.
Example
The following command enables to view the settings that are used to connect to the TACACS+ server:
CLI> show tacacs-server
----- List of TACACS+ server -----
To remove the server and disable the TACACS+ client, use the no form of the above command:
CLI(configure)> no tacacs-server <host> [<auth-port>] [vrf <vrf-name>]
Example - continued
When the user enters enable or enable 15, an authentication for enable is sent. This message contains
the username and the desired privilege level. The server should prompt for a password and compare the
response with the password configured for the user $enab15$. The username is by default the username
provided at login. But it could be changed so that username is $enab15$. To force the use of the
username:
CLI(configure)> no tacacs use-username
The TACACS+ server must be configured to define users and access rights (user, manager, and
administrator).
On the free TAC_PLUS server, the configuration looks so for a user login:
user = henry {
login = cleartext mypassword
}
Then, you can configure the passwords for level 0 (user), level 7 (manager), level 15 (administrator).
User = $enab0$ {
login cleartext ********
}
User = $enab7$ {
login cleartext ********
}
User = $enab15$ {
login cleartext ********
}
A major issue with the configuration method presented before is the lack of security and flexibility: the
enable 15 password is shared among all users. It is more desirable that each user gets a unique
password and that a privilege level be associated to that user.
Example 1 with TAC_PLUS:
user = henry {
login = cleartext mypassword
service = exec {
priv-lvl = 7
}
}
Example 2:
user = henry {
login = cleartext mypassword
member = admingroup
}
user = antoine {
login = cleartext otherpasswd
member = admingroup
}
group = admingroup
service = exec {
priv-lvl = 15
}
}
• If no TACACS+ or RADIUS servers are configured, the local password file is used.
• As long as no AAA commands have been entered, the OneOS device does not try to reach any
defined TACACS+ nor RADIUS servers.
• If TACACS+ or RADIUS servers are configured, according AAA configuration (AAA authentication,
AAA authorization) behavior may be the following:
o If at least one of them is reachable, authentication is done with the AAA server(s) when logging
in, command authorization is done or not.
o If none of them is reachable, authentication is done using the local password file, command
authorization is possible or not.
Authentication
• To configure user authentication with AAA, use the following command in global configuration mode:
CLI(configure)> [no] aaa authentication login
{ default | console | network }
[radius | tacacs] [<group-name>]
o If default is used, all accesses via console or network (Telnet/SSH) are controlled using the
configured AAA servers; otherwise only the accesses from the designated means are
controlled.
o If the radius keyword is entered, all the RADIUS servers are used in the order they are
configured.
o If the tacacs keyword is entered, all the TACACS+ servers are used in the order they are
configured.
o If a group-name is entered, the servers from that AAA server group are used. See
configuration hereafter.
• To configure the servers for enabling authentication (i.e. the servers that are queried when the user
enters the enable command), use the following command:
CLI(configure)> [no] aaa authentication enable
{default | console | network }
{ radius | tacacs | <group-name>}
• To configure a message that will be displayed when no AAA server is reachable for authentication,
use the following command in global configuration mode:
CLI(configure)> [no] aaa authentication banner [sequence <1-40>] <string>
Refer to 2.22 Banner for more information about the banner format and an example.
• To configure an AAA server group, first create the server group as follows:
CLI(configure)> [no] aaa group server { radius | tacacs } <group-name>
• Use the following command to use a designated VRF different from the default VRF:
CLI(config-sg-tacacs)> [no] ip vrf forwarding <vrf-name>
CLI(config-sg-radius)> [no] ip vrf forwarding <vrf-name>
Authorization
• To enable AAA authorization (TACACS+ servers only) for a given privilege level:
CLI(configure)> [no] aaa authorization command <level> [default]
{ tacacs+ | <group-name> } [none]
o The <level> parameter represents a command privilege. Once this command is entered,
every command having the same privilege level must be authorized by the AAA server.
o The default parameter is not used.
o If the tacacs+ keyword is entered, all the TACACS+ servers are used in the order they are
configured.
o If a <group-name> is entered, the servers from that AAA server group are used.
o The none parameter is used when the AAA server is unreachable to indicate that no
authorization must be performed in that case (related commands are therefore authorized).
When the none parameter is not used (default value) the related commands are not authorized
when the AAA server is unreachable.
• In some cases, one wants to enter straightaway in exec mode (i.e. with the highest privilege level)
without entering the enable command. To do so, use the following command:
CLI(configure)> [no] aaa authorization exec default if-authenticated
tacacs+
Accounting
• The last "A" of AAA stands for accounting. TACACS+ permits the accounting of configuration
sessions. AAA accounting is only supported with TACACS+ servers. To inform TACACS+ server(s)
about users logging in and out of the router, use the following command in global configuration mode:
CLI(configure)> aaa accounting exec default start-stop
{ tacacs+ | group <group-name> }
• The AAA command accounting feature logs any entered command by a user on a TACACS+ server.
The AAA command accounting is activated for commands of a given privilege level:
CLI(configure)> aaa accounting commands <level> default stop-only
{ tacacs+ | group <group-name> }
• The AAA system accounting feature logs the system-level events (shutdown, reboot) on a TACACS+
or RADIUS server. To inform a TACACS+ or RADIUS server(s), use the following command in global
configuration mode:
CLI(configure)> aaa accounting system default start-stop
{ radius | tacacs+
| group <group-name> }
• Use the following command to display statistics per configured TACACS+ server:
CLI> show tacacs [vrf <vrfname>]
When adding a vrf, only the servers associated with this VRF will be displayed.
When omitting the vrf, the servers associated with the default VRF will be displayed.
The following is an example output:
CLI> show tacacs
Tacacs+ Server: 194.250.187.200
Server port: 49
Socket opens: 12
Socket closes: 12
Socket errors: 0
Socket Timeouts: 0
Failed Connect Attempts: 0
Total Packets Sent: 20
Total Packets Recv: 20
Counters description:
o Tacacs+ Server: IP address of the TACACS+ server.
o Socket opens: Number of TCP sockets opened to connect to the TACACS+ server.
o Socket closes: Number of TCP sockets closed.
o Socket errors: Any other socket-read or -write errors, such as incorrect packet format and
length.
o Socket Timeouts: Will be incremented only when the server is not reachable, while initiating the
AAA request.
o Failed Connect Attempts: Number of failed TCP connections to the TACACS+ server.
o Total Packets Sent: Number of packets sent to the TACACS+ server.
o Total Packets Recv: Number of packets received from the TACACS+ server.
• Use the following command to clear the TACACS+ statistics related to the
show statistics tacacs command:
CLI> clear statistics tacacs
• Use the following command to clear the TACACS+ statistics related to the
show tacacs command:
CLI> clear tacacs [vrf <vrfname>]
When adding a vrf, only the TACACS+ statistics associated with this VRF will be cleared.
When omitting the vrf, the TACACS+ statistics associated with the default VRF will be cleared.
• Time synchronization protocols such as SNTP provide a clock that is referenced on the international
reference (GMT). To adapt the GMT time to the local time, it can be necessary to adjust the time zone
and the seasonal time (summer time).
They are configured as follows, beginning under configuration terminal:
CLI(configure)> clock timezone <name> <-23..+23>
o Where <-23..23> is the hour offset you want to apply on the GMT time.
o name is an arbitrary string that can ease readability (for example: CET, Paris, GMT …).
The first part designates when the summer time starts. The second part is for winter time.
Where the arguments have the following meaning:
o 1-4 | first | last: designates the week when the summer/winter time starts
o day: is the day of the week when the summer/winter time starts (Sunday for example)
o month: is the month when the summer/winter time starts (March for example)
o time: is the time when the summer/winter time starts (02:00 for example)
• The SNTP protocol (Simple Network Time Protocol) enables to synchronize time via a connection to a
NTP server.
• The SNTP client is configured with CLI commands either in broadcast mode (to accept NTP packets
from any NTP broadcast server), or via a specific connection to a known server (to request NTP
packets from the known NTP server).
• The command show sntp gives the status of the SNTP client.
• To configure the SNTP client in broadcast mode, to accept NTP packets from any NTP broadcast
server, use the following command (use the VRF option for a non-default VRF):
CLI(configure)> sntp broadcast client [vrf <vrf-name>]
• When the broadcast mode is not used, to configure the SNTP client to request NTP packets from a
specified NTP server, use the following command (use the VRF option for a non-default VRF):
CLI(configure)> sntp server <ipv4-address> [version <1-4>]
[<source-if> <unit>] [vrf <vrf-name>]
• The SNTP service client SNTP is stopped with the next commands:
CLI(configure)> no sntp broadcast client
Or
CLI(configure)> no sntp server 200.19.0.1
The OneOS SNTP server can be enabled to provide date/time synchronization to LAN devices such as IP
phones.
• The following command configures the SNTP Server to send packets in broadcast or multicast mode
where the following parameters can be set:
CLI(configure)> sntp-server broadcast <intf-name> <intf-index>
[<multicast-addr>] [src-port <src-port>]
[dst-port <dest-port>] [poll <poll>] [ttl <ttl>]
o <intfname> <intfindex>. This is the output interface, for example: fastEthernet 0/0.
o <multicast-addr>. This is the destination multicast address (for multicast); if not set, the
interface broadcast address is used.
o <src-port>. This is source port of the output packets; the default port is 123.
o <dest-port>. This is the destination port of the output packets; the default port is 123.
o <poll>. This is the sending interval, expressed in seconds; the default is 64 seconds.
o <ttl>. This is the Time-To-Live of the output packets; the default is 64 seconds.
Use the no form of the command to disable the SNTP server previously configured.
CLI(configure)> no sntp-server broadcast …
• The following command specifies that the onboard SNTP server shall use the synchronization of the
embedded SNTP client to send broadcast packets. If the command is enabled and the SNTP client is
not synchronized, the SNTP Server does not send any broadcast packet and it responds to SNTP
requests by setting the 'stratum' field to '0' and 'Leap Indicator' to '3' (alarm condition - clock not
synchronized).
CLI(configure)> [no] sntp-server client-reference
• The following command configures the SNTP server so that it responds to multicast requests.
CLI(configure)> sntp-server multicast <intfname> <intfindex>
<multicast-addr> [src-port <src-port>]
o <intfname> <intfindex>. This is the output interface, for example: fastEthernet 0/0.
o <multicast-addr>. This is the multicast address the device monitors.
o <src-port>. This is the port through which the device monitors for multicast requests. The
default port is 123.
Use the no form of the command to disable the multicast response mode.
CLI(configure)> no sntp-server multicast …
• The following command enables the unicast mode of the SNTP server so that it responds to unicast
requests.
CLI(configure)> sntp-server unicast [src-port <src-port>]
[source { ifname | ip }
o <src-port>. This is the port through which the device monitors for unicast requests. The
default port is 123.
o source { ifname | ip }. This is a source address that can be added to the command; it
can be an IP address, an interface, or a virtual interface (VRRP).
The following are 2 examples of how the command can be used:
sntp-server unicast source gigabitethernet 0/0.30
sntp-server unicast source 30.30.30.1
Use the no form of the command to disable the unicast response mode.
CLI(configure)> no sntp-server unicast [src-port <src-port>]
• The following command configures the SNTP Server to use the designated VRF:
CLI(configure)> [no] sntp-server vrf <vrf-name>
• The following command shows the current SNTP server configuration and statistics.
CLI> show sntp-server
Configuration Example
configure terminal
sntp-server client-reference
sntp-server unicast
exit
• The SYSLOG service allows to send events to several SYSLOG servers (maximum: 4).
The SYSLOG server can store/filter/process incoming messages, so that network administrator can
use standard, UNIX-based tools.
• This facility is enabled via CLI commands when configuring events, such as for example G.SHDSL:
CLI> event filter add sys gshdsl all syslog
• One or more SYSLOG servers can be defined; use the following commands:
CLI> configure terminal
CLI(configure)> syslog server { <hostname> | <A.B.C.D> | <X:X:X::X> }
<0-23> [<interface><unit>] [vrf <vrf-name>]
o vrf <vrf-name>. Optionally, a VRF can be specified. If not provided, the default VRF is
used.
• The following show command can be used to list all the defined SYSLOG servers:
CLI> show syslog servers
Server Facility Interface
Hostn1 20 Atm 0.1
• The following information provides some hints for a Linux syslog server configuration:
o The standard UDP port 514 is used by the SYSLOG client to access the server.
o The configuration file "syslog.conf" must contain the name and the path of the text file to log
the messages according to the used facility:
local0.* /var/log/one400_evt
The performance probe agent (PPA) is embedded software that performs active monitoring of the network
performance.
2.26.1.1 Introduction
PPA-PM manages probes sending test packets to a specified destination. The test packets must be
returned by the receiver after inserting additional information in packets. By means of this information, the
sender is able to calculate interesting quality metrics of the IP path from source to destination, including
packet loss, round trip delay and jitter.
PPA-PM requires a sender (emitting test traffic) and responder (looping test traffic back to sender). When
the responder loops a packet, the responder inserts a timestamp. Let us assume T(i,j) as the time
stamp for the ith packet, at the jth step.
Sender Responder
T(1,1)
T(1,2)
T(1,3)
T(1,4)
T(2,1)
T(2,2)
T(2,3)
T(2,4)
The sender and responder do not have the same time; their clocks are most probably not synchronized on
the same source (we assume an offset Toff exists between both clocks). Let us assume that the transit
delay for packet 1 is D.
Toff + T(1,2) = T(1,1) + D
If we assume that the processing delay in responder is negligible, we can simplify the formula with
T(N,2)=T(N,3). The formula is:
RTD = T(N,4) – T(N,1)
The jitter on one-way delay is the time difference between the one-way transit delays of two consecutive
packets. This jitter can be measured from source to destination and vice-versa.
JitterSD = T(N+1,2) + Toff – T(N+1,1) – (T(N,2) + Toff – T(N,1))
Every packet carries a sequence number, so that PPA-PM can identify packet loss ratio.
PPA-PM is configured to forge test packets in three ways:
• ICMP Timestamp Request: the sender emits ICMP packets whose type is 13 (Timestamp request).
The responder must respond with its own timestamp with ICMP packet type 14. This is a standard
requirement of the ICMP protocol. In other words, the responder can be any router type & make. This
allows to measure packet loss, round trip delay and one-way jitter.
• UDP Timestamp: the sender sends UDP packet in an OneAccess proprietary format. The responder
must listen to the appropriate port and respond with a timestamp included in UDP reply packet. This
allows to measure packet loss, round trip delay and one-way jitter.
• UDP Ping: the sender sends UDP packet in an OneAccess proprietary format. The responder must
listen to the appropriate port and respond with an appropriate UDP reply packet. This allows to
measure packet loss and round trip delay.
The PPA-PM responder must be configured on responding routers only if UDP ping or UDP timestamp
probes are needed.
The next command starts or restarts the PPA-PM Responder on a specified port and binds the Responder
on an IP address or on an interface if specified (binding means a received packet is accepted if it is
destined to the specified IP address or if it is received on the requested interface). If the Responder is
restarted, the statistics are reset.
CLI(configure)> ppa-pm responder port <port-number>
[address <inet-address> | interface <type> <unit>]
PPA-PM responder is available from a non-default VRF. Use the following command to set the VRF.
CLI(configure)> ppa-pm responder vrf <vrf-name>
To disable the PPA-PM responder (default state: disabled), enter the no form of the command:
CLI(configure)> no ppa-pm responder
A PPA-PM session must be created. A session is an object containing configuration information and
statistics of a probe. It is identified by a unique ID. To start configuring a PPA-PM session:
CLI(configure)> [no] ppa-pm session <session-id>
CLI(ppa-pm-cfg)>
The target address must be defined (If the port parameter is not used the target port is the one specified by
the ppa-pm default udp port):
CLI(ppa-pm-cfg)> target address <inet-address> [port <port-number>]
The PPA-PM sends several packets during a measurement campaign. The number of packets within one
test campaign is defined as follows (default: 10 packets):
CLI(ppa-pm-cfg)> packet count <number>
The timeout for packet reply (enabling detection of packet loss) is set as follows (default: 5000 ms):
CLI(ppa-pm-cfg)> timeout <milliseconds>
The interval between two transmissions of packets is set as follows (default: 20 ms):
CLI(ppa-pm-cfg)> interval <milliseconds>
The DSCP (TOS) value is set in the IP packets as follows (default: 0):
CLI(ppa-pm-cfg)> tos <value>
Note about the TOS: if the user wants to study network packet loss based on packet precedence, the
proper TOS value should be selected. It is important to consider that red packets may be re-colored by
traffic policing. One should activate color-aware packet marking to avoid the precedence field to be
upgraded.
The size of the payload is set as follows (default: 32 bytes):
CLI(ppa-pm-cfg)> data-request size <bytes>
The time between two consecutive measurement campaigns is set as follows (default: 60 seconds):
CLI(ppa-pm-cfg)> frequency <seconds>
Note that the frequency (in seconds) should be greater than packet count times the interval value (which is
set in milliseconds).
Then complete session configuration with the following command:
CLI(ppa-pm-cfg)> exit
When not set in the PPA-PM session configuration, the destination can be set as follows (default: 7777):
CLI(configure)> ppa-pm default udp port <port-number>
To schedule a PPA-PM probe (i.e. to program the launch of measurement campaigns), use the command:
CLI(configure)> ppa-pm schedule <session-id> start { now | <HH:MM:SS> }
To stop the execution of a PPA-PM probe (i.e. to stop the measurement campaigns), use the command:
CLI(configure)> no ppa-pm schedule <session-id>
Sender Side
configure terminal
interface fastEthernet 0/0
ip address 10.10.10.2 255.255.255.0
exit
ppa-pm session 1
type jitter-udp-ping-timestamp
target address 10.10.10.1 port 35000
exit
ppa-pm schedule 1 start now
2.26.1.5 Statistics
To show the configuration of a PPA-PM session (if session-number is not specified, all sessions are
shown):
CLI> show ppa-pm session [<session-number>] configuration
session/packet type: ICMP TIMESTAMP (ITS), UDP, UDP TIMESTAMP (UTS)
> session | target | packet | timeout(ms) | data size(B)
status | source | frequency(sec)| interval(ms)| tos
-------------------------------------------------------------------------
> 39 192.168.1.2 :7777 15 (UDP) 5000 32
active 192.168.1.1 60 20 0
To show the statistics of a PPA-PM session (if session-number is not specified, all sessions are shown):
CLI> show ppa-pm session [<session-number>] operational-state
session/packet type: ICMP TIMESTAMP (ITS), UDP, UDP TIMESTAMP (UTS)
PPA-PM session: 39 (active)
owner: ppa-pm-39
vrf: <undefined>
target: 192.168.1.2:7777
source: 192.168.1.1
packet: 15 (UTS)
frequency: 60sec
timeout: 5000ms
interval: 20ms
data size: 32bytes
tos: 0
completion status: ok
completion time: 2009.08.05 09:13:29 +01:00 UTC
executions count: 19
received packets: 15
.round-trip times: 3avg, 55sum, 1min, 36max
jitter S->D: 7num, 1sum, 2sum2, 1max, 7num, -1sum, 1sum2, -1max, 0dev
jitter D->S: 6num, 35sum, 1242sum2, 35max, 8num, -35sum, 1241sum2, -35max, 13dev
loss distribution: 0(S->D), 0(D->S)
loss: 0, OOS:0, TMO:0
used resources: 291bytes, 0UDP socket(s), 0task(s) running
In the example above: 15 packets have been received with an average round-trip delay of 3ms, the
minimum round-trip delay being 1ms, the maximum being 36ms and the sum of all round-trip delays being
55ms.
With regard to jitter values (differences between two consecutive round-trip delay values) in the direction
from source to destination (S->D), 7 have been positive (increased network latency) with the sum being
1ms, the maximum being 1ms and the sum of the squares being 2 while 7 have been negative (decreased
network latency) with the sum being -1ms, the maximum being -1ms and the sum of the squares being 1.
In the direction from destination to source (D->S), 6 jitter values have been positive with the sum being
35ms, the maximum being 35ms and the sum of the squares being 1242 while 8 have been negative with
the sum being --35ms, the maximum being -35ms and the sum of the squares being 1241.
The standard deviation is 0ms in the direction from source to destination (S->D) while it is 13 ms in the
direction from destination to source (D->S).
With regard to packet losses between round-trip, they are counted in each direction with distinction
between arrival out of sequence (OOS) and elapsed time-out (TMO).
RTR operates by generating and analyzing traffic to provide a set of performance measurements such as
network delay, packet loss, availability and jitter. The task of measuring a specific metric is called a
"probe".
Currently, the supported probes are:
• ICMP Echo, which performs a classic ping operation on a target.
• ICMP PathEcho, which performs a series of pings on every hop of the path from the source to the
target, like in a traceroute operation.
• pathJitter, which calculates round trip delays and a jitter measurement of the round trip delay on
the path.
• udpEcho, with configurable source and destination ports and IP addresses.
The probes can be scheduled to be executed continuously or for a determined period of time, starting
immediately or after a specific delay, or even triggered by events such as the failure of another probe.
The results of each probe can be analyzed by the PPA agent, filtered and eventually stored. Depending on
the values, the results can trigger events such as the start of another probe or notifications to a network
management system via SNMP traps.
The creation and scheduling of probes and retrieval of results can be done via CLI or SNMP.
Probes are identified with a number in the 1-2147483647 range. In order to facilitate the management of
probes, they can have an "owner" string and a "tag" string attached.
To create the probe, use the following command, in global configuration mode:
CLI(configure)> rtr session <session-id>
CLI(conf-rtr)>
The CLI enters the rtr configuration mode, where the operational parameters of the probe, such as target
address, filtering options and data collection can be configured. A source address for the probe can be set
as well.
• Use the type command, to define the type of the operation and the target address.
o To create an ICMP Echo probe, use the following command:
CLI(conf-rtr)> type echo protocol ipIcmpEcho <target-address> [<source-
address>]
The number-of-packets parameter (default: 10) designates the number of packets sent at each
measurement. They are sent every interval ms (default: 20 ms).
If the keyword targetOnly is used, the packets are sent directly to the destination address,
without probing the path.
o To create an udpEcho probe, use the following command:
CLI(conf-rtr)> type udpEcho dest-ipaddr <IP address>
dest-port <port number>
src-port <port number>
[src-ipaddr <IP address>]
A destination IP address and port must be set, as well as the source port; adding the source IP
address is optional.
• In order to facilitate the management of probes, an owner string can be set:
CLI(conf-rtr)> owner <string>
• A timeout for the operation can be configured with the following command:
CLI(conf-rtr)> timeout <time-in-ms:0-604800000>
The timeout is the time the device will wait before considering the packet lost.
• The interval between successive executions of the probe can be configured with the following
command:
CLI(conf-rtr)> frequency <time-in-s:0-604800>
The frequency is the time interval between two consecutive measurement campaigns.
Note that the frequency, in seconds, should be greater than the timeout value, which is set in
milliseconds.
• The DSCP (TOS) value to be set in the IP packets can be configured with the following command:
CLI(conf-rtr)> tos <decimal-value:0-255>
If the user wants to study network packet loss based on packet precedence, the proper TOS value
should be selected. It is important to consider that red packets may be re-colored by traffic policing.
One should activate color-aware packet marking to avoid the precedence field to be upgraded. Refer
to "Traffic policing" section in "Quality of Service" chapter of "OneOS – Basic IP User Guide"
document.
• The size of the payload can be configured with the following command:
CLI(conf-rtr)> request-data-size <data-size-in-bytes:64-16384>
• Another important setting is the threshold value, which can be used for triggering events and
filtering the results with better granularity:
CLI(conf-rtr)> threshold <time-in-ms:0-2147483647>
For example, by setting the timeout to 300 ms and the threshold to 100ms, will enable the user to
be notified of a deterioration of the quality of service before this becomes a problem.
• RTR is available from a non-default VRF. Use the following command to set the VRF
CLI(conf-rtr)> vrf <vrf-name>
Once the probe was created and all the parameters set, we can schedule the probe for execution using
the following command:
CLI(configure)> rtr schedule <entry-number> [ageout <0-2073600>]
[life <0-2147483647> | forever]
[start-time { now | pending | hh:mm[:ss] }]
We can start the probe immediately with the now option, at some specified time (hh:mm:ss) or leave it in
a pending state (default value), waiting to be triggered via an event.
We have the possibility to stop the probe after a determined interval with the life option (default 3600
seconds) or to have a permanent probe with the forever option.
For temporary probes we can set an ageout value (default 0=infinite). After the probe has been stopped,
and the specified number of seconds has elapsed, the probe will be deleted automatically.
Example: start the probe immediately, with a lifetime of 5 minutes:
CLI(configure)> rtr schedule 1 life 300 start-time now
Note that a scheduled probe cannot be modified. The rtr session command will display a warning
message if you attempt to reconfigure an active probe.
We can suppress a session scheduling with the following command:
CLI(configure)> no rtr schedule <entry-number>
The following command allows us to inspect the status of the probes, as well as the results:
CLI> show rtr ?
application - RTR Application
collection-statistics - RTR Statistic Collections
configuration - RTR configuration
distributions-statistics - RTR Statistic Distributions
history - RTR History
operational-state - RTR Operational State
reaction-trigger - RTR Reaction Trigger
Except for show rtr application, which displays general information on the PPA module, all show
rtr commands accept an optional parameter for displaying just one entry.
Example of output for a pathEcho probe:
CLI> show rtr configuration 999
Complete Configuration Table (includes defaults)
Entry Number: 999
Owner:
Tag:
Type of Operation to Perform: pathEcho
Reaction and History Threshold (milliseconds): 5000
Operation Frequency (seconds): 60
Operation Timeout (milliseconds): 5000
Verify Data: FALSE
Status of Entry (SNMP RowStatus): active
Protocol Type: ipIcmpEcho
Target Address: 192.168.0.1
Source Address: 0.0.0.0
Target Port: 0
Source Port: 0
The PPA can be configured to analyze, filter and store the results of the probes, and to react to specific
conditions, either via CLI or via SNMP.
Storage of the results is enabled via the history facility, which can be configured to filter the samples
retained.
CLI(conf-rtr)> lives-of-history-kept <nb-of-history-kept:0-2>
CLI(conf-rtr)> filter-for-history { all| failures| overthresold| none }
Entry is the RTR session identifier; LifeI is the index of the history kept; BucketI is the index of the
bucket (see below) in the history life; SampleI is the index of the sample in the bucket; SampleT is the
time of the sample (as the number of milliseconds since the last system boot up); CompT is the time within
the operation has bee completed; Sense is the return code of the operation (see next table).
Another feature is the possibility to store results in separate "buckets", according to the result of the probe.
The following commands will parse and store results in the categories:
CLI(conf-rtr)> distributions-of-statistics-kept <number-of-buckets:1-20>
CLI(conf-rtr)> statistics-distribution-interval <time-steps-in-ms:1-100>
For that example, for the following buckets: 0-4ms, 4-8ms, 8-12 ms, 12-16 ms, >16 ms
distributions-of-statistics-kept 5 ! 5 buckets
statistics-distribution-interval 4 ! 1 bucket=4ms interval
The maximum number of statistics (depending on the type of probe) to collect can be limited:
CLI(conf-rtr)> hops-of-statistics-kept <number-of-hops:1-20>
CLI(conf-rtr)> hours-of-statistics-kept <number-of-hours:0-25>
CLI(conf-rtr)> paths-of-statistics-kept <number-of-paths:1-128>
The following command will display the cumulated statistics for each of the defined buckets:
show rtr distributions-statistics 333
Captured Statistics
Multiple Lines per Entry
Line 1
Entry = Entry Number
StartT = Start Time of Entry (hundredths of seconds)
Pth = Path Index
Hop = Hop in Path Index
Dst = Time Distribution Index
Comps = Operations Completed
OvrTh = Operations Completed Over Thresholds
SumCmp = Sum of Completion Times (milliseconds)
Line 2
SumCmp2L = Sum of Completion Times Squared Low 32 Bits (milliseconds)
SumCmp2H = Sum of Completion Times Squared High 32 Bits (milliseconds)
TMax = Completion Time Maximum (milliseconds)
TMin = Completion Time Minimum (milliseconds)
Entry StartT Pth Hop Dst Comps OvrTh SumCmp SumCmp2L SumCmp2H TMax TMin
333 1088103929 1 1 1 0 0 0 0 0 1 1
333 1088103929 1 1 2 3 0 14 0 66 5 4
333 1088103929 1 1 3 2 0 17 0 145 9 8
333 1088103929 1 1 4 0 0 0 0 0 1 1
333 1088103929 1 1 5 0 0 0 0 0 1 1
Entry is the RTR session identifier; StarT is the start time of the interval (as the number of milliseconds
since the last system boot up); Pth is the path index number (only valid for pathEcho probes otherwise
1); Hop is the hop index number in the path (only valid for pathEcho probes otherwise 1); Dst is the time
distribution index within the interval; Comps is the number of operations that have completed successfully;
OvrTh is the number of operations that have timed out; SumCmp is the sum of completed operation times
for all successful operations in the row (in milliseconds); SumCmp2L is the low-order 32 bits only of the sum
of the square roots of completion times (in milliseconds) for the successfully completed operations;
SumCmp2H is the high-order 32 bits only of the previous sum; TMax is the highest recorded completion
time per interval (in milliseconds); TMin is the lowest recorded completion time per interval (in
milliseconds).
The PPA can be configured to react to different conditions with specific actions, for each probe. One
example is starting a pathEcho operation in response to a timeout on an echo operation, in order to
determine the point of failure. Session 2 is recording only probes that go over the threshold of 40 msec.
Once the probes start timing out at 100ms, session 1 is started and all data is recorded.
rtr session 1
type pathEcho protocol ipIcmpEcho 10.0.0.1
distributions-of-statistics-kept 3
filter-for-history all
lives-of-history-kept 2
statistics-distribution-interval 20
paths-of-statistics-kept 1
hops-of-statistics-kept 1
samples-of-history-kept 1
buckets-of-history-kept 4
exit
rtr schedule 1 start-time pending
rtr session 2
type echo protocol ipIcmpEcho 10.0.0.1
distributions-of-statistics-kept 3
threshold 40
timeout 100
filter-for-history overThreshold
lives-of-history-kept 2
statistics-distribution-interval 20
paths-of-statistics-kept 1
hops-of-statistics-kept 1
samples-of-history-kept 1
exit
rtr reaction-configuration 2 action-type triggerOnly
rtr reaction-configuration 2 timeout-enable
rtr reaction-trigger 2 1
rtr schedule 2 start-time now
The exact syntax to trigger a session based on events requires the triggered session to be in pending state
(rtr schedule <session-id> start-time pending). Then the trigger must be enabled for the
"calling" session, this command:
CLI(configure)> rtr reaction-configuration <session-id> action-type
{ triggerOnly
| trapOnly
| trapAndTrigger
| none }
Warning: when trap action is required the timeout trigger must also be enabled (see below).
If the action is triggered by a timeout, use:
CLI(configure)> rtr reaction-configuration <session-id> timeout-enable
| immediate
| never
| xOFy <x:1-16> <y:1-16> }
If average is selected, the action is triggered if the threshold is crossed on average of the configured
number of samples. If consecutive is selected, the action is triggered if the threshold is crossed as
much consecutive times as configured. If xOFy is selected, the action is triggered if the threshold is
crossed x times during the last y samples.
After that the action trigger is set, the session with an attached trigger must be associated with a session
that is called when the trigger is activated:
CLI(configure)> rtr reaction-trigger <calling-session> <called-session>
• The embedded Web server can use either HTTP or HTTPS or both protocols. However, it is always
called "HTTP Server" in all cases in the following explanation.
• The HTTP or HTTPS Server relies on the OneOS feature called "Web Configurator Factory" (WCF).
WCF is a framework allowing a user to load self-designed web pages on the router.
A separate document explains the WCF features and the web page implementation.
• This chapter only deals with HTTP or HTTPS Server activation and configuration.
• Web files can be installed one-by-one in the flash file system. To make an update easier, one can
upload a TAR file in flash and untar it. The TAR file should contain all html files, js, gif …
The untar operation overwrites existing files if already present in flash. However, before
decompressing the files, the untar function can remove all files of a directory and its sub-directories.
• First download the TAR file. For example, with TFTP:
CLI> copy tftp://myserver/webconfigurator.3.7r10.e3.tar web.tar
For example:
CLI> untar web.tar /webroot clean-up all-sub-dir
• The HTTP protocol and the HTTPS protocol are both available by default.
To select HTTP only, or HTTPS only, or both protocols, use the following command in global
configuration mode:
CLI(configure)> http-server protocol { http-and-https | http-only
| https-only }
Note that, to use HTTPS, a valid certificate must be associated to the OneOS-based router.
Refer to chapter 2.28 Certificates management for more information.
• The HTTP server is disabled by default. To enable/disable the HTTP server, use the following
command in global configuration mode:
CLI(configure)> http-server { enabled [<path>] | disabled }
The <path> is the path of the root directory of the web pages, where the files logon.htm and
index.html are located. By default, the root path is flash://webroot.
• Users accessing the web pages must be authenticated. The user login and passwords are checked
from the local password file (flash://password file). To add a user, use the following command:
CLI> user add <webuser> <webpassword> <weblevel>
• By default users configured in the flash://password file can login on the Web Configurator. Those
users can also access the CLI.
It may be desirable to strictly separate CLI and web users.
To operate the web server in this mode (with web only users), first the HTTP server must be started
with an extra option:
CLI(configure)> http-server enabled <path> allow-web-users-only
o The <username> and the <password> are 64-character strings that can contain any
character except ":", "!", "?", "%", "&", "<", ">", "/", "[", "\", "]", "space", "apostrophe", "quotation
mark" and "tab".
o By using the keyword serial-number instead of <password>, it is possible to use the serial
number of the device as password for HTTP login. In this case, the password value will be set
with the string available in the serial number field of the PIA (Product Info Area). The serial
number in the PIA is an alphanumerical string of 17 characters.
o The <access-level> is a number ranging from 0 to 15 (0=user, 7=manager, 15=admin).
The access-level has the following functions: a page can be seen by a logged user if the page
has got the default access authorization level or if it is lower than or equal to logged-in user
level (refer to 2.27.3 HTTP Proxy). It is also used to check the executed CLI commands
through the web interface.
o The keyword invite-password-change sets a flag that will be used by the Web
Configurator to request a user to change his own password (so the web pages must support
this facility, which is fully optional on the web pages).
o The already-encrypted keyword tells that the password is already encrypted via MD5.
o By adding if-match-password <password>, the command is only valid if the existing
password is <password>.
Examples
o To configure the user admin, with the serial number as password, and with access level 7, use
the following command:
CLI(configure)> http-server user add admin serial-number 7
o To configure the user admin, with the serial number as password, and with access level 7, only
if the existing password is admin-passw, use the following command:
CLI(configure)> http-server user add admin serial-number 7
if-match-password admin-passw
o To configure the user admin, with the serial number as password, with access level 7, and with
the invite-password-change flag set, use the following command:
CLI(configure)> http-server user add admin serial-number 7
invite-password-change
If the command http-server user add … is executed for a username that already exists, the
following warning is displayed “User already exists; Taking new attributes into account”. In this case,
the user is internally deleted, then re-created with the new user parameters.
Note that it is possible to create web users from IBC. If the user was already created from IBC,
http-server user add <username> … will NOT overwrite the user parameters.
• By default, the http server is reachable by any IP interface (atm, loopback, fastEthernet … IP
addresses). To attach the HTTP server to one or more interface, use the following command:
CLI(configure)> [no] http-server bind <interface> <unit>
To unbind the HTTP server from an interface, use the no form of the command:
CLI(configure)> no http-server bind <interface> <unit>
To unbind the HTTP server from any particular interface, i.e. attach it to all the interfaces, which is the
default setting, use the following command:
CLI(configure)> http-server bind any
• By default, the http server is associated to the default VRF. To associate the HTTP server to a non-
default VRF, use the following command:
CLI(configure)> http-server vrf <vrf-name>
To remove the HTTP server from a non-default VRF, use the no form of the command:
CLI(configure)> no http-server vrf [<vrf-name>]
• As security measure, it is also recommended to attach an access-list to the server. It prevents access
to the HTTP server from untrusted IP networks. To restrict access to the HTTP server for HTTP clients
matching an access-list, use the following command:
CLI(configure)> http-server acl <acl-name>
• The web configurator generates CLI commands from HTML forms and sends the CLI to the device. By
default, any command that is syntax-wise correct is accepted. However, OneOS can check that either
the entered CLI privilege level is not greater than a required level, or the CLI level is lower than or
equal to logged-user level (http-user). To do so, use the following command:
CLI(configure)> http-server wcf cli-exec-level { <l0-15> | http-user }
The outcome of applying changes on every HTML page is to create a set of CLI commands that is
executed immediately by the system when the HTML form is posted. If the changes must be saved,
the CLI commands must contain the command save running-config or write mem.
• Auto-configuration could be used. This feature updates the router configuration and software. In other
words, the downloaded configuration by auto-configuration eliminates changes made by the HTTP
server by overwriting the saved configuration. However, it is still possible to overcome this
incompatibility. The process runs as follows: first, CLI commands executed by the HTTP server are
saved in flash (in path). Then, auto-configuration downloads a new configuration and reboots the
router. If OneOS reads the command http-server wcf exec-web-cli, all the CLI files in path
are executed again, so that settings from HTTP server are again active. To enable/disable this
behavior (disabled as default), use the following command:
CLI(configure)> [no] http-server wcf exec-web-cli [<path>]
• To get the actual configuration, WCF emulates a "show running-config" command. Some
applications with a lot of HTML pages and specifically designed for this purpose can save time asking
WCF to read an existing file (generated by the HTML pages) rather than using the "show running-
config" command. Use the following command to have this behavior:
CLI(configure)> http-server wcf parse { running-config | saved-config }
Note: the above function is not available in the standard WCF/OneOS software.
• Users are automatically logged out after expiration of an inactivity timeout. By default, it is 1200
seconds. To set timeout, use the following command:
CLI(configure)> http-server timeout { default | <10-100000> }
• When a LAN device is associated to a gateway, the HTTP proxy is implicitly enabled on the gateway.
During association, the gateway learns the LAN device name. The "short device name" is the device
name where "_" and subsequent parameters are stripped. All HTTP requests whose URL contains a
pattern matching the short device name is forwarded to the LAN device.
For more information, refer to the DHCP Device Association section in the Dynamic Host
Configuration Protocol chapter of the OneOS – Basic IP User Guide.
• The http server must be enabled on the LAN device in a special mode, because the HTTP protocol
between LAN device and gateway is authenticated in a special mode. To enable the HTTP server in
LAN device mode:
CLI(configure)> http-server enabled device-mode
• Every logged user on the web server is associated with a user level. By default, all pages are
accessible.
It is possible though to display only pages for users whose level is greater than or equal to the page
level.
• Aim of this security issue for WCF is to control the access level of Web pages using one configuration
file placed in each folder. This can be easily done using some .ini files. These .ini files must be
named ".wcfaccess.ini". Access level is read & set at HTTP Server startup or when the following
command is triggered:
CLI(configure)> http-server wcf access-level reload
In order to implement the Access Level issue for WCF, the following format rules is used for the .ini
files: a section for each file must be created and inside it place a keyword called Access-level, as
follows:
[<resource-name>]
Access-level = <Access-Level-Value>
Example:
[index.html]
Access-level = 2
[WEPKeyConfig.html]
Access-level = 2
[WlanConfig.html]
Access-level = 9
• By default, when the HTTP Server is enabled, the logon.htm page always has access level set to 0
(even if a ".wcfaccess.ini" file modifies this level). One must take care that the user does not
change the access level of the logon.htm page. The rest of the files have their access level set to 1.
When the engine is triggered, if a file has a custom access level specified in a ".wcfaccess.ini"
file, its access level is changed to the specified one.
Since the use of ".wcfaccess.ini" files is not mandatory, the user can set the default access level
that will be assigned to the all files managed by the HTTP server. The following CLI allows doing this:
CLI(configure)> http-server wcf access-level default <default-level>
Example:
CLI(configure)> http-server wcf access-level default 15
Note that, if no default access level is set, the default level will be 1 (like in previous versions).
• Use the following command to assign a custom access level to a WEB page:
CLI(configure)> http-server wcf access-level assign
<absolute-resource-path> <access-level>
Note: custom access level can be assigned to any WEB Resource (html, css, js, jpg).
Note: when assigning/removing the access level for a resource, all actions are written in the .ini file.
In order to effectively set the new access level to WEB Resources, use the reload command or re-
enable the HTTP Server.
• Use the following command to remove the entry for a specific WEB resource from the
“.wcfaccess.ini" file:
CLI(configure)> http-server wcf access-level delete
<absolute-resource-path>
Note that this command can be triggered at any moment (even if the HTTP Server is up or not).
Note: the index.html page is registered twice: as URL “\” and as URL “\index.html”.
On command show http-server wcf access-level current-access-level, it should
appear twice, once for each URL.
On command show http-server wcf access-level stored-access-level it should
appear once since we have one single file on flash.
CLI> show http-server wcf access-level <location-path>
• In order to display all access levels assigned (in specific .ini file) to all resources from a specific
WEB project, use the following command:
CLI> show http-server wcf access-level stored-access-level
[<location-path>]
Following format must be used to display information (like "ls" in Linux):
<absolute-resource-path> <access-level>
The path displayed is relative to <location-path>. All pages in the WEB project must be displayed,
even if they have no custom access level defined in the “.wcfaccess.ini”.
For resources defined in the .ini file, developer must display the access level specified in the
.wcfaccess.ini file.
For resources that are not defined in the .ini file, developer must display the default access level.
Parameter <location-path> is optional and can be a folder on the flash or a single file (WEB
Resource). If not provided, it will be the starting location of the HTTP Server (if up; if HTTP Server is
down, an error message must be displayed). Full path must be provided to the desired
folder/resource.
This show command displays the current access-level status for all WEB Resources. In this case, the
access-level value is retrieved from HTTP Server's structures, not from the .ini files; i.e. the access-
level which is effectively set on a resource is displayed.
This command can be triggered only when HTTP Server is up and displays access-level for all WEB
resources as they are retrieved from the HTTP Server's resources list.
• As of V4.2R2E2 software release, downloading and uploading of files using WCF can be denied.
• To globally deny the downloading of files using WCF, use the following command:
CLI(configure)> http-server wcf download deny
To globally deny uploading of files using WCF, use the following command:
CLI(configure)> http-server wcf upload deny
• To allow the downloading of only certain files using WCF, use the following commands:
CLI(configure)> http-server wcf download permit
CLI(configure)> http-server wcf download path <path-1> [max-size <size>]
[user-level <lvl>]
CLI(configure)> …
CLI(configure)> http-server wcf download path <path-n> [max-size <size>]
[user-level <lvl>]
CLI(configure)> exit
To allow the uploading of only certain files using WCF, use the following commands:
CLI(configure)> http-server wcf upload permit
CLI(configure)> http-server wcf upload path <path-1> [max-size <size>]
[user-level <lvl>]
CLI(configure)> …
CLI(configure)> http-server wcf upload path <path-n> [max-size <size>]
[user-level <lvl>]
CLI(configure)> exit
• WCF Simulation mode is intended to be used when testing WEB Pages. It can do the value matching
between HTML fields and a custom file ("flash://webroot/simconf.cfg"), instead of extracting
html field values from "show running-config". Also, it never executes the CLI generated - it will
only display the list of commands contained in the WEB page.
CLI(configure)> [no] http-server wcf simulation-mode
Note: the certificates management depicted below is not meant to deploy certificates on a large scale.
Note: a default HTTPS server certificate is always present to assure the functioning of HTTPS .This
default HTTPS will however generate an HTTPS warning. It can be replaced by a customized one
(see below).
The following table shows the CLI commands and their associated purposes
Command "certificate"
2.27.2.1 Attributes
Subject Distinguished Name
Attribute
To show the content of all available certificates on the device, use the following command in global mode.
CLI> show certificates
To display the content of all available certificates, use the following command lines. The detail optional
parameter adds the subject public key and the signature information to the output.
To display the list of the IPSEC CA certificates, use the following command line:
CLI> show crypto pki ca [detail]
To display the list of the IPSEC certificates, use the following command line:
CLI> show crypto pki certificates [detail]
To display the list of all available device certificates in the Secure Information Area (SIA) and the TR69
root certificate, use the following command line:
CLI> show crypto pki device-certificates [detail]
To display the list of all available HTTPS server certificates, use the following command line:
CLI> show crypto pki https [detail]
To display the list of SIP-TLS CA certificates, use the following command line:
CLI> show crypto pki sip-tls ca [detail]
To display the list of all available SIP-TLS device certificates, use the following command line:
CLI> show crypto pki sip-tls [detail]
To configure the HTTPS server certificate or the IPsec Certificate Signing Request (CSR) that will be
generated (see below), first enter in certificate control mode; then use the configure command.
CLI> certificate
CLI(certificate)> configure
CLI(cert-conf)>
In this mode, a number of attributes can be changed before an HTTPS server certificate or an IPsec CSR
is generated.
The attributes that can be changed are described in the following paragraphs.
The Subject Distinguished Name (DN) attribute is a set of fields describing where the subject is
geographically and its role within an organization.
To set the Subject DN Country field, use the following command line:
CLI(cert-conf)> [no] subject C <name>
To set the Subject DN State field, use the following command line:
CLI(cert-conf)> [no] subject ST <name>
To set the Subject DN Locality field, use the following command line:
CLI(cert-conf)> [no] subject L <name>
To set the Subject DN Organization field, use the following command line:
CLI(cert-conf)> [no] subject O <name>
To set the Subject DN Organization Unit field, use the following command line:
CLI(cert-conf)> [no] subject OU <name>
To set the Subject DN Common Name field, use the following command line:
CLI(cert-conf)> [no] subject CN <name>
To set the Subject DN email address field, use the following command line:
CLI(cert-conf)> [no] subject email-address <name>
Note: for a self signed certificate, these fields will also be put in the Issuer DN field.
The Subject Alternative Name extension allows various literal values to be included in the configuration
file. These include host name, IP address and other Name (user).
It is allowed to combine the 3 types of Subject Alternative Name.
To set the content of the Subject Alternative Name host name field, use the following command line:
CLI(cert-conf)> [no] alt-subject-name hostname <name>
To set the content of the Subject Alternative Name IP address field, use the following command line:
CLI(cert-conf)> [no] alt-subject-name ip-address <ip-address>
To set the content of the Subject Alternative Name user field, use the following command line; (note that
some browsers require that this field matches the host part of the URL of the HTTPS connection).
CLI(cert-conf)> [no] alt-subject-name user <name>
To set the key length and cipher type, use the following command line:
CLI(cert-conf)> [no] key { rsa-2048 | rsa-1536 | rsa-1024 | rsa-512 }
• Certificates can be obtained either using SCEP (Simple Certificate Enrollment Protocol) or using
TFTP.
• To specify the URL where to obtain the signed certificate via SCEP, use the following command:
CLI(cert-conf)> [no] enrollment url http://ip_address/scep_path
• To specify the URL of the TFTP server where the request should be sent and where to obtain the
signed certificate, use the following command:
CLI(cert-conf)> [no] enrollment url tftp://ip_address/filename
• The PKI related files can be also put on the file system either directly using the command:
CLI(cert-conf)> [no] enrollment file <filename>
• The extensions ".key", ".ca", ".req", ".cer", ".p12" or ".pem" are automatically added to the
{base-name}, depending on the action taken in the import or enroll command.
Note that restrictions apply to the name of ISAKMP certificates. See below.
• The files related to PKI (private key file, device certificate, CA certificates) will be stored in a folder on
the file system located at security/siptls directory. The different files are stored using a common
base name but with specific extensions from which the purpose of the file can be derived. This
basename is used to reference the set of PKI files from the Voice SIP TLS settings using the
pki-profile <basename> command. If it is not specified, a basename "default" is assumed.
For more details on this command, refer to the OneOS–VoIP User Guide.
• The PKI directory can contain:
o <basename>.p12: pkcs12 file which can contain a private key, a device certificate and a
number of ca certificates. This file is not required but can be used to import a set of PKI files.
o <basename>.cer: the device certificate file. This certificate must match the private key which is
in basename.key. If the device certificate is not signed directly by its root CA, this file may also
include the certificate verification chain. This file is required if the remote end requires the OA
device to authenticate itself.
o <basename>.key: the private key file - when the import command is used, this file will be
encrypted with a fixed password. It is also allowed to put a non-encrypted file here directly.
Encryption of this file with a user specified key is not supported.
o <basename>_ca0.cer: CA files - these can either be trusted root certificates or certificates
used to build the verification chain of the device certificate.
o Up to 5 optional additional CA files may be present: <basename>_ca1.cer,
<basename>_ca2.cer, <basename>_ca3.cer, <basename>_ca4.cer
• Each CA file may contain multiple root certificates. This file is required if this PKI profile is to be used
to authenticate the remote end:
o <basename>.crl : certificate revocation list file : if present, in addition to the standard certificate
checks, the device will validate whether the remote endpoint's certificate has been added to
this revocation list. This file may not contain a concatenation of multiple crls.
If it does contain a concatenation of multiple crls, the crls on the file will be ignored and the sip-
gateway will come up ignoring these crls and printing a warning message about the crls, like
"#Warning SIP-TLS# Problem loading CRL file flash:/security/siptls/basename.crl"
To remove a parameter from the certificate configuration, use the no form of the command line.
To return to the default setting for all fields, use the following command line. It can be preferable to use this
command first, prior configuring the fields, to ensure that the device starts with the known default
configuration.
CLI(cert-conf)> default
To generate a self-signed HTTPS server certificate or SIP-TLS device certificate, use the following
command in certificate control mode.
For the HTTPS purpose, the certificate will be placed in the /security/https_one.pem file.
For the SIP-TLS purpose, the certificate will be placed under the /security/siptls directory.
CLI(certificate)> enroll self-signed { https | sip-tls }
If a certificate already exists, it will be replaced. If no configuration has been done, a certificate with
CN=device serial number will be generated. The certificate serial number is also based on the device serial
number, but with a trailer to guarantee uniqueness if this action is performed multiple times.
Note: the "generate self-signed" command is deprecated and replaced by the "enroll self-
signed" command.
To generate a certificate signing request (CSR) and send the request to the URL configured in the
enrollment command, use the following command in certificate control mode. If TFTP is chosen to enroll, a
file with the name {base-name}.req will be transferred to the CA (Certificate Authority).
CLI(certificate)> enroll signing-request
• To import a CA certificate and place it in the /security directory with name {base-name}.ca
(with {base-name} being the actual file name of the certificate), use the following command:
CLI(certificate)> import ca [purpose { isakmp | sip-tls }]
[index <number>]
The keyword purpose isakmp should be added to the command line if the CA certificate is used for
ISAKMP crypto. In this way the CA certificate will be placed in the /security/ca directory.
• To import a signed certificate and place it in the /security directory with name {base-name}.cer,
use the following command:
CLI(certificate)> import certificate { isakmp | sip-tls }
The keyword purpose isakmp should be added to the command line if the certificate is used for
ISAKMP crypto. In this way the certificate will be placed in the /security/cert directory.
• To import a signed certificate in the privacy enhanced mail (PEM) format and place it in the
/security directory with name {base-name}.pem, use the following command:
CLI(certificate)> import pem [purpose { https | sip-tls }]
The keyword purpose https should be added to the command line if the .pem file contains an
HTTPS server certificate. In this case the .pem file should also contain the appropriate private key.
• To import a Public Key Cryptography Standards 12 (pkcs12) package and place it in the /security
directory with certificate name {base-name}.cer and private key name {base-name}.key, use
the following command:
CLI(certificate)> import pkcs12 <key> [purpose { isakmp | sip-tls }]
The key used for decrypting the package should be provided by the certificate authority. If the
certificate is used for ISAKMP crypto, then the keyword purpose isakmp should be added to the
command line. In this way the certificate will be placed in the /security/cert directory and the
private key will be placed in the /security/private directory.
• To import a private key, specified by the certificate -> configuration -> enrollment
command ,and place it in the /security directory, use the following command:
CLI(certificate)> import private key <key> [purpose { isakmp | sip-tls }]
<key> is the protection key of the private key. If the certificate is used for ISAKMP crypto, then the
keyword purpose isakmp should be added to the command.
The private key is stored in the file system encrypted.
A crypto certificate map defines the criteria to which an X509 certificate must comply. To configure a PKI
certificate map entry, and enter in certificate map configuration sub-level, use the following command line:
CLI(configure)> crypto pki certificate map <name> <priority>
CLI(cert-map)>
name is the name of the certificate map; priority is the priority of the certificate map (0-10000).
When creating a new certificate map a priority is required. This priority will be taken into account when
matching a certificate to a certificate map; maps with the same name but different priorities will all be
checked starting with the map with the highest priority (lowest number).
The version of the command without the priority will delete all maps with the given name. When a priority is
supplied, only the map with the given priority will be deleted.
All criteria can be supplied in 4 different formats: contains (co), not contains (nc), equals (eq) and not
equals (ne). This means a certificate property must contain a certain string, not contain a string, be exactly
the same or different from a given string value, respectively. Several criteria can be applied to the same
property (e.g. co a / nc b / nc c / co d / ne da).
The certificate (map) is valid when all criteria match.
To configure one criterion for the subject name certificate property, use the following command:
CLI(cert-map)> [no] subject-name { co | nc | eq | ne } <string>
To configure one certificate alternate subject name criterion, use the following command:
CLI(cert-map)> [no] alt-subject-name { co | nc | eq | ne } <string>
To configure one certificate issuer name criterion, use the following command:
CLI(cert-map)> [no] issuer-name { co | nc | eq | ne } <string>
To remove a specific criterion for a specific certificate property, use the no form of the command.
To empty the list of criteria of a specific certificate property, use the default command:
CLI(cert-map)> default subject-name
CLI(cert-map)> default alt-subject-name
CLI(cert-map)> default issuer-name
When certificates are used for authentication, a dedicated command allows verifying the contents of the
arbitrary fields of the peers’ certificate. This is accomplished by applying a certificate map to an ISAKMP
profile using the match certificate command (refer to "ISAKMP Profile" section in "IP Security"
chapter of "OneOS – Advanced IP User Guide").
Note that if both a certificate map and a trust-point (see below) are configured for an ISAKMP profile then
first the trust point revocation check will be performed. If the certificate has been revoked, no certificate
map rules will be verified.
A trust-point encapsulates the certificate revocation check rules used to verify the validity of the certificate
used to set up a secure connection. To configure a PKI trust-point, and enter in trust-point configuration
sub-level, use the following command line:
CLI(configure)> crypto pki trustpoint <name>
CLI(trustpoint)>
The possible revocation check options are CRL (Certificate Revocation List), OCSP (Online Certificate
Status Protocol) and none (which is the default), in order of priority, with each option being optional. If the
CRL check fails, no OCSP check will be performed, even if the OCSP option has been configured.
CRL checks are performed first, because they are faster in that they don’t require any network transaction.
Any certificate listed in the CRL has been revoked and can never be valid again. Since the CRL is a local
file that has to be retrieved from the CA at regular time intervals (a CRL has its own validity timestamps),
this information can be out of date thus it’s possible the certificate is marked as valid while the CA has
already revoked it. But once a certificate that has been revoked, it will never be marked valid again. The
certificate revocation list should be stored in the /security/crls directory and be called ipsec.crl. If
no CRL file is present on the file system the revocation check will fail, unless the option none is provided
(an IPsec INFO message will be logged – regardless of debug output settings – reporting the accepted
error condition).
In order to have the most recent certificate status, OCSP checks can be used. The drawback of this option
is this requires more time compared to the CRL check because of the network traffic involved. In the trust-
point the OCSP URL has to be provided before the first use (in the format http://server:port). If the
OCSP server fails to respond (timeout), an error occurs in the response (invalid response), no connection
to the OCSP server could be established (server down or wrong OCSP server configured) or a certificate
not issued by this particular CA is verified (certificate status unknown), the check will fail, unless the none
option was provided (as with the CRL check, an IPsec INFO message will be logged reporting the
accepted error condition). OCSP uses a caching mechanism to cache OCSP responses and the content of
this cache will be refreshed automatically on a daily basis. This has been done to improve ISAKMP setup
latency.
Simply setting the revocation check to none (thus not in conjunction with the CRL or OCSP options) or
leaving it to default will not perform any verification on the validity of the certificate.
Use the no form of the above command or the following one to return to the default option (none):
CLI(trustpoint)> default revocation-check
To configure the OCSP URL (in the format http://server:port), use the following command:
CLI(trustpoint)> [no] ocsp <url>
Use the no form of the above command or the following one to return to the OCSP default option (empty
URL string):
CLI(trustpoint)> default ocsp
Deleting a trust-point, deleting the revocation check criteria or clearing the OCSP URL will delete all
cached information for that trust-point. Changing the revocation criteria or setting them to default will
trigger an update of the revocation check information for the certificate. Setting the OCSP URL will
retrigger lookups for the trust-point.
Note: setting the same revocation check can be done to trigger an update, without actually changing the
criteria and without having to wait for the auto update timeout.
In case of IPSEC/IKE Client, when certificates are used for authentication, a dedicated command allows
checking the revocation of the certificate prior to the certificate matching. This is accomplished by
activating a trust-point in an ISAKMP profile using the trustpoint command (refer to "ISAKMP Profile"
section in "IP Security" chapter of "OneOS – Advanced IP User Guide" document).
Regarding the SIP TLS in case of authentication usage, the certificate revocation list should be stored in
the /security/siptls directory and be called <basename>.crl.
o The URL format determines whether the enrollment will be done via SCEP (http) or directly
from a TFTP server (tftp).
o For SCEP, use as <url>: http://<ipaddress>/<path to scep server>
o With a Cisco SCEP server, the necessary URL for SCEP enrollment is :
http://<ip address of server>/cgi-bin.
The path to the SCEP server depends on the server used.
• Step 3: Define the other parameters of the certificate, such as common name, country, etcetera, by
successively using the following commands.
CLI(cert-conf)> subject { C <country> | CN <common name> |
OU <organisation unit> ... }
CLI(cert-conf)> key { rsa-2048 | rsa-1536 | rsa-1024 | rsa-512 }
CLI(cert-conf)>
o Note that this certificate configuration does not belong to the router's configuration file and
therefore it is not saved with save-running-config.
After a reboot the certification configuration is lost.
• Step 6: Now, first enroll the CA certificate. Without having the CA certificate, the device certificate
cannot be enrolled:
CLI(certificate)> import ca purpose { isakmp | sip-tls }
importing ca certificates ...
CLI(certificate)> received 2 certificates in the pkcs7
scep CA/RA import successful
• Step 7: If the CA enrollment was successful, the device certificate can be enrolled:
CLI(certificate)> enroll signing-request
generating certificate signing request
building key-pair ...
writing private key to flash:/security/private/local.key ...
writing certificate request to flash:/security/csr/local.csr ...
enrolling ...
CLI(certificate)> scep signing request succeeded
In order to protect the OneOS-based router as much as possible against brute force attacks, a blacklisting
process has been implemented for console, tshell, telnet, SSH, and web connections (login).
The blacklisting process can be configured using the following command:
CLI(configure)> blacklist attempts <n> quarantine-delay <seconds>
• <seconds> is the number of seconds the user must wait before logging in is possible again.
By default, this is 60 seconds. The value ranges from 1.to 600 seconds.
For console and tshell connections, a counter is created for each service.
If the entered password is correct, the counter is reset to zero.
If the password is incorrect, the message "Unauthorized access! Check username and password!" is
displayed and the counter is incremented.
When the counter becomes greater than or equals <n>, the message "Your access to the … is blocked for
the moment" and the answer to password submission is delayed by the number of configured seconds,
<seconds>.
For telnet, SSH, and web connections, at each failed connection attempt, the source IP address of the
request is recorded in a table.
After <n> successive failed connection attempts from a given IP address, the blacklisted flag is set and a
timer of <seconds> seconds is started. Any following connection attempt from a black listed IP is
immediately rejected for the three services (without even offering authentication).
After the timer expires, the IP address is flushed from the table. Any successful connection attempt flushes
the IP from the table.
A black list table is created for each service (telnet, SSH, web). Each table has the size that corresponds
to the maximum number of sessions for the corresponding service.
If the table is full, any extra connection is rejected immediately without even offering authentication.
Note: this behavior means that when one service is blacklisted, only the show blacklist of this specific
service lists the blacklisted IP address. But, the three services (telnet, SSH, web) are blacklisted.
The services that have been blacklisted are stored in two circular log files called blacklist1.log &
blacklist2.log; each file is limited to 70 lines.
To display the services that have been blacklisted, use the following command in global mode:
CLI> show blacklist log
---------------------------------------------------
Date | Service | IP Address
---------------------------------------------------
2009.03.17 09:41:03 | Telnet | 192.168.1.2
2009.03.17 09:42:37 | Tshell | 192.168.1.9
2009.03.17 09:52:52 | Tshell | 192.168.1.7
2009.03.17 10:40:34 | Tshell | n/a
2009.03.17 15:31:51 | Telnet | 192.168.1.9
To display the currently blocked connections for a particular service, use the following command:
CLI> show blacklist { console | tshell | telnet | ssh | http-server }
IP Address Attempt Count
=========================================
192.168.1.7 2
192.168.1.9 3 (blocked)
There are 2 ways to limit broadcast, multicast and unknown unicast traffic:
• Method 1: by setting a threshold value, expressed in packets per second.
• Method 2: by setting a percentage of the available bandwidth, on Fast Ethernet and Gigabit Ethernet
interfaces.
Both methods are described next.
Unknown unicast traffic is unicast traffic sent to a destination MAC address that has not been learned by
the bridge.
2.30.1.1 Configuring
This section explains how to protect against a storm of broadcast, multicast and/or unknown unicast traffic,
by setting a threshold above which the protection is activated.
The defense against a storm of broadcast, multicast and/or unknown unicast traffic can be activated using
the following command in global configuration mode:
CLI(configure)> system deny-of-service {broadcast | multicast | unknown}
{enable | disable}
The threshold, at which the protection is actually activated, can be set with the following command:
CLI(configure)> system deny-of-service {broadcast | multicast | unknown}
threshold <value>
o <value> is the number of packets per second above which the protection is activated.
By default, this is 1000 pps.
o To return to the default value, use the following command:
CLI(configure)> system deny-of-service {broadcast | multicast | unknown}
threshold default
Note that:
• when enabled, and the threshold is reached, a warning message is printed to inform that some
packets can be dropped. However, this message is not printed for each dropped packet to prevent
flooding.
• this protection mechanism does not interfere with bridge learning: the learning is done at the input,
before the protection is executed.
So, once a packet has been received, the source MAC address of the packet is added to the cache,
even if this source is sending broadcast, multicast and/or unknown unicast traffic that exceeds the
threshold.
When two Fast Ethernet or Gigabit Ethernet interfaces from a switch are bridged, the bridging process is
done by the physical switch itself.
Therefore, it is important to know that, in this case, using the system deny-of-service commands
described above, do not prevent exceeded broadcast, multicast and/or unknown unicast traffic from being
bridged; because the bridging was already done in the hardware switch.
To bypass this limitation and deactivate the hardware bridging in the switch, use the following command:
CLI(configure)> no bridge-group hardware-bridging
When the protection has been configured, a new counter defense hits can be seen under command:
CLI(configure)> show bridge-group
This section explains how to protect against a storm of broadcast, multicast and/or unknown unicast traffic,
by setting a percentage of the available bandwidth; i.e., this type of traffic will be limited to the configured
percentage of bandwidth.
Note that this method applies to Fast Ethernet and Gigabit Ethernet interfaces.
The defense against a storm of broadcast, multicast and/or unknown unicast traffic can be activated using
the following command in interface configuration mode:
CLI(configure)> interface {fastethernet | gigabitethernet} <module/port>
CLI(config-if)> storm-control {broadcast | multicast | unicast}
level <level>
o The threshold value <level> is a percentage of the port bandwidth, and can be set to a value
between 0 and 100, i.e. 0% and 100%:
0 means that all trafic is suppressed.
100 means that the storm-control protection is not activated.
o This type of storm control is disabled by default.
The following show command allows monitoring the status of configured storm control:
CLI(config-if)> show interfaces [interface] counters storm-control
• For all OneOS based products with software versions V5.1 or above, the license information is stored
separately from the OneOS binary. It is put in the device Software License Area (SLA) during
manufacturing. The SLA is a read-only area of the router flash and cannot be changed by the
customer. By default:
o All units ordered without further instructions are shipped with an empty SLA. This means that
no license can be enabled.
o All units ordered with a license are shipped with an SLA containing only the list of ordered
licenses.
• To view the license information in the SLA, use the following command:
CLI> show system sla
• If a customer wants to enable a software license, having the license(s) enabled in the SLA is not
enough. The services associated with the license can only be enabled if the license is explicitly
activated, thus proving he is aware that the features are subject to software licensing.
• The following command must be entered to use the software under license:
CLI(configure)> license activate <name of the license>
• After signing a software license agreement, the customer will be allowed to upgrade the product
deployed in its network.
This will be done by use of a license key to be put in the configuration file of the router.
• Once installed in the router, the requested software license will be unblocked.
• A software license key is composed of:
o A License type ID, describing what the actual purpose of the license is.
o A 5 letter customer identifier, explicitly identifying the owner of the license, along with a 2 letter
license contract number for that customer.
o An encrypted key with 5 blocks of 5 characters - consisting of capital letters and numbers
excluding O,0,I,1 to avoid confusion - whose structure is an encryption of license key
parameters.
• Installing or removing a license key consists in adding or removing such license key from the
configuration. It can be done centrally from an ACS, and thus there is no need to deploy specific
license servers.
license key add xxxx-yyyyy01-zzzzz-zzzzz-zzzzz-zzzzz-zzzzz
license key del xxxx-yyyyy01
• The presence of a license on the product can be checked using the show license key command:
CLI> show license key
***********************************************
******* OA Software Licence Information *******
* xxxxx-yyyyy01-zzzzz-zzzzz-zzzzz-zzzzz-zzzzz *
***********************************************
* Customer ID : yyyyy01 *
* Equipment : All equipments granted *
* Rights : All features granted *
* Recomputed Software Licence Information *
* xxxxx-yyyyy01-zzzzz-zzzzz-zzzzz-zzzzz-zzzzz *
***********************************************
• The license key also appears in show system status and in show tech sup as well:
CLI> show system status
System Informations for device MB90Ss0UFPE0SNWsd+ S/N L1207008997000890
3 A U T O - U P D A T E
• The auto-update sequencer is a state machine managing the execution of auto-update jobs.
Auto-update jobs can be:
o Software update.
o Configuration update.
o Single file update.
o Update of a set of files via TAR archive download and extraction.
• The sequencer starts the auto-update operation further to auto-update triggers, namely:
o The user entered an auto-update command requesting the start of auto-update.
o A monitored interface went up.
o The auto-update periodic timer elapsed.
• Following a trigger, the auto-update sequence is started. It means that the sequencer initiates each
update job sequentially (they are ordered with a sequence ID). When done, the sequencer examines
the returned job execution status (can be “update successful”, “no error, no update”, and “failure”). For
every job, the sequencer is informed (per configuration) of the next step to execute depending on the
returned status (can be “stop auto-update sequence”, “continue”, “reboot”).
When every job is executed, the sequencer looks if there was at least one update. If one update
happened, a configuration parameter indicates if the router shall reboot or not.
• The status of auto-update is displayed on the AUX LED:
o Orange, blinking: auto-update in progress
o Green, steady: auto-update successfully completed
o Red, blinking: auto-update failure(s)
monitored
Auto-Update manual
interface(s)
periodic timer start
going UP
min-update
No
interval timer
expired?
Yes
sequenceid:=1
start_update_job(sequenceid)
job_status=last_update_job_status()
next=get_next_job(job_status,sequenceid)
Reboot
No
Yes next == Yes => reboot
Must reboot in case of "reboot"?
at least one update
No No
Yes
next == Yes
All Jobs completed?
"stop"?
No (next=continue)
sequenceid:=sequenceid+1
start_update_job(sequenceid)
• Before downloading the OneOS software, the router queries the software version that should be used,
by sending an HTTP GET to index-url URL.
This current OneOS version is compared with the running version indicated by the show version
command. If it is different from the OneOS version returned by index-url, the OneOS file is
downloaded.
After download, software integrity is checked. If the check is passed, the new OneOS replaces the
current OneOS in flash.
• Before downloading the configuration, the router may query the configuration index (a kind of version
for the configuration, optional in the configuration), by sending an HTTP GET to index-url URL.
If the router does not query the configuration index, the configuration file is downloaded directly and
compared with the configuration download during the last auto-update sequence.
If they are different, OneOS continues configuration update.
• This current configuration index is saved in the router flash. If it is different from the configuration
version in the server, the configuration file is downloaded.
• After configuration download, two behaviors are possible:
o Executing the configuration. If no error in execution is detected, the upgrade is considered
successful. If successful, the running version is saved. If not successful, the router saves the
configuration index in flash and reboots.
o The configuration index is saved in flash. The router replaces the current configuration with the
new one and reboots.
• Before downloading the file, the router queries a file index (a kind of file version), by sending an HTTP
GET to index-url URL. The current index is saved in the router flash. If it is different from the file
index returned by index-url, the file is downloaded. The file update is needed when one file needs
to be updated.
• Before downloading the TAR, the router queries a TAR index (a kind of TAR file version), by sending
an HTTP GET to index-url URL. The current index is saved in the router flash. If it is different from
the TAR index returned by index-url, the TAR file is downloaded and extracted. The TAR file
update is needed when many files need to be updated.
• OneOS index: exact version name, as displayed by show version. Example: ONEOS4-VOIP_SIP-
V3.7R11E15 (1-63 characters).
• TAR index: integer positive number (1-65535).
• TAR file: valid TAR file.
• In case of a HTTPS server, the root certificate of the HTTPS server should be stored on the router to
enforce the additional HTTPS server authentication.
• The root certificate must be stored as a file with name auto-update-root.cert in the /security
directory.
• Consider several cases:
o If the root certificate file is not present, the HTTPS server certificate will be accepted.
However, a warning message will be sent to the console port:
"No root certificate found in /security folder: cannot validate https
server identity."
o If the root certificate file is present and the router is synchronized with a NTP/SNTP server, the
certificate validity is checked (time between 'Valid from' and 'Valid until' field values) and the
server certificate's signature is checked.
o If the root certificate file is present and the router is not synchronized with a NTP/SNTP server,
only the server certificate's signature is checked (no validity check).
• Note: the SubjectAltName field of the certificate is NOT checked in any case.
• In order to preserve the auto-update server root certificate in case of a factory restore, you must also
put the auto-update-root.cert file in the /factory-backup directory.
• To start configuring auto-update, enter in global configuration mode and enter the following command:
CLI> configure terminal
CLI(configure)> [no] auto-update
CLI(auto-update)>
• Then, the auto-update sequence trigger must be defined. It can be a periodic timer or the UP event of
a monitored interface. Triggers are not mutually exclusive.
CLI(auto-update)> trigger daily-restart-timer <StartHour> <EndHour>
[<days>]
CLI(auto-update)> trigger monitored-interface <interface> <unit>
[delayed-start <seconds>]
o The daily restart timer schedules a trigger days in days within a random hour between
StartHour and EndHour. For example, trigger daily-restart-timer 01:00:00
02:30:00 2, schedules a trigger between 1:00 and 2:30 every two days.
o One monitored interface can be configured with a configurable timer (by default: no
delayed-start timer). Example: trigger monitored-interface atm 0.1.
o To remove the triggers, use the following commands:
CLI(auto-update)> no trigger daily-restart-timer
CLI(auto-update)> no trigger monitored-interface <interface> <unit>
o If a trigger happens too quickly, auto-update ignores it. In other words, as long as a min-
interval timer has not expired, the trigger events do not start the update sequence. By
default, the timer is 30 minutes long and can be set as follows:
CLI(auto-update)> min-interval <minutes>
• After completing the update sequence, you may force auto-update to reboot the router or not in the
event one successful update occurred.
If at least one update happened at the end of the sequence, the router reboots by default.
By choosing stop, the router will not reboot and just wait for next trigger.
CLI(auto-update)> on any-update { reboot | stop }
• Auto-update packets take as source address the IP address of the outgoing interface, but it can be
forced with the following command:
CLI(auto-update)> source-interface <type> <unit>
CLI(auto-update)> no source-interface
• The HTTP server may return different data (e.g. a different configuration file), when querying the same
URL from different routers. In order to discriminate the GET requests from the different routers, every
router can insert extra GET parameters.
For example, it can query the following URL:
http://server/version.php?ppplogin=value&mac=00:A0:FE:12:B8:59&firmware=xxx
x&serial=xxxxx&cpe_version=xxxxx&cpe_type=xxxxx&hardware=one100&event=1&fau
lt_code=0.
In order to insert this parameter list (ppplogin=value&mac=00:A0:FE:12:B8:59...), the
following command is needed:
CLI(auto-update)> [no] http-get-extra-parameters 1
The fault_code parameter in the above mentioned URL can have the following values:
o 0: no error during the last auto-update, or just initial boot.
o 1: download of software index has failed.
o 2: download of software has failed.
o 3: the downloaded software did not pass the integrity check.
o 4: not enough space on the flash to terminate the software download.
o 10: download of configuration index has failed.
o 11: download of configuration has failed.
o 12: the downloaded configuration execution has failed.
o 13: the downloaded add-in configuration is known to fail with current OS.
• To perform a software update, enter the following commands. <sequence-id> is the step for the
auto-update sequencer. The sequence number is intended to configure if software update must be
done before or after configuration update (it is recommended to choose 1; the software should always
be updated first).
To enter the URL for software and software (index) version:
CLI(auto-update)> software-update <sequence-id>
CLI(sw-update)> [no] index-url http://<path>/<software-version>
[current-sw-version <suffix>]
CLI(sw-update)> [no] url http://<path>/<software-version>
[current-sw-version <suffix>]
CLI(sw-update)> [no] url option-160 http://<software-version>
[current-sw-version <suffix>]
• Before replacing the running software image file by the new one, auto-update saves the new OneOS
under a temporary file. If it is valid, the temporary file replaces the running OneOS; the running
OneOS is then saved as a backup image in flash. The backup filename is by default:
flash://BSA/binaries/OneOs.old.
To use another name, use the following command:
CLI(sw-update)> [no] backup-software <path/filename>
• If the software is successfully updated, by default, the auto-update sequence continues; but the
behavior can be changed as follows:
CLI(sw-update)> on update-success { continue | stop | reboot }
• If an error occurs during software update, by default, the auto-update sequence stops and wait for
next trigger; but the behavior can be changed as follows:
CLI(sw-update)> on update-failure { continue | stop | reboot }
• To perform a configuration update, enter the following commands. <sequence-id> is the step for the
auto-update sequencer. To enter the URL for configuration and configuration index version:
CLI(auto-update)> config-update <sequence-id>
CLI(cfg-update)> [no] index-url http://<path>/<config-version>
[serial-number <suffix>]
CLI(cfg-update)> [no] url http://<path>/<config-file>
[serial-number <suffix>]
CLI(cfg-update)> [no] url option-160 http://<config-file>
[serial-number <suffix>]
o If the serial-number parameter is present, the URL is a concatenated string from URL +
serial number + the suffix.
o If the option-160 keyword is added for the url, this means that the <path> must come from
the DHCP option 160 field. Option 160 will have a 32 character field containing the <path>
part of the URL coded in ASCII format.
Note that the option 160 will be requested to the DHCP server by the DHCP client only if an
option-160 attribute is present in the configuration.
• One can choose between these behaviors:
o The current configuration file is overwritten by the new one (if they are different), then the auto-
update sequence continues (in this case the downloaded configuration replaces the current
one); this is the default setting.
o The new configuration is added to the current configuration (if the add-in is different from the
previous one). The downloaded configuration add-in is first executed in a temporary file, and if
it is successful, it is saved in another file. Then, the save running-config command is
executed. If not successful, the behavior depends on the auto-update configuration.
The behavior can be configured with the following command:
CLI(cfg-update)> download-behaviour { overwrite | add-in }
• If a username and password are required to perform the configuration update, use the following
command to enter them:
CLI(cfg-update)> username <username> password <password>
• If the configuration is successfully updated, by default, the auto-update sequence continues; but the
behavior can be changed as follows:
CLI(cfg-update)> on update-success { continue | stop | reboot }
• If an error occurs during configuration update, by default, the auto-update sequence stops and wait for
next trigger; but the behavior can be changed as follows:
CLI(cfg-update)> on update-failure { continue| stop |reboot }
• To perform a file update, enter the following commands. <sequence-id> is the step for the auto-
update sequencer. To enter the URL for file and file index version:
CLI(auto-update)> resource-update <sequence-id>
CLI(res-update)> [no] index-url http://<path>/<file-version>
[current-sw-version <suffix>]
CLI(res-update)> [no] url http://<path>/<file>
[current-sw-version <suffix>]
CLI(res-update)> [no] url option-160 http://<file>
[current-sw-version <suffix>]
• A target index file must be specified using the following command (the file is erased):
CLI(res-update)> [no] index <local-index-file>
• If a username and password are required to perform the file update, use the following command to
enter them:
CLI(res-update)> username <username> password <password>
http-server-disable. This allows disabling the HTTP server before the file update.
ibc-shutdown. This allows shutting down the IBC before the file update.
o With the following command, the actions to execute after downloading the file can be specified;
the HTTP server or IBC can be restarted, or an applet can be run.
CLI(res-update)> [no] post-update-action { http-server-enable |
ibc-noshutdown | applet <id>} <order-id>
http-server-enable. This allows restarting the HTTP server after the file update.
ibc-noshutdown. This allows restarting the IBC after the file update.
applet <id>. This executes an EEM applet after successful completion of the file
update. For the time being, the EEM applet named auto-update is always called and the
<id> parameter is a dummy parameter with no effect.
• If the file is successfully updated, by default, the auto-update sequence continues; but the behavior
can be changed as follows:
CLI(res-update)> on update-success { continue | stop | reboot }
• If an error occurs during file update, by default, the auto-update sequence stops and wait for next
trigger; but the behavior can be changed as follows:
CLI(res-update)> on update-failure { continue | stop | reboot }
• To perform a TAR file update, enter the following commands. <sequence-id> is the step for the
auto-update sequencer. To enter the URL for TAR and TAR index version:
CLI(auto-update)> tar-resource-update <sequence-id>
CLI(tar-res-update)> [no] index-url http://<path>/<tar-version>
[current-sw-version <suffix>]
CLI(tar-res-update)> [no] url http://<path>/<tar-file>
[current-sw-version <suffix>]
CLI(tar-res-update)> [no] url option-160 http://<tar-file>
[current-sw-version <suffix>]
• A target TAR index file must be specified using the following command (the file is erased):
CLI(tar-res-update)> [no] index <local-TAR-index-file>
• If a username and password are required to perform the file update, use the following command to
enter them:
CLI(tar-res-update)> username <username> password <password>
http-server-disable. This allows disabling the HTTP server before the TAR file
update.
ibc-shutdown. This allows shutting down the IBC before the TAR file update.
o With the following command, the actions to execute after downloading the TAR file can be
specified; the HTTP server or IBC can be restarted, or an applet can be run.
CLI(tar-res-update)> [no] post-update-action { http-server-enable |
ibc-noshutdown | applet <id>} <order-id>
http-server-enable. This allows restarting the HTTP server after the TAR file
update.
ibc-noshutdown. This allows restarting the IBC after the TAR file update.
applet <id>. This executes an EEM applet after successful completion of the TAR
file update. For the time being, the EEM applet named auto-update is always called and
the <id> parameter is a dummy parameter with no effect.
• If the TAR is successfully updated, by default, the auto-update sequence continues; but the behavior
can be changed as follows:
CLI(tar-res-update)> on update-success { continue | stop | reboot }
• If an error occurs during TAR update, by default, the auto-update sequence stops and wait for next
trigger; but the behavior can be changed as follows:
CLI(tar-res-update)> on update-failure { continue | stop | reboot }
configure terminal
auto-update
trigger monitored-interface Atm 0.1
trigger daily-restart-timer 01:00:00 02:00:00 1
source-interface loopback 4
http-get-extra-parameters 1
software-update 1
index-url http://autoupdate.com/sw-index/ current-sw-version .idx
url http://autoupdate.com/sw/ current-sw-version .ZZZ
backup-software /BSA/binaries/myOneOs.old
exit
config-update 2
index-url http://autoupdate.com/config-index/ serial-number .idx
url http://autoupdate.com/config/ serial-number .cfg
download-behaviour overwrite
exit
tar-resource-update 4
target /webroot/html clean-up all-sub-dir
index-url http://autoupdate.com/tar-index/ current-sw-version .idx
url http://autoupdate.com/tar/ current-sw-version .tar
pre-update-action http-server-disable 1
post-update-action http-server-enable 1
exit
exit
exit
• To stop auto-update manually (i.e. auto-update completes the current update job but does not carry
out the next step):
CLI> auto-update stop
4 C P E W A N M A N A G E M E N T P R O T O C O L ( C W M P - T R - 6 9 )
OneOS implements the CPE WAN Management Protocol (CWMP) specified by the specification TR-069 of
the Broadband Forum (formerly DSL Forum). This feature is introduced as of V4.2 and allows updating
OneOS routers firmware, configuration file and additional files.
The CWMP is structured in different layers, from IP connectivity to RPC calls (Remote Procedure Calls)
encoded in SOAP. It is required that the OneOS router is pre-configured in such a way that IP/DNS
connectivity and ACS URL (Auto Configuration Server) are known. (ACS URL or IP cannot be auto-
configured as depicted in TR-44 or TR-46).
CWMP requires http/https as transport layers for RPC; the following transport layer characteristics are
implemented in OneOS:
• The destination port is configurable (default: 7547).
• If HTTP is used, authentication via pre-shared key is optional (cf. RFC 2617, MD5-hashed digest or
BASIC authentication).
• The ACS can be designated by an IP address or a hostname.
• HTTPS is optional. HTTPS requires that the product is loaded with appropriately signed certificates.
• The source IP address of CWMP packets sent by the router cannot be forced to use a specific IP
address of a router interface.
• If the server sets cookies, the cookie is persistent in further HTTP requests.
When the CPE boots or upon specific events, the CPE indicates to the ACS that it is willing to establish a
TR-69 session by sending an INFORM RPC.
The INFORM RPC contains an event to indicate the trigger type of the INFORM RPC. They are:
• “0 BOOTSTRAP”: first product installation.
• “1 BOOT”: theoretically speaking, it means the router has rebooted. In reality, this event is fired when
a monitored interface is going up. Typically, the BOOT INFORM is sent when ATM 0.1 interface is
going up. OneOS CWMP module keeps track of past operations using the file /BSA/persist/cwmp.ini.
OneOS takes the decision by reading this file to use the BOOT or BOOTSTRAP event. At first
installation, this file does not exist and BOOTSTRAP is the used event. A delay timer prevents to send
INFORM requests too early at boot time so that SNTP server can be synchronized.
• “2 PERIODIC”: the ACS can configure that the CPE periodically sends an INFORM RPC. Enabling
this mode and periodicity is set by the ACS. The periodic INFORM parameters can be manipulated via
the SetParameterValue and GetParameterValue RPC.
• “4 VALUE CHANGED”: in case the ACS URL is updated in CPE configuration or if the IP address of
the monitored interface has been renewed.
• “9 REQUEST DOWNLOAD”: a CLI command (or Web configurator of the CPE) may issue an
INFORM with that event code. The ACS will look up if there is a new OS / Web / config for the CPE.
The following inform event codes are supported for informs triggered further to an ACS request:
• “3 SCHEDULED”: caused by the SCHEDULED INFORM RPC
• “6 CONNECTION REQUEST”
The INFORM RPC contains certain fields, for which a small explanation is given hereafter:
• MaxEnvelopes=1
• Sub-objects of DeviceId:
o Manufacturer: OneAccess_Networks
o OUI: By default taken from the MAC address #0 (0012EF or 70FC8C, depending on product or
manufacturing date).
o ProductClass: if the product is loaded with a X.509 certificate, the ProductClass is
derived from the common subject name of the certificate (cf. line CN: …). If there is no
certificate, ProductClass is taken from the product info area in read-only system area (see
further ahead the CLI command product-class-specification).
• Sub-objects of ParameterList:
o InternetGatewayDevice.DeviceInfo.HardwareVersion: see show product-info-
area CLI, at line Manufacturing file reference
o InternetGatewayDevice.deviceSummary
o InternetGatewayDevice.DeviceInfo.SpecVersion (dumb value: empty)
o InternetGatewayDevice.DeviceInfo.SoftwareVersion: same string as provided by
show version command
o InternetGatewayDevice.ManagementServer.ConnectionRequestURL
o InternetGatewayDevice.ManagementServer.ParameterKey
o InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnecti
on.1.ExternalIPAddress or
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnectio
n.1.ExternalIPAddress: public IP address that is used as monitored interface.
o Any customized parameter: a CLI command makes it possible to create custom objects that
are inserted in the INFORM data.
ACS-initiated sessions are needed to perform immediately actions on the CPE (such as software update).
The ACS must send an HTTP GET request to the embedded HTTP server of OneOS, dedicated to TR-69.
(Note that there might two instances of HTTP servers running in OneOS – one for web-based
configuration, one for TR-69 –).
The TR-69 http server is bound to a configurable port and interface (and optionally an ACL). The GET
request can be authenticated by means of a password. After authentication, OneOS sends an INFORM
with “6 CONNECTION REQUEST” as event code.
The ACS can ask the CPE to send an INFORM later at a specified time. In that case, the event code in the
INFORM will be “3 SCHEDULED”.
Use case: Scheduled informs are useful for an ACS to schedule firmware updates of many CPE while
limiting the number of simultaneous firmware upgrades.
When invoking the INFORM RPC (sent because of reboot, interface going up, connection request from
ACS …), the ACS is due to answer with an INFORM response containing the action to perform, namely an
RPC call and associated parameters.
The inform response specifies the URL to query to download the firmware, username and passwords for
authentication. The parameters FileSize and TargetFileName are ignored.
In router configuration, a parameter defines the backup firmware, in case the new firmware is invalid
(default backup-software: /BSA/binaries/OneOs.old). Actually, the appropriate setup is to configure
the router as follows:
• /BSA/bsaBoot.inf specifies the running firmware as /BSA/binaries/OneOs.new
• Backup firmware is /BSA/binaries/OneOs. Implicitly, the OneOS boot loader tries to load
/BSA/binaries/OneOs.new at boot; if this file is invalid (e.g. power-off during software download),
the boot loader loads the backup software /BSA/ binaries/OneOs.
Before downloading the file, the running software (if it exists) is renamed to overwrite the backup firmware.
The new firmware replaces the running firmware (typically OneOs.new). After download, software integrity
is checked. If the check is not passed, the new firmware is removed.
After reboot, an INFORM RPC is sent with event code “7 TRANSFER COMPLETE”.
Upon operation success, a reboot is done and after reboot, an INFORM RPC is sent with event code “7
TRANSFER COMPLETE”.
With the mode add-in, if the configuration is not executed properly, reboot is done automatically to restore
the older configuration.
After successful download, a reboot can be done if a configuration flag enables it.
Such update is possible by means of the DOWNLOAD RPC where FileType = “2 Web Content”. The
parameter FileSize is ignored.
Updating the web configurator, IBC or the default configuration file is handled differently by OneOS. The
downloaded files are packaged in a TAR file. To distinguish these update types, the TAR file contains a file
(located at root path inside the TAR file) that must be named cwmp-update-type.txt). This file can
contain one of the following strings:
• DEFAULT_CONFIG to update a default configuration file. The TAR file is downloaded and extracted in
the directory provided in TargetFileName tag (typically flash:/).
• WEB to update the Web Configurator. The TAR file is downloaded and extracted in the directory
provided in TargetFileName tag (typically flash://webroot). Prior to doing the extraction, the
HTTP server is shutdown and the HTTP server root directory (default: /webroot) is cleaned. After
extraction, the HTTP server is re-enabled again.
• IBC to update the IBC Packages. The TAR file is downloaded and extracted in the directory provided
in TargetFileName tag (typically flash:/). Prior to doing the extraction, the IBC Service is
shutdown. Then, IBC packages are updated. Finally, the IBC Service is restarted if needed.
If cwmp-update-type.txt file is missing or its content does not match any of the above mentioned
strings, the update type is assumed to be equivalent to WEB.
To create a CWMP update file, first create the file cwmp-update-type.txt and then copy the TAR file
(i.e. IBC TAR package, web TAR package…) named as web.tar under the same directory. Create the
MD5 checksum of web.tar and save the file as web.tar.md5. Finally create the CWMP update file by
creating a TAR archive file containing web.tar, web.tar.md5 and cwmp-update-type.txt files.
Warning: as of V4.2R5E15, MD5 check sum is mandatory, otherwise update is rejected.
Example for a web package (with Linux commands):
Localhost$ cd <workingdirectory>
Localhost$ echo “WEB” > cwmp-update-type.txt
Localhost$ cp WCF-OA-….tar web.tar
Localhost$ md5sum web.tar > web.tar.md5
Localhost$ tar –r –file web.tar web.tar.md5
Localhost$ tar cvf cwmp-package.tar web.tar cwmp-update-type.txt
Such update is possible by means of the DOWNLOAD RPC with FileType = “2 Web Content” for inter-
operability with OneProvisio(OPV) and "1-Firmware Upgrade" for other vendor ACS.
The file to be downloaded from OPV/ACS should be a TAR file containing :
• eah.tar.
• cwmp-update-type.txt containing the EAH keyword.
The content of cwmp-update-type.txt is used by the TR069 client on the device to identify the
downloaded tar from OPV/ACS.
Package format
The package is built with files packaged in a TAR archive file. The files will be noted hereafter as SHELL-
like variables and must follow the next conventions:
• - the $platform can be either oalinux or dtbImage.initrd.one90_c1.
• - the $install_tar can be any name with .tar extension.
• - the $install_ipk must begin either by netbooster or psmart.
• - $install_ipk_md5 must be the concatenation of $install_ipk and ".md5". This file is not
mandatory. It is verified only if present.
• - $final_cwmp_update_tar has got any name.
In the TAR, all the files are optional. It is not necessary to put an oalinux, and you can put 0 to N .ipk.
• 1) First, create the Netbooster package TAR file containing all the files (.ipk, .md5 & oalinux).
tar -cvf $install_tar $install_ipk $install_ipk_md5 $platform
OR
• 1) First, create the Packetsmart package TAR file containing both(.ipk, oalinux) files.
tar -cvf $install_tar $install_ipk $platform
Reboot RPC
The ACS can invoke this RPC so that the product reboots and returns to factory defaults.
This RPC enables an ACS to request the CPE to upload a file on a server. The following restrictions apply:
• Only FileType “1 Vendor Configuration File” is supported (i.e. upload of the running configuration)
• Transport layer can be: http or https, with or without username/password authentication
4.1.4.4 GetRPCMethods
This RPC enables the ACS to retrieve the list of supported RPC.
Problem statement: a LAN device managed by CWMP protocol is addressed with a private IP address.
This raises a security concern in that the LAN device could be installed and running from any LAN. Also for
incoming connection requests, the LAN CPE should indicate a ConnectionRequestURL with a publicly
IP addressable IP address.
To solve this technical issue, the Broadband Forum (formerly DSL forum) released the TR-111 standard.
OneOS fully supports TR-111 part 1 (Device-Gateway Association) as gateway and this is the default
behavior. On non-standard products, OneOS behaves as LAN device. In that case, all objects in its data
model start from root object Device.* instead of InternetGatewayDevice.*.
TR-111 is implicitly active when enabling TR-69. As gateway, OneOS DHCP server replies with the DHCP
option 125 if receiving the option 125 in DHCP requests. Similarly, OneOS products behaving as LAN
device automatically include DHCP option 125 if TR-069 is active. Finally, the TR-111 data model for
device - gateway association is populated accordingly.
OneOS fully supports TR-111 part 2 (Connection Request via NAT Gateway) that allows an ACS to initiate
a Session with a device that is operating behind a NAT Gateway. This provides the equivalent functionality
of the TR-069 Connection Request, but makes use of a different mechanism to accommodate this
scenario.
Use the following command to use a designated VRF different from the default VRF (it is possible to use a
different VRF for the session itself and for the file transfers):
CLI(cwmp)> vrf <vrf-name> [session | transfer]
Use the following command to use the default VRF (it is possible to use a different VRF for the session
itself and for the file transfers):
CLI(cwmp)> no vrf [session | transfer]
The ProductClass can be configured. It can be taken either from the X.509 certificate (if available) or the
motherboard type or the product name (see CLI commands show product-info-area at line
Motherboard type and show system hardware at line Device - default cert-or-mb-type):
CLI(cwmp)> product-class-specification { cert-or-mb-type
| mb-type
| product-name }
The ACS URL can be either learnt (using DHCP option 43) or manually configured.
Use the following command to have the ACS URL learnt using DHCP option 43:
CLI(cwmp)> [no] acs url learn
Use the following command to manually enter the ACS URL. The ACS URL can be a designated name or
an IP address. The URL may contain a port number in case a different port than default (7547) is used:
CLI(cwmp)> acs url {http|https}://<ip-or-name>[:<port>]/<path>/<filename>
By default the OUI value used in the requests to the ACS is taken from the first three bytes of MAC
address #0 of the device (0012EF or 70FC8C, depending on product or manufacturing date). To force this
value to be taken in any case, use:
CLI(cwmp)> static-oui
If HTTP authentication is used to authenticate the CPE (authentication for HTTP sessions initiated by the
CPE), by default the username used is TR-69 compliant (OUI + Product-Class + Serial-Number).
Use the following command to force the username to use:
CLI(cwmp)> acs auth username <string>
CLI(cwmp)> no acs auth username
If HTTP authentication is used to authenticate the CPE (authentication for HTTP sessions initiated by the
CPE), the password used can be a static string or a string made up of a static string concatenated with the
serial number (so that every router has a different password):
CLI(cwmp)> acs auth password <string> [serial-number]
CLI(cwmp)> no acs auth password
The serial number can either be the true serial number of the device (default) or a particular backup
number (refer to OneAccess Customer Support):
CLI(cwmp)> serial-number { default | bnumber }
The password can also be a customer specific password (refer to OneAccess Customer Support):
CLI(cwmp)> [no] acs auth cnumber
By default the OneOS-based router works in Internet Gateway Device mode, use the following command
to force the mode:
CLI(cwmp)> mode { internetgatewaydevice | device }
The monitored interface must be configured. It defines the interface that triggers the sending of an
INFORM RPC whose event if BOOT or BOOTSTRAP after a configurable timer (by default: no delayed-
start timer). The monitored interface is also the IP address that is in the INFORM:
• to construct the URL for connection request. It is: http://<monitored-interface-ip>/<random>
• to know if the ExternalIPAddress is a PPP or IP interface for the object
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnection.1.ExternalIPAddress or
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress
If the OneOS-based router is installed as a LAN device (TR-111 client), the TR-111 association must be
configured as a trigger; the BOOT/BOOTSTRAP events will only trigger an INFORM if the TR-111
association is successful (use of DHCP option 125 to learn the gateway identity).
CLI(cwmp)> [no] trigger gateway-association
Note: this command does not trigger TR-111 association, but modifies the trigger monitoring an interface.
If the command is entered after that the monitored interface is up, nothing will happen.
CWMP packets take as source address the IP address of the outgoing interface, but it can be forced:
CLI(cwmp)> source-interface <type> <unit>
CLI(cwmp)> no source-interface
When software upload is required, the inform response specifies the URL to query to download the
firmware, username and passwords for authentication. Today, the parameters FileSize and
TargetFileName are ignored.
In the case where the firmware transfer can take another path that the query, it is possible to force the
actual source address for the transfer:
CLI(cwmp)> [no] transfer-source enable
In router configuration, a parameter defines the backup firmware, in case the new firmware is invalid
(default backup-software: /BSA/binaries/OneOs.old). Actually, the appropriate setup is to configure
the router as follows:
• /BSA/bsaBoot.inf specifies the running firmware as /BSA/binaries/OneOs.new
• Backup firmware is /BSA/binaries/OneOs. Implicitly, the OneOS boot loader tries to load
/BSA/binaries/OneOs.new at boot; if this file is invalid (e.g. power-off during software download),
the boot loader loads the backup software /BSA/binaries/OneOs.
Before downloading the file, the running software (if it exists) is renamed to overwrite the backup firmware.
The new firmware replaces the running firmware (typically OneOs.new). After download, software integrity
is checked. If the check is not passed, the new firmware is renamed and the router reboots. Finally, an
INFORM RPC is sent with event code “7 TRANSFER COMPLETE”.
To use another name for backup software, use the next command:
CLI(cwmp)> backup-software <path/filename>
CLI(cwmp)> no backup-software
Configuration download: the configuration file is downloaded in temporary file and compared with the
configuration download during the last TR-069 configuration update operation. If they are different, OneOS
continues configuration update otherwise the operation is considered successful.
To define the behavior after configuration download:
CLI(cwmp)> config-update download-behaviour { add-in [skip] | overwrite }
o overwrite mode is the default behavior. In this mode the downloaded configuration file is
saved in /BSA/config/bsaStart.tr69. The router replaces the current configuration with
the downloaded one. The download operation is always considered successful when the
downloaded configuration file is not empty. The router reboots.
o In add-in mode the downloaded configuration is executed. If no error in execution is detected,
the upgrade is considered successful. If successful, the running version is saved. The
downloaded configuration file is saved. The download operation result is successful if the
downloaded file is not empty and the configuration file is executed without errors. By default, in
this mode, if the configuration is not executed properly, the update is canceled and a reboot is
done automatically. Use the skip keyword to ignore the detected errors and force the upgrade
to be considered as successful (to be used with caution).
o The optional arguments after the value define how the object is accessed:
get: the object can be read by the GetParameterValue RPC.
set: the object can be read by the GetParameterValue RPC and written by the
SetParameterValue RPC.
inform: the object is included in the INFORM.
val-chd: a value change on this object causes an ACS notification.
Operations with the data model can be done by means of the following RPC: SetParameterValues,
GetParameterValues, GetParameterNames, and also AddObject, DeleteObject for objects that
are instantiated.
These operations can be simulated by means of CLI commands that query the OneOS CWMP stack and
are expected to return the same result as the corresponding RPC. In the following CLI commands, it is not
necessary to include the managed object root keyword (either “InternetGatewayDevice.” or
“Device.”; “.” is enough).
To simulate GetParameterValues:
CLI> cwmp get-param <managed-object-name>
To simulate SetParameterValues:
CLI> cwmp set-param <managed-object-name> <value> <type>
To simulate GetParameterNames:
CLI> cwmp get-param-names <managed-object-path>
The CWMP data model include some objects that are instantiated: they are present if the corresponding
service is explicitly configured in OneOS configuration. An object instance is identified by its number, for
example: “InternetGatewayDevice.LANDevice.1”.
To simulate AddObject:
CLI> cwmp add-object <managed-collection–of-object-path>
To simulate DeleteObject:
CLI> cwmp delete-object <managed-object-instance-path>
The data model can be exported in XML Motive file format using the following command:
CLI> cwmp make-xml { internetgatewaydevice | device }
version { motive | motive_w }
Use motive_w to add in the XML text the "Writable" information, otherwise use motive.
Note: the XML file is stored in the /cwmp directory; this directory must exist prior to the CLI.
The following table explains how to understand several instantiation numbers of CWMP managed objects.
To simplify notations, the root object (InternetGatewayDevice. or Device.) is omitted.
LANDevice.{i}
The {i} instance corresponds to the BVI number. CLI configuration:
configure terminal
interface bvi {i}
…
exit
exit
LANDevice.{i}.Hosts.Host.{j}
When querying such object, OneOS CWMP engine looks up the DHCP pool associated with the BVI {i}; i.e. the
th
DHCP pool must be within BVI IP network. Host.{j} is the j host in the DHCP binding table that corresponds to
that pool.
LANDevice.{i}.LANEthernetInterfaceConfig.{j}
LANEthernetInterfaceConfig.{j} corresponds to the Ethernet port fastEthernet 0/{j-1}. That port
must be port of the BVI {i} bridge group. CLI configuration:
configure terminal
interface bvi {i}
…
bridge-group <x>
exit
interface fastEthernet 0/{j-1}
bridge-group <x>
no ip address
exit
exit
LANDevice.{i}.LANHostConfigManagement.IPInterface.{j}
IPInterface.1 corresponds to the main IP address; the following instances are secondary addresses by order
of configuration. CLI example:
configure terminal
interface bvi {i}
! IPInterface.1
ip address 192.168.1.1 255.255.255.0
! IPInterface.2
ip address 192.168.1.1 255.255.255.0 second
…
exit
exit
LANDevice.{i}.WLANConfiguration.{j}
The {j} instance corresponds to the interface dot11radio 0/{j}.
It must be part of BVI {i} bridge-group.
configure terminal
interface bvi {i}
…
bridge-group <x>
exit
interface dot11radio 0/{j}
bridge-group <x>
no ip address
exit
exit
WANDevice.{i}
WANDevice.{i}.WANConnectionDevice.{j}
{j} is the index of the ATM sub-interface (atm {i-1}.{j}). atm 0.1 is mapped to
WANDevice.1.WANConnectionDevice.1
WANDevice.{i}.WANConnectionDevice.{j}.WANIPConnection.{k} or
WANDevice.{i}.WANConnectionDevice.{j}.WANPPPConnection.{k}
A singly WANIPConnection instance is supported. k is always worth 1.
WANDevice.{i}.WANConnectionDevice.{j}.WANIPConnection.1.PortMapping.{k}
{k} starts from 1 to N, where N is the number of static NAPT rules.
configure terminal
interface atm {i-1}.{j}
…
ip nat static-napt tcp 192.168.1.2 80 self 80
ip nat static-napt udp 192.168.1.2 245 self 245
exit
exit
Services.VoiceService.{i}.VoiceProfile.{j}
{i} and {j} are always 1.
Services.VoiceService.1.VoiceProfile.1.Enable
Administrative state of the SIP or H.323 gateway. State mapping (TR-69 OneOS):
- Disabled: voice gateway is shutdown
- Enabled: voice gateway is ‘no shutdown’
- Quiescent: not supported
Services.VoiceService.1.VoiceProfile.1.Line.{i}
If applied to FXS, {i} index represents indeed an FXS line. With ISDN BRI/PRI, it represents a SIP account.
To identify the number of SIP accounts, the voice routing table is scanned from index MIN to index MAX (MIN=25,
MAX= max limit of the product – 25). Index is route-number i.e. MIN +1.
Get Action: do a get on all sub-objects.
Set Action: N/A.
Add Object: create a route after the last voice route and set a default sip-username=prefix=xxxxxx, phyRefList=0.
Services.VoiceService.1.VoiceProfile.1.Line.{i}.Enable
When manipulating that object, the software looks for all physical voice ports associated with pots-group {i}.
Mapping TR-69 OneOS when reading Enable:
- Enabled: all voice ports are ‘no shutdown’
- Quiescent: not supported
- Disabled: if not enabled
Services.VoiceService.1.VoiceProfile.1.Line.{i}.DirectoryNumber
Get/Set action:
- Sets/gets the prefix <number> length <yy> and sip-username.
- If the PhyReferenceList object is not empty and the associated pots-group corresponds to a single FXS
voice port, adds the "insert-calling-number <directoryNumber>" under the voice port.
Valid format: [+]?[A-Z09*#]+
If the directory number is in the international format:
- The OneOS router must be configured with the option to automatically process international numbering plan.
- The value in "prefix <number> ..." command is pre-processed (e.g. in France, a directory number of
+33141877001 becomes 0141877001) and the voice route must match number with ToN = National.
- In case of FXS, the number in "insert-calling-number" is the DirectoryNumber that was pre- and post-
processed for FXS (post-processing for a dial-peer not supporting internal number format).
Services.VoiceService.1.VoiceProfile.1.Line.{i}.SIP.AuthUserName
Set Action:
- Corresponds to sip-authentication.
- If not empty, the prefix attribute "ua-sip" is set.
- If empty, the prefix attribute "ua-sip" is unset.
Services.VoiceService.1.VoiceProfile.1.Line.{i}.SIP.AuthPassword
- Set Action: corresponds to sip-authentication.
Services.VoiceService.1.VoiceProfile.1.Line.{i}.PhyReferenceList
It corresponds to the pots-group. Format (regexp): \d+
Set: for the corresponding route, associate the dial-peer pots <nbr> in hunting mode.
Get: take the pots-group value from the route. If it is not a pots-group or if it is not set, return an empty string.
Services.VoiceService.1.VoiceProfile.1.Line.{i}.Status
OneOS looks up the dp-pots ua-sip under voice-routing as described above.
- If that number must be registered to SIP server (the command ‘dial-peer pots <i> … ua-sip’ is
present), the status corresponds to registration status of that number.
- If that number must not be registered, corresponds to the global registration status of SIP / H.323 gateway.
State mapping (TR-69 OneOS):
- Disabled: SIP gateway is shutdown or the voice-port associated with that number is shutdown.
- Registering: SIP gateway is ‘no shutdown’ (or the gateway interface is up) but SIP gateway / number is not
registered.
- Up: number registered (or the SIP gateway is completely registered).
Services.VoiceService.1.VoiceProfile.1.X_ONEACCESS_VOICEPOTS.{i}
Proprietary object: Voice pots table.
Add object: creates the dial-peer voice pots.
Object index {i} corresponds to dial-peer voice pots {i}.
Services.VoiceService.1.VoiceProfile.1.X_ONEACCESS_VOICEPOTS.{i}.port
Proprietary object: Voice port. Typically "5/0", "5/1".
Services.VoiceService.1.VoiceProfile.1.X_ONEACCESS_VOICEPOTS.{i}.potsGroup
Proprietary object: Pots-group number.
Services.VoiceService.1.ISDNInterface.{i}
The {i} instance of the object corresponds to the BRI port+1 (ISDN 5/0 is mapped to ISDNInterface.1).
TR111 UDP Connection Request module uses a STUN Server to determine if a NAT Binding is in use or
not and retrieve the public address/port in the case that NAT is used.
When CWMP service is up, and STUN client parameter is set to TRUE, TR111 UDP Connection Request
module will try to communicate via UDP with the STUN Server.
To start the STUN client, use the following command in CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client enable true
To stop the STUN client, use the following command in CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client enable false
To configure the STUN Server address, use the following command in CWMP configuration mode. The
default STUN Server port number is 3489.
CLI(cwmp)> udp-cr stun-client server-address <IP-address> [<port>]
If NAT is detected, the parameter NATDetected is set to TRUE and the parameter
UDPConnectionRequestAddress is updated with the public address.
If no NAT is detected, the parameter NATDetected is set to FALSE and the parameter
UDPConnectionRequestAddress is updated with the private address.
To configure the STUN client authentication settings, use the following command in CWMP configuration
mode:
CLI(cwmp)> udp-cr stun-client authentication <username> <password>
To configure the STUN client keepalive settings, use the following command in CWMP configuration
mode:
CLI(cwmp)> udp-cr stun-client keepalive <min-seconds> <max-seconds>
To restore the STUN client keepalive default settings (min=0; max=4294967295 seconds), use the
following command in CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client default keepalive
To configure the STUN client minimum notification interval, use the following command in CWMP
configuration mode:
CLI(cwmp)> udp-cr stun-client min-notification-interval <seconds>
To restore the STUN client default minimum notification interval (0 second), use the following command in
CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client default min-notification-interval
To configure a fixed STUN client source port, use the following command in CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client source-port fixed <1024-65535>
To configure a random STUN client source port to be taken within a range, use the following command in
CWMP configuration mode:
CLI(cwmp)> udp-cr stun-client source-port random <min> <max>
To restore the STUN client default source-port (3478), use the following command in CWMP configuration
mode:
CLI(cwmp)> udp-cr stun-client default source-port
To force CWMP to send a BOOTSTRAP event at next boot, you must clean up a file (that would also be
cleaned up by a factory reset):
CLI> rm /BSA/persist/cwmp.ini
CLI> reboot
The debug mode activates the traces and also saves the CWMP transaction messages in the
/cwmp/temp directory:
CLI> [no] debug cwmp { all | application | session | data | soap }
configure terminal
cwmp
acs url http://acserver:7547/proxyServlet
trigger monitored-interface atm 0.1
config-update download-behaviour add-in
exit
exit
5 A U T O C O N F I G U R A T I O N
This section describes the autoconfiguration features of OneOS and how to activate this function.
Autoconfiguration permits, when starting DHCP client on an interface, to automatically acquire
configuration parameters. This permits also to retrieve new image releases, thus facilitating image update
on a large-scale basis. In order to adapt to varying customer requirements, several autoconfiguration
methods can be defined.
The objective of such function is to optimize deployment and maintenance costs of OneOS-based routers.
Indeed, all routers stored in the warehouse have the same configuration files and software. When they are
deployed in the customer premises, they download their configuration files and software if needed. This
procedure enables the standardization of deployment and maintenance, which, in turn, enables significant
operative savings.
The Autoconfiguration implementation is compliant with DHCP RFC 2131 and RFC 2132. Note that some
well defined DHCP fields have been reused, in order to provide a better use for our customers.
Autoconfiguration can download router software and configuration. The following diagram shows the state
machine of autoconfiguration and the controls made to avoid the download of faulty
software/configurations. The first step ("Execute bsaStart and backup configuration") is detailed in the
second diagram.
Execute bsaStart.cfg
Backup configuration Yes
Start in case of errors Reboot
(detailed in next diagram)
No - errors in bsaStart.cfg
Download Config.
No
New config
different from
bsaStart.cfg? No
Is new OS name
Yes different from
current?
Yes
Is downloaded
No
OS integrity
Copy bsaStart.cfg correct?
Yes
into bsaStart.old.
Copy new config
into bsaStart.cfg.
Reboot. Reboot
Execute bsaStart.cfg
Is command ‘reboot-recovery-on-
error’ present?
No Yes
To enable autoconfiguration and select the method, use the following command in global configuration
mode:
CLI(configure)> autoconfiguration <method>
CLI(oaac-mthd1)>
Actually, only methods ‘1’, ‘2’, ‘3’ and ‘4’ are available (see below). From there, the user must configure
method-specific parameters.
To deactivate autoconfiguration, use the no form of the following command in global configuration mode.
CLI(configure)> no autoconfiguration <method>
Once the method-specific parameters are entered, enter the ‘execute’ command to complete the service
configuration:
CLI(oaac-mthd1)> execute
Voice service could also be started using autoconfiguration method #1. To activate this feature, use the
following command under H.323 gateway configuration:
CLI(h323gw)> gw-address autoconfig
In this case, The OneOS-based router waits for a DHCP request and uses the information contained in the
DHCP message (option #14) to start the H.323 gateway. The option #14 is an ASCII string with the
following format:
Where:
• The protocol identifier should be set to 2 when H.323 protocol is selected. Others values has been
reserved to maintain future software compatibility.
• ‘<A>.<B>.<C>.<D>’ is the gatekeeper IP address, used to setup a manual or automatic registration to
this gatekeeper. When OneOS receives a broadcast IP address, an automatic process is started
instead of a manual one. When this IP address is set to 0, the H.323 gateway is stopped after
disconnecting all running calls.
• The gateway identifier provides the name of the OneOS-based router to the gatekeeper (concerning
the RAS protocol).
The OneOS-based router can dynamically update those parameters even if the H.323 gateway is already
started. The H.323 gateway behavior depends on theses parameters.
In this case, others parameters into h323-gateway configuration entry are optional except the gw-
interface and no shutdown commands.
To deactivate this feature, use the following command:
CLI(h323gw)> gw-address implicit
‘Method #1’ enables to check that the device has the right software image and to download a new image if
needed. The process is described as follows:
• The router gets the IP address of a TFTP server in the option #17
• If the option #17 provides a valid address, the router downloads an image information file that
indicates the software image name and size and the TFTP server, where the image is stored.
• If the image currently in use is different from the one retrieved in the image information file, the new
image is downloaded and the device reboots with the new image.
The option #17 is an ASCII string containing the IP address of the TFTP server under the format:
‘<A>.<B>.<C>.<D>’.
The image information file is a text file with the following fields:
[one200]
<string>:<software-image-file>
<tftp-ip-addres>
<length-in-bytes>
[one400]
<string>:<software-image-file>
<tftp-ip-addres>
<length-in-bytes>
[one100]
<string>:<software-image-file>
<tftp-ip-addres>
<length-in-bytes>
[one300] -- also available for one180
<string>:<software-image-file>
<tftp-ip-addres>
<length-in-bytes>
Where:
• string is actually any string (not significant today, for future use).
• software-image-file is the name of the image file of the TFTP server.
• tftp-ip-addres is the address of the TFTP server, where the image can be downloaded.
• length-in-bytes is the size in bytes of the image (to check if there is enough space in flash before
downloading).
The file can contain information for several device names.
The following example shows a WAN topology in which autoconfiguration and DHCP is configured. In this
example, router A is the DHCP client that needs to be auto-configured. Router B is the DHCP server as
well as the default gateway router for A.
Router B
88.123.12.1 HOSTB
88.123.12.243
Router A
10.0.0.1 GATEKEEPER
88.123.12.242
10.0.0.255
no shutdown
exit
exit
Once A retrieved main DHCP parameters (IP address, net mask, default route and DNS server),
autoconfiguration looks up for options #17 and #14.
Voice parameters contained in option #14 indicate that a gatekeeper named gw-test at IP address
88.123.12.242 is ready. The first number (2) means that h323 module is required. Otherwise, voice
configuration is bypassed.
Option #17 is the IP address of the remote TFTP server to download image information file
oneaccess.general. Once the IP address is extracted from option #17, the file is retrieved and
analyzed.
Note: as of V4.3R2E2 software release, Method-2 Autoconfiguration is not supported outside default VRF.
The option #17 is an ASCII string containing the IP address of the TFTP server under the format:
‘<A>.<B>.<C>.<D>’.
The downloaded information file is under the following form:
/home/luci/admintests/oaac/config_one200
192.168.30.234
lucilu
luci123
admintests/oaac/oneos1.gen
192.168.30.234
To configure the interface onto which DHCP requests must be issued, enter the following command:
CLI(oaac-mthd2)> add-interface <type> <unit>
If the software image is allowed to be upgraded, the following command must be entered (default:
disabled):
CLI(oaac-mthd2)> os-update {enabled|disabled}
The autoconfiguration can be enabled only after synchronization with a NTP server:
CLI(oaac-mthd2)> add-ntp-server <ip>
When the configuration is completed, always enter the ‘execute’ command to activate the changes:
CLI(oaac-mthd3)> execute
The next parameter enables to reboot automatically with the old configuration in case the new
configuration downloaded is detected as invalid (errors while executing the start configuration; by default:
disabled):
CLI(oaac-mthd3)> exit
CLI(configure)> [no] reboot-recovery-on-error
This method is similar to method 2 but no image and configuration file are downloaded. In this method, the
process is:
• The router sends a DHCP discover with option #60 (vendor-id) under the form voipt0t2-
oneaccess-<software-release> and gets the IP address of a TFTP server in the option #17.
• The router retrieves the voice parameters and proceeds with test calls.
The autoconfiguration is retried until successful. Traps are emitted to the configured event managers, if no
test call is successful. If no successful call after 3 attempts is observed, the Voice LED remains red.
To enable autoconfiguration method 3, use the following command in global configuration mode:
CLI(configure)> autoconfiguration 3
CLI(oaac-mthd3)>
To configure the interface onto which DHCP requests must be issued, enter the following command:
CLI(oaac-mthd3)> add-interface <type> <unit>
The autoconfiguration can be enabled only after synchronization with a NTP server:
CLI(oaac-mthd3)> add-ntp-server <ip>
When the configuration is completed, always enter the execute command to activate the changes:
CLI(oaac-mthd3)> execute
Note: as of V4.3R2E2 software release, Method-4 Autoconfiguration is not supported outside default VRF.
Autoconfiguration method 4 is configured with the same parameters as autoconfiguration method 2 and
the file formats on FTP/TFTP servers are the same, as well as DHCP options.
The main differences between method 2 and 4 are exclusively related to OneOS behavior: the way to
download files, to reboot and to recover from errors is different. To further detail the behavior of method-4
autoconfiguration, the next diagram depicts the autoconfiguration steps:
Delay Timer
Start must_reboot:=no
get gen_client
KO File
OK
OK
Yes
downloaded file
passes integrity
No check?
Yes
downloaded file is
different from running
software? No
Yes
is it a new
Config file? No
Yes
Yes
Reboot
To display statistics about the existing autoconfiguration, use the following command line:
CLI> show autoconfiguration
autoconfig method1
config: tftp tries 0 (0 successfull, 0 bad params)
software version: tftp tries 0 (0 errors, 0 checksum errors)
system: errors fs 0, other
To display help information on how to use autoconfiguration, simply type the ‘autoconfiguration’ command:
CLI(configure)> autoconfiguration
method1: voice configuration and image version download manager
dhcp: option 14{A|B|C}, A=2 for H323, B gatekeeper ip@, B gateway identifier
option 17{D}, tftp server to download config file
oneaccess.general format:
[header] machine type: one200 or one400
filename in the format A:B where A is a private name, B is the image version
ipaddress ip address of tftp server to download image from filesize number of bytes of
the file to download
6 E V E N T - D R I V E N C P E C O N F I G U R A T I O N
• The Event-driven CPE configuration functionality makes it possible to handle OneOS events and
accordingly trigger command-line interface (CLI) applets in order to execute a set of configuration
actions.
• Event-driven CPE configuration function involves two software modules:
o Object tracking module: it provides in-box monitoring of different components of OneOS such
as interfaces or a VRRP instance. Tracked OneOS components are identified as objects with a
reported value which is either UP or DOWN. Other OneOS processes (such as Embedded
Event Manager described hereafter) can make use of the object tracking function to monitor
the state of specific objects and trigger actions accordingly.
o Embedded Event Manager (EEM): it implements automatic CPE configuration on the basis of
CLI commands configured in an applet and the state of a tracked object. It is a software
module designed to detect a defined event and execute an EEM applet when that event
occurs. An EEM applet defines an event and a set of CLI commands to be executed when that
event occurs.
• The following table gives the list of objects which can be tracked:
• The following table gives the default tracking polling timer intervals:
• To define an object to track the state of an existing RTR probe and enter in tracking RTR object
configuration mode, use the following command in global configuration mode:
CLI(configure)> track <object-id> ip-rtr <session-id> reachability
CLI(track-rtr)>
• To filter out flapping RTR probe states (getting UP and/or getting DOWN), use the following command
in tracking RTR object configuration mode:
CLI(track-rtr)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the RTR probe has to be continuously UP in order to
be considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the RTR probe has to be continuously DOWN in
order to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track-rtr)> no track-delay
• To terminate the configuration of the tracking of RTR probe state, use the following command in
tracking RTR object configuration mode:
CLI(track-rtr)> exit
CLI(configure)>
• To define an object to track the IP state of an interface and enter in tracking interface object
configuration mode, use the following command in global configuration mode:
CLI(configure)> track <object-id> interface
{ ethernet <slot>/<port>[.<sub-if>]
| fastethernet <slot>/<port>[.<sub-if>]
| gigabitethernet <slot>/<port>[.<sub-if>]
| dot11radio <slot>/<port>[.<sub-if>] | loopback <id>
| atm <port>[.<sub-if>] | pstn <slot>/<port>[.<sub-if>]
| efm <slot>/<port>[.<sub-if>] | serial <slot>.<port>
| dialer <id> | l2tunnel <id> | tunnel <id> }
ip-routing
CLI(track-int)>
• To filter out flapping IP routing state of interfaces (getting UP and/or getting DOWN), use the following
command in tracking interface object configuration mode:
CLI(track-int)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the interface has to be continuously UP in order to
be considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the interface has to be continuously DOWN in
order to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track-int)> no track-delay
• To define the interval in which the tracking process polls the tracked interface state, use the following
command in tracking interface object configuration mode:
CLI(track-int)> track timer interface <value>
o value is the polling interval in milliseconds (500 – 60000; must be multiple of 500
milliseconds). Default value: 1000 milliseconds (1 second).
To return to the default value for the timer, use the no form of the command:
CLI(track-int)> no track timer interface
• To terminate the configuration of the tracking of IP routing state of interface, use the following
command in tracking interface object configuration mode:
CLI(track-int)> exit
CLI(configure)>
• To define an object to track the state of an existing VRRP instance and enter in tracking VRRP object
configuration mode, use the following command in global configuration mode:
CLI(configure)> track <object-id> vrrp <vrrp-id> [vrf <vrf-name>]
CLI(track-vrrp)>
• To filter out flapping VRRP states (getting UP and/or getting DOWN), use the following command in
tracking VRRP object configuration mode:
CLI(track-vrrp)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the VRRP instance has to be continuously UP in
order to be considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the VRRP instance has to be continuously DOWN
in order to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track-vrrp)> no track-delay
• To terminate the configuration of the tracking of VRRP state, use the following command in tracking
VRRP object configuration mode:
CLI(track-vrrp)> exit
CLI(configure)>
• To define an object to track the state of a list of objects and enter in tracking list of objects
configuration mode, use the following command in global configuration mode:
CLI(configure)> track <object-id> list-boolean { and | or }
CLI(track-list)>
• To add to the Boolean list of objects an object whose state has to be tracked, use the following
command in tracking list configuration mode:
CLI(track-list)> object <object-number> [not]
o object-number is the number (1 – 100) of the selected object to be added to the list.
o not keyword is used to indicate that the "inverted" state of the object has to be taken into
account.
The object command can be entered multiple times so as to track several objects.
To remove an object from the tracking list, use the no form of the command:
CLI(track-list)> no object <object-number>
• To filter out flapping tracking list states (getting UP and/or getting DOWN), use the following command
in tracking list object configuration mode:
CLI(track-list)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the tracking list object has to be continuously UP in
order to be considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the tracking list object has to be continuously
DOWN in order to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track-list)> no track-delay
• To terminate the configuration of the tracking list, use the following command in tracking list object
configuration mode:
CLI(track-list)> exit
CLI(configure)>
• To define an object to track an IP route and enter in tracking dialer-watch-list configuration mode, use
the following command in global configuration mode:
CLI(configure)> track <object-id> dialer-watch-list <list_name>
CLI(track-dialer-watch)>
• To filter out flapping route states (getting UP and/or getting DOWN), use the following command in
tracking dialer-watch-list configuration mode:
CLI(track-dialer-watch)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the route has to be continuously UP in order to be
considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the route has to be continuously DOWN in order
to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track-rtr)> no track-delay
• To terminate the configuration of the tracking of an IP route state, use the following command in
tracking dialer-watch-list configuration mode:
CLI(track-dialer-watch)> exit
CLI(configure)>
Example
• The route 77.242.202.241 is set to next hop 192.168.1.1 if the route 57.210.107.37 is installed in the
routing table (learnt from BGP for example):
• To define an object to track the state of a MEP and enter in tracking MEP object configuration mode,
use the following command in global configuration mode:
CLI(configure)> track <object-id> mep mpid <mepId> level <meLevel>
direction <inward|outward> vlan <vlanId>
interface <type-unit>
CLI(track-mep)>
• To filter out flapping MEP states (getting UP and/or getting DOWN), use the following command in
tracking MEP object configuration mode:
CLI(track- mep)> track-delay { up <up-timer> [down <down-timer>]
| down <down-timer> [up <up-timer>] }
o up-timer is the time in seconds (2 – 60) the MEP has to be continuously UP in order to be
considered UP by the tracking function. Default value: 2 seconds.
o down-timer is the time in seconds (2 – 60) the MEP has to be continuously DOWN in order
to be considered DOWN by the tracking function. Default value: 2 seconds.
To return to the default values for the timers, use the no form of the command:
CLI(track- mep)> no track-delay
• To terminate the configuration of the tracking of the MEP state, use the following command in tracking
MEP object configuration mode:
CLI(track- mep)> exit
CLI(configure)>
• During startup (power-on or reboot) events are not monitored to avoid false detections. To define the
delay after startup after which the tracking of objects can start, use the following command in global
configuration mode:
CLI(configure)> track-initial-delay <seconds> [generate-event]
o <seconds> is the delay in seconds (1 – 3600) after which the tracking of objects can start.
Default value: 120 seconds (2 minutes).
o The generate-event keyword is used to define whether events need to be triggered
automatically after the delay expiration. When present, at the expiry of the initial delay timer,
OneOS generates events for all the tracked objects on the basis of the current object states.
This process runs once after the initial delay timer such applets can be triggered based on the
router state after startup.
• To return back to the default initial delay timer (2 minutes), use the no form of the command:
CLI(configure)> no track-initial-delay
• To define an EEM applet and enter in applet configuration mode, use the following command in global
configuration mode:
CLI(configure)> event manager applet <applet-name>
CLI(config-applet)>
6.5.2.2 Defining the event tracking for which the applet is run
• To define the event that causes the applet to run, use the following command in applet configuration
mode:
CLI(config-applet)> event track <object-number> [state {up | down | any}]
o <object-number> is the number of the tracked object which state changes will trigger the
applet.
o The state keyword is used to specify the event criterion that causes the EEM applet to run:
up. The applet is run when the object transitions from a DOWN state to an UP state
(default value).
down. The applet is run when the object transitions from an UP state to a DOWN state.
any. The applet is run whenever the object state changes.
To remove the event from the applet configuration, use the no form of the command:
CLI(config-applet)> no event track
• Alternatively, one can configure event none so that the EEM applet can be triggered manually
(e.g. for test purpose):
CLI(config-applet)> event none
With event none, to manually run the EEM applet, use the following command in global mode:
CLI> event manager run <applet-name>
6.5.2.3 Defining the timing event for which the applet is run
• To define the timing event that causes the applet to run, use the following command in applet
configuration mode:
CLI(config-applet)> event timer [countdown | watchdog] time <value>
o countdown is used to run an applet after a certain time defined by time. The applet is
executed once.
o watchdog is used to run an applet periodically. The period is then defined by the time
parameter.
o The time <value> must be entered in second in the range <1-86400>.
• To define the timing event that causes the applet to run based on cron entry, use the following
command in applet configuration mode:
CLI(config-applet)> event timer cron cron-entry <cron-entry> name <name>
o The <cron-entry> must be entered between quotes, with the following format:
“minOfhour hrOfDay dayOfMonth moOfYear dayOfWeek”
Where cron entries are:
minOfHour is from '0' to '59'
hrOfDay is from '0' to '23'
dayOfMonth is from '0' to '30'
moOfYear is from '1' to '12'
dayOfWeek is from '0' to '6'
o The maximum length of the <cron-entry> is 256 characters.
o Each entry of the <cron-entry> should be separated by at least one space character " ".
o Any entry of the <cron_entry> field can be given as '*'; this means any value.
o Any entry of the <cron_entry> field can be given a single numeric, or a list, or a range, or a
step value, or a combination of any two/all of these types.
For example, minOfHour can be given as:
Single value: 10 (10 minutes)
List 4,6,10,30 (4, 6, 10 or 30 minutes)
Range 10-25 (for any minutes in the range from 10 to 25 minutes)
Step 10-30/3 (all minutes between 10 and 30, by a step of 3 minutes)
When a range or step format is given, first, the minimum and then the maximum must be
given (min-max or min-max/step).
• Different overall examples of the use of the cron-entry in event timer are given below:
o event timer cron cron-entry "30 * 14,20,23,30 1-6/2 5"
This will trigger the applet every Thursday, every 2 months, between January and June starting
in January, on the 14th, 20th, 23rd and 30th day of the month, every hour at 30 minutes.
• To remove the event from the applet configuration, use the no form of the command:
CLI(config-applet)> no event timer
6.5.2.4 Defining the syslog event for which the applet is run
• To define the syslog event that causes the applet to run, use the following command in applet
configuration mode:
CLI(config-applet)> event [tag <event-tag>]
syslog pattern <regular-expression>
[priority <priority-level>] [severity <level>]
o <regular expression>. Use this to define the pattern to match in the syslog message. The
maximum length is 128 characters.
o <priority-level>. Use this to define the level of priority to match in the syslog event.
o <level>. This defines the level of severity to match in the syslog event. This must be in the
range from 0 to 7.
• To remove the event from the applet configuration, use the no form of the command:
CLI(config-applet)> no event syslog
6.5.2.5 Defining the CLI commands to be executed when the event occurs
• To define the CLI commands to be executed when the EEM applet is triggered, use the following
command in applet configuration mode (up to 20 times):
CLI(config-applet)> action <label> cli <cli-string> [prompt1 <string1>
[prompt2 <string2>]]
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <cli-string> defines the CLI command to be executed when the action is triggered in the
EEM applet. Note that the CLI command must be entered between quotes.
o <string1> and <string2> are used as input for the prompts that the CLI command may
display.
Warning: <cli-string>,<string1>, and <string2> must be entered between quotes if they
contain multiple words. They are always displayed enclosed in quotes even when not entered that
way.
When the command is used, the output of the <cli-string> will be stored and can be recalled via
the variable $_cli_result.
$_cli_result will store the output of the last CLI executed only.
• Regular Expression is a powerful string matching syntax that not only allows matching a string with a
searched pattern, but allows extracting some text within a text.
Typically, Regular Expression would be used after executing a show command, whose text output has
been stored in $_cli_result. The Regular Expression makes it possible to extract a counter or the
state of a service and store that in variables.
• The CLI result can be matched by a Regular Expression by using the following CLI:
CLI(config-applet)> action <label> regexp <pattern>
$_cli_result [ <matched-var> [ <var1> ... <varN>]]
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <matched-var>. This will contain the matched string if the <pattern> has been found,
otherwise it is empty.
o <var1> ... <varN>. These are the names of the variables where the Regular Expression
sub-matches are stored. In further EEM script lines, the variables can be substituted with their
values by prefixing them with a $ character.
o <pattern>. Use this to define the pattern to be matched in the text contained in
$_cli_result.
• Patterns for matching can be of 128 characters and variable length can be 24 characters maximum.
Input string can be 64 characters long.
• The following table shows some of the Regular Expression Pattern Matching Characters that are
supported:
^1300space
space1300
{1300,
,1300,
{1300}
,1300,
In the regexp pattern, 2 types of variables are supported, sticky and non-sticky.
• Sticky variables can retain their values across single applet execution until the particular applet is
unconfigured. The default values for sticky variables are zero. Sticky variable names are predefined:
#appVar0
#appVar1
#appVar2
#appVar3
#appVar4
#appVar5
#appVar6
#appVar7
• Non-sticky variables can be created using action set, action regexp, and these values are not
retained across applet execution.
Names of these variables are user-defined and should not start with #.
To access these variables, the variable name should be prefixed with $.
For example, to access variable counter, one should use $counter.
The maximum number of non-sticky variables within an applet is 24.
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <variable name>. This is the name of the variable prefixed with $.
o <value> can be an absolute value or a variable name.
Example
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <variable name>. This is the name of the variable prefixed with $.
o <value> can be an absolute value or a variable name.
Example
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <string> is the name of the variable prefixed with $; the maximum string length is 256.
Note however, that the total CLI command length itself has a limit of 255 characters, so it is
bound by the remaining keywords.
The command can be used to print values of the following variables by adding a $ character before
the variable name:
o sticky variables
o non sticky variables
o _result
o _regexp_result
• When trying to reference any other variable, the applet execution will be set to error and a
corresponding message will be displayed if debugging has been enabled.
• The output of the puts statement will be shown on the console. It will also be displayed in the
debugging, if enabled.
• The result of the regexp is stored and can be recalled in the next command lines by the variable
$_regexp_result.
• $_regexp_result will have value 1 if regexp matched and 0 if regexp does not match.
• Conditional execution based on $_regexp_result in the applet can be triggered by using the
following CLI:
CLI(config-applet)> action <label> if
$_regexp_result { eq | gt | ge | lt | le | ne }
<string-op-2> goto <label-2>
• Conditional execution based on string match and string sub match in the applet can be triggered by
using the following CLI:
CLI(config-applet)> action <label> if
<variable name> { eq | gt | ge | lt | le | ne }
<string-op-2> goto <label-2>
• To trigger the sending of a syslog message in an applet, use the following command:
CLI(config-applet)> action <label> syslog
[server <a.b.c.d> | X:X:X:X::X | hostname]
[severity <severity-level>] msg <msg-text>
facility <string>
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o [server <a.b.c.d> | X:X:X:X::X | hostname]. This defines the address of the
syslog server to send the message to. An IPv6 server or hostname is also supported.
If the syslog server is not mentioned explicitly, configured syslog messages will be sent to all
syslog servers configured in the device.
o <severity-level> defines the severity level of the syslog messages; <severity-level>
can be: emergencies, alerts, critical, errors, warnings, notifications, info,
debug, $_last_log_severity, $_last_syslog_severity.
o <msg-text> defines the content of the syslog messages. The value of sticky and non-sticky
variables can be imbedded into the user's syslog messages.
The syslog message size is limited to 128 bytes in backend.
o <string> defines the value of the facility code of the syslog message.
• Note that a user/syslog message with invalid msg severity and facility will not be sent to the server.
• Example:
action 1.2 syslog server 10.4.32.132 severity “informational”
msg "MGMT IP = $ipaddr" facility 23
• The OneOS device can send (an) email(s) when the LTE connection is being used for data
transmission.
This functionality can for instance be used to alert a network administrator when the LTE connection is
being used as backup and it has become active, meaning that the normal connection has failed; this
could lead to an extra cost.
• This functionality can be configured by using the following command:
CLI(config-applet)> action <label> email <recipient> <template-file-name>
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <recipient> is the destination email address.
o <template-file-name> is the email template that will be used:
The body of the email will be prepared by using the data contained in this template file.
The template file can contain any data and can be stored anywhere on the device, for
instance in /webroot, but the complete path must be specified as argument in this
command.
Note that the email subject is fixed and cannot be changed.
The template can contain SHELL style variables, like for instance $customerId and
$number. These will be replaced with actual values when the email is composed.
Refer to the example below.
• Note that, for sending and receiving emails, the email ID and details must be configured on the device
as well, using the following commands:
CLI(configure)> smtp server <smtp-server-address>
CLI(configure)> smtp local-email <local-email-address>
CLI(configure)> smtp local-name <local-user-name>
CLI(configure)> smtp auth-name <authentication-name>
CLI(configure)> smtp auth-password <authentication-password>
• When this feature has been configured, it will be shown when running the following show commands:
CLI> show running-config
Example
• Configured applet:
CLI(configure)> event manager applet email
CLI(config-applet)> event none
CLI(config-applet)> action "3.0" "set" "number" "10"
CLI(config-applet)> action "3.1" puts "number = $number"
CLI(config-applet)> action "3.2" "set" "customerId" "Gobus"
CLI(config-applet)> action "4.0" email "[email protected]"
"webroot/email_template"
CLI(config-applet)> exit
CLI(configure)> end
• An alarm can be sent through an applet as a trigger action by using the following command.
CLI(config-applet)> action <label> alarm <index> {oid_to_monitor}
{delta | absolute}
{rising <threshold> | falling <threshold>}
[description <description> ]
[owner <owner-string>]
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o <index>. This is an unsigned integer, ranging between 1 and 65535, unique for each applet.
o oid_to_monitor. This is the OID value to be monitored, and can be a string of maximum
120 characters.
o delta. This indicates the alarm method; delta indicates that the threshold values given in the
command should be interpreted in terms of the difference between successive readings. The
delta is calculated as the last iteration value subtracted from the current value and is compared
against the configured threshold. Delta calculation will be skipped for the first iteration to avoid
using the wrong value for the last iteration.
o absolute. This indicates the alarm method; absolute indicates that the threshold values
given in the command must be interpreted as absolute values; i.e., the difference between the
current value and preceding values is irrelevant. For method absolute, the current value is
always compared against the configured threshold.
o rising <threshold>. This is the upper threshold for a monitored variable and specifies the
value at which the alarm must be triggered: the alarm will be triggered if the value is greater
than or equal to the configured threshold.
o falling <threshold>. This is the lower threshold for a monitored variable and specifies
the value at which the alarm must be triggered: the alarm will be set if the value is less than the
configured threshold.
o <description>. This is a string of maximum 32 characters.
o <owner-string>. This is a string of maximum 32 characters.
• During the initialization, the previous alarm will be set to none. Following conditions will be checked to
generate alarms:
o A rising alarm will be generated if the previous alarm was not a rising alarm.
o A falling alarm will be generated if the previous alarm was not a falling alarm.
• In an applet with a given alarm index, only one alarm can be configured. The alarm index is used as
the key for the action rmon-trap and action if-alarm, as described in:
o 6.5.2.11 Sending a RMON trap.
o 6.5.2.12 Action if-alarm based on alarm computation.
• As a prerequisite, the value of the alarm variable needs to be set before calling the action alarm
command.
The variable name should be "alarmValue". Refer to the following configuration example:
action "1.0" "set" "alarmValue" "10000"
action "1.1" alarm "10" ".1.3.6.1.2.1.1.4.0" "absolute" "rising" "20"
• Action alarm, described in 6.5.2.10, is used for the computation of an alarm condition, which is used
by the rmon-trap action.
Alarm computation is based on alarm method (delta or absolute) and type, which defines how it is
compared (rising or falling); i.e. alarm computation means, whether the current absolute value
or delta value of the object is rising or falling compared to the threshold.
• To trigger the sending of a RMON trap in an applet, use the following command:
CLI(config-applet)> action <label> rmon-trap <alarm-index>
<oid_to_monitor>
o <label> is a string that uniquely identifies the action. The actions are sorted and run in
ascending alphanumeric key sequence using the label as sort key.
o rmon-trap <alarm-index>. This is an unsigned integer, as defined in the
action <label> alarm <index> … applet (6.5.2.10). The alarm index is used as key to
retrieve the details from the corresponding action alarm.
o <oid_to_monitor>. oid stands for the root Object ID in the MIB tree (is in the form
a.b.c.d…). For example, the 1.3.6 OID stands for access to the whole Internet MIB.
• If the rmon-trap action does not find the matching action alarm in an applet, the rmon-trap applet
will abort and the output of the command show event manager history event will provide the
details.
• Also refer to section 2.11 RMON Mechanism.
• Action alarm, described in 6.5.2.10, is used for the computation of an alarm condition, which is used
by the if-alarm action.
Alarm computation is based on alarm method (delta or absolute) and type, which defines how it is
compared (rising or falling).
• To trigger the action, use the following command:
CLI(config-applet)> action if-alarm <alarm-index> is {rising | falling }
• To terminate the configuration of the EEM applet, use the following command in applet configuration
mode:
CLI(config-applet)> exit
CLI(configure)>
Statistics
• To display the EEM applets configuration, use the following command line:
CLI> show event manager applet [<applet-name>]
No Applet Name Event Type
1 BACKUP track
track 1 state DOWN
action "1.0" cli "configure terminal"
action "2.0" cli "ip dns-proxy dns-server learn priority dhcp"
action "3.0" cli "end"
No Applet Name Event Type
2 DEFAULT track
track 1 state UP
action "A" cli "configure terminal"
action "B" cli "ip dns-proxy dns-server learn priority ipcp"
action "C" cli "end"
No Applet Name Event Type
3 BACKUP2 track
track 2 state DOWN
action "1.5" cli "configure terminal"
action "2.5" cli "ip route 0.0.0.0 0.0.0.0 atm 0.1 5"
action "3.5" cli "end"
No Applet Name Event Type
4 DEFAULT2 track
track 2 state UP
action "A.1" cli "configure terminal"
action "B.2" cli "ip route 0.0.0.0.0 0.0.0.0.0 atm 0.1 200"
action "C.3" cli "end"
No Applet Name Event Type
5 PBR-UP track
track 17 state UP
action "1.0" cli "configure terminal"
action "2.0" cli "interface atm 0.1"
action "3.0" cli "ip policy-routing route-to-master"
action "4.0" cli "end"
No Applet Name Event Type
6 PBR-DOWN track
track 17 state DOWN
action "1.0" cli "configure terminal"
action "2.0" cli "interface atm 0.1"
action "3.0" cli "no ip policy-routing route-to-master"
action "4.0" cli "end"
• To display the history of events, use the following command; this command will show the last
execution status (success/failed) of 30 applets at a time:
CLI> show event manager history events
No. Com. Status Time of Event Event Type Applet Name
1 Success 2000-01-01 00:29:13 track DEFAULT
2 Success 2000-01-01 00:38:07 track BACKUP
3 Success 2000-01-01 00:40:42 track DEFAULT
4 Success 2000-01-01 01:14:46 track BACKUP
5 Success 2000-01-01 01:16:40 track DEFAULT
• To display the state of tracking objects, use the following command line:
CLI> show track [<object-number>]
Track 17
Object 15 DOWN
Object 16 UP
Track 16
Ip-routing is UP
Track 15
VRRP Id 8
Vrrp is DOWN
Track 1
Ip-routing is UP
Track 2
Reachability is DOWN
• To display the state of tracking timers, use the following command line:
CLI> show track timers
Timer Type Track Type Track Id Poll Interval Time To Next Poll
(in msec) (in msec)
Poll Timer list-boolean * 1000 440
Poll Timer interface 16 1000 940
Poll Timer interface 1 1000 940
Poll Timer vrrp * 3000 1440
Poll Timer rtr * 5000 2440
Troubleshooting
o <type> allows selecting the type of information taken into account by the debugging
command.
There are three types that can be entered:
actions. This is for debugging the Event Manager Applet; it allows displaying the list
of actions of the applet.
core. This is for Event Core Debugging; it allows checking the execution steps of the
applet.
all. This is to enable debugging in all modules; it allows debugging both actions and
core types together.
This will print the regexp match values as well as the mathematical results of different
mathematical operation (using action add/multiply/subtract/set).
Also, when a show command has been used, the output of the show command will be
printed.
o <level> allows defining the level of details to be displayed.
There are four levels that can be entered:
low
med
high
Verbose. This is giving the maximum of details.
To disable EEM applets debugging:
CLI> no debug event manager <type>
In the following configuration example, only CLI commands related to event management CPE
configuration are fully shown.
hostname CLI
interface GigabitEthernet 0/0
ip address dhcp
exit
ip dns-proxy dns-server learn priority dhcp
no snmp set-write-community private
no snmp set-read-community public
rtr session 1
type echo protocol ipIcmpEcho 80.1.1.1
frequency 5
owner ""
paths-of-statistics-kept 1
hops-of-statistics-kept 1
exit
rtr reaction-trigger 1 1
rtr schedule 1 life forever start-time now
track 17 list-boolean and
Object 15
Object 16
exit
track 16 interface GigabitEthernet 1/0 ip-routing
track-delay up 20 down 20
exit
track 15 vrrp 8
track-delay up 20 down 20
exit
track 1 interface GigabitEthernet 1/0 ip-routing
track-delay up 10 down 10
exit
track 2 ip-rtr 1 reachability
track-delay up 20 down 20
exit
event manager applet BACKUP
event track 1 state DOWN
action "1.0" cli "configure terminal"
action "2.0" cli "ip dns-proxy dns-server learn priority dhcp"
action "3.0" cli "end"
exit
event manager applet DEFAULT
event track 1 state UP
action "A" cli "configure terminal"
action "B" cli "ip dns-proxy dns-server learn priority ipcp"
action "C" cli "end"
exit
event manager applet BACKUP2
event track 2 state DOWN
action "1.5" cli "configure terminal"
action "2.5" cli "ip route 0.0.0.0 0.0.0.0 atm 0.1 5"
action "3.5" cli "end"
exit
event manager applet DEFAULT2
event track 2 state UP
action "A.1" cli "configure terminal"
action "B.2" cli "ip route 0.0.0.0.0 0.0.0.0.0 atm 0.1 200"
action "C.3" cli "end"
exit
event manager applet PBR-UP
event track 17 state UP
action "1.0" cli "configure terminal"
action "2.0" cli "interface atm 0.1"
action "3.0" cli "ip policy-routing route-to-master"
action "4.0" cli "end"
exit
event manager applet PBR-DOWN
event track 17 state DOWN
action "1.0" cli "configure terminal"
action "2.0" cli "interface atm 0.1"
action "3.0" cli "no ip policy-routing route-to-master"
action "4.0" cli "end"
exit
end
In the following configuration example, only CLI commands related to time-driven CPE configuration are
fully shown.
event manager applet app_sysLoad_track
event timer watchdog time 60
action "1.0" cli "show system status"
action "1.1" regexp "Current CPU load +: +([0-9]+)\.([0-9]+)%"
"$_cli_result" "Current_load" "Load_percent" "load_per_deci"
action "1.2" "set" "#appVar0" "$Current_load"
action "1.3" "set" "#appVar1" "$Load_percent"
action "1.4" "set" "#appVar2" "$load_per_deci"
action "1.7" syslog server "10.4.32.132" severity "debugging" msg
"Current_load = $#appVar0; Load_percent = $#appVar1; load_per_deci =
$#appVar2" facility 23
exit
In the following configuration example, only CLI commands related to time-driven CPE configuration are
fully shown.
event manager applet app_Int_ip_change
event syslog pattern "Interface"
action "1.0" cli "show ip interface brief"
action "1.1" regexp "Ethernet 0/0 +([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)"
"$_cli_result" "match" "ipaddr"
action "1.2" syslog server "10.4.32.132" severity "informational" msg
"MGMT IP = $ipaddr" facility 23
exit
7 P O W E R R E D U N D A N C Y
• To activate the dual power supply function, use the following command:
CLI(configure)> power redundancy-mode
• To deactivate the dual power supply function, use the following command:
CLI(configure)> no power redundancy-mode
• The OneOS device is able to detect if a power supply is connected to each power connector.
Each power supply connector has a corresponding green LED which lights up when the power supply
is connected and functions OK.
• A power supply is considered as no longer available when the voltage drops below 11,1V.
• The status of each power supply can be displayed with the show system status command.
The following output is a practical example, of a device with two active power supplies:
CLI> show system status
System Information for device MB92SsFPEmNW+R S/N T1442006907002078
Core 0, control, CPU load for 1 second: 4.7% (Critical 2.8% Non Critical 1.9%), 1 minute
5.0%
Core 1, forwarding, CPU load for 1 second: 5.0% , 1 minute 5.0%
• When the dual power supply function is active, and a power supply is no longer available at a certain
moment, the following actions take place:
o The corresponding green LED on the back panel of the device is switched off.
o The Status LED on the front panel starts blinking red.
o A message is displayed on the console.
o An OneOS event is generated.
o A Syslog message is sent.
o A SNMP trap is sent.
Note that, when the dual power supply function is not active when a power supply is no longer
available, only the corresponding green LED on the back panel of the device is switched off. The other
actions do not take place then.
• To show the dual power supply function state, use the following command:
CLI> show power redundancy-mode
• If the dual power supply function has been activated, it is also shown when running the
show running-config command:
CLI> show running-config
Building configuration...
Current configuration:
8001 Event to Indicate an alarm has turned on for a pvc Event atm_oam status 2
8002 Event to Indicate a change has occurred on the operational status of the pvc Event atm_oam status 1
Event to Indicate a change has occurred on the operational status of the Virtual
8003 Event atm_oam status 1
Path
8004 Event to Indicate an alarm has turned on for a Virtual Path Event atm_oam status 2
8005 Event to indicate ping atm is finished on this pvc Event atm_oam loopback_ping 2
8006 Event to indicate ping atm is beginning on this pvc Event atm_oam loopback_ping 2
8007 Event to Indicate an alarm has turned off for a pvc Event atm_oam status_1 2
8008 Event to Indicate an alarm has turned off for a Virtual Path Event atm_oam status_2 2
8009 Event to indicate Up Down for an interface Event eshs status_3 1
8010 Event to indicate Up Down for Ipoa Event eshs status_4 1
8011 Event to indicate Up Down for Pppoa Event eshs status_5 1
8012 Event to indicate Up Down for VoiceoA Event eshs status_6 1
8013 Event to indicate Up Down for PPPoEoA Event eshs status_7 1
8014 Event to indicate SL DOWN Event eshs_sl status_8 1
8015 Event to indicate SL UP Event eshs_sl status_9 1
8016 Event to indicate Ipoa Pvc Created Event ipoa status_10 1
8017 Event to indicate Ipoa Pvc Deleted Event ipoa status_11 1
8018 Event to indicate Ipoa Pvc modified Event ipoa status_12 1
8019 Event to indicate Ncp Level Up Event ncp status_13 1
8020 Event to indicate Ncp Level Down Event ncp status_14 1
8021 Event to indicate PppoSL NCP is Up Event ncp_sl status_15 1
8022 Event to indicate PppoSL NCP is Down Event ncp_sl status_16 1
8023 Event to indicate Lcp Level Up Event lcp status_17 1
8024 Event to indicate Lcp Level Down Event lcp status_18 1
8025 Event to indicate PppoSL LCP is Up Event lcp_sl status_19 1
8026 Event to indicate PppoSL LCP is Down Event lcp_sl status_20 1
8027 Event to indicate Voiceoa Pvc Created Event voiceoa status_21 1
8028 Event to indicate Voiceoa Pvc Deleted Event voiceoa status_22 1
8029 Event to indicate Voiceoa Pvc modified Event voiceoa status_23 1
8103 X25/XOT logical channel : incoming call accepted Event x25xot evt24 1
8104 X25/XOT logical channel : incoming call cleared Event x25xot evt25 1
8105 X25/XOT logical channel connected : incoming clear Event x25xot evt26 1
8106 X25/XOT logical channel connected : outgoing clear Event x25xot evt27 1
8107 XOT outgoing TCP call pending Event x25xot evt28 1
8108 XOT outgoing TCP call successful Event x25xot evt29 1
8109 XOT outgoing TCP call failed Event x25xot evt30 1
8110 XOT incoming call TCP accepted Event x25xot evt31 1
8111 XOT incoming call TCP refused Event x25xot evt32 1
8112 XOT TCP connection disconnected locally Event x25xot evt33 1
8113 XOT TCP connection disconnected by remote Event x25xot evt34 1
8114 reserved Event x25xot evt35 1
8115 reserved Event x25xot evt36 1
8116 reserved Event x25xot evt37 1
8117 reserved Event x25xot evt38 1
8118 reserved Event x25xot evt39 1
8119 reserved Event x25xot evt40 1
8120 Event to indicate Pppoeoa Pvc reconnected Event pppoeoa evt41 1
8121 Event to indicate Pppoeoa Pvc deconnected Event pppoeoa evt42 1
8122 Event to indicate Pppoeoa LCP is Up Event pppoeoa evt43 1
8123 Event to indicate Pppoeoa LCP is Down Event pppoeoa evt44 1
8124 Event to indicate Pppoeoa Ip is Up Event pppoeoa evt45 1
8125 Event to indicate Pppoeoa Ip is Down Event pppoeoa evt46 1
8126 ISDN : generic fatal event Fatal dialisdn evt1 1
8127 ISDN : generic error event Error dialisdn evt2 1
Warnin
8128 ISDN : generic warning event g dialisdn evt3 1
8129 ISDN : generic info event Info dialisdn evt4 1
8130 ISDN : outgoing call pending Event dialisdn evt5 1
8131 ISDN : outgoing call completed Event dialisdn evt6 1
8132 ISDN : outgoing call failed Event dialisdn evt7 1
8133 ISDN : incoming call received Event dialisdn evt8 1
8134 ISDN : incoming call accepted Event dialisdn evt9 1
8135 ISDN : incoming call cleared Event dialisdn evt10 1
8136 ISDN : incoming clear Event dialisdn evt11 1
8137 ISDN : outgoing clear Event dialisdn evt12 1
8138 PSTN : generic fatal event Fatal dialpstn evt1 1
8.4 TABLE 4 – IP
12011 Layer 1 on ISDN BRI port <5/x> <activated or deactivated> Info gen sigplan 2
12012 Layer 1 Error on ISDN BRI port <5/x> : <activation failure / deactivation> Warning gen sigplan 1
12013 Layer 1 on E1/T1 port <5/x> <activated or deactivated> Info gen sigplan 1
12014 Alarm on E1/T1 port <5/x> : <LOS, AI, RAI, End of LOS, End of AI, End of RAI> Info gen sigplan 1
FXS port <5/x> : <off-hook / on-hook / ringing on / ringing off / polarity reverse /
12015 Info gen sigplan 2
polarity normal>
12016 Voice port <5/x> status change : <shutdown / no shutdown> Info gen sigplan 2
12018 Connection to BLES voice gateway <vcd> established Info voatm sigplan 1
12019 Connection to BLES voice gateway <vcd> failure - <cause of failure> Warning voatm sigplan 1
VOATM VP/VC <vcd> status change : <shutdown / no shutdown / ready /
12020 Info voatm sigplan 1
disconnected>
12021 VMOA port <vcd:VMOA port> status change : <blocked/unblocked> by <vgw/user> Info voatm sigplan 3
12022 ISDN VMOA port <vcd:VMOA port> D-Channel allocated (CID : <CID>) Info voatm sigplan 3
12023 ISDN VMOA port <vcd:VMOA port> D-Channel deallocated (CID : <CID>) Info voatm sigplan 3
ISDN VMOA port <vcd:VMOA port> B-channel <B1..B30> allocated (CID : <CID>,
12024 Info voatm sigplan 3
Type : <Voice/Data>)
12025 ISDN VMOA port <vcd:VMOA port> B-channel <B1..B30> deallocated Info voatm sigplan 3
12026 VMOA port <vcd:VMOA port> allocation failure : <cause> Error voatm sigplan 1
12027 Remote alarm on VTOA CID <vcd>:<cid> - <cause> Info voatm userplan 2
12028 <number> Voice packet lost on CID <vcd>:<cid> Warning voatm userplan 2
12029 <number> Excessive Jitter on CID <vcd>:<cid> Warning voatm userplan 2
12030 FAX/Modem detected on CID <vcd>:<cid> Info voatm userplan 3
12031 End of FAX/Modem on CID <vcd>:<cid> Info voatm userplan 3
12032 Voice coder <coder><transmitting/receiving> on CID <vcd>:<cid> Info voatm userplan 3
12033 DSP failure <dsp number>: <cause of failure> Error gen userplan 1
12034 <number> Invalid voice packets received Warning voatm userplan 2
12035 Voice activation <false / true> on CID <vcd>:<cid> Info voatm userplan 3
12036 No sync clock. Fallback to freerun clock. Warning gen userplan 2
12037 Sync clock is back. Info gen userplan 2
12038 AAL2 clock differs from system clock on CID <vcd>:<cid> Warning voatm userplan 2
12039 System clock is synchronized on AAL2 clock on CID <vcd>:<cid> Info voatm userplan 2
12040 AAL1 synchronized on VP/VC <vcd> Info voatm userplan 2
12041 AAL1 out of synchro on VP/VC <vcd> Warning voatm userplan 2
12042 <number> Excessive Jitter on VP/VC <vcd> Warning voatm userplan 2
12043 <number> Invalid cells received on VP/VC <vcd> Warning voatm userplan 2
12044 H323 gateway registered with the gatekeeper <gk-id> Info voip controlplan 3
12045 H323 gateway registration failure. Cause: <cause> Error voip controlplan 1
Incoming call on <voip|local> port <port nr> calling: <E164 number> called: <E164
12046 Info voip controlplan 3
number> call id: <internal call id>
Outgoing call on <voip|local> port <port nr> number: <E164 number> call id:
12047 Info voip controlplan 3
<internal call id>
Incoming call failure on <voip|local> port <port nr> call id: <internal call id> cause:
12048 Error voip controlplan 1
<cause>
Outgoing call failure on <voip|local> port <port nr> call id: <internal call id> cause:
12049 Error voip controlplan 1
<Q850 cause|RAS cause>
12050 Overlap dialing call id: <internal call id> number: <digits> Info voip controlplan 3
12051 Alert received call id: <internal call id> Info voip controlplan 3
12052 Call connected call id: <internal call id> Info voip controlplan 3
12053 VoIP RTP transmission <start|stop> call id: <internal call id> coder: <coder> Info voip userplan 3
12054 VoIP RTP reception <start|stop> call id: <internal call id> coder: <coder> Info voip userplan 3
12055 VoIP media channel opening failure call id: <internal call id> cause: <H245 cause> Error voip userplan 1
12056 Call disconnected call id: <internal call id> cause: <Q850 cause> Info voip controlplan 3
12057 H245 DTMF <sent|received> call id: <internal call id> number: <number> Info voip controlplan 3
12058 Fax T38 starting call id: <internal call id> Info voip userplan 3
12059 Fax T38 end of call call id: <internal call id> Info voip userplan 3
12060 Fax T38 call failure call id: <internal call id> cause: <T38 cause> Error voip userplan 1
VMOA port <vcd:VMOA port> voice port %s allocation information: CAC changed on
12061 Info voatm sigplan 1
B-channel <B1..B30> deallocated : <cid>
VMOA port <vcd:VMOA port> voice port %s allocation information: updating CAC
12062 Info voatm sigplan 1
failed on B-channel <B1..B30> deallocated : <cid>
12063 Vxx-ces port 0/x up Info voatm sigplan 1
12064 Vxx-ces port 0/x down Warning voatm sigplan 1
Remote disconnection on <voip|local> port <port nr>, cause: <cause>[text], call id:
12065 Info voip controlplan 1
<internal call id>.
Local disconnection on <voip|local> port <port nr>, cause: <cause>[text], call id:
12066 <internal call id>. Info voip controlplan 1
Route limitation to 20 digits <calling:E164 number>|<called:E164 number>, call id:
12067 <internal call id>. Info voip controlplan 1