• Introduction
  • Solution Network Topology and Addressing
  • IoT Gateway Onboarding and Management
  • ICT Enablement for SCADA Use Case Validation
  • End-to-End Application Use Case Scenarios
  • High Availability at Various Layers
  • IP Services
  • Appendix A: PnP Profiles
  • Appendix B: FND Zero Touch Deployment Profiles
  • Appendix C: FlexVPN Configurations
  • Appendix D: SCADA ICT Enablement Profiles
  • Appendix E: End-to-End Application Use Case Scenarios
  • Distribution Automation—Secondary Substation Implementation Guide

    This Distribution Automation - Secondary Substation Implementation Guide provides a comprehensive explanation of the Cisco Smart Grid Field Area Network solution implementation for Secondary Substation monitoring and Distribution Automation use cases such as Fault Location, Isolation, and Service Restoration (FLISR) and Volt/VAR.

    This document includes implementation information about the solution’s architecture, possible deployment models, and guidelines for deployment. It also recommends best practices and potential issues when deploying the reference architecture.

    Navigator

    The following table describes the content of the chapters in this document.

    Chapter

    Description

    Chapter 1, Introduction

    Describes the solution overview and implementation flow.

    Chapter 2, Solution Network Topology and Addressing

    Discusses the Distribution Automation secondary substation solution network topology and various IP addressing schemes used in the solution implementation.

    Chapter 3, IoT Gateway Onboarding and Management

    Includes gateway onboarding, staging, and zero touch deployment (ZTD) implementation and use case-specific template implementation.

    Chapter 4, ICT Enablement for SCADA Use Case Validation

    Explains the ICT implementation like routing, raw socket, and protocol translation, which are key for application traffic flow.

    Chapter 5, End-to-End Application Use Case Scenarios

    Explains the implementation details of the fault location isolation and service restoration, Volt/VAR, and substation monitoring use cases.

    Chapter 6, High Availability at Various Layers

    Explains the implementation details of high availability aspects of this solution.

    Chapter 7, IP Services

    Explains the implementation details of various IP services like Network Address Translation, and Quality of Service.

    Appendix A: PnP Profiles

    Captures the “Router Bootstrap Configuration” profiles for FND, for various deployment methods of Cisco IoT Gateways (with/without NAT, IPv4/IPv6).

    Appendix B: FND Zero Touch Deployment Profiles

    Captures the FND Tunnel Provisioning group content, as well as the FND Device Configuration group content, to facilitate ZTD of Cisco IoT Gateways.

    Appendix C: FlexVPN Configurations

    FlexVPN Configurations required for secure Tunnel provisioning.

    Appendix D: SCADA ICT Enablement Profiles

    Captures the FND device configuration group's profile/content, for enablement of IP/Serial SCADA traffic on IR1101 and IR807.

    Appendix E: End-to-End Application Use Case Scenarios

    Captures the supplementary file details used during validation of End-to-End Application use case scenarios.

    Audience

    The audience for this guide comprises, but is not limited to, system architects, network/compute/systems engineers, field consultants, Cisco Advanced Services specialists, and customers.

    Readers should be familiar with networking protocols, Network Address Translation, Supervisory Control and Data Acquisition (SCADA) protocols, and have been exposed to Field Area Networks.

    Introduction

    This implementation guide details the implementation of Distribution Automation use cases like FLISR, Volt/VAR and Secondary Substation monitoring for the Europe region. Therefore, the focus of this document is on IEC 60870-5-104 or T104 and IEC 60870-5-101 or T101 Supervisory Control and Data Acquisition (SCADA) protocols. We have planned a separate implementation guide that focuses on the North American Region distribution automation use cases.

    Secondary Substation monitoring covers both SCADA transport and SCADA translation scenarios. SCADA protocol translations are enabled on Cisco routers such as the Cisco IR1101, Cisco IR809, Cisco IR807, Cisco IR829, and CGR 1120. These routers are referred to as Secondary Substation Routers (SSR) or Distribution Automation Gateways (DA Gateways) throughout this document. Solution implementation is based on the design recommended in the Distribution Automation - Secondary Substation Design Guide that can be found at the following URL:

    blank.gif https://www.cisco.com/c/en/us/td/docs/solutions/Verticals/Distributed-Automation/Secondary-Substation/DG/DA-SS-DG.html

    The flow of this implementation guide is depicted in Figure 1:

    Figure 1 Implementation Flow

     

    379940.jpg

    The Cisco Distribution Automation Solution is a two-tier architecture where the headend block is connected to the Field Area Network or Secondary Substation block using the WAN tier. The Gateway aggregates application traffic from the Field Area block and routes to the Headend block where the application resides. For a detailed description of different elements in the Field Area block and their implementation, please refer to the Cisco FAN - Headend Deep Dive Implementation and FAN Use Cases at the following URL:

    blank.gif https://docs.cisco.com/share/proxy/alfresco/url?docnum=EDCS-15726915

    Figure 2 Distribution Automation Solution Architecture

     

    379941.jpg

    Gateways connect various outstation IEDs (IPV4/IPV6 or serial) in the Field Area or Secondary Substation via Ethernet and RS232/RS485 asynchronous serial interfaces. Solution Network Topology and Addressing discusses in detail the solution implementation topology, various IP address schemes used in different blocks, and VLAN segmentation across services. The gateway can be onboarded, staged, and deployed in Zero Touch fashion, which is the preferred and scalable way for deploying gateways.

    The various stages involved in Zero Touch Deployment (ZTD) and best practices to be followed during ZTD implementation are discussed in detail in IoT Gateway Onboarding and Management discusses in detail. Once the gateways are registered to the Network Management Systems (NMS) Field Network Director (FND), gateways are provisioned with various features that will enable the secure bidirectional flow between IEDs in the field to SCADA applications in the Headend of the Distribution System Operator (DSO). Some of the application flow from the IEDs is via the Remote Terminal Unit (RTU) residing in the Secondary Substation to the SCADA.

    Features can be broadly classified into horizontal ones like IP routing, network encryption, time synchronization (like NTP), QoS, NAT, and DHCP and vertical features like protocol translation, raw sockets, and IED-based ACLs. Appendix A: PnP Profiles provides customized and well-tested use case-based NMS templates, which is key for faster field deployment of Distribution Automation use cases.

    Application Use Cases

    This document addresses the following technology use cases:

    blank.gifSecondary Substation Monitoring

    blank.gifVolt/VAR

    blank.gifFLISR

    Solution Network Topology and Addressing

    This chapter, which discusses the various topologies used for solution validation and implementation in this guide, includes the following major topics:

    blank.gifTopology Diagram

    blank.gifIPv4 and IPv6 Addressing

    blank.gifAddressing in DSO Control Center2

    Topology Diagram

    This section describes the high-level solution validation topology that has been used in this Secondary Substation Implementation Guide.

    High Level Solution Validation Topology

    Figure 3 depicts the high level solution validation topology:

    Figure 3 Secondary Substation High Level Solution Validation Topology

     

    379942.jpg

    The multiple layers of topology include:

    1.blank.gif Head End/Control Center Block, which hosts the DSO Control Center1 (DSO1) and DSO Control Center2 (DSO2):

    a.blank.gif Both Control Centers host the SCADA application server. They could also host other application servers.

    b.blank.gif Of the two Control Centers, DSO1 hosts the following additional components:

    • CA, Active Directory (AD), Dynamic Host Configuration Protocol (DHCP), Field Network Director (FND), Authentication, Authorization, and Accounting (AAA), Registration Authority (RA), and Tunnel Provisioning Server (TPS).
    • These components are essential for the ZTD of the SSRs that are positioned in the Secondary Substation and DA Gateways that are positioned along the Distribution Feeder.

    2.blank.gif Secondary Substation Block

    3.blank.gif Distribution Block

    4.blank.gif Utility Controller Devices Block. Utility controller devices (real/simulated) are connected to the DA Gateways over a Ethernet/Serial interface.

    The following components are simulated using the Triangle MicroWorks (Distributed Test Manager or DTM) tool:

    1.blank.gif SCADA Master located in DSO1

    2.blank.gif SCADA Master located in DSO2

    3.blank.gif IEDs located in the Utility Controller Devices Block layer

    Two Instances of the Solution Validation Topology

    Two instances of this topology have been used during this implementation:

    1.blank.gif One instance is located in Cisco Engineering lab premises, with validation done over the Ethernet backhaul:

    a.blank.gif No public internet connectivity

    b.blank.gif WAN Network is simulated inside the engineering lab

    c.blank.gif Is referred to as the Engineering Lab Topology throughout this document

    2.blank.gif The second instance is located in the Cisco DMZ premises, with validation done over the cellular backhaul, along with Ethernet WAN:

    a.blank.gif Over public internet connectivity using Cellular SIM Cards, as well as over Ethernet

    b.blank.gif WAN Network is the service provider's network

    c.blank.gif Is referred to as Cisco DMZ Headend throughout this document.

    '

    Table 1 Differences in Validation between Engineering Lab Headend and Cisco DMZ Headend

    Block

    With Engineering Lab Topology

    With Cisco DMZ Headend

    Headend/Control Center Block

    blank.gifPositioned in Engineering Lab

    blank.gifPositioned in Cisco DMZ space

    Secondary Substation Block

    blank.gifPositioned in Engineering Lab

    blank.gifConnectivity is over simulated WAN

    blank.gifBoth IPv4 and IPv6 backhauls are validated

    blank.gifCan be positioned anywhere

    blank.gifConnectivity is over service provider cellular network

    blank.gifIPv4 backhaul is validated as cellular provider allocated IPv4 address only

    blank.gifIPv6 backhaul is validated as part of the Engineering Lab Topology

    Distribution Gateway Block

    blank.gifPositioned in Engineering Lab

    blank.gifEthernet uplink of DA Gateway has been validated

    blank.gifCan be positioned anywhere

    blank.gifTwo uplink networks are validated on the DA Gateway:

    blank.gifCellular uplink validated predominantly

    blank.gifAlong with Ethernet uplink

    Utility Controller Devices Block

    blank.gifAgnostic to the positioning of the headend. Ethernet and serial connectivity to simulated IEDs have been validated.

    Note: The following sections of this guide capture the IP addressing used only in the Engineering Lab topology. For security reasons, Cisco DMZ IP addresses are referred to with abstract names instead of actual IP addresses.

    IPv4 and IPv6 Addressing

    Addressing in DSO Control Center1

    Zooming in on the DSO1 part of the Head End/Control Center block, Figure 4 captures the granular details of the DSO Control Center1:

    Figure 4 DSO Control Center 1—Implementation Topology

     

    379943.jpg

    The DSO Control Center1 is composed of two different networks:

    blank.gifAddressing in the DMZ Network

    blank.gifAddressing in the Private Network

    Addressing Convention Followed in the Private Network Subnet Selection

    Two prefixes are used in the private network of the Control Center:

    blank.gif172.16.X.yy in the Engineering Lab Topology

    blank.gif192.168.X.yy in the Cisco DMZ Headend

    Table 2 Addressing Convention Followed with Third Octet of IP Address

    Third Octet

    Component Connected by the Subnet

    Sample Address

    101

    Jump Host

    172.16.101.2

    102

    Certificate Authority, Active Directory, AAA

    172.16.102.2

    192.168.102.100

    103

    Field Network Director

    172.16.103.100

    192.168.103.100

    104

    Field Network Director - Database

    172.16.104.100

    192.168.104.100

    105

    DHCP Server

    172.16.105.100

    192.168.105.100

    106

    SCADA Server

    172.16.106.100

    192.168.106.100

    For example, 172.16.103.X represents the network connecting to FND. 172.16.107.X represents the network connecting to the SCADA server.

    Note: The third octet also signifies the VLAN used to connect to the corresponding component. For example, VLAN 103 is used for communication with the FND component and VLAN 107 is used for communication with the SCADA server component.

    DSO Control Center1: Addressing in the DMZ Network

    The topology in Figure 4 on the previous page shows that components that are located in the DMZ Network (reachable over WAN) include the following:

    blank.gifRegistration Authority (RA)

    blank.gifTunnel Provisioning Server (TPS)

    blank.gifHER Cluster—Cluster of ASR 1000 series of routers.

    CC1: Addressing in the Simulated DMZ Network with Engineering Lab Topology

    Table 3 and Table 4 capture the IPv4 and IPv6 addresses of the RA, TPS, and HER Cluster (represented in Figure 4) in the “Engineering Lab Topology”:

    Table 3 Control Center1—IPv4 and IPv6 Addressing—Simulated DMZ Network with Engineering Lab Topology

    Component Name

    Address Type (IPv4/IPv6)

    IP Address (with Engineering Lab Topology)

    Registration Authority

    IPv4

    10.10.100.241

    IPv6

    2001:db8:10:241::5921

    Tunnel Provisioning Server

    IPv4

    10.10.100.242

    IPv6

    2001:db8:10:242::242

    FAN-PHE-HER1

    IPv4

    10.10.100.101

    IPv6

    2001:DB8:1010:903::2

    FAN-PHE-HER2

    IPv4

    10.10.100.151

    IPv6

    2001:DB8:1010:903::5

    FAN-PHE-HER3

    IPv4

    10.10.100.152

    IPv6

    2001:DB8:1010:903::6

    Note: The Virtual IP for FAN-PHE-HER1, FAN-PHE-HER2, and FAN-PHE-HER3 is 10.10.100.150 in the Engineering Lab Topology.

    CC1: Addressing in the Real DMZ Network with Cisco DMZ Headend

    This section captures the addressing details of the control center components located in the real DMZ network.

    For security reasons, instead of referencing real Cisco DMZ IPv4 and IPv6 addresses, the following representations are used throughout this document:

    Table 4 Control Center1: IPv4 and IPv6 Addressing—Real DMZ Network with Cisco DMZ Headend

    DMZ Component

    Address Type

    Is represented in this document as:

    Registration Authority

    IPv4

    ra-ipv4.ipg.cisco.com

    IPv6

    ra-ipv6.ipg.cisco.com

    Tunnel Provisioning Server

    IPv4

    tps-ipv4.ipg.cisco.com

    IPv6

    tps-ipv6.ipg.cisco.com

    Headend Router 1

    IPv4

    her1-ipv4.ipg.cisco.com

    IPv6

    her1-ipv6.ipg.cisco.com

    Headend Router 2

    IPv4

    her2-ipv4.ipg.cisco.com

    IPv6

    her2-ipv6.ipg.cisco.com

    HER Cluster (Virtual IP)

    IPv4

    her-ipv4.ipg.cisco.com

    IPv6

    her-ipv6.ipg.cisco.com

    DSO Control Center1: Addressing in the Private Network

    Table 5 captures the addressing details of the components located in the Private Network of Control Center1:

    Table 5 DSO Control Center1: Addressing in the Private Network

    Component

    Address Type

    In Engineering Lab Topology

    In Cisco DMZ Headend

    CA/AD/AAA

    IPv4

    172.16.102.2

    192.168.102.100

    FND

    IPv4

    172.16.103.100

    192.168.103.100

    IPv6

    2001:db8:16:103::100

    2001:db8:192:168:103::100

    FND DB

    IPv4

    172.16.104.100

    192.168.104.100

    DHCP Server

    IPv4

    172.16.105.2

    192.168.105.100

    IPv6

    2001:db8:16:105::2

    2001:db8:192:168:105::100

    SCADA

    IPv4

    172.16.107.11

    192.168.107.11

    IPv6

    2001:db8:16:107::11

    2001:db8:192:168:107::11

    RA

    IPv4

    172.16.241.2

    192.168.102.75

    TPS

    IPv4

    172.16.242.242

    192.168.103.242

    IPv6

    2001:db8:16:242::242

    2001:db8:192:168:103::242

    HER1

    IPv4

    172.16.101.251
    172.16.102.251
    172.16.103.251
    172.16.104.251
    172.16.105.251
    172.16.107.251
    172.16.241.251
    172.16.242.251

    192.168.103.251 192.168.105.251

    IPv6

    2001:DB8:16:103::251 2001:DB8:16:105::251 2001:DB8:16:242::251

    2001:DB8:192:168:103::251
    2001:DB8:192:168:105::251

    HER2

    IPv4

    172.16.101.252
    172.16.102.252
    172.16.103.252
    172.16.104.252
    172.16.105.252
    172.16.107.252
    172.16.241.252
    172.16.242.252

    192.168.103.252 192.168.105.252

    IPv6

    2001:DB8:16:103::252 2001:DB8:16:105::252 2001:DB8:16:242::252

    2001:DB8:192:168:103::252 2001:DB8:192:168:105::252

    HER3

    IPv4

    172.16.101.253
    172.16.102.253
    172.16.103.253
    172.16.104.253
    172.16.105.253
    172.16.107.253
    172.16.241.253
    172.16.242.253

    N/A

    IPv6

    2001:DB8:16:103::253 2001:DB8:16:105::253 2001:DB8:16:242::253

    N/A

    HER Cluster (Virtual IP)

    IPv4

    172.16.101.1
    172.16.102.1
    172.16.103.1
    172.16.104.1
    172.16.105.1
    172.16.107.1
    172.16.241.1
    172.16.242.1

    192.168.103.75

    IPv6

    2001:DB8:16:103::1 2001:DB8:16:105::1 2001:DB8:16:242::1

    2001:DB8:192:168:103::75 2001:DB8:192:168:105::75

    NTP

    IPv4

    ntp.esl.cisco.com
    (Cisco’s NTP server)

    ntp.esl.cisco.com

    DNS

    IPv4

    Cisco’s DNS server

    Cisco’s DNS server

    Addressing in DSO Control Center2

    Either the Cisco ASR 1000 series of physical routers or CSR1000v series of virtual routers could be used to serve the role of headend routers (HERs). In high scale deployments, the ASR 1000 is recommended while CSR1000v might be sufficient for low scale deployment. Scale is a metric of the number of SSRs or DA Gateways that needs to be aggregated at the control center.

    The ASR 1000 has been validated as part of Control Center1 and CSR1000v has been validated as part of Control Center2.

    Figure 5 DSO Control Center 2—Implementation Topology

    \\

     

    379944.jpg

    The DSO Control Center2 is comprised of two types of networks:

    blank.gifDMZ Network:

    blank.gifSimulated DMZ in the Engineering Lab Topology

    blank.gifReal DMZ in the Cisco DMZ headend

    blank.gifPrivate Network

    DSO Control Center2: Addressing in the DMZ Network

    Similar to the DSO Control Center1, the DMZ Switch is the entry point of the WAN into the DSO Control Center2. The following components are located in the DMZ Network (reachable over WAN):

    blank.gifHER Cluster—implemented using CSR1000v series of virtual routers on UCS platform:

    blank.gifThe HER Cluster performs the role of aggregating the secure tunnels from the DA Gateways and SSRs and provides connectivity to the SCADA server and other application servers.

    CC2: Addressing in the Simulated DMZ Network with Engineering Lab Topology

    Table 6 and Table 7 capture the IPv4 and IPv6 addresses of the HER Cluster with the instance of the solution validation topology positioned in the Engineering Lab Topology:

    Table 6 CC2—IPv4 and IPv6 Addressing—DMZ Network with Engineering Lab Topology

    Component Name

    Address Type (IPv4/IPv6)

    IP Address (With Engineering Lab Topology)

    CC2-HER1

    IPv4

    10.10.101.101

    IPv6

    2001:DB8:1011:903::2

    CC2-HER2

    IPv4

    10.10.101.102

    IPv6

    2001:DB8:1011:903::5

    CC2-HER3

    IPv4

    10.10.101.103

    IPv6

    2001:DB8:1011:903::6

    Note: The Virtual IP for HER1, HER2, and HER3 is 10.10.101.100 in the Engineering Lab Topology.

    CC2: Addressing in the Real DMZ Network with Cisco DMZ Headend

    Table 7 captures the addressing details of the Control Center2 components located in the real DMZ network. For security reasons, instead of referencing real Cisco DMZ IPv4 and IPv6 addresses, the following representations are used throughout this document:

    Table 7 CC2—IPv4 and IPv6 Addressing—Real DMZ Network with Cisco DMZ Headend

    DMZ Component

    Address Type

    Is represented in this document as:

    Head End Router1

    IPv4

    cc2-her1-ipv4.ipg.cisco.com

    IPv6

    cc2-her1-ipv6.ipg.cisco.com

    Head End Router2

    IPv4

    cc2-her2-ipv4.ipg.cisco.com

    IPv6

    cc2-her2-ipv6.ipg.cisco.com

    HER Cluster (Virtual IP)

    IPv4

    cc2-her-ipv4.ipg.cisco.com

    IPv6

    cc2-her-ipv6.ipg.cisco.com

    DSO Control Center2: Addressing in the Private Network

    Table 8 captures the addressing details of the components located in the Private Network of the Control Center2:

    Table 8 DSO Control Center2—Addressing in the Private Network

    Component

    Address Type

    In Engineering Lab Topology

    In Cisco DMZ Headend

    SCADA

    IPv4

    172.17.107.11

    192.168.117.11

    IPv6

    2001:db8:17:107::11

    2001:db8:192:168:117::11

    HER1

    IPv4

    172.17.107.251

    192.168.117.251

    IPv6

    2001:DB8:17:107::251

    2001:DB8:192:168:117::251

    HER2

    IPv4

    172.17.107.252

    192.168.117.252

    IPv6

    2001:DB8:17:107::252

    2001:DB8:192:168:117::252

    HER3

    IPv4

    172.17.107.253

    N/A

    IPv6

    2001:DB8:17:107::253

    N/A

    HER Cluster
    (Virtual IP)

    IPv4

    172.17.107.1

    192.168.117.75

    IPv6

    2001:DB8:17:107::1

    2001:DB8:192:168:117::75

    NTP

    IPv4

    ntp.esl.cisco.com
    (Cisco’s NTP server)

    ntp.esl.cisco.com

    DNS

    IPv4

    Cisco’s DNS server

    Cisco’s DNS server

    IoT Gateway Onboarding and Management

    This chapter includes the following major topics:

    blank.gifTwo Logical Categories of Tunnel Provisioning Server/Field Network Director

    blank.gifBootstrapping of the IoT Gateway

    blank.gifDeployment of the Cisco IoT Gateway

    blank.gifBootstrapping and ZTD of the Cisco IoT Gateway at the Deployment Location

    blank.gifIoT Gateway Validation Matrix

    This chapter corresponds to the “Zero Touch Onboarding of Cisco IOS Routers” chapter in the Distribution Automation - Secondary Substation Design Guide. Field Network Director (FND) is used as the NMS in this solution.

    IoT Gateway Onboarding has been made very simple:

    1.blank.gif The brand new IoT Gateway could be unpacked from the box.

    2.blank.gif It could be subjected to bootstrapping using plug-and-play (PnP) infrastructure.

    3.blank.gif After bootstrapping, the IoT Gateway could be powered off and deployed at the desired deployment location. In some cases, bootstrapping could occur directly out of the deployment location itself.

    4.blank.gif When powered on, ZTD then happens with the IoT Gateway.

    5.blank.gif As a result, the device could be made fully operational with zero manual configuration.

    As part of IoT Gateway onboarding with ZTD, the IoT Gateways are registered with the FND. From that point onwards, the FND located in the Control Center could be used to remotely monitor/manage/troubleshoot the IoT Gateways (which are spread across the entire Distribution Automation Network) and the Secondary Substations.

    This process has three phases:

    1.blank.gif Bootstrapping of the IoT Gateway

    2.blank.gif Deployment of the IoT Gateway

    3.blank.gif Remote Monitoring/Management/Troubleshooting of the IoT Gateway.

    The design guide talks about the following two different approaches for bootstrapping versus deployment of the IoT Gateway:

    blank.gifApproach 1—IoT Gateway Bootstrapped in staging location, deployed in a different location

    blank.gifApproach 2—IoT Gateway Bootstrapped straight out of deployed location

    Both approaches are now supported by Cisco IoT Gateways and this guide supports both the approaches.

    With Approach 1, bootstrapping of the IoT Gateways is done at the dedicated staging location. Once the devices are bootstrapped successfully, they are powered off and transported to the final deployment locations, where the devices are deployed and powered on.

    With Approach 2, bootstrapping of the IOT Gateways is done at the deployment location. Once the devices are bootstrapped successfully, the ZTD process begins and no manual intervention is required,

    Two Logical Categories of Tunnel Provisioning Server/Field Network Director

    Bootstrapping TPS/FND

    The TPS/FND located in the staging/bootstrapping environment that helps with PnP bootstrapping of the IoT Gateways is referred to as bootstrapping TPS and bootstrapping FND.

    Network Operating Center TPS/FND

    The TPS/FND located in the NOC/Control Center environment that helps with ZTD of IoT Gateways is referred to as the NOC or Control Center TPS/FND. This TPS/FND located in the DSO Control Center helps with management of the IoT Gateways.

    Note: The bootstrapping TPS/FND could be the same as or different from the NOC TPS/FND depending upon the chosen approach. With Approach 1, two different pairs of TPS/FND have been implemented. They are referred to as:

    blank.gifBootstrapping TPS/FND

    blank.gifNOC TPS/FND

    With Approach 2, the same pair of TPS/FND serves the purpose of bootstrapping TPS/FND and NOC TPS/FND.

    For general implementation of TPS/FND, please refer to the detailed steps covered in the following sections of the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases guide:

    blank.gifImplementing Tunnel Provisioning Server

    blank.gifImplementing Field Network Director

    The Cisco IoT Field Network Director Installation Guide could also be referred to for implementation of TPS/FND.

    Note: This guide focuses on the implementation details for enhancing the TPS/FND servers to also serve the functionality of Bootstrapping TPS and Bootstrapping FND.

    Note: Please refer to the “Certificate/Considerations for PnP and ZTD section in the Distribution Automation - Secondary Substation Design Guide for Common Name and Subject Alternate Name requirements while creating certificates for the Bootstrapping TPS/FND and NOC TPS/FND.

    Bootstrapping of the IoT Gateway

    Bootstrapping can also be referred to with the following terminology:

    blank.gifDay 0 provisioning

    blank.gifZTD staging

    blank.gifPnP staging

    blank.gifApplication of manufacturing configuration onto IoT Gateway

    blank.gifGeneration of Express Configuration

    On the bootstrapping FND, import the bootstrapping csv file and then assign the IoT Gateways to the correct bootstrapping group. Bootstrapping will occur automatically when the IoT gateway is powered on.

    Note: To bootstrap the IoT Gateway, in the case of Approach 1, just connect the IoT Gateway to the Ethernet PnP Staging switch, and then power it on. In the case of Approach 2, just insert the LTE SIM cards (or connect the Ethernet link) with internet access on the IoT Gateway and power it on.

    Bootstrapping is achieved with the help of the Cisco Network PnP solution. This section focuses on building the infrastructure required for bootstrapping to happen. The “Cisco Network PnP - Available Methods” section of the Design Guide discusses multiple methods for PnP server discovery. Three PnP server discovery methods, which have been implemented as part of this guide, are:

    blank.gifPnP server discovery through Cisco PnP Connect—validated with Approach 2

    blank.gifPnP server discovery through DHCP server—validated with Approach 1

    blank.gifPnP server discovery through manual PnP profile—validated with Approach 1

    Preparing the Bootstrapping Infrastructure

    The bootstrapping infrastructure, which involves multiple actors, is captured in Table 9:

    Table 9 Actors in the Bootstrapping Infrastructure

    Actor

    Name

    Description

    PnP Agent

    IoT Gateway

    Responsible for initiating the bootstrapping request. This agent comes by default with the latest release of Cisco IOS. No implementation is required.

    PnP agent on IoT Gateway must be supporting the following PnP services:

    1.blank.gif Certificate Install service

    2.blank.gif File Transfer service

    3.blank.gif CLI – Exec service

    4.blank.gif CLI – Configuration service

    PnP Server Information Provider

    DHCP server or DNS server or Cloud Redirection Server

    The IoT Gateway must somehow learn the details of the PnP server (also called a Bootstrapping server). This could be learnt dynamically or manually.

    blank.gifDynamic approaches, in which any of the following actors provides the PnP server detail:

    blank.gifDHCP server

    blank.gifDNS server

    blank.gifCisco PnP Cloud Redirection Service

    blank.gifManual approach, in which the PnP server detail is configured manually in the profile:

    blank.gifCustom PnP server profile configuration.

    PnP Proxy

    Tunnel Provisioning Server

    Responsible for mediating the bootstrapping request between the IoT Gateway and the FND.

    Optional but highly recommended. This component has been implemented in this guide, since it is highly recommended.

    Acts as PnP server for the IoT Gateway and proxies the incoming request from IoT Gateway to the PnP server.

    PnP Server

    Field Network Director

    Responsible for processing the bootstrapping request.

    PnP server receives the communication from the PnP Proxy.

    PnP server is responsible for provisioning the day 0 configuration on the IoT gateway. The required day 0 configuration (also called as bootstrapping configuration) could be created as a Template in FND.

    This section is discussed in the following phases:

    blank.gifPrerequisites

    blank.gifCertificate Creation and Installation

    blank.gifInstallation of Bootstrapping TPS

    blank.gifInstallation of Bootstrapping FND

    blank.gifConfiguration of Bootstrapping TPS

    blank.gifConfiguration of Bootstrapping FND

    Prerequisites

    Prerequisites include the following:

    blank.gifTPS and FND server must be up and running.

    blank.gifThis section focuses only on the incremental portions to make the regular TPS/FND as bootstrapping TPS/FND.

    blank.gifRouting reachability over IPv4 and/or IPv6 networks from IoT Gateways to TPS.

    blank.gifRouting reachability between TPS and FND.

    Certificate Creation and Installation

    This section captures the parameters that need to be considered while creating the certificate for the TPS (PnP Proxy) and FND (PnP server).

    Note: For detailed instructions about certificate creation, please refer to the section “Creation of Certificate Templates and Certificates” of the Cisco FAN-Headend Deep Dive Guide at the following URL:

    blank.gif https://salesconnect.cisco.com/#/content-detail/da249429-ec79-49fc-9471-0ec859e83872

    Implementation and FAN Use Cases are available under Cisco SalesConnect.

    Certificate Creation for Bootstrapping TPS

    The certificate for the TPS must be created with both the Subject Name and the Subject Alternative Name fields populated.

    Figure 6 TPS Certificate Parameters for PnP Bootstrapping

     

    257123.jpg

    The Subject Name is the Common Name that must be set to the FQDN of the PnP Proxy.

    The Subject Alternative Name must be set to the FQDN of the PnP Proxy, along with the optional IP address. The Subject Alternative Name is required for PnP to work.

    The enrolled certificate is exported as PnP-TPS.pfx and is protected with a password.

    Certificate Creation for Bootstrapping FND

    The FND certificate must be created with both the Subject Name and Subject Alternative Name fields populated.

    Figure 7 FND Certificate Parameters for FND Bootstrapping

     

    257119.jpg

    The Subject Name is the Common Name that must be set to the FQDN of the PnP Server.

    The Subject Alternative Name must be set to the FQDN of the PnP Server, along with the optional IP address. The Subject Alternative Name is required for PnP to work.

    The enrolled certificate is exported as PnP-FND.pfx and is protected with a password.

    Installation of Bootstrapping TPS

    The bootstrapping procedure in this implementation considers the use of TPS as PnP Proxy.

    Note: As TPS is used in this implementation, TPS would represent itself as the PnP server for the IoT Gateways. Therefore, TPS is referred to as the PnP Proxy.

    For installation of TPS, please refer to the detailed steps covered under the section “Implementing Tunnel Provisioning Server” of the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases guide at the following URL:

    blank.gif https://salesconnect.cisco.com/#/content-detail/da249429-ec79-49fc-9471-0ec859e83872

    TPS Certificate Installation on the Bootstrapping TPS

    For installation of the certificate on the Bootstrapping TPS, please refer to the detailed steps covered under the section
    “Certificate Enrollment Phase for TPS Proxy Server” of the Cisco FAN - Headend Deep Dive Implementation and FAN Use Cases Guide.

    Note: Please use PnP-TPS.pfx instead of TPS.pfx while enrolling the certificate on the TPS.

    Following are the crisp steps:

    # To view the content of the “Pnp-TPS.pfx” certificate:

    keytool -list -v -keystore PnP-TPS.pfx -storetype pkcs12
     
    <- Enter the password configured during certificate export. Note down the alias name (for example: le-custom_rsa_template- 5090cdbf-2ff8-4ec2-9a97-7b77a3d77912)
     

    # To import the certificate:

    keytool -importkeystore -v -srckeystore PnP-TPS.pfx -destkeystore cgms_keystore -srcstoretype pkcs12 -deststoretype jks -destalias cgms
    -destkeypass 'Password_Protecting_Keystore_in_TPS'-srcalias le- custom_rsa_template-5090cdbf-2ff8-4ec2-9a97-7b77a3d77912

    Cisco SUDI Certificate Installation on the Bootstrapping TPS

    Cisco SUDI CA can be installed into the cgms_keystore of TPS using the following command:

    keytool -importcert -trustcacerts \
    -file cisco-sudi-ca.pem \
    -keystore cgms_keystore \
    -alias sudi
     

    The Cisco SUDI CA file “cisco-sudi-ca.pem” can be fetched from the FND.

    Installation of Bootstrapping FND

    For installation of FND, please refer to the detailed steps covered under the section “Implementing Field Network Director” of the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases Guide at the following URL:

    blank.gif https://salesconnect.cisco.com/#/content-detail/da249429-ec79-49fc-9471-0ec859e83872

    FND Certificate Installation on the Bootstrapping FND

    For installation of certificate on the Bootstrapping FND, please refer to the detailed steps covered under the section “Certificate Enrollment onto FND's Keystore” of the Cisco FAN Headend Deep Dive Implementation and FAN Use Cases Guide.

    Note: Please use PnP-FND.pfx instead of FND.pfx while enrolling the certificate on the FND.

    Cisco SUDI Certificate Installation on the Bootstrapping FND

    Cisco SUDI CA can be installed into the cgms_keystore of FND using the following command:

    keytool -importcert -trustcacerts \
    -file /opt/cgms/server/cgms/conf/ciscosudi/cisco-sudi-ca.pem \
    -keystore cgms_keystore -alias sudi

    Configuration of Bootstrapping TPS

    This section covers the configuration steps and the final verification steps on the TPS.

    TPS Proxy Properties Configuration

    TPS Proxy Properties file needs to be configured with the following details:

    blank.gifinbound-bsproxy-destination: Address to which the bootstrapping requests be forwarded.

    blank.gifenable-bootstrap-service: Is bootstrapping service enabled/disabled?

    blank.gifbootstrap-proxy-listen-port: Port on which the PnP Proxy must be listening for processing bootstrapping requests (default port is 9125).

    [root@tps-san ~]# cat /opt/cgms-tpsproxy/conf/tpsproxy.properties
     
    ## Configuration created as part of regular TPS installation. inbound-proxy-destination=https://fnd-san.ipg.cisco.com:9120 outbound-proxy-allowed-addresses=fnd-san.ipg.cisco.com
    cgms-keystore-password-hidden=7jlXPniVpMvat+TrDWqh1w==
     
    ## Configuration required for Bootstrapping.
    inbound-bsproxy-destination=http://fnd-san.ipg.cisco.com:9125
    enable-bootstrap-service=true
    bootstrap-proxy-listen-port=9125
    [root@tps-san ~]#
     

    Name resolution entries have to be present for FND FQDN in the /etc/hosts file.

    Mandatory Verification Checks on TPS Proxy

    The verification checks include the following:

    blank.gifFND FQDN entry in /etc/hosts.

    blank.gifTPS must have three certificates installed into the cgms_keystore:

    blank.gifCertificate signed by Utility PKI for TPS (with private key)

    blank.gifPublic Certificate of the Utility PKI CA server

    blank.gifPublic Certificate of the Cisco SUDI CA

    blank.gifHostname consistency with the certificate.

    blank.gifThere shouldn't be any unreachable name servers in /etc/resolv.conf.

    blank.gifNTP daemon should be running. Time should be synchronized.

    blank.gifNecessary firewall ports must have been opened up, if the firewall/iptables/ip6tables are enabled:

    blank.gifTCP Port 9125 to process http communication

    blank.gifTCP port 9120 to process https communication

    FND FQDN entry in /etc/hosts:

    [root@tps-san ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4
    localhost4.localdomain4 tps-san.ipg.cisco.com
     
    ::1 localhost localhost.localdomain localhost6
    localhost6.localdomain6 tps-san.ipg.cisco.com
     
    172.16.103.243 fnd-san.ipg.cisco.com
    2001:db8:16:103::128 fnd-san.ipg.cisco.com
     
    [root@tps-san ~]#
     

    TPS must have three certificates installed into the cgms_keystore:

    blank.gifThe certificate entry 'root' represents the Utility PKI CA certificate.

    blank.gifThe certificate entry 'sudi' represents the Cisco SUDI CA certificate.

    blank.gifThe certificate entry 'cgms' represents the private certificate of the TPS server signed by the (custom) Utility PKI CA server.

    keytool -list -keystore /opt/cgms-tpsproxy/conf/cgms_keystore:

    Enter keystore password:
     
    ***************** WARNING WARNING WARNING *****************
    * The integrity of the information stored in your keystore *
    * has NOT been verified! In order to verify its integrity, *
    * you must provide your keystore password. *
    ***************** WARNING WARNING WARNING *****************
     
    Keystore type: JKS Keystore provider: SUN
     
    Your keystore contains 3 entries
     
    root, Jun 4, 2017, trustedCertEntry,
    Certificate fingerprint (SHA1):
    CF:A2:61:30:29:B1:1E:46:14:30:A2:DC:5F:62:41:47:CC:EE:64:69
    sudi, Jul 11, 2018, trustedCertEntry,
    Certificate fingerprint (SHA1):
    F6:96:9B:BD:48:E5:F6:12:5B:93:4D:01:E7:1F:E9:C2:7C:6F:54:7E
    cgms, Oct 5, 2018, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    B7:2A:74:61:53:74:73:65:2D:61:98:EC:69:09:93:4A:E2:D0:E5:6F
    [root@tps-san ~]#
     

    Hostname should match certificate Common Name/SAN:

    [root@tps-san ~]# hostname
    tps-san.ipg.cisco.com
    [root@tps-san ~]#
     
    [root@tps-san ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=tps-san.ipg.cisco.com
    GATEWAY=172.16.242.1
    NTPSERVERARGS=iburst
    [root@tps-san ~]#
     
    [root@tps-san ~]# keytool -list -keystore /opt/cgms-
    tpsproxy/conf/cgms_keystore -alias cgms -v | grep "CN="
    Enter keystore password: [press Enter]
    <.. removed for clarity..>
    Owner: CN=tps-san.ipg.cisco.com, O=Cisco Systems Inc
    Issuer: CN=IPG-RSA-ROOT-CA, DC=ipg, DC=cisco, DC=com
    <.. removed for clarity..>
     
    [root@tps-san ~]#
     

    No unreachable name servers should exist. Either the name servers should be present and reachable or they should be empty. Any unreachable name server address entry must be taken care of or removed under the network interface configuration.

    [root@tps-san ~]# cat /etc/resolv.conf #
    Generated by NetworkManager
    search ipg.cisco.com
     
     
    # No nameservers found; try putting DNS servers into your
    # ifcfg files in /etc/sysconfig/network-scripts like so:
    #
    # DNS1=xxx.xxx.xxx.xxx # DNS2=xxx.xxx.xxx.xxx
    # DOMAIN=lab.foo.com bar.foo.com
    [root@tps-san ~]#
     

    NTP daemon should be running. Time should be synchronized:

    [root@tps-san ~]# ntpstat
    synchronised to NTP server (172.16.242.1) at stratum 6
    time correct to within 27 ms
    polling server every 1024 s
    [root@tps-san ~]#
     

    Note: The TPS server should be time synchronized. Otherwise, the https communication from the IoT Gateway might not reach the TPS Proxy Application.

    Configuration of Bootstrapping FND

    This section covers the configuration steps and the final verification steps on the FND.

    CGMS Properties Configuration

    The CGMS Properties file needs to be configured with the following details:

    blank.gifproxy-bootstrap-ip: Address of the PnP Proxy from which the bootstrapping requests are processed

    blank.gifenable-bootstrap-service: Enable/Disable the bootstrapping service

    blank.gifbootstrap-fnd-alias: The trust point alias to be used during bootstrapping of the IoT Gateway

    blank.gifca-fingerprint: fingerprint of the 'root' trustpoint

    [root@fnd-san conf]# cat /opt/cgms/server/cgms/conf/cgms.properties
     
    ## Configuration created as part of regular FND installation. cgms-keystore-password-hidden=7jlXPniVpMvat+TrDWqh1w==
    cgdm-tpsproxy-addr=tps-san.ipg.cisco.com
    cgdm-tpsproxy-subject=CN="tps-san.ipg.cisco.com", O="Cisco Systems Inc"
     
    ## Configuration required for Bootstrapping.
     
    enable-bootstrap-service=true
    proxy-bootstrap-IP=<Cisco DMZ IP>
    bootstrap-fnd-alias=root
    ca-fingerprint=CFA2613029B11E461430A2DC5F624147CCEE6469
     
    [root@fnd-san conf]#
     

    Name resolution entries have to be present for TPS FQDN in the /etc/hosts file.

    The IOT gateway should be able to communicate with the value given against the proxy-bootstrap-ip. IF IPv4 is used, it must be reachable from the IOT gateway. If FQDN is used, it must be DNS resolvable and reachable from the IoT gateway.

    Mandatory Verification Checks on FND

    Verification checks include the following:

    blank.gifTPS FQDN entry in the /etc/hosts file.

    blank.gifFND must have three certificates installed into the cgms_keystore:

    blank.gifCertificate signed by Utility PKI for FND (with private key)

    blank.gifPublic Certificate of the Utility PKI CA server

    blank.gifPublic Certificate of the Cisco SUDI CA

    blank.gifHostname must be consistent with the certificate.

    blank.gifNo unreachable name servers in /etc/resolv.conf should exist.

    blank.gifNTP daemon should be running. Time should be synchronized.

    blank.gifNecessary firewall ports must have been opened up if the firewall/iptables/ip6tables are enabled:

    blank.gifTCP Port 9125 to process http communication

    blank.gifTCP port 9120 to process https communication

    TPS/FND FQDN entry in the /etc/hosts file:

    [root@tps-san ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4
    localhost4.localdomain4 fnd-san.ipg.cisco.com
    ::1 localhost localhost.localdomain localhost6
    localhost6.localdomain6 fnd-san.ipg.cisco.com
     
    172.16.104.244 fnddb.ipg.cisco.com
    172.16.242.2 tps-san.ipg.cisco.com
    2001:db8:16:242::128 tps-san.ipg.cisco.com
    [root@tps-san ~]#
     

    FND must have three certificates installed into the cgms_keystore:

    blank.gifThe certificate entry 'root' represents the Utility PKI CA certificate.

    blank.gifThe certificate entry 'sudi' represents the Cisco SUDI CA certificate.

    blank.gifThe certificate entry 'cgms' represents the private certificate of the FND server signed by the (custom) Utility PKI CA server.

    keytool -list -keystore /opt/cgms/server/cgms/conf/cgms_keystore
    Enter keystore password:
     
    ***************** WARNING WARNING WARNING *****************
    * The integrity of the information stored in your keystore *
    * has NOT been verified! In order to verify its integrity, *
     
    * you must provide your keystore password. *
    ***************** WARNING WARNING WARNING *****************
     
    Keystore type: JKS Keystore provider: SUN
     
    Your keystore contains 4 entries
     
    root, Apr 5, 2018, trustedCertEntry,
    Certificate fingerprint (SHA1):
    CF:A2:61:30:29:B1:1E:46:14:30:A2:DC:5F:62:41:47:CC:EE:64:69
    sudi, Jul 11, 2018, trustedCertEntry,
    Certificate fingerprint (SHA1):
    F6:96:9B:BD:48:E5:F6:12:5B:93:4D:01:E7:1F:E9:C2:7C:6F:54:7E
    cgms, Oct 5, 2018, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    F4:99:72:8E:BA:24:25:8A:1D:23:9B:B6:B1:99:EA:FD:12:9E:A7:34
    You have mail in /var/spool/mail/root
    [root@fnd-san conf]#
     

    Hostname should match the certificate Common Name/SAN:

    [root@fnd-san conf]# hostname
    fnd-san.ipg.cisco.com
    [root@fnd-san conf]#
     
    [root@fnd-san conf]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=fnd-san.ipg.cisco.com
    NTPSERVERARGS=iburst
    [root@fnd-san conf]#
     
    [root@fnd-san conf]# keytool -list -keystore
    /opt/cgms/server/cgms/conf/cgms_keystore -v -alias cgms | grep CN=
    Enter keystore password: [press Enter]
     
    <.. removed for clarity..>
    Owner: CN=fnd-san.ipg.cisco.com, O=Cisco Systems Inc
    Issuer: CN=IPG-RSA-ROOT-CA, DC=ipg, DC=cisco, DC=com
    <.. removed for clarity..>
    [root@fnd-san conf]#
     

    No unreachable name servers should exist. Either the name servers should be present and reachable or they should be empty. Any unreachable name server address entry must be taken care or removed under the network interface configuration:

    [root@fnd-san conf]# cat /etc/resolv.conf
    # Generated by NetworkManager
    search ipg.cisco.com
     
    # No nameservers found; try putting DNS servers into your
    # ifcfg files in /etc/sysconfig/network-scripts like so: #
    # DNS1=xxx.xxx.xxx.xxx
    # DNS2=xxx.xxx.xxx.xxx
    # DOMAIN=lab.foo.com bar.foo.com
    [root@fnd-san conf]#
     

    NTP daemon should be running. Time should be synchronized:

    [root@fnd-san conf]# ntpstat
    synchronised to NTP server (172.16.103.1) at stratum 6
    time correct to within 45 ms
    polling server every 1024 s
    [root@fnd-san conf]#
     

    Note: The FND server should be time synchronized. Otherwise, the https communication from the IoT Gateway might not reach the FND (cgms) application.

    Csv File Import on FND GUI

    A sample csv file that can be imported into FND for bootstrapping of IoT Gateway is shown below:

    deviceType,eid,tunnelSrcInterface1,adminUsername,adminPassword,hostnameF
    orBs,domainname,bootimage
    ir800,IR807G-LTE-GA-K9+FCW2231004T,FastEthernet0,cg-nms- administrator,<encrypted_pwd>,IR807_BS1,ipg.cisco.com,flash:/ir800l-
    universalk9-mz.SPA.157-3.M2.bin
    ir1100,IR1101-K9+FCW222700K0,GigabitEthernet0/0/0,cg-nms- administrator,<encrypted_pwd>,IR1100_FCW222700K0,ipg.cisco.com,flash:/
    ir 1101-universalk9.BLD_V1610_1_THROTTLE_LATEST_20181029_041528.SSA.bin
    cgr1000,CGR1120/K9+JAD191601KT,GigabitEthernet2/1,cg-nms- administrator,<encrypted_pwd>,CGR1K_BS1,ipg.cisco.com,flash:/managed/ima ges/cgr1000-universalk9-mz.SPA.157-3.M2
    ir800,IR829GW-LTE-GA-EK9+FGL195024PP,Vlan1,cg-nms-
    administrator,<encrypted_pwd>,IR829_FGL195024PP,ipg.cisco.com,flash:/ir8
    00-universalk9-mz.SPA.157-3.M3
    ir800,IR809G-LTE-GA-K9+JMX1941X00B,GigabitEthernet0,cg-nms-
    administrator,<encrypted_pwd>,IR809_ JMX1941X00B,
    ipg.cisco.com,flash:/ir800-universalk9-mz.SPA.157-3.M3

     

    Table 10 Fields of the IoT Gateway Bootstrapping csv File

    Parameter

    Name

    Parameter Value Explanation

    deviceType
    ir1100
    Helps identify the type of device; for example:
    ir800
    cgr1000
    ir1100
    eid
    IR1101-K9+FCW222700K0
    Unique network element identifier for the device.
    tunnelSrcInterface1
    GigabitEthernet0/0/0
    Name of the WAN interface that the FAR would use to reach the Headend.
    adminUsername
    cg-nms-administrator
    Username that FND must use to interact with the IoT Gateway.
    adminPassword
    <encrypted_pwd>
    Password in encrypted form. An unencrypted form of this password would be used by the FND to interact with the FAR.
    hostnameForBs
    IR1100_FCW222700K0
    Hostname for bootstrapping.
    domainname
    ipg.cisco.com
    Domain name for the bootstrapped router.
    bootimage
    flash:/ir1101-universalk9.SSA.bin
    Boot image name.

    Obtain the <encrypted_pwd> for the adminPassword field using the following step (from FND Linux shell prompt):

    /opt/cgms-tools/bin/signature-tool encrypt /opt/cgms/server/cgms/conf/cgms_keystore password-file.txt

    For more details, please refer to the following URL:

    blank.gif https://www.cisco.com/c/en/us/support/docs/cloud-systems-management/iot-field-network-director/210446-Prepare-csv-Comma-Separated-Value-fil.html

    Figure 8 Bootstrapping CSV Import at Bootstrapping FND

     

    379957.jpg

    In bootstrapping FND, from Devices > Field Devices, click Router in the left pane, click the Inventory tab on the middle pane, click Add Devices, browse the csv file created in the previous step, and then click Add to import the IoT Gateway CSV list into the bootstrapping FND.

    PnP Server Discovery through DHCP and Bootstrapping

    This section is discussed in the following phases:

    blank.gifPrerequisites

    blank.gifBootstrapping in the IPv4 Network

    blank.gifBootstrapping in the IPv6 Network

    blank.gifLogical Call Flow

    Prerequisites

    PnP Proxy must be reachable either over the LAN or over the WAN/Internet. As TPS is used in this implementation, TPS acts as the PnP server for the IoT Gateways. The DHCP server advertises TPS details in place of the PnP server details.

    Bootstrapping in the IPv4 Network

    This section discusses the DHCP server-assisted bootstrapping of the IoT Gateways over the IPv4 network.

    In Figure 9, IoT Gateways obtain the IP address dynamically from the DHCP server along with details of the PnP server (which, in this case, is actually that of PnP Proxy, as TPS is deployed).

    blank.gifThe PnP server details are received using DHCP option 43.

    blank.gifThe PnP agent (residing on the IoT Gateway) then reaches out to PnP Proxy over IPv4 LAN/WAN network over http on port 9125 and then over https on port 9120.

    Figure 9 DHCP Server-Assisted Bootstrapping of IoT Gateways over IPv4 Network

     

    379971.jpg

    Bootstrapping in the IPv6 Network

    This section discusses the DHCP server-assisted bootstrapping of the IoT Gateways over the IPv6 network.

    In Figure 10:

    blank.gifIoT Gateways obtains the IP address dynamically from the DHCP server along with details of the PnP server (which, in this case, is actually that of PnP Proxy, as TPS is deployed).

    blank.gifThe PnP server details are received using DHCP option 9.

    blank.gifThe PnP agent (residing on the IoT Gateway) then reaches out to PnP Proxy over IPv6 LAN/WAN network over http on port 9125 and then over https on port 9120.

    Figure 10 DHCP Server-Assisted Bootstrapping of IoT Gateways over IPv6 Network

     

    379972.jpg

    Logical Call Flow

    This section discusses the logical call flow sequence with the DHCP server-assisted bootstrapping of the IoT Gateways over the IPv4/IPv6 network.

    The actors shown in Figure 10 are the following:

    blank.gifPnP Agent (IoT Gateway)

    blank.gifDHCP Server

    blank.gifDNS Server

    blank.gifPnP Proxy (TPS)

    blank.gifPnP Server (FND)

    Figure 11 DHCP Server-Assisted Bootstrapping of IoT Gateways—Logical Call Flow

     

    379973.jpg

    1.blank.gif When the IoT Gateway is powered on, the PnP Agent on the IoT Gateway checks for the presence of the startup configuration. If the startup configuration is not found, then the PnP agent performs “no shut” on all the interfaces and enables DHCP on all of them.

    2.blank.gif The IOS on the IoT Gateway sends out a DHCP request, which reaches the DHCP server (either directly or with the help of DHCP relay agent).

    3.blank.gif The DHCP server responds back with the IPv4 address along with option 43, or the IPv6 address along with option 9. The option contains the FQDN of the PnP server to talk to (for example, tps-san.ipg.cisco.com) and the port number (for example, 9125) on which the PnP Proxy/Server is expected to be listening. The PnP server detail advertised as part of the DHCP option is the IP address of the PnP Proxy instead of the actual PnP server (with TPS deployed as part of the solution).

    4.blank.gif The IoT Gateway then sends out a name resolution request to DNS server to resolve the FQDN to its corresponding IPv4/IPv6 address.

    5.blank.gif The PnP Agent attempts its communication with the PnP Proxy over port 9125 (over http). PnP Proxy, in turn, communicates with the FND on port 9125. Bootstrapping begins at the FND from this point. The prerequisite to processing this bootstrapping request from the IoT Gateway is the addition of IoT Gateway details into the FND with the loading of the csv file, and placing the IoT gateway under the respective “Tunnel Group” on FND (which contains the bootstrapping template under the Router Bootstrap Configuration tab).

    6.blank.gif The FND installs the trust point on the IoT Gateway.

    7.blank.gif The IoT Gateway sends out a Get CA Certificate request to PnP Proxy, which, in turn, proxies the communication to the FND. The FND would respond back with the CA certificate of the FND's trust point, which would then be installed on the IoT Gateway.

    The following PnP States would have transitioned at the FND:

    blank.gifCONFIGURING_HTTP_FOR_SUDI

    blank.gifCONFIGURED_HTTP_FOR_SUDI

    blank.gifCREATING_FND_TRUSTPOINT

    blank.gifAUTHENTICATING_WITH_CA

    blank.gifAUTHENTICATED_WITH_CA

    8.blank.gif From this point onwards, the further communication switches over to https on port 9120. The IoT Gateway would communicate with the TPS IP on port 9120, which, in turn, is sent to the FND IP on port 9120. The rest of the IoT Gateway bootstrapping happens over this secure https communication established on port 9120.

    Note: Since the communication is over https, time synchronization and certificate parameters matching must be addressed:

    blank.gifFor example, if https://<TPS_FQDN>:9120 is attempted, then the certificate installed on the TPS must have CN/SAN configured with <TPS_FQDN>.

    blank.gifSimilarly, if the https://<TPS_IP>:9120 is attempted, then the certificate installed on the TPS must also have CN/SAN configured with <TPS_IP>. Otherwise, SSL failure might occur and the https message from IoT Gateway might not reach the TPS Proxy Application on port 9120.

    FND would transition through the following PnP states while the bootstrapping progresses:

    blank.gifUPDATING_ODM

    blank.gifUPDATING_ODM_VERIFY_HASH

    blank.gifUPDATED_ODM

    blank.gifCOLLECTING_INVENTORY

    blank.gifCOLLECTED_INVENTORY

    blank.gifVALIDATING_CONFIGURATION

    blank.gifVALIDATED_CONFIGURATION

    blank.gifPUSHING_BOOTSTRAP_CONFIG_FILE

    blank.gifPUSHING_BOOTSTRAP_CONFIG_VERIFY_HASH

    blank.gifPUSHED_BOOTSTRAP_CONFIG_FILE

    blank.gifCONFIGURING_STARTUP_CONFIG

    blank.gifCONFIGURED_STARTUP_CONFIG

    blank.gifAPPLYING_CONFIG

    blank.gifAPPLIED_CONFIG

    blank.gifTERMINATING_BS_PROFILE

    blank.gifBOOTSTRAP_DONE

    9.blank.gif Bootstrapping would be complete with the “BOOTSTRAP_DONE” PnP State.

    PnP Server Definition through Manual PnP Profile and Bootstrapping

    This section is discussed in the following phases:

    blank.gifPrerequisites

    blank.gifBootstrapping over IPv4 Network

    blank.gifBootstrapping over IPv6 Network

    blank.gifLogical Call Flow

    As a gateway of last resort, if dynamic ways of learning the PnP Server are not an option, an option does exist to enable learning about the PnP server with minimal manual configuration.

    Manual PnP profile configuration with PnP server details:

    !
    ip host tps-san.ipg.cisco.com 172.16.242.2
    !
    pnp profile fnd-pnp-profile
    transport http host tps-san.ipg.cisco.com port 9125
    !
     

    Note: Only the PnP Server detail is manually configured. Bootstrapping and Deployment (the rest of ZTD) still happens dynamically.

    Prerequisites

    blank.gifThe PnP server must be reachable either over the LAN or over the WAN/Internet.

    blank.gifAs TPS is used in this implementation, TPS acts as a PnP server for the IoT Gateways.

    Bootstrapping over IPv4 Network

    This section focuses on the bootstrapping of the IoT Gateways over the IPv4 network in the absence of the DHCP server, DNS server, and Cisco Cloud redirector server to provide the PnP server details. IoT Gateways are informed about the PnP server detail directly through the Cisco IOS configuration commands.

    In Figure 12, the manual PnP profile configuration on the IoT Gateways lets the IoT Gateways learn about the PnP server that should be reached out to and the desired PnP port number. For example, the custom PnP profile is configured to reach out to the PnP server ( tps-san.ipg.cisco.com) over the http on port 9125.

    Figure 12 Custom PnP Profile-Assisted Bootstrapping of IoT Gateways over IPv4 Network

     

    379974.jpg

    Based on the manual PnP profile configuration on the IoT Gateways, communication is initially established with PnP Proxy on http://tps-san.ipg.cisco.com:9125. Later, the communication is established with the PnP Proxy on https://tps-san.ipg.cisco.com:9120.

    Note: Only the PnP server discovery is made manual. The rest of the bootstrapping procedure is the same as the DHCP server-assisted PnP provisioning discussed above.

    Bootstrapping over IPv6 Network

    This section focuses on the bootstrapping of the IoT Gateways over the IPv6 network in the absence of the DHCP server, DNS server, and Cisco Cloud Redirector Server to provide the PnP server details. IoT Gateways are informed about the PnP server detail directly through the Cisco IOS configuration commands in order to enable bootstrapping of the IoT Gateways over the IPv6 network.

    In Figure 13, based on the manual PNP profile configuration on the IoT Gateways, initially communication is established with the PnP Proxy on http://tps-san.ipg.cisco.com:9125. Later, the communication is established with PnP Proxy on https://tps-san.ipg.cisco.com:9120.

    Name resolution happens to an IPv6 address, and the bootstrapping happens over an IPv6 network.

    Note: Only the PnP server discovery is made manual. The rest of the bootstrapping procedure (PnP communication on port 9120 and 9125) is still dynamic.

    Figure 13 Custom PnP Profile-Assisted Bootstrapping of IoT Gateways over IPv6 Network

     

    379975.jpg

    Logical Call Flow

    This section discusses the logical call flow sequence with the Custom PnP profile-assisted bootstrapping of the IoT Gateways over the IPv4/IPv6 network.

    Figure 14 Custom PnP Profile-Assisted Bootstrapping of IoT Gateways—Logical Call Flow

     

    379976.jpg

    In Figure 14:

    blank.gifPnP server detail is learned out of the custom PnP profile, configured manually.

    blank.gifThe IoT Gateway reaches out to the PnP server in the configuration, which is http://tps- san.ipg.cisco.com:9125.

    blank.gifThe communication reaches TPS, and is then sent to FND. Bootstrapping of the IoT Gateway begins at the FND.

    blank.gifThe rest of the procedure is exactly the same as the bootstrapping steps discussed as part of DHCP server-assisted PnP Provisioning:

    blank.gifInitial communication happens on http://tps-san.ipg.cisco.com:9125

    blank.gifLater communication happens on https://tps-san.ipg.cisco.com:9120

    PnP Server Discovery through Cisco PnP Connect and Bootstrapping

    blank.gifPrerequisites

    blank.gifBootstrapping

    blank.gifLogical Call Flow

    Prerequisites

    PnP Proxy must be reachable either over the WAN/Internet. As TPS is used in this implementation, TPS acts as the PnP server for the IoT Gateways. The controller profile on “software.cisco.com” should be configured with the correct TPS address. The controller profile advertises TPS details in place of the PnP server details.

    To create the controller profile, login to software.cisco.com. Go to Network Plug and Play > Select controller profile from the tool bar and add the details.

    Figure 15 shows the controller profile added on software.cisco.com :

    Figure 15 Controller Profile

     

    257120.jpg

    When a device is ordered through CCW, the device must be attached with the Smart account. For the PnP discovery to be successful using PnP Connect, a device must be added on the software.cisco.com portal. The device can be added either manually or by uploading a csv file. You can refer to “PnP Server Discovery Through Cisco PnP Connect” in the Cisco Distribution Automation Secondary Substation Design Guide. Figure 16 shows adding a device manually:

    Figure 16 Manual Addition of Device

     

    257115.jpg

    After manually adding the device in the PnP Connect portal, the request is yet to received from the device and the status for PnP redirection will be pending. This is shown in Figure 17:

    Figure 17 PnP Redirect Pending after Manual Device Addition

     

    257116.jpg

    Finally, when the device is added successfully, it should be populated in the devices list as shown in Figure 17, which lists the devices for when the Redirect was successful.

    Bootstrapping

    This section discusses the PnP Connect-Assisted bootstrapping of the IoT Gateways over the IPv4 network.

    In Figure 18, IoT Gateways obtain the IP address dynamically from the service provider:

    blank.gifThe PnP agent (residing on the IoT Gateway) then reaches out to PnP Proxy over IPv4 LAN/WAN network over http on port 9125 and then over https on port 9120.

    Figure 18 PnP Connect—Assisted Bootstrapping of IoT Gateways

     

    257121.jpg

    Logical Call Flow

    This section discusses the logical call flow sequence with the DHCP server-assisted bootstrapping of the IoT Gateways over the IPv4/IPv6 network.

    The actors shown in Figure 19 are the following:

    blank.gifPnP Agent (IoT Gateway)

    blank.gifService Provider

    blank.gifPnP Cloud Re-direction Service PnP Connect Portal

    blank.gifPnP Proxy (TPS)

    blank.gifPnP Server (FND)

    Figure 19 PnP Connect—Assisted Bootstrapping of IoT Gateways—Logical Call Flow

     

    257122.jpg

    1.blank.gif When the IoT Gateway is powered on, the PnP Agent on the IoT Gateway checks for the presence of the startup configuration. If the startup configuration is not found, then the PnP agent performs “no shut” on all the cellular interfaces.

    2.blank.gif The IOS on the IoT Gateway sends out a request to the service provider.

    3.blank.gif The service provider responds back with the IPv4 address.

    4.blank.gif The IOT gateway proceeds for PnP server discovery and connects to the PnP cloud re-direction service connect portal. After successfully connecting the server devicehelper.cisco.com, the server PnP Connect portal sends the publicly reachable TPS DMZ IP(A.B.C.D) PnP proxy IP and the port number (9125) on which the proxy server is listening. The serial number of the gateway should be added to the Cisco Cloud PnP Connect portal for the re-direction service to be successful. Figure 20 shows that the PnP redirection is successful.

    5.blank.gif Once the PnP discovery is successful, the PnP profile is configured on the device with the publicly reachable TPS DMZ IP. Once the profile is configured, the bootstrapping begins.

    6.blank.gif The rest of the procedure is exactly the same as the bootstrapping steps discussed as part of PnP server discovery through DHCP server.

    Figure 20 PnP Redirection Successful

     

    257117.jpg

    Bootstrapping Configuration Template on Bootstrapping FND

    Like the tunnel provisioning template, the bootstrapping template has to be defined on FND. This template initiates the deployment process when the gateway is deployed in the desired location.

    The bootstrapping template is a configuration template residing on the bootstrapping FND. As part of the bootstrapping procedure, when the bootstrapping request is received from the IoT Gateway, this bootstrap configuration template is translated into the Cisco IOS configuration, which is then pushed onto the IoT Gateway.

    In the previous section, we discussed three PnP server discovery methods. In this section, we will discuss the bootstrapping template creation for enabling the gateway to undergo the deployment process without any manual intervention.

    Once this Cisco IOS configuration is pushed onto the IoT Gateway and copied onto a running configuration successfully, the bootstrapping is said to be SUCCESSFUL.

    This bootstrapping of Cisco IoT Gateways from Cisco IoT FND (PnP Server) is entirely Zero Touch.

    This implementation section includes the following sections:

    blank.gifCreation of Bootstrap Configuration Template Group

    blank.gifRouter Bootstrap Configuration Groups—Populating Templates

    Creation of Bootstrap Configuration Template Group

    This section covers the steps required for configuring the bootstrapping group.

    Figure 21 CREATE Bootstrap—CONFIG—Tunnel Provisioning

     

    379948.jpg

    1.blank.gif From the CONFIG Menu, select the Tunnel Provisioning option.

    Figure 22 CREATE Bootstrap—Add Group

     

    379950.jpg

    2.blank.gif With the Router Group selected in the left pane, click the “+” sign (Add Group icon) located in the top right of the left pane.

    Figure 23 CREATE Bootstrap—Add IPv4 Group

     

    379952.jpg

    3.blank.gif Configure the group name IPv4-BOOTSTRAP, and click Add.

    Figure 24 CREATE Bootstrap—Add IPv6 Group

     

    379954.jpg

    4.blank.gif Similarly, configure another group name IPv6-BOOTSTRAP for bootstrapping over the IPv6 network. Click Add:

    Figure 25 CREATE Bootstrap—List of Bootstrap Groups

     

    379956.jpg

    The two newly created bootstrapping groups are displayed in the left pane:

    blank.gifIPv4-BOOTSTRAP (created to handle bootstrapping over the IPv4 network)

    blank.gifIPv6-BOOTSTRAP (created to handle bootstrapping over the IPv6 network)

    Moving Devices under the Bootstrapping Group

    Multiple bootstrapping groups could be configured on the bootstrapping FND. IoT Gateways have to be moved under the correct group in order to have it bootstrapped with the appropriate configuration.

    Complete the following steps to move IoT Gateways under the correct bootstrapping group:

    1.blank.gif In Figure 26, two IoT Gateways are under the default group. The devices need to be moved to the newly created IPv4-BOOTSTRAP group. In the middle pane, select the Router in the pull-down menu, select the IoT Gateways to be moved under the new bootstrapping group, and then click Change Tunnel Group.

    Figure 26 CHANGE Tunnel Group—Device Under Default Group

     

    379947.jpg

    Figure 27 CHANGE Tunnel Group—Pull-Down Menu

     

    379949.jpg

    2.blank.gif Choose the correct bootstrap group IPv4-BOOTSTRAP. To perform bootstrapping over the IPv6 network, choose the IPv6-BOOTSTRAP tunnel group.

    Figure 28 CHANGE Tunnel Group—Select IPv4 Group

     

    379951.jpg

    3.blank.gif With the appropriate bootstrap group chosen, click Change Tunnel Group to move the IoT Gateway from the default group to the desired group.

    Figure 29 CHANGE Tunnel Group—Updated IPv4 Group

     

    379953.jpg

    4.blank.gif Device migration to the desired group was successful.

    Figure 30 CHANGE Tunnel Group—Devices Moved under IPv4 Group

     

    379955.jpg

    5.blank.gif In Figure 30, it can be seen that IoT Gateways were moved under the correct bootstrapping group.

    Router Bootstrap Configuration Groups—Populating Templates

    This section shows where to populate the bootstrapping template in FND, and the template that needs to be chosen for bootstrapping of the IoT Gateways according to the network in which the IoT Gateway would be deployed (for example, IPv4/IPv6 network, located/not located behind NAT, etc).

    Note: Working versions of bootstrapping templates can be found in Appendix A: PnP Profiles.

    Figure 31 captures the Router Bootstrap Configuration section that needs to be populated for the purpose of bootstrapping:

    Figure 31 Router Bootstrap Configuration

     

    379959.jpg

    Every bootstrap group (referred as Tunnel Group in the left pane) can be populated with a unique Router Bootstrap configuration.

    Table 11 Bootstrapping Template According to the Deployment Model

    Network Type
    Profile Name for IoT Gateways (located behind NAT)
    Profile Name for IoT Gateways (NOT located behind NAT)

    IPv4

    IPv4-BOOTSTRAP-NAT

    IPv4-BOOTSTRAP

    IPv6

    IPv6-BOOTSTRAP-NAT

    IPv6-BOOTSTRAP

    With reference to Table 11, for bootstrapping the IoT Gateways for deployment over the IPv4 network:

    blank.gifIf IoT Gateways are located behind NAT, then the bootstrapping template IPv4-BOOTSTRAP-NAT could be used.

    blank.gifIf IoT Gateways are not located behind NAT, then the bootstrapping template IPv4-BOOTSTRAP could be used.

    Similarly, for Bootstrapping the IoT Gateways for deployment over IPv6 network:

    blank.gifIf IoT Gateways are located behind NAT, then the bootstrapping template IPv6-BOOTSTRAP-NAT could be used.

    blank.gifIf IoT Gateways are not located behind NAT, then the bootstrapping template IPv6-BOOTSTRAP could be used.

    Deployment of the Cisco IoT Gateway

    This section includes the following topics:

    blank.gifPrerequisites for Deployment

    blank.gifDeployment over IPv4 Cellular Network with NAT

    blank.gifDeployment over IPv4 Network without NAT

    Prerequisites for Deployment

    blank.gifCisco IoT Gateway should have gone through the bootstrapping procedure mentioned in Bootstrapping of the IoT Gateway, with the device being part of the appropriate bootstrapping group.

    blank.gifThe CSV file should be imported for the IoT Gateways at the Control Center FND. Refer to Figure 171 available in Appendix B: FND Zero Touch Deployment Profiles, which shows the CSV file.

    Deployment Infrastructure Readiness

    blank.gifCisco IoT Gateway should be assigned an IPv4/IPv6 address dynamically over Ethernet/Cellular. If a static address needs to be used on the Cisco IoT Gateway, then assignment of address to the Cisco IoT Gateway's interface needs to be taken care as part of Bootstrapping.

    blank.gifCisco Field Area Network—Headend (DSO Control Center1) should be UP and running:

    blank.gifIf it needs to be set up, the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases' guide could be referenced to set up the headend in the DSO Control Center or NOC.

    blank.gifAll the required headend components like the CA server (RSA), AAA, AD, Registration Authority, NOC TPS/FND, DHCP server, and HERs are expected to be up and running in the DSO Control Center1.

    blank.gifNOC TPS, RA, and HERs must have static IP addresses configured and should be reachable from the Cisco IoT Gateways that are located in the secondary substation or along the Distribution network.

    Note: If the prerequisites for deployment are addressed, ZTD of the IoT Gateways should happen successfully after the gateway is deployed at the desired location and powered on, with the Ethernet cable connected or the LTE SIM card inserted.

    Deployment over IPv4 Cellular Network with NAT

    Note: This section has no implementation steps. As the name “ZTD” states, it's a zero touch deployment. As long as bootstrapping happened successfully by having the IoT Gateway part of the correct bootstrapping group, this deployment should happen successfully with no manual steps.

    Figure 32 captures the deployment steps for IoT Gateway over LTE Cellular:

    Figure 32 Deployment over IPv4 Cellular Network with Cisco DMZ Headend

     

    379977.jpg

    Note: This scenario has been validated with the headend located in the Cisco DMZ.

    The following is the summary sequence of steps that occurs during the deployment:

    1.blank.gif The IoT Gateway is powered on. When up, it obtains the IP address over LTE Cellular interface.

    2.blank.gif The EEM Script for ZTD kicks in and waits for the time to be synchronized. Then, SCEP enrollment happens over port 80 with RA-DMZ-IP.

    3.blank.gif Once the certificate is received for the IoT Gateway (from the RA/CA), the ZTD script disables itself and activates the CGNA profile for tunnel provisioning (cgna initiator-profile cg-nms-tunnel).

    Note: “cgna initiator-profile cg-nms-tunnel” must be used when the IoT Gateway is behind NAT, whereas cgna profile cg-nms-tunnel” must be used when no NAT exists between IoT Gateway and TPS. This CGNA profile is configured as part of bootstrapping.

    4.blank.gif TPS/FND provisions the secure FlexVPN tunnel with the HER Cluster located in the DSO Control Center1.

    5.blank.gif As an overlay routing, FND and SCADA routes are advertised (by the HER) to the IoT Gateway through the secure FlexVPN tunnel.

    6.blank.gif The IoT Gateway sends out a registration request to FND on port 9121. Once registered successfully, the IOT Gateway is remotely manageable from the FND.

    7.blank.gif As part of the device registration with the FND, FND also pushes SCADA Traffic enablement configurations to the IoT Gateway, which enables the communication between the SCADA Master in the Control Center and the SCADA Outstation located in the Secondary Substation/Distribution Network.

    8.blank.gif ZTD of the IoT Gateway is successful.

    9.blank.gif Utility Application Traffic - READY TO GO.

    Deployment over IPv4 Network without NAT

    Note: This section has no implementation steps. As the name “ZTD” suggests, it's a zero touch deployment. As long as bootstrapping happened successfully by having the IoT Gateway part of the right bootstrapping group, this deployment should happen successfully with no manual steps.

    Figure 33 captures the deployment steps for IoT Gateway without NAT over the IPv4 network:

    Figure 33 Deployment over IPv4 Ethernet Network in Engineering Lab Topology

     

    379978.jpg

    Note: This scenario has been validated with the headend located in the Engineering Lab Topology.

    The following is the summary sequence of steps that happens during the deployment:

    1.blank.gif The IoT Gateway is powered on. When up, it obtains the IP address over the Ethernet interface.

    2.blank.gif The EEM Script for ZTD kicks in and waits for the time to be synchronized. Then, SCEP enrollment happens with RA IP (172.16.241.2) on port 80.

    3.blank.gif Once the certificate is received for the IoT Gateway (from the RA/CA), the ZTD script disables itself, and activates the CGNA profile for tunnel provisioning (cgna profile cg-nms- tunnel).

    Note: “cgna profile cg-nms-tunnel must be used when there is no NAT between IoT Gateway and TPS. This CGNA profile has already been configured as part of IoT Gateway bootstrapping. TPS/FND provisions secure FlexVPN tunnel with the HER Cluster located in the DSO Control Center1.

    4.blank.gif As an overlay routing, FND (172.16.103.100 and 2001:db8:16:103::100) and SCADA (172.16.107.11 and 2001:db8:16:107::11) routes are advertised (by HER) to the IoT Gateway through the secure FlexVPN tunnel.

    5.blank.gif IoT Gateway sends out a registration request to FND IPv4 address 172.16.103.100 (or) IPv6 address 2001:db8:16:103::100 on port 9121. Once registered successfully, the IOT Gateway is remotely manageable from the FND.

    6.blank.gif As part of the device registration with the FND, FND also pushes SCADA Traffic enablement configurations to the IoT Gateway, which enables the communication between SCADA Master in the Control Center and the SCADA Outstation located in the Secondary Substation/Distribution Network.

    7.blank.gif ZTD of the IoT Gateway is successful.

    8.blank.gif Utility Application Traffic - READY TO GO.

    Deployment over Native IPv6 Ethernet Network

    Note: This section has no implementation steps. As the name “ZTD” suggests, it's a zero touch deployment. As long as bootstrapping happened successfully by having the IoT Gateway part of the right bootstrapping group, this deployment should happen successfully with no manual steps being synchronized.

    Figure 34 captures the deployment steps for the IoT Gateway over the Native IPv6 network:

    Figure 34 Deployment over Native IPv6 Ethernet Network in Engineering Lab Topology

     

    379979.jpg

    Note: This scenario has been validated with the headend located in the Engineering Lab Topology over a native IPv6 network. It could be dual stack as well.

    The following is the summary sequence of steps that happens during the deployment:

    1.blank.gif The IoT Gateway is powered on. When up, it obtains the IPv6 address over the Ethernet interface.

    2.blank.gif The EEM script for ZTD kicks in and waits for the time to be synchronized. Then, SCEP enrollment happens with RA IPv6 address (2001:db8:10:241::5921) on port 80.

    3.blank.gif IPv4 communication could be retained between RA and CA in the Control Center private network.

    4.blank.gif Once the certificate is received for the IoT Gateway (from the RA/CA), the ZTD script disables itself, and activates the CGNA profile for tunnel provisioning.

    Note: “cgna initiator-profile cg-nms-tunnel” must be used when the IoT Gateway is behind NAT, whereas cgna profile cg-nms-tunnel” must be used when there is no NAT between IoT Gateway and TPS. This CGNA profile has already been configured as part of the IoT Gateway bootstrapping.

    5.blank.gif TPS/FND provisions secure the FlexVPN tunnel with the HER Cluster located in the DSO Control Center1, over the Native IPv6 network.

    6.blank.gif As an overlay routing, FND (172.16.103.100 and 2001:db8:16:103::100) and SCADA (172.16.107.11 and 2001:db8:16:107::11) routes are advertised (by HER) to the IoT Gateway through the secure FlexVPN tunnel.

    7.blank.gif IoT Gateway sends out a registration request to FND IPv4 address 172.16.103.100 (or) IPv6 address 2001:db8:16:103::100 on port 9121. Once registered successfully, IOT Gateway is remotely manageable from the FND.

    8.blank.gif As part of the device registration with the FND, FND also pushes SCADA Traffic enablement configurations to the IoT Gateway, which enables the communication between SCADA Master in the Control Center and the SCADA Outstation located in the secondary substation/Distribution Network.

    9.blank.gif ZTD of the IoT Gateway is successful.

    10.blank.gif Utility Application Traffic - READY TO GO.

    Tunnel Provisioning Template Profiles

    Tunnel Provisioning Template profiles, which are needed for Tunnel establishment, are captured in Appendix B: FND Zero Touch Deployment Profiles.

    Device Configuration Template Profiles

    Device Configuration Template profiles, which are needed for ICT SCADA Traffic enablement, are captured in Appendix B: FND Zero Touch Deployment Profiles.

    Bootstrapping and ZTD of the Cisco IoT Gateway at the Deployment Location

    This section describes the bootstrapping and Deployment of the Cisco IoT gateway at the deployed location. Unlike the previous section, one TPS and FND are sufficient to complete both bootstrapping and ZTD. Although the previous two sections and this section overlap, minor changes in the implementation of TPS and FND need to be done for successful deployment.

    This section, which covers the minor changes that have to be implemented in the headend setup, describes the following phases:

    blank.gifPrerequisites

    blank.gifCertificate Creation and Installation

    blank.gifInstallation of TPS

    blank.gifInstallation of FND

    blank.gifConfiguration of TPS

    blank.gifConfiguration of FND

    blank.gifDevice Bootstrapping

    blank.gifDevice Deployment

    Prerequisites

    Prerequisites include the following:

    blank.gifTPS and FND server must be up and running.

    blank.gifThis section focuses on portions required for TPS and FND to carry out both bootstrapping and ZTD.

    blank.gifRouting reachability over IPv4 and/or IPv6 networks from IoT Gateways to TPS.

    blank.gifRouting reachability between TPS and FND.

    Certificate Creation and Installation

    This section captures the parameters that need to be considered while creating the certificate for the TPS and FND.

    Note: For detailed instructions about certificate creation, please refer to the section “Creation of Certificate Templates and Certificates” of the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases Guide at the following URL:

    blank.gif https://docs.cisco.com/share/proxy/alfresco/url?docnum=EDCS-15726915

    Certificate Creation for TPS

    The certificate for the TPS must be created with both the Subject Name and the Subject Alternative Name fields populated.

    Figure 35 TPS Certificate Parameters

     

    257118.jpg

    The Subject Name is the Common Name that must be set to the FQDN of the TPS.

    The Subject Alternative Name must be set to the FQDN - tps.ipg.cisco.com of the TPS, along with the IP address (A.B.C.D - Public reachable DMZ IP). The Subject Alternative Name is required for PnP to work. The IP address must be reachable from the IoT Gateway. TPS is located in DMZ. The IP address is not optional in this implementation. FQDN is optional, but the IP address is not.

    The enrolled certificate is exported as PnP-ZTD-TPS.pfx and is protected with a password.

    Certificate Creation for FND

    The FND certificate must be created with both the Subject Name and Subject Alternative Name fields populated.

    Figure 36 FND Certificate Parameters

     

    257119.jpg

    The Subject Name is the Common Name that must be set to the FQDN of the PnP Server.

    The Subject Alternative Name must be set to the FQDN of the FND, along with the optional IP address. The Subject Alternative Name is required for PnP to work. The IP address in Figure 36 will be reachable after tunnel is established between IoT gateway and the headend.

    The enrolled certificate is exported as PnP-ZTD-FND.pfx and is protected with a password.

    Installation of TPS

    The bootstrapping procedure in this implementation guide considers the use of TPS as PnP Proxy. For installation of TPS, please refer to Installation of TPS.

    Installation of FND

    For installation of FND, please refer to the detailed steps covered under the section “Implementing Field Network Director” of the Cisco FAN-Headend Deep Dive Implementation and FAN Use Cases Guide.

    Configuration of TPS

    This section covers the configuration steps and the final verification steps on the TPS.

    TPS Proxy Properties Configuration

    TPS Proxy Properties file needs to be configured with the following details:

    blank.gifinbound-bsproxy-destination: Address to which the bootstrapping requests be forwarded.

    blank.gifenable-bootstrap-service: Is bootstrapping service enabled/disabled?

    blank.gifbootstrap-proxy-listen-port: Port on which the PnP Proxy must be listening for processing bootstrapping requests (default port is 9125).

    [root@tps-san ~]# cat /opt/cgms-tpsproxy/conf/tpsproxy.properties
    ## Configuration created as part of regular TPS installation. inbound-proxy-destination=https://fnd.ipg.cisco.com:9120 outbound-proxy-allowed-addresses=fnd.ipg.cisco.com
    cgms-keystore-password-hidden=7jlXPniVpMvat+TrDWqh1w==
     
    ## Configuration required for Bootstrapping.
    inbound-bsproxy-destination=http://fnd.ipg.cisco.com:9125
    enable-bootstrap-service=true
    bootstrap-proxy-listen-port=9125
    [root@tps ~]#
     

    Name resolution entries have to be present for FND FQDN in the /etc/hosts file.

    Mandatory Verification Checks on TPS Proxy

    The verification checks include the following:

    blank.gifFND FQDN entry in /etc/hosts.

    blank.gifTPS must have three certificates installed into the cgms_keystore:

    blank.gifCertificate signed by Utility PKI for TPS (with private key)

    blank.gifPublic Certificate of the Utility PKI CA server

    blank.gifPublic Certificate of the Cisco SUDI CA

    blank.gifHostname consistency with the certificate.

    blank.gifThere shouldn't be any unreachable name servers in /etc/resolv.conf.

    blank.gifNTP daemon should be running. Time should be synchronized.

    blank.gifNecessary firewall ports must have been opened up, if the firewall/iptables/ip6tables are enabled:

    blank.gifTCP Port 9125 to process http communication

    blank.gifTCP port 9120 to process https communication

    blank.gifFND FQDN entry in /etc/hosts:

    [root@tps ~]# cat /etc/hosts
    127.0.0.1localhost localhost.localdomain localhost4
    localhost4.localdomain4 tps.ipg.cisco.com
     
    ::1localhost localhost.localdomain localhost6
    localhost6.localdomain6 tps.ipg.cisco.com
     
    192.168.103.100 fnd.ipg.cisco.com
     
    [root@tps ~]#
     
     

    TPS must have three certificates installed into the cgms_keystore:

    blank.gifThe certificate entry 'root' represents the Utility PKI CA certificate.

    blank.gifThe certificate entry 'sudi' represents the Cisco SUDI CA certificate.

    blank.gifThe certificate entry 'cgms' represents the private certificate of the TPS server signed by the (custom) Utility PKI CA server.

    Keytool -list -keystore /opt/cgms-tpsproxy/conf/cgms_keystore:

    Enter keystore password:
     
    ***************** WARNING WARNING WARNING *****************
    *The integrity of the information stored in your keystore *
    *has NOT been verified! In order to verify its integrity, *
    *you must provide your keystore password.*
    ***************** WARNING WARNING WARNING *****************
     
    Keystore type: JKS Keystore provider: SUN
     
    Your keystore contains 3 entries
    root, Jun 4, 2017, trustedCertEntry,
    Certificate fingerprint (SHA1):
    CF:A2:61:30:29:B1:1E:46:14:30:A2:DC:5F:62:41:
    47:CC:EE:64:69
    sudi, Apr 4, 2019, trustedCertEntry,
    Certificate fingerprint (SHA1):
    F6:96:9B:BD:48:E5:F6:12:5B:93:4D:01:E7:1F:E9:
    C2:7C:6F:54:7E
    cgms, May 9, 2019, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    03:7E:11:1E:10:16:DD:C8:81:15:41:84:DB:7E:03:
    79:6E:96:1B:5E
     

    Hostname should match the certificate Common Name/SAN:

    [root@tps ~]# hostname
    tps.ipg.cisco.com [root@tps ~]#
     
    [root@tps ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=tps.ipg.cisco.com
    GATEWAY=72.163.222.225
    NTPSERVERARGS=iburst
    [root@tps ~]#
     
    [root@tps ~]# keytool -list -keystore /opt/cgms-
    tpsproxy/conf/cgms_keystore -alias cgms -v | grep "CN="
    Enter keystore password: [press Enter]
    <.. removed for clarity..>
    Owner: CN=tps.ipg.cisco.com, O=Cisco Systems Inc
    Issuer: CN=IPG-RSA-ROOT-CA, DC=ipg, DC=cisco, DC=com
    <.. removed for clarity..> [root@tps ~]#
     

     

    No unreachable name servers should exist. Either the name servers should be present and reachable or they should be empty. Any unreachable name server address entry must be taken care or removed under the network interface configuration.

    [root@tps ~]# cat /etc/resolv.conf #
    Generated by NetworkManager search ipg.cisco.com
     
    # No nameservers found; try putting DNS servers into your
    #ifcfg files in /etc/sysconfig/network-scripts like so:
    #
    # DNS1=xxx.xxx.xxx.xxx # DNS2=xxx.xxx.xxx.xxx
    # DOMAIN=lab.foo.com bar.foo.com
    [root@tps ~]#
     

    NTP daemon should be running. Time should be synchronized:

    [root@tps ~]# ntpstat
    synchronised to NTP server (171.68.38.65) at stratum 6
    time correct to within 27 ms
    polling server every 1024 s
    [root@tps ~]#
     

    Note: The TPS server should be time synchronized. Otherwise, the https communication from the IoT Gateway might not reach the TPS Proxy Application.

    Configuration of FND

    This section covers the configuration steps and the final verification steps on the FND.

    CGMS Properties Configuration

    The CGMS Properties file needs to be configured with the following details:

    blank.gifproxy-bootstrap-ip: Address of the PnP Proxy from which the bootstrapping requests are processed

    blank.gifenable-bootstrap-service: Enable/Disable the bootstrapping service

    blank.gifbootstrap-fnd-alias: The trust point alias to be used during bootstrapping of the IoT Gateway

    blank.gifca-fingerprint: fingerprint of the 'root' trustpoint

    [root@fnd conf]# cat /opt/cgms/server/cgms/conf/cgms.properties
     
    ## Configuration created as part of regular FND installation. cgms-keystore-password-hidden=7jlXPniVpMvat+TrDWqh1w==
    cgdm-tpsproxy-addr=tps.ipg.cisco.com
    cgdm-tpsproxy-subject=CN="tps.ipg.cisco.com", O="Cisco Systems Inc" ##
     
    Configuration required for Bootstrapping.
     
    enable-bootstrap-service=true
    proxy-bootstrap-ip=<Cisco DMZ IP>
    bootstrap-fnd-alias=root
    ca-fingerprint=CFA2613029B11E461430A2DC5F624147CCEE6469
     
    [root@fnd conf]#
     

    Name resolution entries have to be present for TPS FQDN in the /etc/hosts file.

    In our lab setup, the proxy-bootstrap-ip is a DMZ IP. In cases where FQDN is globally resolvable, then FQDN can be used instead of IP.

    Mandatory Verification Checks on FND

    Verification checks include the following:

    blank.gifTPS FQDN entry in the /etc/hosts file.

    blank.gifFND must have three certificates installed into the cgms_keystore:

    blank.gifCertificate signed by Utility PKI for FND (with private key)

    blank.gifPublic Certificate of the Utility PKI CA server

    blank.gifPublic Certificate of the Cisco SUDI CA

    blank.gifHostname must be consistent with the certificate.

    blank.gifNo unreachable name servers in /etc/resolv.conf should exist.

    blank.gifNTP daemon should be running. Time should be synchronized.

    blank.gifNecessary firewall ports must have been opened up if the firewall/iptables/ip6tables are enabled:

    blank.gifTCP Port 9125 to process http communication

    blank.gifTCP port 9120 to process https communication

    TPS/FND FQDN entry in the /etc/hosts file:

    [root@fnd ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4
    localhost4.localdomain4 fnd.ipg.cisco.com
    ::1 localhost localhost.localdomain localhost6
    localhost6.localdomain6 fnd.ipg.cisco.com
     
    192.168.104.100fnddb.ipg.cisco.com
    192.168.103.242 tps.ipg.cisco.com
     

    FND must have three certificates installed into the cgms_keystore:

    blank.gifThe certificate entry 'root' represents the Utility PKI CA certificate.

    blank.gifThe certificate entry 'sudi' represents the Cisco SUDI CA certificate.

    blank.gifThe certificate entry 'cgms' represents the private certificate of the FND server signed by the (custom) Utility PKI CA server.

    keytool -list -keystore /opt/cgms/server/cgms/conf/cgms_keystore Enter keystore password:
    ***************** WARNING WARNING WARNING *****************
    *The integrity of the information stored in your keystore *
    *has NOT been verified! In order to verify its integrity, *
     
    *you must provide your keystore password.*
    ***************** WARNING WARNING WARNING *****************
     
    Keystore type: JKS Keystore provider: SUN
     
    Your keystore contains 4 entries
     
    root, Apr 5, 2018, trustedCertEntry,
    Certificate fingerprint (SHA1):
    CF:A2:61:30:29:B1:1E:46:14:30:A2:DC:5F:62:41:47:CC:EE:64:69
    sudi, Jul 11, 2018, trustedCertEntry, Certificate fingerprint (SHA1):
    F6:96:9B:BD:48:E5:F6:12:5B:93:4D:01:E7:1F:E9:C2:7C:6F:54:7E
    cgms, Oct 5, 2018, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    F4:99:72:8E:BA:24:25:8A:1D:23:9B:B6:B1:99:EA:FD:12:9E:A7:34
    You have mail in /var/spool/mail/root [root@fnd conf]#
     

    Hostname should match the certificate Common Name/SAN:

    [root@fnd conf]# hostname
    fnd-san.ipg.cisco.com
    [root@fnd conf]#
     
    [root@fnd conf]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=fnd.ipg.cisco.com
    NTPSERVERARGS=iburst
     
    root@fnd conf]# keytool -list -keystore
    /opt/cgms/server/cgms/conf/cgms_keystore -v -alias cgms | grep CN=
    Enter keystore password: [press Enter]
     
    <.. removed for clarity..>
    Owner: CN=fnd.ipg.cisco.com, O=Cisco Systems Inc Issuer:
    CN=IPG-RSA-ROOT-CA, DC=ipg, DC=cisco, DC=com
    <.. removed for clarity..>
    [root@fnd conf]#
     

    No unreachable name servers should exist. Either the name servers should be present and reachable or they should be empty. Any unreachable name server address entry must be taken care or removed under the network interface configuration:

    [root@fnd conf]# cat /etc/resolv.conf #
    Generated by NetworkManager
    search ipg.cisco.com
     
    # No nameservers found; try putting DNS servers into your
    # ifcfg files in /etc/sysconfig/network-scripts like so: #
     
     
    # DNS1=xxx.xxx.xxx.xxx
    # DNS2=xxx.xxx.xxx.xxx
    # DOMAIN=lab.foo.com bar.foo.com [root@fnd conf]#
     

    NTP daemon should be running. Time should be synchronized:

    [root@fnd conf]# ntpstat
    synchronised to NTP server (192.168.103.75) at stratum
    6 time correct to within 45 ms
    polling server every 1024 s
    [root@fnd conf]#
     

    Note: The FND server should be time synchronized. Otherwise, the https communication from the IoT Gateway might not reach the FND (cgms) application.

    Csv File Import on FND GUI

    A sample csv file that can be imported into FND for bootstrapping of IoT Gateway is shown below:

    deviceType,eid,dhcpV4LoopbackLink,dhcpV6LoopbackLink,tunnelSrcInterface1,ipsecTunnelDest
    Addr1,tunnelSrcInterface2,ipsecTunnelDestAddr2,adminUsername,adminPassword,certIssuerCom
    monName,tunnelHerEid,hostnameForBs,domainname,bootimage
     
    ir1100,IR1101K9+FCW225100DA,192.168.150.1,2001:db8:BABA:FACE::1,Cellular0/1/0,<W.X.Y.Z>
    cg-nms-
    administrator,156qay3OnltOPVTmrDhwVZ426ZyewiRG1gmshsem/I0MP+dPGrDNO1Al7FuvyMZrkcLTd3+L9Q
    Syc5SZo1BeS/GZ9T337cf+HVhF36G0ORerMcg7N5Vh77RH18Fg/SctLRta0gBD4PdcdJeQI0R5UVQpoU3dlPtefC
    Z4LAOh4gitQJ72avXzygsofG17CPk4ZDdc9cQ9jrpV2fzpzS/Wyv2ryzIkKVMUYDCr9fLBITPtWUwCuX/bylZHaH
    vBnsq5ZwTC3uaSTzd2LDXvk+iRtynjLXJRcWdaRqnIGVCDp0C8l3du3fxHInJ69jjob924tIH3YjZ101D6gt4VxK
    dtCA==,IPG-RSA-ROOT-
    CA,HER1.ipg.cisco.com,IR1100_FCW225100DA,ipg.cisco.com,flash:/ir1101-
    universalk9.16.11.01.SPA.bin

    Table 12 Fields of the IoT Gateway Bootstrapping csv File

    Parameter

    Name

    Parameter Value Explanation

    deviceType

    ir1100

    Helps identify the type of device; for example:

    ir800
    cgr1000
    ir1100

    eid

    IR1101-K9+FCW225100DA

    Unique network element identifier for the device

    dhcpV4LoopbackLink

    192.168.150.1

    Tunnel IP address on HER

    dhcpV6LoopbackLink

    2001:db8:BABA:FACE::1

    Tunnel IPv6 address on HER

    tunnelSrcInterface1

    Cellular0/1/0

    Name of the WAN interface that the FAR would use to reach the Headend.

    ipsecTunnelDestAddr1

    W.X.Y.Z

    HER IP address on which tunnel terminates. User has to use their own HER IP.

    tunnelSrcInterface2

    Interface on HER

    This field can be used when active-active connections to the Headend is required

    ipsecTunnelDestAddr2

    Public IP address

    This field can be populated when the above field is used.

    adminUsername

    cg-nms-administrator

    Username that FND must use to interact with the IoT Gateway

    adminPassword

    <encrypted_pwd>

    Password in encrypted form. An unencrypted form of this password would be used by the FND to interact with the FAR.

    certIssuerCommonName

    IPG-RSA-ROOT-CA

    Common Name of the CA server should be populated in this field

    tunnelHerEid

    HER1.ipg.cisco.com

    HER ID should be populated in this field. This is the HER ID with which the gateway

    hostnameForBs

    IR1100_FCW225100DA

    Hostname for bootstrapping

    domainname

    ipg.cisco.com

    Domain name for the bootstrapped router

    bootimage

    flash:/ir1101-universalk9.SSA.bin

    Boot image name

    Device Bootstrapping

    After the above sections have been implemented, the headend is now ready for both provisioning and deployment.

    The device bootstrapping is an important process as it eliminates the manual intervention to create and copy the express config to the device.

    Device bootstrapping using Cisco PnP Connect has been clearly elucidated in PnP Server Discovery through Cisco PnP Connect and Bootstrapping.

    Device Deployment

    After the device has been successfully bootstrapped using Cisco PnP Connect, the device is now ready to undergo ZTD. No manual interface is required for the ZTD to begin.

    Deployment over IPv4 Cellular Network with NAT, elucidates the ZTD process that would begin as soon as bootstrapping using Cisco PnP Connect is complete.

    IoT Gateway Validation Matrix

    Table 13 captures the Bootstrapping and ZTD validation matrix across the various platform types, supported as IoT Gateways:

    Table 13 IoT Gateway Validation Matrix

    Platforms
    IP Protocol Type (IPv4/IPv6)
    Network Type (Ethernet/Cellular)
    Bootstrapping over Ethernet using IP Protocol Type
    Bootstrapping over Cellular
    Zero Touch Deployment over Network Type and IP Protocol Type

    IR1101

    IPv6

    Ethernet

    Validated

    N/A

    Validated

    IPv4

    Ethernet

    Validated

    Validated

    Validated

    Cellular

    Validated

    IR807

    IPv4

    Ethernet

    Validated

    Validated

    Validated

    Cellular

    Validated

    IR809

    IPv4

    Ethernet

    Validated

    Validated

    Validated

    IR829

    IPv4

    Ethernet

    Validated

    Validated

    CGR1120

    IPv4

    Ethernet

    Validated

    Validated

    Validated

    CGR1240

    IPv4

    Ethernet

    Validated

    Validated

    From Table 13, Platform IR1101 has been validated for:

    blank.gifBootstrapping over IPv6 Ethernet

    blank.gifZTD over IPv6 Ethernet

    Similarly, Platform IR1101 has been validated for:

    blank.gifBootstrapping over IPv4 Ethernet and Cellular

    blank.gifZTD over IPv4 Ethernet/Cellular

    Similarly, Platform IR807 has been validated for:

    blank.gifBootstrapping over IPv4 Ethernet and Cellular

    blank.gifZTD over IPv4 Ethernet/Cellular

    All other platform types have been validated for:

    blank.gifBootstrapping over IPv4 Ethernet and Cellular

    blank.gifZTD over IPv4 Ethernet network

    ICT Enablement for SCADA Use Case Validation

    This chapter includes the following major topics:

    blank.gifSCADA Single Control Center Point-to-Point Implementation Scenarios

    blank.gifDual Control Center

    blank.gifIEC 61850

    In order to ensure the proper functioning of substations and related equipment such as line-mounted switches and capacitors, most utilities use SCADA systems to automate monitoring and control.

    New sites typically implement a SCADA system to monitor and control substations and related equipment. However, older facilities can also benefit by adding a SCADA system or by upgrading an existing SCADA system to take advantage of newer technologies.

    The Distributed Automation Solution supports the SCADA service models shown in Table 14:

    Table 14 SCADA Service Models

    Service

    Connectivity

    Service Model

    Legacy SCADA (DNP3, Modbus, T101)

    Point-to-Point (Master Slave)

    Single Control Center

    Raw Socket over FlexVPN

    Legacy SCADA (DNP3, Modbus, T101)

    P2MP Multi-drop

    Dual Control Center

    Raw Socket over FlexVPN

    SCADA Gateway (DNP3, T101) to IP Conversion (DN3-IP, T104)

    Point-to-Point Multi-drop

    Single Control Center

    Protocol Translation over FlexVPN

    SCADA Gateway (DNP3, T101) to IP Conversion (DN3-IP, T104)

    Multi-Master

    Dual Control Center

    Protocol translation over FlexVPN

    SCADA (DNP3-IP, Modbus-TCP, T104)

    Point-to-Point (Master Slave)

    Single Control Center

    FlexVPN - Single Control Center

    SCADA Single Control Center Point-to-Point Implementation Scenarios

    In this scenario, the DSO will be hosting SCADA applications (Master) in a single Control Center. The SCADA Slave is connected to the DA Gateway or SSR via the serial or Ethernet interface. The SCADA Master residing in the DSO Control Center can communicate with the Slave using the IEC 60870-5-104 or IEC 60870-5-101 protocol.

    The operations that can be executed when the communication protocol is T104 or T101 or T101-T104 translation are as follows:

    blank.gifPoll (Master > Slave)

    blank.gifControl (Master > Slave)

    blank.gifReport by Exception (Slave > Master) - Notification

    The operations have been executed using a SCADA simulator known as the Distributed Test Manager (DTM), which has the capability of simulating both the Master and the Slave devices.

    If the endpoint is connected to the SSR/ DA Gateway via the Ethernet port, then it is pure IP traffic. The IP address of the endpoint (i.e., IED) can be NAT’d so that the same subnet between the IED and the Ethernet interface of the DA Gateway can be reused. This approach will ease the deployment.

    If the endpoint is connected using asynchronous serial (RS-232 or RS-485), then tunneling of serial traffic using raw sockets or protocol translation (T101 to T104) must happen at the gateway.

    This document focuses on SCADA protocols such as T101 and T104 and the T101-T104 translation protocols widely used in the Europe Region with a single Control Center.

    Figure 37 Single Control Center Topology

     

    379961.jpg

    IR110 and IR807 are implemented as DA Gateways and SSRs. ASR 1000s implemented in clustering mode act as a HER, which terminates FlexVPN tunnels from DA Gateways and SSRs.

    IP-Based SCADA

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-104.

    Flow Diagram

    Figure 38 T104 Control Flow

     

    379963.jpg

    As shown in Figure 38, the SCADA Master DTM can perform a read and write operation to a remote Slave via the DA Gateway. The Slave can send the Report by Exception to the SCADA Master via DA Gateway over the IP network.

    IR807 DA Gateway Configuration

    interface FastEthernet1
    /* Interface connecting to IED SCADA Slave */ ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in duplex auto
    speed auto
     
    interface Tunnel0 ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int fastEthernet 0/0/1
    /* Interface connecting to IED SCADA Slave */ switchport access vlan 1
    !
     
    interface Tunnel0 ip nat outside
    !
    interface Tunnel1 ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404

    SCADA Operations

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Master. Report by Exception is sent to the Master from the Slave. Figure 39 and Figure 40 show the Poll operation from the SCADA Master. Similarly, Control and Report by Exception can also be seen on the Master Analyzer logs.

    Poll

    The Poll operation is performed by the Master. The Master can execute a general Poll in which all the register values are read and sent to the Master, a Poll on a set of registers or a Poll on a single register. In Figure 39 and Figure 40, we see a general Poll executed on the Slave side. Initially, the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on the Master Analyzer of DTM.

    Figure 39 Master Analyzer Logs before Poll Operation

     

    379895.jpg

    Figure 40 Master Analyzer Logs after Poll Operation

     

    379981.jpg

    Control

    The Control operation basically sends the control command from the SCADA Master to SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed, and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 41, Figure 42, and Figure 43 show the Report by Exception sent to the Master for a particular register:

    Figure 41 Slave Register before Control Operation

     

    379896.jpg

    Figure 42 Master Control Control Operation

     

     

    379982.jpg

    Figure 43 Slave Register after Control Operation

     

    379897.jpg

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register changes are reported to the SCADA Master. This notification can be seen on the Master Analyzer of DTM software. Figure 44, Figure 45, Figure 46, and Figure 47 show the Report by Exception on the analyzer. The other operations such as Poll and Control can be executed, and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 44, Figure 45, Figure 46, and Figure 47 how the Report by Exception sent to the Master for a particular register:

    Figure 44 Master Analyzer

     

    379898.jpg

    Figure 45 Slave Registers

     

    379983.jpg

    Figure 46 Change in Slave Register Value

     

    379984.jpg

     

    Legacy SCADA (Raw-Socket TCP)

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-101.

    Flow Diagram

    Figure 47 T101 Control Flow

     

    379965.jpg

    As shown in Figure 47, the DTM Master can read and write the Slave via the DA Gateway using TCP Raw Socket. And the Slave can send the Report by Exception to the Master via the DA Gateway using TCP Raw-Socket. For more details about Raw Socket, refer to the Distribution Automation - Secondary Substation Design Guide.

    IR807 DA Gateway Raw Socket Configuration

    interface Async1
    no ip address
    /*TCP Raw socket implementation*/ encapsulation raw-tcp
    !
    line 4
    raw-socket tcp client 172.16.107.11 25000
    databits 8
    stopbits 1
    speed 9600 parity none
    !
     
     
     
     
     
     
     
     

    IR1101 DA Gateway Raw Socket Configuration

    interface Async0/2/0
    no ip address
    /* Raw sockets tcp is choosen */ encapsulation raw-tcp
    !
    line 0/2/0
    raw-socket tcp client 172.16.107.11 25000
    databits 8
    stopbits 1
    speed 9600 parity none
    !

    SCADA Operations

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Master. Report by Exception is sent to the Master from the Slave. Figure 48 and Figure 49 show the Poll operation from the SCADA-Master. Similarly, Control and Report by Exception can also be seen on the Master Analyzer logs.

    Poll

    The Poll operation is performed by the Master. The Master can execute a general Poll in which all the register values are read and sent to the Master, a Poll on a set of registers or a Poll on a single register. In Figure 48 and Figure 49, we see a general Poll executed on the Slave side. Initially, the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on the Master Analyzer of DTM.

    Figure 48 Master Analyzer Logs before Poll Operation

     

    379985.jpg

    Figure 49 Master Analyzer Logs after Poll Operation

     

    379899.jpg

    Control

    The control operation basically sends the control command from the SCADA Master to SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 50, Figure 51, and Figure 52 show the Report by Exception sent to the Master for a particular register:

    Figure 50 Slave Register before Control Operation

     

    379900.jpg

    Figure 51 Master Control Control Operation

     

    379901.jpg

    Figure 52 Slave Register after Control Operation

     

    379986.jpg

     

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register changes are reported to SCADA-Master. This notification can be seen on the Master Analyzer of DTM software. Figure 53, Figure 54, Figure 55, and Figure 56 show the Report by Exception on the analyzer. The other operations such as Poll and Control can be executed, and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 53, Figure 54, Figure 55, and Figure 56 show the Report by Exception sent to the Master for a particular register:

    Figure 53 Master Analyzer

     

    379987.jpg

    Figure 54 Slave Registers

     

    379988.jpg

    Figure 55 Change in Slave Register Value

     

    379989.jpg

    Figure 56 Master Analyzer after Change in Register Value

     

    379903.jpg

    SCADA Gateway

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-101 and IEC 60870-5-104.

    Flow Diagram

    Figure 57 T101 to T104 Protocol Translation Control Flow

     

    379967.jpg

    As shown in Figure 57, the DTM Master can read and write the Slave via the DA Gateway using protocol translation. The Slave can send the Report by Exception to the Master via the DA Gateway using protocol translation.

    IR807 SCADA Gateway Configuration

    line 4
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    interface Async1
    no ip address
    encapsulation scada
    !
    scada-gw protocol t101 channel t101_ch1
     
    link-addr-size two
    bind-to-interface Async1
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    session t104_session1
    attach-to-channel
    t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable

    IR1101 SCADA Gateway Configuration

    line 0/2/0
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    interface Async0/2/0
    no ip address
    encapsulation scada
    !
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async 0/2/0
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
     
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable

    SCADA Operations

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Master. Report by Exception is sent to the Master from the Slave. Figure 59 and Figure 60 show the Poll operation from SCADA-Master. Similarly, Control and Report by Exception can also be seen on the Master Analyzer logs.

    Poll

    The Poll operation is performed by the Master. The Master can execute a general Poll in which all the register values are read and sent to the Master, a Poll on a set of registers, or a Poll on a single register. In Figure 59 and Figure 60, we see a general Poll executed on the Slave side. Initially the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on the Master Analyzer of DTM.

    Figure 58 Master Analyzer Logs before Poll Operation

     

    379904.jpg

    Figure 59 Master Analyzer Logs after Poll Operation

     

    379905.jpg

     

    Control

    The control operation basically sends the control command from the SCADA Master to SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 60, Figure 61, and Figure 62 show the Report by Exception sent to the Master for a particular register:

    Figure 60 Slave Register before Control Operation

     

    379990.jpg

    Figure 61 Master Control Control Operation

     

    379991.jpg

    Figure 62 Slave Register after Control Operation

     

    379906.jpg

     

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register are reported to SCADA-Master. This notification can be seen on the Master Analyzer of DTM software. Figure 63, Figure 64, Figure 65, and Figure 66 show the Report by Exception on the analyzer. The other operations such as Poll and Control can be executed, and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to the Master. Figure 63, Figure 64, Figure 65, and Figure 66show the Report by Exception sent to the Master for a particular register:

    Figure 63 Master Analyzer

     

    379907.jpg

    Figure 64 Slave Registers

     

    379992.jpg

    Figure 65 Change in Slave Register Value

     

    379993.jpg

    Figure 66 Master Analyzer after Change in Register Value

     

    379908.jpg

    Dual Control Center

    When a Slave is connected to the DA Gateway via the serial or Ethernet port, then the Master and the Slave can communicate using the T104 or T101 protocol to the dual Control Center. The communication between the Slave and Master can be Ethernet based (T104) or RS232 serial communication (T101) or by means of protocol translation.

    Operations that can be executed when the communication protocol is T104 or T101 or T101- T104 translation are as follows:

    blank.gifPoll (Master > Slave)

    blank.gifControl (Master > Slave)

    blank.gifReport by Exception (Slave > Master) - Notification

    The operations have been executed using a SCADA simulator known as DTM, which has the capability of simulating both Master and the Slave device.

    Implementation Overview

    This document focuses on SCADA protocols such as T101 and T104 and the T101-T104 translation protocols widely used in the Europe Region with Primary and Secondary DSO Control Centers.

    Topology Diagram

    Figure 67 Dual Control Center

     

    379946.jpg

    IP-Based SCADA

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-104.

    Flow Diagram

    As shown in Figure 68, both the DTM Master can read and write the Slave via the DA Gateway, and the Slave can send the Report by Exception to both Master via the DA Gateway over the IP network:

    Figure 68 T104 Control Flow

     

    379964.jpg

    IR807 as DA Gateway or Secondary Substation Router

    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in
    duplex auto
    speed auto
     
    interface Tunnel0
    /*Tunnel to primary control center*/
    ip nat outside
    !
    interface Tunnel1
    /*Tunnel to primary control center*/
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
     
     
     

    IR1101 as DA Gateway or Secondary Substation Router

    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
     
    int fastEthernet 0/0/1 switchport access vlan 1
    !
     
    interface Tunnel0 ip nat outside
    !
    interface Tunnel1 ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
     

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Master. Report by Exception is sent to the Master from the Slave. Figure 69 and Figure 70 show the Poll operation from Dual SCADA-Master belongs to a different control center. Similarly, Control and Report by Exception can also be seen on the Master Analyzer logs.

    SCADA Operations

    Poll

    The Poll operation is performed by the dual Masters. The Masters can execute a general Poll in which all the register values are read and sent to the Master, a Poll on a set of registers, or a Poll on a single register. In Figure 69, Figure 70, Figure 71, and Figure 72, we see a general Poll executed on the Slave side. Initially the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on the Master Analyzer of DTM.

    Figure 69 CC-1 Master Analyzer Logs before Poll Operation

     

    379909.jpg

    Figure 70 CC-2 Master Analyzer Logs before Poll Operation

     

    379994.jpg

    Figure 71 CC-1 Master Analyzer Logs after Poll Operation

     

    379910.jpg

    Figure 72 CC-2 Master Analyzer Logs after Poll Operation

     

    379995.jpg

    Control

    The control operation basically sends the control command from the Dual SCADA Masters to the SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 73, Figure 74, Figure 75, Figure 76, and Figure 77 show the Report by Exception sent to the dual Masters for a particular register:

    Figure 73 Slave Register before Control Operation

     

    379996.jpg

    Figure 74 CC-1 Master Control Control Operation

     

    379997.jpg

    Figure 75 CC-2 Master Control Control Operation

     

    379998.jpg

     

    Figure 76 CC-1 Slave Register after Control Operation

     

    379912.jpg

    Figure 77 CC-2 Slave Register after Control Operation

     

    379913.jpg

     

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register are reported to Dual SCADA-Masters. This notification can be seen on the Master Analyzer of DTM software. Figure 78, Figure 79, Figure 80, Figure 81, Figure 82, and Figure 83 show the Report by Exception on the analyzer. The other operations such as Poll and Control can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 78, Figure 79, Figure 80, Figure 81, Figure 82, and Figure 83 show the Report by Exception sent to both Masters for a particular register:

    Figure 78 CC-1 Master Analyzer

     

    379914.jpg

    Figure 79 CC-2 Master Analyzer

     

    379999.jpg

    Figure 80 Slave Registers

     

    380000.jpg

    Figure 81 Change in Slave Register Value

     

    379915.jpg

    Figure 82 CC-1 Master Analyzer after Change in Register Value

     

    256001.jpg

    Figure 83 CC-2 Master Analyzer after Change in Register Value

     

    256002.jpg

    Legacy SCADA (Raw Socket TCP)

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-101.

    Flow Diagram

    As shown in Figure 84, both the DTM Master can read and write the Slave via the DA Gateway over TCP Raw Socket, and the Slave can send the Report by Exception to both Masters via the DA Gateway over TCP Raw Socket:

    Figure 84 T101 Control Flow

     

    379966.jpg

    IR807 as Raw Socket Client

    interface Async1
    no ip address
    encapsulation raw-tcp
    !
     
    line 4
    /* Raw sockets to two different control centers */
    raw-socket tcp client 172.16.107.11 25000
     
    raw-socket tcp client 172.17.107.11 25000
    databits 8
    stopbits 1
    speed 9600 parity none
    !
     
     
     

    IR1101 as Raw Socket Client

    interface Async0/2/0
    no ip address
    encapsulation raw-tcp
    !
     
    line 0/2/0
    raw-socket tcp client 172.16.107.11 25000
    raw-socket tcp client 172.17.107.11 25000
    databits 8
    stopbits 1
    speed 9600 parity none
    !

    SCADA Operations

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Master. Report by Exception is sent to both Masters from the Slave.

    Figure 85, Figure 86, Figure 87, and Figure 88 show the Poll operation from Dual SCADA Masters. Similarly, Control and Report by Exception can also be seen on both Master Analyzer logs.

    Poll

    The Poll operation is performed by both Masters. The Masters can execute a general Poll in which all the register values are read and sent to the Masters, a Poll on a set of registers or a Poll on a single register. In Figure 85, Figure 86, Figure 87, and Figure 88, we see a general Poll executed on the Slave side. Initially the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on both Masters+ analyzer of DTM.

    Figure 85 CC-1 Master Analyzer Logs before Poll Operation

     

    256003.jpg

    Figure 86 CC-2 Master Analyzer Logs before Poll Operation

     

    256004.jpg

    Figure 87 CC-1 Master Analyzer Logs after Poll Operation

     

    379916.jpg

    Figure 88 CC-2 Master Analyzer Logs after Poll Operation

     

    379917.jpg

    Control

    The control operation basically sends the control command from the SCADA Master to SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 89, Figure 90, Figure 91, Figure 92, and Figure 93 show the Report by Exception sent to the Master for a particular register:

    Figure 89 Slave Register before Control Operation

     

    379918.jpg

    Figure 90 CC-1 Master Control Operation

     

    256005.jpg

    Figure 91 CC-2 Master Control Operation

     

    379919.jpg

    Figure 92 CC-1 Slave Register after Control Operation

     

    256006.jpg

    Figure 93 CC-2 Slave Register after Control Operation

     

    379921.jpg

     

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register are reported to the SCADA-Master. This notification can be seen on the Master Analyzer of DTM software. Figure 94, Figure 95, Figure 96, Figure 97, Figure 98, and Figure 99 show the Report by Exception on the analyzer. The other operations such as Poll and Control can be executed, and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 94, Figure 95, Figure 96, Figure 97, Figure 98, and Figure 99 show the Report by Exception sent to both Masters for a particular register:

    Figure 94 CC-1 Master Analyzer

     

    379922.jpg

    Figure 95 CC-2 Master Analyzer

     

    379923.jpg

    Figure 96 Slave Registers

     

    256007.jpg

    Figure 97 Change in Slave Register Value

     

    256008.jpg

    Figure 98 CC-1 Master Analyzer after Change in Register Value

     

    379924.jpg

    Figure 99 CC-2 Master Analyzer after Change in Register Value

     

    256009.jpg

    SCADA Gateway

    Protocol Validated

    The protocol we have validated for this release is IEC 60870-5-101 and IEC 60870-5-104.

    Figure 100 T101 to T104 Protocol Translation Control Flow

     

    379968.jpg

    As shown in Figure 100, both DTM Masters can read and write the Slave via the DA Gateway using protocol translation, and the Slave can send the Report by Exception to both Masters via the DA Gateway using protocol translation.

    IR807 SCADA Protocol Translation

    interface Async1
    no ip address
    encapsulation scada
    !
     
    line 4
    databits 8
    stopbits 1
    speed 9600 parity none
    !
     
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async1
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    tcp-connection 1 local-port 25001 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1 sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable

    IR1101 SCADA Protocol Translation

    interface Async0/2/0
    no ip address
    encapsulation scada
    !
     
    line 0/2/0
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
     
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async0/2/0
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    tcp-connection 1 local-port 25001 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    SCADA Operations

    The Master and the Slave can communicate via the network. Poll and Control operations are initiated from the Masters. Report by Exception is sent to both Masters from the Slave. Figure 101, Figure 102, Figure 103, and Figure 104 show the Poll operation from Dual SCADA-Masters. Similarly, Control and Report by Exception can also be seen on both Master Analyzer logs.

    Poll

    The Poll operation is performed by the Master. The Master can execute a general Poll in which all the register values are read and sent to the Master, a Poll on a set of registers, or a Poll on a single register. In Figure 101, Figure 102, Figure 103, and Figure 104, we see a general Poll executed on the Slave side. Initially the Master Analyzer is empty; however, when the General Interrogation command is executed, the values of all the registers are displayed on both Master Analyzer of DTM.

    Figure 101 CC-1 Master Analyzer Logs before Poll Operation

     

    379925.jpg

    Figure 102 CC-2 Master Analyzer Logs before Poll Operation

     

    379926.jpg

    Figure 103 CC-1 Master Analyzer Logs after Poll Operation

     

    256010.jpg

    Figure 104 CC-2 Master Analyzer Logs after Poll Operation

     

    256011.jpg

     

     

     

     

     

     

     

     

     

    Control

    The control operation basically sending the control command from the both SCADA Master to SCADA Slave for the purpose of controlling the operation of end devices. The control command can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 105, Figure 106, Figure 107, Figure 108, and Figure 109 show the Report by Exception sent to both Masters for a particular register:

    Figure 105 Slave Register before Control Operation

     

    379927.jpg

    Figure 106 CC-1 Master Control Operation

     

    379928.jpg

    Figure 107 CC-2 Master Control Operation

     

    379929.jpg

    Figure 108 CC-1 Slave Register after Control Operation

     

    379931.jpg

     

    Figure 109 CC-2 Slave Register after Control Operation

     

    379932.jpg

    Report by Exception

    Report by Exception is initiated by the Slave, which is connected to the DA Gateway. Changes to the value of the Slave register changes, are reported to both SCADA-Masters. This notification can be seen on both Master Analyzers of the DTM software. Figure 110, Figure 111, Figure 112, Figure 113, Figure 114, and Figure 115 show the Report by Exception on the analyzer. The other operations, such as Poll and Control, can be executed and the results can be seen on the analyzer. The value of Double Point Register (#200) is changed and the same is reported to both Masters. Figure 110, Figure 111, Figure 112, Figure 113, Figure 114, and Figure 115 show the Report by Exception sent to both Masters for a particular register:

    Figure 110 CC-1 Master Analyzer

     

    256012.jpg

    Figure 111 CC-2 Master Analyzer

     

    256013.jpg

    Figure 112 Slave Registers

     

    379933.jpg

    Figure 113 Change in Slave Register Value

     

    379934.jpg

    Figure 114 CC-1 Master Analyzer after Change in Register

     

    379935.jpg

    Figure 115 CC-2 Master Analyzer after Change in Register Value

     

    379936.jpg

    IEC 61850

    This section covers the implementation of the solution architecture for MMS and GOOSE. The architecture involves the communication between SCADA to IEDs and IEDs to IEDs.

    For design and conceptual understanding of this section please refer to the “Distribution Automation Solution Architecture” chapter of the Design Guide. To enable the network to allow MMS and GOOSE traffic, the following additional configurations are needed:

    blank.gifHER and FAR Configuration for MMS

    blank.gifHER and MMS Configuration for GOOSE

    HER and FAR Configuration for MMS

    Figure 116 shows the flow of MMS traffic from SCADA to the IEDs. This section covers the configuration required on HER and FAR to enable communication between SCADA and the MMS device.

    Figure 116 IEC 61850 MMS Communication Flow with IEDs in Local LAN and Extended LAN

     

    258370.jpg

    Note: No additional configuration on the HER is needed.

    SCADA in the control center connects to the loopback 0 address on the FAR on a particular port number. This connection from the SCADA control center is translated to a local address of the MMS device using NAT. The loopback address is enabled as part of ZTD. For ZTD and the loopback addressing, please refer to IoT Gateway Onboarding and Management.

    The MMS device can reside in the local LAN or in the Extended LAN as shown in the Figure 116 above. These devices are in a private network; therefore, NAT configuration is required. This configuration helps in scaling when a large number of FARs have to be configured. The following details provide the step-by-step configuration:

    1.blank.gif The MMS device can reside either in the local LAN or in the extended LAN. Either of the connections to the FAR are via the gig port. As shown in the above figure, the ports connected to MMS device are VLAN 300 and SVI created for routing packets from SCADA to MMS device and vice versa. The following configurations have to be added in this step:

    interface Vlan300
    ip address 192.168.0.10 255.255.255.0
     

    2.blank.gif The next step is to add the NAT configuration to the FAR. This configuration enables communication from SCADA to the MMS device. The port connected to the MMS device is configured with “vlan 300", the corresponding “interface vlan 300" is configured with “ip nat inside” and the connectivity to SCADA through which the tunnel interface is configured with “ip nat outside.” The elucidated configurations are as shown below and the lines in bold are the modifications:

    !
    ip nat inside source static tcp 192.168.0.3 102 interface Loopback0 102
    !
    interface GigabitEthernet0/0/5
    switchport trunk allowed vlan 300,600
    switchport mode trunk
    end
    !
    interface Tunnel0
    description IPsec tunnel to HER1.ipg.cisco.com
    ip unnumbered Loopback0
    ip nat outside
    ipv6 unnumbered Loopback0
    qos pre-classify
    tunnel source Cellular0/3/0
    tunnel destination dynamic
    tunnel protection ipsec profile FlexVPN_IPsec_Profile
    end
    !
    interface Vlan300
    ip address 192.168.0.10 255.255.255.0
    ip nat inside
     
    !
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    HER and MMS Configuration for GOOSE

    Figure 117 shows a diagram of the IED-IED communication architecture using GOOSE. This communication can be between two locally-connected GOOSE devices or between two IEDs in different extended LANs. In this section, we will cover the configurations that have to be added on HER and FAR for the GOOSE infrastructure to enable communication. Figure 118 shows a logical diagram of the GOOSE flow over the cellular network:

    Figure 117 IED-IED GOOSE Architectural Flow

     

    258371.jpg

    Figure 118 IED-IED Flow Hub-switched DA Design

     

    258372.jpg

    Before FAR can be configured with L2TPV3, HER acts as the L2TPv3 Hub and the necessary configurations have to be added on the HER. Figure 119 shows HER as L2TPv3 Hub for creating Layer 2 Bridge Domain:

    Figure 119 HER as L2TPv3 Hub

     

    258373.jpg

    In Figure 119, two HERs are shown. Multiple HERs can be used for redundancy. Here the second HER acts as the backup hub. Figure 120 shows the logical flow of GOOSE traffic from one IED to another IED. The configuration on HER and FAR should be understood using both Figure 119 and Figure 120 as references.

    Figure 120 IED-IED GOOSE Logical Flow

     

    258374.jpg

    The hub configurations are as follows:

    1.blank.gif Multiple IR1101s connect to the primary hub via the L2TPv3 tunnel. The hub connects to each IR1101 with a different VC ID. Pseudowire configurations mentions the local interface at which the L2TPv3 tunnel must end. For a single tunnel from the hub to one IR1101, a subinterface is created and tagged with VC ID which is unique to the connecting IR1101. Similar subinterfaces must be created for different IR1101 to connect to the hub.

    pseudowire-class L2TPv3_PW
    encapsulation l2tpv3
    ip local interface Loopback0
    ip tos value 136
    !
    interface GigabitEthernet8.1001
    platform ring rx 256
    encapsulation dot1Q 1001
    xconnect 192.168.150.18 1001 encapsulation l2tpv3 pw-class L2TPv3_PW
     

    2.blank.gif When packets arrive at the hub over the L2TPV3 tunnel from one IR1101, those packets must be untagged and bridged to one VLAN (this guide implements VLAN 1000). After the packets have been bridged to VLAN 1000, they are sent to other IR1101s in the network with their respective VC IDs. Figure 120 clearly shows the flow of packets from one IR1101 to another. The packet from Device 1 is sent to Hub with VC ID 1001. This VC ID 1001 is removed and sent to the bridge interface to which all the other L2TPv3 tunnels are connected. The received packet from Device 1 is tapped by other tunnel interfaces. The packet is sent over the other L2TPv3 after tagging it with the respective VC ID. The following configuration provides the untagging and bridging:

    interface GigabitEthernet10
    platform ring rx 256
    no ip address
    negotiation auto
    service instance 1001 ethernet
    encapsulation dot1q 1001
    rewrite ingress tag pop 1 symmetric
    l2protocol forward
    bridge-domain 1000
    !

    3.blank.gif In this step, if another HER needs to be connected, then the Layer 2 trunk needs to be established between the ports connecting the HERs and the configurations done in the previous two steps have to be repeated. This is labeled as Step 4 and Step 5 in Figure 119.

    At the FAR side, the configurations are simple. Refer to Figure 119 and Figure 120 for the topological diagram and the logical flow of GOOSE traffic to comprehend the following configuration. The FAR configurations are as follows:

    1.blank.gif The pseudowire configurations are similar to the pseudo wire configured on the Hub.

    pseudowire-class L2TPv3_PW
    encapsulation l2tpv3
    ip local interface Loopback0
    ip tos value 136
     

    2.blank.gif In this step, the xConnect configurations have to made on VLAN, which is used to connect to the IED. In this guide, we are using VLAN 600 to connect to the IED. The following configuration lines display the necessary configurations required to configure xConnect on FAR:

    interface Vlan600
    description "GOOSE_INTERCAB"
    no ip address
    xconnect 192.168.150.1 1001 encapsulation l2tpv3 pw-class PW_L2TPV3
    backup peer 192.168.150.2 1001 pw-class PW_L2TPV3
     
     

    Note: Avoid using default routes on FAR to achieve better Layer 2 resiliency timers.

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    End-to-End Application Use Case Scenarios

    This chapter includes the following major topics:

    blank.gifVolt/VAR

    blank.gifFault Location, Isolation, and Service Restoration

    Volt/VAR

    The main purpose of Volt/VAR Control (VVC) is to maintain acceptable voltage levels at all points along the distribution feeder under all loading conditions. For optimizing the movement of electric energy, it is necessary to minimize the reactive power flows, which is done locally by reactive power compensation equipment such as capacitor banks.

    The advanced Volt/VAR Optimization (VVO) application will be using two-way communication infrastructure and remote control capability for capacitor banks, and voltage-regulating transformers, to optimize the energy delivery efficiency at the distribution level. In fact, the reactive power flow creates a voltage drop on an inductive element of wires. So, in order to keep the voltage always within certain limits, the reactive power flow and voltage control must be considered together. Therefore, we call it VVC (Volt/VAR Control). For the voltage and reactive power control, Load Tap Changer (LTC) transformers, switched shunt capacitors, and step voltage regulators are used. A minimum requirement for voltage control is the ability of the operator to maintain the voltage on the feeder at an acceptable range by changing the position of a movable tap changer on a voltage regulator.

    Note: Volt/VAR Control = Power Factor Regulation + Conservation Voltage Regulation

    Please refer to the Design Guide for more information about the Volt/VAR architecture and infrastructure setup. For this Implementation Guide, we have chosen the radial feeder setup for simulating the Volt/VAR use case.

    Volt/VAR Devices

    The devices involved in the Volt/VAR use case are listed in Table 15:

    Table 15 Volt/VAR Devices

    Device

    Location

    Description

    End of Line Voltage Monitor

    At 1.0 in Feeder line

    To monitor the end of the line voltage

    Cap Bank Controller 1

    At 0.25 in Feeder line

    To monitor the voltage and On/Off CapBank

    Cap Bank Controller 2

    At 0.50 in Feeder line

    To monitor the voltage and On/Off CapBank

    Cap Bank Controller 3

    At 0.75 in Feeder line

    To monitor the voltage and On/Off CapBank

    Load Tap Controller

    At Substation

    To raise/lower load tap

    Substation Meter

    At Substation

    To monitor substation device status/reading

    Data Points

    The data points involved in the Volt/VAR use case are listed in Table 16:

    Table 16 Volt/VAR Devices Data Points

    Device

    Register Type

    Description

    End of Line Voltage Monitor

    Measured Value, Short Floating Point

    Voltage at End of line

    Cap Bank Controller 1

    Double Point Information

    Cap Bank Controller - Status

    Measured Value, Short Floating Point

    Voltage at CapBank Controller

    Cap Bank Controller 2

    Double Point Information

    Cap Bank Controller - Status

    Measured Value, Short Floating Point

    Voltage at CapBank Controller

    Cap Bank Controller 3

    Double Point Information

    Cap Bank Controller - Status

    Measured Value, Short Floating Point

    Voltage at CapBank Controller

    Load Tap Controller

    Measured Value, Short Floating Point

    LTC Position

    Single Point Information

    To raise LTC

    Single Point Information

    To lower LTC

    Substation Meter

    Measured Value, Short Floating Point

    Power (kW)

    Measured Value, Short Floating Point

    Q-Power (kVAR)

    Measured Value, Short Floating Point

    Power Factor

    Measured Value, Short Floating Point

    Losses (kW)

    Measured Value, Short Floating Point

    Substation Meters

    Volt/VAR Use Case Simulation Components

    The entire event sequence of the Volt/VAR use case is simulated using the Triangle MicroWork’s DTM application with the help of the Java script.

    Table 17 describes the components involved in Volt/VAR simulation:

    Table 17 Volt/VAR Simulation Components

    Role

    Component / Application

    Description

    Version

    SCADA Control Center

    TMW’s DTM application

    Triangle MicroWork’s DTM application is used to simulate the SCADA Control Center functionality.

    DTM v1.3.1.4

    Outstation Devices/IEDs

    TMW’s DTM application

    Triangle MicroWork’s DTM application is used to simulate the Outstation / IEDs devices.

    DTM v1.3.1.4

    Remote Terminal Unit

    Eximprod’s Virtual RTU

    Eximprod’s Virtual RTU application is used to simulate Substation RTU functionality.

    ES200 v2.12.6883

    SCADA Control Center General Configuration

    The following steps detail the common SCADA Control Center configuration for Volt/VAR Control and FLISR use cases.

    1.blank.gif Choose the DTM Role as DTM Master from the Tools > Configure DTM Services menu.

    Figure 121 DTM SCADA Control Server Role

     

    379863.jpg

    2.blank.gif Choose the correct network interface adapter in the Adapters tab.

    Figure 122 DTM SCADA Control Center Adapter Configuration

     

    379864.jpg

    3.blank.gif The chosen network interface adapter would be used for communication between the DTM Master and the DTM Slave/Client PC.

    Outstation General Configuration

    Outstation or IEDs are configured in the DTM machine. There are five IEDs and one substation monitoring device. All six devices are simulated in the TMW's DTM application.

    Start the DTM service in the client machine with the role as Client, and Master IP pointing to the SCADA Control Center.

    Figure 123 DTM Outstation Role

     

    379865.jpg

    Note: When the DTM Master is loaded with the Volt/VAR workspace and the DTM service is started in the Client, then the entire outstation configuration is automatically loaded into the client machine as well as the outstation or IED data points per the details in Figure 124:

    Figure 124 DTM Outstation Data Points

     

    379866.jpg

    Eximprod Virtual Remote Terminal Unit

    Eximprod's Virtual RTU is installed on the Industrial Router located in the substation. The Control Center and outstation device data points mapping are configured on the Virtual RTU using Eximprod's ES200 Windows application.

    blank.gifEximprod's ES200 installation guide is available at the following URL:

    blank.gif http://www.epg.ro/wp-content/uploads/2017/09/ES200-Datasheet-public.pdf

    blank.gifVirtual RTU IOx application life cycle management guide is available at the following URL:

    blank.gif https://www.cisco.com/c/en/us/td/docs/solutions/Verticals/Utilities/FAN/Virtual- RTU/IG/CU-VRTU-IG/CU-VRTU-IG.html

    Alternatively, the virtual RTU application can also be installed from the Local Manager GUI. Please refer to the link for installation steps in the IOx Local Manager Guide at the following URL:

    blank.gif https://www.cisco.com/c/en/us/td/docs/routers/access/800/software/guides/iox/lm/reference-guide/1-2-0/iox_local_manager_ref_guide.html

    Launch the ES200 application and complete the following steps to configure the Control Center data points and the Outstation device points.

    Control Center and IED Channel Configuration

    1.blank.gif Launch the ES200 application and click New Project.

    Figure 125 Eximprod Create New Project

     

    379867.jpg

    2.blank.gif Create a Control Center.

    Figure 126 Eximprod Create Control / Command Center

     

    379868.jpg

    3.blank.gif Choose Equipment Process as IEC104 Slave and provide the SCADA Control Center IP and Port number. Continue with the default settings in other fields.

    4.blank.gif Create an IED.

    Figure 127 Eximprod Create IED / Outstation

     

    379869.jpg

    5.blank.gif Choose Equipment Process as IEC104 Master and provide the IED IP and Port number. Continue with the default settings in other fields.

    6.blank.gif Repeat Steps 2 and 3 to create all Control Center and IEDs.

    Figure 128 Eximprod Complete Control Center and IED Created

     

    379870.jpg

    Outstation Data Points

    7.blank.gif Create IED data points with appropriate register types. Right-click on the IED Register List to add a register.

    Figure 129 Eximprod IED Data Point Creation

     

    379871.jpg

    8.blank.gif Provide the starting address and number of register to create.

    Figure 130 Eximprod IED Data Point Register Configuration

     

    379872.jpg

    Data Points Mapping to Control Center

    9.blank.gif Repeat Steps 5 and 6 to create Control Center data points for all the IED data points.

    10.blank.gif Map the IED data points to Control Center data points.

    Figure 131 Eximprod Control Center and IED Data Points Mapping

     

    379873.jpg

    11.blank.gif Map all IED data points to Control Center data points and save the database.

    12.blank.gif To export the Virtual RTU database to Industrial Router, choose File > Export Project.

    Figure 132 Eximprod Export Project

     

    379874.jpg

    13.blank.gif Provide IOx IP, SSH Port, username and PEM file as private key file and then click Connect.

    Figure 133 Eximprod Export Project - Connect to ESRemote

     

    379875.jpg

    14.blank.gif Choose the correct database to export from the Open dialogue box. Click OK to continue.

    Figure 134 Eximprod License Info

     

    379876.jpg

    15.blank.gif Click OK to continue.

    Figure 135 Eximprod DB Upload Status

     

    379877.jpg

    VAR Control (Power Factor Regulation)

    VAR Control is achieved with the Capacitor Bank Controller On/Off operation.

    Event Sequence Diagram

    Figure 136 Volt/VAR—VAR Control Sequence Diagram

     

    379937.jpg

    Use Case Steps

    1.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    2.blank.gif The Volt/VAR Optimization processor processes the data received from the devices and makes a control command decision based on the power factor calculation.

    3.blank.gif The control command is sent to the RTU via SCADA to the capacitor banks to close capacitor bank controller N by writing in a Double Point Register of T104.

    4.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    5.blank.gif The above steps are repeated for all the capacitor bank controllers on the feeder line to maintain a power factor value always close to value 1.

    VAR Control Use Case Simulation

    1.blank.gif Import the Volt/VAR workspace, which is available in Appendix E: End-to-End Application Use Case Scenarios.

    Figure 137 DTM Import Workspace

     

    379878.jpg

    2.blank.gif Start all the host machines.

    Figure 138 DTM VVC Start All Hosts

     

    379879.jpg

    3.blank.gif Update the Remote IP address of all the RTU devices.

    Figure 139 DTM VVC Channel IP Config

     

    379880.jpg

    4.blank.gif Make sure all the channels are connected.

    Figure 140 DTM VVC Channel Status

     

    379881.jpg

    5.blank.gif Start all the scripts.

    Figure 141 DTM VVC Start All Scripts

     

    379882.jpg

    6.blank.gif Start the simulation by clicking Auto Play or Next.

    Figure 142 DTM VVC Simulation Auto Play

     

    379883.jpg

    7.blank.gif The script, initialize the Outstation data points to default values.

    Figure 143 DTM VVC Data Points Initialization

     

    379884.jpg

    8.blank.gif Data points from the two CSV files are applied appropriately by the simulation script to simulate the real time Volt/VAR events sequence.

    Figure 144 DTM VVC Event Class Polling

     

    379885.jpg

    9.blank.gif The Volt/VAR Optimization processor processes the data received from the devices and makes a control command decision based on the power factor calculation.

    10.blank.gif The control command is sent to the RTU via SCADA to the capacitor banks to close the Capacitor Bank Controller 3.

    Figure 145 DTM VVC Cap Bank Controller Closing

     

    379886.jpg

    11.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    Figure 146 DTM VVC Event Class Polling with CBC3 Closed

     

    379887.jpg

    12.blank.gif All the above steps are repeated for all capacitor bank controllers on the feeder line to maintain a power factor value always close to 1 at all the points in the feeder line.

    Figure 147 DTM VVC All 3 Cap Bank Controller Closed

     

    379888.jpg

    13.blank.gif To stop the simulation, click Auto Play again.

    14.blank.gif To re-start the simulation, click Restart.

    Voltage Control (Conservation Voltage Reduction)

    Conservation Voltage Reduction (CVR) can be achieved by moving the Load Tap Controller up or down to maintain the Power Factor close to 1.

    Event Sequence Diagram

    Figure 148 Volt/VAR—CVR Sequence Diagram

     

    379938.jpg

    Use Case Steps

    1.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    2.blank.gif The Volt/VAR Optimization processor processes the data received from the devices and makes a control command decision based on the power factor calculation.

    3.blank.gif Control command is sent to the RTU via SCADA to the LTC to Lower/Raise LTC.

    4.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    5.blank.gif All the above steps are repeated to maintain Power Factor value always close to value 1.

    CVR Use Case Simulation

    Follow the steps 1 to 8, in VAR Control Use Case Simulation.

    1.blank.gif After following the steps above, this is the ninth step.

    2.blank.gif Control command is sent to the RTU via SCADA to the LTC to Lower/Raise LTC by writing in a command register. LTC is lowered to -2, by the script.

    Figure 149 DTM CVR LTC Lowering

     

    379889.jpg

    3.blank.gif Event class data poll to the following devices from the RTU:

    blank.gifSubstation meter, poll Measured Value (Short Floating Point) registers

    blank.gifAll Capacitor Bank Controller(s), poll Measured Value (Short Floating Point) and Double Point registers

    blank.gifEnd-of-Line voltage monitor, poll Measured Value (Short Floating Point) register

    Figure 150 DTM CVR Event Class Polling

     

    379890.jpg

    4.blank.gif All the above steps are repeated to maintain Power Factor value always close to 1, at all points in the feeder line.

    Figure 151 DTM CVR End of Simulation

     

    379891.jpg

    Fault Location, Isolation, and Service Restoration

    FLISR is the process for dealing with fault conditions on the electrical grid. When a fault occurs in a section of the grid, first identify the fault location and isolate the smallest possible section affected by the fault. Then restore the power to the larger possible section of the grid.

    The goal of the FLISR to minimize the fault affect area with a very short turnaround time, by identifying the fault location, isolating the fault section, and restoring the power to remaining section of the grid within short turnaround time.

    Event Sequence Diagram

    Figure 152 FLISR—Semi-Automatic Sequence Diagram

     

    379939.jpg

    Use Case Steps

    1.blank.gif Remote Fault Indicator (RFI) 1 reports to Distribution Management System (DMS) whenever it encounters a fault.

    2.blank.gif Re-closer 2 opens and send a report to DMS when it encounters a temporary fault.

    3.blank.gif Remote Control Switch (RCS) 2 reports no voltage status to DMS.

    4.blank.gif RCS 2 closes after 15 seconds and re-opens immediately.

    5.blank.gif RFI 1 reports fault for the second time.

    6.blank.gif RCS 2 opens after 40 seconds and reports status.

    7.blank.gif Re-closer 2, closes after 40 seconds, reopens and locks out permanently, and reports status to DMS.

    8.blank.gif DMS determines to issue a close command to RCS 3.

    9.blank.gif DMS issues a close command to RCS 3.

    FLISR Use Case Simulation

    1.blank.gif Load the FLISR workspace by importing into DTM. The FLISR workspace can be found in Appendix E: End-to-End Application Use Case Scenarios.

    2.blank.gif Start all the host machines.

    Figure 153 DTM FLISR Start All Hosts

     

    379892.jpg

    3.blank.gif Start the FLISR DTM Simulation script.

     

    4.blank.gif Simulate the fault by changing the RFI1 data once.

    Figure 154 DTM FLISR Execute the RFI Script Once

     

    379893.jpg

    Note: The FLISR use case steps 1 to 9 are fully automated by the scripts

    Figure 155 DTM FLISR Simulation Completed

     

    379894.jpg
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    High Availability at Various Layers

    High Availability has been implemented at the following layers:

    blank.gifHeadend Router Level Redundancy

    blank.gifDual Control Center

    blank.gifIPv6 Backhaul

    blank.gifIoT Gateway WAN Backhaul Redundancy over Cellular/Ethernet

    blank.gifIoT Gateway WAN Backhaul Redundancy over Cellular/Cellular

    Note: Throughout this chapter, configurations captured for IoT Gateway (also referred to as FAR) are for reference purposes only. They need not be configured manually. When the Bootstrapped IoT Gateway is deployed at the desired deployment location, configurations are pushed by FND as part of Zero Touch. Please refer to Appendix B: FND Zero Touch Deployment Profiles.

    Headend Router Level Redundancy

    As covered in the Design Guide, the IKEv2 Load Balancer feature is used to simulate HER redundancy within a single control center. The IKEv2 connection requests coming in from the remote FARs (acting as FlexVPN clients) are distributed among the HER present within a control center (acting as FlexVPN gateways).

    HSRP and IKEv2 CLB mechanism is configured specifically on the FlexVPN server side, whereas IKEv2 redirect mechanism is configured on both the server and the client.

    This section covers the configuration details used to implement the IKEv2 Load balancer feature using IPv4 backhaul in this solution.

    Figure 156 HER Redundancy within a Control Center

     

    379945.jpg

    Headend Router

    On the server side, a single HSRP group is configured comprising the cluster elements (aka Headend Routers or HERs) for load balancing. The HSRP master that is the active router also plays the role of the CLB master to receive the connection requests from remote clients (aka FARs) and redirects those requests to the least loaded CLB slave.

    1.blank.gif Log in to each HER in the cluster and configure the following commands on the WAN interface to configure an HSRP group. Ensure that the priority is set differently for each cluster member since the active router with higher priority will become the CLB master.

    !
    interface GigabitEthernet0/0/0
    ip address 10.10.100.151 255.255.255.0
    standby version 2
    standby 1 ip 10.10.100.150
    standby 1 priority 110
    standby 1 name cluster1
    exit
    !
     

    2.blank.gif Configure the load management mechanism on each cluster element as shown below:

    !
    crypto ikev2 cluster
    standby-group cluster1
    slave priority 90
    slave max-session 100
    no shutdown
    exit
    !
     

    3.blank.gif Activate the IKEv2 redirect mechanism on each cluster member using the following command globally:

    !
    crypto ikev2 redirect gateway init
    !

    Field Area Router

    On the client side, configuration is minimal since FlexVPN clients only need to know the Virtual IP (VIP) address of the HSRP cluster.

    1.blank.gif Activate the IKEv2 redirect mechanism on each remote FlexVPN client using the following command:

    !
    crypto ikev2 redirect client
    !
     

    2.blank.gif Point each client to the cluster VIP to connect to under the FlexVPN client configuration section as shown below:

    !
    crypto ikev2 client flexvpn FlexVPN_Client
    peer 1 10.10.100.150
    client connect Tunnel1
    !
     

    Note: For the complete set of working configurations on HER and FAR, please refer to Appendix C: FlexVPN Configurations.

    Dual Control Center

    As covered in the Design Guide, to simulate control center redundancy from the FAR perspective, two independent clusters of FlexVPN gateways are enabled where each HER cluster represents one control center thereby providing a dual control center topology as shown below.

    Figure 157 Dual Control Center Topology

     

    379946.jpg

    The remote FAR will form two active VPN tunnels, one with each control center. Within each control center though, IKEv2 CLB over IPv4 backhaul will still be used to simulate HER redundancy.

    The following configuration shows the specific steps needed on the FAR to achieve this:

    !
    interface Tunnel1
    description IPSec tunnel-1 to HER Cluster1
    ip unnumbered Loopback0
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet2/1
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    end
    !
     
    interface Tunnel2
    description IPSec tunnel-2 to HER Cluster2
    ip unnumbered Loopback0
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet2/1
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    end
    !
     
    crypto ikev2 client flexvpn FlexVPNClient_1
    peer 1 10.10.100.150
    client connect Tunnel1
    !
     
    crypto ikev2 client flexvpn FlexVPNClient_2
    peer 1 10.10.101.100
    client connect Tunnel2
    !

    IPv6 Backhaul

    This section provides the sample FlexVPN config needed on the CGR and HER to bring up the tunnel over the IPv6 backhaul. It includes a virtual template configuration on the hub that allows multiple spoke sessions to be established.

    The configuration contains all of the standard building blocks commonly seen within IPv4 backhaul-based FlexVPN with a notable difference being the tunnel mode that uses GRE IPv6 for IPv6 transport address. The tunnel source contains the interface name that has the IPv6 address configured while the tunnel destination directly references the peer IPv6 address on the spoke. For the communication between the hub and the spoke to be successful, the encryption algorithm, hashing algorithm, and Diffie-Hellman group should match between the hub and the spoke. This guide uses X.509 certificate-based authentication.

    Note: The IKEv2 Load Balancer feature is currently supported only with IPv4 addressing. An enhancement DDTS filed CSCvc92001 exists to add support to this feature for IPv6 addressing.

    Field Area Router

    Note: The listed configuration is for reference purposes only because they are pushed by FND as part of PnP bootstrapping, followed by ZTD.

    ipv6 unicast-routing
    ipv6 cef
    !
    aaa new-model
    aaa authorization network FlexVPN_Author_v6 local
    !
    crypto ikev2 authorization policy FlexVPN_v6_Author_Policy
    route set interface
    !
    crypto ikev2 proposal FlexVPN_v6_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FLexVPN_v6_IKEv2_Policy
    proposal FlexVPN_v6_IKEv2_Proposal
    !
     
    crypto ikev2 profile FlexVPN_v6_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication remote rsa-sig
    authentication local rsa-sig
    pki trustpoint LDevID
    dpd 120 3 periodic
    aaa authorization group cert list FlexVPN_Author_v6 FlexVPN_v6_Author_Policy
    virtual-template 1
    !
    crypto IPSec transform-set FlexVPN_v6_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode transport
    !
    crypto IPSec profile FlexVPN_v6_IPSec_Profile
    set transform-set FlexVPN_v6_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_v6_IKEv2_Profile
    !
    interface Loopback0
    ip address 192.168.150.6 255.255.255.255
    ipv6 address 2001:DB8:BABA:FACE:6C1C:D5F4:B98E:11B3/128
    ipv6 enable
    !
    interface GigabitEthernet2/2
    no switchport
    no ip address
    duplex auto
    speed auto
    ipv6 address 2001:DB8:10:62::1000/64
    !
    ipv6 route ::/0 2001:DB8:10:62::1
    !
    interface Tunnel1
    description ipv6 tunnel to FAN-PHE-HER2
    no ip address
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet2/2
    tunnel mode gre ipv6
    tunnel destination 2001:DB8:1010:903::5
    tunnel protection IPSec profile FlexVPN_v6_IPSec_Profile
    !
    interface Virtual-Template1 type tunnel
    no ip address
    ip nhrp network-id 1
    ip nhrp shortcut virtual-template 1
    ip nhrp redirect ipv6 unnumbered Loopback0
    tunnel mode gre ipv6
    tunnel protection IPSec profile FlexVPN_v6_IPSec_Profile
    end
    !

    Headend Router

    Note: HER configuration is a one-time manual configuration.

    ipv6 unicast-routing
    !
    aaa new-model
    aaa authorization network FlexVPN_Author_v6 local
    !
    crypto ikev2 authorization policy FlexVPN_v6_Author_Policy
    route set interface
    !
    crypto ikev2 proposal FlexVPN_v6_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FlexVPN_v6_IKEv2_Policy
    proposal FlexVPN_v6_IKEv2_Proposal
    !
    !
    crypto ikev2 profile FlexVPN_v6_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication local rsa-sig
    authentication remote rsa-sig
    pki trustpoint LDevID
    dpd 30 3 periodic
    aaa authorization group cert list FlexVPN_Author_v6 FlexVPN_v6_Author_Policy
    virtual-template 1
    !
    crypto IPSec transform-set FlexVPN_v6_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode transport
    !
    crypto IPSec profile FlexVPN_v6_IPSec_Profile
    set transform-set FlexVPN_v6_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_v6_IKEv2_Profile
    responder-only
    !
    interface Loopback0
    no ip address
    ipv6 address 2001:DB8:BABA:FACE::2/64
    ipv6 enable
    !
    interface GigabitEthernet0/0/7
    description connected to port8 on fan-phe-dmz-switch (ie5k_rr07)
    no ip address
    negotiation auto
    cdp enable
    ipv6 address 2001:DB8:1010:903::5/64
    ipv6 enable
    !
    ipv6 route ::/0 2001:DB8:1010:903::22
    !
    interface Virtual-Template1 type tunnel
    no ip address
    ipv6 unnumbered Loopback0
    ipv6 enable
    tunnel mode gre ipv6
    tunnel path-mtu-discovery
    tunnel protection IPSec profile FlexVPN_v6_IPSec_Profile
    !

    IoT Gateway WAN Backhaul Redundancy over Cellular/Ethernet

    The Secondary Substation Router or DA Gateways can also be commonly referred to as the IoT Gateway or as FAR.

    Secure tunnels are established between the IoT Gateway and the HERs. On the IoT Gateway, the tunnel could be established over a cellular or Ethernet interface, with the tunnel terminating on the same HER. The primary tunnel is established over a cellular interface. The secondary (or backup) tunnel is established over an Ethernet interface. The primary/backup tunnels would operate in active/standby, which means:

    blank.gifFailover—If the primary tunnel fails, the secondary tunnel would be activated.

    blank.gifRecovery—If the primary tunnel is up, the secondary tunnel would be de-activated.

    blank.gifThis automatic failover/recovery is handled with the help of EEM script.

    The following sections are enumerated in detail:

    blank.gifHead End Router Configuration

    blank.gifIoT Gateway Configuration

    blank.gifEEM Script—Automatic Failover/Recovery

    Head End Router Configuration

    The following lines are the necessary configurations required on the HER to establish a tunnel with the FAR.

    Note: HER configuration is a one-time manual configuration.

    !
    !
    aaa authorization network FlexVPN_Author local
    !
    crypto ikev2 authorization policy FlexVPN_Author_Policy
    route set interface
    route set access-list FlexVPN_Client_Default_ipv4_Route
    route set access-list ipv6 FlexVPN_Client_Default_ipv6_Route
    !
    crypto ikev2 redirect gateway init
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FlexVPN_IKEv2_Policy
    proposal FlexVPN_IKEv2_Proposal
    !
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication local rsa-sig
    authentication remote rsa-sig
    pki trustpoint LDevID
    dpd 30 3 periodic
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy
    virtual-template 1
    !
    crypto ikev2 fragmentation
    !
    crypto ikev2 cluster
    standby-group DMZ_NW
    slave priority 90
    slave max-session 100
    no shutdown
    !
    crypto isakmp invalid-spi-recovery
    !
    crypto IPSec security-association replay disable
    crypto IPSec security-association replay window-size 512
    !
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode transport
    !
    crypto IPSec profile FlexVPN_IPSec_Profile
    set transform-set FlexVPN_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_IKEv2_Profile
    responder-only
    !
    interface GigabitEthernet2
    description DMZ Interface
    ip address <Public DMZ IP>
    standby use-bia
    standby version 2
    standby 72 ip <Public DMZ Virtual IP>
    standby 72 priority 200
    standby 72 preempt
    standby 72 name DMZ_NW
    negotiation auto
    !
    interface Virtual-Template1 type tunnel
    description to establish tunnels from the multiple IoT Gateways.
    ip unnumbered Loopback0
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
     
    !
    ip access-list standard FlexVPN_Client_Default_ipv4_Route
    permit 192.168.103.100 ## Advertising FND’s IP
    permit 192.168.150.1 ## Advertising HER’s Loopback IP
    !
    ipv6 access-list FlexVPN_Client_Default_ipv6_Route
    permit ipv6 any any
    ! It’s recommended to advertise specific host routes
    !

    IoT Gateway Configuration

    The configuration on the FAR is pushed from the FND:

    blank.gifTunnel 0 is the primary tunnel and it is established over cellular.

    blank.gifTunnel 1 is the secondary tunnel and it is established over Ethernet.

    Both tunnels use the same IPSec tunnel protection mode, with both the tunnels connecting to the same public IP address configured on HER. The configurations that follow are the configurations required to establish the FlexVPN tunnels, the tunnel configurations, and the interface configurations.

    The following configuration, which uses the interface names that are applicable to IR1101, is applicable to other platforms using the appropriate interface naming convention applicable to the platform on which the configuration is applied.

    Note: The listed configuration is for reference purpose only since FND pushes it as part of ZTD.

    !
    !
    aaa authorization network FlexVPN_Author local
    crypto pki certificate map FlexVPN_Cert_Map 1
    issuer-name co cn = ipg-rsa-root-ca ## CN of the Utility PKI CA server.
    !
    crypto ikev2 authorization policy FlexVPN_Author_Policy
    route set interface ## Advertising Routes from IoT Gateway to HER
    route set access-list FlexVPN_Client_ipv4_LAN
    route set access-list ipv6 FlexVPN_Client_ipv6_LAN
    !
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FlexVPN_IKEv2_Policy
    proposal FlexVPN_IKEv2_Proposal
    !
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication remote rsa-sig
    authentication local rsa-sig
    pki trustpoint LDevID
    dpd 120 3 periodic
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy
    !
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode transport
    !
    crypto IPSec profile FlexVPN_IPSec_Profile
    set transform-set FlexVPN_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_IKEv2_Profile
    !
    ip access-list standard FlexVPN_Client_ipv4_LAN
    permit 192.168.150.42 ## Loopback IP of IoT Gateway.
    permit 192.168.0.0 0.0.0.255
    !
    ipv6 access-list FlexVPN_Client_ipv6_LAN
    sequence 20 permit ipv6 host 2001:DB8:BABA:FACE:3D13:2C3E:3B2:C1D1 any
    !
    interface Tunnel0
    description Primary IPSec tunnel to HER1.ipg.cisco.com
    ip unnumbered Loopback0
    tunnel source Cellular0/1/0
    tunnel destination <HER_Public_IP_address>
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    interface Tunnel1
    description IPSec tunnel to HER1.ipg.cisco.com
    ip unnumbered Loopback0
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet0/0/0
    tunnel destination <HER_Public_IP_address>
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    interface Cellular0/1/0
    mtu 1430
    ip address negotiated
    dialer in-band
    dialer idle-timeout 0
    dialer-group 1
    ipv6 enable
    pulse-time 1
    !
    interface GigabitEthernet0/0/0
    ip address dhcp
    !
    !
     

    In the above configuration:

    blank.gifTunnel0 is established over cellular interface

    blank.gifTunnel1 is established over Ethernet interface

    blank.gifBoth the tunnels are protected with the same IPSec Profile

    Note: The listed configuration is for reference purpose only since the FND pushes it as part of ZTD. The cellular interface is tracked for line-protocol status. If the cellular interface goes down, then tunnel 1 comes up over Ethernet. This redundancy configuration on the IoT Gateway helps minimize the traffic loss and maintain connectivity to the control center.

    EEM Script—Automatic Failover/Recovery

    In a normal operational mode, FAR connects to HER securely over Tunnel0. Therefore, Tunnel 0 becomes the primary mode of communication between the FAR and the HER. When connectivity over cellular interface fails, the communication between the FAR and the HER must be restored and secured. This restoration of connectivity between the FAR and the HER over a different medium (Ethernet) must be operational and this failover operation of the network helps minimize packet loss and enables secure connectivity over Tunnel 1. This activation of Tunnel1 to carry the load in the event of Tunnel0 failure is referred as Failover.

    When connectivity over cellular is restored, the FAR and the HER can communicate securely using Tunnel 0. This switchover from tunnel 1 to tunnel 0 is known as Recovery.

    For the switchover to be automatic, EEM script is configured on the FAR. The EEM script tracks the line-protocol of the cellular interface. The following configuration is applied on the FAR.

    Note: The listed configuration is for reference purpose only since the FND pushes it as part of ZTD.

    !
    !
    track 20 interface Cellular0 line-protocol
    delay down 5
    !
    event manager applet ACTIVATE_SECONDARY
    event track 20 state down
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 200"
    action 4 cli command "interface GigabitEthernet0/0/0 "
    action 5 cli command "no shutdown"
    action 6 cli command "end"
    action 99 syslog msg "NOTE: Cellular down, switching to Ethernet "
    !
    event manager applet DEACTIVATE-SECONDARY
    event track 20 state up
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "interface GigabitEthernet0/0/0 "
    action 4 cli command "shutdown"
    action 5 cli command "end"
    action 99 syslog msg "NOTE: Connectivity Restored on Cellular"
    !
    !
     

    Note: The above configuration is applicable to other secondary substation router platforms and DA Gateways as well, with only difference being the change in the interface names across platforms.

    IoT Gateway WAN Backhaul Redundancy over Cellular/Cellular

    The Secondary Substation Router or DA Gateways can also be commonly referred to as the IoT Gateway or the FAR.

    Secure tunnels are established between the IoT Gateway and the HERs. On the IoT Gateway, the tunnel is established over a cellular interface with the tunnel terminating on the same HER. The tunnel is established over the primary cellular interface. A secondary cellular interface provides a redundant feature for the tunnel terminating on the same HER. The tunnel terminating on the HER can be established over the primary or the secondary cellular interface. The primary/backup cellular interfaces would operate in active/standby, which means:

    blank.gifFailover-If the tunnel over primary cellular interface fails, the tunnel would be activated on the secondary cellular interface.

    blank.gifRecovery-If the tunnel over primary cellular interface is up, the secondary cellular interface would be de-activated.

    blank.gifThis automatic failover/recovery is handled with the help of EEM script.

    Please refer to the Design Guide, which articulates the various scenarios discussed in this guide, for more information.

    The following sections are enumerated in detail:

    blank.gifHead End Router Configuration

    blank.gifIoT Gateway Configuration

    blank.gifActive/Standby-Shut Scenario

    blank.gifActive/Standby-UP Scenario

    blank.gifActive/Active Load Sharing

    blank.gifWAN Monitoring

    Head End Router Configuration

    The following lines are the necessary configurations required on the HER to establish a tunnel with the FAR.

    Note: The HER configuration is a one-time manual configuration.

    The HER configurations are the same as listed in Head End Router Configuration. The following lines needed to be added in order to enable inter HER routing.

    !
    router ospf 1
    redistribute static subnets
    network 192.168.10.0 0.0.0.255 area 0
    !

    IoT Gateway Configuration

    This section discusses the implementation of the redundant scenarios covered in the Design Guide.

    For Active/Standby, the configuration on the FAR is pushed from the FND:

    blank.gifTunnel 0 is the FlexVPN tunnel and it is established over the primary cellular interface.

    blank.gifIf there is a failure to connect over primary cellular interface, connectivity is established over the secondary cellular interface.

    The tunnel connects to the same public IP address configured on HER. The configurations that follow are the configurations required to establish the FlexVPN tunnels, the tunnel configurations, and the interface configurations.

    The following configuration, which uses the interface names that are applicable to IR1101, is applicable to other platforms using the appropriate interface naming convention applicable to the platform on which the configuration is applied. The below configuration is applicable to both Active/Standby and Active/Active scenarios as illustrated in the Design Guide.

    Note: The listed configuration is for reference purpose only since FND pushes it as part of ZTD.

    !
    !
    aaa authorization network FlexVPN_Author local crypto pki certificate map FlexVPN_Cert_Map 1
    issuer-name co cn = ipg-rsa-root-ca ## CN of the Utility PKI CA server.
    !
    crypto ikev2 authorization policy FlexVPN_Author_Policy
    route set interface ## Advertising Routes from IoT Gateway to HER route set access-list FlexVPN_Client_ipv4_LAN
    route set access-list ipv6 FlexVPN_Client_ipv6_LAN
    !
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal encryption aes-cbc-256
    integrity sha256 group 14
    !
    crypto ikev2 policy FlexVPN_IKEv2_Policy proposal FlexVPN_IKEv2_Proposal
    !
    crypto ikev2 profile FlexVPN_IKEv2_Profile match certificate FlexVPN_Cert_Map identity local dn
    authentication remote rsa-sig authentication local rsa-sig pki trustpoint LDevID
    dpd 120 3 periodic
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy
     
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac mode transport
    !
    crypto IPSec profile FlexVPN_IPSec_Profile set transform-set FlexVPN_IPSec_Transform_Set set pfs group14
    set ikev2-profile FlexVPN_IKEv2_Profile
    !
    ip access-list standard FlexVPN_Client_ipv4_LAN permit 192.168.150.42 ## Loopback IP of IoT Gateway. permit 192.168.0.0 0.0.0.255
    !
    ipv6 access-list FlexVPN_Client_ipv6_LAN
    sequence 20 permit ipv6 host 2001:DB8:BABA:FACE:3D13:2C3E:3B2:C1D1 any
    !
    interface Tunnel0
    description Primary IPSec tunnel to HER1.ipg.cisco.com ip unnumbered Loopback0
    tunnel source <on Availability>
    tunnel destination <HER1_Public_IP_address>
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    !
    interface Tunnel1
    description IPSec tunnel to HER1.ipg.cisco.com ip unnumbered Loopback0
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet0/0/0
    tunnel destination <HER 2_Public_IP_address>
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    interface Cellular0/1/0 mtu 1430
    ip address negotiated dialer in-band
    dialer idle-timeout 0
    dialer-group 1 ipv6 enable pulse-time 1
     
    interface Cellular0/3/0 mtu 1430
    ip address negotiated dialer in-band
    dialer idle-timeout 0
    dialer-group 1 ipv6 enable pulse-time 1
     
    !
    interface GigabitEthernet0/0/0 ip address dhcp
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    Active/Standby-Shut Scenario

    In this case, the secondary cellular interface is in down state. In a normal operational mode, FAR connects to HER securely over Tunnel0 over the primary cellular interface (Cellular 0/1/0). This is shown in Figure 158:

    Figure 158 Dual-LTE (Active/Standby): Operational State—Traffic over Primary Radio

     

    258375.jpg

    Therefore, Tunnel 0 over Cellular0/1/0 becomes the primary mode of communication between the FAR and the HER. When connectivity over the primary cellular interface fails, the communication between the FAR and the HER must be restored and secured. This restoration of connectivity between the FAR and the HER over the secondary cellular interface (Cellular 0/3/0) must be operational and this failover operation of the network helps minimize packet loss. This activation of Cellular 0/3/0 to carry the load in the event of Cellular 0/1/0 failure is referred as Failover. The switching of traffic from Primary to Secondary is shown in Figure 159:

    Figure 159 Dual-LTE (Active/Standby): Failover State—Traffic over Secondary Radio

     

    258376.jpg

    When connectivity over Cellular 0/1/0 is restored, the FAR and the HER can communicate securely using Tunnel 0 over Cellular 0/1/0. This switchover of tunnel source from Cellular 0/3/0 to Cellular 0/1/0 is known as Recovery. This is shown in Figure 160:

    Figure 160 Dual-LTE (Active/Standby): Recovery State—Switching back to Primary Radio

     

    258377.jpg

    For the switchover to be automatic, EEM script is configured on the FAR. The sequence of states from Failover to Recovery is shown in the state diagram in Figure 161. The configuration below the diagram implements the state transitions.

    Figure 161 Active/Standby-Shut Scenario: Resiliency Life Cycle (EEM Script State Diagram)

     

    258378.jpg

    Note: The listed configuration is for reference purpose only since the FND pushes it as part of ZTD.

    1.blank.gif The tunnel traffic is over Primary Radio.

    2.blank.gif Failure of the primary cellular interface is detected from the following configuration:

    track 3 interface Cellular0/1/0 line-protocol
    delay up 120
    track 6 interface Cellular0/3/0 line-protocol
    !
    !
    ip route 0.0.0.0 0.0.0.0 Cellular0/1/0 track 3
    ip route 0.0.0.0 0.0.0.0 Cellular0/3/0 track 6
    !
     

    3.blank.gif As soon as a failure is detected on the primary radio, the following lines are executed to activate the Secondary Radio:

    event manager applet Failover
    event track 3 state down
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "interface cellular 0/3/0"
    action 4 cli command "no shutdown"
    action 5 cli command "interface tunnel0"
    action 6 cli command "tunnel source Cellular0/3/0"
    action 7 cli command "end"
    action 99 syslog msg "NOTE: Cellular 0/1/0 down, switching to Cellular 0/3/0 "
     

    4.blank.gif Once the secondary LTE is activated, the tunnel traffic now flows through Secondary Radio.

    5.blank.gif Radio A is continuously monitored using the same commands configured in Step 2 above. The WAN monitoring feature can also used to bring up Radio A from any glitch.

    6.blank.gif If Radio A comes up, we wait for 120s until the tunnel traffic can be switched to Radio A. This is to ensure that the primary radio (Radio A) is stable. This configuration is also covered in Step 2 above by the command “delay up 120.”

    7.blank.gif Once the stability of Radio A is ensured, the following lines are executed to switch the tunnel traffic back to Radio A and the secondary radio (Radio B) is shut.

    event manager applet Recovery
    event track 3 state up
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "interface tunnel0"
    action 4 cli command "tunnel source Cellular0/1/0"
    action 5 cli command "interface cellular 0/3/0"
    action 6 cli command "shutdown"
    action 7 cli command "end"
    action 99 syslog msg "NOTE: Connectivity Restored on Cellular 0/1/0"

    Active/Standby-UP Scenario

    In this case, the secondary cellular interface is in UP state.

    In a normal operational mode, FAR connects to HER securely over Tunnel0 over the primary cellular interface (Cellular 0/1/0). Therefore, the Tunnel 0 over Cellular0/1/0 becomes the primary mode of communication between the FAR and the HER. As shown in Figure 162, Tunnel traffic flows through the primary radio.

    Figure 162 Dual-LTE (Active/Standby): Operational State—Traffic over Primary Radio

     

    258379.jpg

    When connectivity over the primary cellular interface fails, the communication between the FAR and the HER must be restored and secured. This restoration of connectivity between the FAR and the HER over the secondary cellular interface (Cellular 0/3/0) must be operational and this failover operation of the network helps minimize packet loss. The change in tunnel source to Cellular 0/3/0 to carry the load in the event of Cellular 0/1/0 failure is referred as Failover. This is shown in Figure 163:

    Figure 163 Dual-LTE (Active/Standby): Failover State—Traffic over Secondary Radio

     

    258380.jpg

    When connectivity over Cellular 0/1/0 is restored, the FAR and the HER can communicate securely using Tunnel 0 over Cellular 0/1/0. This switchover of tunnel source from Cellular 0/3/0 to Cellular 0/1/0 is known as Recovery.

    Figure 164 Dual-LTE (Active/Standby): Recovery State—Switching back to Primary Radio

     

    258381.jpg

    For the switchover to be automatic, EEM script is configured on the FAR. The sequence of states from Failover to Recovery is shown in the state diagram in Figure 165. The configuration following the diagram implements the state transitions.

    Figure 165 Active/Standby-UP Scenario: Recovering back to Preferred Radio Case

     

    258382.jpg

    Note: The listed configuration is for reference purpose only since the FND pushes it as part of ZTD.

    1.blank.gif The tunnel traffic is over the Primary Radio.

    2.blank.gif Failure of the primary cellular interface is detected from the following configuration:

    track 3 interface Cellular0/1/0 line-protocol
    delay up 120
    track 6 interface Cellular0/3/0 line-protocol
    !
    !
    ip route 0.0.0.0 0.0.0.0 Cellular0/1/0 track 3
    ip route 0.0.0.0 0.0.0.0 Cellular0/3/0 track 6
    !
     

    3.blank.gif As soon as a failure is detected on the Primary Radio, the following lines are executed to switch the tunnel traffic to utilize Secondary Radio (Radio B):

    event manager applet Failover
    event track 3 state down
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "interface tunnel0"
    action 4 cli command "tunnel source Cellular0/3/0"
    action 5 cli command "end"
    action 99 syslog msg "NOTE: Cellular 0/1/0 down, switching to Cellular 0/3/0 "
     

    4.blank.gif Once the tunnel source is switched, the tunnel traffic now flows through the Secondary Radio.

    5.blank.gif Radio A is continuously monitored using the same commands configured in Step 2. WAN monitoring feature can also used to bring up Radio A from any glitch.

    6.blank.gif If Radio A comes up, we wait for 120s until the tunnel traffic can be switched to Radio A. This is to ensure that the Primary Radio (Radio A) is stable. This configuration is also covered in Step 2 above by the command “delay up 120.”

    7.blank.gif Once the stability of Radio A is ensured, the following lines are executed to switch the tunnel traffic back to Radio A:

    event manager applet Recovery
    event track 3 state up
    action 1 cli command "enable"
    action 2 cli command "configure terminal"
    action 3 cli command "interface tunnel0"
    action 4 cli command "tunnel source Cellular0/1/0"
    action 5 cli command "end"
    action 99 syslog msg "NOTE: Connectivity Restored on Cellular 0/1/0"

    Active/Active Load Sharing

    The FAR configuration is pushed from FND and a sample has been provided on page 164.

    In this operational mode, FAR connects to HER1 securely over Tunnel0 over the primary cellular interface (Cellular 0/1/0) and FAR connects to HER2 securely over Tunnel1 over the secondary cellular interface (Cellular 0/3/0). This is shown in Figure 166:

    Figure 166 Active/Active Scenario

     

    258383.jpg

    When connectivity over tunnel0 fails, tunnel1 would be up, which allows the traffic to be routed through the second tunnel. If Active/Standby is implemented, then tunnel 1 has to be shutdown. If Active/Active is implemented, both tunnel 0 and tunnel 1 should be in the up state. The traffic flow, recovery, and failover is shown as a state diagram in Figure 167:

    Figure 167 Dual-LTE (Active/Active): Traffic Flow Resiliency Cycle

     

    258384.jpg

    Both the LTEs and the respective tunnel interfaces are up. The traffic can take any path to the control center. This approach provides more redundancy and bandwidth and ensures that the data loss is minimized to the maximum extent.

    1.blank.gif The Tunnel0 traffic flows through Radio A and the Tunnel1 traffic flows through Radio B.

    2.blank.gif Load Balancing of traffic happens as there exists two paths to the destination.

    3.blank.gif Failure of one Radio does not affect the flow traffic, as the traffic flows over the other active tunnel.

    4.blank.gif QoS policies are configured to ensure that critical traffic is given priority. This is discussed in the subsequent sections.

    5.blank.gif WAN monitoring can be used to recover the radio.

    6.blank.gif If the failed Radio is recovered, load balancing of the traffic continues and the process repeats.

    WAN Monitoring

    In the previous sections, we talked about EEM scripts that have been used to switch from one radio to another. Sometimes due to a glitch in the hardware, the possibility exists that one of the radio may fail. In such cases, a simple manual 'shut'/'no shut' CLI execution on the device may trigger the radio to come up. However, if the FARs are located in a remote place where a console connection is unlikely, then a manual 'shut'/'no shut' operation is not possible. However, a substitute to this manual operation is the WAN monitoring feature available in the latest software for the FAR. Using this feature, the glitch in the hardware can be overcome to recover the failed radio. This feature can be implemented in both Active/Standby and Active/Active scenarios. Following is an example configuration, which can be extended to recover both interfaces.

    track 10 ip sla 10
    ip sla 10
    icmp-echo <DMZ IP>
    timeout 6000
    frequency 300
    ip sla schedule 10 life forever start-time now
    event manager environment wanmon_if_list {cellular0/1/0 {ipsla 10}}
    event manager policy tm_wanmon.tcl authorization bypass
     

    For design and conceptual understanding, please refer to the “WAN Backhaul Redundancy” section in the Design Guide.

    IP Services

    This chapter includes the following major topics:

    blank.gifQuality of Service

    blank.gifNetwork Address Translation

    Quality of Service

    Quality of Service (QoS) refers to the ability of the network to provide priority service to selected network traffic. Improved and more predictable network service can be offered by:

    blank.gifSupporting dedicated bandwidth—that is, cellular links have different upload/download bandwidth/throughput

    blank.gifReducing loss characteristics—DA real-time traffic prioritization

    blank.gifAvoiding and managing network congestion—multi-services traffic

    blank.gifSetting traffic priorities across the network—multi-services capabilities

    QoS is a key feature when designing the multi-services Distribution Automation solution since traffic from AMI, DA, Remote Workforce, and network management use cases must be differentiated and prioritized. Estimated transport losses, delay, and jitter introduced by networking devices must be understood when forwarding sensitive data, particularly when a WAN backhaul link offers a limited amount of bandwidth.

    In the case of dual-WAN interfaces with different bandwidth capabilities (that is, cellular), QoS policies must be applied to prioritize the traffic allowed to flow over these limited bandwidth links, to determine which traffic can be dropped, etc.

    On a multi-services DA solution, QoS DiffServ and CoS (IEEE 802.1p) can apply to traffic categorized as:

    blank.gifIPv4 Traffic—Distribution Automation (FLISR), protocol translation (RTU monitoring), and network management

    blank.gifIPv6 Traffic—IPV6 IED AMI and network management

    blank.gifLayer 2 Traffic—Distribution Automation such as IEC 61850 GOOSE/SV traffic switches between Ethernet interfaces and IEC 61850 traffic bridged over WAN links between substations

    Figure 168 lists the different priorities among Distribution Automation traffic:

    Figure 168 DA Traffic Priority Chart

     

    256236.jpg

    Following the IETF Differentiated Service model, the DA Solution will deliver a service type that is based on the QoS specified by each packet. This specification can occur in different ways, for example using the IP Precedence bit settings in IP packets or source and destination addresses. The QoS specification can be used to classify, mark, shape, and police traffic, and to perform intelligent queuing.

    The SSR or DA Gateway performs QoS actions on Layer 3 (cellular, Ethernet) interfaces. The sequencing of QoS actions on egress traffic is as follows:

    blank.gifClassification

    blank.gifMarking

    blank.gifQueuing

    Upstream QoS—From DA IED to SCADA

    The DA IEDs perform the marking functionality. If the IED does not have capability to mark the IP packets, the DA Gateway or SSR can perform the marking functionality. On egress WAN interface, queuing will be performed. High priority FLISR and GOOSE traffic will be assigned in Low Latency Queue. Medium priority traffic like Volt-Var and MMS will be assigned in Class-Based Weighted Fair Queue 1 and IOT FND Network management traffic will be assigned in Class-Based Weighted Fair Queue2. The rest of the traffic will be treated with normal priority and will be assigned to a default queue. All QoS is done based on DSCP marking.

    Note: It is recommended to define queuing bandwidth as a remaining percentage instead of values so that the same policy can be applied across Cellular or Ethernet backhaul interfaces

    Headend Router: ASR 1000, which supports a rich QoS feature set from Cisco IOS, provides DoS protection for applications like the FND and SCADA. For complete details, refer to the latest documentation link:

    blank.gif https://www.cisco.com/c/en/us/products/collateral/routers/asr-1002- router/solution_overview_c22-449961.html

    Figure 169 Upstream QoS IED to SCADA

     

    256237.jpg

    Raw Socket QoS Marking

    If RTU is connected to DA Gateway via the R232 async serial interface and if the raw socket feature is enabled, marking will be enabled on serial line.

    Class-based policy is not supported on serial interfaces. The packets received on the serial interface should be marked on the corresponding line of the serial interface. The following configurations should be applied on the line interface:

    raw-socket tcp dscp <value>
     

    After marking the packets from the serial interface, these marked packets can be prioritized at the WAN interface using the following class-map and policy-map. Since the SCADA traffic is encapsulated before it is sent out via the tunnel interface on the WAN interface, the QoS pre-classify command should be applied on the corresponding tunnel interface.

    Queuing on DA Gateway WAN Port

    policy-map SS
    class FLISR
    priority percent 10
    class volt-var
    bandwidth remaining-percent 20
    class NMS
    bandwidth percent remaining-percent 30
    class class-default
     
     
     
     
     
     
     
     
     

    Network Address Translation

    This section corresponds to the “Network Address Translation” section of the Design Guide, which can be referred to for more details. The IoT Gateway is capable of supporting both NAT and non-NAT scenarios described in the Design Guide. The NAT scenario has been implemented in this Implementation Guide.

    Note: This configuration is pushed as part of ZTD (during device registration phase). The FND leverages the SCADA ICT Enablement profiles discussed in Appendix D: SCADA ICT Enablement Profiles.

    Note: The Loopback address is assigned to the IoT Gateway during the Tunnel provisioning phase of ZTD, and it uniquely represents the IoT Gateway in the solution.

    In Figure 170, the SCADA Master communicates with the IP address of the IoT Gateway (represented by its loopback address—for example, 192.168.150.21) on port number 2404.

    Figure 170 Network Address Translation

     

    256238.jpg

    Once the communication reaches the IoT Gateway, the NAT table is referenced for the IoT Gateway IP (for example, 192.168.150.21) and port 2404, and the IP address and port number of the IED is derived.

    Communication is then forwarded to IED IP (192.168.0.2) on port 2404. In summary:

    blank.gifThe SCADA communication on 192.168.150.21 on port 2404 is sent to IED1:2404

    blank.gifThe SCADA communication on 192.168.150.22 on port 2404 is sent to IED2:2404

    NAT on IR1101

    The Layer 3 port connected to the IED is VLAN1, which should be enabled as a NAT inside interface. The Layer 3 port providing connectivity to the control center is the FlexVPN IPSec Tunnel interface, which should be enabled as a NAT outside interface.

    Note: The Fast Ethernet ports of IR1101 are Layer 2. The Layer 3 IP address is configured on the VLAN interface:

    !
    interface Loopback0
    ip address 192.168.150.21 255.255.255.0 /* configured during ZTD */
    !
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1
    switchport access vlan 1
    !
    interface Tunnel0
    ip nat outside
    !
    ! /* NAT the traffic on Loopback_IP:2404 to 192.168.0.2(IED_IP):2404 */
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404

    NAT on IR807

    The Layer 3 port connected to the IED is FastEthernet1, which should be enabled as a NAT inside interface. The Layer 3 port providing connectivity to the control center is the FlexVPN IPSec Tunnel interface, which should be enabled as a NAT outside interface.

    Note: The Fast Ethernet ports of the IR807 are Layer 3:

    !
    interface Loopback0
    ip address 192.168.150.22 255.255.255.0 /* configured during ZTD */
    !
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in
    duplex auto
    speed auto
     
    !
    interface Tunnel0 ip nat outside
    !
    ! /* NAT the traffic on Loopback_IP:2404 to 192.168.0.2(IED_IP):2404 */
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
     

    NAT configurations on other IoT Gateway platforms (like CGR1000 and IR8xx platforms) would be similar to the ones captured above.

    Appendix A: PnP Profiles

    This appendix includes the following major topics:

    blank.gifBootstrapping Template for IPv4 Network

    blank.gifBootstrapping Template for IPv6 Network

    blank.gifBootstrapping Template for Provisioning and ZTD at the Deployed Location

    Bootstrapping Template for IPv4 Network

    Bootstrapping of the IoT Gateways that would NOT be deployed behind the NAT

    These substitutions need to be performed in the following bootstrapping template:

    blank.giffingerprint 'CFA2613029B11E461430A2DC5F624147CCEE6469' must be replaced by the fingerprint of the RSA CA server that issues the certificate to the FND, TPS and FAR.

    blank.gifip host entries of RA, TPS & NTP servers must be updated.

    Bootstrap Profile Name: IPv4-BOOTSTRAP

    <#if far.isRunningIos()>
    <#-- New section to support Day 0 operation -->
    <#if isBootstrapping??>
    <#assign sublist=far.eid?split("+")[0..1]>
    <#assign pid=sublist[0]>
    <#assign sn=sublist[1]>
    !
    file prompt quiet
    <#if far.bootimage??>
    boot-start-marker
    <#if pid?starts_with("IR1101")>
    boot system bootflash:${far.bootimage}
    <#else>
    boot system flash:${far.bootimage}
    </#if>
    boot-end-marker
    </#if>
    !
    !! ip host configurations
    ip host ra.ipg.cisco.com 172.16.241.2
    ip host tps.ipg.cisco.com 172.16.242.242
    ip host ntp.ipg.cisco.com 10.10.100.100
    ip domain name ipg.cisco.com
    !
    <#if pid?starts_with("IR8") || pid?starts_with("CGR")>
    ntp update-calendar
    ip cef
    </#if>
    ipv6 unicast-routing
    ntp server ntp.ipg.cisco.com
    clock timezone IST 5 30
    !
    !! Enable time-stamps
    service timestamps debug datetime msec localtime show-timezone
    service timestamps log datetime msec localtime show-timezone
    !
    <#if pid?starts_with("IR1101")>
    hostname IR1100_${sn}
    ip forward-protocol nd
    <#elseif pid?starts_with("IR807")>
    hostname IR807_${sn}
    <#elseif pid?starts_with("IR809")>
    hostname IR809_${sn}
    <#elseif pid?starts_with("IR829")>
    hostname IR829_${sn}
    <#elseif pid?starts_with("CGR1240")>
    hostname CGR1240_${sn}
    <#elseif pid?starts_with("CGR1120")>
    hostname CGR1120_${sn}
    </#if>
    !
    aaa new-model
    aaa authentication login default local
    aaa authorization exec default local
    !
    !
    !username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    !
    crypto pki profile enrollment LDevID
    enrollment url http://ra.ipg.cisco.com
    enrollment credential CISCO_IDEVID_SUDI
    !
    crypto key generate rsa label LDevID modulus 2048
    !
    crypto pki trustpoint LDevID
    enrollment mode ra
    enrollment profile LDevID
    serial-number none
    fqdn none
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    revocation-check none
    rsakeypair LDevID 2048
    !
    cgna gzip
    !
    cgna profile cg-nms-tunnel
    add-command show hosts | format flash:/managed/odm/cg-nms.odm
    add-command show interfaces | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 dhcp | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 interface | format flash:/managed/odm/cg-nms.odm
    add-command show version | format flash:/managed/odm/cg-nms.odm
    interval 10
    url https://tps.ipg.cisco.com:9120/cgna/ios/tunnel
    gzip
    !
    do delete /force /recursive flash:archive
    archive
    path flash:/archive
    maximum 8
    !
    !! configure WSMA profiles
    wsma profile listener config_profile
    transport https path /wsma/config
    wsma profile listener exec_profile
    transport https path /wsma/exec
    !! mapping WSMA profile to WSMA agent configsÖ
    wsma agent config
    profile config_profile
    wsma agent exec
    profile exec_profile
    !
    !
    ip ssh version 2
    ip ssh rsa keypair-name LDevID
    !
    !
    <#if pid?starts_with("IR110")>
    ip http secure-port 443
    <#else>
    ip http secure-port 8443
    </#if>
    !
    !
    ip http authentication aaa login-authentication default
    ip http client secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http timeout-policy idle 600 life 86400 requests 3
    ip http max-connections 5
    !
    ip http secure-client-auth
    ip http secure-trustpoint CISCO_IDEVID_SUDI
    !
    !ip http client connection timeout 5
    !ip http client connection retry 5
    !
    ! Disabling http server
    no ip http server
    !
    ! Enabling http secure server.
    ip http secure-server
    !
    !
    !
    event manager environment ZTD_SCEP_CGNA_Profile cg-nms-tunnel
    event manager environment ZTD_SCEP_LDevID_trustpoint_name LDevID
    event manager environment ZTD_SCEP_Period 180
    event manager environment ZTD_SCEP_Debug TRUE
    !
    !sparrow event manager directory user policy "bootflash:/managed/scripts"
    event manager directory user policy "flash:/eem"
    event manager policy no_config_replace.tcl type system authorization bypass
    !! Below command will activate the policy..
    event manager policy tm_ztd_scep.tcl type system authorization bypass
    !
    !
    !! When the config is applied, old applets can be removed.
    no event manager applet get-ca-cert
    no event manager applet disable-pnp-sec-enf
    !
    !
    event manager environment ZTD_SCEP_Enabled TRUE
    !
    event manager applet REMOVE_IDEVID_AS_TP
    event timer watchdog name remove-idevid-as-http-client-trustpoint time 30 maxrun 120
    action 1.1 cli command "enable"
    action 1.2 cli command "show crypto pki trustpoints LDevID status"
    action 1.3 string match "*Granted*" "$_cli_result"
    action 1.4 puts "Match Result = $_string_result"
    action 1.5 if $_string_result eq "1"
    action 1.6 puts "EEM:: FAR successfully retrieved LDevID certificate from CA"
    action 1.7 cli command "configure terminal"
    action 1.8 puts "EEM:: Removing CISCO_IDEVID_SUDI to enable Tunnel Provsioning"
    action 1.9 cli command "no ip http client secure-trustpoint CISCO_IDEVID_SUDI"
    action 2.0 puts "Cli result = $_cli_result"
    action 2.1 cli command "do cgna exec profile cg-nms-tunnel"
    action 2.2 puts "EEM:: Removing the applet manager REMOVE_IDEVID_AS_TP as the CLI change is done"
    action 2.3 cli command "no event manager applet REMOVE_IDEVID_AS_TP"
    action 2.4 cli command "exit"
    action 2.5 else
    action 2.6 puts "EEM:: LDevID not Granted yet. Will check after 30 seconds"
    action 3.0 end
    !
    do copy running-config flash:express-setup-config2
    no file prompt quiet
    do term len 30
    !
    !
    !
    exit
    </#if>
    !
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Bootstrapping of IoT Gateways that Would be Deployed behind NAT

    These substitutions need to be performed in the following bootstrapping template:

    blank.giffingerprint 'CFA2613029B11E461430A2DC5F624147CCEE6469' must be replaced by the fingerprint of the RSA CA server that issues the certificate to the FND, TPS and FAR.

    blank.gifip host entries of RA, TPS & NTP servers must be updated.

    Bootstrap Profile Name: IPv4-BOOTSTRAP-NAT

    <#if far.isRunningIos()>
    <#-- New section to support Day 0 operation -->
    <#if isBootstrapping??>
    <#assign sublist=far.eid?split("+")[0..1]>
    <#assign pid=sublist[0]>
    <#assign sn=sublist[1]>
    !
    file prompt quiet
    <#if far.bootimage??>
    boot-start-marker
    <#if pid?starts_with("IR1101")>
    boot system bootflash:${far.bootimage}
    <#else>
    boot system flash:${far.bootimage}
    </#if>
    boot-end-marker
    </#if>
    !
    !! ip host configurations
    ip host ra.ipg.cisco.com <ra-ipv4.ipg.cisco.com>
    ip host tps.ipg.cisco.com <tps-ipv4.ipg.cisco.com>
    ip host ntp.ipg.cisco.com <public-ntp-server-ip>
    !
    ip domain name ipg.cisco.com
    !
    <#if pid?starts_with("IR8") || pid?starts_with("CGR")>
    ntp update-calendar
    ip cef
    </#if>
    ipv6 unicast-routing
    ntp server ntp.ipg.cisco.com
    clock timezone IST 5 30
    !
    !! Enable time-stamps
    service timestamps debug datetime msec localtime show-timezone
    service timestamps log datetime msec localtime show-timezone
    !
    <#if pid?starts_with("IR1101")>
    hostname IR1100_${sn}
    ip forward-protocol nd
    <#elseif pid?starts_with("IR807")>
    hostname IR807_${sn}
    <#elseif pid?starts_with("IR809")>
    hostname IR809_${sn}
    <#elseif pid?starts_with("IR829")>
    hostname IR829_${sn}
    <#elseif pid?starts_with("CGR1240")>
    hostname CGR1240_${sn}
    <#elseif pid?starts_with("CGR1120")>
    hostname CGR1120_${sn}
    </#if>
    !
    aaa new-model
    aaa authentication login default local
    aaa authorization exec default local
    !
    !
    !username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    !
    crypto pki profile enrollment LDevID
    enrollment url http://ra.ipg.cisco.com
    enrollment credential CISCO_IDEVID_SUDI
    !
    crypto key generate rsa label LDevID modulus 2048
    !
    crypto pki trustpoint LDevID
    enrollment mode ra
    enrollment profile LDevID
    serial-number none
    fqdn none
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    revocation-check none
    rsakeypair LDevID 2048
    !
    cgna gzip
    !
    !
    interface loopback999
    description workaround for CSCvb49055
    ip address 169.254.1.1 255.255.255.255
    !
    cgna initiator-profile cg-nms-tunnel
    callhome-url https://tps.ipg.cisco.com:9120/cgna/ios/config
    execution-url https://169.254.1.1:8443/wsma/config
    post-commands
    active
    !
    !
    add-command show hosts | format flash:/managed/odm/FND.odm
    add-command show interfaces | format flash:/managed/odm/FND.odm
    add-command show version | format flash:/managed/odm/FND.odm
    add-command show ipv6 dhcp | format flash:/managed/odm/FND.odm
    add-command show ipv6 interface | format flash:/managed/odm/FND.odm
    gzip
    interval 10
    !
    do delete /force /recursive flash:archive
    do mkdir flash:archive
    archive
    path flash:/archive
    maximum 8
    !
    !! configure WSMA profiles
    wsma profile listener config_profile
    transport https path /wsma/config
    wsma profile listener exec_profile
    transport https path /wsma/exec
    !! mapping WSMA profile to WSMA agent configs
    wsma agent config
    profile config_profile
    wsma agent exec
    profile exec_profile
    !
    !
    ip ssh version 2
    ip ssh rsa keypair-name LDevID
    !
    !
    <#if pid?starts_with("IR110")>
    ip http secure-port 443
    <#else>
    ip http secure-port 8443
    </#if>
    !
    !
    ip http authentication aaa login-authentication default
    ip http client secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http timeout-policy idle 600 life 86400 requests 3
    ip http max-connections 5
    !
    ip http secure-client-auth
    ip http secure-trustpoint CISCO_IDEVID_SUDI
    !
    !ip http client connection timeout 5
    !ip http client connection retry 5
    !
    ! Disabling http server
    no ip http server
    !
    ! Enabling http secure server.
    ip http secure-server
    !
    !
    !
    event manager environment ZTD_SCEP_CGNA_Profile cg-nms-tunnel
    event manager environment ZTD_SCEP_LDevID_trustpoint_name LDevID
    event manager environment ZTD_SCEP_Period 180
    event manager environment ZTD_SCEP_Debug TRUE
    !
    !sparrow event manager directory user policy "bootflash:/managed/scripts"
    event manager directory user policy "flash:/eem"
    event manager policy no_config_replace.tcl type system authorization bypass
    !! Below command will activate the policy..
    event manager policy tm_ztd_scep.tcl type system authorization bypass
    !
    !
    !! When the config is applied, old applets can be removed.
    no event manager applet get-ca-cert
    no event manager applet disable-pnp-sec-enf
    !
    !
    event manager environment ZTD_SCEP_Enabled TRUE
    !
    event manager applet REMOVE_IDEVID_AS_TP
    event timer watchdog name remove-idevid-as-http-client-trustpoint time 30 maxrun 120
    action 1.1 cli command "enable"
    action 1.2 cli command "show crypto pki trustpoints LDevID status"
    action 1.3 string match "*Granted*" "$_cli_result"
    action 1.4 puts "Match Result = $_string_result"
    action 1.5 if $_string_result eq "1"
    action 1.6 puts "EEM:: FAR successfully retrieved LDevID certificate from CA"
    action 1.7 cli command "configure terminal"
    action 1.8 puts "EEM:: Removing CISCO_IDEVID_SUDI to enable Tunnel Provsioning"
    action 1.9 cli command "no ip http client secure-trustpoint CISCO_IDEVID_SUDI"
    action 2.0 puts "Cli result = $_cli_result"
    action 2.1 cli command "do cgna exec profile cg-nms-tunnel"
    action 2.2 puts "EEM:: Removing the applet manager REMOVE_IDEVID_AS_TP as the CLI change is done"
    action 2.3 cli command "no event manager applet REMOVE_IDEVID_AS_TP"
    action 2.4 cli command "exit"
    action 2.5 else
    action 2.6 puts "EEM:: LDevID not Granted yet. Will check after 30 seconds"
    action 3.0 end
    !
    do copy running-config flash:express-setup-config2
    no file prompt quiet
    do term len 30
    !
    !
    !
    exit
    </#if>
    !
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Bootstrapping Template for IPv6 Network

    Bootstrapping of the IoT Gateways that Would NOT be Deployed Behind the NAT

    These substitutions need to be performed in the following bootstrapping template:

    blank.giffingerprint 'CFA2613029B11E461430A2DC5F624147CCEE6469' must be replaced by the fingerprint of the RSA CA server that issues the certificate to the FND, TPS and FAR.

    blank.gifip host entries of RA, TPS & NTP servers must be updated.

    Bootstrap Profile Name: IPv6-BOOTSTRAP

    <#if far.isRunningIos()>
    <#-- New section to support Day 0 operation -->
    <#if isBootstrapping??>
    <#assign sublist=far.eid?split("+")[0..1]>
    <#assign pid=sublist[0]>
    <#assign sn=sublist[1]>
    !
    file prompt quiet
    !
    <#if far.bootimage??>
    boot-start-marker
    <#if pid?starts_with("IR1101")>
    boot system bootflash:${far.bootimage}
    <#else>
    boot system flash:${far.bootimage}
    </#if>
    boot-end-marker
    </#if>
    !
    !! ip host configurations
    ip host ra.ipg.cisco.com 2001:db8:10:241::5921
    ip host tps.ipg.cisco.com 2001:db8:10:242::242
    ip host ntp.ipg.cisco.com 2001:db8:1010:903::2
    !
    ip domain name ipg.cisco.com
    !
    <#if pid?starts_with("IR8") || pid?starts_with("CGR")>
    ntp update-calendar
    ip cef
    </#if>
    ipv6 unicast-routing
    ntp server ntp.ipg.cisco.com
    clock timezone IST 5 30
    !
    !! Enable time-stamps
    service timestamps debug datetime msec localtime show-timezone
    service timestamps log datetime msec localtime show-timezone
    !
    <#if pid?starts_with("IR1101")>
    hostname IR1100_${sn}
    ip forward-protocol nd
    <#elseif pid?starts_with("IR807")>
    hostname IR807_${sn}
    <#elseif pid?starts_with("IR809")>
    hostname IR809_${sn}
    <#elseif pid?starts_with("IR829")>
    hostname IR829_${sn}
    <#elseif pid?starts_with("CGR1240")>
    hostname CGR1240_${sn}
    <#elseif pid?starts_with("CGR1120")>
    hostname CGR1120_${sn}
    </#if>
    !
    aaa new-model
    aaa authentication login default local
    aaa authorization exec default local
    !
    !
    username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    !
    crypto pki profile enrollment LDevID
    enrollment url http://ra.ipg.cisco.com
    enrollment credential CISCO_IDEVID_SUDI
    !
    crypto key generate rsa label LDevID modulus 2048
    !
    crypto pki trustpoint LDevID
    enrollment mode ra
    enrollment profile LDevID
    serial-number none
    fqdn none
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    revocation-check none
    rsakeypair LDevID 2048
    !
    cgna gzip
    !
    cgna profile cg-nms-tunnel
    add-command show hosts | format flash:/managed/odm/cg-nms.odm
    add-command show interfaces | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 dhcp | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 interface | format flash:/managed/odm/cg-nms.odm
    add-command show version | format flash:/managed/odm/cg-nms.odm
    interval 10
    url https://tps.ipg.cisco.com:9120/cgna/ios/tunnel
    gzip
    !
    !
    !
    do delete /force /recursive flash:archive
    do mkdir flash:archive
    archive
    path flash:/archive
    maximum 8
    !
    !
    !
    !
    wsma profile listener config_profile
    transport https path /wsma/config
    wsma profile listener exec_profile
    transport https path /wsma/exec
    !
    wsma agent config
    profile config_profile
    wsma agent exec
    profile exec_profile
    !
    !
    ip ssh version 2
    ip ssh rsa keypair-name LDevID
    !
    !
    <#if pid?starts_with("IR110")>
    ip http secure-port 443
    <#else>
    ip http secure-port 8443
    </#if>
    !
    !
    !
    !
    ip http authentication aaa login-authentication default
    ip http client secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http timeout-policy idle 600 life 86400 requests 3
    ip http max-connections 5
    !
    ip http secure-client-auth
    ip http secure-trustpoint CISCO_IDEVID_SUDI
    !
    !ip http client connection timeout 5
    !ip http client connection retry 5
    !
    ! Disabling http server
    no ip http server
    !
    ! Enabling http secure server.
    ip http secure-server
    !
    !
    !
    event manager environment ZTD_SCEP_CGNA_Profile cg-nms-tunnel
    event manager environment ZTD_SCEP_LDevID_trustpoint_name LDevID
    event manager environment ZTD_SCEP_Period 180
    event manager environment ZTD_SCEP_Debug TRUE
    !
    !sparrow event manager directory user policy "bootflash:/managed/scripts"
    event manager directory user policy "flash:/eem"
    event manager policy no_config_replace.tcl type system authorization bypass
    !! Below command will activate the policy..
    event manager policy tm_ztd_scep.tcl type system authorization bypass
    !
    !
    !! When the config is applied, old applets can be removed.
    no event manager applet get-ca-cert
    no event manager applet disable-pnp-sec-enf
    !
    !
    event manager environment ZTD_SCEP_Enabled TRUE
    !
    event manager applet REMOVE_IDEVID_AS_TP
    event timer watchdog name remove-idevid-as-http-client-trustpoint time 30 maxrun 120
    action 1.1 cli command "enable"
    action 1.2 cli command "show crypto pki trustpoints LDevID status"
    action 1.3 string match "*Granted*" "$_cli_result"
    action 1.4 puts "Match Result = $_string_result"
    action 1.5 if $_string_result eq "1"
    action 1.6 puts "EEM:: FAR successfully retrieved LDevID certificate from CA"
    action 1.7 cli command "configure terminal"
    action 1.8 puts "EEM:: Removing CISCO_IDEVID_SUDI to enable Tunnel Provsioning"
    action 1.9 cli command "no ip http client secure-trustpoint CISCO_IDEVID_SUDI"
    action 2.0 puts "Cli result = $_cli_result"
    action 2.1 cli command "do cgna exec profile cg-nms-tunnel"
    action 2.2 puts "EEM:: Removing the applet manager REMOVE_IDEVID_AS_TP as the CLI change is done"
    action 2.3 cli command "no event manager applet REMOVE_IDEVID_AS_TP"
    action 2.4 cli command "exit"
    action 2.5 else
    action 2.6 puts "EEM:: LDevID not Granted yet. Will check after 30 seconds"
    action 3.0 end
    !
    no file prompt quiet
    exit
    </#if>
    !
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>
     

    Bootstrapping Template for Provisioning and ZTD at the Deployed Location

    Bootstrapping of the IoT Gateways

    These templates are used when the bootstrapping location and deployment location are the same. No manual intervention is need. Once the device is powered with a SIM card inserted, bootstrapping should begin and push the configuration from FND. The following template is an example of the template validated for IR1101. The template can be used for other platforms with minor changes such as the cellular interface.

    <#if far.isRunningIos()>
    <#-- New section to support Day 0 operation -->
    <#if isBootstrapping??>
    <#assign sublist=far.eid?split("+")[0..1]>
    <#assign pid=sublist[0]>
    <#assign sn=sublist[1]>
    !
    file prompt quiet
    !
    <#if far.bootimage??>
    boot-start-marker
    <#if pid?starts_with("IR1101")>
    boot system bootflash:${far.bootimage}
    <#else>
    boot system flash:${far.bootimage}
    </#if>
    boot-end-marker
    </#if>
    !
    !
    ip host ra.ipg.cisco.com 72.163.222.228
    ip host tps.ipg.cisco.com 72.163.222.227
    ip host ntp.ipg.cisco.com 123.108.200.124
    !
    ip domain name ipg.cisco.com
    !
    <#if pid?starts_with("IR8") || pid?starts_with("CGR")>
    ntp update-calendar
    ip cef
    </#if>
    ipv6 unicast-routing
    ntp server ntp.ipg.cisco.com
    clock timezone IST 5 30
    !
    !! Enable time-stamps
    service timestamps debug datetime msec localtime show-timezone
    service timestamps log datetime msec localtime show-timezone
    !
    <#if pid?starts_with("IR1101")>
    hostname IR1100_${sn}
    ip forward-protocol nd
    <#elseif pid?starts_with("IR807")>
    hostname IR807_${sn}
    <#elseif pid?starts_with("IR809")>
    hostname IR809_${sn}
    <#elseif pid?starts_with("IR829")>
    hostname IR829_${sn}
    <#elseif pid?starts_with("CGR1240")>
    hostname CGR1240_${sn}
    <#elseif pid?starts_with("CGR1120")>
    hostname CGR1120_${sn}
    </#if>
    !
    aaa new-model
    aaa authentication login default local
    aaa authorization exec default local
    !
    !
    username ${far.adminUsername} privilege 15 algorithm-type sha256 secret ${far.adminPassword}
    username cisco privilege 15 algorithm-type sha256 secret Cisco@123
    !
    crypto pki profile enrollment LDevID
    enrollment url http://ra.ipg.cisco.com
    enrollment credential CISCO_IDEVID_SUDI
    !
    crypto key generate rsa label LDevID modulus 2048
    !
    crypto pki trustpoint LDevID
    enrollment mode ra
    enrollment profile LDevID
    serial-number none
    fqdn none
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    revocation-check none
    rsakeypair LDevID 2048
    !
    cgna gzip
    !
    interface cellular0/1/0
    description Connection to DMZ UCS
    ip address negotiated
    dialer in-band
    dialer idle-timeout 0
    dialer watch-group 1
    dialer-group 1
    pulse-time 1
    ipv6 enable
    !
    !controller Cellular 0/1/0
    ! lte sim data-profile 1 attach-profile 1 slot 0
    !
    dialer watch-list 1 delay route-check initial 60
    dialer watch-list 1 delay connect 1
    dialer-list 1 protocol ip permit
    dialer-list 1 protocol ipv6 permit
    ip route 0.0.0.0 0.0.0.0 cellular 0/1/0
    !
    !
    !
    interface loopback999
    description workaround for CSCvb49055
    ip address 169.254.1.1 255.255.255.255
    !
    cgna initiator-profile cg-nms-tunnel
    callhome-url https://tps.ipg.cisco.com:9120/cgna/ios/config
    execution-url https://169.254.1.1:443/wsma/config
    post-commands
    active
    !
    !
    add-command show hosts | format flash:/managed/odm/cg-nms.odm
    add-command show interfaces | format flash:/managed/odm/cg-nms.odm
    add-command show version | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 dhcp | format flash:/managed/odm/cg-nms.odm
    add-command show ipv6 interface | format flash:/managed/odm/cg-nms.odm
    gzip
    interval 10
    !
    !
    !
    !
    do delete /force /recursive flash:archive
    do mkdir flash:archive
    archive
    path flash:/archive
    maximum 8
    !
    !
    !
    !
    wsma profile listener config_profile
    transport https path /wsma/config
    wsma profile listener exec_profile
    transport https path /wsma/exec
    !
    wsma agent config
    profile config_profile
    wsma agent exec
    profile exec_profile
    !
    !
    !
    ip ssh version 2
    ip ssh rsa keypair-name LDevID
    !
    !
    <#if pid?starts_with("IR110")>
    ip http secure-port 443
    <#else>
    ip http secure-port 8443
    </#if>
    !
    !
    !
    !
    ip http authentication aaa login-authentication default
    !ip http client secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    !ip http secure-ciphersuite aes-128-cbc-sha aes-256-cbc-sha dhe-aes-128-cbc-sha
    ip http timeout-policy idle 600 life 86400 requests 3
    ip http max-connections 5
    !
    ip http secure-client-auth
    ip http secure-trustpoint CISCO_IDEVID_SUDI
    !
    !ip http client connection timeout 5
    !ip http client connection retry 5
    !
    ! Disabling http server
    no ip http server
    !
    ! Enabling http secure server.
    ip http secure-server
    !
    !
    !
    event manager environment ZTD_SCEP_CGNA_Profile cg-nms-tunnel
    event manager environment ZTD_SCEP_LDevID_trustpoint_name LDevID
    event manager environment ZTD_SCEP_Period 180
    event manager environment ZTD_SCEP_Debug TRUE
    !
    !sparrow event manager directory user policy "bootflash:/managed/scripts"
    event manager directory user policy "flash:/eem"
    event manager policy no_config_replace.tcl type system authorization bypass
    !! Below command will activate the policy..
    event manager policy tm_ztd_scep.tcl type system authorization bypass
    !
    !
    !! When the config is applied, old applets can be removed.
    no event manager applet get-ca-cert
    no event manager applet disable-pnp-sec-enf
    !
    !
    event manager environment ZTD_SCEP_Enabled TRUE
    !
    event manager applet REMOVE_IDEVID_AS_TP
    event timer watchdog name remove-idevid-as-http-client-trustpoint time 30 maxrun 1200
    action 1.1 cli command "enable"
    action 1.2 cli command "show crypto pki trustpoints LDevID status"
    action 1.3 string match "*Granted*" "$_cli_result"
    action 1.4 puts "Match Result = $_string_result"
    action 1.5 if $_string_result eq "1"
    action 1.6 puts "EEM:: FAR successfully retrieved LDevID certificate from CA"
    action 1.7 cli command "configure terminal"
    action 1.8 puts "EEM:: Removing CISCO_IDEVID_SUDI to enable Tunnel Provsioning"
    action 1.9 cli command "no ip http client secure-trustpoint CISCO_IDEVID_SUDI"
    action 2.0 puts "Cli result = $_cli_result"
    action 2.1 cli command "do cgna exec profile cg-nms-tunnel"
    action 2.2 puts "EEM:: Removing the applet manager REMOVE_IDEVID_AS_TP as the CLI change is done"
    action 2.3 cli command "no event manager applet REMOVE_IDEVID_AS_TP"
    action 2.4 cli command "exit"
    action 2.5 else
    action 2.6 puts "EEM:: LDevID not Granted yet. Will check after 30 seconds"
    action 3.0 end
    !
    ! track 1 interface Cellular0/1/0 line-protocol
    ! delay down 5 up 10
    !
    ! event manager applet Default_route_via_Cellular
    !event track 1 state up
    !trigger delay 600
    !action 1.0 cli command "enable"
    !action 1.1 cli command "show run | sec ZTD_SCEP_Enabled"
    !action 1.2 string match "*TRUE" "$_cli_result"
    !action 1.4 puts "Match Result = $_string_result"
    !action 1.5 if $_string_result eq "1"
    !action 1.6 cli command "configure terminal"
    !action 1.7 cli command "ip route 0.0.0.0 0.0.0.0 cellular 0/1/0"
    !action 1.8 puts "Added Default route via Cellular"
    !action 1.9 else
    !action 2.0 puts "Could not added Default route via Cellular"
    !action 2.1 end
    !
    no file prompt quiet
    exit
    </#if>
    !
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Appendix B: FND Zero Touch Deployment Profiles

    This appendix includes the following major topics:

    blank.gifTunnel Provisioning Profiles

    blank.gifDevice Configuration Profiles

    Tunnel Provisioning Profiles

    The Tunnel Provisioning Profile could also be referred as the “Tunnel Group.” For steps to create a new Tunnel group, please refer to the “Creating Tunnel Groups” section of the Cisco IoT FND guide.

    Once the Tunnel group is created, move the IoT Gateways under the appropriate “Tunnel Group.” For steps, please refer to the “Moving FARs to Another Group” section of the Cisco IoT FND Guide.

    Tunnel Group for IPv4 Network

    Tunnel Group Name: IPv4_primary_tunnel_provision Sample csv file to import in FND

    IoT Gateways need to be added into FND for the purpose of management. They could be added to FND by importing a csv file. A sample csv file is shown in Figure 171:

    Figure 171 IoT-Gateway-deployment-over-IPv4-Backhaul-csvfile

     

    256296.jpg

    For more details about various other csv parameters to be used during csv import at FND, please refer to Prepare.csv (Comma-Separated Value) Files to Import New Devices on FND at the following URL:

    blank.gif https://www.cisco.com/c/en/us/support/docs/cloud-systems-management/iot-field-network-director/210446-Prepare-csv-Comma-Separated-Value-fil.html

    Note: To have the IoT Gateway operate in Dual Control Center scenarios, populate the fields for tunnelSrcInterface2 and IPSecTunnelDestAddr2. Leave them empty for Single Control Center scenarios.

    Note: Substitute the IP address with your FND IP address for fnd.ipg.cisco.com in the following template:

    <#-- This template only supports FARs running IOS. -->
    <#if !far.isRunningIos()>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>
     
     
    <#--
     

    For FARs running IOS, configure a FlexVPN client in order to establish secure communications to the HER. This template expects that the HER has been appropriately pre-configured as a FlexVPN server:

    -->
    <#if far.isRunningIos()>
    <#--
    Configure a Loopback0 interface for the FAR.
    -->
    interface Loopback0
    <#--
     

    If the loopback interface ipv4 address property has been set on the CGR, configure the interface with that address. Otherwise, obtain an address for the interface now using DHCP:

    -->
    <#if far.loopbackV4Address??>
    <#assign loopbackIpv4Address=far.loopbackV4Address>
    <#else>
    <#--
     

    Obtain an ipv4 address that can be used to for this FAR's Loopback interface. The template API provides methods for requesting a lease from a DHCP server. The ipv4 address method requires a DHCP client ID and a link address to send in the DHCP request. The third parameter is optional and defaults to “IoT-FND.” This value is sent in the DHCP user class option.

    The API also provides the method “dhcpClientId,” which takes a DHCPv6 Identity association identifier (IAID) and a DHCP Unique IDentifier (DUID) and generates a DHCPv4 client identifier as specified in RFC 4361. This provides some consistency in how network elements are identified by the DHCP server.

    -->
    <#assign loopbackIpv4Address=far.ipv4Address(dhcpClientId(far.enDuid,0),far.dhcpV4LoopbackLink
    ).address>
    </#if>
    ip address ${loopbackIpv4Address} 255.255.255.255
    <#--
     

    If the loopback interface ipv6 address property has been set on the CGR, configure the interface with that address. Otherwise, obtain an address for the interface now using DHCP.

    -->
    <#if far.loopbackV6Address??>
    <#assign loopbackipv6Address=far.loopbackV6Address>
    <#else>
    <#--
     

    Obtain an ipv6 address that can be used to for this FAR's loopback interface. The method is similar to the one used for ipv4, except clients in DHCPv6 are directly identified by their DUID and IAID. IAIDs used for ipv4 are separate from IAIDs used for ipv6, so we can use zero for both requests:

    -->
    <#assign loopbackipv6Address=far.ipv6Address(far.enDuid,0,far.dhcpV6LoopbackLink).address>
    </#if>
    ipv6 address ${loopbackipv6Address}/128 exit
     
    <#--

    Default to using FlexVPN for the tunnel configuration of FARs running IOS.

    -->
    <#if (far.useFlexVPN!"true") = "true">
    <#--
     

    FlexVPN certificate map that matches if the peer (HER) presents a certificate whose issuer common name contains the string given in the FAR property certIssuerCommonName:

    -->
    <#if !(far.certIssuerCommonName??)>
    ${provisioningFailed("FAR property certIssuerCommonName has not been set")}
    </#if>
    crypto pki certificate map FlexVPN_Cert_Map 1 issuer-name co cn = ${far.certIssuerCommonName} exit
     
    <#--
     

    ipv4 ACL that specifies the route(s) FlexVPN will push to the HER. We want the HER to know the route to the CGR's loopback interface:

    -->
    ip access-list standard FlexVPN_Client_ipv4_LAN permit ${loopbackIpv4Address}
    exit
     
    <#--
     

    ipv6 ACL that specifies the route(s) FlexVPN will push to the HER. We want the HER to know the route to the CGR's loopback interface. If a mesh has been configured on this CGR, we want the HER to know the route to the mesh:

    -->
    ipv6 access-list FlexVPN_Client_ipv6_LAN
    <#if far.meshPrefix??>
    permit ipv6 ${far.meshPrefix}/64 any
    </#if>
    sequence 20 permit ipv6 host ${loopbackipv6Address} any exit
    <#-- Enable IKEv2 redirect mechanism on the FlexVPN client --> crypto ikev2 redirect client
     
    <#--
     

    FlexVPN authorization policy that configures FlexVPN to push the CGR LANs specified in the ACLs to the HER during the FlexVPN handshake:

    -->
    crypto ikev2 authorization policy FlexVPN_Author_Policy route set access-list FlexVPN_Client_ipv4_LAN
     
    route set access-list ipv6 FlexVPN_Client_ipv6_LAN route set interface
    exit
     
     
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal encryption aes-cbc-256
    group 14 integrity sha256 exit
    crypto ikev2 policy FLexVPN_IKEv2_Policy proposal FlexVPN_IKEv2_Proposal
    exit
     
     
    <#-- FlexVPN authorization policy is defined locally. --> aaa authorization network FlexVPN_Author local
     
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy authentication remote rsa-sig
    authentication local rsa-sig dpd 120 3 periodic identity local dn
    match certificate FlexVPN_Cert_Map pki trustpoint LDevID
    exit
     
    <#--
     

    If the headend router is an ASR, use a different configuration for the transform set since some ASR models are unable to support the set that we would prefer to use:

    -->
    <#if her.pid?contains("ASR")>
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac mode tunnel
    exit
    <#else>
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha256-hmac mode tunnel
     
    exit
    </#if>
     
    crypto IPSec profile FlexVPN_IPSec_Profile set ikev2-profile FlexVPN_IKEv2_Profile set pfs group14
    set transform-set FlexVPN_IPSec_Transform_Set exit
     
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")> interface Tunnel0
    description IPSec tunnel to ${her.eid} ip unnumbered loopback0
    ipv6 unnumbered loopback0 tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile tunnel source ${wanInterface[0].name}
    exit
     
    <#if !(far.IPSecTunnelDestAddr1??)>
    ${provisioningFailed("FAR property IPSecTunnelDestAddr1 must be set to the destination address to connect this FAR's FlexVPN tunnel to")}
    </#if>
    crypto ikev2 client flexvpn FlexVPN_Client peer 1 ${far.IPSecTunnelDestAddr1} client connect Tunnel0
    exit
     
    </#if>
     
    !
    no event manager environment ZTD_SCEP_Debug
    !
    ip host fnd.ipg.cisco.com 172.16.103.100
    !
    !
    </#if>

    Tunnel Group for IPv6 Network

    Tunnel Group Name: IPv6_primary_tunnel_provision Sample csv file to import in FND

    IoT Gateways need to be added into FND for the purpose of management. They could be added to FND by importing a csv file. A sample csv file is shown in Figure 172:

    Figure 172 IoT-Gateway-deployment-over-IPv6-backhaul-csvfile

     

    256297.jpg

     

    For more details about csv file parameters, please refer to Prepare.csv (Comma-Separated Value) Files to Import New Devices on FND at the following URL:

    blank.gif https://www.cisco.com/c/en/us/support/docs/cloud-systems-management/iot-field-network-director/210446-Prepare-csv-Comma-Separated-Value-fil.html

    Note: Substitute the IP address for fnd.ipg.cisco.com with your FND IP address in the following template. Both the IPv4 and IPv6 address of the FND would be reachable from the IoT Gateway once the Tunnel is established. This template uses the IPv4 address of the FND for the IoT Gateway registration with the FND:

    <#-- This template only supports FARs running IOS. -->
    <#if !far.isRunningIos()>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>
     
     
    <#--
     

    For FARs running IOS, configure a FlexVPN client in order to establish secure communications to the HER. This template expects that the HER has been appropriately pre-configured as a FlexVPN server:

    -->
    <#if far.isRunningIos()>
    <#--
    Configure a Loopback0 interface for the FAR.
    -->
     
    interface Loopback0
    <#--
     

    If the loopback interface ipv4 address property has been set on the CGR, configure the interface with that address. Otherwise, obtain an address for the interface now using DHCP:

    -->
    <#if far.loopbackV4Address??>
    <#assign loopbackIpv4Address=far.loopbackV4Address>
    <#else>
    <#--
     

    Obtain an ipv4 address that can be used to for this FAR's Loopback interface. The template API provides methods for requesting a lease from a DHCP server. The IPv4 address method requires a DHCP client ID and a link address to send in the DHCP request. The third parameter is optional and defaults to “IoT-FND.” This value is sent in the DHCP user class option.

    The API also provides the method “dhcpClientId.” This method takes a DHCPv6 Identity Association Identifier (IAID) and a DHCP Unique IDentifier (DUID) and generates a DHCPv4 client identifier as specified in RFC 4361. This provides some consistency in how network elements are identified by the DHCP server:

    -->
    <#assign loopbackIpv4Address=far.ipv4Address(dhcpClientId(far.enDuid,0),far.dhcpV4LoopbackLink
    ).address>
    </#if>
    ip address ${loopbackIpv4Address} 255.255.255.255
    <#--
     

    If the loopback interface ipv6 address property has been set on the CGR, then configure the interface with that address. Otherwise obtain an address for the interface now using DHCP:

    -->
    <#if far.loopbackV6Address??>
    <#assign loopbackipv6Address=far.loopbackV6Address>
    <#else>
    <#--
     

    Obtain an ipv6 address that can be used to for this FAR's loopback interface. The method is similar to the one used for ipv4, except clients in DHCPv6 are directly identified by their DUID and IAID. IAIDs used for ipv4 are separate from IAIDs used for ipv6, so we can use zero for both requests:

    -->
    <#assign loopbackipv6Address=far.ipv6Address(far.enDuid,0,far.dhcpV6LoopbackLink).address>
    </#if>
    ipv6 address ${loopbackipv6Address}/128 exit
     
    <#--
    Default to using FlexVPN for the tunnel configuration of FARs running IOS.
    -->
    <#if (far.useFlexVPN!"true") = "true">
    <#--
     

    FlexVPN certificate map that matches if the peer (HER) presents a certificate whose issuer’s common name contains the string given in the FAR property:

    certIssuerCommonName.
    -->
    <#if !(far.certIssuerCommonName??)>
    ${provisioningFailed("FAR property certIssuerCommonName has not been set")}
    </#if>
    crypto pki certificate map FlexVPN_Cert_Map 1 issuer-name co cn = ${far.certIssuerCommonName} exit
     
    <#--
     

    IPv4 ACL that specifies the route(s) FlexVPN will push to the HER. We want the HER to know the route to the CGR's loopback interface:

    -->
    ip access-list standard FlexVPN_Client_ipv4_LAN permit ${loopbackIpv4Address}
    exit
     
    <#--
     

    ipv6 ACL that specifies the route(s) FlexVPN will push to the HER. We want the HER to know the route to the CGR's loopback interface. If a mesh has been configured on this CGR, we want the HER to know the route to the mesh:

    -->
    ipv6 access-list FlexVPN_Client_ipv6_LAN
     
    <#if far.meshPrefix??>
    permit ipv6 ${far.meshPrefix}/64 any
    </#if>
    sequence 20 permit ipv6 host ${loopbackipv6Address} any exit
    <#-- Enable IKEv2 redirect mechanism on the FlexVPN client --> crypto ikev2 redirect client
     
    <#--
     

    FlexVPN authorization policy that configures FlexVPN to push the CGR LAN's specified in the ACLs to the HER during the FlexVPN handshake:

    -->
    crypto ikev2 authorization policy FlexVPN_Author_Policy route set access-list FlexVPN_Client_ipv4_LAN
    route set access-list ipv6 FlexVPN_Client_ipv6_LAN route set interface
    exit
     
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal encryption aes-cbc-256
    group 14 integrity sha256 exit
    crypto ikev2 policy FLexVPN_IKEv2_Policy proposal FlexVPN_IKEv2_Proposal
    exit
     
    <#-- FlexVPN authorization policy is defined locally. --> aaa authorization network FlexVPN_Author local
     
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy authentication remote rsa-sig
    authentication local rsa-sig dpd 120 3 periodic identity local dn
    match certificate FlexVPN_Cert_Map pki trustpoint LDevID
     
    exit
     
    <#--

    If the headend router is an ASR, use a different configuration for the transform set since some ASR models are unable to support the set we'd prefer to use:

    -->
    <#if her.pid?contains("ASR")>
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac mode tunnel
    exit
    <#else>
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha256-hmac mode transport
    exit
    </#if>
     
    crypto IPSec profile FlexVPN_IPSec_Profile set ikev2-profile FlexVPN_IKEv2_Profile set pfs group14
    set transform-set FlexVPN_IPSec_Transform_Set exit
     
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")> interface Tunnel0
    description IPSec tunnel to ${her.eid} ip unnumbered loopback0
    ipv6 unnumbered loopback0 tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile tunnel source ${wanInterface[0].name}
    tunnel mode gre ipv6 tunnel path-mtu-discovery exit
     
    <#if !(far.IPSecTunnelDestAddr1??)>
    ${provisioningFailed("FAR property IPSecTunnelDestAddr1 must be set to the destination address to connect this FAR's FlexVPN tunnel to")}
     
    </#if>
    crypto ikev2 client flexvpn FlexVPN_Client peer 1 ${far.IPSecTunnelDestAddr1} client connect Tunnel0
    exit
     
    ip host fnd.ipg.cisco.com 172.16.103.100
     
    <#else>
    <#--
     

    Configure the tunnel using DMVPN:

    -->
    router eigrp 1
    network ${loopbackIpv4Address} exit
    ipv6 router eigrp 2 no shutdown
    exit
    interface Loopback0 ipv6 eigrp 2
    exit
    <#--
     

    DMVPN certificate map that matches if the peer (HER) presents a certificate whose issuer’s common name contains the string given in the FAR property:

    certIssuerCommonName.
    -->
    <#if !(far.certIssuerCommonName??)>
    ${provisioningFailed("FAR property certIssuerCommonName has not been set")}
    </#if>
    crypto pki certificate map DMVPN_Cert_Map 1 issuer-name co cn = ${far.certIssuerCommonName} exit
    crypto ikev2 proposal DMVPN_IKEv2_Proposal encryption aes-cbc-256
    group 14 integrity sha256 exit
    crypto ikev2 policy DMVPN_IKEv2_Policy
     
    proposal DMVPN_IKEv2_Proposal exit
    crypto ikev2 profile DMVPN_IKEv2_Profile authentication remote rsa-sig
    authentication local rsa-sig dpd 120 3 periodic identity local dn
    match certificate DMVPN_Cert_Map pki trustpoint LDevID
    exit
    <#--
     
     
     
     
     

    If the headend router is an ASR, then use a different configuration for the transform set since some ASR models are unable to support the set we'd prefer to use:

    -->
    <#if her.pid?contains("ASR")>
    crypto IPSec transform-set DMVPN_IPSec_Transform_Set esp-aes esp-sha-hmac mode tunnel
    exit
    <#else>
    crypto IPSec transform-set DMVPN_IPSec_Transform_Set esp-aes 256 esp-sha256-hmac mode tunnel
    exit
    </#if>
    crypto IPSec profile DMVPN_IPSec_Profile set ikev2-profile DMVPN_IKEv2_Profile set pfs group14
    set transform-set DMVPN_IPSec_Transform_Set exit
    <#if !(far.nbmaNhsV4Address??)>
    ${provisioningFailed("FAR property nbmaNhsV4Address has not been set")}
    </#if>
    <#if !(far.nbmaNhsV6Address??)>
    ${provisioningFailed("FAR property nbmaNhsV6Address has not been set")}
    </#if>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")> interface Tunnel0
    <#assign lease=far.ipv4Address(dhcpClientId(far.enDuid,1),far.dhcpV4TunnelLink)>
     
    ip address ${lease.address} ${lease.subnetMask}
    ip nhrp map ${far.nbmaNhsV4Address} ${far.IPSecTunnelDestAddr1} ip nhrp map multicast ${far.IPSecTunnelDestAddr1}
    ip nhrp network-id 1
    ip nhrp nhs ${her.interfaces("Tunnel0")[0].v4.addresses[0].address}
    ipv6 address ${far.ipv6Address(far.enDuid,1,far.dhcpV6TunnelLink).address}/128 ipv6 eigrp 2
    ipv6 nhrp map ${far.nbmaNhsV6Address}/128 ${far.IPSecTunnelDestAddr1} ipv6 nhrp map multicast ${far.IPSecTunnelDestAddr1}
    ipv6 nhrp network-id 1
    ipv6 nhrp nhs ${far.nbmaNhsV6Address} tunnel mode gre multipoint
    tunnel protection IPSec profile DMVPN_IPSec_Profile tunnel source ${wanInterface[0].name}
    exit
    router eigrp 1
    network ${lease.address} exit
    </#if>
    !
    no event manager environment ZTD_SCEP_Debug
    !
    ip host fnd.ipg.cisco.com 172.16.103.100
    !
    !
    </#if>

    Device Configuration Profiles

    The device configuration profile could also be referred to as the “Configuration Group.” For steps to create a new configuration group and move necessary IoT Gateways under it, please refer to the “Configuring Device Group Settings” section of the Cisco IoT FND Guide at the following URL:

    blank.gif https://www.cisco.com/c/en/us/td/docs/routers/connectedgrid/iot_fnd/guide/4_2/iot_fnd_ug4_2/device_mgmt.html#16666

    To enable “Ready to Go” SCADA traffic post ZTD, configuration profiles mentioned in Appendix D: SCADA ICT Enablement Profiles could be used.

    Appendix C: FlexVPN Configurations

    This appendix provides the complete running configuration taken from the CGR and the HER, which includes the IKEv2 CLB bringing up the FlexVPN tunnel over IPv4 backhaul. It includes the following major topics:

    blank.gifIoT Gateway Configuration

    blank.gifHeadend Router Configuration

    IoT Gateway Configuration

    Note: The IoT Gateway configuration is for reference only since it is configured by ZTD.

    !
    !
    aaa new-model
    aaa authorization network FlexVPN_Author local
    !
    ip host ra.ipg.cisco.com 172.16.241.2
    ip host tps.ipg.cisco.com 172.16.242.242
    ip host ntp.ipg.cisco.com 10.10.100.100 ip cef
    !
    !
    crypto pki trustpoint LDevID
    enrollment retry count 4
    enrollment retry period 2
    enrollment mode ra
    enrollment profile LDevID
    serial-number none
    fqdn none
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    subject-name serialNumber=PID:CGR1120/K9
    SN:JAD191601KT,CN=CGR1000_JAD191601KT
    revocation-check none
    rsakeypair LDevID 2048
     
    !
    crypto pki profile enrollment LDevID
    enrollment url http://ra.ipg.cisco.com
    !
    crypto pki certificate map FlexVPN_Cert_Map 1
    issuer-name co cn = ipg-rsa-root-ca
    !
    crypto pki certificate chain LDevID
    < Hex code removed for clarity >
    !
    crypto ikev2 authorization policy FlexVPN_Author_Policy
    route set interface
    route set access-list FlexVPN_Client_ipv4_LAN
    route set access-list ipv6 FlexVPN_Client_ipv6_LAN
    !
    crypto ikev2 redirect client
    !
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FLexVPN_IKEv2_Policy
    proposal FlexVPN_IKEv2_Proposal
    !
    !
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication remote rsa-sig
    authentication local rsa-sig
    pki trustpoint LDevID
    dpd 120 3 periodic
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy
    !
    crypto ikev2 client flexvpn FlexVPN_Client
    peer 1 10.10.100.150
    client connect Tunnel0
     
    !
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode tunnel
    !
    crypto IPSec profile FlexVPN_IPSec_Profile
    set transform-set FlexVPN_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_IKEv2_Profile
    !
    !
    interface Loopback0
    ip address 192.168.150.6 255.255.255.255
    ipv6 address 2001:DB8:BABA:FACE:6C1C:D5F4:B98E:11B3/128
    !
    interface Tunnel0
    description IPSec tunnel to FAN-PHE-HER
    ip unnumbered Loopback0
    ip nhrp network-id 1
    ip nhrp shortcut virtual-template 1
    ip nhrp redirect
    ipv6 unnumbered Loopback0
    tunnel source GigabitEthernet2/1
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    interface GigabitEthernet2/1
    no switchport
    ip address
    dhcp duplex auto
    speed auto
    !
    !
    interface Virtual-Template1 type tunnel
    ip unnumbered Loopback0
    ip nhrp network-id 1
    ip nhrp shortcut virtual-template 1 ip
    nhrp redirect
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
     
    !
    ip access-list standard FlexVPN_Client_ipv4_LAN
    permit 192.168.150.6
    !
    ipv6 access-list FlexVPN_Client_ipv6_LAN
    sequence 20 permit ipv6 host 2001:DB8:BABA:FACE:6C1C:D5F4:B98E:11B3 any
    !
    ip route <HER1 DMZ ip> 255.255.255.255 Cellular 0/1/0
    ip route <HER1 DMZ ip> 255.255.255.255 Cellular 0/3/0
     

    Headend Router Configuration

    !
    aaa new-model
    aaa authorization network FlexVPN_Author local
    !
    ip host rsaca.ipg.cisco.com 172.16.102.2
    ip host rsaca.ipg.cisco.comB 172.16.102.2
    ip domain name ipg.cisco.com
    !
    !
    crypto pki trustpoint LDevID
    enrollment retry count 10
    enrollment retry period 2
    enrollment mode ra e
    nrollment profile LDevID
    serial-number
    ip-address none
    password
    fingerprint CFA2613029B11E461430A2DC5F624147CCEE6469
    revocation-check none
    rsakeypair LDevID
    !
    crypto pki profile enrollment LDevID
    enrollment url http://rsaca.ipg.cisco.com/certsrv/mscep/mscep.dll
    !
    crypto pki certificate map FlexVPN_Cert_Map 1
    issuer-name co cn = ipg-rsa-root-ca
    !
    crypto pki certificate chain LDevID
    < Hex code removed for clarity >
    !
    crypto ikev2 authorization policy FlexVPN_Author_Policy
    route set interface
    route set access-list FlexVPN_Client_Default_ipv4_Route
    route set access-list ipv6 FlexVPN_Client_Default_ipv6_Route
    !
    crypto ikev2 redirect gateway init
    !
    crypto ikev2 proposal FlexVPN_IKEv2_Proposal
    encryption aes-cbc-256
    integrity sha256
    group 14
    !
    crypto ikev2 policy FlexVPN_IKEv2_Policy
    proposal FlexVPN_IKEv2_Proposal
    !
    crypto ikev2 profile FlexVPN_IKEv2_Profile
    match certificate FlexVPN_Cert_Map
    identity local dn
    authentication local rsa-sig
    authentication remote rsa-sig
    pki trustpoint LDevID
    dpd 30 3 periodic
    aaa authorization group cert list FlexVPN_Author FlexVPN_Author_Policy
    virtual-template 1
    !
    crypto ikev2 cluster
    standby-group cluster1
    slave priority 90
    slave max-session 100
    no shutdown
    !
    !
    crypto IPSec transform-set FlexVPN_IPSec_Transform_Set esp-aes esp-sha-hmac
    mode tunnel
    !
     
    crypto IPSec profile FlexVPN_IPSec_Profile
    set transform-set FlexVPN_IPSec_Transform_Set
    set pfs group14
    set ikev2-profile FlexVPN_IKEv2_Profile
    responder-only
    !
    !
    interface Loopback0
    ip address 192.168.150.2 255.255.255.255
    ipv6 address 2001:DB8:BABA:FACE::2/64
    !
    interface GigabitEthernet0/0/0
    description connected to Gi1/1 of SWITCH_DMZ
    ip address 10.10.100.151 255.255.255.0
    standby version 2
    standby 1 ip 10.10.100.150
    standby 1 priority 110
    standby 1 name cluster1
    negotiation auto
    cdp enable
    !
    !
    interface Virtual-Template1 type tunnel
    ip unnumbered Loopback0
    ipv6 unnumbered Loopback0 ipv6 enable
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    !
    ip access-list standard FlexVPN_Client_Default_ipv4_Route
    permit 172.16.103.100 /* IP Address of FND */
    permit 192.168.150.0 0.0.0.255 /* Loopback Address subnet for FAR & HER */
    !
    ipv6 access-list FlexVPN_Client_Default_ipv6_Route
    sequence 5 permit ipv6 any host 2001:DB8:16:103::100
    sequence 20 permit ipv6 any any
    !
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    Appendix D: SCADA ICT Enablement Profiles

    This appendix includes the following major topics:

    blank.gifIR1101 Platform: Single Control Center Profiles

    blank.gifIR1101 Platform: Dual Control Center Profiles

    blank.gifIR807 Platform: Single Control Center Profiles

    blank.gifIR807 Platform: Dual Control Center Profiles

    IR1101 Platform: Single Control Center Profiles

    ICT Enablement for IP-based IED using IR1101

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2.

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR1101.

    blank.gifIED is connected to FastEthernet0/0/1 and listening on port 2404.

    blank.gifSCADA Master IP address is 172.16.107.11.

    blank.gifSCADA Master reaches the IP IED on the IoT Gateway IP on port 2404.

    Configuration Group Name: IR1101_SINGLE_CC_IP_Only

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#if far.hasActiveBattery()>
    do battery charge-discharge enable
    </#if>
    <#-- Beginning of Custom addition of configuration -->
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1
    switchport access vlan 1
    !
    interface Tunnel0
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    !
    <#-- End of custom addition of configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    ICT Enablement for Serial and/or IP-based IED using IR1101

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2.

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR1101.

    blank.gifIED is connected to FastEthernet0/0/1, and listening on port 2404.

    blank.gifSCADA Master IP address is 172.16.107.11.

    blank.gifConfiguration of the serial interface validated is 9600-8N1.

    blank.gifSerial interface validated is Async0/2/0 (corresponds to line 0/2/0).

    blank.gifSCADA Master reaches the IP IED on IoT Gateway IP on port 2404.

    blank.gifSCADA Master reaches the Serial IED on IoT Gateway IP on port 25000.

    Configuration Group Name: IR1101_SINGLE_CC_IP_and_RawSocket

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60 exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#if far.hasActiveBattery()>
    do battery charge-discharge enable
    </#if>
     
    <#-- Beginning of Custom addition of configuration -->
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1
    switchport access vlan 1
    !
    interface Tunnel0 ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    interface Async0/2/0
    no ip address
    encapsulation raw-tcp
    !
    line 0/2/0
    raw-socket tcp client 172.16.107.11 25000
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    <#-- End of custom addition of configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Configuration Group Name: IR1101_SINGLE_CC_IP_and_ProtocolTranslation

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
     
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#if far.hasActiveBattery()>
    do battery charge-discharge enable
    </#if>
    <#-- Beginning of Custom addition of configuration -->
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1
    switchport access vlan 1
    !
    interface Tunnel0
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    interface Async0/2/0
    no ip address
    encapsulation scada
    !
    line 0/2/0
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async 0/2/0
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable
    <#-- End of custom addition of configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    IR1101 Platform: Dual Control Center Profiles

    ICT Enablement for Serial and/or IP-based IED using IR1101

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2.

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR1101.

    blank.gifIED is connected to FastEthernet0/0/1, and listening on port 2404.

    blank.gifSCADA Master1 IP address is 172.16.107.11.

    blank.gifSCADA Master2 IP address is 172.17.107.11.

    blank.gifConfiguration of the serial interface validated is 9600-8N1.

    blank.gifSerial interface validated is Async0/2/0 (corresponds to line 0/2/0).

    blank.gifSCADA Master reaches the IP IED on IoT Gateway IP on port 2404.

    blank.gifSCADA Master1 reaches the Serial IED on IoT Gateway IP on port 25000.

    blank.gifSCADA Master2 reaches the Serial IED on IoT Gateway IP on port 25001.

    Configuration Group Name: IR1101_DUAL_CC_IP_and_RawSocket

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#--- Beginning of custom modification for tunnel to secondary control center -->
    <#if far.IPSecTunnelDestAddr2?has_content>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")>
    interface Tunnel1
    description IPSec tunnel to Secondary Tunnel Destination
    ip unnumbered loopback0
    ipv6 unnumbered loopback0
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile tunnel source ${wanInterface[0].name}
    exit
    !
    crypto ikev2 client flexvpn FlexVPN_Client_Tunnel1
    peer 1 ${far.IPSecTunnelDestAddr2}
    client connect Tunnel1 exit
    </#if>
    <#--- End of custom modification for tunnel to secondary control center -->
    !
    <#--- Beginning of IR1101_DUAL_CC_IP Configuration -->
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1 switchport access vlan 1
    !
    interface Tunnel0
    ip nat outside
    !
    interface Tunnel1
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
    !
    <#--- End of IR1101_DUAL_CC_IP Configuration -->
    !
    <#--- Beginning of IR1101_DUAL_CC_Raw_Socket Configuration -->
    interface Async0/2/0
    no ip address
    encapsulation raw-tcp
    !
    line 0/2/0
    raw-socket tcp client 172.16.107.11 25000
    raw-socket tcp client 172.17.107.11 25000
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    <#--- End of IR1101_DUAL_CC_Raw_Socket Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Configuration Group Name: IR1101_DUAL_CC_IP_and_ProtocolTranslation

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60 exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#--- Beginning of custom modification for tunnel to secondary control center -->
    <#if far.IPSecTunnelDestAddr2?has_content>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")>
    interface Tunnel1
    description IPSec tunnel to Secondary Tunnel Destination
    ip unnumbered loopback0
    ipv6 unnumbered loopback0
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    tunnel source ${wanInterface[0].name}
    exit
    !
    crypto ikev2 client flexvpn FlexVPN_Client_Tunnel1
    peer 1 ${far.IPSecTunnelDestAddr2}
    client connect Tunnel1
    exit
    </#if>
    <#--- End of custom modification for tunnel to secondary control center -->
    !
    <#--- Beginning of IR1101_DUAL_CC_IP Configuration -->
    interface Vlan1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    !
    int FastEthernet 0/0/1
    switchport access vlan 1
    !
    interface Tunnel0
    ip nat outside
    !
    interface Tunnel1
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
    !
    <#--- End of IR1101_DUAL_CC_IP Configuration -->
    !
    <#--- Beginning of IR1101_DUAL_CC_Protocol_Translation Configuration -->
    interface Async0/2/0
    no ip address
    encapsulation scada
    !
    line 0/2/0
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async0/2/0
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    tcp-connection 1 local-port 25001 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    !
    scada-gw enable
    !
    <#--- End of IR1101_DUAL_CC_Protocol_Translation Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>
     
     
     
     
     
     

    IR807 Platform: Single Control Center Profiles

    ICT Enablement for IP-based IED using IR807

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2.

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR807.

    blank.gifIED is connected to FastEthernet1 and listening on port 2404.

    blank.gifSCADA Master IP address is 172.16.107.11.

    blank.gifSCADA Master reaches the IP IED on IoT Gateway IP on port 2404.

    Configuration Group Name: IR807_SINGLE_CC_IP_Only

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    <#if far.hasActiveBattery()>
    do battery charge-discharge enable
    </#if>
    <#-- Beginning of Custom addition of configuration -->
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in
    duplex auto
    speed auto
    !
    interface Tunnel0
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    !
    <#-- End of custom addition of configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>
     
     
     
     
     
     
     
     
     
     
     

    ICT Enablement for Serial and/or IP-based IED using IR807

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2.

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR807.

    blank.gifIED is connected to FastEthernet1, and listening on port 2404.

    blank.gifSCADA Master IP address is 172.16.107.11.

    blank.gifConfiguration of the serial interface validated is 9600-8N1.

    blank.gifSerial interface validated is Async1 (corresponding to line 4).

    blank.gifSCADA Master reaches the IP IED on IoT Gateway IP on port 2404.

    blank.gifSCADA Master reaches the Serial IED on IoT Gateway IP on port 25000.

    Configuration Group Name: IR807_SINGLE_CC_IP_and_RawSocket

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    !
    <#-- Enable periodic inventory notification every 1 hour to report metrics. --> cgna profile cg-nms-periodic
    interval 60
    exit
    !
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    !
    <#--- Beginning of custom modification for tunnel to secondary control center -->
    <#if far.IPSecTunnelDestAddr2?has_content>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")>
    interface Tunnel1
    description IPSec tunnel to Secondary Tunnel Destination
    ip unnumbered loopback0
    ipv6 unnumbered loopback0
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    tunnel source ${wanInterface[0].name}
    exit
    !
    crypto ikev2 client flexvpn FlexVPN_Client_Tunnel1
    peer 1 ${far.IPSecTunnelDestAddr2}
    client connect Tunnel1
    exit
    </#if>
    !
    <#--- End of custom modification for tunnel to secondary control center -->
    !
    <#--- Beginning of IR807_SINGLE_CC_IP Configuration -->
    !
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in
    duplex auto
    speed auto
    !
    interface Tunnel0
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    !
    <#--- End of IR807_SINGLE_CC_IP Configuration -->
    !
    <#--- Beginning of IR807_SINGLE_CC_RawSocket Configuration -->
    !
    !
    interface Async1
    no ip address
    encapsulation raw-tcp
    !
    !
    line 4
    raw-socket tcp client 172.16.107.11 25000
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    !
    !
    <#--- End of IR807_SINGLE_CC_RawSocket Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Configuration Group Name: IR807_SINGLE_CC_IP_and_ProtocolTranslation

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    !
    <#--- Beginning of IR807_SINGLE_CC_IP Configuration -->
    !
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    duplex auto
    speed auto
    !
    interface Tunnel0
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    !
    <#--- End of IR807_SINGLE_CC_IP Configuration -->
    !
    <#--- Beginning of IR807_SINGLE_CC_Protocol_Translation Configuration -->
    !
    interface Async1
    no ip address
    encapsulation scada
    !
    line 4
    databits 8
    stopbits 1
    speed 9600 parity none
    !
    scada-gw protocol t101
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async 0
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable
    !
    <#--- End of IR807_SINGLE_CC_Protocol_Translation Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    IR807 Platform: Dual Control Center Profiles

    The following scenarios were validated using this profile:

    blank.gifIP-based IED is configured with 192.168.0.2

    blank.gifDefault gateway for IED is 192.168.0.1, which is the IP address of IR807.

    blank.gifIED is connected to FastEthernet1, and listening on port 2404.

    blank.gifSCADA Master1 IP address is 172.16.107.11.

    blank.gifSCADA Master2 IP address is 172.17.107.11.

    blank.gifConfiguration of the serial interface validated is 9600-8N1.

    blank.gifSerial interface validated is Async1 (corresponding to line 4).

    blank.gifSCADA Master reaches the IP IED on IoT Gateway IP on port 2404.

    blank.gifSCADA Master1 reaches the Serial IED on IoT Gateway IP on port 25000.

    blank.gifSCADA Master2 reaches the Serial IED on IoT Gateway IP on port 25001.

    ICT Enablement for Serial and/or IP-based IED using IR807

    Configuration Group Name: IR807_DUAL_CC_IP_and_RawSocket

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    !
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. --> cgna heart-beat interval 15
    !
    <#--- Beginning of custom modification for tunnel to secondary control center -->
    <#if far.IPSecTunnelDestAddr2?has_content>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")>
    interface Tunnel1
    description IPSec tunnel to Secondary Tunnel Destination
    ip unnumbered loopback0
    ipv6 unnumbered loopback0
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    tunnel source ${wanInterface[0].name}
    exit
    !
    crypto ikev2 client flexvpn FlexVPN_Client_Tunnel1
    peer 1 ${far.IPSecTunnelDestAddr2}
    client connect Tunnel1
    exit
    </#if>
    !
    <#--- End of custom modification for tunnel to secondary control center -->
    !
    <#--- Beginning of IR807_DUAL_CC_IP Configuration -->
    !
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in
    duplex auto
    speed auto
    !
    interface Tunnel0
    ip nat outside
    !
    interface Tunnel1
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404 ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
    !
    <#--- End of IR807_DUAL_CC_IP Configuration -->
    !
    <#--- Beginning of IR807_DUAL_CC_RawSocket Configuration -->
    !
    interface Async1
    no ip address
    encapsulation raw-tcp
    !
    line 4
    raw-socket tcp client 172.16.107.11 25000 25000
    raw-socket tcp client 172.17.107.11 25000 25001
     
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    <#--- End of IR807_DUAL_CC_RawSocket Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Configuration Group Name: IR807_DUAL_CC_IP_and_ProtocolTranslation

    <#if far.isRunningIos()>
    <#if far.interfaces("Loopback0")?size != 0>
    ip http client source-interface Loopback0
    snmp-server trap-source Loopback0
    </#if>
    !
    <#-- Enable periodic inventory notification every 1 hour to report metrics. -->
    cgna profile cg-nms-periodic
    interval 60
    exit
    !
    <#-- Enable periodic configuration (heartbeat) notification every 15 min. -->
    cgna heart-beat interval 15
    !
    !
    <#--- Beginning of custom modification for tunnel to secondary control center -->
    <#if far.IPSecTunnelDestAddr2?has_content>
    <#assign wanInterface=far.interfaces(far.tunnelSrcInterface1!"Cellular")>
    interface Tunnel1
    description IPSec tunnel to Secondary Tunnel Destination
    ip unnumbered loopback0
    ipv6 unnumbered loopback0
    tunnel destination dynamic
    tunnel protection IPSec profile FlexVPN_IPSec_Profile
    tunnel source ${wanInterface[0].name}
    exit
    !
    crypto ikev2 client flexvpn FlexVPN_Client_Tunnel1
    peer 1 ${far.IPSecTunnelDestAddr2}
    client connect Tunnel1 exit
    </#if>
    <#--- End of custom modification for tunnel to secondary control center -->
    !
    <#--- Beginning of IR807_DUAL_CC_T101_To_T104_PT Configuration -->
    !
    interface FastEthernet1
    ip address 192.168.0.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly in duplex auto
    speed auto
    !
    interface Tunnel0
    ip nat outside
    !
    interface Tunnel1
    ip nat outside
    !
    ip nat inside source static tcp 192.168.0.2 2404 interface Loopback0 2404
    ip nat inside source static tcp 192.168.0.2 26000 interface Loopback0 26000
    !
    !
    interface Async1
    no ip address
    encapsulation scada
    !
    line 4
    databits 8
    stopbits 1
    speed 9600
    parity none
    !
    scada-gw protocol t101
     
    channel t101_ch1
    link-addr-size two
    bind-to-interface Async1
    session t101_session1
    attach-to-channel t101_ch1
    sector t101_sector1
    attach-to-session t101_session1
    scada-gw protocol t104
    channel t104_ch1
    t3-timeout 20
    tcp-connection 0 local-port 25000 remote-ip any
    tcp-connection 1 local-port 25001 remote-ip any
    session t104_session1
    attach-to-channel t104_ch1
    sector t104_sector1
    attach-to-session t104_session1
    map-to-sector t101_sector1
    scada-gw enable
    <#--- End of IR807_DUAL_CC_T101_To_T104_PT Configuration -->
    <#else>
    ${provisioningFailed("FAR is not running IOS")}
    </#if>

    Appendix E: End-to-End Application Use Case Scenarios

    DTM Workspace for Volt/VAR

    blank.gif https://cisco.app.box.com/file/387107724522

    DTM Workspace for FLISR

    blank.gif https://cisco.app.box.com/file/387115037625