Hi Isaac,
You can definitely configure Ice servers to use specific ports. In an IceGrid configuration, your <adapter> element should specify the port in its endpoints attribute, as shown below:
Code:
<adapter name="MyAdapter" endpoints="default -p 10000" ...>
You'll need to make a list of all the ports that must be accessible on each machine so that you can add the necessary exceptions to the firewalls. The manual describes the ports opened by the IceGrid registry and nodes. You'll also need to include the ports for IcePatch2 and your own servers.
I don't think Glacier2 can really help much in this situation. Glacier2 allows clients to communicate with servers behind a front-facing firewall, while an IceGrid deployment is really intended to live behind the firewall. For example, an IceGrid node must be able to communicate with the registry, and must be able to connect directly to the registry. Nodes currently do not support the ability to communicate with the registry via a Glacier2 router.
Regards,
Mark