Appearance
ciriussupport.com — NS Delegation Fix and Email Security
Story: EMAILSEC-013 (was EMAILSEC-009 in prior numbering) Owner: Rory (registrar access) — DNS records already staged in zone, only the registrar NS change is blocking. Status: Pending registrar change at U2 Web.
1. What is ciriussupport.com?
Secondary domain used as a support-contact address for external partners and on printed/support material (tickets, invoices, vendor comms). The domain is receive-mostly — incoming mail routes to Microsoft 365 (Exchange Online) for the ciriusgroup.com tenant:
$ dig +short MX ciriussupport.com @8.8.8.8
0 ciriussupport-com.mail.protection.outlook.com.There is no operational need for outbound sending from this domain; any support response goes out from the agent's ciriusgroup.com mailbox.
2. The NS Delegation Problem
The public parent delegation still points at an old hosting provider that no longer serves the zone:
$ dig +short NS ciriussupport.com @8.8.8.8
ns1.servers-serving.net.
ns2.servers-serving.net.
ns3.servers-serving.net.The authoritative zone data — including the DMARC and SPF records we have already staged — is hosted at generic.host on the same VPS that serves ciriusgroup.com:
$ dig +short SOA ciriussupport.com @ns1.vps-ciriusgroup.generic.host
ns1.vps-ciriusgroup.generic.host. hostmaster.ciriussupport.com. 2026041102 3600 3600 1209600 86400
$ dig +short TXT _dmarc.ciriussupport.com @ns1.vps-ciriusgroup.generic.host
"v=DMARC1; p=reject;rua=mailto:rory@ciriusgroup.com"The zone exists, is serving data, and has DMARC p=reject. Because the parent (the .com zone at Verisign via the registrar) still delegates to servers-serving.net, which is not authoritative, public DNS resolvers never reach the records. Anyone in the world querying _dmarc.ciriussupport.com gets NXDOMAIN, which means:
- DMARC enforcement is effectively
p=nonefor the public Internet. - Spoofers who forge
From: someone@ciriussupport.combypass DMARC checks. - Maester and external DMARC checkers report the domain as noncompliant.
Timeline (inferred from records)
- ~2015: domain registered; nameservers set to
servers-serving.net(the old provider). This is visible as the current parent delegation. - Unknown date: DNS zone migrated to
generic.host(same VPS as ciriusgroup.com), but the registrar NS records were never updated to match. - Since migration: every zone edit (MX, SPF, DMARC) has been invisible publicly; mail still flows in because Microsoft 365 publishes MX via its own tenant mapping at domain onboarding, and the old NS host presumably still returns the same MX record.
- 2026-04-16: EMAILSEC-013 raised to close the gap.
3. Records Needed / Present in the generic.host Zone
These records already exist in the generic.host zone. They will become live once NS delegation is fixed.
| Record | Name | Value | Status |
|---|---|---|---|
| TXT (DMARC) | _dmarc.ciriussupport.com | v=DMARC1; p=reject; rua=mailto:rory@ciriusgroup.com | Present in zone, not publicly resolvable until NS fixed |
| TXT (SPF) | ciriussupport.com | v=spf1 include:spf.protection.outlook.com -all | Present — publicly resolvable because queried via M365 caching? (see §4) |
| MX | ciriussupport.com | 0 ciriussupport-com.mail.protection.outlook.com. | Publicly resolvable |
| DKIM | — | Not configured (see §4) | Receive-only; not required today |
Recommended post-fix record set
After NS is corrected, update the zone to the canonical Cirius DMARC format and (optionally) lock SPF down to receive-only:
| Record | Name | Value | Change |
|---|---|---|---|
| TXT (DMARC) | _dmarc.ciriussupport.com | v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:dmarc@ciriusgroup.com; ruf=mailto:dmarc@ciriusgroup.com; fo=1 | Normalize to match the ciriusgroup.com/ciriusdde.com template |
| TXT (SPF) | ciriussupport.com | v=spf1 -all | Tighten to hardfail-all since domain is receive-only — no authorized senders at all |
| DKIM | — | — | Not needed (no outbound) |
Using v=spf1 -all (no include:) is the correct stance for a non-sending domain — any claim to be from:ciriussupport.com will fail SPF, and with p=reject + aspf=s the receiver will drop the message. This is a stronger posture than the current include:spf.protection.outlook.com -all, which authorizes the entire M365 shared SPF range.
4. Why the Existing SPF/MX Resolve Today
The servers-serving.net nameservers likely still return stale copies of historical records (MX → outlook.com, SPF → outlook.com include). That is why mail still flows inbound despite the broken delegation. We cannot rely on that indefinitely — the old host may retire or sanitize those records without notice.
The DMARC record was added after the zone move, so it exists only at generic.host and does not exist in the stale servers-serving.net copies. That is the direct observable proof of the delegation gap.
5. Fix — Who Needs to Act
5.1 Rory (registrar — U2 Web for ciriusgroup.com portfolio)
- Log into the U2 Web registrar control panel.
- Open the
ciriussupport.comdomain → Nameservers. - Change nameservers from:to:
ns1.servers-serving.net ns2.servers-serving.net ns3.servers-serving.netns1.vps-ciriusgroup.generic.host ns2.vps-ciriusgroup.generic.host - Save. Propagation at the .com TLD typically happens within 1-2 hours; full worldwide convergence within 24-48 hours.
5.2 Kobe (verification — run once delegation is changed)
# Confirm parent delegation has updated at a gTLD server
dig NS ciriussupport.com @a.gtld-servers.net
# Expected:
# ciriussupport.com. 172800 IN NS ns1.vps-ciriusgroup.generic.host.
# ciriussupport.com. 172800 IN NS ns2.vps-ciriusgroup.generic.host.
# Once public recursive resolvers pick it up (~30 min - 2h):
dig +short NS ciriussupport.com @8.8.8.8
dig +short TXT _dmarc.ciriussupport.com @8.8.8.8
# Expected DMARC: v=DMARC1; p=reject; ...5.3 Rory (after verification — zone polish at generic.host)
- Normalize the DMARC record per §3 recommended record set.
- Tighten SPF to
v=spf1 -allper §3 recommended record set. - Close EMAILSEC-013 with the verification dig output attached.
6. Terraform / azure-infra
No changes. ciriussupport.com is not a DNS zone in azure-infra. The only DNS resources in azure-infra are azurerm_private_dns_zone (privatelink). If we eventually migrate all Cirius public zones into Azure DNS, ciriussupport.com would come along with them under a dedicated migration story.
7. Risk / Blast Radius Assessment
| Change | Risk | Mitigation |
|---|---|---|
| NS delegation flip | Brief propagation window where some resolvers return old servers-serving.net data and others return the new generic.host data | The zone content on both sides returns the same MX for outlook.com, so inbound mail continues to flow during the split-brain window. DMARC becomes enforced more strictly on resolvers that see the new NS — any spoof attempt during the window fails, which is the desired state. |
SPF tightened to -all (no includes) | If any vendor was silently sending on behalf of ciriussupport.com, their mail would start DMARC-failing and get rejected | Audit Exchange Online message trace for any outbound mail with From: *@ciriussupport.com in the last 90 days before tightening. If zero, safe to apply. If non-zero, identify the sender and include them in SPF before tightening. |
DMARC rua= pointing at rory@ciriusgroup.com | Reports clutter inbox | Change to dmarc@ciriusgroup.com (group mailbox or distribution list) per §3 recommended record set — enables DMARC analyzer ingestion later. |
References
- EMAILSEC-013 story (SecOps) — origin ticket.
bedrock-docs/security/dmarc-enforcement-plan.md— parent DMARC program.- RFC 7489 — DMARC specification.
- RFC 7208 §4.5 — SPF
-allfor non-sending domains. - Microsoft "Set up SPF to help prevent spoofing" — https://learn.microsoft.com/en-us/defender-office-365/email-authentication-spf-configure