1 TCP/IP Networking Exercises

2 Practice: ping, netstat, tcpdump, traceroute, arp, route

2.1 Check your network configuration

Check it with:

$ sudo ifconfig eth0

Do you see an IP address on your network card? It should look like this:

eth0      Link encap:Ethernet  HWaddr 52:54:8e:12:66:49
          inet addr:10.0.0.xx  Bcast:10.0.0.255  Mask:255.255.255.0

This is your machine's IP address.

If you wanted to manually configure the IP address of eth0 (your computer's network card) to give it an IP address (10.0.0.xx), then you would write:

$ sudo ifconfig eth0 10.0.0.xx/24
$ sudo route add default gw 10.0.0.254

Note: Don't do this now! As we are logged in using SSH, don't do this or you may end up breaking your network connection to your machine.

2.2 netstat

Look at your routing table:

$ netstat -rn

Review the presentation if you are not sure.

Here's another way to look at your routing table:

$ ip route

2.3 ping

Let's ping the default gateway:

$ ping 10.0.0.254

(Stop it with CTRL+C)

Let's ping something outside, on the Internet. For example, nsrc.org

$ ping nsrc.org

Do you get an answer ?

If not, check:

Verify 10.0.0.254 is configured as your default gateway:

$ netstat -rn

Now, remove your default gateway:

$ sudo route delete default

Check that it's gone

$ netstat -rn

How can you be sure that the default gateway is no longer configured? Now, try to ping the local NOC machine.

$ ping 10.0.0.250

Now let's ping a machine outside our network (nsrc.org):

$ ping nsrc.org

The ip address of nsrc.org is 128.223.157.19

$ ping 128.223.157.19

What do you observe? What is the consequence of removing the default gateway?

Re-establish the default gateway:

$ sudo route add default gw 10.0.0.254

Check that the default gateway is enabled again by pinging nsrc.org:

$ ping nsrc.org

2.4 traceroute

Traceroute to nsrc.org

$ traceroute nsrc.org

Try again, this time with the -n option:

$ traceroute -n nsrc.org

Observe the difference with and without the '-n' option. Do you know what it is?

Try this again with the command "mtr":

$ mtr nsrc.org

You can stop mtr with CTRL-C.

2.5 tcpdump

Run tcpdump on your system:

$ sudo tcpdump -n -i eth0 icmp

(Note the use of the icmp keyword to limit viewing ICMP traffic)

Ask the instructor(s) or your neighbor to ping your machine, and look at your screen.

Now delete the default route on your system:

$ sudo route delete default

Repeat the ping (ask the instructor or neighbor)

Does it make a difference ?

2.6 arp table

Run the command:

$ arp -a

And

$ arp -an

Now, try and ping another host on the network (10.0.0.1 - .98)

Run arp -an again.

What do you notice ?

Now try:

$ ping -c 2 nsrc.org
$ arp -an

2.7 Reaching another network

Now, remove the default route:

$ sudo route delete default

Now, try to ping 10.10.1.1 again.

For your knowledge, 10.10.1.1 is a PC on network 10.10.1.0/24.

This network is reachable via the router 10.0.0.221.

You can solve both questions with one answer!

2.8 IPv6

Do this:

$ sudo /sbin/ifconfig eth0 inet6 add fdba:dc55:48c7::00:XX/64

... replace XX with the number of your VM ! (01, 02, ... , 23, ...)

Now, try to ping6 each other:

$ ping6 fdba:dc55:48c7::00:YY

Where YY is the IP of another VM in the class.