My current customer needs to use 172.18.0.0/16 for their new VMWare Cloud on AWS cluster. However we tried this in the past and were getting a “NO ROUTE TO HOST” error when trying to add the VMC vCenter as a cloud account.
The problem was eventually traced back to the ‘on-prem-collector’ (br-57b69aa2bd0f
) network in the Cloud Proxy which also uses the same subnet.

Let’s say the vCenters IP is 172.18.32.10. From inside cloudassembly-sddc-agent container, I try to connect to the vCenter. Eventually getting a ‘No route to host’ error. Can anyone say classic overlapping IP space?

We reached out to our VMWare Customer Success Team and TAM, who eventually provided a way to change the Cloud Proxy docker and on-prem-collector subnets.
Now for the obligatory warning. Don’t try this in production without having GSS sign off on it.
In this example I’m going to change the docker network to 192.168.0.0/24 and the on-prem-collector network to 192.168.1.0/24.
First to update the docker interface range.
Add the following two lines to /etc/docker/daemon.json
. Don’t forget to add the necessary comma(s). Then save and close.
{
"bip": "192.168.0.1/24",
"fixed-cidr": "192.168.0.1/25"
}
Restart the docker service.
# systemctl restart docker
Now onto the on-prem-collector network.
Check to see which containers are using this network with docker network inspect on-prem-collector
. Mine had two, cloudassembly-sddc-agent, cloudassembly-cmx-agent.
# docker network inspect on-prem-collector
[
{
"Name": "on-prem-collector",
"Id": "57b69aa2bd0f694d76cc553769321deebcdb79e009e0964c4b5cc47aadb14684",
"Created": "2021-02-10T16:05:21.953266873Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"05105324cff757d76de9e2f535cfb72d2e96094a630561aa141a40aa04095f00": {
"Name": "cloudassembly-cmx-agent",
"EndpointID": "8f6717a969b5a1edfea37b9e3d77565c38419de18774bebf4c3981e41c1ad017",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
},
"b227cf1add6caca415b88f927fb10982b0cd846f71548f95071b65330e4024e1": {
"Name": "cloudassembly-sddc-agent",
"EndpointID": "4f802a81e0a5dfe50ca39675a5b5106a5fb647198f3bfa898f4f62793baad448",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Disconnect those two machines from the on-prem-collector network.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05105324cff7 symphony-docker-external.jfrog.io/vmware/cloudassembly-cmx-agent:207 "./run.sh --lemansDa…" 4 days ago Up 5 minutes 127.0.0.1:8004->8004/tcp cloudassembly-cmx-agent
b227cf1add6c symphony-docker-external.jfrog.io/vmware/cloudassembly-sddc-agent:4cda576 "./run.sh --lemansDa…" 4 days ago Up 5 minutes 127.0.0.1:8002->8002/tcp cloudassembly-sddc-agent
# docker network disconnect on-prem-collector b227cf1add6c
# docker network disconnect on-prem-collector 05105324cff7
# docker network inspect on-prem-collector
[
{
"Name": "on-prem-collector",
"Id": "57b69aa2bd0f694d76cc553769321deebcdb79e009e0964c4b5cc47aadb14684",
"Created": "2021-02-10T16:05:21.953266873Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
Delete the on-prem-collector network, then re-add using the new subnet (using 192.168.1.0/24)
# docker network rm on-prem-collector
on-prem-collector
# docker network create --subnet=192.168.1.0/24 --gateway=192.168.1.1 on-prem-collector
47e3d477a87c4459f57e3a7305754b1d91e4d13e645ad4c160de5b8e64fede1a
Reconnect the two containers to the new docker network.
# docker network connect on-prem-collector 05105324cff7
# docker network connect on-prem-collector b227cf1add6c
#
# docker network inspect on-prem-collector
[
{
"Name": "on-prem-collector",
"Id": "47e3d477a87c4459f57e3a7305754b1d91e4d13e645ad4c160de5b8e64fede1a",
"Created": "2021-05-18T15:58:55.019732144Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.1.0/24",
"Gateway": "192.168.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"05105324cff757d76de9e2f535cfb72d2e96094a630561aa141a40aa04095f00": {
"Name": "cloudassembly-cmx-agent",
"EndpointID": "34df13b0accf2f561e0226918a7e84d02995a25f4cc3969758a913a3f6c4e8bb",
"MacAddress": "02:42:c0:a8:01:02",
"IPv4Address": "192.168.1.2/24",
"IPv6Address": ""
},
"b227cf1add6caca415b88f927fb10982b0cd846f71548f95071b65330e4024e1": {
"Name": "cloudassembly-sddc-agent",
"EndpointID": "405e7e8e1a4ad09b4cc99b0661454a4b0f32687152ca2346daf72f5a424dcd4d",
"MacAddress": "02:42:c0:a8:01:03",
"IPv4Address": "192.168.1.3/24",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Reboot and do the happy dance.
Happy not-coding.