Archive for the ‘Module 1’ Category

Traceroute

Tuesday, June 17th, 2008

Traceroute is a new tool for me. My researches tell me it is used to trace the path of packets across an IP network, and has commonly been used in network troubleshooting. Since I’ve only ever set up my home LAN (with one router and a maximum of four hosts), I’ve not really had call to use it to date.

I like the way traceroute works.: it’s very logical. The program sends out three packets initially with a time-to-live (TTL) value of one (meaning that the packets will make only one “hop” to the next router). The next three packets sent out have a TTL value of two, and so on. When routers receive a packet, they decrement the TTL value by one and forward it to the next router, until the TTL value reaches one. At this point, the router discards the packet and sends an Internet Control Message Protocol (ICMP) time exceeded packet back to the sender. Traceroute uses these ICMP time exceeded messages to trace the path of packets through the network. Or, from the Linux traceroute man page:

traceroute tracks the route packets take across an IP network on their way to a given host. It utilizes the IP protocol’s time to live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to the host.

Pretty cool.

So, to the task. I visited the Lawrence Berkely National Laboratory’s Network Research Group website, where one can obtain a number of network tools, including traceroute, by anonymous FTP. Since traceroute is already installed in my Debian Etch distro, all I did was read through the web page and note the URL.

I then attempted to traceroute from ee.lbl.gov to curtin.edu.au, using the loose source routing option I discovered by running traceroute –help. My results are depicted in the following image:

my traceroute attempt

‘Hhhmmm… that doesn’t look quite right!’, thought I. I looked for information on traceroute output and found:

Traceroute Codes

In the situation, it is likely to be either a router on the path not sending back the ICMP “time exceeded” messages OR a router or firewall in the path blocking the ICMP “time exceeded” messages. An investigation into loose source routing tells me:

In the good old days, you could use source routing with traceroute to see the reverse trace back to you from a host. The idea is to specify what is called a loose source route, which specifies a system your packets should pass through before proceeding on to their destination.

The ability to use loose source routing to see the reverse route could be pretty handy. Unfortunately, source routing has a great potential for abuse, and therefore most network administrators block all source-routed packets at their border routers. So, in practice, loose source routes aren’t going to work.

These days, the only hope you likely have of running a reverse traceroute is if the system you want to trace from has a traceroute facility on their web site. Many systems, and Usenet providers in particular, have a web page where you can run a traceroute from their system back to yours. In combination with your trace to their system, this can give you the other half of the picture. I have a list of Usenet provider traceroute pages here.

So, my results are not unexpected, since most administrators now block source-routing packets at their borders. On to an online tool, as suggested. I headed over to Pingdom Tools, where I got the following results:

Pingdom Tools Traceroute to curtin.edu.au

Traceroute Results

I then ran a traceroute from my own machine to curtin.edu.au, with the following results:

Trace from my computer to curtin.edu.au

The IP number for curtin.edu.au is 134.7.179.53.

And just for fun, I ran a traceroute from my machine to another host on my LAN:

My local traceroute

I did a little more playing around, checking out tcptraceroute (which sends out TCP SYN packets instead of UDP or ICMP ECHO packets, bypassing the most common firewall filters), but with no greatly different results.

I found this task rather interesting, as I was forced to undertake some investigation in order to complete it and fully understand how the tool operates, including it’s limitations. As with the other tools, the security needs and precautions necessary in the current environment have rendered traceroute less effective (as a network troubleshooting tool, in this case) than in days past.

Resources:

Wikipedia: Traceroute
LBNL’s Network Research Group
Linux Home Networking, Chapter 9, Simple Network Troubleshooting
Using Traceroute
Pingdom Tools
tcptraceroute

File Transfer Protocol

Sunday, June 15th, 2008

We Internet citizens are quite indebted to the humble and ancient FIle Transfer Protocol (FTP). Though of less renown than it’s giant cousin HTTP (HyperText Transfer Protocol), it is almost as instrumental in delivering the Internet to us fotunate mortals.

As surprising as it might sound, FTP is used for transferring files between computer systems. Very commonly, FTP is used for uploading website files to production servers, and yes, this one included. So you see, FTP is our friend. Even if you don’t have a website yourself, you’ve probably used FTP: many websites provide file downloads via FTP and this is actually common enough that modern web browsers include an FTP client (so you may not have even noticed that FTP was being used to get that file onto your desktop).

It all seems to be a piece of cake, this uploading and downloading of files. But in the early days of FTP, it was big news. FTP was developed as an extension to Telnet in the beginning of computer networking, prior to TCP and IP implementation. If you are interested in the history of FTP, have a read of Vlad’s blog for a quite readable perspective.

Naturally, human beings, in all their creativity, began to use FTP for a variety of purposes, including checking email and accessing print servers. File sharing opened up many possiblities in the networked world, and collaboration on various projects began in earnest. And so, FTP holds a hallowed place in the Internet History Hall of Fame and is dear to the heart of many a geek.

In the 80’s, the FTP model was pretty much finalised, looking like this:

FTP model, image courtesy of http://portal.itauth.com/2008/02/22/brief-history-ftp-protocol-wouldnt-die

FTP is now so commonly used, it is hard to move on to other methods. Despite it being relatively insecure (since data is sent unencrypted), it is still the dominant method used for file transfer on the Internet.

To the task at hand:

My first use of FTP was about 7 or so years ago when we were asked to access an FTP server at Sydney Uni for our computer science work. I naturally thought it was pretty cool, and was surprised when my brother had to carry a USB stick to transfer files to his home computer from school. I’m not so sure a teenager carrying a USB stick is by any means safer or more reliable than FTP!

I do use FTP at least weekly in my work or in playing around with websites. Generally, I use the command line client, ftp, that is included with probably all Linux distributions, and for bigger jobs, I’d use the GUI app gFTP. I completed this task with the standard command line client.

In the interests of learning, I decided to find a command line FTP client for Linux that would enable me to get and put the contents of directories. After a little research, I decided to try NcFTP, and I’m very pleased with it. It operates with commands that are very similar to Linux shell commands, which makes life exceedingly easy as one can transfer knowledge of the one to the other. It has numerous advantages over the standard ftp client, including the ability to list files in the current local directory, ability to get and put directories and their contents and the ability to “bookmark” remote directories, usernames and passwords. Very nice!

And, in answer to the question:

Capitalization

If there are any other Linux users out there, I’d love to hear your thoughts on good ftp clients. Leave me a comment below.

Telnet Reflections

Friday, June 6th, 2008

telnet connection

In the new Web 2.0 world, one does not often run into telnet applications. Yet Telnet (TELecommunication NETwork) forms a rich part of Internet history, being an early means of reliable remote login communication between computers on dial-up connections, and is thus of interest to students of the Internet.

The Telnet protocol was standardised in RFC 97 (Request For Comment 97) in 1972, and operated over NCP (Network Control Protocol), a precursor to TCP/IP which is the current standard for Internet communications. It was designed to facilitate a “connection between two hosts, where the remote host acts as if the user were sitting directly at that terminal”.

Telnet has thus been an important remote login application. People were able to use it to login to their work or university computers from a remote location to execute commands and perform tasks (such as checking email) as if they were sitting directly in front of the terminal. This was great when things weren’t so complicated - users of the protocol were usually members of the academia or in private government organisations, and computers were certainly not so colourful as they are now.

But how things have changed: security is now a huge issue for everyone (but especially governments - I certainly can’t imagine anyone Telnet-ing in to the Defence Restricted Network (DRN) these days!); networks have improved in capacity, size and efficiency; and naturally computers themselves are far richer in the experience they offer users, with a variety of GUI (Graphical User Interface) desktops, window management systems and applications. Telnet was ideal in the early days, but it has largely been replaced by the more secure SSH and by GUI remote desktop login systems such as Citrix.

Now, I’m not a complete Telnet newbie: I’ve used it to test mail server installations, logging in to my server machine on the POP3, SMTP, IMAP or IMAPS ports to check that connections were working as they should. But it is certainly true that this is not an everyday experience. I’m not uncomfortable with the shell-based interface, though, as I am a seasoned Linux user and am happy at the command line.

The set Task A took me a few minutes: here is a brief record:

1. Logged in and printing…

Telnet Library Session

2. The resulting email:

Bennahum search results

It’s quite wonderful to think of how visionary the early Internet pioneers actually were, and what necessities drove their inventions. I know that when I discover how to use a new technology I get a thrill up my spine: these guys must have really been excited during the ARPANet days.

For some good reading on Telnet and where it came from, I recommend the following sites:

Task B was interesting, but I must say, only mildly so. I’m a fan of Ascii Art, having loved AA-project, and although blinkinlights was really great, AA-project’s BB demo leaves it in it’s tracks. But back to the Task…

Blinkinlights: Star Wars

I often think of computers and computer systems as being a wonderful framework for creativity. Consider: they allow us to translate our thoughts - with only minimal physical input - into all manner of creative outputs. It’s as though the computer is an access portal to a man-made cosmos (or microcosm), that we, being political animals and intent on sharing our humanity by whichever mode is best suited to our individual skill, proceed to populate with expressions of our human condition.

It comes as no surprise to me that someone would take advantage of any new opportunity for expression that presents itself with the evolution of communication technologies. It seems to me that this type of endeavour proceeds from a combination of the human desire for conquest and the creative or expressive impulse described above. New technologies usher in new forms of expression, and with the vast diversity of talents within the human race, this likely means that a new section of mankind will have found a voice and a means by which they can excel in expression.

Five Tips for New Bloggers

Thursday, June 5th, 2008

Blogging is a unique art: you are essentially publishing your thoughts to the world. A great (and almost unprecedented) opportunity, yes, but as profound and interesting as you may be, you actually need to engage your reader in order for your blog to be widely read.

Take your readers along for the ride

When I started blogging, I wasn’t the slightest bit interested in the outside world: I kept a blog because it was a convenient means of recording  any random thoughts I had. But the blogosphere is about far more than random, private jottings: it is an interconnected community, a social network (in a fairly natural sense).

To be a true part of the blogosphere, you need to provide value in your writing. Here are some tips to help you find the path to creating an interesting and engaging blog.

  1. Be clear about your purpose in writing.
    You really should know why you are keeping a blog and what you wish your readers to get out of it. This will go a long way to helping you provide it. For example, if you are writing a business blog, you’ll certainly want to get your readers interested in your business, but you still need to provide something of value in order to entice readers to visit your blog in the first place. I learnt a lot about this type of writing from Jonathan Cohen, who works with me at CybaSumo.com.
    I recommend that you be very clear about the niche in which you are writing: this will help readers to find your message amongst the millions of blogs out there (search engines love unique, niche content). Don’t ever forget: your blog is for your audience!


  2. Read other blogs in your niche - but don’t just read!
    This is the blogosphere, remember! So contribute to it by making relevant and useful comments on other blogs in your niche or in related niches. People who appreciate your contributions are quite likely to visit your blog, too, and will perhaps make their own comments on your site. Of course, it’s good to know what others are writing and reading about: this will help you to stay relevant to your audience.
    Another good idea is to include good blogs in your blogroll: this helps your readers connect (anythign that helps your readers is good), but also helps you to develop relationships.


  3. Make your posts interesting. Hey, remember, this is all about the audience, right? So give them stuff they’d like to read, then invite interaction by encouraging your visitors to comment on what you have had to say.
    Another great tip is to include some eye candy with your post: an image or two goes a long way towards attracting your reader and setting the tone of your post. So where do you get images from? Try Stock.XCHNG or Fotogenika.
    Another way to provide value in your posts is to link to good external resources.


  4. Get your blog out there. Promote yourself by:
  5. Enjoy yourself.   Nothing makes a blog worth reading more than an author who knows their stuff and enjoys writing about it.

To read a little more about blogging, I suggest the following:

This barely touches the tip of the iceberg: what tips do you have? Feel free to leave me a comment with your ideas.