Network Chatter
On a LAN, behind the scenes, at the TCP level of network activity, the more that you allow some DHCP server to be involved, the more chatter between LAN devices occurs (they repeat attempts to ascertain who is who).
If every LAN device is using static IP addresses, then there is relatively less chatter, and there is consequently faster and more definite resolution of who is who.
The more protocols involved in any network chatter, the more time consumed as devices take decisions. If you have two network devices, both using all of FTP, SFTP, SSH, SMB, AFP, then they can be more busy fielding duties, than if the two network devices were only communicating via SSH, for example.
You get the idea. Work to reduce things to what you actually need.
DHCP is no great shakes. Imagine if the govt ordered the end of all phone numbers (static IP addresses) and the NSA controlled DHCP-FOR-PHONES servers. If one of the DHCP-FOR-PHONES servers is having trouble, many, many people would wonder why they can't phone home?! (Especially after some "upgrade.")
Seems that it's better to have fixed phone numbers and fixed IP addresses.
That helps too, with SMB server problem resolution. Devices with SMB enabled, can wrestle over who is the boss ( [Local] Master Browser). That wrestling can be more time consuming, if DHCP is involved - assigning IP addresses for LAN devices.
In addition, Windows OS machines will bicker over that matter, several times in a given period, and repeatedly.
The Synology NAS devices allow setting the NAS device to be a Local Master Browser. Might be a good idea (I'd sure try it). But, the WD MyCloud NAS device apparently has no setting for that.
A WINS server that you create from an old Mac running Panther, Tiger, Leopard, or Snow Leopard, or using a Linux machine, would be handy. You might figure out how to set up one. The 'smb.conf' file is a lot of the key / work.
Overall, the idea is fast and definite resolution of who is who.
Workgroup - Share Access / File and Folder Permissions
The workgroup hint, has to do with the management of access and file and folder permissions. I'd definitely set up a workgroup, if a NAS device is involved.
Sharing Between Mac OS and Windows OS Machines
Tip: It may help to *not* use Fast User Switching or the like on the Windows and Mac machines.
For shared printer problems from the Windows machine(s) . . . see if you are able to successfully share files between the Mac (A) and the Windows (B) machines.
Set up a folder to be shared on each machine. Let's say on the Mac, name the folder "ASHRMAC". On the Windows machine, folder "BSHRWIN".
Enable sharing for those folders.
Test the copying of files and folders from A to B and from B to A --- and test while seated at each of the machines, A and B.
That means, while seated at the Mac (A) you are able to sign on to Windows machine (B), and while seated at the Windows machine (B) you are able to sign on to the Mac (A). (That also means, setting up the necessary user (and workgroup / Group) accounts on each machine.)
Windows tip re sharing:
http://windows.microsoft.com/en-us/windows/share-files-with-someone#1TC=windows- 7
I'd review all of that, but especially down around 4/5ths of the page, there is "Advanced sharing" --- the permissions settings, make them work for the users involved and for the workgroup.
Going thru the steps, and testing, may reveal a problem that you can resolve.
A certain connection setting on the Windows 7 OS machine
It may help to . . . Go to Control Panel > Administrative Tools > Local Security Policy > Local Policies > Security Option > Network Security: LAN Manager authenticating level
Make note of the current setting - write it down, keep it.
Change the setting to "Send LM & NTLM – use NTLMv2 session security if negotiated"
Permissions on the Mac
Windows OS machines use Access Control Lists ("ACLs") consisting of Access Control Entries ("ACEs").
Mac OS machines use both, POSIX (Unix) permissions (rwx-rwx-rwx - that's read/write/execute per owner-group-everyone), and ACLs.
ACLs take precedence over POSIX permissions. In the absence of an ACL/ACE, then the OS consults the POSIX permission(s).
You could use the Terminal.app command line window to issue commands, as follows . . .
Assuming that you did set up the workgroup for users on your LAN (you named the Group / workgroup "NASGRP" and it's set up on the NAS device and on the Mac OS and Windows OS machines) . . .
For a folder that you are sharing on the Mac, let's say its name is "ShrMacFldr" located in your /Users/Shared directory. To make an ACE, use command:
sudo chmod -R +a "NASGRP allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextat tr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" /Users/Shared/ShrMacFldr
That command will give a lot of authority to users from across the LAN, to use and work in that shared folder ("ShrMacFldr"). If you a bit uncomfortable with that, then remove the "writesecurity" and "chown" strings, leaving:
sudo chmod -R +a "NASGRP allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextat tr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/ShrMacFldr
More info re ACLs:
MacTech
http://mactech.com/articles/mactech/Vol.21/21.05/ACLs/index.html
Marcel Bresink
http://www.bresink.com/osx/300644207/Docs-en/pgs/0160-ACL.html
Mac OS users - commands that may help you
Capture 50 packets and sort, in order to discover the most chatty or talkative:
$ sudo tcpdump -tnn -c 50 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c >~/Desktop/chatty.txt
All established connections (if any) on your Mac:
$ netstat -f inet -n | grep "ESTABLISHED"
AFP server - Apple File Sharing - actively logged in users (if any) on your Mac:
$ netstat -f inet -n | grep ".548"
SMB server - Small Message Block (Windows, SAMBA) - actively logged in users (if any) on your Mac:
$ netstat -f inet -n | grep ".139"
List network services on your Mac:
$ networksetup -listallnetworkservices
One of the results might be "Ethernet"
Get the DNS servers for your Internet connection:
$ networksetup -getdnsservers Ethernet ("Ethernet" was one of the answers to the get list command, preceding)
Get info re a networkservice
$ networksetup -getinfo Ethernet
List network service order:
$ networksetup -listnetworkserviceorder
Get Wi-Fi network report:
$ networksetup -getairportnetwork en1 (might be en0 or en2 -- you'll know from the "networksetup -listnetworkserviceorder" command, preceding)
Get IP address on interface 'en0'
$ ipconfig getifaddr en0
DHCP information that was last received on interface 'en0':
$ ipconfig getpacket en0
List valid media options for hardware on interface 'en0'
$ networksetup -listValidMedia en0 (might be en1 or en2)
Is an IP address reachable?
$ scutil -r 192.168.0.5
Is a domain reachable?
$ scutil -r discussions.apple.com
Is localhost reachable?
$ scutil -r localhost
Handy for getting info re how DNS is resolved:
$ scutil --dns
PING all devices on your subnet
$ ping 224.0.0.1
List all your Network locations:
$ networksetup -listlocations
Get your current Network location:
$ networksetup -getcurrentlocation
Occasionally flush all your DNS cache:
$ dscacheutil -flushcache
-