Yeah, Ratel connects directly to the server. So port for the server should also be exposed outside.
Zero doesn’t route requests to the appropriate server. Dgraph servers do that among themselves. Zero does other things like uid assignment and shard rebalancing, read more at Get started with Dgraph