Sounds like it could just be a NAT issue.
If a ping originates from your gateway and you can ping both external IP and internal IP, then I suspect you can fix it
When a device behind the Gateway is trying to reach something beyond the Gateway, the packet will have a source IP.
Let's say unraid is 10.10.10.10 (a Private IP)
When it tries to reach out and find Google the packet will have information saying to find me, my source IP is at 10.10.10.10.
Google will look at that packet and say I have no routes to that network, because it's private. And the packet will get discarded on the way back.
A similar issue will happen if you don't have routes between different subnets.
You either need to set a source NAT on your gateway for all packets leaving on the upstream interface to be changed to the external IP of your Gateway.
Or you could try masquerading on that interface as well.
If you already have this configured on your Gateway, but you have another device upstream it might be as simple as setting a static route back to your Gateway