NAD710 Lab 1
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 should use 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:
- What is the kernel version of Linux on matrix?
- What is the IP address and MAC address of the Linux machine on matrix?
- What is the network mask on matrix?
- What are the network addresses of the Linux machine? (there should be three networks)
- What is the IP address of the gateway for the Linux machine on matrix?
- What is the command to display all the currently loaded kernel modules?
- Where is the file for the kernel module called "e100"?
- What is the MAC address for the network device that has the IP address 192.168.1.254?
- How do you display all the physically network addresses known by a Linux machine?
- What is the MAC address of the network device on the default gateway for the Linux machine on matrix?
Completing this Lab
- Post your answers for this lab to NAD710 Lab 1 Answers
- You will be graded according to your contribution. If you have nothing to add to the answer page, please make some comments of the lab and the answers and email them to your professor.