It is possible to leave a SAN fabric as an "open" fabric and not bother with zoning at all. In theory, this would allow every host to see every LUN on every storage array. However, you can implement LUN masking to prevent this from happening. If you only implement SAN zoning, a host would gain access to every LUN that was available on any storage array that it was zoned with.
Neither configuration is ideal, so you will almost always find it best if both LUN masking and LUN zoning are configured on a SAN. One exception to this would be a host that is directly connected to a storage array port. No zoning would be required as the host would not be connected to a SAN fabric, and no LUN masking would be required as it is guaranteed that the host would be the only one to have access to that port.
For more on LUNs:
This was first published in March 2010