Eric Radman : a Journal

Network Node Naming

They're not Children, they're Applications

This post is the result of many months of deliberation on my part. The problem for me is that I have a hard time comming up with hostnames that make sense. They seem so arbitrary, and make no indication about what I'm logged into. I assume that many corporations have some sort of naming scheme, but very few methods have been published. I first started to develop more descriptive names for Cisco routers and found it very helpful. All of the network devices in current projects are dubbed with names that indicate what the device is, and where it is.

Single Letter Device Type Notation

[device type] - [id]

Where [id] is an arbitrary number assigned to devices

h  Hand-held Device
n  Network Appliance
m  Mobile Computer
p  Printer
t  Telephone
v  Video Camera
w  Workstation

Architecture Designation

[architecture][clock speed][processors][operating system][id]

Where [architecture] is a two letter designation for the CPU:

ia  Standard Intel artitecture (x86)
ss  Sun SuperSparc (32-bit)
us  Sun UltraSparc (64-bit)
am  AMD64, AMD Opteron
it  IA64, Intel's Itanium
pp  PowerPC (G3, G4, G5)
mp  MIPS (SGI)
mo  Motorola 680x0-based processors (Mac Classic, Amega)
co  Colocated environment (such as CoLinux for Windows)
pw  IBM Power 4/5 Series
al  Alpha
ar  StrongARM
hp  PA-RISC (HP)

[clock speed] is the freqency in MHz that the CPU runs at with a dash (-) for each processor following. This was easier than, say x2 for a dual-processor machine, and didn't look silly for single-CPU boxes.

[operating system] is a two letter designation for the OS:

gl  Gentoo Linux
db  Debian Linux
rh  Red Hat Linux
su  SuSE Linux
ob  OpenBSD
nb  NetBSD
fb  FreeBSD
mw  Microsoft Windows
su  Sun Solaris
ap  Apple Mac

And [id] is just an index (0 through 9) for the machine number to make it unique.

Example FQDN's

The following examples are of the architecture designation plus a two letter designation for the city that the server is located in.

ss75-ob0.sc.teisprint.net

75MHz SuperSparc running OpenBSD in Scranton

ss75--ob0.sc.teisprint.net

Dual 75MHz SuperSparc running Gentoo Linux in Scranton

us300-gl0.wb.teisprint.net

Primary 300MHz UltraSparc running Gentoo Linux in Wilkes-Barre

us300-gl1.wb.teisprint.net

Secondary 300MHz UltraSparc running Gentoo Linux in Wilkes-Barre

ia1000--mw0.cs.teisprint.net

Dual 1GHz Intel running Windows in Clarks Summit

us400----su0.xyzcorp.com

Quad UltraSparc running Sun Solaris at XYZ Corp

Example screen Session

Num Name                                                          Flags
  0 us270-gl0.eradman.com (root)                                      $
  1 us270-gl0.eradman.com (theman)                                    $
  2 us270-gl0.eradman.com (journal)                                   $
  3 webwareforpython.org (eradman)                                    $
  4 ia1000--gl0.sc (mysql)                                            $
  5 ss75--gl0.cs (root)                                               $
  6 ss75-ob0.sc (root)                                                $
  7 ia300-gl0.sc (root)                                               $
  8 ia700-gl0.sc (root)                                               $
  9 ia350-gl0.cs (workflow)                                           $
 10 us300-fb0 (root)                                                  $
 11 ia350-gl0.cs (root)                                               $
 12 ia1000--gl0.sc (root)                                             $
 13 us300-ob0 (root)                                                  $
 14 ia1000--gl0.sc (sysadmin)                                         $
 15 ia500-ob0.astrowhse.com (root)                                    $

Sample Host Files

It's a good idea to use CNAME records to designate location or function for a particular service. For example, if your gateway is a 200 MHz Alpha running FreeBSD give it an A record for al200-fb0.mycompany.com, but also define a connocal name like border.mycompany.com referring back to al200-fb0.

The following is how I defined part of eradman.com:

$ORIGIN eradman.com.
$TTL 2D
@                   1D IN SOA    solar.teisprint.com. hostmaster.teisprint.com. (
                                 2004121201      ; serial
                                 3H              ; refresh
                                 15M             ; retry
                                 1W              ; expiry
                                 1D )            ; minimum

                    IN NS        lunar.teisprint.com.
                    IN A         65.171.142.30
                    IN AAAA      2001:470:1f00:297::1
                    IN MX        10 us270-gl0.eradman.com.

us270-gl0           IN A         65.171.142.30
us270-gl0           IN AAAA      2001:470:1f00:297::1

www                 IN CNAME     us270-gl0.eradman.com.
mail                IN CNAME     us270-gl0.eradman.com.
stats               IN CNAME     us270-gl0.eradman.com.
ftp                 IN CNAME     us270-gl0.eradman.com.
rsync               IN CNAME     us270-gl0.eradman.com.
pop                 IN CNAME     us270-gl0.eradman.com.
svn                 IN CNAME     us270-gl0.eradman.com.
projects            IN CNAME     us270-gl0.eradman.com.

Notice that I define many connocal names for the same host. This is good practice because if I want to separate services in a jail or another box I can easily redefine each service.

References

Computer, Server and Desk Position Naming Recommendations

$ Thu Jan 29 08:26:18 -0500 2009 $