Chassis Partition - Initial Networking Setup¶
Overview¶
Chassis partitions are completely separate management entities that are managed outside of the system controllers but are still considered part of the F5OS platform layer. If you have properly setup a chassis partition and assigned an out-of-band management IP address, you will be able to access it via its own CLI, GUI, and API.
Before configuring any tenant you’ll need to setup networking for the chassis partition. All in-band networking is configured within the chassis partition layer, and all chassis partitions are completely isolated form each other.
This page describes the chassis partition initial networking setup.
Prerequisites¶
Before you can perform the initial networking setup on a chassis partition, refer to the System Controller - Chassis Partition Lifecycle workflow in order to create the chassis partition first.
Get Authentication Token¶
F5 disables basic authentication for HTTP/HTTPS requests to the VELOS API by default for security enhancement. You can make HTTP/HTTPS requests to the VELOS API while keeping basic authentication disabled by sending the requests to the chassis partition and by including a valid chassis partition authentication token in the X-Auth-Token header.
Whenever you perform an authenticated login to the chassis partition, and request a token using the Auth Token, you receive an access token. Use it to send HTTP/HTTPS requests to a chassis partition.
Request a new token from the chassis partition using an authenticated login. Using your username and password, log into the chassis partition.
GET: https://<chassis-partition-ip>:8888/restconf/data/openconfig-system:system/aaa
The value set in the X-Auth-Token
in the response Headers is the access token value to use in subsequent requests header along with the application/yang-data+json
Content-Type.
- Content-Type: application/yang-data+json
- X-Auth-Token: {{ X-Auth-Token }}
Port Group Setup¶
To list the current portgroup configuration issue the following API call:
GET: https://<chassis-partition-ip>:8888/restconf/data/f5-portgroup:portgroups
VLAN Setup¶
VLANs can be created in the chassis partition. VLANs are not shared across chassis partitions, and each partition must configure its own set of VLANs.
To configure VLANs use the following API command and JSON body. This will configure 3 VLANs (Internal-VLAN, External-VLAN, &HA-VLAN) along with their VLAN ID’s. After the VLANs are created you will be able to assign then to either interfaces or LAGs.
PATCH: https://<chassis-partition-ip>:8888/restconf/data
{
"openconfig-vlan:vlans": {
"vlan": [
{
"vlan-id": "444",
"config": {
"vlan-id": 444,
"name": "Internal-VLAN"
}
},
{
"vlan-id": "555",
"config": {
"vlan-id": 555,
"name": "External-VLAN"
}
},
{
"vlan-id": "500",
"config": {
"vlan-id": 500,
"name": "HA-VLAN"
}
}
]
}
}
The following command will list the configuration and status of all VLANs within the current chassis partition:
GET: https://<chassis-partition-ip>:8888/restconf/data/openconfig-vlan:vlans
Link aggregation/LACP Setup¶
All in-band networking including LAGs are configured in the VELOS chassis partition layer. The admin will configure interfaces and/or LAGs and they will assign VLANs to those physical interfaces. Tenants will then inherit the VLANs that are assigned to them when they are created. It is recommended to spread LAG members across blades for added redundancy. You can add up to eight members for each LAG.
To create a LAG and add interfaces & proper LACP configuration will take a few different API calls. First a Link Aggregation Group (LAG) interface must be created. You will define a Name, specify the state, the LAG-type of LACP, and define which VLANs will use this LAG interface. In the Example below two LAG interfaces are being created (Arista & HA Interconnect):
PATCH: https://<chassis-partition-ip>:8888/restconf/data
{
"openconfig-interfaces:interfaces": {
"interface": [
{
"name": "Arista",
"config": {
"name": "Arista",
"type": "iana-if-type:ieee8023adLag",
"enabled": true,
"openconfig-vlan:tpid": "openconfig-vlan-types:TPID_0X8100
},
"openconfig-if-aggregate:aggregation": {
"config": {
"lag-type": "LACP",
"f5-if-aggregate:distribution-hash": "src-dst-ipport"
},
"openconfig-vlan:switched-vlan": {
"config": {
"trunk-vlans": [
444,
555
]
}
}
}
},
{
"name": "HA-Interconnect",
"config": {
"name": "HA-Interconnect",
"type": "iana-if-type:ieee8023adLag",
"enabled": true,
"openconfig-vlan:tpid": "openconfig-vlan-types:TPID_0X8100"
},
"openconfig-if-aggregate:aggregation": {
"config": {
"lag-type": "LACP",
"f5-if-aggregate:distribution-hash": "src-dst-ipport"
},
"openconfig-vlan:switched-vlan": {
"config": {
"trunk-vlans": [
500
]
}
}
}
}
]
}
}
Interface Setup¶
The next step is to add physical interfaces into the LAG group. Interfaces will be added to the aggregate-id that was created in the previous step:
PATCH: https://<chassis-partition-ip>:8888/restconf/data
{
"openconfig-interfaces:interfaces": {
"interface": [
{
"name": "1/2.0",
"config": {
"name": "1/2.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "Arista"
}
}
},
{
"name": "2/1.0",
"config": {
"name": "2/1.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "Arista"
}
}
},
{
"name": "1/1.0",
"config": {
"name": "1/1.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "HA-Interconnect"
}
}
},
{
"name": "2/2.0",
"config": {
"name": "2/2.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "HA-Interconnect"
}
}
}
]
}
}
The final step is adding LACP configuration for each LAG:
PATCH: https://<chassis-partition-ip>:8888/restconf/data
{
"ietf-restconf:data": {
"openconfig-lacp:lacp": {
"interfaces": {
"interface": [
{
"name": "Arista",
"config": {
"name": "Arista",
"interval": "FAST",
"lacp-mode": "ACTIVE"
}
},
{
"name": "HA-Interconnect",
"config": {
"name": "HA-Interconnect",
"interval": "FAST",
"lacp-mode": "ACTIVE"
}
}
]
}
}
}
}
To view the final LAG configuration via the API use the following API call:
GET: https://<chassis-partition-ip>:8888/restconf/data/openconfig-lacp:lacp
You can get more granular information down to the interface level using the following API command:
GET: https://<chassis-partition-ip>:8888/restconf/data/openconfig-interfaces:interfaces