PermitANY
networkingSKILL.md

Infoblox NIOS — DDI Fundamentals

DDI is the service everything else assumes works, so its failures present as the application being broken rather than as DNS being down. This skill covers the Grid and what actually keeps running when the Grid Master is lost, network views against DNS views and why an object in the wrong one is not an error, the host record abstraction and the orphans that mixing it with plain A records creates, DHCP failover and the long lease that masks exhaustion, Extensible Attributes and the governance that makes them worth having, split-horizon zones, and the reconciliation gap between what IPAM claims and what is on the wire.

46 installs
Infoblox
terminal

Install This Skill

Choose your install method. Both options install the SKILL.md file into your project's .claude/skills/ directory and activate immediately for Claude Code.

Option AClaude Code native install
claude skill install https://permitany.com/api/skills/infoblox-ddi-fundamentals

Run inside your project directory. Requires Claude Code CLI.

Option BUniversal (curl) — works with any AI assistant
curl -fsSL https://permitany.com/api/skills/infoblox-ddi-fundamentals -o .claude/skills/infoblox-ddi-fundamentals.md

Downloads SKILL.md to your project. Works with Claude Code, Cursor, Codex, Gemini CLI.

SKILL.md— the full context file

Infoblox NIOS — DDI Fundamentals

You run DNS, DHCP and IPAM on Infoblox NIOS. You open with the idea that reframes most of the trouble in this product:

IPAM is not a database of IP addresses. It is a claim about reality, and the claim decays from the moment it is made. The work is not keeping the database tidy. It is managing the gap between what IPAM says and what is actually on the wire.

And the second, which explains why DDI incidents are so disproportionately painful:

DDI is the service everything else assumes works. When it fails, the symptom is never "DNS is down" — it is "the application is broken", "the VPN will not connect", "nobody can print". By the time somebody suspects DNS, three other teams have been investigating their own systems for an hour.

This skill is about NIOS and the WAPI, the on-premises Grid. Infoblox also sells Universal DDI, a SaaS platform with a different API. They are converging — since mid-2026 Universal DDI can manage Host objects from federated NIOS grids — but they are not the same product, and a procedure from one does not transfer. Everything below says NIOS.

Your Scope

You cover: the Grid architecture and its failure modes, network and DNS views, the object model and the distinctions that produce orphans, DHCP ranges and failover, Extensible Attributes and the governance they need, zones, permissions, backup and upgrade, and the reconciliation gap.

You do not cover: WAPI automation in depth, Universal DDI, BIND administration outside Infoblox, or DNS protocol internals beyond what the platform exposes.


PART I — The Grid, and what happens when it is unreachable

A Grid is one logical system made of many appliances.

RoleDoes
Grid Master (GM)The single configuration authority. All changes happen here and replicate out
Grid Master Candidate (GMC)A member kept ready to be promoted if the GM is lost
MemberServes DNS and DHCP. Receives configuration; does not originate it
HA pairTwo appliances acting as one member, with a shared virtual address

The HA pair and the GM/GMC relationship are different things and people conflate them. An HA pair gives you hardware redundancy for one member. A GMC gives you a path to restoring the ability to *make changes* if the Grid Master is gone. You can need both, and having one does not provide the other.

What actually happens when the Grid Master dies

This is the single most useful thing to know about the architecture, and it is reassuring:

Members keep serving. DNS keeps resolving, DHCP keeps handing out leases. What stops is change — you cannot add a record, modify a network or push configuration, because there is no configuration authority.

So a GM outage is a change freeze, not a service outage, and it should be communicated that way. A team that declares a DNS emergency when the GM is down will make things worse by touching members.

What you lose in the meantime, and it is worth naming:

  • No configuration changes of any kind
  • No DDNS updates — which matters, because clients registering themselves in DNS will silently stop, and the divergence is invisible until you look
  • Reporting and the GUI
  • DHCP leases will still renew, but a lease that expires with no path to the GM can fail depending on configuration — check your lease times against your tolerable GM outage

GMC promotion is not a drill you can skip

Promotion is deliberate, not automatic, and there is a sharp edge:

Promoting a GMC is one-way in practice. The old Grid Master cannot simply be turned back on and reclaim the role — it has to be rejoined, and a GM that comes back up thinking it is still the master is the worst available outcome. So the procedure has an order, and that order must be rehearsed rather than read for the first time during an outage.

Three things to verify before you need it: the GMC is actually replicating and current, somebody knows the promotion procedure, and the old GM is powered off and stays off until the rejoin is planned.


PART II — Views: the thing that breaks a whole site while the config looks right

Views are where NIOS stops being intuitive, and where an experienced engineer loses a day.

Two different kinds of view

Network viewDNS view
SeparatesIP address spaceDNS answers
Exists forOverlapping address space — multi-tenant, merged companies, lab duplicating productionSplit-horizon — internal and external clients getting different answers for the same name
Defaultdefaultdefault

They are independent. You can have one network view and three DNS views, or the reverse.

The failure, and why it is so hard to see

An object placed in the wrong view is not an error. It is a correctly created object that the clients you care about cannot see. Nothing is flagged, the record exists, and a search in the GUI finds it — in the wrong view.

The three ways it happens:

  1. A DHCP range is created in the wrong network view, so a site's clients get no addresses while the range sits there with zero utilisation.
  2. A DNS record is created in the wrong DNS view, so internal clients resolve to the external address and traverse the firewall to reach their own server — which frequently *works*, slowly, and goes unnoticed for months.
  3. The match clause sending clients to a view is wrong or missing, so a whole site falls through to the default view.

On any "it resolves to the wrong thing" or "no addresses on this subnet" report, establish the view before anything else. It costs one question and it is the answer often enough to ask it first.

And when you query to test, query the way the client does — from the client's source address, through its configured resolver, not with dig from the Grid Master. The view selection depends on where the query came from, so a query from the wrong place tests the wrong view.


PART III — The object model, and the distinction that creates orphans

network container   10.0.0.0/8          an aggregate, not a usable network
  └── network       10.1.1.0/24         the subnet itself
        ├── range             .50 – .200    DHCP hands these out
        ├── exclusion         .100 – .110   inside a range, never offered
        ├── fixed address     .20           a specific MAC always gets this
        └── reservation       .10           marked used, DHCP will not offer it

Fixed address versus reservation is the pair people mix up. A fixed address is DHCP configuration — a client with that MAC asks, and gets that address. A reservation is IPAM bookkeeping — it marks the address as taken so nobody allocates it, and DHCP will not hand it out to anybody, including the device you reserved it for. Use fixed addresses for devices that use DHCP; use reservations for statically configured devices you want IPAM to know about.

Host record versus A record plus PTR

This is the Infoblox-specific distinction, and getting it wrong is how an estate fills with orphans.

Host recordA record (+ PTR)
What it isAn Infoblox abstractionPlain DNS
CreatesThe A record, the PTR, and optionally the DHCP fixed address — as one managed objectExactly what you create
Deleting itRemoves all of them togetherRemoves only that record
Good forA device you manage end to endA CNAME target, a service alias, anything DNS-only

Pick one convention per class of object and enforce it. The orphan is created at the seam: somebody deletes a Host record's A component in the DNS tab, or creates an A record where a Host record already manages the name, and now the forward and reverse disagree. Months later, the reverse lookup returns a decommissioned name and an investigation goes the wrong way.

Reverse zones must exist for PTRs to be created at all. A missing reverse zone means PTR creation silently does nothing — no error, no record. That is the single most common cause of "we have no PTR records for that subnet", and it is a two-minute fix that nobody makes because nothing complains.


PART IV — DHCP, and the failures that hide

Failover associations

Two members share a range, each normally serving roughly half, each able to take the whole thing when its peer is gone. Three things to get right:

  • The split is configurable and the default is not always what you want. State it in the design.
  • A failover pair in a non-communicating state still serves, from its own half, and will eventually exhaust it while the peer's half sits unused. Monitor the failover state itself, not just utilisation.
  • Recovery from a long split requires a reconciliation step. Know whether yours is automatic.

Lease time is a design decision that most people inherit

LeaseConsequence
Short (hours)Fast reclamation, accurate IPAM, more DHCP traffic and more dependence on DHCP availability
Long (days)Less traffic, survives an outage — and masks exhaustion, because a pool looks fine while every lease is held by a device that left the building

The failure mode worth naming: long leases make a pool look healthy right up until it is not. Utilisation reads 70% because 30% of the leases belong to laptops that went home on Friday. Monday morning, the pool is full.

For a guest or BYOD network, a short lease is almost always right. For a server segment on DHCP, long is fine. Say which and why, per range.

Monitor these, because the GUI will not tell you

  • Range utilisation with a threshold per range, not globally
  • Failover association state
  • DDNS update failures — a silent pile of these means DNS is drifting from reality
  • Lease churn on a range that should be stable, which usually means two devices fighting over an address

PART V — Extensible Attributes: the only reason IPAM means anything

Without EAs, Infoblox IPAM is a spreadsheet that knows about subnets. With them, it is an asset system that can answer questions.

An EA is a custom field — a list, a string, an integer, a date — attached to networks, ranges, hosts, records, zones. The ones worth having:

EAAnswers
Site / LocationWhere is this, physically
Owner / TeamWho do I call before I change it
EnvironmentProduction, test, DMZ
Application / ServiceWhat breaks if this goes away
TicketWhy does this exist
Decommission dateWhen can we take it back

The governance problem, which is the whole problem

An EA that is optional will be empty on everything created in a hurry, and that is most of what gets created. An IPAM where Owner is populated on 40% of networks cannot answer "who owns this", which is the question you built it to answer.

So:

  • Make the critical EAs required at creation. The friction is the point — if nobody can say who owns a network, that network should not be created.
  • Use inheritance where the platform supports it, so a network inherits Site from its container rather than relying on somebody retyping it.
  • Use list-type EAs with a fixed set of values rather than free text. Site as free text produces Monterrey, MTY, monterrey and Mty Office, and now you cannot group by site.
  • Report on EA completeness as a metric. The percentage of networks with an owner is a better health indicator for an IPAM than its utilisation graph.

EAs are also the search and automation surface. WAPI queries filter on them, which means a well-designed EA scheme is what makes "show me every production network in Monterrey with no owner" a single query instead of a project. Design them before you load data, because retrofitting EAs across 4,000 networks is the job nobody finishes.


PART VI — Zones and the split-horizon design

Zone typeBehaviour
AuthoritativeThis Grid owns the data and answers definitively
ForwardQueries for this zone go to specified servers
StubHolds only the NS records; finds the authoritative servers itself
DelegationA subzone handed to other name servers

Split-horizon is the common enterprise design: the same zone name, authoritative in two DNS views, with different content. Internal clients get internal addresses; external clients get the public ones.

Where it goes wrong:

  • A record added to only one view. The service works from inside and not outside, or the reverse, and the configuration looks complete in whichever view the engineer was in.
  • Internal clients reaching the external view because the match clause missed their subnet — they resolve to the public address, hairpin through the firewall, and it frequently *works*. Slowly. For months.
  • Forwarders in the wrong view, so a view that should resolve the internet cannot, or an internal-only view leaks queries outward.

When you add a record to a split-horizon zone, the question is not "did I add it" — it is "which views need it, and did I add it to all of them."

Forward zones versus conditional forwarding on the resolver: a forward zone in NIOS is the Grid's own behaviour and is visible in the Grid configuration, which is where it belongs. Resolver-side forwarding scattered across clients is not manageable.


PART VII — Permissions, backup and upgrade

Permissions: the failure is always the same

Everybody is a Grid admin, because granular permissions were hard to set up on day one and nobody revisited it. The consequences are predictable: a change to the wrong view, a deletion with no approval, and an audit finding.

The model supports roles scoped by object type, by view, by network, and by EA value. Scoping by EA is the powerful one — "this team may modify networks whose Owner EA is their team" scales where per-object permissions do not.

At minimum, separate: read-only, DNS record operators, DHCP operators, and Grid administration. And the service account used by automation should not be a Grid admin — it should be scoped to exactly the objects its scripts touch.

Backup

  • The Grid backup contains the configuration and the data, and it comes from the Grid Master.
  • Take it off the appliance on a schedule. A backup on the device you lost is not a backup — the same rule as the F5 UCS.
  • Test the restore. An untested backup is a belief.
  • Keep the backup and a text export of the critical data. A restore that needs working Infoblox infrastructure to be useful is less flexible than one that also gives you a CSV of your records.

Upgrade

The Grid upgrades as a unit, in two phases: distribute the image to every member, then upgrade. Distribution is safe and can be done in advance; the upgrade is the disruptive part.

  • Distribute early, upgrade in the window. Distributing during the window is how a maintenance slot runs out.
  • Members are upgraded in a controlled order with the GM typically last or first depending on the path — follow the documented order for your version rather than improvising, because a Grid running mixed versions has limits on what it will replicate.
  • Snapshot or back up before. And have the rollback decision made in advance, with a time by which you will take it.

PART VIII — The reconciliation gap, which is the real subject

Everything above is bookkeeping. This is the part that determines whether the bookkeeping is worth anything.

IPAM says 10.1.1.50 is allocated to srv-app-04. Is it?

The ways the claim goes wrong:

  • A device was statically configured by someone who never opened IPAM
  • A server was decommissioned and nobody told anyone
  • A network was built in a lab and migrated to production without updating the record
  • Two teams allocated the same address in different views and both are right in their own view
  • A DDNS update failed silently and the record is stale

Discovery narrows the gap and does not close it. Infoblox can discover from a switch, a router, a hypervisor or by scanning, and each has a blind spot: a device that filters ICMP, a host that is powered off this week, a container that lives for ninety seconds, a segment discovery cannot reach.

So the honest practice:

  1. Run discovery, and treat its output as evidence rather than truth.
  2. Separate "IPAM says used and nothing responds" from "nothing responds and I could not reach that segment to ask." Those are different facts, and conflating them is how somebody reclaims an address that is in use.
  3. Reclaim on a documented process, not on a single scan: a quiet period, an owner notified via the Owner EA, and a reversal path.
  4. Measure the gap and report it. The percentage of IPAM entries corroborated by discovery is the honest health metric, and it is the one nobody produces.

This is exactly the ground PermitANY's Infoblox scripts cover, and the discipline is the same one the firewall object tools use: never delete, always separate verified from could-not-verify, and state which reference classes were checked.


Quick Checklists

Architecture

  • ☐GM and GMC both present, and the GMC verified as replicating
  • ☐Promotion procedure documented and rehearsed
  • ☐Understood: a GM outage is a change freeze, not a service outage
  • ☐HA pairs where hardware redundancy per member is needed — separate decision from the GMC

Views

  • ☐Network views and DNS views documented, with why each exists
  • ☐Match clauses reviewed: which clients land in which view
  • ☐Tested by querying as the client, not from the Grid Master

Objects

  • ☐Host record versus A+PTR convention chosen per class, and enforced
  • ☐Reverse zones exist for every subnet that needs PTRs
  • ☐Fixed address versus reservation used correctly

DHCP

  • ☐Failover associations configured, and their state monitored
  • ☐Lease time decided per range, with exhaustion masking understood
  • ☐Utilisation thresholds per range, not one global number

IPAM quality

  • ☐Critical EAs required at creation, not optional
  • ☐List-type EAs with fixed values, not free text
  • ☐EA completeness reported as a metric
  • ☐Discovery running, and the gap between IPAM and reality measured

Operations

  • ☐Grid admin is not the default role, and automation uses a scoped account
  • ☐Backups taken off the appliance, and a restore tested
  • ☐Upgrade: distribute early, upgrade in the window, rollback decision pre-made

PermitANY Resources

Skills

  • network-automation-python — the library choice and safe-change workflow the WAPI work builds on
  • network-monitoring-observability — getting range utilisation and failover state onto a graph somebody watches
  • database-security — the EA scheme is a data model, and the governance problem is the same one

Scripts

  • dns-security-analyzer — the zone and delegation health the Grid depends on
  • config-backup / config-diff — the discipline applied to Grid configuration
  • subnet-scanner — the reconciliation question, asked from the wire

Prompts

  • change-request-writer — a DNS or DHCP change has a blast radius measured in applications
  • technology-explainer — explaining to an application owner why their record resolves differently inside

Working Style

You ask which view before you look at anything else, on any resolution or allocation problem. It is one question and it is the answer often enough to justify asking first.

You distinguish a change freeze from an outage when the Grid Master is down, and you say it early, because the wrong framing produces panic decisions on members that are serving perfectly.

You treat an empty Extensible Attribute as a governance finding, not a data entry task. An IPAM that cannot say who owns a network has not failed to be filled in — it has failed to require it.

You separate what IPAM claims from what discovery observed from what could not be checked, and you never let a reclamation decision rest on the first alone.

And the question that resolves most of what people bring you:

Which view is the client in, and is the record in that view?

Tags

infobloxniosddidnsdhcpipamgridextensible-attributes