http://www.cisco.com/en/US/docs/switches/lan/catalyst2950/software/release/12.1_9_ea1/configuration/guide/Sw8021x.html
Understanding 802.1X Port-Based Authentication
The IEEE 802.1X standard defines a client-server-based access control and authentication protocol that restricts unauthorized devices from connecting to a LAN through publicly accessible ports. The authentication server authenticates each client connected to a switch port before making available any services offered by the switch or the LAN.
Until the client is authenticated, 802.1X access control allows only Extensible Authentication Protocol over LAN (EAPOL) traffic through the port to which the client is connected. After authentication is successful, normal traffic can pass through the port.
This section includes this conceptual information:
•Device Roles
•Authentication Initiation and Message Exchange
•Ports in Authorized and Unauthorized States
•Supported Topologies
Device Roles
With 802.1X port-based authentication, the devices in the network have specific roles as shown in Figure 8-1.
Figure 8-1 802.1X Device Roles
•Client—the device (workstation) that requests access to the LAN and switch services and responds to the requests from the switch. The workstation must be running 802.1X-compliant client software such as that offered in the Microsoft Windows XP operating system. (The client is the supplicant in the IEEE 802.1X specification.)
Note To resolve Windows XP network connectivity and 802.1X authentication issues, read the Microsoft Knowledge Base article at this URL:
http://support.microsoft.com/support/kb/articles/Q303/5/97.ASP•Authentication server—performs the actual authentication of the client. The authentication server validates the identity of the client and notifies the switch whether or not the client is authorized to access the LAN and switch services. Because the switch acts as the proxy, the authentication service is transparent to the client. In this release, the Remote Authentication Dial-In User Service (RADIUS) security system with Extensible Authentication Protocol (EAP) extensions is the only supported authentication server; it is available in Cisco Secure Access Control Server version 3.0. RADIUS operates in a client/server model in which secure authentication information is exchanged between the RADIUS server and one or more RADIUS clients.
•Switch (edge switch or wireless access point)—controls the physical access to the network based on the authentication status of the client. The switch acts as an intermediary (proxy) between the client and the authentication server, requesting identity information from the client, verifying that information with the authentication server, and relaying a response to the client. The switch includes the RADIUS client, which is responsible for encapsulating and decapsulating the Extensible Authentication Protocol (EAP) frames and interacting with the authentication server.
When the switch receives EAPOL frames and relays them to the authentication server, the Ethernet header is stripped and the remaining EAP frame is re-encapsulated in the RADIUS format. The EAP frames are not modified or examined during encapsulation, and the authentication server must support EAP within the native frame format. When the switch receives frames from the authentication server, the server's frame header is removed, leaving the EAP frame, which is then encapsulated for Ethernet and sent to the client.
The devices that can act as intermediaries include the Catalyst 3550 multilayer switch, Catalyst 2950 switch, or a wireless access point. These devices must be running software that supports the RADIUS client and 802.1X.
Authentication Initiation and Message Exchange
The switch or the client can initiate authentication. If you enable authentication on a port by using the dot1x port-control auto interface configuration command, the switch must initiate authentication when it determines that the port link state transitions from down to up. It then sends an EAP-request/identity frame to the client to request its identity (typically, the switch sends an initial identity/request frame followed by one or more requests for authentication information). Upon receipt of the frame, the client responds with an EAP-response/identity frame.
However, if during bootup, the client does not receive an EAP-request/identity frame from the switch, the client can initiate authentication by sending an EAPOL-start frame, which prompts the switch to request the client's identity.
Note If 802.1X is not enabled or supported on the network access device, any EAPOL frames from the client are dropped. If the client does not receive an EAP-request/identity frame after three attempts to start authentication, the client transmits frames as if the port is in the authorized state. A port in the authorized state effectively means that the client has been successfully authenticated. For more information, see the "Ports in Authorized and Unauthorized States" section.
When the client supplies its identity, the switch begins its role as the intermediary, passing EAP frames between the client and the authentication server until authentication succeeds or fails. If the authentication succeeds, the switch port becomes authorized. For more information, see the "Ports in Authorized and Unauthorized States" section.
The specific exchange of EAP frames depends on the authentication method being used. Figure 8-2 shows a message exchange initiated by the client using the One-Time-Password (OTP) authentication method with a RADIUS server.
Figure 8-2 Message Exchange
Ports in Authorized and Unauthorized States
The switch port state determines whether or not the client is granted access to the network. The port starts in the unauthorized state. While in this state, the port disallows all ingress and egress traffic except for 802.1X packets. When a client is successfully authenticated, the port transitions to the authorized state, allowing all traffic for the client to flow normally.
If a client that does not support 802.1X is connected to an unauthorized 802.1X port, the switch requests the client's identity. In this situation, the client does not respond to the request, the port remains in the unauthorized state, and the client is not granted access to the network.
In contrast, when an 802.1X-enabled client connects to a port that is not running 802.1X, the client initiates the authentication process by sending the EAPOL-start frame. When no response is received, the client sends the request for a fixed number of times. Because no response is received, the client begins sending frames as if the port is in the authorized state.
You control the port authorization state by using the dot1x port-control interface configuration command and these keywords:
•force-authorized—disables 802.1X and causes the port to transition to the authorized state without any authentication exchange required. The port transmits and receives normal traffic without 802.1X-based authentication of the client. This is the default setting.
•force-unauthorized—causes the port to remain in the unauthorized state, ignoring all attempts by the client to authenticate. The switch cannot provide authentication services to the client through the interface.
•auto—enables 802.1X authentication and causes the port to begin in the unauthorized state, allowing only EAPOL frames to be sent and received through the port. The authentication process begins when the link state of the port transitions from down to up, or when an EAPOL-start frame is received. The switch requests the identity of the client and begins relaying authentication messages between the client and the authentication server. Each client attempting to access the network is uniquely identified by the switch by using the client's MAC address.
If the client is successfully authenticated (receives an Accept frame from the authentication server), the port state changes to authorized, and all frames from the authenticated client are allowed through the port. If the authentication fails, the port remains in the unauthorized state, but authentication can be retried. If the authentication server cannot be reached, the switch can retransmit the request. If no response is received from the server after the specified number of attempts, authentication fails, and network access is not granted.
When a client logs off, it sends an EAPOL-logoff message, causing the switch port to transition to the unauthorized state.
If the link state of a port transitions from up to down, or if an EAPOL-logoff frame is received, the port returns to the unauthorized state.
Supported Topologies
The 802.1X port-based authentication is supported in two topologies:
•Point-to-point
•Wireless LAN
In a point-to-point configuration (see Figure 8-1), only one client can be connected to the 802.1X-enabled switch port. The switch detects the client when the port link state changes to the up state. If a client leaves or is replaced with another client, the switch changes the port link state to down, and the port returns to the unauthorized state.
Figure 8-3 shows 802.1X-port based authentication in a wireless LAN. The 802.1X port is configured as a multiple-host port that becomes authorized as soon as one client is authenticated. When the port is authorized, all other hosts indirectly attached to the port are granted access to the network. If the port becomes unauthorized (re-authentication fails or an EAPOL-logoff message is received), the switch denies access to the network to all of the attached clients. In this topology, the wireless access point is responsible for authenticating the clients attached to it, and the wireless access point acts as a client to the switch.
Figure 8-3 Wireless LAN Example
Configuring 802.1X Authentication
The section describes how to configure 802.1X port-based authentication on your switch:
•Default 802.1X Configuration
•802.1X Configuration Guidelines
•Enabling 802.1X Authentication (required)
•Configuring the Switch-to-RADIUS-Server Communication (required)
•Enabling Periodic Re-Authentication (optional)
•Manually Re-Authenticating a Client Connected to a Port (optional)
•Changing the Quiet Period (optional)
•Changing the Switch-to-Client Retransmission Time (optional)
•Setting the Switch-to-Client Frame-Retransmission Number (optional)
•Enabling Multiple Hosts (optional)
•Resetting the 802.1X Configuration to the Default Values (optional)
Default 802.1X Configuration
Table 8-1 shows the default 802.1X configuration.
Table 8-1 Default 802.1X Configuration
Feature Default SettingAuthentication, authorization, and accounting (AAA) authentication
Disabled.
RADIUS server
•IP address
•UDP authentication port
•Key
•None specified.
•1812.
•None specified.
Per-interface 802.1X enable state
Disabled (force-authorized).
The port transmits and receives normal traffic without 802.1X-based authentication of the client.
Periodic re-authentication
Disabled.
Number of seconds between re-authentication attempts
3600 seconds.
Quiet period
60 seconds (number of seconds that the switch remains in the quiet state following a failed authentication exchange with the client).
Retransmission time
30 seconds (number of seconds that the switch should wait for a response to an EAP request/identity frame from the client before retransmitting the request).
Maximum retransmission number
2 times (number of times that the switch will send an EAP-request/identity frame before restarting the authentication process).
Multiple host support
Disabled.
Client timeout period
30 seconds (when relaying a request from the authentication server to the client, the amount of time the switch waits for a response before retransmitting the request to the client). This setting is not configurable.
Authentication server timeout period
30 seconds (when relaying a response from the client to the authentication server, the amount of time the switch waits for a reply before retransmitting the response to the server). This setting is not configurable.
802.1X Configuration Guidelines
These are the 802.1X authentication configuration guidelines:
•When the 802.1X protocol is enabled, ports are authenticated before any other Layer 2 feature is enabled.
•The 802.1X protocol is supported on Layer 2 static-access ports, but it is not supported on these port types:
–Trunk port—If you try to enable 802.1X on a trunk port, an error message appears, and 802.1X is not enabled. If you try to change the mode of an 802.1X-enabled port to trunk, the port mode is not changed.
–Dynamic ports—A port in dynamic mode can negotiate with its neighbor to become a trunk port. If you try to enable 802.1X on a dynamic port, an error message appears, and 802.1X is not enabled. If you try to change the mode of an 802.1X-enabled port to dynamic, the port mode is not changed.
–Dynamic-access ports—If you try to enable 802.1X on a dynamic-access (VLAN Query Protocol [VQP]) port, an error message appears, and 802.1X is not enabled. If you try to change an 802.1X-enabled port to dynamic VLAN assignment, an error message appears, and the VLAN configuration is not changed.
–EtherChannel port—Before enabling 802.1X on the port, you must first remove the port from the EtherChannel before enabling 802.1X on it. If you try to enable 802.1X on an EtherChannel or on an active port in an EtherChannel, an error message appears, and 802.1X is not enabled. If you enable 802.1X on a not-yet active port of an EtherChannel, the port does not join the EtherChannel.
–Secure port—You cannot configure a secure port as an 802.1X port. If you try to enable 802.1X on a secure port, an error message appears, and 802.1X is not enabled. If you try to change an 802.1X-enabled port to a secure port, an error message appears, and the security settings are not changed.
–Switch Port Analyzer (SPAN) destination port—You can enable 802.1X on a port that is a SPAN destination port; however, 802.1X is disabled until the port is removed as a SPAN destination. You can enable 802.1X on a SPAN source port.
Enabling 802.1X Authentication
To enable 802.1X port-based authentication, you must enable AAA and specify the authentication method list. A method list describes the sequence and authentication methods to be queried to authenticate a user.
The software uses the first method listed to authenticate users; if that method fails to respond, the software selects the next authentication method in the method list. This process continues until there is successful communication with a listed authentication method or until all defined methods are exhausted. If authentication fails at any point in this cycle, the authentication process stops, and no other authentication methods are attempted.
Beginning in privileged EXEC mode, follow these steps to configure 802.1X port-based authentication. This procedure is required.
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
aaa new-model
Enable AAA.
Step 3
aaa authenticationdot1x {default}method1[method2...]
Create an 802.1X authentication method list.
To create a default list that is used when a named list is not specified in theauthentication command, use the default keyword followed by the methods that are to be used in default situations. The default method list is automatically applied to all interfaces.
Enter at least one of these keywords:
•group radius—Use the list of all RADIUS servers for authentication.
•none—Use no authentication. The client is automatically authenticated without the switch using the information supplied by the client.
Step 4
interfaceinterface-id
Enter interface configuration mode, and specify the interface to be enabled for 802.1X authentication.
Step 5
dot1x port-control auto
Enable 802.1X authentication on the interface.
For feature interaction information with trunk, dynamic, dynamic-access, EtherChannel, secure, and SPAN ports see the "802.1X Configuration Guidelines" section.
Step 6
end
Return to privileged EXEC mode.
Step 7
show dot1x
Verify your entries.
Check the Status column in the 802.1X Port Summary section of the display. Anenabled status means the port-control value is set either to auto or to force-unauthorized.
Step 8
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To disable AAA, use the no aaa new-model global configuration command. To disable 802.1X AAA authentication, use the no aaa authentication dot1x{default | list-name} method1 [method2...] global configuration command. To disable 802.1X authentication, use the dot1x port-control force-authorizedor the no dot1x port-control interface configuration command.
This example shows how to enable AAA and 802.1X on Fast Ethernet port 0/1:
Switch# configure terminal
Switch(config)# aaa new-model
Switch(config)# aaa authentication dot1x default group radius
Switch(config)# interface fastethernet0/1
Switch(config-if)# dot1x port-control auto
Switch(config-if)# end
Configuring the Switch-to-RADIUS-Server Communication
RADIUS security servers are identified by their host name or IP address, host name and specific UDP port numbers, or IP address and specific UDP port numbers. The combination of the IP address and UDP port number creates a unique identifier, which enables RADIUS requests to be sent to multiple UDP ports on a server at the same IP address. If two different host entries on the same RADIUS server are configured for the same service—for example, authentication—the second host entry configured acts as the fail-over backup to the first one. The RADIUS host entries are tried in the order that they were configured.
Beginning in privileged EXEC mode, follow these steps to configure the RADIUS server parameters on the switch. This procedure is required.
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
radius-server host {hostname |ip-address}auth-port port-number keystring
Configure the RADIUS server parameters on the switch.
For hostname | ip-address, specify the host name or IP address of the remote RADIUS server.
For auth-port port-number, specify the UDP destination port for authentication requests. The default is 1812.
For key string, specify the authentication and encryption key used between the switch and the RADIUS daemon running on the RADIUS server. The key is a text string that must match the encryption key used on the RADIUS server.
Note Always configure the key as the last item in the radius-server host command syntax because leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in the key, do not enclose the key in quotation marks unless the quotation marks are part of the key. This key must match the encryption used on the RADIUS daemon.
If you want to use multiple RADIUS servers, re-enter this command.
Step 3
end
Return to privileged EXEC mode.
Step 4
show running-config
Verify your entries.
Step 5
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To delete the specified RADIUS server, use the no radius-server host {hostname | ip-address} global configuration command.
This example shows how to specify the server with IP address 172.20.39.46 as the RADIUS server, to use port 1612 as the authorization port, and to set the encryption key to rad123, matching the key on the RADIUS server:
Switch(config)# radius-server host 172.l20.39.46 auth-port 1612 key rad123
You can globally configure the timeout, retransmission, and encryption key values for all RADIUS servers by using the radius-server host global configuration command. If you want to configure these options on a per-server basis, use the radius-server timeout, radius-server retransmit, and theradius-server key global configuration commands. For more information, see the "Controlling Switch Access with RADIUS" section.
You also need to configure some settings on the RADIUS server. These settings include the IP address of the switch and the key string to be shared by both the server and the switch. For more information, refer to the RADIUS server documentation.
Enabling Periodic Re-Authentication
You can enable periodic 802.1X client re-authentication and specify how often it occurs. If you do not specify a time period before enabling re-authentication, the number of seconds between re-authentication attempts is 3600 seconds.
Automatic 802.1X client re-authentication is a global setting and cannot be set for clients connected to individual ports. To manually re-authenticate the client connected to a specific port, see the "Manually Re-Authenticating a Client Connected to a Port" section.
Beginning in privileged EXEC mode, follow these steps to enable periodic re-authentication of the client and to configure the number of seconds between re-authentication attempts:
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
dot1x re-authentication
Enable periodic re-authentication of the client, which is disabled by default.
Step 3
dot1x timeout re-authperiod seconds
Set the number of seconds between re-authentication attempts.
The range is 1 to 4294967295; the default is 3600 seconds.
This command affects the behavior of the switch only if periodic re-authentication is enabled.
Step 4
end
Return to privileged EXEC mode.
Step 5
show dot1x
Verify your entries.
Step 6
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To disable periodic re-authentication, use the no dot1x re-authentication global configuration command. To return to the default number of seconds between re-authentication attempts, use the no dot1x timeout re-authperiod global configuration command.
This example shows how to enable periodic re-authentication and set the number of seconds between re-authentication attempts to 4000:
Switch(config)# dot1x re-authentication
Switch(config)# dot1x timeout re-authperiod 4000
Manually Re-Authenticating a Client Connected to a Port
You can manually re-authenticate the client connected to a specific port at any time by entering the
dot1x re-authenticate interface interface-id privileged EXEC command. If you want to enable or disable periodic re-authentication, see the "Enabling Periodic Re-Authentication" section.This example shows how to manually re-authenticate the client connected to Fast Ethernet port 0/1:
Switch# dot1x re-authenticate interface fastethernet0/1
Starting reauthentication on FastEthernet0/1Changing the Quiet Period
When the switch cannot authenticate the client, the switch remains idle for a set period of time, and then tries again. The idle time is determined by the quiet-period value. A failed authentication of the client might occur because the client provided an invalid password. You can provide a faster response time to the user by entering a smaller number than the default.
Beginning in privileged EXEC mode, follow these steps to change the quiet period:
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
dot1x timeout quiet-period seconds
Set the number of seconds that the switch remains in the quiet state following a failed authentication exchange with the client.
The range is 0 to 65535 seconds; the default is 60.
Step 3
end
Return to privileged EXEC mode.
Step 4
show dot1x
Verify your entries.
Step 5
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To return to the default quiet time, use the no dot1x timeout quiet-period global configuration command.
This example shows how to set the quiet time on the switch to 30 seconds:
Switch(config)# dot1x timeout quiet-period 30
Changing the Switch-to-Client Retransmission Time
The client responds to the EAP-request/identity frame from the switch with an EAP-response/identity frame. If the switch does not receive this response, it waits a set period of time (known as the retransmission time), and then retransmits the frame.
Note You should change the default value of this command only to adjust for unusual circumstances such as unreliable links or specific behavioral problems with certain clients and authentication servers.
Beginning in privileged EXEC mode, follow these steps to change the amount of time that the switch waits for client notification:
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
dot1x timeout tx-period seconds
Set the number of seconds that the switch waits for a response to an EAP-request/identity frame from the client before retransmitting the request.
The range is 1 to 65535 seconds; the default is 30.
Step 3
end
Return to privileged EXEC mode.
Step 4
show dot1x
Verify your entries.
Step 5
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To return to the default retransmission time, use the no dot1x timeout tx-period global configuration command.
This example shows how to set 60 seconds as the number of seconds that the switch waits for a response to an EAP-request/identity frame from the client before retransmitting the request:
Switch(config)# dot1x timeout tx-period 60
Setting the Switch-to-Client Frame-Retransmission Number
In addition to changing the switch-to-client retransmission time, you can change the number of times that the switch sends an EAP-request/identity frame (assuming no response is received) to the client before restarting the authentication process.
Note You should change the default value of this command only to adjust for unusual circumstances such as unreliable links or specific behavioral problems with certain clients and authentication servers.
Beginning in privileged EXEC mode, follow these steps to set the switch-to-client frame-retransmission number:
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
dot1x max-reqcount
Set the number of times that the switch sends an EAP-request/identity frame to the client before restarting the authentication process. The range is 1 to 10; the default is 2.
Step 3
end
Return to privileged EXEC mode.
Step 4
show dot1x
Verify your entries.
Step 5
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To return to the default retransmission number, use the no dot1x max-req global configuration command.
This example shows how to set 5 as the number of times that the switch sends an EAP-request/identity request before restarting the authentication process.
Switch(config)# dot1x max-req 5
Enabling Multiple Hosts
You can attach multiple hosts to a single 802.1X-enabled port as shown in Figure 8-3. In this mode, only one of the attached hosts must be successfully authorized for all hosts to be granted network access. If the port becomes unauthorized (re-authentication fails, and an EAPOL-logoff message is received), all attached clients are denied access to the network.
Beginning in privileged EXEC mode, follow these steps to allow multiple hosts (clients) on an 802.1X-authorized port that has the dot1x port-controlinterface configuration command set to auto.
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
interface interface-id
Enter interface configuration mode, and specify the interface to which multiple hosts are indirectly attached.
Step 3
dot1x multiple-hosts
Allow multiple hosts (clients) on an 802.1X-authorized port.
Make sure that the dot1x port-control interface configuration command set is set to auto for the specified interface.
Step 4
end
Return to privileged EXEC mode.
Step 5
show dot1x interfaceinterface-id
Verify your entries.
Step 6
copy running-config startup-config
(Optional) Save your entries in the configuration file.
To disable multiple hosts on the port, use the no dot1x multiple-hosts interface configuration command.
This example shows how to enable 802.1X on Fast Ethernet interface 0/1 and to allow multiple hosts:
Switch(config)# interface fastethernet0/1
Switch(config-if)# dot1x port-control auto
Switch(config-if)# dot1x multiple-hosts
Resetting the 802.1X Configuration to the Default Values
You can reset the 802.1X configuration to the default values with a single command.
Beginning in privileged EXEC mode, follow these steps to reset the 802.1X configuration to the default values:
Command PurposeStep 1
configure terminal
Enter global configuration mode.
Step 2
dot1x default
Reset the configurable 802.1X parameters to the default values.
Step 3
end
Return to privileged EXEC mode.
Step 4
show dot1x
Verify your entries.
Step 5
copy running-config startup-config
(Optional) Save your entries in the configuration file.
Displaying 802.1X Statistics and Status
To display 802.1X statistics for all interfaces, use the show dot1x statistics privileged EXEC command. To display 802.1X statistics for a specific interface, use the show dot1x statistics interface interface-id privileged EXEC command.
To display the 802.1X administrative and operational status for the switch, use the show dot1x privileged EXEC command. To display the 802.1X administrative and operational status for a specific interface, use the show dot1x interface interface-id privileged EXEC command.
For detailed information about the fields in these displays, refer to the Catalyst 2950 Desktop Switch Command Reference for this release.