ISE 3.0 + Win Server 2016 (AD DC + AD-CS) + Win 10 client — the CCIE Security blueprint, end to end.
~90 min to working AD-integrated ISE7 nodes, ~25 GB RAM at peakLast verified 2026-06-20
0What you'll build
By the end of this walkthrough you will have:
A functional Active Directory domain (nh.lab) running on Windows Server 2016
An Enterprise Certificate Authority (AD-CS) issuing certificates from the same Windows Server
A Cisco ISE 3.0 appliance joined to that domain, pulling user identities from AD, and trusting certs from the CA
A Win 10 client domain-joined to nh.lab with a user EAP-TLS certificate
802.1X authentication on SW1 / SW2 talking RADIUS to ISE
End-to-end test: client plugs into SW1 → switch asks ISE → ISE validates the cert → port goes up with the right VLAN
1Boot order (do this exactly)
ISE is slow to come up (~6–8 min on fresh boot). Win Server takes ~4 min. Boot in this order so by the time you switch to ISE, the others are ready.
Start WinServer2016 first — clock is the AD reference; ISE needs it for cert validation. Wait until you see the lock screen.
Start SW1, SW2, R1, R2 — IOL devices boot in 15–20 sec.
Start Cisco ISE — wait for localhost login: on the telnet console.
Start Win 10 last — needs DNS from WinServer to resolve nh.lab.
Don't skip the order. If ISE boots before WinServer's NTP is up, ISE's certificate validation will be off and AD join later fails with mysterious "clock skew too great" errors.
2Set up Windows Server 2016 as Domain Controller + CA
2.1 — First-time setup (~3 min)
Open the Win Server console (VNC). At the lock screen press Ctrl+Alt+Del (the PNetLab toolbar has a button for this). Default credentials are Administrator / Pa$$w0rd (varies by image vintage — try P@ssw0rd if the first fails).
2.2 — Set static IP on the ISE-Mgmt interface
Network and Sharing Center → Ethernet → Properties → IPv4 → Use the following:
IP: 192.168.10.20
Mask: 255.255.255.0
Gateway: 192.168.10.1
DNS: 127.0.0.1 (we'll be our own DNS)
2.3 — Rename + promote to Domain Controller
Server Manager → Local Server → Computer name → dc01. Reboot.
Server Manager → Manage → Add Roles and Features → check Active Directory Domain Services AND DNS Server. Install.
When done, click the yellow flag → Promote this server to a domain controller.
Add a new forest with root domain name nh.lab.
DSRM password: NhRecovery1! (write it down, you'll only need it for disaster recovery).
Click Next through DNS warnings (expected — we're the DNS now), through NetBIOS (auto), through paths. Install. Server reboots.
2.4 — Install AD Certificate Services (the CA part)
Server Manager → Add Roles → Active Directory Certificate Services.
After install, click the yellow flag → Configure Active Directory Certificate Services.
Role: Certification Authority. Setup type: Enterprise CA. Type: Root CA. New private key, default crypto.
CA name: nh-lab-CA. Validity: 10 years. Default paths. Configure.
2.5 — Create a test user in AD
Server Manager → Tools → Active Directory Users and Computers → nh.lab → Users → right-click → New User. Name testuser, password Pa$$w0rd1, password never expires. Add to Domain Users (already default).
If you skip step 2.5 you can still finish the lab — ISE can also auth the Administrator account — but production CCIE Security labs always use a non-privileged test user.
3First-boot the ISE appliance
3.1 — Connect to the ISE telnet console
In PNetLab, click the ISE node → it opens a telnet console in a new tab. You'll see localhost login: after ~6 min from cold boot.
ISE writes config, reboots, then spends ~15–25 min bringing up the application stack. You'll see a lot of Application Server is not yet ready messages — normal.
3.3 — Reach the ISE admin GUI from Win 10
Open Edge on the Win 10 node.
Browse to https://192.168.10.10 — accept the self-signed cert warning (it's the bootstrap cert, you'll replace it next).
Log in as admin / NhAdmin1!.
If the page doesn't load, ping the ISE IP from Win 10's cmd. If ping fails → check that the Win 10 NIC is on the same ISE-Mgmt subnet (it should be auto-DHCP'd, but if not, set static 192.168.10.30 / 24).
4Join ISE to the AD domain
ISE GUI → Administration → Identity Management → External Identity Sources → Active Directory.
Click Add. Join Point Name: NHLAB. Domain: nh.lab. Submit.
On the next screen click Join at the top. Username: Administrator, Password: the Administrator password from §2.1.
Wait ~30 sec. Status should turn green ("Operational").
Tabs at top: Groups → Add → Select from Directory → search Domain Users → add. Save.
If join fails with "Clock skew": ISE and WinServer's clocks differ by more than 5 min. SSH to ISE (admin/NhAdmin1!), run show clock. Then run clock set ... to match WinServer's time, or configure NTP properly (§3.2 should have done this).
5Configure 802.1X on SW1
5.1 — Connect to SW1 console
Click SW1 in PNetLab → telnet console opens. Press Enter to get a prompt. enable, then conf t.
5.2 — Minimal config
hostname SW1
ip routing
!
! L3 interface on ISE-Mgmt for RADIUS
interface Ethernet0/0
no switchport
ip address 192.168.10.5 255.255.255.0
no shutdown
!
! AAA + RADIUS
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
aaa accounting dot1x default start-stop group radius
!
radius server ise01
address ipv4 192.168.10.10 auth-port 1812 acct-port 1813
key NhRadius1
!
! Global dot1x
dot1x system-auth-control
!
! Access port toward the Win 10 client (we'll use e0/1)
interface Ethernet0/1
switchport mode access
switchport access vlan 100
authentication port-control auto
dot1x pae authenticator
spanning-tree portfast
!
end
write memory
RADIUS Authentication Settings → Shared Secret: NhRadius1 (must match the switch config).
Save.
6Domain-join the Win 10 client + request a user cert
On Win 10 (VNC console): set DNS to 192.168.10.20 (the WinServer).
System Properties → Change → Domain → nh.lab → enter Administrator creds.
Reboot. Log in as NH\testuser.
Open certmgr.msc → Personal → Certificates → right-click → All Tasks → Request New Certificate.
Pick the default User template. Enroll. Done.
The cert is now in the user's Personal store and is automatically trusted by ISE (because ISE pulled the CA chain when it joined the domain). EAP-TLS will Just Work.
7Create the ISE policy + verify end-to-end
ISE GUI → Policy → Policy Sets.
Default Policy Set → edit the Authentication policy → ensure EAP-TLS is allowed and Identity Store is set to NHLAB.