DNS Names for internal hosts

Date July 1, 2008

Bob Plankers, over at The Lone Sysadmin wrote a couple days ago about getting busted while reading the wiki page on X-Men. He tried to cover it up by claiming to be researching future host names. Quick thinking, Bob. Good job! ;-)

It does bring up a good point, though. Internal naming schemes are something that everyone has an opinion on, and a load of suggestions.

At various places, I’ve used greek/roman gods, Simpsons characters, beer companies, wine labels, and fish.

At my current company, we used the beer and wine names. We absorbed another company that used fish. It worked fine for a while, but we grew in terms of servers and locations until it got unwieldy to remember A) all the names, and B) what each name did. You’d also start to get very similar names after a while. We’ve now got 4 physical locations, soon to be 5, and something like 50-60 servers (not counting network devices), no one would be able to keep them all straight (including the admin).

To improve the situation, we’re in the process of changing to location-based hostnames with a flat internal domain structure. For example, the 2ndary application server in Ohio is oh-app2, with the fake internal domain name trailing. The alpha site’s primary fileserver is a-fs1.

It’s no where near as fun as “wolverine.internal.com” but it certainly does tell you where you’re connecting to and what the machine does. What makes it interesting is when you go changing things like CVS repositories on people’s machines, mail servers, etc. The policy we’ve taken is to alias the old information to the new, and slowly phase out the old method.

What do you use as internal naming systems? What do you think would make an excellent scheme? Make sure to check the list to make sure it hasn’t been done before!



45 Responses to “DNS Names for internal hosts”

  1. Ben C said:

    I think hostnames really bring out the personality of the sysadmin. I try to avoid functional hostnames when I can, although I do understand their utility. Since I support university faculty, their workstations get names of their choosing, generally releated to their research (e.g updraft, downdraft, advection, and helicity). Our old BSD lab had hurricane names like betsy and camille.

    For other machines, I like to use awesome words or literary characters. For example, our Linux upgrade test box is “toughsky”. I’m also awaiting the opportunity to use dunbar and yossarian.

    At home, I use the locations of places that I’ve gone storm chasing. My friend Mike uses ski slopes. One colleague even named a virtual machine “cheese” so that during every maintenance window, he could put the VM on a different physical host and ask everyone “who moved my cheese?”

  2. matt said:

    Thus far we’re running Hal (watches our Ethernet security cams!) and ED209 (D2D file server).

    Nothing like having two evil robot machines on the network.

  3. Ash said:

    I work in a company that has over 100 servers (not counting the virtual ones). We need a scheme where you can tell what site the server is at and also what it does. We do this by using a name that starts with a three character code for the site followed by one character for server, laptop, desktop, switch, router, etc (we use this scheme for everything), and then a short code for the primary application. For examples, CLTSDC01 is our domain controller in Charlotte, NC. NYCSMB01 is our Exchange Mailbox server in New York. NYCSCA01 is our Exchange Client Access server in NYC. CHSSAXSQL02 is one of our Dynamics AX SQL servers in Charleston, SC.

  4. Joe said:

    IMO, once you get past 25 systems, you need functional names. If you have multiple sites, this is a must.

    SJ – San Jose
    NY – New York
    AU – Austin
    CH – Chicago
    LV – Las Vegas

    Then I add DC, MX, FS, DNS, FW, DB, etc to the name. Then I mumber them with 2 digits, 01, 02, 03, 04, etc.

  5. quux said:

    After trying many functional and location based naming schemes, and many combinations of the two, I have come to the conclusion that they are all folly, in the long run.

    Here is the basic problem: your server is named SanFranMail1. What happens when you move the server to Oakland and add and FTP serving function to it?

    Oops, the name no longer fits. But changing the name means reconfiguring other things on your network – maybe only a few things, maybe hundreds or thousands. So you don’t change the name, and you start getting used to the idea that your names are not actually as descriptive as they claim to be. Bummer.

    My solution to this is: no naming system at all. Let people name things whatever they like, as long as they understand that the name might still be around a decade from now. For the location and function information, standardize some alternate way to encode that functional information and keep it up to date. Windows systems have this nice ‘description’ field right next to the name field. Linux systems can use MOTD or an SNMP field. DNS allows for TXT records. You may think of other ways to do it, like on a wiki.

  6. quux said:

    Oh. I just remembered this, the most original name scheme I ever saw:

    Sounds Animals Make

    So they had systems like:

    Barks
    Squeaks
    Twitters (long before Twitter, I should add!)
    Growls
    Roars
    Blubs (a fish?)
    Croaks

  7. Evan said:

    You could always compromise and combine them. For instance, you gave the example of oh-app2. The 2 suffix doesn’t actually mean anything, so you could replace that by the original host name… oh-app-wolverine.

    Names start getting a little long, but that shouldn’t be a big deal.

  8. Kooky said:

    Something I just thought of, reading the information about how a slight change can render a name useless, and that is something that might be far better to have is a a central database where the information is kept.

    I just thought that if someone can take a few minutes to set up an internal Wiki for server information, and use the following as a reference:

    Each Machine gets a page. On its page, include the fundamentals, of the machine. Date of Purchase, Chassis Style (Laptop, Desktop, Server, Blade, etc), Host OS, Installed Software. If your infrastructure is large enough that certain individuals are responsible for certain machines, then include who is responsible.

    Make use of Categories to link varies similarities together, like all of one chassis, all of one host OS, everything assigned to person “X”, etc.

    You can also give each responsible person (or even each tech) their own page listing their strengths, so that if a given mail server goes down, and the person its assigned to is unavailable–Vacation, etc– you can see at a glance who else is efficient with mail servers.

    There are a couple of advantages to this. Anyone on staff can update the “current information” when things happen to a given system. Also you can do a running list of problems with a given piece of hardware that anyone can recover. Also creates a decent auditing trail of maintenance, problems, etc etc.

    Maybe that will help you.

  9. Rich said:

    I found the most functional naming convention so far is:

    device-interface.site.company.com

    Example (using a router):

    pos5-0-0.r1.asbn01.mycompany.com

    Above means …

    - packet over sonet (fiber WAN)
    - r1 = router 1
    - asbn01 = Ashburn, VA location 1
    - yourcompany.com

    Example (using a host/server):

    web.asbn01.mycompany.com

    I’m sure you get the idea. I have tried a bunch of different naming conventions and after seeing 1 company acquire another and use this naming convention to migrate everything in was quite successful (and is still in use).

    Also as for the location, if you want to get very detailed, use the CLLI location codes that telco’s use (http://www.telcodata.us/telcodata/city). Keeping the location naming convention to be a 4-letter official location makes sense to national/worldwide bodies and is a widely accepted standard. Also if you have multiple sites at one location (i.e., say you have 3 locations in Chicago you could use “chcg01, 02, 03 to have diverse naming on your diverse locations that are in the same city!)

    Good luck with your naming convention!

    -Rich

    rich.davies@gmail.com

  10. Anonymous said:

    quux: You use aliases. You maintain the old DNS name for temporary compatibility, but also map OaklandMail1 and OaklandFTP1 to the same IP (by your naming scheme).

  11. Rich Davies said:

    Also 1 more thing about hostnames -

    Non-meaningful hostnames are confusing!! As new systems/IT people go in/out of jobs, it is very difficult to understand that a hostname of “potato” is a mail server, or “zeus” is a switch. Some people say the best security is obscurity, however you do not want to hinder troubleshooting when it comes time to get a quick resolution to a problem, and a silly hostname is slowing you down.

    If you are truly worried about security and naming conventions, then look to tightening up your corporate firewalls not making up silly hostnames that keep some people important (because they can remember that “icarus” is the wifi nodes on the network versus the newer employee who might have more experience but is slowed down by a naming convention that means NOTHING to that person).

    I really believe a functional hostname is better than names such as series of items/fruits/nuts/vegetables/etc (non-functional names). It all comes down to how quickly can you get a problem resolved and maintain max uptime!

    -Rich
    rich.davies@gmail.com

  12. Michael said:

    Hello -

    The only thing I would think to add to Joe’s comment and Ash’s comment is that when a location is part of a servername use the UN Location Code to standardize the location names You dont want someone following you wondering if the ch in chfw01 refers to Chicago’s Charleston’s or Chatanooga’s firewall 01.

    http://en.wikipedia.org/wiki/UN/LOCODE

    If the UN loc codes don’t make sense for some reason there are other codes like Airport codes, etc. But the nice thing about the UNLOCCODE is that you can specify a place exactly if necessary.

    Our company uses a hybrid of location based names for certain categories of servers (firewall, ERP) and not for others (Samba, Mail, other general services). This comprises about 150 servers worldwide.

    The hybrid situation causes confusion sometimes. There are some servers we have that use sea to refer to Seattle and one which refers to “South East Asia” (which caused me to wonder why a vpn was not coming up properly until I realized)

    I agree the most with guux – it doesnt really matter. I agree because you can always adjust your /etc/hosts file to use a more logical name if the previous sysadmin decided to commemorate Battlestar Galactica across the servers.

    If I need to remember that “AstralQueen” is the NYC Samba server then I can do it in a nycSamba entry in the hosts file.

  13. Anonymous said:

    I used to name servers after fired employees. we had a very high rotation so i was never short of names

  14. Anonymous said:

    Hostnames and DNS names are two different things and it seems people posting here are not realizing this…

    If you want to have a physical Active Directory DNS hostname be a functional name, thats great…but if you want to shorten and sweeten some 15 character name, then by all means, add an alias to DNS for your favorite X-Men or LoTR character.

    Just remember, with AD DNS, name resolution is critical, so don’t screw AD DNS up whatever you do, then it doesn’t matter if you call it sfca-exchmail04 or mailbuddy.

  15. Gary said:

    Use fruits, vegetables, & nuts, if need be. You can group them–certain fruits/veggies for servers/departments, and upper/lower-floor distinction with trees or ground plants!

  16. Gary said:

    It may not seem so ideal to some, but we’ve had good success with fruits, vegetables, and even nuts. You can use types (larger size for servers) group by category (bookkeepers get citrus fruits or squashes), and even by location (upper & lower floors get tree & ground plants).

    That way, you can label your least favourite department with names of nuts. :)

  17. KittCar said:

    We are slowly moving away from these types of naming conventions. Sauron, which is our security camera machine is the last one that was named not as svr.city.datacenter.blah.blah

  18. Graffiti Knight said:

    Our work, where I took over just over a year ago, we currently use functional names. In fact FS1 is our file server. The problem for us is that we don’t have enough servers to justify the current scheme. There is an FS1, DS1, MS1, AR1, etc but no 2 servers (FS2, MS2).

    We also ran into the problem of services changing and being stuck with old names. Luckily MS1 was able to go from Management Server to Mail Server, but that is an isolated case. I haven’t yet decided on a convention I like really.

    I forgot to mention, but for user’s laptops I use first initial and last name, which is the same as their username and email address. I find it makes it much simpler to look at an access log or connect remotely to their machine rather than having to look it up everytime.

  19. Anonymous said:

    I work for a global financial services firm – we use the following:

    [type][city][number][environment][use]

    So xnyc0001por is a linux server in new york in the production server farm running oracle.

    It’s not fun, but it’s practical!

  20. Inix said:

    We just went through a global server naming + AD revamp. It went from whateverserver.whatever.com.int to AABBCCXX.country.company.com (except for my HQ where its AABBCCXX.company.com)

    Where the it means the following;

    AA – 2 Alphabet Representing Country via Internet ID (US for US for example, FR for France, SG for Singapore)

    BB – 2 Alphabet Representing City Via Internal Convention (PA for Paris, RT for Rotterdam)

    CC – 2 – 3 Alphabet Representing Usage (AD for Active Directory, FS for File Server, AS for Accounting Server, WC for Web Cache)

    XX – 2 Digit Alphabets representing the server number, starting from 01.

    In short, a Squid Cache in Holland could be NLRTWC01.nl.company.com. To make things easier for users, I’ll also alias proxy.nl.company.com for users to recognise it easier.

  21. Graffiti Knight said:

    inix,

    Did you rename your AD domain? I’m considering doing that, from oldname.local to newname.com. Just wondered how it went if so.

  22. Forrest said:

    In the office we go with whatever. Some people use some variation of their name, others use inside jokes and there are some sets on different naming conventions such as the Simpsons. I prefer it this way until I need to access someones machine that I don’t need to get to often and I have no idea what it is named. Looking at a list of random names doesn’t help me know which one is theirs either.

    In production we have all very functional names. We have app1, app2, … db1, db2, …, etc. We don’t exactly know what is on what box but we have a good idea.

  23. Peter said:

    It used to be tougher to name systems before TCP/IP became common. For systems running DECnet, names had to be 6 characters or less. Huey, Dewey, and Louie were popular names; my suggestion of Nixon, Dean, and Liddy for three new VAXstations was overruled.

  24. John Michael said:

    I moved away from functional names because I couldn’t remember them. Then again, we only have about 30 machines and a single location, so it matters little. But I’ve gone back to my old scheme, which was short versions of Dylan song titles. 4thstreet, highway61, ojblues, thinman… The users think I’m weird.

    Forrest: if it’s a Windows domain, just change the computer description and use “net view” to get a list of machines that are online.

  25. PaulO said:

    I’m surprised that no-one has referred to rfc 1178 “Choosing a Name for Your Computer”

    http://tools.ietf.org/html/rfc1178

    I work as a sysadmin for a university with our team looking after ~300 servers – we had a brief dalliance with “functional naming” but found the resulting names were too similar (and hence confusing)and have since been moving back to themed real words (disk arrays are WWII battleships for instance)

    For Windows hosts in AD we also group function of servers by OU (you’re going to want similar gpo’s anyway)

  26. quux said:

    DNS aliases for user-facing functions can be a good idea. I’ve done that and it can help in some situations.

    If you have a server named Bobcat and it hosts file/print/web, then it can have 3 cnames:

    file IN CNAME bobcat
    print IN CNAME bobcat
    web IN CNAME bobcat

    This way, if you later move the web (or print, or file) service off to some other server, you have the luxury of building out that server, testing it, moving data, etc … then just change the appropriate CNAME.

    Having one level of abstraction in all consumer-facing names like this can be quite handy! Note that a consumer might be a run of the mill user, or might be some other service. Example: db1.yourdomain.com might be a CNAME pointing to a mySQL server whose hostname is Thunder. So then your web server would be configured to talk to db1.yourdomain.com, not Thunder.

  27. miah said:

    Are these cryptic, short acronymn ridden “utilitarian” host names really helping anyone? Why not say CharlotteFileServer01 instead of CLTFS01? This lazy programmer approach to typing doesn’t really seem to help. Is there a limit on the characters you can use or something?

  28. Anonymous said:

    As an IT manager, you really need to develop a functional naming scheme and make sure that it is closely followed. If you don’t, when you inevitably have turnover, you (and any new hires) will be standing around saying, “what the heck is ‘fatboy’, what does it do, and where can I find it.

    But for all of you recalcitrant techs and admins in the trenches…strange hostnames == job security. It’s just a pretty passive-aggressive way to go about it.

  29. Sweet Jesus said:

    I really like an interesting name for the host and then a functional CNAME with location/purpose and number. You can then group sectional or regional hosts in a subdomain.

    i.e. ares.perth.somecompany.com.au, apollo.perth.somecompany.com.au and aphrodite.sydney.somecompany.com.au with A records with somecompany.com.au being:
    cms-01 IN CNAME ares.perth
    cms-02 IN CNAME apollo.perth
    mail IN CNAME aphrodite.syndey
    etc…

    This makes it easy to change the services between services as neccessary and makes for easy load balancing and failover setups while retaining the warm fuzzy feeling of interesting hostnames.

  30. jbz said:

    I’ve used the job security model and the functional model. I like the combo model; *machines* get a functional designation as their canonical A record. CNAMES are allowed ad infinitum. One thing we did that made us friendlier with the Finance people approving our budget was to include the department code of the machine’s owner (or at least budget holder) in the name. So for approximate example:

    nyc420prsvn01p.company.com

    (NYC office, 420 dept code, PRoduction SVN server 01, Physical as opposed to VM slice)

    …is also known as modok.company.com

    (Mental Organism Designed Only for Killing, for you non-comicsheads).

    The primary purpose of the convoluted base name is to allow anyone who comes across that machine to determine precisely what it is, who owns it, and where it is. Also, if you need to find a machine with a particular function in a particular location, you have a pretty good shot of constructing at least one name that it will be known by in DNS just by applying logic.

    And I can still use ‘modok’ as the machine name.

  31. Anonymous said:

    Michael scared me for a moment when he gave that link to LOCODE and I read it as LOLCODE.

    Then again, someone probably has named an i-can-haz-file-server or two, out there…

  32. gurubert said:

    We use the names of Nobel Laureates as this list grows every year.

    Service descriptive names (like smtp, www, etc.) are added as CNAMEs to the DNS.

  33. Matt Sealey said:

    We use, if only because I say so, LOTR characters. Each server is a different one. Since you can probably find 10 different versions of each name (Sindarin, Quenya, the Black Tongue, “English”, blah) we use those for the different IP addresses on each box.

    So we have mithrandir, stormcrow and greyhaim – and aragorn, elessar, strider, telcontar and thorongil.

    I agree knocking them into peoples’ heads is difficult so we ended up calling them alpha and beta (or “old” and “new”), and assigning decent CNAMEs based on their functionality (cache, video, intra, share).

    One place I worked had herbs and spices, which I thought was pretty awesome – Cumin, Cardamom, Parsley, Chive, Thyme, Rosemary.. and in the past I have been known to use characters from Akira, Ah! My Goddess, Cardcaptor Sakura (my laptop is still called Yukito, desktop Sakura and the fileserver Kero) and Neon Genesis Evangelion

  34. Xavier Gallagher said:

    Each host should have a non-functional name. That is, it’s name. This should clearly identify the machine. And have no functional reference at all.

    The reason for this is that despite the idea the machines are all the same, they do have different personal histories and quirks. If you use functional and location based names renaming nysum52 to losyb01 disconnects the history of the device (of course, you can remember the serial numbers if you must, but this is easier).

    Each machine can run one or more services. Each service needs to have attached to it a logical service name as a DNS alias. Thus the server holding the human genome is known as humandna, and the mouse genome is accessed via mousedna. Whether these are one the same machine or not doesn’t matter. I can move one or both and simply have to update the DNS to get clients to connect to the correct source.

    If you want a location included you can add the location as a parameter to the logical service name, hyphen separated. Thus the four imap server become imap-london, imap-sydney, imap-newyork, imap-madrid. Or you can use subdomains in DNS. imap.london.mybusiness.com. Either has the advantages that they become readily scriptable, easy to read, obvious on inspection, and best of all, self documenting.

    I’ve never seen anyone connect to the wrong machine?service combination with this sort of set-up.

  35. Gunstick said:

    I am surprised noone mentions a classic asset management system. We have funny names all over the place, in several locations. Different functional and locaiton based schemes have been started and resulted in renames when machines moved or changed function. What a mess.

    So what is asset? In essence it’s a link into our finance department where everything ist stored. There we extract the database end build a simple html table listing machine name, function and location and some other useful data.

    What does this machine do? Click here!
    Where is this system? Click here!
    On what box runs the mail server? Click here!
    People of course need to know that you can use find on a webpage.

  36. ursuspacificus said:

    At home, I use Andy Griffith Show Characters. At work I use semi-abstract asset names, which include manufacturer, model, location, and a sequence number for that make/model in that location, and then use CNAMEs to relate the function and/or a “fun name” to the box, if needed.

    The benefit of using a hostname like this is that the machine itself is separated from the function. That way, if the machine is repurposed in 6 months (not all that uncommon), you can easily repoint the CNAMEs to another box and still easily distinguish the new box from the old one.

    Locations are done using the three-letter abbreviation of the nearest major airport (bos, jfk, san, et cetera).

    An example hostname would be:

    dlpe2950-dc2jfk0002

    This would be the second Dell PowerEdge 2950 purchased for our second New York IDC.

    Obviously, you can do just about anything you want, but a rules-based naming scheme like this easily avoids name-space collisions and is meaningful and scalable without being offensive to anyone or depending on any one individual to come up with names.

  37. Anonymous said:

    In the University we’re using Planets and Solar Systems. What you get is something like: moon.planet.galaxy.universe e.g. io.jupiter.sol.universe

  38. Anonymous said:

    I like Alice in Wonderland. I have a test domain that we use for simulation called wonderland and I have hosts like Alice, Red Queen, White Rabbit, etc. I have a few users that are up for the Tweedledee/Tweedledum name but no clear winners yet:)

  39. Anonymous said:

    I use the names of great thinkers/scientists/inventors for my home network, and try to make them somewhat meaningful as well. Newton was my heavy laptop, wright is my gaming machine (it flies!), farnsworth is my media server, hippocrates was my web server, darwin was a Dell Windows desktop. At work, I use alliterative medieval weaponry, such as spatha for a Solaris server, longsword for a Linux desktop, and arbalest for an AIX machine.
    I know others who use golf courses, tall mountains, and characters from Ender’s Game.

  40. cherdt said:

    I’ve used characters from Shakespeare.

    I think the problem with functional names (like “oh-app2″ and “a-fs1″) is that they aren’t memorable. I’m going to have to scratch my head and pull all the components together every time I want to connect, but I can type “tybalt” in a flash.

    I’m assuming that any given user only connects to a handful of the 100 servers, and can reasonable manage half a dozen names.

    As other have mentioned, you can have it both ways: I’ve often seen multiple aliases to the same machine, so that “devel,” “mercutio,” and “mi-web2″ all point to the same machine.

  41. Anonymous said:

    Hi! I’m sure it’s been said before, but use a utilitarian naming scheme that’s DNS CNAME based (read: Use Aliases). Actually naming your server DFW-MX-02-v440 is going to cause problems when the locate/role/type of server changes. Best just to call it “adolf”, but tell your DBAs it’s “dfw-oracle”, Developers it’s “dfw-soldev” and your security team that it’s “dfw-toiletcam405″. This works great if you have to later cut up the server with a virtualization tool of some kind (VMware, Solaris Zones, etc). It also comes in handy when you need to upgrade/test a new compiler install for “dfw-soldev” and you don’t/can’t bring down the whole multipurposed server…just stand up another server and change the DNS entry.

  42. Anonymous said:

    The us army is trying to solidify a naming structure that is the same ARMY WIDE.

    An average hostname for a client computer looks like
    DRUMNB2425A0001

    DRUM being the location name (in this case, fort drum),
    NB for notebook (or WK for workstation, EX for exchange server, PR printer, etc)
    2 for the owning brigade (2nd brigade)
    425 for the unit (4-25th battalion)
    A for the company (or B, C, H, etc)
    The last 4 are the roster #, from 0001-9999, unique to the system

    Confusing, but once you know it, you can decipher any hostname out there.

  43. PaulO said:

    The army mention reminded me that Navys use themed names (rather than functional) to deal with what is in essence the same problem as server naming. The Royal Navy was operating 800+ ships during WW2 the US even more, seemingly without confusion

    How these conventions have evolved in the US Navy is explained at; http://www.history.navy.mil/faqs/faq63-1.htm

  44. Anonymous Coward said:

    The problem with theme names is that they do not scale. Eventually, you’re either going to run out, or have so many that you can’t remember whether fatboy is the file server and littleman the mail server or vice versa. The second problem is not that bad, since by the time you reach that point, you should have an asset database that makes that info easy to access. A web interface and a csv spreadsheet for a smartphone are two good methods.

    Like most of the large sites mentioned, we use a parseable canonical name that conveys ‘enough’ info, but isn’t so long that it is unweildy.

    Three char datacenter code
    Three to five char business code (we have 7 business units, and several use multiple codes. For example, the financial business is fin, but its’ credit card business is ccrd, Corporate (payroll, etc) is corp, but its’ IT functions are in cit.)
    One char for “class of server” – production, qa, staging, development, and x as a wildcard (lab servers, pilot programs, etc).
    Four or more chars for the business to use – usually “app” “db” “web” “dmz” or an app name “smartsale”, or a combination “smartdb” Some businesses start this with a char for OS – w, l, s, h, a, etc.
    Three digits for multiple servers of the same type.
    Virtual machines end in “v” for X86-based technology (Xen, VM Ware) or (z) for Solaris Zones and Ldoms.

    No, I don’t know what “budfinapp023v” does, but I can look it up, and I can tell it’s a virtual in Budapest, owned by the Finance business. The business specific part is mostly important to the business, and unique enough that I can find the correct box.

    This scheme has worked for 6500 servers, and required one change to accomodate moving physical servers to virtual machines – adding “v” or “z”. (VM hosts are ).

    Networking has their own rules. The naming scheme is similar, with fields telling whether the name applies to the device, physical port, or virtual ip. From a sysadmn perspective, network services are named as servers, so “alpcitntp001″ is an NTP server, “alpcitgw003″ is a default gateway, etc.

  45. grow your own business said:

    amazing stuff thanx :) You should be an expert.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Easy AdSense by Unreal

Switch to our mobile site