WeOS
5.29.0

# Redundant ECSP Services HowTo

This document describes how to configure the ECSP services in a redundant train setup. The consists are depicted in Figure 1.

The result of the inauguration will be a network where ETBN1 in consist 1 has ETBN-ID 1, the IP-address 10.128.0.1 (based on the ETBN-ID and since the network is configured as TCMS). ETBN1 in consist 2 will attain ETBN-ID 2 and IP 10.128.0.2. ETBN2 in consist 2 will attain ETBN-ID 3 and IP 10.128.0.3. CN1 in consist 1 will attain the network IP 10.128.64.0/18, and CN1 in consist 2 IP 10.128.128.0/18.

Note that in the diagram below, the nodes are named ETBN1, ETBN2 and ETBN1, while in the configuration examples below, the device hostnames are `etbn1cst1`, `etbn1cst2` and `etbn2cst2`. This is to differentiate between a few concepts: the names in the diagram refer to the local ETBN ID (set using the `local-id` command), while the hostnames refer to both the local ETBN ID as well as the consist that the node is in.

            .-------.    .------------------------.
           /  cst1   \  /           cst2           \
           '---------'  '--------------------------'
            .-------.      .-------.    .-------.
          --+       +------+       +----+       +--      dir1 = (ethX5, ethX6)
      <-dir1| ETBN1 |      | ETBN1 |    | ETBN2 |dir2->  dir2 = (ethX7, ethX8)
          --+       +------+       +----+       +--
            '---+---'      '---+---'    '---+---'
                |              |            |
                |          --+-+------------+---- cst2-cn1 vlan10 (ethX3)
                |            |
                |          ECSC2
                |
              --+---+----- cst1-cn1 vlan10 (ethX3)
                |
              ECSC1

Figure 1: Acceessing ECSP in a redundant consist setup.

Note

The two redundant nodes in consist 2 must have the same configuration with respect to `uuid` and `node`. In this example we also have the same `ecn` configuration. They must, however, have different values for the `local-id` setting.

Note

Both nodes in consist 2 need to have VRRP configured and enabled on the CN side.

## Configuration

The first configuration example shows how to configure ETBN1 in consist 1.

    etbn1cst1:#> configure
    etbn1cst1:/config/#> vlan 10
    Creating new VLAN vid:10 with name: vlan10
    etbn1cst1:/config/vlan-10/#> untagged ethX3
    etbn1cst1:/config/vlan-10/#> end
    etbn1cst1:/config/#> iface vlan10
    etbn1cst1:/config/iface-vlan10/#> no inet
    etbn1cst1:/config/iface-vlan10/#> inet static 10.0.0.10/18
    etbn1cst1:/config/iface-vlan10/inet-static-10.0.0.10/#> end
    etbn1cst1:/config/iface-vlan10/#> end
    etbn1cst1:/config/#> ttdp
    Activating TTDP with default settings.
    etbn1cst1:/config/ttdp/#> uuid 11111111-1111-1111-1111-111111111111
    etbn1cst1:/config/ttdp/#> node 1 ecn 1
    etbn1cst1:/config/ttdp/#> ecn 1 vlan10
    etbn1cst1:/config/ttdp/#> dir1 ethX5,ethX6
    Remember to manually set mdi/mdi-x mode
     in port settings for all agg ports.
    etbn1cst1:/config/ttdp/#> dir2 ethX7,ethX8
    Remember to manually set mdi/mdi-x mode
     in port settings for all agg ports.
    etbn1cst1:/config/ttdp/#> local-id 1
    etbn1cst1:/config/ttdp/#> ecsp-iface vlan10
    etbn1cst1:/config/ttdp/#> ecsp-addr 10.0.0.10
    etbn1cst1:/config/ttdp/#> ecsc-addr 10.0.0.42
    etbn1cst1:/config/ttdp/#> end
    TTDP: Created VLAN 492. Note that this VLAN will not be deleted automatically
      if TTDP is deactivated.
    etbn1cst1:/config/#> vlan 2
    Creating new VLAN vid:2 with name: vlan2
    etbn1cst1:/config/vlan-2/#> no multicast-snooping
    etbn1cst1:/config/vlan-2/#> untagged lag-dir1,lag-dir2
    etbn1cst1:/config/vlan-2/#> end

Continue by configuring the ports.

    etbn1cst1:/config/#> port ethX5
    etbn1cst1:/config/port-ethX5/#> speed-duplex 100-full
    etbn1cst1:/config/port-ethX5/#> no auto-negotiate
    etbn1cst1:/config/port-ethX5/#> fastlink
    etbn1cst1:/config/port-ethX5/#> mdix-mode mdi
    etbn1cst1:/config/port-ethX5/#> end
    etbn1cst1:/config/#> port ethX6
    etbn1cst1:/config/port-ethX6/#> speed-duplex 100-full
    etbn1cst1:/config/port-ethX6/#> no auto-negotiate
    etbn1cst1:/config/port-ethX6/#> fastlink
    etbn1cst1:/config/port-ethX6/#> mdix-mode mdi
    etbn1cst1:/config/port-ethX6/#> end
    etbn1cst1:/config/#> port ethX7
    etbn1cst1:/config/port-ethX7/#> speed-duplex 100-full
    etbn1cst1:/config/port-ethX7/#> no auto-negotiate
    etbn1cst1:/config/port-ethX7/#> fastlink
    etbn1cst1:/config/port-ethX7/#> mdix-mode mdi
    etbn1cst1:/config/port-ethX7/#> end
    etbn1cst1:/config/#> port ethX8
    etbn1cst1:/config/port-ethX8/#> speed-duplex 100-full
    etbn1cst1:/config/port-ethX8/#> no auto-negotiate
    etbn1cst1:/config/port-ethX8/#> fastlink
    etbn1cst1:/config/port-ethX8/#> mdix-mode mdi
    etbn1cst1:/config/port-ethX8/#> end
    etbn1cst1:/config/#> end
    Applying configuration.
    Configuration activated.
    Remember "copy run start" to save to flash (NVRAM).
    etbn1cst1:/#>

Next, configure the ETBNs for consist 2. It contains of one consist network managed by two nodes.

Start with ETBN1 in consist 2 and configure vlans and the TTDP part.

    etbn1cst2:#> configure
    etbn1cst2:/config/#> vlan 10
    Creating new VLAN vid:10 with name: vlan10
    etbn1cst2:/config/vlan-10/#> untagged ethX3
    etbn1cst2:/config/vlan-10/#> end
    etbn1cst2:/config/#> iface vlan10
    etbn1cst2:/config/iface-vlan10/#> no inet
    etbn1cst2:/config/iface-vlan10/#> inet static 10.0.0.10/18
    etbn1cst2:/config/iface-vlan10/inet-static-10.0.0.10/#> end
    etbn1cst2:/config/iface-vlan10/#> end
    etbn1cst2:/config/#> ttdp
    Activating TTDP with default settings.
    etbn1cst2:/config/ttdp/#> uuid 22222222-2222-2222-2222-222222222222
    etbn1cst2:/config/ttdp/#> node 1 ecn 1
    etbn1cst2:/config/ttdp/#> node 2 ecn 1
    etbn1cst2:/config/ttdp/#> ecn 1 vlan10
    etbn1cst2:/config/ttdp/#> dir1 ethX5,ethX6
    Remember to manually set mdi/mdi-x mode
      in port settings for all agg ports.
    etbn1cst2:/config/ttdp/#> dir2 ethX7,ethX8
    Remember to manually set mdi/mdi-x mode
      in port settings for all agg ports.
    etbn1cst2:/config/ttdp/#> local-id 1
    etbn1cst2:/config/ttdp/#> ecsp-iface vlan10
    etbn1cst2:/config/ttdp/#> ecsp-addr 10.0.0.10
    etbn1cst2:/config/ttdp/#> ecsp-leader-addr 10.0.0.100
    etbn1cst2:/config/ttdp/#> ecsc-addr 10.0.0.52
    etbn1cst2:/config/ttdp/#> end
    TTDP: Created VLAN 492. Note that this VLAN will not be deleted automatically
      if TTDP is deactivated.
    etbn1cst2:/config/#> vlan 2
    Creating new VLAN vid:2 with name: vlan2
    etbn1cst2:/config/vlan-2/#> no multicast-snooping
    etbn1cst2:/config/vlan-2/#> untagged lag-dir1,lag-dir2
    etbn1cst2:/config/vlan-2/#> end

Continue by configuring the ports.

    etbn1cst2:/config/#> port ethX5
    etbn1cst2:/config/port-ethX5/#> speed-duplex 100-full
    etbn1cst2:/config/port-ethX5/#> no auto-negotiate
    etbn1cst2:/config/port-ethX5/#> fastlink
    etbn1cst2:/config/port-ethX5/#> mdix-mode mdi
    etbn1cst2:/config/port-ethX5/#> end
    etbn1cst2:/config/#> port ethX6
    etbn1cst2:/config/port-ethX6/#> speed-duplex 100-full
    etbn1cst2:/config/port-ethX6/#> no auto-negotiate
    etbn1cst2:/config/port-ethX6/#> fastlink
    etbn1cst2:/config/port-ethX6/#> mdix-mode mdi
    etbn1cst2:/config/port-ethX6/#> end
    etbn1cst2:/config/#> port ethX7
    etbn1cst2:/config/port-ethX7/#> speed-duplex 100-full
    etbn1cst2:/config/port-ethX7/#> no auto-negotiate
    etbn1cst2:/config/port-ethX7/#> fastlink
    etbn1cst2:/config/port-ethX7/#> mdix-mode mdi
    etbn1cst2:/config/port-ethX7/#> end
    etbn1cst2:/config/#> port ethX8
    etbn1cst2:/config/port-ethX8/#> speed-duplex 100-full
    etbn1cst2:/config/port-ethX8/#> no auto-negotiate
    etbn1cst2:/config/port-ethX8/#> fastlink
    etbn1cst2:/config/port-ethX8/#> mdix-mode mdi
    etbn1cst2:/config/port-ethX8/#> end

The next step is to configure VRRP on each node in the redundant consist, i.e., consist 2. Start with ETBN1 which will have the MASTER role. The MASTER role is gained by setting the priority for the VRRP instance higher than on ETBN2 (see VRRP).

    etbn1cst2:/config/#> router
    etbn1cst2:/config/router/#> vrrp cn1
    Creating new VRRP instance: cn1
    Invalid settings: Interface not set.
    etbn1cst2:/config/router/vrrp-cn1/#> iface vlan1
    Warning: No ports have been added to the configured VLAN.
    VRRP will not work as expected with this configuration.
    Invalid settings: Invalid IPv4 address.
    etbn1cst2:/config/router/vrrp-cn1/#> address 10.0.0.100
    Invalid settings: VRID invalid. Valid values: 1 to 255.
    etbn1cst2:/config/router/vrrp-cn1/#> vrid 132
    etbn1cst2:/config/router/vrrp-cn1/#> version 3
    etbn1cst2:/config/router/vrrp-cn1/#> priority 150
    etbn1cst2:/config/router/vrrp-cn1/#> interval 1
    etbn1cst2:/config/router/vrrp-cn1/#> preempt delay 1
    etbn1cst2:/config/router/vrrp-cn1/#> end
    etbn1cst2:/config/router/#> end
    etbn1cst2:/config/#> end
    Applying configuration.
    Configuration activated.
    Remember "copy run start" to save to flash (NVRAM).
    etbn1cst2:/#>

Now, repeat the exact steps above in the ETBN2 in consist 2.

    etbn2cst2:#> configure
    etbn2cst2:/config/#> vlan 10
    Creating new VLAN vid:10 with name: vlan10
    etbn2cst2:/config/vlan-10/#> untagged ethX3
    etbn2cst2:/config/vlan-10/#> end
    etbn2cst2:/config/#> iface vlan10
    etbn2cst2:/config/iface-vlan10/#> no inet
    etbn2cst2:/config/iface-vlan10/#> inet static 10.0.0.20/18
    etbn2cst2:/config/iface-vlan10/inet-static-10.0.0.20/#> end
    etbn2cst2:/config/iface-vlan10/#> end
    etbn2cst2:/config/#> ttdp
    Activating TTDP with default settings.
    etbn2cst2:/config/ttdp/#> uuid 22222222-2222-2222-2222-222222222222
    etbn2cst2:/config/ttdp/#> node 1 ecn 1
    etbn2cst2:/config/ttdp/#> node 2 ecn 1
    etbn2cst2:/config/ttdp/#> ecn 1 vlan10
    etbn2cst2:/config/ttdp/#> dir1 ethX5,ethX6
    Remember to manually set mdi/mdi-x mode
      in port settings for all agg ports.
    etbn2cst2:/config/ttdp/#> dir2 ethX7,ethX8
    Remember to manually set mdi/mdi-x mode
      in port settings for all agg ports.
    etbn2cst2:/config/ttdp/#> local-id 2
    etbn2cst2:/config/ttdp/#> ecsp-iface vlan10
    etbn2cst2:/config/ttdp/#> ecsp-addr 10.0.0.10
    etbn2cst2:/config/ttdp/#> ecsp-leader-addr 10.0.0.100
    etbn2cst2:/config/ttdp/#> ecsc-addr 10.0.0.52
    etbn2cst2:/config/ttdp/#> end
    TTDP: Created VLAN 492. Note that this VLAN will not be deleted automatically
      if TTDP is deactivated.
    etbn2cst2:/config/#> vlan 2
    Creating new VLAN vid:2 with name: vlan2
    etbn2cst2:/config/vlan-2/#> no multicast-snooping
    etbn2cst2:/config/vlan-2/#> untagged lag-dir1,lag-dir2
    etbn2cst2:/config/vlan-2/#> end

Continue by configuring the ports.

    etbn2cst2:/config/#> port ethX5
    etbn2cst2:/config/port-ethX5/#> speed-duplex 100-full
    etbn2cst2:/config/port-ethX5/#> no auto-negotiate
    etbn2cst2:/config/port-ethX5/#> fastlink
    etbn2cst2:/config/port-ethX5/#> mdix-mode mdi
    etbn2cst2:/config/port-ethX5/#> end
    etbn2cst2:/config/#> port ethX6
    etbn2cst2:/config/port-ethX6/#> speed-duplex 100-full
    etbn2cst2:/config/port-ethX6/#> no auto-negotiate
    etbn2cst2:/config/port-ethX6/#> fastlink
    etbn2cst2:/config/port-ethX6/#> mdix-mode mdi
    etbn2cst2:/config/port-ethX6/#> end
    etbn2cst2:/config/#> port ethX7
    etbn2cst2:/config/port-ethX7/#> speed-duplex 100-full
    etbn2cst2:/config/port-ethX7/#> no auto-negotiate
    etbn2cst2:/config/port-ethX7/#> fastlink
    etbn2cst2:/config/port-ethX7/#> mdix-mode mdi
    etbn2cst2:/config/port-ethX7/#> end
    etbn2cst2:/config/#> port ethX8
    etbn2cst2:/config/port-ethX8/#> speed-duplex 100-full
    etbn2cst2:/config/port-ethX8/#> no auto-negotiate
    etbn2cst2:/config/port-ethX8/#> fastlink
    etbn2cst2:/config/port-ethX8/#> mdix-mode mdi
    etbn2cst2:/config/port-ethX8/#> end

Note

In this HowTo, it is assumed that the ETB uses crossover cabling. For this reason, all ETB ports on both ETBNs use the same MDI-X mode. If non-crossover cabling is used, these settings must be changed for two of the inward-facing ETB ports.

Repeat the same steps for ETBN2 with a lower priority to make it backup. In this example the priority for the instance on ETBN2 is set to 100.

    etbn2cst2:/config/#> router
    etbn2cst2:/config/router/#> vrrp cn1
    Creating new VRRP instance: cn1
    Invalid settings: Interface not set.
    etbn2cst2:/config/router/vrrp-cn1/#> iface vlan1
    Warning: No ports have been added to the configured VLAN.
    VRRP will not work as expected with this configuration.
    Invalid settings: Invalid IPv4 address.
    etbn2cst2:/config/router/vrrp-cn1/#> address 10.0.0.100
    Invalid settings: VRID invalid. Valid values: 1 to 255.
    etbn2cst2:/config/router/vrrp-cn1/#> vrid 132
    etbn2cst2:/config/router/vrrp-cn1/#> version 3
    etbn2cst2:/config/router/vrrp-cn1/#> priority 100
    etbn2cst2:/config/router/vrrp-cn1/#> interval 1
    etbn2cst2:/config/router/vrrp-cn1/#> preempt delay 1
    etbn2cst2:/config/router/vrrp-cn1/#> end
    etbn2cst2:/config/router/#> end
    etbn2cst2:/config/#> end
    Applying configuration.
    Configuration activated.
    Remember "copy run start" to save to flash (NVRAM).
    etbn2cst2:/#>

### Communication Profile Configuration

Finally, for the ECSPs to function properly, a CSTINFO data file is needed on each device. See the Communication Profile documentation for more information about this file and its purpose.

Two such files are provided as examples for this HowTo: CSTINFO data file for consist 1 and CSTINFO data file for consist 2. They are, like the remainder of this document, representative but non-exhaustive examples.

On each node, the CSTINFO data file must be placed in the directory /cfg/ with the name cstinfo.json. This can be done by using any available administrative interface, or by putting the file on the external USB media (in which case it will be available in the /cfg/ directory after rebooting the device).

Note

The two devices in consist 2 - etbn1cst2 and etbn2cst2 - use identical CSTINFO data files. In this example, this is CSTINFO data file for consist 2. If nodes in the same consist have different CSTINFO data, or if only one of them has a data file while the other does not, results will be unpredictable.

Note

Ensure the filenames are correct. That is, the file should be named cstinfo.json and placed in /cfg/ on each device.

When the above configuration is complete, the ECSP in cst1 uses IP address 10.0.0.10 on iface vlan10, while the ECSP in cst2 uses IP address 10.0.0.100 on iface vlan10.

To use the ECSP services on cst1, an ECSC client needs to be running on a host with IP address 10.0.0.42, and to use the ECSP services on cst2, an ECSC client needs to be running on a host with IP address 10.0.0.52.

## Inauguration Result

Using the `show ttdp` command we now verify that we have recevied the intended network configuration. Highlighted in orange are the values that are of interest.

    etbn1cst1:/#> show ttdp
    TTDP NODE
    backbone-id  : 0 (tcms)
    etbn-id      : 1
    etbn-ip      : 10.128.0.1
    local-id     : 1
    own-mac      : 0c:65:8c:93:00:00
    uuid         : 11111111-1111-1111-1111-111111111111
    connTableCnt : 0x1d491819
    EtbTopoCnt   : 0x80ea82ac
    Inauguration : INAUGURATED
    Inhibition   : Self: Off,  Others: Off,  Train: Off

    CST-NET  IFACE     IP              CONNECTED ETBNs
       1     vlan10    10.0.0.10/18    1

    NODE ID      MAC ADDRESS            ORIENTATION
          1      0c:65:8c:93:00:00      Direct
          2      0c:7a:40:ee:00:00      Direct
          3      0c:c8:64:98:00:00      Direct

    CONSIST                               NODES   DIRECTION  NETWORKS
    11111111-1111-1111-1111-111111111111  1       Direct     10.128.64.0/18

    etbn1cst1:/#>

    etbn1cst2:/#> show ttdp
    TTDP NODE
    backbone-id  : 0 (tcms)
    etbn-id      : 2
    etbn-ip      : 10.128.0.2
    local-id     : 1
    own-mac      : 0c:7a:40:ee:00:00
    uuid         : 22222222-2222-2222-2222-222222222222
    connTableCnt : 0x1d491819
    EtbTopoCnt   : 0xf4b2eb52
    Inauguration : INAUGURATED
    Inhibition   : Self: Off,  Others: Off,  Train: Off

    CST-NET  IFACE     IP              CONNECTED ETBNs
       1     vlan10    10.0.0.10/18    2,3

    NODE ID      MAC ADDRESS            ORIENTATION
          1      0c:65:8c:93:00:00      Direct
          2      0c:7a:40:ee:00:00      Direct
          3      0c:c8:64:98:00:00      Direct

    CONSIST                               NODES   DIRECTION  NETWORKS
    11111111-1111-1111-1111-111111111111  1       Direct     10.128.64.0/18
    22222222-2222-2222-2222-222222222222  2..3    Direct     10.128.128.0/18

    etbn1cst2:/#>

    etbn2cst2:/#> show  ttdp
    TTDP NODE
    backbone-id  : 0 (tcms)
    etbn-id      : 3
    etbn-ip      : 10.128.0.3
    local-id     : 2
    own-mac      : 0c:c8:64:98:00:00
    uuid         : 22222222-2222-2222-2222-222222222222
    connTableCnt : 0x1d491819
    EtbTopoCnt   : 0xf4b2eb52
    Inauguration : INAUGURATED
    Inhibition   : Self: Off,  Others: Off,  Train: Off

    CST-NET  IFACE     IP              CONNECTED ETBNs
       1     vlan10    10.0.0.2/18     2,3

    NODE ID      MAC ADDRESS            ORIENTATION
          1      0c:65:8c:93:00:00      Direct
          2      0c:7a:40:ee:00:00      Direct
          3      0c:c8:64:98:00:00      Direct

    CONSIST                               NODES   DIRECTION  NETWORKS
    11111111-1111-1111-1111-111111111111  1       Direct     10.128.64.0/18
    22222222-2222-2222-2222-222222222222  2..3    Direct     10.128.128.0/18

    etbn2cst2:/#>

Additionally, we can use the `nslookup` command to verify that the communication profile configuration has been read. A set of URIs has been chosen to verify that the DNS entries has been created.

    etbn1cst1:/#> nslookup devDCU2.anyVeh.lCst.lTrn
    Server:    127.0.0.1
    Address 1: 127.0.0.1 localhost

    Name:      devDCU2.anyVeh.lCst.lTrn
    Address 1: 10.0.0.111
    etbn1cst1:/#> nslookup devHVAC.anyVeh.lCst.lTrn
    Server:    127.0.0.1
    Address 1: 127.0.0.1 localhost

    Name:      devHVAC.anyVeh.lCst.lTrn
    Address 1: 10.0.0.100
    etbn1cst1:/#> nslookup devCCUO2.anyVeh.lCst.lTrn
    Server:    127.0.0.1
    Address 1: 127.0.0.1 localhost

    Name:      devCCUO2.anyVeh.lCst.lTrn
    Address 1: 10.0.0.11
    etbn1cst1:/#>

« Previous Next »