CSI  » Guidelines and Practices  » DNS Naming Guidelines

It is quite common for UW IT staff to refer to hosts in any of three ways:

  1. The fully qualified name: "<device>.<constituent>.uwaterloo.ca."
  2. The "hierarchical name" of "<device>.<constituent>" with respect to the University's Domain name "uwaterloo.ca".
  3. The "simple name" of "<device>" with respect the local Domain name "<constituent>.uwaterloo.ca."

All Devices assigned an IP should have their "<Device>.<Constituent>.uwaterloo.ca." name registered in CS Inventory (and UW InfoBlox).

This XKCD.org strip's mouse–over epitomizes the importance of device naming.

Permanence

Choosing the "<Constituent>" Portion of the DNS Name

The common <Constituent> names (order by function) used in CSCF are:

Function Choice of "<Constituent>" Name
Production: "cs", "student.cs", "cscf", or "<Research Group ID>"
Development: "dev.cs", "dev.student.cs", or "dev.cscf"
IAAS: "cloud.cs"
Network Data Storage: "storage.cs"

For "<Research Group ID>" see the URL associated with the specific SCS Research area web presence.

Choosing the "<Device>" Portion of the DNS Name

In CSCF (at least) we are trying to use standard generic names for devices that we expect to have multiples of.
The general form is:

    <function>–<DeviceID>

where the <DeviceID> is an integer within these ranges:

Community the Service Supports Range
CS–TEACHING region (student environment) ≥ 000, < 100
CS–GENERAL region (general environment) ≥ 100, < 200
CSCF ≥ 200, < 300
Math Faculty ≥ 300, < 400
UW Campus ≥ 400, < 500
other ≥ 500

with some constraints and exceptions, as described in the table below. The biggest constraint is that where there's a possibility for confusion between CS and Math environments, CSCF <DeviceID>s are even numbered, and MFCF <DeviceID>s are odd numbered.

General Use Microsoft Window Terminal Service windows.student.cs DNS balanced name for the current CS–Teaching production Window Terminal Server Cluster of hosts
DNS A record is elegans#.student.cs: 0 < # < 10
windows.cs DNS balanced name for the current CS–General production Window Terminal Server Cluster of hosts
DNS A record is barbarus#.cs: 0 < # < 10
General–Use Linux Service linux.student.cs for the current CS–Teaching production version of linux
linux.cs for the current CS–General production version of linux
General–Use Ubuntu Servers
Specified by distribution.
<distribution>.student.cs for CS–Teaching servers
and <distribution> is the Linux Distribution name plus a release id
(e.g. Ubuntu 14.04 would be ubuntu1404 or for the general case:
`lsb_release -s -i`+`lsb_release -s -r | tr -d "."`
<distribution>.cs for CS–General servers
where <distribution> is the same as above
General–Use Ubuntu Servers
Specified by host.
ubuntu####–###.student.cs where #### is the Ubuntu version number (e.g. 14.04 would be 1404)
         ### is the <DeviceID> (e.g. in the range of 000 to 098)
ubuntu####–###.cs where #### is the Ubuntu version number (e.g. 12.04 would be 1204)
         ### is the <DeviceID> (e.g. in the range of 100 to 198)
Graphics Lab Intel x86 Desktops gl##.student.cs where 00 <= ## <= seats in the lab.
Undergraduate Mac Labs <Building–Abbr>–<Room Number>–<###>.student.cs where 001 <= ### <= 300
Graduate Mac Lab scsmac###.cs where 001 <= ### <= 050
For these devices the alias "scsmac###.uwaterloo.ca" is also created for ease of inclusion in MS domains (which is why we have "scs" in the <device> section of the name).
Graduate Desktops (Windows/Linux) scspc###.cs where 000 < ### < 999
For these devices the alias "scspc###.uwaterloo.ca" is also created for ease of inclusion in MS domains (which is why we have "scs" in the <device> section of the name).
Graduate Desktops (Mac) scsmac###.cs where 050 < ### < 999
For these devices the alias "scsmac###.uwaterloo.ca" is also created for ease of inclusion in MS domains (which is why we have "scs" in the <device> section of the name).
NAT (Statless) Service for CS Intranets <Building Abbr>–<Room Number>–vlan<Tag>–nat.cscf where <Tag> is the interger listed in the first column of ONAs Vlan Information table.
Dedicated Services <ServiceName>.student.cs  
<ServiceName>.cs  
Dedicated Services
Specified by host.
<ServiceName>–###.student.cs where ### = 2n, 000 < n < 050
<ServiceName>–###.cs where ### = 2n, 050 < n < 100
Dedicated Hardware
(example printers)
<Building–Abbr>–<Room Number>–<Hardware ID>{.student,}.cs where <Hardware ID> uniquely identifies the hardware within the <Building–Abbr>–<Room Number>.
IaaS Hardware
Specified by host.
<Building–Abbr>–<Room Number>–<DeviceID>.cloud.cs where <DeviceID> is as described above.
Utility Servers ugster##.student.cs where ## = n, 01 < n < 28
Thin Clients tc##.cscf where 01 <= ##
tc###.student.cs where 010 <= ###
tc###.cs where 010 <= ###

See Also:

The use of "Hierarchical Names" (also referred to as structured names or domain style names) as outlined in RFC 952 and RFC 1123 section 2.1