This article describes how user traffic redirection works and the conditions that are necessary in order to redirect the packet by the switch.
Cisco recommends that you have experience with the Cisco Identity Services Engine (ISE) configuration and basic knowledge of these topics:
The information in this document is based on these software and hardware versions:
User traffic redirection on the switch is a critical component for most of the deployments with the ISE. All of these flows involve usage of traffic redirection by the switch:
Incorrectly configured redirection is the cause of multiple problems with the deployment. The typical result is a Network Admission Control (NAC) Agent that does not pop up correctly or an inability to display the Guest Portal.
For scenarios in which the switch does not have the same Switch Virtual Interface (SVI) as the client VLAN, refer to the last three examples.
Tests are performed on the client, which should be redirected to ISE for provisioning (CPP). The user is authenticated via MAC Authentication Bypass (MAB) or 802.1x. ISE returns the authorization profile with the redirect Access Control List (ACL) name (REDIRECT_POSTURE) and redirect URL (redirects to ISE):
bsns-3750-5#show authentication sessions interface g1/0/2
Interface: GigabitEthernet1/0/2
MAC Address: 0050.5699.36ce
IP Address: 192.168.1.201
User-Name: cisco
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: 10
ACS ACL: xACSACLx-IP-PERMIT_ALL_TRAFFIC-51ef7db1
URL Redirect ACL: REDIRECT_POSTURE
URL Redirect: https://10.48.66.74:8443/guestportal/gateway?sessionId=
C0A8000100000D5D015F1B47&action=cpp
Session timeout: N/A
Idle timeout: N/A
Common Session ID: C0A8000100000D5D015F1B47
Acct Session ID: 0x00011D90
Handle: 0xBB000D5E
Runnable methods list:
Method State
dot1x Authc Success
The Downloadable ACL (DACL) permits all traffic at this stage:
bsns-3750-5#show ip access-lists xACSACLx-IP-PERMIT_ALL_TRAFFIC-51ef7db1
Extended IP access list xACSACLx-IP-PERMIT_ALL_TRAFFIC-51ef7db1 (per-user)
10 permit ip any any
The redirect ACL allows this traffic without redirection:
All other traffic should be redirected:
bsns-3750-5#show ip access-lists REDIRECT_POSTURE
Extended IP access list REDIRECT_POSTURE
10 deny ip any host 10.48.66.74 (153 matches)
20 deny udp any any eq domain
30 deny icmp any any (10 matches)
40 permit tcp any any eq www (78 matches)
50 permit tcp any any eq 443
The switch has a SVI in the same VLAN as the user:
interface Vlan10
ip address 192.168.1.10 255.255.255.0
In the next sections, this is modified in order to present the potential impact.
When you try to ping any host, you should receive a response because that traffic is not redirected. In order to confirm, run this debug:
debug epm redirect
For each ICMP packet sent by the client, the debugs should present:
Jan 9 09:13:07.861: epm-redirect:IDB=GigabitEthernet1/0/2: In
epm_host_ingress_traffic_qualify ...
Jan 9 09:13:07.861: epm-redirect:epm_redirect_cache_gen_hash:
IP=192.168.1.201 Hash=562
Jan 9 09:13:07.861: epm-redirect:IP=192.168.1.201: CacheEntryGet Success
Jan 9 09:13:07.861: epm-redirect:IP=192.168.1.201: Ingress packet on
[idb= GigabitEthernet1/0/2] didn't match with [acl=REDIRECT_POSTURE]
In order to confirm, examine the ACL:
bsns-3750-5#show ip access-lists REDIRECT_POSTURE
Extended IP access list REDIRECT_POSTURE
10 deny ip any host 10.48.66.74 (153 matches)
20 deny udp any any eq domain
30 deny icmp any any (4 matches)
40 permit tcp any any eq www (78 matches)
50 permit tcp any any eq 443
When you initiate the traffic to the IP address that is directly Layer 3 (L3) reachable by the switch (the network for the switch has an SVI interface), here is what happens:
epm-redirect:IP=192.168.1.201: Ingress packet on [idb= GigabitEthernet1/0/2]
matched with [acl=REDIRECT_POSTURE]
epm-redirect:Fill in URL=https://10.48.66.74:8443/guestportal/gateway?sessionId=
C0A8000100000D5D015F1B47&action=cpp for redirection
epm-redirect:IP=192.168.1.201: Redirect http request to https:
//10.48.66.74:8443/guestportal/gateway?sessionId=C0A8000100000D5D015F1B47&action=cpp
epm-redirect:EPM HTTP Redirect Daemon successfully created
debug ip http all
http_epm_http_redirect_daemon: got redirect request
HTTP: token len 3: 'GET'
http_proxy_send_page: Sending http proxy page
http_epm_send_redirect_page: Sending the Redirect page to ...
epm-redirect:IP=192.168.1.201: Ingress packet on [idb= GigabitEthernet1/0/2] didn't
match with [acl=REDIRECT_POSTURE]
If the destination host 192.168.1.20 is down (does not respond), the client does not receive an ARP reply (the switch does not intercept ARP), and the client does not send a TCP SYN. Redirection never occurs.
This is why the NAC Agent uses a default gateway for a discovery. A default gateway should always respond and trigger redirects.
Here is what happens in this scenario:
This scenario is exactly the same as Scenario 3. It does not matter if the destination host in a remote VLAN exists or not.
If the switch does not have SVI UP in the same VLAN as the client, it can still perform redirection but only when specific conditions are matched.
The problem for the switch is how to return the response to the client from a different SVI. It is difficult to determine which source MAC address should be used.
The flow is different from when SVI is UP:
Notice the asymmetry here:
This scenario is exactly the same as Scenario 5. It does not matter that the remote host exists. The correct routing is what is important.
As presented in Scenario 6, the HTTP process on the switch plays an important role. If the HTTP service is disabled, EPM shows that the packet reaches the redirect ACL:
epm-redirect:IP=192.168.1.201: Ingress packet on [idb= GigabitEthernet1/0/2] matched
with [acl=REDIRECT_POSTURE]
However, the redirection never occurs.
The HTTPS service on the switch is not required for a HTTP redirect, but it is required for HTTPS redirect. The NAC Agent can use both for ISE discovery. Therefore, it is advised to enable both.
Notice that the switch can only intercept HTTP or HTTPS traffic that works on standard ports (TCP/80 and TCP/443). If HTTP/HTTPS works on a nonstandard port, it can be configured with the ip port-map http command. Also, the switch must have its HTTP server listen on that port (ip http port).
Revision | Publish Date | Comments |
---|---|---|
1.0 |
13-Feb-2014 |
Initial Release |