Registering in the US Domain (For Free)
The Internet is a vast collection of machines and networks that allows a user on one machine to connect to another machine across the nation or across the world. One way to join the Internet community is to sign up with an Internet service provider (ISP) and go through a shell account. Some of the more popular ones are America Online (AOL), Prodigy, NetCom, etc. However, every computer junky wishes to be connected directly. This article gives some tips and details on how to get connected to the Internet and how to be an addressable host. Before becoming a host you should be comfortable with basic system administration duties; otherwise, once on the Internet your machine can be vulnerable. The rewards of “full” connectivity outweigh any possible disadvantages.
The first step is to decide how to connect to the Internet. My goal was to do it as cheaply as possible, i.e., without huge monthly expenses. For this reason I opted out of ISDN, which is about 5 times faster than a fast (33.6 Kbps) modem, but the start-up costs are excessive plus they then typically cost $50 to $100 per month depending on your usage. In the near future, cable companies such as @HOME will provide cable modem connections about 200 times faster than ISDN and promise a price comparable to a present day POTS (Plain-Old Telephone Service) line plus an ISP connection. For my current setup I pay about $16 for a second phone line and $31 per month for an ISP connection. Make sure your ISP is a local call and pay the extra fee for a static IP address. If you don't have a static IP address, you might as well skip the rest of this article, since the information contained herein won't be of any help to you.
Once you have a static IP number, this address can be registered in any of the top level domains. Not too long ago you could register in any of the domains for free—that changed in 1995. The InterNIC (http://www.internic.net/) and its partner company Network Solutions, Inc. (http://www.netsol.com/) now handle the registration of second-level domains in the com, gov, edu, org and net top-level domains. Annual fees of $50 are charged for each second-level domain in the org, net and the com domains. A first-time registration cost $100 and covers a 2 year period. For a company or organization this represents an insignificant cost, but for a Linux die-hard this amounts to gross extortion and is contrary to the principles that the Internet embodies. An alternative is to register in one of the other domains—for U.S. residents the us top-level domain. Each country has its own top-level domain and may or may not charge fees, non-US residents will have to research the details for their own country of residence.
The US Domain is an official top-level domain in the Domain Name Service (DNS) of the Internet community. It is administered by the US Domain Registry at the Information Sciences Institute of the University of Southern California (ISI), under the Internet Assigned Numbers Authority (IANA). (See http://www.isi.edu/in-notes/usdnr/.) The levels under the us domain are geopolitically based. The hosts in California are in the second-level domain ca.us, the hosts in Minnesota are in mn.us, and so on. The geopolitical third-level domains are usually city names. For example, San Jose, CA translates to san-jose.ca.us. Abbreviations were allowed at one time and are supported for existing registered hosts. There are are other special third-level and fourth-level domains for schools (k12), city governments (ci), county governments (co), community colleges (cc), etc., but these usually don't apply to most personal Linux hosts.
First of all, “what is Domain Name Service?” DNS is a hierarchy of name servers. Each level of the hierarchy maintains a database of all IP addresses and host names for the next lower level. So when you send e-mail to, say, firstname.lastname@example.org, your machine will send a query to the root(.) name server to resolve who is the us domain name server. Your machine repeats its query to the us domain name server to resolve who is the ca.us name server. This process is repeated to find the san-jose.ca.us name server from the ca.us name server. The san-jose.ca.us name server then sends your machine the IP address for owen.san-jose.ca.us. Once the IP address is known then a connection can be established with owen.san-jose.ca.us to transfer an e-mail message. The IP address is by required machines and networks to route a connection through the Internet. The host domain name is just a convenience for us mere humans who have a tough time remembering a sequence of numbers such as 18.104.22.168 (that is, the Linux Journal web server).
If this process of name resolution had to be performed every time a domain name was used, the root machines would be the busiest in the world and the network would grind to a slow crawl. In most cases the IP addresses for often used machines are cached in local routing tables and most name resolutions can be satisfied at a fairly local level. To discover which machines are name-servers use the nslookup command. The nslookup command and its output are shown below.
nslookup -query=ns us Server: norad.mcdn.net Address: 22.214.171.124 Non-authoritative answer: us nameserver = VENERA.ISI.EDU us nameserver = EXCALIBUR.USC.EDU us nameserver = NS.ISI.EDU us nameserver = RS0.INTERNIC.NET us nameserver = NS.UU.NET us nameserver = ADMII.ARL.MIL Authoritative answers can be found from:
US nameserver = VENERA.ISI.EDU US nameserver = EXCALIBUR.USC.EDU US nameserver = NS.ISI.EDU US nameserver = RS0.INTERNIC.NET US nameserver = NS.UU.NET US nameserver = ADMII.ARL.MIL VENERA.ISI.EDU internet address = 126.96.36.199 VENERA.ISI.EDU internet address = 188.8.131.52
You can also look at lower level domains and their name servers. You'll find, however, that the local geopolitical domain name server corresponds to an organization that has been delegated authority over that domain. Look at http://www.isi.edu/in-notes/us-domain-delegated.txt to find out who administers the third-level domains in your area or use the http://www.isi.edu/in-notes/usdnr/rwhois.html form.
Now you know who to contact. The question now is “what?” Grab ftp://ftp.isi.edu/in-notes/rfc1480.txt (Request-For-Comment number 1480—the Internet parlance for a semi-official standard), which describes the US domain and how to register your host. The most important part is Appendix II which contains the registration form. Don't alter the form except to add your information. The appendix contains enough examples and descriptions to make it fairly straight forward to answer the various questions. Everyone needs to answer questions 1 through 7. Question 2 requests your fully qualified domain name. The cool thing to do is use your last name followed by the geopolitical domain, for example, owen.san-jose.ca.us. First determine whether the name you've chosen is not being used by someone else by typing the command:
nslookup -query=any owen.san-jose.ca.us Server: norad.mcdn.net Address: 184.108.40.206 *** norad.mcdn.net can't find owen.san-jose.ca.us: Non-existent host/domain
List yourself in questions 6 and 7 as the administrative and technical contact. (Do not list your ISP technical support—they do not administer your machine.) For an individual host answer question 10, where you give the IP address assigned to you by your ISP. Send off the form to the delegated authority in your area and sit back and wait. It takes up to 8 working days before your machine gets registered and another day for the routing tables to get updated. (Some delegated authorities may charge a nominal fee of about $10, so it may not be free for everyone.) If your host doesn't get added after a few days give the delegated authority a phone call. The delegated authorities are usually adding SOA (start-of-authority) records, that is, delegating fourth-level domains. You may need to remind them that all you need is an A (or address) record to be added. The A record is the DNS way of specifying the host domain name for a single IP address. They also will add a HINFO (host information) record which lists the hardware and operating system (Linux in this case) of your host.
Once your IP address has been registered then the output of nslookup command will look like this:
nslookup -query=any owen.san-jose.ca.us Server: norad.mcdn.net Address: 220.127.116.11 Non-authoritative answer: owen.san-jose.ca.us internet address = 18.104.22.168 Authoritative answers can be found from: san-jose.CA.US nameserver = ns.scruz.net san-jose.CA.US nameserver = ns2.scruz.net san-jose.CA.US nameserver = morris.ucsc.edu ns.scruz.net internet address = 22.214.171.124 ns2.scruz.net internet address = 126.96.36.199 morris.ucsc.edu internet address = 188.8.131.52 morris.ucsc.edu internet address = 184.108.40.206
Your fully qualified domain name can now be resolved to an IP address. This is only half of the story, what about the reverse process? More secure sites may refuse connections with your machine, if they can't resolve the domain name from the IP address. Also, several utilities such as sendmail will attempt to resolve IP addresses to host names.
The fully qualified domain name represents a “logical” network. The best example of this is a multi-national corporate network, say ibm.com. Without getting into too much detail about the various classes of IP addresses, the IBM hosts may be in different address classes even though all the IBM hosts are in the ibm.com domain.
Your ISP is given a block of IP addresses that it can assign for either the short term (dynamic IP addresses) or for the long term (static IP addresses). All these IP addresses are similar except for the last one or two octets in the address. These IP addresses are based on the actual physical network. Hence, to do the reverse look-up the information needs to be served by the physical network—in other words, your ISP. The mechanism is very similar to the domain name resolution as described above. What you need to do is send e-mail to your ISP. State that you need an IN-ADDR PTR record added to their DNS database. This associates your IP address with a fully qualified domain name, the same one you registered with the US domain delegated authority. In fact, your ISP is probably connected directly with the delegated authority, which serves as your ISP's ISP. Once this record is added, you'll be able to query the special in-addr.arpa domain to find your host name associated with your IP address. To do this use nslookup again, which performs a process similar to the one described above for name resolution. For example, suppose your IP address is 220.127.116.11 . Reverse the order of the octets and slap on the .in-addr.arpa domain name and the results will look something like this:
nslookup -q=any 18.104.22.168.in-addr.arpa Server: norad.mcdn.net Address: 22.214.171.124 126.96.36.199.in-addr.arpa name = owen.sj.ca.us 179.205.in-addr.arpa nameserver = kudonet.com kudonet.com internet address = 188.8.131.52
In my case, I first registered my machine with the name owen.sj.ca.us, and this is the name that is returned even though I have three other names registered with this same IP address.
The steps outlined here will lead you through the networking maze of authorities that comprise the Internet and to successful registration of your Linux box as a full member of this prestigious community. In summary:
Get a static IP address from your ISP.
Find the delegated authority for your area.
Send them a filled out domain registration form.
Contact your ISP to add an IN-ADDR PTR record to its name server database. Be the envy of all your friends as you give out your e-mail address that is your own machine name—not some shell account. It has also helped me professionally when I decided to change jobs. My new employers were quite impressed with my e-mail address email@example.com (URL: mailto:firstname.lastname@example.org), and it's easy to remember too.