Hi Chris,
They can talk both, and they choose whatever protocol is available. It's easy to check if your workstations talk IP to your server, but you cannot really check what they use to check NDS talk among each other.
There are a few things you can do. First, check timesync: if you use IP, you need to use configured sources. Put an IP address in there, and type "set timesync debug=7" on the console. This will bring up an extra scren, and there it will show if the server sycnhronized (or not) with the server's IP address you wrote.
Second, a quick and easy check is to disable IPX one evening, just for a few minutes, via INETCFG.NLM (in the Protocols menu, don't forget to "reinitialize system). Then, type the following:
set ttf=on (enables trace to file)
set dstrace=*r (clears that file)
set dstrace=on
set dstrace=+s (this shows NDS sync messages)
set dstrace=*h (this forces a sync now)
(go to the Directory Services screen, and wait for the "All Processed=Yes" (or no) message)
set dstrace=nodebug
set dstrace=off
set ttf=off
Then you can enable IPX again via Inetcfg, and check sys:\system\dstrace.dbg. Most likely the server did do a sync, and if not, you'll see in there with which server(s) it had a problem.
A less obvious way is to check the server-to-server links in the Connections menu in Monitor.nlm. For each connection you should see either an IPX or an IP address. But there it is not clear which connection is used for what exactly.
By the way, before IPX is filtered, check if broadcasts will be filtered too. If so, look into the usage of SLP.
Jim