Daily Worklog: 2026-02-09 (Monday)
Overview
Date: 2026-02-09 (Monday)
Location: Remote
Focus: Windows DC Migration, Documentation, ISE Troubleshooting
Sessions
Session 1: Windows Server 2025 Core Deployment
Duration: Ongoing
Accomplishments:
-
Deployed Windows Server 2025 Core VM (home-dc01) on KVM
-
Loaded VirtIO drivers (viostor + NetKVM) during installation
-
ISO: Windows Server 2025 Standard Evaluation
-
Storage: /mnt/onboard-ssd/vms/home-dc01.qcow2
-
-
Created pfSense DNS documentation in domus-netapi-docs
-
New page: cli/pfsense/dns/index.adoc
-
Commands: list, add, update, delete, apply
-
Fixed command syntax (all fields required for update)
-
-
Updated KVM host DNS record (kvm-01-lan: 192.168.1.181 → 192.168.1.192)
Session 2: ISE Rejected Endpoint Troubleshooting
Issue: Domus-IoT device not connecting to WiFi
Investigation:
netapi ise ers rejected
| MAC Address | Reason |
|---|---|
64:32:A8:C4:C7:19 |
EndPoint |
Check auth history (MAC is positional, not a flag):
netapi ise dc auth-history 64:32:A8:C4:C7:19
| Time | Status | Method | Policy Set | AuthZ Profile | Failure Reason |
|---|---|---|---|---|---|
2026-02-09 07:46:56 |
FAILED |
mab |
DELETE-HomeRF |
DenyAccess |
15039 Rejected per authorization profile |
Root Cause: Device hitting DELETE-HomeRF policy set which has DenyAccess authorization profile. This is intentional policy denial, not an auth failure.
Resolution:
netapi ise release-rejected 64:32:A8:C4:C7:19
Output: ✓ Released rejected endpoint: 64:32:A8:C4:C7:19
Delete endpoint to force fresh authentication:
netapi ise delete-endpoint 64:32:A8:C4:C7:19 --force
Output: ✓ Deleted endpoint: 64:32:A8:C4:C7:19
Verify no rejected endpoints remain:
netapi ise get-rejected-endpoints
Output: No rejected endpoints
Next Steps:
-
Verify Domus-IoT SSID is broadcasting on WLC
-
Reconnect device to trigger fresh authentication
-
Add to correct identity group after re-auth
Session 3: WLC SSID Troubleshooting
Device not seeing Domus-IoT SSID despite being enabled on WLC.
Check WLANs:
netapi wlc get-wlans
| ID | Profile Name | SSID | Status |
|---|---|---|---|
1 |
HomeRF |
HomeRF |
enabled |
5 |
Domus-IoT |
Domus-IoT |
enabled |
4 |
Domus-Secure |
Domus-Secure |
enabled |
Check policy tags (WLAN-to-AP mapping):
netapi wlc policy-tags
| Tag Name | Description |
|---|---|
IoT-Tag |
IoT policy tag |
HomeRF-Tag |
|
TAG-DOMUS_SECURE |
|
default-policy-tag |
default policy-tag |
Check APs:
netapi wlc get-aps
| Name | IP Address | Model | Serial | Version |
|---|---|---|---|---|
AP4800 |
10.50.10.101 |
AIR-AP4800-B-K9 |
FCW2316NH54 |
17.15.3.28 |
Analysis: Only 1 AP (AP4800). Need to verify which policy tag is assigned to AP4800 and whether Domus-IoT WLAN is mapped to that tag.
Check AP tag assignment:
netapi wlc get-ap AP4800 | grep -i tag
Result: AP4800 using default-policy-tag, but Domus-IoT WLAN not mapped to it.
Root Cause: Policy tag had stale DOMUS_IoT (underscore) mapping but WLAN is Domus-IoT (hyphen).
Fix: Recreate policy tag with correct mappings (preserving existing networks):
netapi wlc create-policy-tag default-policy-tag \
--map HomeRF:VLAN10-Policy \
--map Domus-Secure:POLICY-DOMUS_SECURE \
--map Domus-IoT:POLICY-DOMUS_IoT \
--save
Creating policy tag: default-policy-tag
HomeRF -> VLAN10-Policy
Domus-Secure -> POLICY-DOMUS_SECURE
Domus-IoT -> POLICY-DOMUS_IoT
OK
Saving configuration...
OK
Result: Domus-IoT SSID now broadcasting.
Session 4: Gopass Update
Updated ADMINISTRATIO/servers/home-dc01 with fresh credentials for Windows Server 2025 Core deployment:
-
OS: Windows Server 2025 Standard (Core)
-
Roles: AD-DS, DNS (no AD CS - PKI on Vault)
-
New Administrator password generated
-
New DSRM password generated
Session 5: Windows Server 2025 Core - home-dc01
Status: Online
-
VirtIO drivers loaded (viostor + NetKVM)
-
Computer name set:
home-dc01 -
Next: Configure network (sconfig), promote to DC
Session 6: OEAP Rejected Endpoint Troubleshooting
Issue: Work OEAP (04:5F:B9:78:02:20) rejected by ISE, causing office WiFi outage.
Investigation:
Check rejected endpoints:
netapi ise get-rejected-endpoints
Check switch port status:
netapi ios exec "show access-session interface gi1/0/4 details"
Result: Status Unauthorized, MAB Stopped.
Query auth history to find what worked before:
netapi ise dc query "
SELECT
TIMESTAMP_TIMEZONE,
CALLING_STATION_ID,
POLICY_SET_NAME,
AUTHORIZATION_PROFILES,
IDENTITY_GROUP,
PASSED
FROM RADIUS_AUTHENTICATIONS
WHERE CALLING_STATION_ID LIKE '%04:5F:B9:78:02:20%'
ORDER BY TIMESTAMP_TIMEZONE DESC
FETCH FIRST 10 ROWS ONLY
"
Root Cause Analysis:
| When | Policy Set | AuthZ Profile | Identity Group | Result |
|---|---|---|---|---|
Before (working) |
Corp LAN MAB |
AP_Secure_VLAN10_Profile |
Trusted_Access_Points |
Pass |
Now (failing) |
Domus-Wired 802.1X |
(empty) |
(empty) |
Fail - 22056 Subject not found |
The endpoint was hitting Domus-Wired 802.1X instead of Corp LAN MAB even though it was in the correct identity group.
Verify endpoint group:
netapi ise get-endpoint 04:5F:B9:78:02:20
Result: Group = Trusted_Access_Points, Static Assignment = True (correct!)
Resolution:
Initial attempts to just release from rejection failed - endpoint kept getting re-rejected. Nuclear option required:
# Delete and immediately recreate with static group assignment
netapi ise delete-endpoint 04:5F:B9:78:02:20 --force && \
netapi ise create-endpoint 04:5F:B9:78:02:20 --group "Trusted_Access_Points" --static-group
✓ Deleted endpoint: 04:5F:B9:78:02:20
✓ Created endpoint: 04:5F:B9:78:02:20
ID: 08bf6780-05e4-11f1-8b03-5628c177fe65
Key Learning: When release-rejected alone doesn’t work, delete the endpoint entirely and recreate with --static-group flag. The && ensures create runs immediately before ISE can auto-create a new endpoint from re-auth attempts.
UPDATE - Root Cause Found:
The real issue was ISE Policy Set ordering. The OEAP was hitting Domus-Wired 802.1X instead of Domus-Wired MAB, causing error 22056 "Subject not found" (MAB lookup against wrong identity store).
Root Cause Analysis:
| Issue | Detail |
|---|---|
Symptom |
OEAP rejected with error 22056 "Subject not found in applicable identity store" |
Wrong assumption |
Endpoint group assignment issue |
Actual cause |
Policy set |
Why it broke |
Policy set ordering changed; MAB devices were hitting 802.1X policy first |
Resolution:
-
In ISE: Policy → Policy Sets
-
Move
Domus-Wired MABaboveDomus-Wired 802.1X -
Save and bounce switch port
netapi ios config "interface GigabitEthernet1/0/4" "shutdown" && sleep 2 && netapi ios config "interface GigabitEthernet1/0/4" "no shutdown"
Verified working:
Status: Authorized
Domain: DATA
Vlan Group: Vlan: 10
mab: Authc Success
Key Learnings:
-
ISE evaluates policy sets top-to-bottom; order matters
-
MAB devices must hit MAB policy set, not 802.1X
-
Error 22056 usually means wrong identity store for auth method
-
Don’t waste time on endpoint group assignment if policy set matching is wrong
Session 7: 10G Trunk Flapping - KVM Host Connectivity
Issue: Lost all connectivity to KVM host (home-dc01 VM unreachable). SSH showing "No route to host".
Symptoms:
-
Te1/0/2 (TRUNK-TO-SUPERMICRO) flapping between
connected,notconnect, anderr-disabled -
Link would come up briefly then drop
-
Trunk carrying VLANs 10,20,30,40,100,999 to Supermicro E300-9D
Troubleshooting via console (picocom):
picocom -b 9600 /dev/ttyUSB0
LAB-3560CX-01#show int t1/0/2 status
Port Name Status Vlan Duplex Speed Type
Te1/0/2 TRUNK-TO-SUPERMICR err-disabled 1 full 10G SFP-10GBase-SR
# Repeated shut/no shut cycles
LAB-3560CX-01(config-if)#shut
LAB-3560CX-01(config-if)#no shut
# Status kept cycling: notconnect → connected → err-disabled
Root Cause: Suspected SFP-10GBase-SR module incompatibility or signal issues with Supermicro Intel X710 10GbE NIC.
Resolution: After multiple port bounces, link stabilized. May need to replace SFP or check fiber/DAC cable.
Interface Config (working):
interface TenGigabitEthernet1/0/2
description TRUNK-TO-SUPERMICRO
switchport trunk allowed vlan 10,20,30,40,100,999
switchport trunk native vlan 100
switchport mode trunk
ip arp inspection trust
spanning-tree portfast edge trunk
ip dhcp snooping trust
Key Learning: 10G SFP modules can be finicky with certain NICs. Keep console access ready for switch troubleshooting when remote connectivity is lost.
Session 8: Windows Server 2025 Core - SSH with YubiKey
Goal: Configure SSH on home-dc01 with YubiKey authentication.
Install OpenSSH Server (on Windows console):
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Stop-Service sshd
Configure custom port (22022):
(Get-Content C:\ProgramData\ssh\sshd_config) -replace '#Port 22', 'Port 22022' | Set-Content C:\ProgramData\ssh\sshd_config
Enable password auth temporarily (to copy keys):
(Get-Content C:\ProgramData\ssh\sshd_config) -replace '#PasswordAuthentication yes', 'PasswordAuthentication yes' | Set-Content C:\ProgramData\ssh\sshd_config
Restart-Service sshd
Set-Service -Name sshd -StartupType Automatic
Firewall rule:
New-NetFirewallRule -Name "SSH-22022" -DisplayName "SSH (22022)" -Protocol TCP -LocalPort 22022 -Action Allow -Enabled True
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Initial SSH (requires sudo to bypass user SSH config issues):
sudo ssh -p 22022 Administrator@10.50.1.50
Copy public keys using brace expansion + wl-copy:
# Brace expansion to match multiple keys
ls ~/.ssh/id_ed25519_{d000,sk_rk_d000,sk_rk_d000_secondary}.pub
# Copy to clipboard (Wayland)
cat ~/.ssh/id_ed25519_{d000,sk_rk_d000,sk_rk_d000_secondary}.pub | wl-copy
Add keys to Windows (PowerShell here-string):
@"
sk-ssh-ed25519@openssh.com AAAA... evanusmodestus@d000-secondary
sk-ssh-ed25519@openssh.com AAAA... evanusmodestus@d000-yubikey
ssh-ed25519 AAAA... evanusmodestus@d000
"@ | Set-Content C:\ProgramData\ssh\administrators_authorized_keys
icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
SSH config (~/.ssh/config):
Host home-dc01
HostName 10.50.1.50
Port 22022
User Administrator
IdentityFile ~/.ssh/id_ed25519_sk_rk_d000
IdentityFile ~/.ssh/id_ed25519_sk_rk_d000_secondary
IdentityFile ~/.ssh/id_ed25519_d000
Test connection:
ssh home-dc01
Kill multiplexed connections (ControlMaster):
ssh -O exit home-dc01
Key Learnings:
-
Windows admin SSH keys go in
C:\ProgramData\ssh\administrators_authorized_keys(not user’s .ssh folder) -
icaclspermissions required: Administrators:F and SYSTEM:F -
Brace expansion:
{a,b,c}matches multiple patterns in one glob -
wl-copypipes output to Wayland clipboard -
ControlMaster reuses connections - use
ssh -O exitto close -
sudo sshbypasses user SSH config issues for initial setup
Session 9: Windows Server 2025 Core - DC Promotion
Goal: Promote home-dc01 to Domain Controller (new forest).
Install AD DS and DNS:
Install-WindowsFeature AD-Domain-Services, DNS -IncludeManagementTools
Gopass credential structure (separate entries):
# Generate passwords
gopass generate ADMINISTRATIO/servers/home-dc01/Administrator 32
gopass generate ADMINISTRATIO/servers/home-dc01/dsrm 32
# Create metadata with heredoc
gopass insert ADMINISTRATIO/servers/home-dc01/meta << 'EOF'
hostname: home-dc01
fqdn: home-dc01.inside.domusdigitalis.dev
ip: 10.50.1.50
domain: inside.domusdigitalis.dev
netbios: DOMUS
ssh_port: 22022
os: Windows Server 2025 Core
roles: AD-DS, DNS
pki: Vault (DOMUS-ROOT-CA)
created: 2026-02-09 (Monday)
EOF
# Retrieve
gopass show ADMINISTRATIO/servers/home-dc01/Administrator
gopass show -c ADMINISTRATIO/servers/home-dc01/dsrm
Promote to DC (new forest):
Install-ADDSForest -DomainName "inside.domusdigitalis.dev" -DomainNetbiosName "DOMUS" -ForestMode "WinThreshold" -DomainMode "WinThreshold" -InstallDns:$true -SafeModeAdministratorPassword (Read-Host -AsSecureString "DSRM Password") -Force:$true
Verification after reboot:
Get-Service NTDS, Netlogon, DNS | Select-Object Name, Status
Get-ADDomain | Select-Object Name, DNSRoot, NetBIOSName
Get-ADDomainController | Select-Object Name, IPv4Address, OperatingSystem
Name DNSRoot NetBIOSName
---- ------- -----------
inside inside.domusdigitalis.dev DOMUS
Name IPv4Address OperatingSystem
---- ----------- ---------------
HOME-DC01 10.50.1.50 Windows Server 2025 Standard Evaluation
Key Learnings:
-
Use separate gopass entries:
/Administrator,/dsrm,/meta -
Heredoc for multi-line gopass inserts:
gopass insert path << 'EOF' -
One-liner PowerShell works better over SSH than multi-line with backticks
-
DC promotion restarts server automatically
-
After promotion, login shows domain prefix:
domus\administrator
Linux Command Reference
sed - print line range:
# Print lines 170-240
sed -n '170,240p' file.adoc
# Insert BEFORE line 220
sed -i '220i\Your text here' file.adoc
# Insert AFTER line 220
sed -i '220a\Your text here' file.adoc
# Preview before editing
sed -n '218,222p' file.adoc
Full sed reference: Aethelred-Codex/The_Codex/13_AsciiDoc/10_COMMAND_ARSENAL/11_DEVELOPMENT_LANGUAGES/2025-CMD-11-D-004-2025-DEV-022-sed-stream-editor-mastery.adoc
Learnings
-
VirtIO drivers for Windows 2025: use
2k25\amd64folder (or2k22fallback) -
netapi pfsense dns updaterequires ALL fields: --id, --host, --domain, --ip -
WLC policy tag WLAN names are case-sensitive and character-sensitive (
DOMUS_IoT≠Domus-IoT) -
ISE rejected endpoints need
release-rejectedeven if group assignment is correct -
DataConnect MAC format:
04:5F:B9:78:02:20(colons, uppercase) -
sed -n '170,240p'prints lines 170-240 without modifying file -
Windows 100% memory in Cockpit is normal - aggressive caching behavior
Session 10: Linux Workstation DC Migration (modestus-razer)
Goal: Update krb5.conf from old DC hostname (dc-01) to new DC (home-dc01).
Verify DC is operational:
PS C:\Users\Administrator> Get-Service DNS, Netlogon, NTDS | Select-Object Name, Status
Name Status
---- ------
DNS Running
Netlogon Running
NTDS Running
PS C:\Users\Administrator> Get-ADDomain | Select-Object Name, DNSRoot, NetBIOSName
Name DNSRoot NetBIOSName
---- ------- -----------
inside inside.domusdigitalis.dev DOMUS
PS C:\Users\Administrator> Get-ADDomainController | Select-Object Name, IPv4Address, OperatingSystem
Name IPv4Address OperatingSystem
---- ----------- ---------------
HOME-DC01 10.50.1.50 Windows Server 2025 Standard Evaluation
Preview krb5.conf changes (never sed blindly):
$ sed -n 's/dc-01\.inside\.domusdigitalis\.dev/home-dc01.inside.domusdigitalis.dev/gp' /etc/krb5.conf
kdc = home-dc01.inside.domusdigitalis.dev
admin_server = home-dc01.inside.domusdigitalis.dev
Apply changes:
$ sudo sed -i 's/dc-01\.inside\.domusdigitalis\.dev/home-dc01.inside.domusdigitalis.dev/g' /etc/krb5.conf
Verify configuration:
$ cat /etc/krb5.conf
[libdefaults]
default_realm = INSIDE.DOMUSDIGITALIS.DEV
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
INSIDE.DOMUSDIGITALIS.DEV = {
kdc = home-dc01.inside.domusdigitalis.dev
admin_server = home-dc01.inside.domusdigitalis.dev
}
[domain_realm]
.inside.domusdigitalis.dev = INSIDE.DOMUSDIGITALIS.DEV
inside.domusdigitalis.dev = INSIDE.DOMUSDIGITALIS.DEV
Refresh Kerberos and SSSD:
$ kdestroy -A
$ sudo systemctl restart sssd
$ kinit Administrator@INSIDE.DOMUSDIGITALIS.DEV
Password for Administrator@INSIDE.DOMUSDIGITALIS.DEV: <from gopass>
No output from kinit indicates success (Unix convention: silence = success).
|
Verification:
$ klist
$ sudo sssctl domain-status inside.domusdigitalis.dev
Online status: Online
Active servers:
AD Domain Controller: home-dc01.inside.domusdigitalis.dev
Summary:
| Item | Status |
|---|---|
DC Services (DNS, Netlogon, NTDS) |
Running |
Domain Controller |
HOME-DC01 (10.50.1.50) - Windows Server 2025 |
krb5.conf updated |
dc-01 → home-dc01 |
SSSD restarted |
Complete |
Kerberos ticket obtained |
Documentation: ise-linux::04-linux-client/domain-join.adoc - DC Migration in domus-ise-linux
Tomorrow
-
Test 802.1X authentication against new DC
-
Verify SSSD domain status
-
Update remaining workstations (modestus-p50, modestus-aw)