NAD710 Lab 1

From CDOT Wiki
Revision as of 22:20, 1 September 2008 by Cheping (talk | contribs) (Completing this Lab)
Jump to: navigation, search

NAD710 - Introduction to Networks - Using Linux

Objective

Use the following commands to collect system information and network settings on a Linux Machine:

  • hostname
  • uname
  • /sbin/lspci
  • /sbin/lsmod
  • /sbin/modinfo
  • /sbin/ifconfig
  • /sbin/route
  • /sbin/arp

Background Information

A computer must have the proper network settigns in order to communicate with other computers either on a local area network or on the Internet. The procedure below could be used to collect the following network settings and system information on a Linux machine:

  • MAC Address
  • IP address
  • Network Mask
  • Broadcast address
  • Network address
  • IP address(es) of the gateway(s)
  • hostname
  • list of PCI device
  • Network device driver
  • Linux Kernel information

The following procedure can be used on matrix.senecac.on.ca and your own Fedora Core machine to collete those network settings and system information listed above.

Procedure

  • On any Linux machine with Internet connection, run the ssh client to login to matrix.senecac.on.ca using your email account and password:
 [rchan@fc9 student]$ssh raymond@matrix.senecac.on.ca
 Password: 
 Have a lot of fun...
 student@matrix:~>

System Information

  • Type the command
 raymond@matrix:~> uname -a  
  • Use the command "man uname" to display the manual page for the command "uname" and use it to decode the output of the "uname" command. You should record the output of the "uname" command for later use.
  • Type the following command to display the host name of the machine you are on:
 raymond@matrix:~> hostname
  • Type the command /sbin/lspci to display all the PCI devices detected by the Linux kernel. Record the output, especially look for the line that contains the words "Ethernet controller".
 raymond@matrix:~> /sbin/lspci
 00:00.0 Host bridge: Intel Corporation 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
 00:01.0 PCI bridge: Intel Corporation 82845 845 (Brookdale) Chipset AGP Bridge (rev 04)
 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 05)
 00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 05)
 ...
  • Each piece of periphal hardware need a program (device driver) to control it. Most of the hardware device drivers are implemented on Linux as loadable kernel modules. The command /sbin/lsmod can be used to display all currently loaded kernel modules (i.e. hardware device drivers).
 raymond@matrix:~> /sbin/lsmod
 Module
 ...                     Size  Used by
 loop                   20488  0
 dm_mod                 60184  0
 usbhid                 52192  0
 e100                   40456  0
 mii                     9600  1 e100
 i2c_i801               11660  0
 i2c_core               25216  1 i2c_i801
 ...
  • The first column on the output of the /sbin/lsmod command is the module name. You can obtain more information about each loadable kernel module withe the command /sbin/modinfo:
 raymond@matrix:~> /sbin/modinfo mii
 filename:       /lib/modules/2.6.18.8-0.5-default/kernel/drivers/net/mii.ko
 author:         Jeff Garzik <jgarzik@pobox.com>
 description:    MII hardware support library
 license:        GPL
 vermagic:       2.6.18.8-0.5-default SMP mod_unload 586 REGPARM gcc-4.1
 supported:      yes
 depends:
 srcversion:     16DCEDEE4B5629C222C352D

Network settings

  • Try the command "/sbin/modinfo" on each of the module listed and determine which one is the device driver for the network interface card. Record the location (filename) of the device driver of the network interface card. If you have to type the command for each module by hand, it may take you quite a while. If you know shell scripting, you can write a small shell script to automate the process and save a lot of typing.
  • To display basic networking settings on a Linux system, type the command "/sbin/ifconfig" and record the output for later use:
 raymond@matrix:~> /sbin/ifconfig
 eth0    Link encap:Ethernet  HWaddr 00:03:47:E9:89:B5
         inet addr:192.168.1.70  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::203:47ff:fee9:89b5/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:164170 errors:0 dropped:0 overruns:0 frame:0
         TX packets:133956 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:16560820 (15.7 Mb)  TX bytes:15356431 (14.6 Mb)
  
 lo      Link encap:Local Loopback
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:24893 errors:0 dropped:0 overruns:0 frame:0
         TX packets:24893 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:18954652 (18.0 Mb)  TX bytes:18954652 (18.0 Mb)
  • From the output of the /sbin/ifconfig command, you should be able to determine the IP address, network broadcast address and network mask for your host. In the above sample output, "eth0" is device name of the real network device, and "lo" is the logical loopback network device. There are a few other fields in the output that are import in troubleshooting networking problems. Consult the "man" page for "ifconfig" for more details.
  • To be able to communicate computers on the LANs or on the Internet, your system needs to know which network (or LAN) it is in and the IP address of at least one gateway machine to connect to other network. Type the command /sbin/route and record its output for later use:
 raymond@matrix:~> /sbin/route -n
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
 127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
 0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
  • From the output of the /sbin/route command, you should be able to tell which networks (LANs) your machine is directly connected (the 1st column) and which gateway (the 2nd column) your machine could be used to reach other networks. Consult the "man" page for "route" for more details.
  • If there is no "Gateway" for your machine, your machine can only communicate with other machines that are physically connected.
  • Any two physically (or directly) connected network machines must know each other's physical network address (i.e. MAC address) before that can start exchanging data. The MAC address exchange process could occur automatically (default) or manually (to be done by the system administrator). To display the list of MAC address known to your machine, type the command "/sbin/arp". Record the output for later use:
 raymond@matrix:~> /sbin/arp -n
 Address                  HWtype  HWaddress           Flags Mask            Iface
 192.168.1.50             ether   00:0E:0C:82:9F:9F   C                     eth0
 192.168.1.254            ether   00:0E:0C:7F:84:6F   C                     eth0
 192.168.1.30             ether   00:0E:0C:82:E5:6B   C                     eth0
 192.168.1.10             ether   00:19:D1:3D:F4:3B   C                     eth0
 ...

Questions

Based on the information collected, answer the following questions:

  1. What is the kernel version of Linux on matrix?
  2. What is the IP address and MAC address of the Linux machine on matrix?
  3. What is the network mask on matrix?
  4. What are the network addresses of the Linux machine? (there should be three networks)
  5. What is the IP address of the gateway for the Linux machine on matrix?
  6. What is the command to display all the currently loaded kernel modules?
  7. Where is the file for the kernel module called "e100"?
  8. What is the MAC address for the network device that has the IP address 192.168.1.254?
  9. How do you display all the physically network addresses known by a Linux machine?
  10. What is the MAC address of the network device on the Linux machine on matrix?

Completing this Lab

  • Post the output from each command to your blog with the proper heading.
  • Email the URL of your blog to your instructor: raymond dot chan at senecac dot on dot ca
  • Login to blackboard (my.senecacollege.ca) and answer the lab questions online by 11:00pm on the following Thursday. You have one whole week to complete each lab.