The Login Process
When a server’s or storage system’s HBA port powers on, it will send a Fabric Login request (FLOGI) which includes its WWPN, to the fibre channel switch it is directly plugged into. The switch will then assign it a 24-bit FCID, which is the Fibre Channel ID address. The host is basically saying “Hey, this is my WWPN. Please assign me an FCID, so that I can communicate on the fibre channel network.”
The FCID assigned to hosts is made up of the switch’s Domain ID and the switch port that is plugged into. The FCID is similar to an IP address in Ethernet. It’s used by Fibre Channel switches to route traffic between servers and their storage. Switches maintain a table of FCID to WWPN address mappings and what port the host is located on.
The Fibre Channel switches share information with each other. Every switch in your network learns about the Domain IDs of all the other switches. It also learns about the WWPNs of all the hosts that are attached to the network, and the FCID those WWPNs are mapped to. Based on the FCID, it knows the Domain ID of the switch that each host is plugged into (because the first part of the FCID is the Domain ID). Because they have all this information, they’re able to switch traffic between the hosts.
Here’s a diagram of the Fabric Login process working. When Server 1 powers on, its HBA port will send a a FLOGI to the switch that it is attached to. The switch will assign it an FCID. If I now ran a show FLOGI database command on that switch, I would see the interface that the server is plugged into, and its FCID, and its WWPN. In the example here I’ve configured the alias SERVER1 for the WWPN which is also reported.
FLOGI Fabric Login
The same thing happens with our storage system up at the top of the diagram. When it powers on, its HBA port will send a FLOGI to the switch that it’s plugged into. The switch will assign that port an FCID, and if do a show FLOGI database on that switch, we’ll see the interface that the storage is plugged into, its FCID, its WWPN, and the alias if one is configured (the alias NETAPP-CTRL1 has been configured in our example).
The Fibre Channel Name Service
The fibre channel switches share the FLOGI database information with each other using FCNS, the Fibre Channel Name Service. Each switch in the network learns where each WWPN is, what its FCID is, and how to route traffic there.
The show FLOGI database command on Cisco switches will only work on the switch where the clients are directly plugged into. The switches share that local information with each other through FCNS. If we do a show FCNS database on a Cisco switch, we will see the FCID and the WWPN of all of the hosts that are in our network. Because the FCID is derived from the Domain ID, which is how we identify our switches, the switches now know how to route traffic to any host in the network.
After the FLOGI Fabric Login process is complete, the initiator will send a Port Login (PLOGI). Based on the zoning configuration on the switch, the host will learn its available target WWPNs on its storage.
In the example below, Server 1 sent a FLOGI and was assigned its FCID. When that process is complete, it will send a PLOGI to its locally attached switch. The switch will check its zoning configuration and allow the server to talk to its storage.
Finally we have the PLRI, the Process Login. The initiator host will send a PLRI Process Login request to its target storage. The storage system will grant access to the host to its LUNs, based on its configured LUN masking.
PLRI Process Login