f5-declarative-onboarding
f5-declarative-onboarding copied to clipboard
Invalid subnet error after first onboarding run when using self-IPs with Route Domains
Environment
- Declarative Onboarding Version: 1.36.1
- BIG-IP Version: BIG-IP 16.1.3.3 Build 0.0.3 Point Release 3
Summary
We are onboarding a device that has multiple route domains with a self IP in each route domain, the first declaration works successfully however subsequent declarations fail with the following error:
some subnets are not valid IP addresses: 10.12.221.80%40/24
The impact is we can't make changes to the device's declaration after the first successful onboarding run.
Steps To Reproduce
Steps to reproduce the behavior:
- Submit the following declaration which should succeed:
{
"async": true,
"class": "Device",
"schemaVersion": "1.36.0",
"Common": {
"class": "Tenant",
"external": {
"class": "VLAN",
"interfaces": [{"name":"1.1","tagged":false}],
"tag": 1001
},
"internal": {
"class": "VLAN",
"interfaces": [{"name":"1.2","tagged":false}],
"tag": 1002
},
"integration": {
"class": "VLAN",
"interfaces": [{"name":"1.3","tagged":false}],
"tag": 1003
},
"qa": {
"class": "VLAN",
"interfaces": [{"name":"1.4","tagged":false}],
"tag": 1004
},
"uat": {
"class": "VLAN",
"interfaces": [{"name":"1.5","tagged":false}],
"tag": 1005
},
"EXTERNAL_IPV4": {
"address": "10.12.227.80/24",
"allowService": "none",
"class": "SelfIp",
"trafficGroup": "traffic-group-local-only",
"vlan": "/Common/external"
},
"INTEGRATION_IPV4": {
"address": "10.12.219.80%20/24",
"allowService": "none",
"class": "SelfIp",
"trafficGroup": "traffic-group-local-only",
"vlan": "/Common/integration"
},
"INTERNAL_IPV4": {
"address": "10.12.225.80/24",
"allowService": ["tcp:4353"],
"class": "SelfIp",
"trafficGroup": "traffic-group-local-only",
"vlan": "/Common/internal"
},
"QA_IPV4": {
"address": "10.12.220.80%30/24",
"allowService": "none",
"class": "SelfIp",
"trafficGroup": "traffic-group-local-only",
"vlan": "/Common/qa"
},
"UAT_IPV4": {
"address": "10.12.221.80%40/24",
"allowService": "none",
"class": "SelfIp",
"trafficGroup": "traffic-group-local-only",
"vlan": "/Common/uat"
},
"traffic-group-1": {
"class": "TrafficGroup"
},
"traffic-group-local-only": {
"class": "TrafficGroup"
},
"default_route": {
"class": "Route",
"gw": "10.12.225.1%0",
"network": "default"
},
"RouteDomain_INTEGRATION": {
"class": "RouteDomain",
"id": 20,
"routingProtocols": [],
"vlans": ["integration"]
},
"RD20_0.0.0.0_0": {
"class": "Route",
"network": "0.0.0.0%20/0",
"gw": "10.12.219.1%20"
},
"RouteDomain_QA": {
"class": "RouteDomain",
"id": 30,
"routingProtocols": [],
"vlans": ["qa"]
},
"RD30_0.0.0.0_0": {
"class": "Route",
"network": "0.0.0.0%30/0",
"gw": "10.12.220.1%30"
},
"RouteDomain_UAT": {
"class": "RouteDomain",
"id": 40,
"routingProtocols": [],
"vlans": ["uat"]
},
"RD40_0.0.0.0_0": {
"class": "Route",
"network": "0.0.0.0%40/0",
"gw": "10.12.221.1%40"
},
"system": {
"autoCheck": true,
"autoPhonehome": true,
"class": "System",
"guiAuditLog": true,
"hostname": "bigip.local",
"tmshAuditLog": true
},
"ManagementIp_IPv4": {
"address": "10.12.217.80/24",
"class": "ManagementIp",
"remark": "configured-statically"
},
"default": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "default",
"remark": "configured-statically"
},
"MGMT_10.12.34.222_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.34.222/32",
"remark": "configured-statically"
},
"MGMT_10.12.34.221_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.34.221/32",
"remark": "configured-statically"
},
"MGMT_10.12.162.222_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.162.222/32",
"remark": "configured-statically"
},
"MGMT_10.12.162.221_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.162.221/32",
"remark": "configured-statically"
},
"MGMT_10.12.162.33_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.162.33/32",
"remark": "configured-statically"
},
"MGMT_10.12.119.209_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.119.209/32",
"remark": "configured-statically"
},
"MGMT_10.12.245.214_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.245.214/32",
"remark": "configured-statically"
},
"MGMT_10.36.5.10_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.36.5.10/32",
"remark": "configured-statically"
},
"MGMT_10.10.10.10_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.10.10.10/32",
"remark": "configured-statically"
},
"MGMT_10.7.34.15_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.7.34.15/32",
"remark": "configured-statically"
},
"MGMT_10.8.7.15_32": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.8.7.15/32",
"remark": "configured-statically"
},
"MGMT_10.12.34.0_24": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.34.0/24",
"remark": "configured-statically"
},
"MGMT_10.12.162.0_24": {
"class": "ManagementRoute",
"gw": "10.12.217.1",
"mtu": 1500,
"network": "10.12.162.0/24",
"remark": "configured-statically"
},
"DNS": {
"class": "DNS",
"nameServers": ["1.1.1.1"],
"search": ["example.com"]
},
"Provision": {
"class": "Provision",
"ltm": "nominal"
,"gtm": "nominal"
,"apm": "nominal"
,"afm": "nominal"
,"avr": "nominal"
}
}
}
-
Make a change to the declaration, in our case it was adding a new management route
-
POST the updated declaration
-
Observe the following error response:
{
"id": "0bc7360c-fba9-4d7b-886f-cb62b1cb0ec2",
"selfLink": "https://localhost/mgmt/shared/declarative-onboarding/task/0bc7360c-fba9-4d7b-886f-cb62b1cb0ec2",
"code": 500,
"status": "ERROR",
"message": "invalid config - rolled back",
"errors": [
"some subnets are not valid IP addresses: 10.12.221.80%40/24",
"some subnets are not valid IP addresses: 10.12.221.80%40/24"
],
"result": {
"class": "Result",
"code": 500,
"status": "ERROR",
"message": "invalid config - rolled back",
"errors": [
"some subnets are not valid IP addresses: 10.12.221.80%40/24",
"some subnets are not valid IP addresses: 10.12.221.80%40/24"
]
},
"declaration": {}
}
Expected Behavior
The declaration to succeed on subsequent runs after the initial successful run.
Actual Behavior
Initial run succeeds but then subsequent POSTs fail with the invalid subnet error for the non-default route domain IPs
Jira AUTOTOOL-3832