Overview
Cisco NCS 2000 Shelf Virtualization Orchestrator (SVO) supports different modes of deployment in the optical network. This chapter provides information related to the installation and configuration of the SVO software application on external servers or virtual machines (VMs).
SVO is a Docker-based application that leverages a complex networking configuration. The SVO application supports both IPv4 and IPv6 scenarios through different Docker networks created during the installation. The extreme flexibility of the SVO software solution and its network architecture allows satisfying any requirement with proper configuration.
IPv4 Port Forwarding
IPv4 port forwarding allows saving one IPv4 address of the management network for each running admin plane (two IPv4 addresses in a high availability setup). The admin plane application shares the same IPv4 address assigned to the host NIC.
Note |
IPv4 port forwarding can be used in the server only. |
Use the svoTools-12.3.1.sh script described in Install SVO in the External Server Using the Installation Script to enable IPv4 Port Forwarding.
Note |
When preparing the network configuration YAML file, the same IPv4 address must be assigned to the For information on how to create the network YAML configuration file, see Network Configuration File. |
Layer 3 Management Interconnection for Geo Redundancy
Layer 3 management interconnection between servers for Geo redundancy allows you to avoid stretching the Layer 2 subnet between the two locations where the servers are installed.
Layer 3 management interconnection solution is based on the Border Gateway Protocol (BGP). Servers or VMs in different locations establish a BGP neighbor relationship with a core router. The SVO Admin Plane in the servers or VMs advertises the routes that are related to itself and each SVO instance running in Active mode to the core router.
Layer 3 management interconnection is implemented with goBGP 3.0.0. goBGP is an Open Source BGP implementation that can be downloaded from https://github.com/osrg/gobgp. We recommend goBGP 3.0.0 for better compatibility.
goBGP is available as an archive file. It includes a daemon and a client. After you download and extract the files in the local device, it is necessary to create a configuration file. The following examples show the configuration files for IPv4 setup and IPv4/IPv6 setup.
gobgp_ipv4.yml
global:
config:
as: 65001
router-id: "192.168.85.2"
neighbors:
- config:
peer-as: 65001
neighbor-address: "192.168.85.1"
auth-password: "cisco"
gobgp_ipv4_ipv6.yml
global:
config:
as: 65001
router-id: "192.168.85.2"
neighbors:
- config:
peer-as: 65001
neighbor-address: "fd00::192:168:85:1"
auth-password: "cisco"
- config:
peer-as: 65001
neighbor-address: "192.168.85.1"
auth-password: "cisco"
Note |
The field auth-password is optional, remove it if authentication is not a requirement. |
When the configuration file is ready, you can execute the goBGP daemon with administrative privileges via command line (or configuring it as a service).
Use the following command for executing the gobgp_ipv4.yml file:
[gacrux@arturo-vm3 gobgp]$ sudo ./gobgpd -t yaml -f ./gobgp_ipv4.yml
Use the following command for executing the gobgp_ipv4_ipv6.yml file:
[gacrux@arturo-vm3 gobgp]$ sudo ./gobgpd -t yaml -f ./gobgp_ipv4_ipv6.yml
To connect to the SVO Installation Tool remotely, its route must be manually advertised with the goBGP client. This operation must be done on the local and remote servers using the following commands. The example commands contain the details of the local machine that must be substituted for the following custom configuration and the next-hop addresses:
-
IP address of Admin Plane / SVO Installation Tool
-
IP address of the server management network
[gacrux@VM1]$ sudo./gobgp global rib -a ipv4 add 10.58.253.2/32 nexthop 192.168.85.2
[gacrux@VM2]$ sudo./gobgp global rib -a ipv4 add 10.58.253.3/32 nexthop 172.16.16.2
For information on how to create the network YAML configuration file, see Network Configuration File. Refer to Deployment of Servers in Different Locations (L3 Interconnection) for details about SVO software application running with Layer 3 management interconnection and Use Case 3 - Dislocated Servers (L3 Interconnection) for use case example.
Using svoTools.sh Script
Use the svoTools-12.3.1.sh script described in Install SVO in the External Server using Installation Script to enable Layer 3 Management Interconnection.
Running goBGP Daemon as a Service
After you download, extract the files, and create the configuration file as described in the previous section, you can configure the goBGP Daemon as a service.
[gacrux@arturo-vm3 ~]$ cat /usr/lib/systemd/system/gobgpd.service
[Unit]
Description=goBGP 3.0 server daemon
Documentation=www.gobgp.com
After=network.target
[Service]
Type=exec
ExecStart=/home/gacrux/gobgp-3.0/gobgpd -t yaml -f /home/gacrux/gobgp-3.0/gobgp_ipv4.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=2s
[Install]
WantedBy=multi-user.target
Enable the Service
To enable the service, use the following command:
[gacrux@arturo-vm3 ~]$ sudo systemctl enable gobgpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/gobgpd.service to /usr/lib/systemd/system/gobgpd.service.
[gacrux@arturo-vm3 ~]$
Start the Service
To start the service, use the following command:
[gacrux@arturo-vm3 ~]$ sudo systemctl start gobgpd.service
Check the Status of the Service
To check the status of the service, use the following command:
[gacrux@arturo-vm3 ~]$ sudo systemctl status gobgpd.service
● gobgpd.service - goBGP 3.0 server daemon
Loaded: loaded (/usr/lib/systemd/system/gobgpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-03-18 16:32:01 CET; 8s ago
Main PID: 28139 (gobgpd)
Tasks: 10
Memory: 8.5M
CGroup: /system.slice/gobgpd.service
└─28139 /home/gacrux/LG/gobgp-3.0/gobgpd -t yaml -f /home/gacrux/LG/gobgp-3.0/gobgp_ipv4.yml
Mar 18 16:32:01 arturo-vm3 systemd[1]: Started goBGP 3.0 server daemon.
Mar 18 16:32:01 arturo-vm3 gobgpd[28139]: {"level":"info","msg":"gobgpd started","time":"2022-03-18T16:32:01+01:00"}
Mar 18 16:32:01 arturo-vm3 gobgpd[28139]: {"Topic":"Config","level":"info","msg":"Finished reading the config file","time":"2022-03-18T16:32:01+01:00"}
Mar 18 16:32:01 arturo-vm3 gobgpd[28139]: {"Key":"192.168.85.1","Topic":"config","level":"info","msg":"Add Peer","time":"2022-03-18T16:32:01+01:00"}
Mar 18 16:32:01 arturo-vm3 gobgpd[28139]: {"Key":"192.168.85.1","Topic":"Peer","level":"info","msg":"Add a peer configuration","time":"2022-03-18T16:32:01+01:00"}
Mar 18 16:32:06 arturo-vm3 gobgpd[28139]: {"Key":"192.168.85.1","State":"BGP_FSM_OPENCONFIRM","Topic":"Peer","level":"info","msg":"Peer Up","time":"2022-03-18T16:32:06+01:00"}
[gacrux@arturo-vm3 ~]$
Stop the Service
To stop the service, use the following command:
[gacrux@arturo-vm3 ~]$ sudo systemctl stop gobgpd.service
Disable the Service
To disable the service, use the following command:
[gacrux@arturo-vm3 ~]$ sudo systemctl disable gobgpd.service