SAN Zone Config Mismatch Fix – Brocade & Cisco Switches
When your SAN zones don't match between switches, devices go offline. Here's the quick fix and why it matters.
I know this error is infuriating — you spend hours setting up zones, and suddenly devices can't see each other. The switch logs show inconsistencies, and your storage admin is breathing down your neck. I've been there.
The Quick Fix
First, check which zones are active on your switch. On a Brocade switch, run:
cfgshowOn a Cisco MDS switch, use:
show zoneset activeCompare the output with what you expect. If you see extra zones or missing ones, the fix is to redefine the active configuration. On Brocade:
cfgclear
cfgcreate "YourConfig", "YourZone1;YourZone2"
cfgsave
cfgenable "YourConfig"On Cisco MDS:
conf t
zoneset activate name YourZoneset vsan 1
endReplace "YourConfig" and "YourZoneset" with your actual names. This clears the mismatch and forces a fresh zone activation.
Why This Happens
Zone mismatches usually come from one of three things:
- Manual zone changes on one switch — You update zones on Switch A but forget Switch B. In a fabric, both must match.
- Fabric merge issues — When you connect two fabrics, zones can conflict. Brocade handles this with a merge policy, but if zones differ, the merge fails.
- Reboot or failover — A switch reboot can load a stale config if the save wasn't done right.
In my experience, the most common cause is someone editing zones during a maintenance window and only saving on one switch. The fabric detects the mismatch and keeps the old config on the other side.
Less Common Variations
WWPN vs. Alias Mismatch
Sometimes zones look the same but use different names. For example, Switch A uses a WWPN (like 10:00:00:00:c9:12:34:56) and Switch B uses an alias (like "Server01_FC1"). The switch sees them as different. Fix by converting all zones to use WWPNs or aliases consistently.
Zoning with VSANs on Cisco
On Cisco MDS, zones are tied to VSANs. If you have multiple VSANs and your zones are in the wrong one, devices won't see each other. Use:
show zone vsan 1to verify. Move zones to the correct VSAN with:
zone name YourZone vsan 2Brocade Peer Zoning
Some Brocade switches use peer zoning (where one device is the "owner" and others can't talk to each other). If your zones were set up as peer zones but you expected regular zones, you'll get a mismatch. Check with:
zonepeer --showIf it's peer zoning, rebuild as standard zones or update your config to match.
How to Prevent This Going Forward
Three things I do to keep zones in sync:
- Use a single configuration source. Keep your zone config in a text file or a CM tool like Ansible. Edit there, then push to all switches.
- Validate after any change. Run
cfgshoworshow zoneset activeon every switch in the fabric. I do this after every maintenance window. - Enable fabric-wide zone change logging. On Brocade, set
zone.loggingto 1. On Cisco, uselogging level zoning 5. This logs all zone changes so you can spot mismatches fast.
One more thing — always save your config before rebooting a switch. On Brocade, that's cfgsave. On Cisco, copy running-config startup-config. A reboot without save is a ticket waiting to happen.
That's it. Next time someone says "zones are messed up," you know where to start.
Was this solution helpful?