Skip to content

interface configuration

(Written by Paul Cobbaut, https://github.com/paulcobbaut/, with contributions by: Alex M. Schapelle, https://github.com/zero-pytagoras/)

The contents of this entire chapter should be considerd to be obsolete. The commands and services that are discussed here no are no longer present in modern Linux distributions. The information is kept here for historical purposes only.

This chapter explains how to configure network interface cards to work with tcp/ip.

to gui or not to gui

Recent Linux distributions often include a graphical application to configure the network. Some people complain that these applications mess networking configurations up when used simultaneously with command line configurations. Notably Network Manager (often replaced by wicd) and yast are known to not care about configuration changes via the command line.

Since the goal of this course is server administration, we will assume our Linux servers are always administered through the command line.

This chapter only focuses on using the command line for network interface configuration!

Unfortunately there is no single combination of Linux commands and /etc files that works on all Linux distributions. We discuss networking on two (large but distinct) Linux distribution families.

We start with Debian (this should also work on Ubuntu and Mint), then continue with RHEL (which is identical to CentOS and Fedora).

Debian nic configuration

/etc/network/interfaces

The /etc/network/interfaces file is a core network interface card configuration file on debian.

dhcp client

The screenshot below shows that our computer is configured for dhcp on eth0 (the first network interface card or nic).

student@linux:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Configuring network cards for dhcp is good practice for clients, but servers usually require a fixed ip address.

fixed ip

The screenshot below shows /etc/network/interfaces configured with a fixed ip address.

root@linux~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto  eth0
iface eth0 inet static
address   10.42.189.198
broadcast 10.42.189.207
netmask   255.255.255.240
gateway   10.42.189.193

The screenshot above also shows that you can provide more configuration than just the ip address. See interfaces(5) for help on setting a gateway, netmask or any of the other options.

/sbin/ifdown

It is adviced (but not mandatory) to down an interface before changing its configuration. This can be done with the ifdown command.

The command will not give any output when downing an interface with a fixed ip address. However ifconfig will no longer show the interface.

root@ubu1104srv:~# ifdown eth0
root@ubu1104srv:~# ifconfig
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:106 errors:0 dropped:0 overruns:0 frame:0
     TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:11162 (11.1 KB)  TX bytes:11162 (11.1 KB)

An interface that is down cannot be used to connect to the network.

/sbin/ifup

Below a screenshot of ifup bringing the eth0 ethernet interface up using dhcp. (Note that this is a Ubuntu 10.10 screenshot, Ubuntu 11.04 omits ifup output by default.)

root@linux:/etc/network# ifup eth0
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:cd:7f:fc
Sending on   LPF/eth0/08:00:27:cd:7f:fc
Sending on   Socket/fallback
DHCPREQUEST of 192.168.1.34 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.33.100
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.33.77 from 192.168.33.100
DHCPREQUEST of 192.168.33.77 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.33.77 from 192.168.33.100
bound to 192.168.33.77 -- renewal in 95 seconds.
ssh stop/waiting
ssh start/running, process 1301
root@linux:/etc/network#

The details of dhcp are covered in a separate chapter in the Linux Servers course.

RHEL nic configuration

/etc/sysconfig/network

The /etc/sysconfig/network file is a global (across all network cards) configuration file. It allows us to define whether we want networking (NETWORKING=yes|no), what the hostname should be (HOSTNAME=) and which gateway to use (GATEWAY=).

[root@linux ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rhel610
GATEWAY=192.168.1.1

There are a dozen more options settable in this file, details can be found in /usr/share/doc/initscripts-*/sysconfig.txt.

Note that this file contains no settings at all in a default RHEL7 install (with networking enabled).

[root@linux ~]# cat /etc/sysconfig/network
# Created by anaconda

/etc/sysconfig/network-scripts/ifcfg-

Each network card can be configured individually using the /etc/sysconfig/network-scripts/ifcfg-* files. When you have only one network card, then this will probably be /etc/sysconfig/network-scripts/ifcfg-eth0.

dhcp client

Below a screenshot of /etc/sysconfig/network-scripts/ifcfg-eth0 configured for dhcp (BOOTPROTO=\"dhcp\"). Note also the NM_CONTROLLED paramater to disable control of this nic by Network Manager. This parameter is not explained (not even mentioned) in /usr/share/doc/initscripts-*/sysconfig.txt, but many others are.

[root@linux ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:DD:0D:5C"
NM_CONTROLLED="no"
BOOTPROTO="dhcp"
ONBOOT="yes"

The BOOTPROTO variable can be set to either dhcp or bootp, anything else will be considered static meaning there should be no protocol used at boot time to set the interface values.

RHEL7 adds ipv6 variables to this file.

[root@linux network-scripts]# cat ifcfg-enp0s3
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="9fa6a83a-2f8e-4ecc-962c-5f614605f4ee"
DEVICE="enp0s3"
ONBOOT="yes"
[root@linux network-scripts]#

fixed ip

Below a screenshot of a fixed ip configuration in /etc/sysconfig/network-scripts/ifcfg-eth0.

[root@linux ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:DD:0D:5C"
NM_CONTROLLED="no"
BOOTPROTO="none"
IPADDR="192.168.1.99"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
ONBOOT="yes"

The HWADDR can be used to make sure that each network card gets the correct name when multiple network cards are present in the computer. It can not be used to assign a mac address to a network card. For this, you need to specify the MACADDR variable. Do not use HWADDR and MACADDR in the same ifcfg-ethx file.

The BROADCAST= and NETWORK= parameters from previous RHEL/Fedora versions are obsoleted.

nmcli

On RHEL7 you should run nmcli connection reload if you changed configuration files in /etc/sysconfig/ to enable your changes.

The nmcli tool has many options to configure networking on the command line in RHEL7/CentOS8

man nmcli

nmtui

Another recommendation for RHEL7/CentOS8 is to use nmtui. This tool will use a \'windowed\' interface in command line to manage network interfaces.

nmtui

/sbin/ifup and /sbin/ifdown

The ifup and ifdown commands will set an interface up or down, using the configuration discussed above. This is identical to their behaviour in Debian and Ubuntu.

[root@linux ~]# ifdown eth0 && ifup eth0
[root@linux ~]# ifconfig eth0
eth0 Link encap:Ethernet  HWaddr 08:00:27:DD:0D:5C  
     inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
     inet6 addr: fe80::a00:27ff:fedd:d5c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:2452 errors:0 dropped:0 overruns:0 frame:0
     TX packets:1881 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:257036 (251.0 KiB)  TX bytes:184767 (180.4 KiB)

ifconfig

The use of /sbin/ifconfig without any arguments will present you with a list of all active network interface cards, including wireless and the loopback interface. In the screenshot below eth0 has no ip address.

root@ubuntu1604:~# ifconfig 
eth0 Link encap:Ethernet  HWaddr 00:26:bb:5d:2e:52  
     UP BROADCAST MULTICAST  MTU:1500  Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
     Interrupt:43 Base address:0xe000

eth1 Link encap:Ethernet  HWaddr 00:26:bb:12:7a:5e  
     inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
     inet6 addr: fe80::226:bbff:fe12:7a5e/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:11141791 errors:202 dropped:0 overruns:0 frame:11580126
     TX packets:6473056 errors:3860 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:3476531617 (3.4 GB)  TX bytes:2114919475 (2.1 GB)
     Interrupt:23

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:2879 errors:0 dropped:0 overruns:0 frame:0
     TX packets:2879 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:486510 (486.5 KB)  TX bytes:486510 (486.5 KB)

You can also use ifconfig to obtain information about just one network card.

[root@linux ~]# ifconfig eth0
eth0 Link encap:Ethernet  HWaddr 08:00:27:DD:0D:5C  
     inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
     inet6 addr: fe80::a00:27ff:fedd:d5c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:2969 errors:0 dropped:0 overruns:0 frame:0
     TX packets:1918 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:335942 (328.0 KiB)  TX bytes:190157 (185.7 KiB)

When /sbin is not in the $PATH of a normal user you will have to type the full path, as seen here on Debian.

student@linux:~$ /sbin/ifconfig eth3
eth3 Link encap:Ethernet  HWaddr 08:00:27:ab:67:30  
     inet addr:192.168.1.29  Bcast:192.168.1.255  Mask:255.255.255.0
     inet6 addr: fe80::a00:27ff:feab:6730/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:27155 errors:0 dropped:0 overruns:0 frame:0
     TX packets:30527 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:13095386 (12.4 MiB)  TX bytes:25767221 (24.5 MiB)

up and down

You can also use ifconfig to bring an interface up or down. The difference with ifup is that ifconfig eth0 up will re-activate the nic keeping its existing (current) configuration, whereas ifup will read the correct file that contains a (possibly new) configuration and use this config file to bring the interface up.

[root@linux ~]# ifconfig eth0 down
[root@linux ~]# ifconfig eth0 up
[root@linux ~]# ifconfig eth0
eth0 Link encap:Ethernet  HWaddr 08:00:27:DD:0D:5C
     inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
     inet6 addr: fe80::a00:27ff:fedd:d5c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:2995 errors:0 dropped:0 overruns:0 frame:0
     TX packets:1927 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:339030 (331.0 KiB)  TX bytes:191583 (187.0 KiB)

setting ip address

You can temporary set an ip address with ifconfig. This ip address is only valid until the next ifup/ifdown cycle or until the next reboot.

[root@linux ~]# ifconfig eth0 | grep 192
     inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
[root@linux ~]# ifconfig eth0 192.168.33.42 netmask 255.255.0.0
[root@linux ~]# ifconfig eth0 | grep 192
     inet addr:192.168.33.42  Bcast:192.168.255.255  Mask:255.255.0.0
[root@linux ~]# ifdown eth0 && ifup eth0
[root@linux ~]# ifconfig eth0 | grep 192
     inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0

setting mac address

You can also use ifconfig to set another mac address than the one hard coded in the network card. This screenshot shows you how.

[root@linux ~]# ifconfig eth0 | grep HWaddr
eth0 Link encap:Ethernet  HWaddr 08:00:27:DD:0D:5C  
[root@linux ~]# ifconfig eth0 hw ether 00:42:42:42:42:42
[root@linux ~]# ifconfig eth0 | grep HWaddr
eth0 Link encap:Ethernet  HWaddr 00:42:42:42:42:42

ip

The ifconfig tool is deprecated on some systems. Use the ip tool instead.

To see ip addresses on RHEL7 for example, use this command:

[root@linux ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:89:22:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.135/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 6173sec preferred_lft 6173sec
    inet6 fe80::a00:27ff:fe89:2233/64 scope link
       valid_lft forever preferred_lft forever
[root@linux ~]#

dhclient

Home and client Linux desktops often have /sbin/dhclient running. This is a daemon that enables a network interface to lease an ip configuration from a dhcp server. When your adapter is configured for dhcp or bootp, then /sbin/ifup will start the dhclient daemon.

When a lease is renewed, dhclient will override your ifconfig set ip address!

hostname

Every host receives a hostname, often placed in a DNS name space forming the fqdn or Fully Qualified Domain Name.

This screenshot shows the hostname command and the configuration of the hostname on Red Hat/Fedora.

[root@linux ~]# grep HOSTNAME /etc/sysconfig/network
HOSTNAME=rhel610
[root@linux ~]# hostname
rhel6

Starting with RHEL7/CentOS8 this file is empty. The hostname is configured in the standard /etc/hostname file.

[root@linux ~]# cat /etc/hostname
rhel76.linux-training.be
[root@linux ~]#

Ubuntu/Debian uses the /etc/hostname file to configure the hostname.

student@linux:~$ cat /etc/hostname
server42
student@linux:~$ hostname
server42

On all Linux distributions you can change the hostname using the hostname $newname command. This is not a permanent change.

[root@linux ~]# hostname server42
[root@linux ~]# hostname
server42

On any Linux you can use sysctl to display and set the hostname.

[root@linux ~]# sysctl kernel.hostname
kernel.hostname = server42
[root@linux ~]# sysctl kernel.hostname=rhel6
kernel.hostname = rhel6
[root@linux ~]# sysctl kernel.hostname
kernel.hostname = rhel610
[root@linux ~]# hostname
rhel610

arp

The ip to mac resolution is handled by the layer two broadcast protocol arp. The arp table can be displayed with the arp tool. The screenshot below shows the list of computers that this computer recently communicated with.

root@linux:~# arp -a
? (192.168.1.191) at 00:0C:29:3B:15:80 [ether] on eth1
agapi (192.168.1.73) at 00:03:BA:09:7F:D2 [ether] on eth1
anya (192.168.1.1) at 00:12:01:E2:87:FB [ether] on eth1
faith (192.168.1.41) at 00:0E:7F:41:0D:EB [ether] on eth1
kiss (192.168.1.49) at 00:D0:E0:91:79:95 [ether] on eth1
laika (192.168.1.40) at 00:90:F5:4E:AE:17 [ether] on eth1
pasha (192.168.1.71) at 00:03:BA:02:C3:82 [ether] on eth1
shaka (192.168.1.72) at 00:03:BA:09:7C:F9 [ether] on eth1
root@linux:~#

Anya is a Cisco Firewall, faith is a laser printer, kiss is a Kiss DP600, laika is a laptop and Agapi, Shaka and Pasha are SPARC servers. The question mark is a Red Hat Enterprise Linux server running on a virtual machine.

You can use arp -d to remove an entry from the arp table.

[root@linux ~]# arp
Address             HWtype  HWaddress           Flags Mask       Iface
ubu1010             ether   00:26:bb:12:7a:5e   C                eth0
anya                ether   00:02:cf:aa:68:f0   C                eth0
[root@linux ~]# arp -d anya
[root@linux ~]# arp
Address             HWtype  HWaddress           Flags Mask       Iface
ubuntu1604             ether   00:26:bb:12:7a:5e   C                eth0
anya                        (incomplete)                         eth0
[root@linux ~]# ping anya
PING anya (192.168.1.1) 56(84) bytes of data.
64 bytes from anya (192.168.1.1): icmp_seq=1 ttl=254 time=10.2 ms
...
[root@linux ~]# arp
Address             HWtype  HWaddress           Flags Mask       Iface
ubuntu1604          ether   00:26:bb:12:7a:5e   C                eth0
anya                ether   00:02:cf:aa:68:f0   C                eth0

route

You can see the computer\'s local routing table with the /sbin/route command (and also with netstat -r ).

root@linux ~]# netstat -r
Kernel IP routing table
Destination     Gateway   Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *         255.255.255.0   U         0 0          0 eth0
[root@linux ~]# route
Kernel IP routing table
Destination     Gateway   Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *         255.255.255.0   U     0      0        0 eth0
[root@linux ~]#

It appears this computer does not have a gateway configured, so we use route add default gw to add a default gateway on the fly.

[root@linux ~]# route add default gw 192.168.1.1
[root@linux ~]# route
Kernel IP routing table
Destination     Gateway      Genmask        Flags Metric Ref  Use Iface
192.168.1.0     *            255.255.255.0  U     0      0      0 eth0
default         192.168.1.1  0.0.0.0        UG    0      0      0 eth0
[root@linux ~]#

Unless you configure the gateway in one of the /etc/ file from the start of this chapter, your computer will forget this gateway after a reboot.

ping

If you can ping to another host, then tcp/ip is configured.

[root@linux ~]# ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5: icmp_seq=0 ttl=64 time=1004 ms
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=1.19 ms
64 bytes from 192.168.1.5: icmp_seq=2 ttl=64 time=0.494 ms
64 bytes from 192.168.1.5: icmp_seq=3 ttl=64 time=0.419 ms

--- 192.168.1.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 0.419/251.574/1004.186/434.520 ms, pipe 2
[root@linux ~]#

optional: ethtool

To display or change network card settings, use ethtool. The results depend on the capabilities of your network card. The example shows a network that auto-negotiates it\'s bandwidth.

root@linux:~# ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000033 (51)
    Link detected: yes

This example shows how to use ethtool to switch the bandwidth from 1000Mbit to 100Mbit and back. Note that some time passes before the nic is back to 1000Mbit.

root@linux:~# ethtool eth0 | grep Speed
    Speed: 1000Mb/s
root@linux:~# ethtool -s eth0 speed 100
root@linux:~# ethtool eth0 | grep Speed
    Speed: 100Mb/s
root@linux:~# ethtool -s eth0 speed 1000
root@linux:~# ethtool eth0 | grep Speed
    Speed: 1000Mb/s

practice: interface configuration

1. Verify whether dhclient is running.

2. Display your current ip address(es).

3. Display the configuration file where this ip address is defined.

4. Follow the nic configuration in the book to change your ip address from dhcp client to fixed. Keep the same ip address to avoid conflicts!

5. Did you also configure the correct gateway in the previous question ? If not, then do this now.

6. Verify that you have a gateway.

7. Verify that you can connect to the gateway, that it is alive.

8. Change the last two digits of your mac address.

9. Which ports are used by http, pop3, ssh, telnet, nntp and ftp ?

10. Explain why e-mail and websites are sent over tcp and not udp.

11. Display the hostname of your computer.

12. Which ip-addresses did your computer recently have contact with ?

solution: interface configuration

1. Verify whether dhclient is running.

student@linux:~$ ps fax | grep dhclient

2. Display your current ip address(es).

student@linux:~$ /sbin/ifconfig | grep 'inet '
      inet addr:192.168.1.31  Bcast:192.168.1.255  Mask:255.255.255.0
      inet addr:127.0.0.1  Mask:255.0.0.0

3. Display the configuration file where this ip address is defined.

Ubuntu/Debian: cat /etc/network/interfaces
Redhat/Fedora: cat /etc/sysconfig/network-scripts/ifcfg-eth*

4. Follow the nic configuration in the book to change your ip address from dhcp client to fixed. Keep the same ip address to avoid conflicts!

Ubuntu/Debian:
ifdown eth0
vi /etc/network/interfaces
ifup eth0

Redhat/Fedora:
ifdown eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifup eth0

5. Did you also configure the correct gateway in the previous question ? If not, then do this now.

6. Verify that you have a gateway.

student@linux:~$ /sbin/route
Kernel IP routing table
Destination   Gateway       Genmask        Flags Metric Ref  Use Iface
192.168.1.0   *             255.255.255.0  U     0      0      0 eth0
default       192.168.1.1   0.0.0.0        UG    0      0      0 eth0

7. Verify that you can connect to the gateway, that it is alive.

student@linux:~$ ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=254 time=2.28 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=254 time=2.94 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=254 time=2.34 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 2.283/2.524/2.941/0.296 ms

8. Change the last two digits of your mac address.

[root@linux ~]# ifconfig eth0 hw ether 08:00:27:ab:67:XX

9. Which ports are used by http, pop3, ssh, telnet, nntp and ftp ?

root@linux ~# grep ^'http ' /etc/services 
http       80/tcp          www www-http    # WorldWideWeb HTTP
http       80/udp          www www-http    # HyperText Transfer Protocol
root@linux ~# grep ^'smtp ' /etc/services 
smtp       25/tcp          mail
smtp       25/udp          mail
root@linux ~# grep ^'ssh ' /etc/services 
ssh        22/tcp                     # The Secure Shell (SSH) Protocol
ssh        22/udp                     # The Secure Shell (SSH) Protocol
root@linux ~# grep ^'telnet ' /etc/services 
telnet     23/tcp
telnet     23/udp
root@linux ~# grep ^'nntp ' /etc/services 
nntp       119/tcp         readnews untp   # USENET News Transfer Protocol
nntp       119/udp         readnews untp   # USENET News Transfer Protocol
root@linux ~# grep ^'ftp ' /etc/services 
ftp        21/tcp
ftp        21/udp          fsp fspd

10. Explain why e-mail and websites are sent over tcp and not udp.

Because tcp is reliable and udp is not.

11. Display the hostname of your computer.

pau@ldebian9:~$ hostnamectl status  
     Static hostname: vaio.labs
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 841ea4c609fa47489106a59274e87312
           Boot ID: 0208b3bbc10a4124ba6020e288f1b4e4
  Operating System: Fedora 28 (Twenty Eight)
       CPE OS Name: cpe:/o:fedoraproject:fedora:28
            Kernel: Linux 4.19.13-200.fc28.x86_64
      Architecture: x86-64

12. Which ip-addresses did your computer recently have contact with ?

root@linux ~# arp -a
? (192.168.1.1) at 00:02:cf:aa:68:f0 [ether] on eth2
? (192.168.1.30) at 00:26:bb:12:7a:5e [ether] on eth2
? (192.168.1.31) at 08:00:27:8e:8a:a8 [ether] on eth2