Dell Networking Open Automation Guide July 2015 Regulatory Model: Open Automation
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your computer. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. Copyright © 2015 Dell Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws.
Contents 1 About this Guide....................................................................................................9 Audience................................................................................................................................................ 9 Supported Platforms and Required Dell Networking OS Versions..................................................... 9 Conventions.....................................................................................................
Using the Post-Configuration Script.................................................................................................. 28 Using Auto-Execution Script (Normal Mode Only)........................................................................... 28 Timers in Pre–configuration and Post–configuration Scripts.......................................................... 29 Script Examples...................................................................................................................
Overview..............................................................................................................................................65 Installing Puppet..................................................................................................................................65 Prerequisites........................................................................................................................................ 65 Configuring the Puppet Agent............................
Running Scripts with User Privileges.................................................................................................. 87 8 Smart Scripting CLI............................................................................................ 88 disable..................................................................................................................................................88 execute.............................................................................................
Route Maps.................................................................................................................................. 133 Static Route................................................................................................................................. 134 Weighted ECMP...........................................................................................................................134 Operational......................................................................
11 Web Server with HTTP Support.................................................................... 171 Starting the Web Server.....................................................................................................................
About this Guide 1 This document describes the components and uses of the Open Automation Framework designed to run on the Dell Networking operating system (OS).
Dell Networking Platform Minimum Operating Software (BMP, SmartScripts, and REST API only) Conventions To describe command syntax, this document uses the following conventions. Convention Description keyword Keywords are shown in a terminal font and are entered in the CLI as listed. parameter Parameters are shown in italics and require you enter a number or word in the CLI. {X} Keywords and parameters within braces require entries in the CLI.
Dell Networking Platform S6000–ON MXL Switch Z9500 Dell Networking platform and OS About this Guide Related Documents • Installing the S6000 System • Dell Networking OS Command Line Reference guide for the S6000-ON System • Dell Networking OS Configuration Guide for the S6000-ON System • Installing the S6000-ON System • Dell Networking OS Command Line Reference guide for the MXL 10/40GbE Switch I/O Module • Dell Networking OS Configuration Guide for the MXL 10/40GbE Switch I/O Module • De
2 Open Automation Framework The Dell Networking S4810, S4820T, S3048–ON, S5000, S6000, S6000-ON, Z9500, and MXL platforms support the Open Automation framework. The Open Automation framework provides an open, industry standards-based automation technology that simplifies managing dynamic virtual data centers and reduces risk and overhead.
Figure 1. Open Automation Framework NOTE: The Open Automation framework is referred to as Open Automation in the rest of this document. Bare Metal Provisioning Bare metal provisioning (BMP) provides the following features.
The scripting environment (Expect, Perl, Python, Ruby, Tcl, UNIX and ZSH shell scripts) makes it easy for IT administrators to quickly develop scripts. REST API Representational state transfer (REST)-application programming interface (API) provides tools that allow you to manage Dell Networking OS switches by in-house or third-party system management tools.
Bare Metal Provisioning 3 Bare metal provisioning (BMP) is included as part of the Dell Networking OS image and is supported on the S4810, S4820T, S3048–ON, S5000, S6000, S6000-ON, Z9500, IOA, and MXL platforms. Introduction BMP improves operational efficiency to your system by automatically loading pre-defined configurations and Dell Networking OS images using standard protocols such as dynamic host configuration protocol (DHCP) and common file transfer mechanisms.
• Relay agent (optional) — an intermediary network device that passes messages between the DHCP clients and the DHCP server when the server is not on the same subnet. It can also provide IP addresses for multiple subnets. For more information, refer to Domain Name Server Settings and File Server Settings. Industrial Standard Upgrades with BMP Dell Networking OS follows the Industrial Standards with BMP. Following are the steps to perform the upgrade process: 1. Chassis Loads in BMP mode. 2.
NOTE: The configuration file maintains normal BMP functionality when a preconfiguration script is not sent. BMP Operations BMP is supported on the user ports and management ports of a switch.
address is not present in the start-up configuration file, no IP address is assigned to the management interface. • BMP mode (default) — the switch automatically configures all ports (management and user ports) as Layer 3 physical ports and acts as a DHCP client on the ports for a user-configured time (DHCP timeout). Set BMP mode using the (conf-reload-type)# boot-type bmp-reload command.
Normal Context To auto-configure a switch, before you use BMP mode, first configure a DHCP, DNS, and file server in the network. NOTE: By default, a syslog severity level greater than two does not display. Enable syslog before applying the preconfiguration script which helps identify any configuration errors. To help configure a new factory loaded switch, the switch boots up in the default BMP mode. You can reconfigure the switch to reload either in BMP mode or Normal mode.
4. If a DHCP offer has neither an image path nor a configuration file path, it is an invalid BMP DHCP offer and is ignored. The first DHCP offers the following to choose from: • • • • IP address Dell Networking OS image Configuration file or preconfiguration script IP address and Dell Networking OS image OR IP address and configuration file or preconfiguration script 5. DHCP OFFER is selected. All other ports except the port on which the offer was received and selected are set to Shutdown mode.
• c. 7. If the versions match, the system downloads the configuration file or preconfiguration script. 00:03:07: %STKUNIT0-M:CP %BMP-2-BMP_DOWNLOAD_START: The config file download has started. 00:03:19: %STKUNIT0-M:CP %BMP-5-BMP_DWNLD_FILE_IS_SCRIPT_FILE: The downloaded file is a script file. 00:03:19: %STKUNIT0-M:CP %BMP-5-BMP_DWNLD_CONFIG_SCRIPT_SUCCESS: The config/script file download is successful.
00:03:22: %STKUNIT0-M:CP %BMP-2-BMP_SHA256_VALIDATE_FAILURE: The Config/Script SHA256 Checksum Validation Failed. BMP Mode: Boot and Set-UP Behavior When you configure a switch to reload in BMP mode, one of the following scenarios may occur.
00:02:27: %STKUNIT0-M:CP %BMP-5-BMP_BOOT_OFFER: DHCP config file scp://anvltest:force10@13.4.4.1//tftpboot/basic-l3. 00:02:27: %STKUNIT0-M:CP %BMP-5-BMP_BOOT_OFFER: stacking info NIL 2. If you enabled the config-scr-download command, the system downloads the customer.conf configuration file from the file-server address. 3. If the configuration download is successful, the following logs display: file download has started.
Downloaded Image Minor Version : 0 00:02:56: %STKUNIT0-M:CP %BMP-5-BMP_RELEASE_HEADER_INFO: Downloaded Image Main Version : 0 00:02:56: %STKUNIT0-M:CP %BMP-5-BMP_RELEASE_HEADER_INFO: Downloaded Image Patch Version : 1216 00:02:56: %STKUNIT0-M:CP %BMP-5-BMP_RELEASE_HEADER_INFO: Flash A Image Major Version : 1 00:02:56: %STKUNIT0-M:CP %BMP-5-BMP_RELEASE_HEADER_INFO: Flash A Image Minor Version : 0 00:02:56: %STKUNIT0-M:CP %BMP-5-BMP_RELEASE_HEADER_INFO: Flash A Image Main Version : 0 00:02:56: %STKUNIT0-M:CP
00:03:03: %STKUNIT0-M:CP %IFMGR-5-ASTATE_DN: Admin state to down: Ma 0/0. 00:03:03: %STKUNIT0-M:CP %IFMGR-5-OSTATE_DN: state to down: Ma 0/0. 00:03:03: %STKUNIT0-M:CP %SYS-5-CONFIG_LOAD: configuration file. 00:03:04: %STKUNIT0-M:CP %IFMGR-5-ASTATE_UP: Admin state to up: Ma 0/0.
Software Upgrade Using BMP BMP simplifies switch configuration by allowing you to boot images and run configurations that are specified in a DHCP server and also by automatically downloading files from a file server. In a network topology with a large number of devices, use BMP to easily administer, upgrade, and maintain your devices. Configure Auto-Configuration mode using the reload-type bmp command. Reload the switch in Configuration mode using the reload command.
NOTE: To display a properly formatted output string, Dell Networking recommends adding the following clido wrapper function at the beginning of TCLSH and EXPECT scripts: # Execute clido and return the output string proc Execclido {cmd_str} { set str [exec clido "$cmd_str"] set tmp_str [string map {\n \r\n} $str ] return $tmp_str } ... set out_str [Execclido "show version"] puts $out_str ...
5. The system receives an IP address via the DHCP server which it uses to get a Dell Networking OS image to boot, a configuration file (if supplied), and a preconfiguration script. 6. The system runs the preconfiguration script. • 7. 8. The default timer on the script is 10 minutes. The maximum amount of time the script can run is one hour. The preconfiguration script can access Dell Networking OS CLI commands through the clido utility.
00:00:15: %STKUNIT1-M:CP %CHMGR-5-STACKUNITDETECTED: Stack unit 1 present 00:01:02: %STKUNIT0-M:CP %BMP-5-AUTOEXEC_START: The AutoExec Script is Started. • After the script execution is successful, Dell Networking OS log displays: 00:04:05: %STKUNIT0-M:CP %BMP-5-AUTOEXEC_SUCCESS: The AutoExec Script execution returned Success.
00:32:16: %STKUNIT1-M:CP %CHMGR-5-RELOAD: User request to reload the chassis syncing disks... done unmounting file systems... unmounting /f10/flash (/dev/ld0h)... unmounting /usr/pkg (/dev/ld0g)... unmounting /usr (mfs:35)... unmounting /f10 (mfs:21)... unmounting /kern (kernfs)... unmounting / (/dev/md0a)... done rebooting .. .. .. Starting Dell Networking application 00:00:13: %STKUNIT1-M:CP %RAM-6-ELECTION_ROLE: Stack unit 1 is transitioning to Managementunit.
FIT-INDUS-1-0-0/SW/SRC System image file is "dt-maa-s4810-72" System Type: S4810Control Processor: Freescale QorIQ P2020 with 2147483648 bytes of memory. 128M bytes of boot flash memory. 1 52-port GE/TE/FG (SE)48 Ten GigabitEthernet/IEEE 802.3 interface(s) 4 Forty GigabitEthernet/IEEE 802.3 interface(s) Dell#Wed Jan 2 22:47:34 GMT 2013 this is Autoexec script The following line indicates the auto-execution script has completed successfully.
puts "Config File: $config_file downloaded successfully\r\n" } else { puts "ERROR: Config File: $config_file - Not Found\r\n" } if {[file exists $post_conf]} { puts "Post Config Script: $post_conf downloaded successfully\r\n" } else { puts "ERROR: Post Config Script: $post_conf - Not Found\r\n"} # Copy Config to Startup Config print_f10do "show version" after 5000 print_f10do "copy flash://$config_file startup-config" print_f10do "yes" after 5000 puts "Pre-Config Script Execution Successful !!!!!\r\n" exit
# Write the Result to Status File puts $fp "ERROR: LLDP is not configured\r\n" } # Configure Interfaces foreach intf_slot $interface_list_slot { set intf "TenGigabitEthernet $intf_slot" puts "Configuring $intf ...\n" puts $fp "Configuring $intf ...\n" print_f10do "configure terminal" print_f10do "interface $intf" print_f10do "no ip address" print_f10do "no shutdown" print_f10do "end" after 200 } # Wait for 2 mins for the Neighbor to come-up puts "Wait for 1 min for the Neighbor to come-up\r\n" after [expr {
# Configure FTP - Interface print_f10do "configure terminal" print_f10do "interface TenGigabitEthernet 0/22" print_f10do "ip address 20.0.0.34/16" print_f10do "no shutdown" print_f10do "end" puts "Uploading Status File($status_file) to $ftp_ip ...\n" spawn ftp "$ftp_ip" expect "Name .*: " send "lab\n" expect "Password:" send "lab\n" expect "ftp>" send "cd scripts\n" expect "ftp>" send "ls\n" expect "ftp>" send "put $status_file\n" expect "ftp>" send "ls\n" expect "ftp>" send "bye\n" expect eof print_f10do "
– Configuration File Name — the configurations applied to the system. The configuration filename is expected to use option 209. To configure the device by itself for a download configuration file, you can also create a preconfiguration script in option 209. – File Server Address — the server where the image and configurations files are placed. The address is assumed to be a TFTP address unless it is given as a URL.
Following is a configuration example of a DHCP server included on the most popular Linux distribution. The dhcpd.conf file shows that the MAC-based IP and configuration file assignment are fixed. option configfile code 209=text; option bootfile-name code 67=text; host HOST1{ #####MAC to IP mapping hardware ethernet 00:01:e8:8c:4d:0e; fixed-address 30.0.0.
Class-Based Configuration By matching a part of the string from the vendor class identifier option 60 string, the image, configuration file, or script file is sent in the DHCP offer. For example: host dt-maa-z9000-11 { hardware ethernet 00:01:e8:a9:81:a3; fixed-address 10.16.151.175; option tftp-server-address 10.16.151.209; match if substring (option vendor-class-identifier,0,17) = "TY=DELLNTW-Z9000 "; { filename "tftp://10.16.151.209/FTOS-ZB-9.3.0.0.bin"; option configfile "ftp://anvltest:force10@10.16.
and reloads using that image. If the Dell Networking OS image on the server is the same image, the system loads the configuration file, if present, or the startup-config without downloading a new image. Domain Name Server Settings To determine the host name applied in the switch startup configuration, when no configuration file is retrieved from the DHCP server, set up a domain name server (DNS).
Bare Metal Provisioning CLI 4 Bare metal provisioning commands are supported on the S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, IOA, and MXL platforms. In a data center network, BMP automates configuring and updating the switches, ensuring standard configurations across the installed devices. To set up a single switch or a stack of switches with minimal effort, use the auto-configuration function.
Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Related Commands Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S4810, S4820T, S5000, S6000, S6000– ON, Z9000, Z9500, IOA, and MXL.
Usage Information This command is applicable only when BMP is running and enables or disables the syslog messages (with a Severity level >2, critical). When BMP is not running, the following error message displays: % Error: bmp process is not running. NOTE: This CLI command is only available in BMP normal context, which is similar to providing the L option in the Factory-default context. boot-type Allows you to configure the reload type.
config-scr-download Allows you to specify whether the configuration or script file needs to be downloaded. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, IOA, and MXL Syntax config-scr-download { enable | disable } To reset the download option, use the no config-scr-download { enable | disable } command. Parameters config-scrdownload {enable} Enable downloading a configuration file or preconfiguration script from the DHCP / file servers.
dhcp-timeout Allows you to configure the DHCP timeout limit. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, IOA, and MXL Syntax dhcp-timeout minutes To reset the DHCP time out limit, use the no dhcp-timeout minutes command. Parameters dhcp-timeout minutes Configure the DHCP timeout (in minutes) after which the BMP exits. The range is from 0 to 50. If you enter a range of 0, the timeout is 0 (no limit). NOTE: Dell Networking recommends setting the value to 2 or higher.
To reset the options 82 information, use the no relay { enable | disable | remote-id { hostname | MAC | Word }} command. Parameters enable Enable the option 82 in BMP. The default value is the MAC address. disable Disable the option 82 in BMP. remote-id { hostname | MAC | Word } Enter the keyword remote-id, then the hostname or chassis MAC address or a text string to set as the remote ID in option 82. The default is the remote MAC ID for option 82.
The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S6000–ON. 9.6(0.0) Introduced on the S5000. 9.5(0.1) Introduced on the Z9500. 9.3(0.0) Introduced on the S6000. 9.2(0.0) Introduced on the MXL Switch. 9.1(0.0) Introduced on the Z9000 and S4810. 8.3.19.0 Introduced on the S4820T.
Related Commands Version Description 9.5(0.1) Introduced on the Z9500. 9.3(0.0) Introduced on the S6000. 9.2(0.0) Introduced on the MXL Switch. Updated the parameters for S4810, S4820T, and Z9000. 9.1(0.0) Updated the command mode from EXEC Privilege to GLOBAL CONFIGURATION. Updated the parameter from jumpstart to bmp. Added support for the config-scrdownload and user-defined-string commands. Supported platforms are S4810, S4820T, and Z9000. 9.0.2.0 Introduced on the S6000. 9.0.0.
The following is a list of the Dell Networking OS version history for this command. Related Commands Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S4810, S4820T, S5000, S6000, S6000– ON, Z9000, Z9500, IOA, and MXL. • reload-type — allows you to configure the reload-type options in reload-type sub command mode. • show reload-type — displays the current Reload mode (BMP mode or Normal mode).
show boot bmp Displays the current state of the BMP process. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax show boot bmp Defaults none Command Modes EXEC Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Example 48 Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.
Related Commands reload-type — allows you to configure the reload-type options in reload-type sub command mode. show config Displays the reload type options that are configured on the system. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, IOA, and MXL Switch Syntax show config Defaults none Command Modes RELOAD-TYPE CONFIGURATION Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide.
• relay — allows you to configure the addition of option 82 in DHCP client packets. • retry-count — allows you to configure the number of retries for downloading the Dell Networking OS image and configuration file. • vendor-class-identifier — allows you to configure the optional vendor class identifier for DHCP option 60. show reload-type Displays the reload type currently configured on the system.
To display the current reload mode for BMP, use the show bootvar or show system brief commands. The show bootvar command includes the path of the Dell Networking OS image file retrieved from a DHCP server when BMP is running, but not after you exit BMP.
Version Description 9.1(0.0) Introduced on the Z9000 and S4810. Replaces the stop jumpstart command. Usage Information If the switch enters a loop while reloading in BMP mode, use the stop bmp command on a switch running BMP. A loop occurs when the switch is continuously trying to contact a DHCP server and a DHCP server is not found. The stop bmp command stops the switch from connecting to the DHCP server.
Command Modes RELOAD-TYPE CONFIGURATION Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Related Commands Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S4810, S4820T, S5000, S6000, S6000– ON, Z9000, Z9500, IOA, and MXL.
Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the IOA and S6000–ON. 9.6(0.0) Introduced on the S5000. 9.5(0.0) Introduced on the S4810, S4820T, S6000, Z9000, and Z9500.
Open Management Infrastructure 5 Dell Networking OS supports the Open Management Infrastructure (OMI) framework. OMI is supported on the S4810, S4820T, S3048–ON, S6000, and Z9500 platforms. Overview OMI is an open source package which manages infrastructure components such as servers, storage, and networking. OMI supports the distributed management task force (DMTF) common information model (CIM) / web-based enterprise management (WBEM) standards.
Prerequisites Before using OMI on the Dell Networking OS switch, configure the following: 1. Create a user, with the user privilege 15, where this user can configure the box from the management station through OMI. 2. Install the smartscript package. For detailed information, please refer to the Installing SmartScripting section of the Smart Scripting chapter. 3. Install the OMI package. EXEC Privilege mode package install /OMI-I-9.8.0.0.tar.
• top — show the status from top • bottom — show the status from bottom • number of lines — specify the number of lines NOTE: The script path is/usr/pkg/omi108/bin. Getting Started with OMI This section describes how you start configuring the OMI. To configure the OMI, follow these steps: 1. Get the chassis ready with the packages installed. a. Copy the MOF file tar to flash asflash:/dscmof.tar.gz EXEC mode script execute omi-server-config args “get-mof” b. Copy the dscmof.tar.
To create a CIM-Session, use the following scripts: • $opt = New-CimSessionOption -UseSsl:$true -SkipCACheck:$true -SkipCNCheck: $true -SkipRevocationCheck:$true • $box1 =New-CimSession -Credential:$cred -ComputerName:chassis-1 -Port:5986 -Authentication:basic -SessionOption:$opt chassis-1 is the IP address of the chassis. 10. Apply the configuration using the following script: PS C:\windows\system32> Start-DscConfiguration -CimSession:$box1 -Path:"C: \EthernetPortViewMof" -Verbose –Wait • CimSession i
Version="1.0.0"; Author="Administrator"; GenerationDate="12/31/2014 00:11:54"; GenerationHost="WIN-FMOQ86BVN3F"; }; Ethernet Configuration Configuration MSFT_NetworkDevice_EthernetPortViewConfig { Import-DscResource -Name MSFT_NetworkDevice_EthernetPortView Node ("172.168.1.2") { MSFT_NetworkDevice_EthernetPortView MyPort { PortId = "tengig-0-11" Description = "Interface connecting to S4810" } } } MSFT_NetworkDevice_EthernetPortViewConfig -OutputPath c:\EthernetPortViewMof The mof for the node “172.168.1.
Id = "1-1-vrf-1"; ExtAsNumber = 1; Ensure = 0; ResourceID = "[MSFT_NetworkDevice_BgpConfigurationView]MyBgpConfiguration"; RouterId = $MSFT_NetworkDevice_IpAddress1ref; SourceInfo = "C:\\ConfigFiles\ \MSFT_NetworkDevice_BgpConfigurationViewConfig.ps1::8::9::MSFT_NetworkDevice_Bgp ConfigurationView"; ModuleVersion = "1.
"; /* Name = "NEIGHBOR";*/ RemoteRouterId = $MSFT_NetworkDevice_IpAddress1ref; /*PeerCredential = $MSFT_Credential1ref;*/ //MultiHopTimeToLive = 200; /* IsEnabled = True;*/ VrfContext = "vrf-1"; ExtAsNumber = 3; Ensure = 0; KeyEncryptionMethod = 3; ModuleVersion = "1.0"; ModuleName = "DSCModules"; AddressFamily = 1; }; The ID here is of the format AddressFamily-VRFName-NeighborIp For a default VRF and neighbor 1.2.3.4, it will be 1-default-1.2.3.
UpdateSourceInterface UpdateSourceInterfaceType ExtAsNumber PSComputerName : : : 3 : 10.16.129.106 Id Name PeerCredential AddressFamily VrfContext IsEnabled ActivateIPv6 AllowAsIn MultiHopTimeToLive RouteMapIn RouteMapOut Ensure KeyEncryptionMethod RemoteRouterId UpdateSourceInterface UpdateSourceInterfaceType ExtAsNumber PSComputerName : : : : : : : : : : : : : : : : : : 1-vrf1-2.3.4.
Id Name PeerCredential AddressFamily VrfContext IsEnabled ActivateIPv6 AllowAsIn MultiHopTimeToLive RouteMapIn RouteMapOut Ensure KeyEncryptionMethod RemoteRouterId UpdateSourceInterface UpdateSourceInterfaceType ExtAsNumber PSComputerName : : : : : : : : : : : : : : : : : : 2-vrf1-1.2.3.
exit-address-family ! address-family ipv4 vrf vrf2 neighbor 1.2.3.4 remote-as 3 neighbor 1.2.3.4 shutdown exit-address-family ! address-family ipv4 vrf vrf-1 network 10.10.10.15/32 network 10.10.10.20/32 redistribute static route-map rmap1 redistribute connected route-map rmap2 neighbor 1.2.3.4 remote-as 3 neighbor 1.2.3.4 route-map rmap1 in neighbor 1.2.3.4 route-map rmap2 out neighbor 1.2.3.
Puppet 6 Dell Networking OS supports the Puppet automation framework. Puppet Agent is supported on the S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, and Z9500 platforms. Overview Puppet is a configuration management utility, that defines the state of system, then automatically enforces the correct state. Puppet Agent is a daemon that runs on all the client servers.
EXEC Privilege mode package install tftp://10.16.127.35/PUPPET-I-9.8.0.0.tar.gz NOTE: You must keep the clock of the chassis in sync with the Puppet master. The synchronization is done by the Network Transfer Protocol (NTP) server. Configuring the Puppet Agent To configure the Puppet Agent, use the following steps. 1. Enable the REST API. CONFIGURATION mode rest-server http 2. Configure script path /usr/pkg/puppet/bin.
Puppet Agent Configuration Scripts This section describes about the various Puppet Agent configuration scripts: puppet-config To configure or make changes to the agent’s parameters, use the puppet-config script. puppet-config [-d] option=value Following are the mandatory puppet configuration options: agentrestipaddr : IP address to be used for rest apis. The default IP address is 127.0.0.1. agentrestpasswd : Password of the user given in agentrestuser. agentrestport : Port number to be used for rest apis.
puppet-apply To apply any puppet manifest file, use the puppet-apply script.
} } LAG Configuration Apply the LAG configurations using both the Puppet Standalone and Puppet Agent. You can read and write the LAG configurations by using the netdev_lagtype. node dell_s4810_node1 { netdev_device { hostname: } netdev_lag { "name": ensure => (present | absent), active => (true | false), links => ('interface-name' | ['interface-name1', 'interfacename2' ...
Using the Puppet Facter Dell Networking OS supports the standalone tool called the Puppet Facter. This tool is based on Ruby and provides complete system information about the agent node to the puppet master. To apply the configurations using puppet, you must install the Puppet Facter tools on all the nodes. Following are the facts pair in the manifest files.
Smart Scripting 7 Smart Scripting is supported on the S4810, S4820T, S3048–ON, S5000, S6000, Z9500, and MXL switch platforms. Smart Scripting allows you to add functionality to Dell Networking switches without updating the Dell Networking OS release. Smart Scripting is available as a separate installable package that supports SQLite DB and NET SNMP applications and TCL, Expect, Perl, Python, Ruby, and Unix scripting languages.
Smart Scripting supports running a script either from the Dell Networking OS CLI or directly from a UNIX shell. You can run scripts periodically, based on events, at boot up or after the switch is initialized. In addition, you can run scripts in the foreground or background and display the progress of a script. If required, you can cancel, stop, or resume scripts. Smart Scripting allows you to automate common management and maintenance tasks, such as: • Building visibility and/or discovery programs.
• SQLlite database and Perl, Python, Ruby, TCL interface to SQLite. • NetSNMP client and Perl, Python, Ruby interface to the client. • Perl interpreter and associated files. • Python interpreter and associated files. • Ruby interpreter and associated files. • Expanded set of UNIX utilities. • Web-Server with HTTP support (refer to Web Server with HTTP Support).
• nfsmount://filepath copies from the nfs mount file system. To remove an installed Open Automation package, such as Smart Scripting, use the package uninstall command. To follow the progress of a package installation (or removal), use the show packages command. Displaying Installed Packages To view the Open Automation packages currently installed on a switch, including version numbers and content, use the following command. • View package information.
clido "end" clido "show vlan" NOTE: clido maintains context upon execution in the system. To handle such cases, switch between different submodes wherever required for the needed configurations. The clido utility has no pagination, is always set to “terminal length 0”, and has Dell Networking OS CLI privilege 15 enabled. It works in the following modes: • Continues mode (clido command) — use to retain the Dell Networking OS context.
The severity level maps as follows: • 0 — emergency • 1 — alert • 2 — critical • 3 — error • 4 — warning • 5 — notify • 6 — infor • 7 — debug The default severity level is 6. Sample script for dellsyslog in Python #! /usr/pkg/bin/python import sys import os print sys.argv[1] os.system("dellsyslog -s %s 'The Syslog is generated by python'" (sys.
Sample script for Perl using DellExec, DellCli, and DellConfig #! /usr/pkg/bin/perl #importing DellSSUtils require "/usr/pkg/scripts/DellSSUtils/DellSmartUtils.pl"; #Assigning Value to the vairable which is used as an argument to the #dell library functions $cli = "show version"; $script = "/usr/pkg/scripts/sample_scripts/sum.py"; $args = "1 2 3"; $ExtraArgs = "10"; @list = ("interface vlan $ARGV[0]", "no shutdown", "ip address $ARGV[0]. $ARGV[0].$ARGV[0].
NET SNMP Client To manage the device using the simple network management protocol (SNMP) through scripts, the Dell Networking OS supports the NetSNMP client. You can run scripts that use SNMP to manage the data center and devices from within the Dell Networking OS. The Dell Networking OS provides Perl, Python, and Ruby interfaces for the NetSNMP client. To execute the SNMP operations, use the tclsh exec command.
System Attributes Value Description memory a process is given; if memory is tight, the system prefers to take memory from processes that are exceeding their declared resident set size. memorylocked 77,741 Maximum size (in bytes) which a process may lock into memory using the mlock(2) function. maxproc 160 Maximum number of simultaneous processes allowed for the user ID. openfiles 64 Maximum number of open files for this process.
UNIX Utility Function ftp Internet file transfer program. getopts Called each time you process an argument. grep Print lines matching a pattern. hostname Set or print the name of the current host system. ifconfig Configure network interface parameters. iostat Report I/O statistics. ln Make links. ls List directory contents. md5 Calculates and verifies 128-bit MD5 hashes. more Filter for browsing text files.
Creating a User Name and Password for Smart Scripting Before you run a script from the Dell Networking OS CLI, you may want to configure an additional user name and password to use only to run scripts on a switch. Use the user name and password to log in to a UNIX shell and apply the read-write privileges assigned to the user name when a script runs with the script command from the Dell Networking OS CLI.
Setting a Search Path for Scripts Create a path to the location where you stored the scripts. The Dell Networking OS uses this path when searching for the scripts. This way you do not have to specify a specific path when executing a script. • Set a search path for a script in the Dell Networking OS. CONFIGURATION mode script path path-name The script path can contain a network file-system-mounted directory (defined in the mount nfs command).
The following example shows how you can schedule the script named sample.zsh to start after one hour and 12 minutes from now and runs the script in the background: • Dell#script execute sample.zsh start 01:12 bg Schedule a script to run periodically. Schedule scripts to run at a certain time, to be repeated, to stop at a specified time or by a string of arguments. This script runs in the background.
script event—handler event-name Following snippet triggers the script at 22:22 and then triggers every monday midnight and stops at 02:02-11/10/14: Dell(conf)#script trigger-event Event2 time-event start at 22:22 stop at 02:02-11/10/14 weekday mon Dell(conf)#script event-handler handler1 Dell(conf-screvt-handler)#execute Report_server.
• Completed — The script run is successful and exits normally. • Watch Blocked — The script is monitored but terminates within ten minutes. • SSMGR-Stopped — Dell Networking OS stops the script by itself, if the cpu/disk-io/mem goes beyond the threshold. • To monitor the running script, use the watch command. • Dell#show script watch details JobID Script Type Script Status Reset Count Watch StartTime Script NameArgs Username 002 CONF WATCH Watch Blocked 3 Tue Dec 3 18:04:28 2013 args.
• Display a list of scripts that are scheduled or running. To display the detailed status of the scripts, enter detail. EXEC Privilege mode • show script process [detail] Display a list of supervised scripts that are scheduled or running. To display the detailed status of the supervised scripts, enter detail.
Running Scripts with User Privileges Use these scripts to administer any Expect, PERL, Python, Ruby, Tcl, UNIX and ZSH shell scripts stored on the switch from the Dell Networking OS CLI. To apply the associated read-write privileges while running a script from the Dell Networking OS CLI, specify an optional username (refer to XXXCreating a User Name and Password for Smart Scripting). If you do not specify a user name, the script runs with the privileges of the configured user.
8 Smart Scripting CLI Smart Scripting is supported on the S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL platforms. disable Allows you to enable or disable the current event handler configuration. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax disable To reset the event handler, use the [no] disable command. Defaults none Command Modes SCRIPT EVENT HANDLER CONFIGURATION Command History This guide is platform-specific.
be any number of words within quotes and separated by a space. Defaults none Command Modes SCRIPT EVENT HANDLER CONFIGURATION Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.
Usage Information Related Commands Version Description 9.6(0.0) Introduced on the S5000. 9.5(0.1) Introduced on the Z9500. 9.3(0.0) Introduced on the S6000. 9.2(0.0) Introduced on the S4810, S4820T, Z9000, and MXL. • All the mount points are maintained in the /f10/mnt/nfs folder. • Only the relative path (mount point name) is acceptable. If the path you enter is either complete or absolute, an error occurs.
Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S6000–ON. 9.6(0.0) Introduced on the S5000. 9.5(0.1) Introduced on the Z9500. 9.2(0.0) Introduced on the MXL switch. 9.0.2.0 Introduced on the S6000. 9.0.0.0 Introduced on the Z9000. 8.3.19.0 Introduced on the S4820T. 8.3.8.0 Introduced on the S4810. Usage Information Because installing an Open Automation package may take time, the installation performs in the background when the download finishes.
Version Description 9.5(0.1) Introduced on the Z9500. 9.2(0.0) Introduced on the MXL switch. 9.0.2.0 Introduced on the S6000. 9.0.0.0 Introduced on the Z9000. 8.3.19.0 Introduced on the S4820T. 8.3.8.0 Introduced on the S4810. Usage Information When you uninstall an Open Automation package, it is removed from the local flash memory. CAUTION: Before you uninstall the Smart Scripting package, first stop all scripts that are running using the no script script-name command.
parameter values. For example, script username admin /f10/flash/createVlans.py 1 2. Defaults none Command Modes CONFIGURATION Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S6000–ON. 9.6(0.
script (stop/resume/clear/kill/unschedule) Stop, resume, clear, kill, or unschedule an Expect, Perl, Python, Ruby, Tcl, UNIX, and ZSH shell script from the Dell Networking OS CLI. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax Parameters script {stop | resume | clear | kill | unschedule} {script-name script-name | job-id job-id | all} stop Enter the keyword stop to stop a script from being run. resume Enter the keyword resume to restart a script that was stopped.
Usage Information Use the keyword unschedule only on scripts that are not currently running and that were scheduled using the script execute command in EXEC mode. script event-handler Allows you to provide mapping between the scripts and trigger events. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax script event—handler event-name To reset the script event, use the no script event-handler command. Parameters event-name Enter the name of the script event to trigger.
mentioned time is elapsed, the script runs on the next day HH:MM mentioned). The date can be the present or a future date. start after time Enter the keywords start after then the time in [HHHH:] MMMM format to run the script after the set time. The date can be the present or a future date. stop at datetime Enter the keywords stop at then the time and date in HH:MM-MM/DD/YY format to stop the script running at the specified time or in HH:MM format to stop the script at the specified time on the same day.
Usage Information All times selected follow the system time of the switch. The maximum number of scripts to configure is 100. An error message displays when you exceed the limit. Example • Only the person who configured the scheduled scripts (or a higher privileged user) can manage the script. • If you do not provide the username, the system uses current session username. If the script is triggered from the console, the system uses the Dell Networking OS default username (smartuser).
stop after time (Optional) Enter the keywords stop after time then the time in [HHHH:] MMMM format to indicate the time after which the script stops running. For example, stop after 00:30 indicates to stop the script execution 30 minutes after the start time. watch (Optional) Enter the keyword watch to monitor the script. args arguments (Optional) Enter the keyword args then the arguments script. The maximum length is 64 characters.
• If you do not provide the username, the system uses current session username. If the script is triggered from the console, the system uses the Dell Networking OS default username (smartuser). script get Copy a script to a switch. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax Parameters script get url url Enter the keyword url then the URL location of the script to download to a switch. Defaults none Command Modes EXEC Command History This guide is platform-specific.
The downloaded files are stored into a dedicated folder (/usr/pkg/ss-scripts). NOTE: For stack systems, the script from ss-scripts synchronizes across the stack for every one hour. When the stack forms first, the script synchronization from the master to members happens only after 10 minutes. script path Configure the path for the script on the switch.
script remove Remove a script from a switch. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax Parameters script remove {file-name | all} file-name Enter the filename of the script to remove from the switch. all Enter the keywords all to remove all files from the dedicated folder on the switch. Defaults none Command Modes EXEC Command History This guide is platform-specific.
To delete the trigger event, use the no script trigger-event command. Parameters 102 event-name Enter the name of the script event to trigger. log-event tag tag—or—ex tags Enter the keywords log-event tag tag—or—ex then the pattern (tag) in the syslog message to trigger the event if any pattern matches the syslog message. You can enter a maximum of three tags. Separate each tag by commas.
weekday day Enter the keyword weekday then the day of a week to run the script. Select one or more days from the following values: mon, tue, wed, thu, fri, sat, and sun. Separate each day by commas. month month Enter the keyword month then the month to run the script. Select one or more months from the following values: jan, feb, mar, apr, may, jun, jul aug, sep, oct, nov, and dec. Separate each month by commas. monthday nday Enter the keyword monthday then the day to run the script event.
If you use the caret symbol (^) as a pattern, the Dell Networking OS generates blank space as the starting character of the SYSLOG. The special character $ is not allowed to use in regular expressions, as the last word in the SYSLOG is line feed. NOTE: The time-events schedule time takes effect once after the device configures the trigger-event (event). Related Command script event-handler — Allows you to provide mapping between the scripts and trigger events.
• Command History EXEC Privilege This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S6000. 9.6(0.0) Introduced on the S5000. 9.5(0.1) Introduced on the Z9500. 9.2(0.0) Introduced on the MXL Switch. 9.0.2.0 Introduced on the S6000.
URI::urn::uuid 0.03 UUID 0.03 Crypt::SSLeay 0.57 Net::SNMP 6.0.0 Net::Telnet::Cisco 1.10 HTTP Server mini_httpd 1.19 Perl and Python function library for Force10 SmartScripts smartutils 2.0.0 WebConnect Web UI and CGI scripts htdocs 2.0.0 Example (show packages system) Dell#show packages system Package Information -----------------------------------Unit Package Name Version Status ------------------------------------0 SMARTSCRIPTS 2.9.9.2 Installed nano 2.2.6nb1 Installing 1 SMARTSCRIPTS 2.9.9.
detail (Optional) Enter the keyword detail to show detailed output of the file including CPU percentage, memory percentage, next scheduled time, and any script name or relevant arguments. Defaults none Command Modes EXEC Privilege Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.
Version Description 9.0.2.0 Introduced on the S6000. 9.0.0.0 Introduced on the Z9000. 8.3.19.0 Introduced on the S4820T. 8.3.8.0 Introduced on the S4810. Usage Information To invoke the Dell Networking OS operations, start an NetBSD shell on a switch before you can enter UNIX commands or run a script directly from the shell (see Running a Script from the UNIX Shell). After you start a shell, you are prompted to enter a username and password.
switch script limit To control the script that is running based on CPU, memory, or disk IO usage, use the switch script limit. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax switch script limit {cpu percentage mem percentage disk percentage} To return to the default value, use the no switch script limit command. Parameters cpu percentage Enter the keyword cpu and the maximum percentage limit for the script execution. The range is from 20 to 90 percent.
username (event handler) Allows you to configure the username to run the scripts. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500 and MXL Syntax Parameters username username privilege privilege username username Enter the keyword username then the name of the user to access the script. The maximum length is 16 characters. The default username is the user configuring the CLI. privilege privilege Enter the keyword privilege then the privilege level to run the scripts. The range is from 1 to 15.
username Configure an additional username and password to run the scripts on a switch. Use the username and password to log in to a UNIX shell and apply the read-write privileges assigned to the username when a script runs. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, Z9500, and MXL Syntax username name password password To remove the username and password, use the no username command. Parameters name Enter a username to access the UNIX shell.
9 REST API Representational state transfer (REST) application programming interface (API) is an integrated part of the Dell Networking operating system (OS). The Dell Networking OS supports the S4810, S4820T, S3048–ON, S5000, S6000, and Z9500 platforms. HTTP and HTTPS Use REST API to configure and monitor a Dell Networking switch over the hyper text transfer protocol (HTTP) and hyper text transfer protocol secure (HTTPS).
REST Authentication The REST API authenticates and authorizes the user based on the Dell Networking OS AAA configuration. You can locally configure or validate through the AAA infrastructure. For more information about the AAA Accounting mode, see the Dell Networking OS Configuration Guide, Security chapter. The Dell Networking OS CLI user level privilege dictates the level of the REST API access. Users with privilege level 0 or 1 have read-only access; the allowed REST API method is GET.
The following configuration depicts the IP address configuration for router interfaces via REST– PUT request: curl -v -u admin:admin http://10.16.151.159:8008/api/running/dell/interfaces/ interface/tengig-0-0 -X PUT -T ipaddr_config_put.xml * About to connect() to 10.16.151.159 port 8008 * Trying 10.16.151.159... connected * Connected to 10.16.151.159 (10.16.151.159) port 8008 * Server auth using Basic with user 'admin' > PUT /api/running/dell/interfaces/interface/tengig-1-37 HTTP/1.
auto 299 * Connection #0 to host 10.16.151.159 left intact * Closing connection #0 The PDU structure for configuring BGP on the Router 1 is as follows: cat BGP_HTTP_REST_POST_PDU.xml 100 11.1.1.
The following configuration retrieves the BGP running-config via REST API: curl -u admin:admin http://10.16.151.159:8008/api/running/dell/router/bgp 100 60 180 1 1 false 11.1.1.
< < < < < < < < * * HTTP/1.1 204 No Content Server: ConfD/5.2 Cache-control: private, no-cache, must-revalidate, proxy-revalidate Date: Thu, 04 Dec 2014 13:25:31 GMT Allow: GET, POST, OPTIONS, HEAD Content-Length: 0 Content-Type: text/html Etag: 1417-699531-877544@0 Connection #0 to host 10.16.151.159 left intact Closing connection #0 Following is the current configurations applied on the system: Dell#show config ! router bgp 100 neighbor 11.1.1.2 neighbor 11.1.1.2 neighbor 11.1.1.3 neighbor 11.1.1.
The following configuration is to fetch the operational data for the BGP NLRI table via REST API (Router 1): curl -u admin:admin http://10.16.151.159:8008/api/operational/mib/bgp4-v2/ f10BgpM2NlriTable\?deep 11 1 5.0.0.
Status Error Codes Description 501 Not Implemented The server does not (currently) support the functionality required to fulfill the request. 503 Unavailable The server is currently unable to handle the request because the resource is being used by someone else or is temporarily overloaded. REST API — Protocol Data Unit (PDU) Structure The following features are supported to configure the REST API.
Configurations This section describes the properties of all the configurations. BGP The following definition configures and displays the properties of a BGP configuration.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | REST API | +--rw reuse? uint32 | +--rw suppress? uint32 | +--rw max-suppress-time? uint32 | +--rw route-map? dell:route-map-name +--rw default-metric? uint32 +--rw description? string +--rw timers | +--rw bgp | +--rw keepalive? dell:seconds | +--rw hold-time? dell:seconds +--rw maximum-paths | +--rw ebgp? uint32 | +--rw ibgp? uint32 +--rw network [ipv4-address] | +--rw ipv4-addre
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 122 | +--rw route-reflector-client? boolean | +--rw sender-side-loop-detection? boolean | +--rw soft-reconfiguration? enumeration | +--rw subnet? dell:ip-address-with-prefix | +--rw dmzlink-bw? boolean +--rw neighbor [neighbor-router] | +--rw neighbor-router union | +--rw peer-group-name? dell:peer-group-name | +--rw remote-as? dell:as-number | +--rw description? string | +--rw e
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | REST API | +--rw external-distance? uint8 | +--rw internal-distance? uint8 | +--rw local-distance? uint8 +--rw redistribute? | +--rw connected? | | +--rw route-map? dell:route-map-name | +--rw static? | | +--rw route-map? dell:route-map-name | +--rw imported-bgp? | | +--rw route-map? dell:route-map-name | +--rw ospf [process-id] | | +--rw process-id uint16 | | +--rw match? | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 124 | +--rw max-suppress-time? uint32 | +--rw route-map? dell:route-map-name +--rw network [ipv4-address] | +--rw ipv4-address dell:ipv4-address-with-prefix | +--rw route-map? dell:route-map-name | +--rw backdoor? boolean +--rw network-v6 [ipv6-address] | +--rw ipv6-address dell:ipv6-address | +--rw route-map? dell:route-map-name | +--rw backdoor? boolean +--rw aggregate-address
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | REST API | +--rw add-path? | | +--rw addpath? enumeration | | +--rw path-count? uint8 | +--rw local-as? | | +--rw as-number? dell:as-number | | +--rw no-prepend? boolean | +--rw password? | | +--rw encryption-type? enumeration | | +--rw password-value? string | +--rw activate? boolean | +--rw advertisement-interval? dell:seconds | +--rw allowas-in? uint8 | +--rw default-originate
| | +--rw direction dell:bgp-opt-dir | | +--rw name? dell:prefix-list-name | +--rw filter-list [direction] | | +--rw direction dell:bgp-opt-dir | | +--rw name? dell:aspath-access-list-name | +--rw maximum-prefix? | | +--rw maximum? uint32 | | +--rw threshold? uint8 | | +--rw warning-only? boolean | +--rw next-hop-self? boolean | +--rw remove-private-as? boolean | +--rw route-map [direction] | | +--rw direction dell:bgp-opt-dir | | +--rw name? dell:route-map-name | +--rw route-reflector-client? boolean | +--
Interface The following definition configures and displays the properties of an Interface: Module: INTERFACE URI: /api/running/dell/interfaces/interface Methods Supported: GET, POST, PUT, PATCH, and DELETE NOTE: The POST and DELETE operations are not supported on Physical Interfaces. Use the following formats for various interface types: 1. 2. Physical Interface:-- • The can be TenGigabitEthernet or FortyGigabitEthernet.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 128 | | +--rw WORD access-list-name | +--rw learning-limit? | +--rw count? uint32 | +--rw (operations)? | | +--:(sticky) | | | +--rw sticky? boolean | | +--:(non-sticky) | | +--rw dynamic? boolean | | +--rw station-move? boolean | +--rw learn-limit-violation? | | +--rw (action)? | | +--:(log) | | | +--rw log boolean | | +--:(shutdown) | | +--rw shutdown boolean | +--rw station-move
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | REST API | | | +--rw address? dell:ipv4-address-with-prefix | | +--rw dhcp? | | | +--rw relay? | | | | +--rw information-option? | | | | +--rw remote-id? | | | | +--rw (remote-id-string)? | | | | +--:(hostname) | | | | | +--rw hostname? boolean | | | | +--:(mac) | | | | | +--rw mac? boolean | | | | +--:(user-string) | | | | +--rw user-string? string | | | +--rw vendor-class-ident
| | | | | | | | | | | | | | | | | | | | | | | | | | | | +--rw rtr-address? boolean | | +--rw off-link? boolean | | +--rw lifetime? | | +--rw valid ipv6-nd-prefix-lifetime | | +--rw preferred ipv6-nd-prefix-lifetime | +--rw ra-lifetime? uint32 | +--rw reachable-time? uint32 | +--rw retrans-timer? uint32 | +--rw suppress-ra? boolean +--rw access-group? +--rw in? | +--rw WORD access-list-name | +--rw implicit-permit? boolean | +--rw (ipv6-action)? | +--:(vlan) | | +--rw vlan* vlan-range | +--:(optimized) | +-
+--rw description? string +--rw seq* [seq-num] +--rw seq-num uint32 +--rw action ipv6-prefix-list-action-types +--rw ipv6-prefix union +--rw prefix-min-len? uint32 +--rw prefix-max-len? uint32 Management-Route The following definition configures and displays the properties of a Management-Route: Module: MANAGEMENT-ROUTE URI: /api/running/dell/management/route Methods Supported: GET, POST, PUT, PATCH, and DELETE Management Route Configuration Model +--rw management +--rw route* [ip-address-prefix] +--
types types 132 | +--rw destination-mask dell:ipv4-mask-or-prefix | +--rw tcp-options* enumeration | +--rw tcp-udp-port-oper-list [port-type] | +--rw port-type tcp-udp-port-type | +--rw oper-type tcp-udp-port-oper-type | +--rw port uint32 | +--rw start-port uint32 | +--rw end-port uint32 +--rw ipv6 +--ro stats +--ro access-list +--ro mac [name] | +--ro name access-list-name | +--ro type? access-list-types | +--ro mac-acl-filter [seq-no] | +--ro seq-no uint32 | +--ro filter-type? acl-rule-types | +--ro sr
+--ro +--ro +--ro +--ro +--ro monitor? order? dscp? ecn? fragments? boolean uint32 uint32 uint32 boolean Port Mirroring The following definition is for configuring and displaying the properties of port mirroring: Module: Port Mirroring URI: /api/running/dell/monitor-session Methods Supported: GET, POST, PUT, PATCH, and DELETE Port Mirroring Configuration Model +--rw dell +--rw system +--rw interfaces +--rw router +--rw management +--rw ip +--rw ipv6 +--rw monitor-session [session-id] +--rw session-
| | +--rw permit? boolean | +--:(deny) | +--rw deny? boolean +--rw set +--rw ext-community! +--rw bandwidth? uint32 Static Route The following definition configures and displays the properties of a Static Route configuration: Module: IP STATIC ROUTE URI: /api/running/dell/ip/route Methods Supported: GET, POST, PUT, PATCH, and DELETE Static Route Configuration Model +--rw ip +--rw route* [ip-address-prefix interface-name next-hop] | +--rw ip-address-prefix dell:ipv4-address-with-prefix | +--rw interfa
URI: /api/operational/dell/stats/ip/bgp Methods Supported: GET BGP Model +--ro bgp +--ro table-version? uint32 +--ro local-router-id? string +--ro routes | +--ro prefix-list* [network-prefix network-prefix-len next-hopaddress seq-num] | +--ro network-prefix inet:ip-address | +--ro network-prefix-len inetaddress:InetAddressPrefixLength | +--ro next-hop-address inet:ip-address | +--ro seq-num uint32 | +--ro metric? uint32 | +--ro local-pref? uint32 | +--ro weight? uint32 | +--ro next-hop-cost-index? uint3
+--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro weight? next-hop-cost-index? as-path-string? path-source? origin-code? is-nlre-loc-aggtd? is-stale? status-code? best-route? link-bandwidth? uint32 uint32 string enumeration enumeration snmpv2-tc:TruthValue snmpv2-tc:TruthValue enumeration snmpv2-tc:TruthValue string BGPv6 Use the following definition to get the BGPv6 operational data: Module: BGPv6 URI: /api/operational/dell/stats/ip/bgpv6 Methods Supported: GET BGPv6 Operational Model +-
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | REST API +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +
with-prefix with-prefix with-prefix 138 | | | | | | | | | +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro route-reflector-client? soft-reconfig-inbound? session-md5-auth? default-org-routemap? default-org-config? no-active-tcp-connection? pdu-cap-dir? pdu-cap-stats? local-host? | | +--ro local-port? +--ro foreign-host? | +--ro foreign-port? +--ro summary | +--ro local-router-id? string boolean string string string string string string dell:ipv6-addressuint32 dell:ipv6-addressuint32 dell:ipv6-
prefix prefix REST API | +--ro local-rib | | +--ro routes-added? uint32 | | +--ro routes-replaced? uint32 | | +--ro routes-withdrawn? uint32 | | +--ro router-id? dell:ipv6-address-with-prefix | +--ro prefix-list [network-prefix next-hop-addr] | +--ro network-prefix dell:ipv6-address-with-prefix | +--ro next-hop-addr dell:ipv6-address-with-prefix | +--ro status-code? bgp-status-code | +--ro best-route? boolean | +--ro path-source? bgp-path-source | +--ro metric? string | +--ro local-pref? string | +--ro w
prefix prefix 140 | +--ro prefix-list [network-prefix next-hop-addr] | +--ro network-prefix dell:ipv6-address-with-prefix | +--ro next-hop-addr dell:ipv6-address-with-prefix | +--ro status-code? bgp-status-code | +--ro best-route? boolean | +--ro path-source? bgp-path-source | +--ro metric? string | +--ro local-pref? string | +--ro weight? uint32 | +--ro as-path-string? string | +--ro origin-code? bgp-origin-code +---x community-list | +--ro input | | +--ro community-list-name? bgp-list-name | +--ro outp
prefix prefix prefix REST API | | | | | | | | +--ro +--ro +--ro +--ro routes-added? routes-replaced? routes-withdrawn? router-id? uint32 uint32 uint32 dell:ipv6-address-with- | +--ro prefix-list [network-prefix next-hop-addr] | +--ro network-prefix dell:ipv6-address-with-prefix | +--ro next-hop-addr dell:ipv6-address-with-prefix | +--ro status-code? bgp-status-code | +--ro best-route? boolean | +--ro path-source? bgp-path-source | +--ro metric? string | +--ro local-pref? string | +--ro weight? uint
Interface Use the following definition to get the static IPv4 operational data: Module: STATS URI: /api/operational/dell/stats Methods Supported: GET Interface Model for IPv4 +--ro stats +--ro interfaces* [name] +--ro name dell:interface-name +--ro description? string +--ro type? ianaiftype-mib:IANAifType +--ro if-index? uint32 +--ro admin-status? enumeration +--ro oper-status? enumeration +--ro oper-down-reason? string +--ro mtu? int32 +--ro speed? yang:gauge32 +--ro queueing-strategy? string +--ro p
+--ro last-intf-status-changed? uint32 +--ro in-octets? yang:counter64 +--ro in-unicast-pkts? yang:counter64 +--ro in-multicast-pkts? yang:counter64 +--ro in-broadcast-pkts? yang:counter64 +--ro in-64bytes-pkts? yang:counter64 +--ro in-over-64bytes-pkts? yang:counter64 +--ro in-over-127bytes-pkts? yang:counter64 +--ro in-over-255bytes-pkts? yang:counter64 +--ro in-over-511bytes-pkts? yang:counter64 +--ro in-over-1023bytes-pkts? yang:counter64 +--ro in-symbol-errors? yang:counter64 +--ro in-runts? yang:count
Route Model +--ro route +--ro gateway-of-last-resort? string +--ro route-entry* [destination] | +--ro destination inet:ip-prefix | +--ro next-hop* [address] | | +--ro address inet:ip-address | | +--ro interface? dell:interface-name | | +--ro weight? uint32 | | +--ro route-type? enumeration | +--ro route-owner? enumeration | +--ro metric? uint32 | +--ro age? yang:timestamp | +--ro route-tag? string | +--ro distance? uint32 | +--ro default-route? boolean | +--ro summary? boolean +--ro summary +--ro connected-
+--ro +--ro +--ro +--ro +--ro +--ro +--ro udp-broadcast? directed-broadcast? proxy-arp? split-horizon? poison-reverse? icmp-redirects? icmp-unreachables? inet:ip-address boolean boolean boolean boolean boolean boolean Management – Route Use the following definition to get the Management–Route statistics: Module: MANAGEMENT-ROUTE URI: /api/operational/dell/stats/ip/management-route Methods Supported: GET Management-Route Model +--ro management-route +--ro route-entry* [destination] | +--ro destinati
| | +--ro sticky-mac-count? uint32 | | +--ro total-mac-in-use? uint32 | +--ro mac-address-list* [mac-address] | +--ro mac-address yang:phys-address | +--ro type? enumeration | +--ro interface? string | +--ro state? enumeration +--ro multicast +--ro count? uint32 +--ro mac-vlan* [vlan-id] +--ro vlan-id vlan-id +--ro static-mac-count? uint32 +--ro mac-address-list* [mac-address] +--ro mac-address yang:phys-address +--ro state? enumeration +--ro l2-mc-index? uint32 +--ro interface-list? string Policy Based Ro
| +--ro applied-interface | +--ro interfaces* dell:interface-name +--ro cam +--ro pbr +--ro unit [unit-num port-set-num] | +--ro unit-num dell:stack-unit | +--ro port-set-num enumeration | +--ro rule-entry [cam-index] | | +--ro cam-index uint32 | | +--ro port? uint32 | | +--ro vlan-id? dell:vlan-id-num-with-default | | +--ro protocol? dell:ip-protocols-type | | +--ro tcp-flag* tcp-bits | | +--ro source-port? uint32 | | +--ro destination-port? uint32 | | +--ro source-ip? string | | +--ro destination-ip? stri
Static Access-list The following definition describes how to retrieve all the Access-lists (MAC and Layer 3): Module: STATIC ACCESS-LIST URI: /api/operational/dell/stats/access-list Methods Supported: GET Static Access-list Model +--ro access-list +--ro mac* [name] | +--ro name access-list-name | +--ro type? access-list-types | +--ro mac-acl-filter* [seq-no] | +--ro seq-no uint32 | +--ro filter-type? acl-rule-types | +--ro src-mac-filter? acl-incoming-address-filter-types | +--ro src-mac-address? yang
+--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro +--ro count-type? egress-count-value? ingress-count-value? log? monitor? order? dscp? ecn? fragments? acl-rule-count-types uint32 uint32 boolean boolean uint32 uint32 uint32 boolean System Use the following definition to display the System entries: Module: STATS URI: /api/operational/dell/stats/system Methods Supported: GET System Model +--ro mac-address? yang:phys-address +--ro reload-type? reload-type +--ro next-boot? reload-type +--ro units* [unit-
| +--ro ps-type? string | +--ro fan-status? string | +--ro fan-speed? uint32 +--ro fans* [index] | +--ro index uint32 | +--ro unit-id? uint32 | +--ro bay-id? uint32 | +--ro bay-status? string | +--ro fan-id? uint32 | +--ro fan-status? string | +--ro fan-speed? uint32 +--ro environment-status* [unit-id] | +--ro unit-id uint32 | +--ro unit-status? string | +--ro temperature? int32 | +--ro voltage? voltage-status | +--ro temp-status? uint32 +--ro thermal-sensor-reading* [unit-id] +--ro unit-id uint32 +--ro sen
URI: /api/operational/dell/stats/inventory Methods Supported: GET System Inventory Model +--ro inventory +--ro system-type? string +--ro system-mode? string +--ro sw-version? string +--ro parts [index] | +--ro index | +--ro stack-unit? | +--ro part-type? | +--ro serial-number? | +--ro part-number? | +--ro revision? | +--ro piece-part-id? | +--ro ppid-revision? | +--ro service-tag? | +--ro express-service-code? +--ro protocols? uint32 uint32 string string string string string string string string string
URI: /api/operational/dell/stats/vlan Methods Supported: GET VLAN Model +--ro vlan* [vlan-id] +--ro vlan-id vlan-id-num +--ro vlan-name? vlan-name +--ro default-vlan? boolean +--ro vlan-codes? vlan-codes +--ro vlan-status? vlan-status +--ro vlan-description? string +--ro vlan-port-list* [vlan-port-list-num] +--ro vlan-port-list-num int32 +--ro vlan-port-list-port-mode? vlan-port-mode +--ro vlan-port-list-intf-type? vlan-intf-type +--ro vlan-port-list-data? string Operational Data for IPv6 This section
| +--ro address dell:ipv6-address +--ro global-anycast-ipv6-address? dell:ipv6-address-with-prefix +--ro joined-group-ipv6-address* [address] | +--ro address dell:ipv6-address +--ro icmp-redirects? boolean +--ro nd-mtu? uint32 +--ro dad? boolean +--ro dad-attempts? uint32 +--ro nd-reachable-time? uint32 +--ro nd-base-reachable-time? uint32 +--ro nd-advertised-reachable-time? uint32 +--ro nd-advertised-retransmit-interval? uint32 +--ro nd-router-advertisement-interval-min? uint32 +--ro nd-router-advertisemen
Methods Supported: GET IPv6 Management-Route Model +--ro ipv6 +--ro management-route +--ro route-entry* [destination] | +--ro destination dell:ipv6-address-with-prefix | +--ro gateway? string | +--ro state? enumeration | +--ro default-route? boolean +--ro summary +--ro connected-active? uint32 +--ro connected-inactive? uint32 +--ro static-active? uint32 +--ro static-inactive? uint32 +--ro route-size-active? uint32 +--ro route-size-inactive? uint32 +--ro total-active-routes? uint32 +--ro total-inactive-rou
Methods Supported: GET Route Model for IPv6 +--ro route +--ro gateway-of-last-resort? string +--ro route-entry* [destination] | +--ro destination dell:ipv6-address-with-prefix | +--ro gateway? dell:ipv6-address-with-prefix | +--ro route-type? enumeration | +--ro route-owner? string | +--ro metric? string | +--ro intf-type? string | +--ro last-change? yang:timestamp | +--ro state? enumeration | +--ro default-route? boolean | +--ro summary? boolean +--ro summary +--ro connected-active? uint32 +--ro connecte
| +--ro f10BgpM2ConfederationId? inetaddress:InetAutonomousSystemNumber | +--ro f10BgpM2CfgBaseScalarStorageType? snmpv2-tc:StorageType | +--ro f10BgpM2CfgLocalAs? inetaddress:InetAutonomousSystemNumber | +--ro f10BgpM2CfgLocalIdentifier? inet:ip-address | +--ro f10BgpM2CfgRouteReflector? snmpv2-tc:TruthValue | +--ro f10BgpM2CfgClusterId? mib:F10BgpM2Identifier | +--ro f10BgpM2CfgConfederationRouter? snmpv2-tc:TruthValue | +--ro f10BgpM2CfgConfederationId? inetaddress:InetAutonomousSystemNumber | +--ro f10B
| +--ro f10BgpM2PeerOutKeepalives? yang:counter32 | +--ro f10BgpM2PeerInOpen? yang:counter32 | +--ro f10BgpM2PeerOutOpen? yang:counter32 | +--ro f10BgpM2PeerInRteRefresh? yang:counter32 | +--ro f10BgpM2PeerOutRteRefresh? yang:counter32 | +--ro f10BgpM2PeerReflectorClient? enumeration | +--ro f10BgpM2PeerConfedMember? snmpv2-tc:TruthValue | +--ro f10BgpM2CfgPeerConfedMember? snmpv2-tc:TruthValue | +--ro f10BgpM2PeerGroupName? string +--ro f10BgpM2PeerCapsAnnouncedTable* [f10BgpM2PeerIndex f10BgpM2PeerCapAnno
address:InetAddressPrefixLength | +--ro f10BgpM2NlriBest? snmpv2-tc:TruthValue | +--ro f10BgpM2NlriCalcLocalPref? uint32 | +--ro f10BgpM2PathAttrIndex? uint32 | +--ro f10BgpM2NlriOpaqueType? enumeration | +--ro f10BgpM2NlriOpaquePointer? snmpv2-tc:RowPointer | +--ro f10BgpM2RouteFlag? enumeration +--ro f10BgpM2AdjRibsOutTable* [f10BgpM2PeerIndex f10BgpM2NlriAfi f10BgpM2NlriSafi f10BgpM2NlriPrefix f10BgpM2NlriPrefixLen f10BgpM2AdjRibsOutIndex] | +--ro f10BgpM2PeerIndex uint32 | +--ro f10BgpM2NlriAfi mib:F10B
| +--ro f10BgpM2PathAttrIndex uint32 | +--ro f10BgpM2PathAttrOriginatorId? inet:ip-address +--ro f10BgpM2PathAttrClusterTable* [f10BgpM2PathAttrIndex f10BgpM2PathAttrClusterIndex] | +--ro f10BgpM2PathAttrIndex uint32 | +--ro f10BgpM2PathAttrClusterIndex uint32 | +--ro f10BgpM2PathAttrClusterValue? mib:F10BgpM2Identifier +--ro f10BgpM2PathAttrExtCommTable* [f10BgpM2PathAttrIndex f10BgpM2PathAttrExtCommIndex] | +--ro f10BgpM2PathAttrIndex uint32 | +--ro f10BgpM2PathAttrExtCommIndex uint32 | +--ro f10BgpM2Path
Forwarding Plane Statistics The following definition displays the Forwarding Plane statistics: Module: FP-STATS URI: /api/operational/mib/fp-stats Methods Supported: GET Forwarding Plane Statistics Model +--ro mib +--ro fp-stats +--ro fp-stats-table* [stackUnitId] | +--ro stackUnitId int32 | +--ro rxHandle? int32 | +--ro numMsgHdr? int32 | +--ro numMsgBuf? int32 | +--ro numCluster? int32 | +--ro received? int32 | +--ro dropped? int32 | +--ro rxToNetwork? int32 | +--ro rxError? int32 | +--ro rxDatapath
| +--ro inputDropped? int32 | +--ro inputError? int32 | +--ro outputPackets? int32 | +--ro outputBytes? int32 | +--ro outputError? int32 +--ro fp-drops-table* [stackUnitId stackPortId] | +--ro stackUnitId int32 | +--ro stackPortId int32 | +--ro inDrops? yang:counter64 | +--ro inIBPCBPFullDrops? yang:counter64 | +--ro inPortSTPnotFwdDrops? yang:counter64 | +--ro inIPv4L3Discards? yang:counter64 | +--ro inPolicyDiscards? yang:counter64 | +--ro inPktDroppedByFP? yang:counter64 | +--ro inL2L3Drops? yang:counter
IF MIB Model +--ro mib +--ro if-mib +--ro ifNumber? int32 +--ro ifTable* [ifIndex] +--ro ifIndex mib:InterfaceIndex +--ro ifDescr? smiv2:DisplayString +--ro ifType? ianaiftype-mib:IANAifType +--ro ifMtu? int32 +--ro ifSpeed? yang:gauge32 +--ro ifPhysAddress? yang:phys-address +--ro ifAdminStatus? enumeration +--ro ifOperStatus? enumeration +--ro ifLastChange? yang:timeticks +--ro ifInOctets? yang:counter32 +--ro ifInUcastPkts? yang:counter32 x--ro ifInNUcastPkts? yang:counter32 +--ro ifInDiscards? yang:coun
+--ro ifTableLastChange? +--ro ifStackLastChange? yang:timeticks yang:timeticks IETF Interface Operations The following definition configures and displays the properties of an Interface using IETF: Module: IETF INTERFACE URI: /api/operational/interfaces Methods Supported: GET, PATCH, and PUT IETF Interface Model +--rw interfaces +--rw interface [name] +--rw name +--rw description? +--ro type? +--ro location? +--rw enabled? +--ro if-index? +--rw mtu? +--rw link-up-down-trap-enable? +--rw rate-interva
+--ro input | +--ro config-commands? | +--ro show-command? | +--ro exec-command? +--ro output +--ro command string string dell:show-cmd-str dell:cli-cmd-str Samples of the config-command Following is the sample output of CONFIG command: To configure an IP address: Input.xml: interface vlan 100\r\n ip address 1.2.3.4/24 curl -u demo:demo -X POST -T Input.xml http://:8008/api/running/dell/ _operations/cli
10 REST API CLI The REST API CLI commands are supported on the S4810, S4820T, S3048–ON, S5000, S6000, S6000– ON, and Z9500 platforms. rest-server Enable the REST API service over a non-secure or secure HTTP. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, and Z9500 Syntax rest-server {http | secure-http} To disable the REST API over a non-secure or secure HTTP request, use the no rest-server {http | secure-http} command. Parameters http Enable the REST API on HTTP (Port: 8008).
crypto cert generate Generate a self-signed certificate and key files, if exists, and replace them with the newly generated files.
Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S6000–ON. 9.6(0.0) Introduced on the S Series and Z Series switches.
show crypto cert Display the certificate information. S4810, S4820T, S3048–ON, S5000, S6000, S6000–ON, and Z9500 Syntax show crypto cert {rest-server |file-name} Command Mode EXEC Parameters rest-server Enter the keyword rest-server to display the certificate information installed for rest service. file-name Enter the filename with full path to display the certificate information. Command Modes EXEC Command History This guide is platform-specific.
Defaults none Command Modes EXEC Privilege Command History This guide is platform-specific. For command information about other platforms, see the relevant Dell Networking OS Command Line Reference Guide. The following is a list of the Dell Networking OS version history for this command. Version Description 9.8(0.0P2) Introduced on the S3048–ON. 9.7(0.0) Introduced on the S4810, S4820T, S5000, S6000, S6000– ON, Z9000, and Z9500.
Web Server with HTTP Support 11 You download web server with HTTP support with the SmartScripts package. It is supported on the S4810, S4820T, S5000, and MXL switch platforms. For more information, see the Download the Smart Scripting Package. Starting the Web Server In the Open Automation package, the web server runs on a switch and handles HTTP and HTTPS requests. You can start the web server in a non-secure (HTTP) or secure (HTTPS) mode.