Skip to main content
Version: v25.07.31

Two-Spoke Setup (Hub, Hub Link, PE, CE Link PE) Troubleshooting

Two-Spoke Network Setup provides troubleshooting steps for connectivity and configuration issues. These include starting from the CE terminal, configuration checks, network connectivity tests, interface status checks, route inspection, firewall rule analysis, and examining log files. By following these steps, you can identify and resolve network communication issues.

Troubleshooting Steps

Cloud Configuration Verification

Access the CE Terminal

Before you start troubleshooting, you must have the necessary permissions to run the commands. To do this, run the following command.

sudo su -

Checking OpenVPN Configuration

Run this command to view the OpenVPN configuration in the last applied settings:

cat /tmp/last_config_response.json | jq .interfacesConfig.openVpn

The given one is just an example output; when this command is run, it will show something like this.

Example Response

{
"vtun38_2": {
"trafficPolicy": "2mbps",
"trafficPolicyIn": true,
"trafficPolicyOut": true,
"caCertFile": null,
"certFile": null,
"keyFile": null,
"crlFiles": [],
"dhFile": null,
"pushRoutes": null,
"subnet": null,
"replaceDefaultRoutes": false,
"maxConnections": null,
"useLzoCompression": false,
"nameServer": null,
"cipher": "AES-256-CBC",
"authentication": null,
"interfaceName": "vtun38_2",
"bridgeGroup": "br38",
"tunnelType": "none",
"localPort": 50024,
"remotePort": 50024,
"localHost": null,
"remoteHost": "117.186.234.99",
"remoteHosts": [
"117.186.234.99"
],
"openVpnOption": null,
"persistentTunnel": true,
"vpnSharedSecret": "IwojIDIwNDggYml0IE9wZW5WUE4gc3RhdGljIGtleQojCi0tLS0tQkVHSU4gT3BlblZQTiBTdGF0aWMga2V5IFYxLS0tLS0KY2MzZTYzZjJmMjNiNDQ0YmUyYTk5YTBhYjgwZDQxMjkKM2RjMWZmMDM2YjdhNTZjMDcyOGFlMzBkYTRiMWJiZmEKYjRiZmJmZmVkNWFjNjJjMTg5NWQzYjIyNGE5NjkyYmYKNjljZGM0N2Y0YmM1MmU5ZmY3NzI3NjZkNzI4ZTBlMGYKOGRhNWVjNDgxOWRkMTJkZWNjNDQxZjU2NmZmMmY0MDEKZGMzNDAzOTliNDZkNWI1NzE5MTlkOThhNDJmNTdjZmIKMzFkNDk4YTY3ZjQzYzZkODA3MzY5Mjk3NGU5NTNmNzgKNWY2MWFmOThhOTUzZGJjYjg0ZjZmNzJiZjdhYjNiMjcKNWIwZDY2MGNkYzdiMDAwZjFjYTg5NmVlMTcwYTM5N2UKMzBiMWU3ZjBlOWM2MWE0ZWVmYzM5ZGRjNmE2YWI5MDcKYTM3MzViNzNlNjgxMmQxNmQwZTVjMGZjMzVkMmRkYWIKY2JmM2NlMjI0YjcyOTdmZTczY2EwMjViOTk3ZjM1YmMKYTc4MWQ1ODMwMjFiMDk3N2ZkOTg4MzQ2NWVhNmUxNjgKMzcxODZiMWJjN2NlNDM1ZTViYjRmMGVlMGVkNzVkM2MKMjhkZTU1ODM0OGI1Y2Q5NzM0Y2QwNjljOTQ5M2JjMTMKOTU4NzU1NzcyMTQwZGZmZmMxYjhmYzkzOTIyZGZmMWIKLS0tLS1FTkQgT3BlblZQTiBTdGF0aWMga2V5IFYxLS0tLS0K",
"splitTunnel": false,
"socksProxy": false,
"socksProxyType": null,
"socksProxyPrivateKey": null,
"socksProxyPublicKey": null,
"description": "6426ea7e83066500241c5f3a@hiclouds.io ( SHA - sha-bate1-pe1 ) ( vtun38_2 ) ",
"wanInterfaces": null,
"mode": "site-to-site",
"protocol": "udp",
"ceDeviceId": null,
"ceDeviceLabel": null,
"customerEmail": null,
"status": null,
"peDeviceIds": [
"67c579ae37591440308f3d34"
],
"hubCEDeviceIds": [],
"ceSpokeId": null,
"remoteDeviceLabel": null,
"ethInterface": null
},
"vtun38": {
"trafficPolicy": null,
"trafficPolicyIn": false,
"trafficPolicyOut": false,
"caCertFile": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN4VENDQWEyZ0F3SUJBZ0lHQVljNEEvNmNNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1Ca3hGekFWQmdOVkJBTU1EazFoYm5WaGJDMVVaWE4wYVc1bk1CNFhEVEl6TURNek1URTBNVE14T0ZvWERUTXpNRE15T0RFME1UTXhPRm93R1RFWE1CVUdBMVVFQXd3T1RXRnVkV0ZzTFZSbGMzUnBibWN3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ0VOR1JkN0dDRVo1anB6bTRTVmNDZEZibFdMb2VQc1g0cnM2dnhhdFFIZDhtUmtoWDRkUU9NR0pkelJ5bWsyNXhqbEhzRHNGZkpSSWJzZVY1bG1WajZISVEzaXhyWUVWaTF2aTNxemVuR1FwcncrKzFGcmx3M096cXlySUxVV0pabGNDL3U0cVNVcUJyMXBkWXF2QkVPa2UxTXh2RkxkM1FoYytzK2pEOXYyOXhzbUNBdzFtRDlPTVNVdEh5RSt0UzBqM1lTRExxcWNpQlFHYzlTNXh1akRoRkFac3dvNTVhZHc3OWRLbWRCcnNvQ0YzQUpub0JJenQvaEhrUE1mTG9XcXUwc3NXdjNkLzhXOUo2c2JPWkRIbDI3Ums0eVBDZTF0SStnZUN4ajhtL01URmhjQWFDeGNzUUJLclBXR3BHKytjdTRxZnRHMm82Q2VPVnl0Qm1CQWdNQkFBR2pFekFSTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURBMlo4WmZWSVJiYlVQZCtIOW5YNHVtSVFYeDR0RHVKaEhKZzVIVWhDRzZJZitzbjRLbTdQV0pZVVhTTSsxRHk1S09vV1VNN0lrVjRTeVFyVWw5dmtjR3RKMnRPT3oxSERJUjc4bDRidk5tWVdFaEdaeFBKR3RBVllaOGtSV2trVHNQUDltQlRndWFMTkt6ZDcySTFLKzdiOUpzUGliclcyOCt3bzRlNWhPdUVRR0xtd3NoMm1jWGVSRWs3STlKOTVwUFBQdytDVXN6aGVyeDkvbWVYcFpRb25nWGZaaDFzTWRuRjhHWWVkaEZ6M0IzUENHTllZcWFrb0lVbnZSMzRheTZpSnJkRHFGa0hyOEtkQ2tJWVh0U1hYWWVSbFBpWWsxQ3VIQWg0RFFKMXhWQ3FUVmFJaDByRG5zZjBrZnE4RktuSWo1S0ZRL3lYQmhlUWQ0YmZnVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==",
"certFile": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN1akNDQWFLZ0F3SUJBZ0lHQVplQjZLUHVNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1Ca3hGekFWQmdOVkJBTU1EazFoYm5WaGJDMVVaWE4wYVc1bk1CNFhEVEkxTURZeE9EQTNNVGsxTmxvWERUTTFNRFl4TmpBM01UazFObG93SXpFaE1COEdBMVVFQXd3WU5qZzFNalk0T0RjMU1EY3hNR0V4T0RBeE1UUTBaREJrTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFwNlJWdEMyN0hwZ2lmakdrNVlSVDQ3VDJHWjBXZCtnZWZSV0NrcklkRDE5ZmhMNDlNeE1iL08zdG4xbXpMNWVPQW5WTTVJbnFNeVhudXg2QUNkYjBlYjFiSmlOTFFlaXlJMEVOSHhoSVJxQjBFSjQ4TlhaUktGYWxEWHFKdHR4R2VCcS9EVEN4OWVVcUxjUS8zM3ZBcFNxamYyV25tcnY1UHdsTWEvT2NTU3BhNVZ3K01LanJwTUtiajMrN1EyejFTdU1Bazl2Nk00NDdPeElrL05zYVg1WWJwb0Vmb296aXZxb0FpaVBWa0ZWd1BPOCszQ1dkTXZBTXlkaGFlaHR2cUhvZlJIUFA2ODJpeEVIVHhyMDN5L0luT1hvcWVSS2U5VWpNNVNGUERmU3ZjdFQrQXI1UVhuaUoxa1cwcnZGY3ZCcW9Xb3VXOWlpbVg1NWZKdGtjcVFJREFRQUJNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUNDT01XWWVQc0RRQVNDVzcxTjU4eVprQ1RQS3g5RE5oNmZ5bi8vRGk1ODlMNHJOL0l1Y0JYYVY4a2txR3pHOEtBL1hCUXc4MXR5Q25GOWhyMjdvWkZYRGtERXlZdnFxUVRnMHozUnFIM3dyblJJd290YjBLYVBFK3AyTkV3NzJTbkNHSE13dk15TEZBekpUV3NXdU5reUUzWldDckFESGkwNFRkdnFvbE9KbGI4Y1pBTFJ3eHlKYmsvK0dDVVluWmdqOU5oV0hHYmVYeFhjK1NtWmZUUjUwWFZ3a0lIK1o1T0hPMWxHMkpCRjJqZ0ZaS2dpMHdod1N0NGFnRWhsVEs3T3RPTDhlWVlkQjVjS1hCYjIxZGRIMWZyZEUxS2J5cm4wWkZJQkxpUzNBVUw4Z2JCKzFRM0V4NFB6amdobURmbUhSQnBubDREUnYwQUtTM2FJaHpsOAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t",
"keyFile": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ25wRlcwTGJzZW1DSitNYVRsaEZQanRQWVpuUlozNkI1OUZZS1NzaDBQWDErRXZqMHpFeHY4N2UyZldiTXZsNDRDZFV6a2llb3pKZWU3SG9BSjF2UjV2VnNtSTB0QjZMSWpRUTBmR0VoR29IUVFuancxZGxFb1ZxVU5lb20yM0VaNEdyOE5NTEgxNVNvdHhEL2ZlOENsS3FOL1phZWF1L2svQ1V4cjg1eEpLbHJsWEQ0d3FPdWt3cHVQZjd0RGJQVks0d0NUMi9vempqczdFaVQ4MnhwZmxodW1nUitpak9LK3FnQ0tJOVdRVlhBODd6N2NKWjB5OEF6SjJGcDZHMitvZWg5RWM4L3J6YUxFUWRQR3ZUZkw4aWM1ZWlwNUVwNzFTTXpsSVU4TjlLOXkxUDRDdmxCZWVJbldSYlN1OFZ5OEdxaGFpNWIyS0taZm5sOG0yUnlwQWdNQkFBRUNnZ0VBSE1LMVQyV2ZHaWNZbDlUVmlPalVhWmIwdDcwN0N4UkFFczZiYWFaMEZOeVVheFltTXJwL0RUd1dqY1dhVjdwbEN5ZnJxck84Z2N6cGZqRkQzeXhKSWcrcDhSZVNCRHN6UUpnYTg3QTdTaDZoK3UzaXYzdE9maUNyVFc0dDdUaktRRFc2ZkQxVDhxOC90cjFhQmZIWndaeFlrM1V4dFhxMVRxcStPVEVBcVk1N0ZEL0tlb1BhTm5nR1lyTzFSb1NTc1Jrem5LeGNnTnJSTlhsTGpGcnVpaG1FUldCdGhsNmR3bHA4d1g2VDBGNnRsZnVSVHRtU21SZkxYSGgxQTBYZ3lqL3VTTExOakZmaGtaajlSMVlDWGNRZ1VtYlkwMHBOOHNUeFgwQUVsTUdYQWxaS2tlNDNaYmxNSDg1RUdYaEcwREVlbERKcWxQZktSaVBkMW8xd0dRS0JnUURMUTU0RjVybElGQmdNNjJsdXdOOVE3bzdIMEFubEtPWUZqNkNyeWZ0dWovTVF5V0hiMmtwNm56QjFoZ3ZzSVdXUnJUSGoyOE5uZEdQTnMrRDFWbGErdU55Q21SQlZnU0RJOG04cG4yWDREQk1LdnZVTitlWEVQSGk2YktZeHhIRDlrcEpHbzNFQ2hBR1RBa05oRWdvT0NOd1cyK2U2bGs2WGpFbWd5UzZPTlFLQmdRRFRJc1BRMS9Xem5CYzVZOFpWN2xydWJHSWoxK1JRMzNVZ2FKSkxSVlFGaXJiM3p3dnA0bmFGZVBZcVFzRzJ3RnVyT2N1eGNkMllRc0crR0ZPNzVRZ1lzNVM0Vkoxei9ocXRnRFVIUDEzYjFZay9tVVBvYnRqYTdOZDkxUVAxVEkvQmxvMHNEbzYreklhY0Y2NGhUTkZDeUE1NWd4U0FyLzA2NVZ4VGV1SXpKUUtCZ0JhNldORVFHMmVUMTV5YU5nL01RU3dyZ0l1WEY0UW9McEF3bnlhV1R5YnRzYUFPNUlKUXhrTXZ5WnRhZ2JyRmdUWG94OHRTcDJiSi9ON2pYaVFRbzJKd0NUZ1JKV0pxTGVCS08yUE1EdnJOWHRPMHhuSHBuMmR4MjQzODJCaDRmcW5iMmI5TVJ6YWd6QXhFRklTbUg3bXlBK29LYkw3UVQ3bGlWbGxFSlpDQkFvR0JBTTBDSGFha2UyT1o5WWI1RlhVTXl1aGsvdW9VMEJHaTJDVE94UFluYkEweGdyV2VLZEJBMzVwOE9ISVNmZXZJWFhvbDFWNEgxUVhxRkJ0VG5jSjlBZDZTU0o2dk1tK1ZWU3dRcCt6UW4zODhtVmJTcC9pQjRUaTU3Z2UxbFhGU2xPZUJHclNqc2dFYnNMelIxWGRxRW1ySXZCMUtwTmJMaTVQcmJ6bHp3VDJ0QW9HQWFqNEgzTTVYRCtMRUlCamtGOGozei9iSTFMMHZwN2RGQXlPUTFSK1A4aitDNHZPOEZBdlp1b2d5TXVraUNGbStndjBteWhQT1A1ckFqRmp3SUlvbDNNMmNpelpncFN4NkJBNnd5a3JpYWdoWERYTnFrTWtONXJFNW9VYVErUS9HbllDNG9ISGVYeW1qYmRJWGtaV3RUaHF4NmdOczNVMzY5bDk3OUptL1krTT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQ==",
"crlFiles": [],
"dhFile": null,
"pushRoutes": [],
"subnet": "172.29.2.0/24",
"replaceDefaultRoutes": true,
"maxConnections": 20,
"useLzoCompression": true,
"nameServer": "172.29.2.1",
"cipher": "default",
"authentication": {
"authenticationMethod": "PLATFORM",
"office365": null,
"ldap": null
},
"interfaceName": "vtun38",
"bridgeGroup": null,
"tunnelType": null,
"localPort": 11940,
"remotePort": null,
"localHost": "192.168.31.225",
"remoteHost": null,
"remoteHosts": [],
"openVpnOption": null,
"persistentTunnel": true,
"vpnSharedSecret": null,
"splitTunnel": false,
"socksProxy": false,
"socksProxyType": null,
"socksProxyPrivateKey": null,
"socksProxyPublicKey": null,
"description": "Vpn Server",
"wanInterfaces": null,
"mode": "server",
"protocol": "udp",
"ceDeviceId": null,
"ceDeviceLabel": null,
"customerEmail": null,
"status": null,
"peDeviceIds": [],
"hubCEDeviceIds": [],
"ceSpokeId": null,
"remoteDeviceLabel": null,
"ethInterface": "eth0"
}
}
Q:1 I ran the command but got “No such file or directory”. What does it mean?

If you see “No such file or directory” when running: cat /tmp/last_config_response.json | jq .interfacesConfig.openVpn. it means the configuration file does not exist in the /tmp directory. Common reasons include: The cloud configuration was never pushed to the CE device. The CE device has not synchronized with the cloud platform. The file was not generated due to a failed configuration update. In this case, verify that the hub and spokes were properly created in the cloud, then re‑push the configuration to the CE device and restart the VPN service.

Q:2 Why is the remoteHost field important?

The remoteHost field specifies the IP address or hostname of the remote VPN peer (e.g., the hub or spoke device). It is critical because: Without it, the VPN client does not know where to connect. It defines the endpoint for tunnel establishment. Incorrect or missing values will cause connection failures or unreachable peers. In multi‑spoke setups, each spoke must have the correct remoteHost pointing to the hub or PE device. In short, the remoteHost field is the destination address for the VPN tunnel, and misconfiguration here is one of the most common causes of connectivity issues.