===== Cisco NX-OS SAN switches MDS =====
Show interface status
mds9506-1# show interface brief
-------------------------------------------------------------------------------
Interface Vsan Admin Admin Status SFP Oper Oper Port
Mode Trunk Mode Speed Channel
Mode (Gbps)
-------------------------------------------------------------------------------
fc1/1 1 E on trunking swl TE 8 --
fc1/2 1 F on notConnected swl -- -- --
fc1/3 1 F off up swl F 8 --
fc1/4 1 F off up swl F 8 --
fc1/5 1 F off up swl F 4 --
fc1/6 1 F off up swl F 8 --
fc1/7 1 F off up swl F 8 --
fc1/8 1 F on notConnected swl -- -- --
fc1/9 1 F off up swl F 8 --
fc1/10 1 F off up swl F 8 --
fc1/11 1 F on notConnected swl -- -- --
fc1/12 1 F off up swl F 8 --
fc1/13 1 F off up swl F 8 --
fc1/14 1 F on notConnected swl -- -- --
fc1/15 1 F off up swl F 4 --
fc1/16 1 F off up swl F 8 --
==== Resetting statistics count ====
Run both commands, the first for standard stats and the second for debug. The debug command is a hidden one
mds9506-1# clear counters interface all
mds9506-1# debug system internal clear-counters all
==== Cisco scripting ====
I only have Cisco switches in my infrastructure (it has been a long time since I used a McDATA or Brocade) so this is only relevent to the Cisco switches. With Cisco you can configure all of your WWN aliases and zones before hand in a SAN-OS config text file and then upload that to the switch using the 'copy ftp:configfile.txt running-config' command.
https://community.emc.com/thread/97413?start=0&tstart=0
http://en.kioskea.net/faq/28828-sending-cisco-commands-sent-via-ssh-telnet
==== Cisco zoning commands ====
mdssw-1# show flogi database
--------------------------------------------------------------------------------
INTERFACE VSAN FCID PORT NAME NODE NAME
--------------------------------------------------------------------------------
fc1/3 1 0xaa0660 50:05:07:63:0b:13:c1:0d 50:05:07:63:0b:ff:c1:0d
[ds8100_I0233]
fc1/4 1 0xaa08c0 10:00:00:00:c9:c6:20:a4 20:00:00:00:c9:c6:20:a4
[nim_p0]
Step: 1 Add interface to the target VSAN
vsan database
vsan 10 interface fc1/1
exit
Step: 2 Create fcalias
fcalias name host vsan 10
member pwwn 10:00:00:00:d9:81:4f:ba
exit
Step: 3 Create Zone
Assuming we are zoning to a existing member, say ‘vmax_3ab’ for example
zone name zn_host_vmzx_3ab vsan 10
member fcalias host
member fcalias vmax_3ab
exit
Step: 4 Add zone to zoneset
zoneset name zoneset1 vsan 10
member zn_host_vmzx_3ab
exit
Step: 5 Activate zoneset
zoneset distribute vsan 10
zoneset activate name zoneset1 vsan 10
Step: 6 Commit
zone commit vsan 10
end
Step: 7 Copy running config to start-up config
copy run start
Step: 8 Verification
show zone name zn_host_vmzx_3ab
==== Interface Configuration Commands ====
switch(config)# interface fc slot/port
Selects a specific interface by slot and port.
switch(config-if)# no shutdown
Enables the interface.
switch(config)# interface mgmt0
switch(config-if)# no shutdown
switch(config-if)# ip address address netmask
Defines the IP address and the network mask.
switch(config-if)# switchport description description
Defines an interface description. Enter a description of 80 characters or less.
switch(config)# ip default-gateway destination-ip-address
switch(config)# ip route destination-ip-address destination-prefix-mask nexthop-destination-ip-address
Defines default gateway and static routes.
==== Create zoning by script ====
cat mkzone.sh
#!/bin/sh
#
# mkzone.sh - Utility that will take a config file and generate a
# procedure that can be used for Change Management as well
# as cut/pasted into an ssh session to configure.
# Script is able to be run on unix/linux platforms and
# inside Cygwin on Windows.
#
# Usage: mkzone.sh
#
# Version: 0.50
# Date: 12/28//2011
#
# ****************************************************************************
# "THE BEER-WARE LICENSE" (Revision 42):
# johnny dot mastin at gmail dot com wrote this file. As long as you retain
# this notice you can do whatever you want with this stuff. If we meet some
# day, and you think this stuff is worth it, you can buy me a beer in return.
# ****************************************************************************
#
#
# Condense the config file. Get rid of blank lines and comments.
if [ ! -f ${1:-CONFIG} ]; then
echo "ERROR: Config file ${1} not found."
echo "Usage: mkzone.sh "
echo ""
exit 1
fi
cat ${1} | egrep -v "^$|^#" > /tmp/zones.config.$$
CONFIG=/tmp/zones.config.$$
# Set some variables.
VSAN=`grep "^VSAN," ${CONFIG} | cut -d, -f2`
SWITCH_NAME=`grep "^SwitchName," ${CONFIG} | cut -d, -f2`
ZONESET_NAME=`grep "^ZonesetName," ${CONFIG} | cut -d, -f2`
ZONE_BY=`grep "^ZoneBy," ${CONFIG} | cut -d, -f2`
DATE=`date '+%Y%m%d'`
# Give disclaimer to say the person should check these configs.
echo "*******************************************"
echo "** NOTE **"
echo "*******************************************"
echo "Before adding this to Change Management and executing,"
echo "please double-check for accuracy as well as remove"
echo "any devalias lines for devices that already exist"
echo "in the database. This also applies to the backout"
echo "procedures."
echo ""
echo "This note should be omitted from Change Management."
echo "Actual Procedure/Backout follows below."
echo ""
echo ""
echo ""
echo "cut here==========8<-----------------------"
echo ""
echo ""
echo ""
# Spit out some procedures for Change Management.
echo "*******************************************"
echo "** Procedure **"
echo "*******************************************"
echo ""
echo ""
echo "** Login to switch ${SWITCH_NAME}"
echo "** Enter the following commands:"
echo "copy run start"
echo "copy run bootflash:pre-${DATE}"
echo "config t"
echo ""
echo ""
# Create the devaliases.
echo "device-alias database"
for TYPE in SERVER ARRAY SWITCH
do
for DEVICE in `grep "^${TYPE}" ${CONFIG} | cut -d, -f2| sort -u`
do
DEVICE_WWN=`grep ",${DEVICE}," ${CONFIG} | cut -d, -f3 | head -1`
echo "device-alias name ${DEVICE} pwwn ${DEVICE_WWN}"
done
done
echo "exit"
echo "device-alias commit"
echo ""
# Create all of the zones
for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
for SERVER in ${SERVER_LIST}
do
SERVER_WWN=`grep ",${SERVER}," ${CONFIG} | cut -d, -f3 | head -1`
ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
for ARRAY in ${ARRAY_LIST}
do
ARRAY_WWN=`grep ",${ARRAY}," ${CONFIG} | cut -d, -f3 | head -1`
echo "zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
case ${ZONE_BY} in
"pwwn")
echo " member pwwn ${SERVER_WWN}"
echo " member pwwn ${ARRAY_WWN}"
;;
"devalias")
echo " member device-alias ${SERVER}"
echo " member device-alias ${ARRAY}"
;;
*)
echo " member pwwn ${SERVER_WWN}"
echo " member pwwn ${ARRAY_WWN}"
;;
esac
done
done
done
echo "exit"
echo ""
# If you are modifying an existing zoneset for a vsan, it is a good idea
# to copy it to a new zoneset name and activate the new zoneset. That
# way, the old zoneset is avaialable for fallback.
ZONESET_CLONE=`grep "^ZonesetClone," ${CONFIG} | cut -d, -f2`
if [ ${ZONESET_CLONE} != "NOT_IN_USE" ]; then
echo "zoneset clone ${ZONESET_CLONE} ${ZONESET_NAME} vsan ${VSAN}"
fi
# Create the active zoneset and activate it
echo "zoneset name ${ZONESET_NAME} vsan ${VSAN}"
for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
for SERVER in ${SERVER_LIST}
do
ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
for ARRAY in ${ARRAY_LIST}
do
echo "member ${SERVER}_${ARRAY}"
done
done
done
echo "exit"
echo ""
echo "zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
echo ""
echo ""
echo "copy run start"
echo "copy run bootflash:post-${DATE}"
echo ""
echo "** Logout of switch ${SWITCH_NAME}"
echo ""
echo ""
echo "*******************************************"
echo "** Backout Procedure **"
echo "*******************************************"
echo ""
echo ""
echo "** Login to switch ${SWITCH_NAME}"
echo "** Enter the following commands:"
echo "copy run start"
echo "copy run bootflash:pre-${DATE}"
echo "config t"
echo ""
echo ""
# If you have an old zoneset, activate that.
if [ ${ZONESET_CLONE} != "NOT_IN_USE" ]; then
echo "zoneset activate name ${ZONESET_CLONE} vsan ${VSAN}"
echo "no zoneset name ${ZONESET_NAME} vsan ${VSAN}"
else
echo "no zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
fi
echo ""
# Delete all of the zones
for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
for SERVER in ${SERVER_LIST}
do
ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
for ARRAY in ${ARRAY_LIST}
do
echo "no zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
done
done
done
echo ""
# Remove the devaliases.
echo "device-alias database"
for TYPE in SERVER ARRAY SWITCH
do
for DEVICE in `grep "^${TYPE}" ${CONFIG} | cut -d, -f2 | sort -u`
do
DEVICE_WWN=`grep ",${DEVICE}," ${CONFIG} | cut -d, -f3 | head -1`
echo "no device-alias name ${DEVICE} pwwn ${DEVICE_WWN}"
done
done
echo "exit"
echo "device-alias commit"
echo ""
echo ""
echo "copy run start"
echo "copy run bootflash:post-${DATE}"
echo ""
echo "** Logout of switch ${SWITCH_NAME}"
# Clean up and exit.
#rm /tmp/zones.config.$$
exit 0
http://en.kioskea.net/faq/28828-sending-cisco-commands-sent-via-ssh-telnet
==== Create zoning by script bis ====
This is my modifications for AIX...and other
I check on which fabric the port is loggin and the propose a zoning based on predefined storage, also add a second port for AIX servers using NPIV.
root@nimbcp - /root/scripts/san > cat config_file
# Choose an array in ds8800-prd ds8800-bcp svc-prd svc-bcp
# ARRAYx,
# the array number and server number must match
ARRAY1,svc-bcp
ARRAY2,svc-bcp
# add SERVERx,,
# WWN can be with different formats: C05076004B64002A c0:50:76:00:4b:64:00:2a
SERVER1,v_prodaix1_p0,c0507604669b0050
SERVER1,v_prodaix1_p1,c0507604670b0052
SERVER1,v_prodaix1_p2,c0507604670b0054
SERVER1,v_prodaix1_p3,c0507604670b0056
root@nim - /root/scripts/san > cat mkzone.sh
#!/bin/ksh93
#set -x
#
# mkzone.sh - Utility that will take a config file and generate a
# procedure that can be used for Change Management as well
# as cut/pasted into an ssh session to configure.
# Script is able to be run on unix/linux platforms and
# inside Cygwin on Windows.
#
# Usage: mkzone.sh
#
# Version: 0.50
# Date: 12/28//2011
#
# ****************************************************************************
# "THE BEER-WARE LICENSE" (Revision 42):
# johnny dot mastin at gmail dot com wrote this file. As long as you retain
# this notice you can do whatever you want with this stuff. If we meet some
# day, and you think this stuff is worth it, you can buy me a beer in return.
# ****************************************************************************
#
#show flogi database
#
# Condense the config file. Get rid of blank lines and comments.
if [ ! -f ${1:-CONFIG} ]; then
echo "ERROR: Config file ${1} not found."
echo "Usage: mkzone.sh "
echo ""
exit 1
fi
logpath=/root/scripts/san/logs
errlog=$logpath/errlog
cat ${1} | egrep -v "^$|^#" > $logpath/zones.config.$$
CONFIG=$logpath/zones.config.$$
CONFIG1=$logpath/zones.config.ok
HOST_FABRIC_A=mdssw-1
HOST_FABRIC_B=mdssw-4
ALL_HOST_A="mdssw-1 mdssw-3"
ALL_HOST_B="mdssw-2 mdssw-4"
LOGIN=admin
# Set some variables.
#VSAN=`grep "^VSAN," ${CONFIG} | cut -d, -f2`
#SWITCH_NAME=`grep "^SwitchName," ${CONFIG} | cut -d, -f2`
#ZONESET_NAME=`grep "^ZonesetName," ${CONFIG} | cut -d, -f2`
#ZONE_BY=`grep "^ZoneBy," ${CONFIG} | cut -d, -f2`
DATE=`date '+%Y%m%d'`
if [ -e $errlog ]
then
rm $errlog
fi
convert_wwn ()
{
wwn=$1
wwn_nodot=$(echo $wwn | sed 's/://g;s/\.//g' | tr 'a-z' 'A-Z')
wwn_dot=$(echo $wwn_nodot | sed 's/../&:/g;s/:$//' | tr 'A-Z' 'a-z')
echo $wwn_dot
}
ssh $LOGIN@mdssw-1 "show flogi database" | grep : | grep fc > $logpath/flogi.A 2>/dev/null
ssh $LOGIN@mdssw-3 "show flogi database" | grep : | grep fc >> $logpath/flogi.A 2>/dev/null
ssh $LOGIN@mdssw-2 "show flogi database" | grep : | grep fc > $logpath/flogi.B 2>/dev/null
ssh $LOGIN@mdssw-4 "show flogi database" | grep : | grep fc >> $logpath/flogi.B 2>/dev/null
grep "^ARRAY" ${CONFIG} > $CONFIG1.A
grep "^ARRAY" ${CONFIG} > $CONFIG1.B
for line in $(grep "^SERVER" ${CONFIG})
do
DEVICE_WWN=$(echo $line | cut -d, -f3)
## This is specific for AIX to add the second WWN for each FC port
LAST_DIGIT=$(echo $DEVICE_WWN | rev | cut -c1 | rev)
BEGIN_DIGITS=$(echo $DEVICE_WWN | rev | cut -c2- | rev)
LAST_DIGIT1=$((0x$LAST_DIGIT + 1))
LAST_DIGIT_HEX=$(echo 16o${LAST_DIGIT1}p |dc)
DEVICE_WWN1=$(echo ${BEGIN_DIGITS}${LAST_DIGIT_HEX})
## End This is specific for AIX to add the second WWN for each FC port
PWWN=$(convert_wwn $DEVICE_WWN)
fabric=$(grep "$PWWN" $logpath/flogi.* | cut -d'.' -f2- | cut -d':' -f1)
line1=$(echo $line | cut -d',' -f1-2)
echo $fabric | egrep "A|B" > /dev/null
if [ $? -ne 0 ]
then
echo "$PWWN doesn't exists on a FABRIC"
else
echo $line1,$PWWN,$fabric >> $CONFIG1.$fabric
fi
done
for connect in ${HOST_FABRIC_A} ${HOST_FABRIC_B}
do
# Backup of config before
ssh $LOGIN@$connect "show zoneset active" > $logpath/zoneset_active_before.$connect.$DATE 2>/dev/null
ssh $LOGIN@$connect "show startup-config" > $logpath/backup_config.$connect.$DATE 2>/dev/null
ssh $LOGIN@$connect "show zoneset brief active" > $logpath/zoneset.$connect 2>/dev/null
VSAN=$(grep "zoneset name" $logpath/zoneset.$connect | awk '{print $5}')
ZONESET_NAME=$(grep "zoneset name" $logpath/zoneset.$connect | awk '{print $3}')
echo $ZONESET_NAME | grep "cfg_A" > /dev/null 2>&1
if [ $? -eq 0 ]
then
CONFIGOK="${CONFIG1}.A"
else
echo $ZONESET_NAME | grep "cfg_B" > /dev/null 2>&1
if [ $? -eq 0 ]
then
CONFIGOK="${CONFIG1}.B"
else
echo "ERROR fabric not found"
exit 1
fi
fi
banner "$connect"
echo "** Login to switch ${connect}"
echo "** Enter the following commands:"
echo "***************************************************"
echo ""
echo "ssh $LOGIN@${connect}"
echo "copy run start"
# echo "copy run bootflash:pre-${DATE}"
echo ""
# Check alias
ssh $LOGIN@$connect "show fcalias" > $logpath/fcalias.$connect 2>/dev/null
# Create the fcaliases.
echo "config t"
for TYPE in SERVER
do
for DEVICE in $(grep "^${TYPE}" ${CONFIGOK} | cut -d, -f2| sort -u)
do
DEVICE_WWN=$(grep ",${DEVICE}," ${CONFIGOK} | cut -d, -f3 | head -1)
PWWN=$(convert_wwn $DEVICE_WWN)
PWWN1=$(convert_wwn $DEVICE_WWN1)
#echo "$PWWN"
grep "fcalias $DEVICE " $logpath/fcalias.$connect > /dev/null 2>&1
if [ $? -eq 0 ]
then
grep -p "$PWWN" $logpath/fcalias.$connect > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "FCalias $DEVICE $DEVICE_WWN still exists" >> $errlog
else
echo "FCalias $DEVICE still exists but with wrong WWN" >> $errlog
fi
else
grep $PWWN $logpath/fcalias.$connect > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "WWN $PWWN still exists" >> $errlog
grep -p "$PWWN" $logpath/fcalias.$connect >> $errlog
fi
echo "fcalias name ${DEVICE} vsan ${VSAN}"
echo "member pwwn ${PWWN}"
echo "member pwwn ${PWWN1}"
fi
done
done
echo "exit"
echo ""
# Create all of the zones
echo "config t"
ZONE_ADD=""
for line in $(grep "^SERVER" ${CONFIGOK})
do
SERVER=$(echo $line | cut -d, -f2)
NUMBER=$(echo $line | cut -d, -f1 | sed 's/SERVER//')
for storage in $(grep "^ARRAY${NUMBER}," ${CONFIGOK} | cut -d, -f2- | sed 's/,/\ /g')
do
case ${storage} in
svc-prd) word1=svc3-prd ; word2=svc4-prd ;;
svc-bcp) word1=svc3-bcp ; word2=svc4-bcp ;;
ds8800-prd) word1=ds8800-prd ; word2=ds8800-prd ;;
ds8800-bcp) word1=ds8800-bcp ; word2=ds8800-bcp ;;
esac
for ARRAY in $(egrep "$word1|$word2" $logpath/fcalias.$connect | awk '{print $3}' | grep -v "_mm_")
do
echo "zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
echo "member fcalias ${SERVER}"
echo "member fcalias ${ARRAY}"
ZONE_ADD=$(echo "$ZONE_ADD ${SERVER}_${ARRAY}")
done
done
done
echo "exit"
echo ""
# Create the active zoneset and activate it
echo "zoneset name ${ZONESET_NAME} vsan ${VSAN}"
for ZONEADD in ${ZONE_ADD}
do
echo "member ${ZONEADD}"
done
echo "exit"
echo "zoneset distribute vsan ${VSAN}"
echo "sleep 10"
echo "zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
echo "sleep 10"
echo "copy run start"
# echo "copy run bootflash:post-${DATE}"
echo "exit"
echo "exit"
echo "***************************************************"
echo "** Logout of switch ${connect}"
# Backup of config after
#ssh $LOGIN@$connect "show zoneset active" > $logpath/zoneset_active_after.$DATE 2>/dev/null
done
if [ -e $errlog ]
then
echo
echo "***** Warning report:"
cat $errlog
fi
# Clean up and exit.
rm $CONFIG
exit 0
======================================
==== Cisco MDS – How To Remove Zones from an Active Zoneset ====
1. Firstly we need to know the specific names of the Zones that we intend to delete. To gather the full list of zone members within a Zoneset run show zoneset vsan xx. The output will return all of the member names for the Zoneset, the output can be reduced if you know the naming conventions associated with the hosts; for example if the Zone names begin with V21212Oracle-1 then issuing the command show zoneset brief | include V21212Oracle-1 will return in this case all the Zones associated with Oracle-1:
RZ1
2. To View the active Zones for Oracle-1 within the Zonseset: show zoneset active | include V21212Oracle-1
RZ2
3. Example of Removing half the Zones (Paths) associated with host Oracle-1 from the active Zoneset name vsan10_zs:
config t
zoneset name vsan10_zs vsan 10
no member V21212Oracle-1_hba1-VMAX40K_9e0
no member V21212Oracle-1_hba1-VMAX40K_11e0
no member V21212Oracle-1_hba2-VMAX40K_7e0
no member V21212Oracle-1_hba2-VMAX40K_5e0
4. Re-activating the Zoneset vsan10_zs after the config changes of removing the specified Zoneset members:
zoneset activate name vsan10_zs vsan 10
zone commit vsan 10
5. Finally removing the Zones from the configuration:
no zone name V21212Oracle-1_hba1-VMAX40K_9e0 vsan 10
no zone name V21212Oracle-1_hba1-VMAX40K_11e0 vsan 10
no zone name V21212Oracle-1_hba2-VMAX40K_7e0 vsan 10
no zone name V21212Oracle-1_hba2-VMAX40K_5e0 vsan 10
zone commit vsan 10
end
copy run start
Confirm configuration conatins the correct Active Zoning:
show zoneset brief | include V21212Oracle-1
show zoneset active | include V21212Oracle-1
==== Cisco MDS Zoning – RENAME ====
In this post, I’ll detail some useful commands that can be leveraged to rename Cisco zoning components:
FCALIAS
ZONE
ZONESET
RENAME ALIAS FOR HOSTS (vsan id of 10):
switch(config)# fcalias rename old-AliasName new-AliasName vsan 10
RENAME ZONES:
switch(config)# zone rename old-ZoneName new-ZoneName vsan 10
RENAME ZONESETS:
switch(config)# zoneset rename old-ZoneSetName new-ZoneSetName vsan 10
Once complete Activate and Commit these changes:
zoneset activate name vsan10_zs vsan 10
zone commit vsan 10
Displays alias mappings.
switch# show fcalias
Displays zone mappings.
switch# show zone
Displays all zone sets.
switch# show zoneset
Displays the active zone set for each VSAN, including
which devices have logged in and are communicating.
switch# show zoneset active
Displays the devices that have logged into the fabric.
Retrieve pWWNs for aliases and zoning from this
database.
switch# show flogi database
=== VSAN Commands ===
Creates the VSAN with the specified vsan-id range.
switch(config)# vsan database
switch(config-vsan-db)# vsan
Adds a description to a VSAN, where vsan-id is the VSAN and vsan-name is the VSAN description.
switch(config-vsan-db)# vsan name
Adds an interface to a VSAN, where vsan-id is the VSAN number and type, slot/port is the interface.
switch(config-vsan-db)# vsan interface
Adds a specified range of interfaces into a VSAN from the same line card.
switch(config-vsan-db)# vsan interface
Lists all VSANs.
switch# show vsan
Lists ports within a VSAN.
switch# show vsan membership
=== Fcdomain Commands ===
Forces the VSAN to reconfigure without data traffic disruption.
switch(config)# fcdomain restart vsan
Forces the VSAN to reconfigure with data traffic disruption
switch(config)# fcdomain restart disruptive
Configures the switch in the specified VSAN to request a preferred domain ID.
switch (config)# fcdomain domain preferred vsan
Configures the switch in the specified VSAN to take only a specific ID and moves the local interfaces in the VSAN to an isolated state if the domain ID is not granted.
switch(config)# fcdomain domain static vsan
=== Alias, Zone, and Zone Set Commands ===
Displays the devices that have logged into the fabric. Retrieve pWWNs for aliases and zoning from this database.
switch# show flogi database
Displays device name server registration information per VSAN.
switch# show fcns database
Configures an alias mapping for a device where alias-name is the canonical name within the VSAN.
switch(config)# fcalias name vsan
Defines a mapping of pWWN hh:hh:hh… to the fcalias name. pWWN can be retrieved from the FLOGI or FCNS database.
switch(config-fcalias)# member pwwn
Creates a named zone within the VSAN.
switch(config)# zone name vsan
Adds the node referenced by the named fcalias to the zone.
switch(config-zone)# member fcalias
Adds the device referenced by pWWN hh:hh:hh... to the zone.
switch(config-zone)# member pwwn
Creates a named zone set within the VSAN and adds a named zone to the zone set.
switch(config)# zoneset name vsan
switch(config-zoneset)# member
Configures the switch to distribute all zone sets rather than just the active zone set for the VSAN.
switch(config)# zoneset distribute full vsan
Displays alias mappings.
switch# show fcalias
Displays zone mappings.
switch# show zone
Displays all zone sets.
switch# show zoneset
Displays the active zone set for each VSAN, including which devices have logged in and are communicating.
switch# show zoneset active