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--nb0.sc.teisprint.net
Dual 75MHz SuperSparc running NetBSD 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.