In this section:
In the AWS environment, Userdata is populated automatically by the template when SWe instances are launched. Metadata is populated automatically by the LCA from the information obtained from the AWS internal Metadata server. The Metadata and the Userdata are populated in the standard JSON format (.json
file).
The SBC SWe instances are launched on AWS with CFN templates provided by Sonus. The Life Cycle Agent (LCA) performs the following:
Once the SWe instance boots up, Cloud-init retrieves Metadata and Userdata information associated with this instance from the internal Metadata server and provides it to the LCA.
The Metadata information is auto populated from the internal Metadata server in AWS.
Format of Metadata
This is a sample format for interface definition. # JSON for the Mgt0 interface "IF0" : { "Port":"Mgt0", "FIPV4":"<IP_Address>" }, # Secondary IP for PKT0 will appear in this particular format "AltIP2" : { "IFName":"IF2", "IP": "<IP_Address>", "FIPV4":"<IP_Address>" }
Example of Metadata for HA
{ "VIP2": { "IP": "10.54.40.163", "IFName": "IF3" }, "IF0": { "PrefixV4": "24", "RNat": "True", "Port": "Mgt0", "FIPV4": "34.202.206.222" }, "IF1": { "PrefixV4": "24", "RNat": "True", "Port": "Ha0" }, "IF2": { "PrefixV4": "24", "RNat": "False", "Port": "Pkt0" }, "IF3": { "PrefixV4": "24", "RNat": "False", "Port": "Pkt1" }, "LOGICAL_MGMT_IP": { "IP": "10.54.10.253", "IFName": "IF0", "FIPV4": "34.203.6.144" }, "VIP1": { "IP": "10.54.30.221", "IFName": "IF2" } }
Example of Metadata for Standalone
{ "ALT_Pkt1_00": { "IP": "10.54.40.125", "IFName": "IF3" }, "ALT_Pkt0_00": { "IP": "10.54.30.166", "IFName": "IF2" }, "IF0": { "PrefixV4": "24", "RNat": "True", "Port": "Mgt0", "FIPV4": "34.196.70.234" }, "IF1": { "PrefixV4": "24", "RNat": "True", "Port": "Ha0" }, "IF2": { "PrefixV4": "24", "RNat": "False", "Port": "Pkt0" }, "IF3": { "PrefixV4": "24", "RNat": "False", "Port": "Pkt1" } }
This section describes about the individual parameters of the metadata which is auto-populated in the AWS instance.
Interface Definition
"IF3": { "Port": "Pkt0", "GWV4": "10.0.3.1", "IPV4": "10.0.3.187/24", "FIPV4": "54.32.21.12", "RNat": "true" }
Following are the elements which constitutes an interface definition:
Parameters | Description |
---|---|
IFX | Interface definition name This element is the name of the dictionary which contains the information of the port. Here, "IF" is a key word, and it can be appended with any name/identifier. Example: IF_Pkt0, IFMgt0, IF-MediaPort, etc. Note: The name provided for Interface definition is used in Alternate IP definition. A link is formed between the two definitions based on the Interface definition name. |
Port | Port Name One of – Mgt0, Ha0, Pkt0, Pkt1. This indicates the actual port to which the definition belongs to. |
IPV4 | Primary IP on the Private Port + Prefix - V4 Should be provided only in case of DHCP disabled on the port requires V4 address. Provide IP address and prefix. Format : 10.54.116.53/23 |
FIPV4 | Floating IP associated on the Port Provide when the Floating IP is associated ( in DHCP enabled and disabled scenario) with the port. |
GWV4 | Gateway IP V4 Should be provided only in case of DHCP disabled on the port requires V4 address. Note : GWV4 and IPV4 are interdependent, both have to be provided in noDHCP V4 scenario. |
RNat | Reverse NAT flag Values:
Default value - False |
Alternate IP Definition
Alternate IP definition contains the information of additional IP addresses associated with the port. For each additional IP address added to the port, there has to be corresponding ALT IP definition. The maximum number of ALT IP (alternate IP address) that can be associated with a port is restricted to 14.
"AltIP3" : { "IFName":"IF2", "IP": "10.2.0.7", "FIPV4":"aaa.bbb.ccc.eee" }
Parameter | Description |
---|---|
AltIP3 | Alternate IP (ALT IP) definition name/identifier This is the name provided to the additional IP address associated with a port. This identifier does not have any restriction on naming. Following are some example for ALT IP identifier : Alt_Pkt0_AX, ALT_PKT0_01, signaling_Pkt0_05. |
IFName | Interface definition Name This field indicates the association between the ALT IP address and the interface definition. If the user changes the interface definition name (i.e IFX name), the user should simultaneously change the IFName value in this definition. Otherwise, the link between ALT IP and it's port is lost. |
IP | IPV4 This field contains the additional IP address that needs to be associated with the port. It can contain IPv4 address, based on what version the parent Interface dictionary contains. If, say, IF definition has V4 address, the ALT IP definition also should have only V4 address. In case of dual stack scenario, since, Interface dictionary has V4 addresses, the ALT IP definition also have V4 addresses. But both have to be defined in separate ALT dictionary, pointing to it's parent dictionary. |
FIPV4 | Floating IP on the Alternate IP If a floating IP is associated with the ALT (alternate/additional) IP, the value against this field must contain the floating IP. Note: The RNat flag which is defined in Interface dictionary, is an interface-wide entity. If the RNat flag is disabled ( value = False ) in interface dictionary, the FIP value provided in the ALT IP definition is not considered while populating the metaVariables for this port. |
Format of Userdata for HA
If the CERole parameter is Active/Standby, it represents HA userdata format.
{ "CERole" : "CERole", "ReverseNatPkt0" : "False", "ReverseNatPkt1" : "False", "CEName" : "CEName", "SystemName" : "SystemName", "PeerCEName" : "PeerCEName", "PeerCEHa0IPv4Prefix" : "PeerCEHa0IPv4Prefix" }
Example of Userdata for HA
If the CERole parameter is Active/Standby, it represents HA userdata format.
{ "CERole" : "ACTIVE", "ReverseNatPkt0" : "False", "ReverseNatPkt1" : "False", "CEName" : "vsbc1", "SystemName" : "vsbcSystem", "NodeName" : "SD-test-HA-510A654", "PeerCEName" : "vsbc2", "PeerCEHa0IPv4Address" : "10.54.20.133" }
Format of Userdata for Standalone
If the CERole parameter is missing, it represents standalone userdata format.
{ "ReverseNatPkt0" : "False", "ReverseNatPkt1" : "False", "CEName" : "CEName", "SystemName" : "SystemName" }
Example of Userdata for Standalone
If the CERole parameter is missing, it represents standalone userdata format.
{ "ReverseNatPkt0" : "False", "ReverseNatPkt1" : "False", "SystemName" : "vsbcSystem", "CEName" : "vsbc1" }
Interface related information (contents of Interface and ALT IP definition) provided in userdata and/or metadata is flattened down into key-value pairs, which would be used for CLI configuration.
MetaVariable dictionary is populated in the file /opt/sonus/instanceMetaVar.json and the corresponding XML file is injected into the CDB, is located at /opt/sonus/sbx/lca/sonusMetaVariables.xml
The IP address is obtained from DHCP query for respective interface. The IP address, Gateway address, Subnet prefix is directly populated in the /opt/sonus/sbx/lca/sonusMetaVariables.xml file.
The metaVariables can be viewed from the CLI command as shown below :
> show table system metaVariable NAME VALUE -------------------------------------------------- IF0.Port Mgt0 IF1.GWV4 10.10.11.1 IF1.IPV4 10.10.11.57 IF1.Port Ha0 IF2.Port Pkt0 IF3.Port Pkt0 IF4.Port Pkt1 IF5.GWV4 10.54.226.193 IF5.IPV4 10.54.226.242 IF5.Port Pkt1 IF1.PrefixV4 24 IF4.PrefixV4 26 IF5.PrefixV4 26 PKT1_V01_ALT_IP_01.IP 10.54.226.179 PKT1_V02_ALT_IP_01.IP 10.54.226.243 PKT0_V01_ALT_IP_01.IFName IF2 PKT0_V02_ALT_IP_01.IFName IF3 PKT1_V01_ALT_IP_01.IFName IF4 PKT1_V02_ALT_IP_01.IFName IF5 LOGICAL_MGMT_IP.IFName IF0
These metaVariables are used to make configurations, a sample of it is as shown below:
Configuring the SBC instances on AWS is similar to configuring SBC on OpenStack. For complete CLI configuration, refer to CLI Reference Guide.