1.112.3 TCP/IP configuration and troubleshooting Weight 7

Linux Professional Institute Certification — 102

                Angus Lees gus@inodes.org

Geoffrey Robertson ge@ffrey.com

               Nick Urbanik nicku@nicku.org

2005 July

Description of Objective

Candidates should be able to view, change and verify configuration settings and operational status for various network interfaces. This objective includes manual and automatic configuration of interfaces and routing tables. This especially means to add, start, stop, restart, delete or reconfigure network interfaces. It also means to change, view or configure the routing table and to correct an improperly set default route manually. Candidates should be able to configure Linux as a DHCP client and a TCP/IP host and to debug problems associated with the network configuration.

Key files, terms, and utilities include:

/etc/HOSTNAME or /etc/hostname
/etc/hosts
/etc/networks

\underline{2}

/etc/host.conf
/etc/resolv.conf
/etc/nsswitch.conf
ifconfig
route
dhcpcd, dhcpclient, pump
host
hostname (domainname, dnsdomainname)
netstat
ping
traceroute
tcpdump
the network scripts run during system initialization.

TCP/IP Configuration and Troubleshooting

Candidates should be able to view, change and verify configuration settings and operational status for various network interfaces. This objective includes manual and automatic configuration of interfaces and routing tables. This especially means to add, start, stop, restart, delete or reconfigure network interfaces. It also means to change, view or configure the routing table and to correct an improperly set default route manually. Candidates should be able to configure Linux as a DHCP client and a TCP/IP host and to debug problems associated with the network configuration.

Weight: 7

TCP/IP Configuration and Troubleshooting

/etc/HOSTNAME or /etc/hostname     ifconfig
/etc/hosts                           route
/etc/networks                        netstat
/etc/host.conf                       host
/etc/resolv.conf                     ping
/etc/nsswitch.conf                  tcpdump
traceroute
dhcpcd, dhcpclient, pump
hostname (domainname, dnsdomainname)

the network scripts run during system initialisation TCP/IP Configuration and Troubleshooting

Linux Networking HOWTO by Joshua Drake :

     http://www.linuxdoc.org/HOWTO/Net-HOWTO/index.html

Linux Ethernet-Howto by Paul Gortmaker :

     http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html

Network interface configuration

ifconfig eth0 192.168.7.26
     netmask 255.255.255.0
     broadcast 192.168.7.255
ifconfig eth0 down
route add -net 192.168.7.0
     netmask 255.255.255.0
     dev eth0
route add default gw 192.168.7.1

View routing table:

route -n

Ports in use  netstat -a -u -t
Routing table  netstat -r
Interfaces  netstat -i
Multicast groups  netstat -g
Masqueraded connections netstat -M
Statistics  netstat -s

ping Try to bounce an ICMP packet off a host

Good for reachability, round trip delay, packet loss traceroute Show the network path to a particular host

Good for testing routing problems, “which ISP screwed up” tcpdump Dump raw network traffic

Exceptional for diagnosing network problems involving a particular host

tcpdump is your friend, learn to use it

# tcpdump -i ppp0 not port ssh
tcpdump: listening on ppp0
21:54:32.913475 10.0.128.107.1024 > 10.0.128.97.domain:  20147+ A? fatso.urnet.com.au. (36) (DF)
21:54:33.102745 10.0.128.97.domain > 10.0.128.107.1024:  20147* 1/3/3 (178) (DF)
21:54:33.103766 10.0.128.107 > 203.26.250.2: icmp: echo request (DF)
21:54:33.352745 203.26.250.2 > 10.0.128.107: icmp: echo reply
21:54:34.102912 10.0.128.107 > 203.26.250.2: icmp: echo request (DF)
21:54:34.302745 203.26.250.2 > 10.0.128.107: icmp: echo reply
21:56:09.908636 10.0.128.107.1068 > 203.26.250.2.www: S 1245080954:1245080954(0) win 5840 <mss 1460,sackOK,timestamp 5047727 0,nop,wscale 0> (DF) [tos 0x10]
21:56:10.052743 203.26.250.2.www > 10.0.128.107.1068: S 3633684004:3633684004(0) ack 1245080955 win 5792 <mss 1460,sackOK,timestamp 409734147 5047727,nop,wscale 0> (DF)
21:56:10.052869 10.0.128.107.1068 > 203.26.250.2.www: . ack 1 win 5840 <nop,nop,timestamp 5047742 409734147> (DF) [tos 0x10]
21:56:12.977510 10.0.128.107.1068 > 203.26.250.2.www: P 1:2(1) ack 1 win 5840 <nop,nop,timestamp 5048034 409734147> (DF) [tos 0x10]

System scripts set the hostname from one of these files during boot, using the hostname command.

dnsdomainname, ypdomainname, nisdomainname and domainname are variations on hostname

domainname gives the NIS domainname, NOT the DNS domain

“Name Service Switch” configuration

passwd:          compat
group:           compat
shadow:          compat

hosts:           files dns
networks:        files

protocols:       db files
services:        db files
ethers:          db files
rpc:              db files

netgroup:        nis

Labels for network addresses

Only supports class A, B or C addresses (not CIDR)

Rarely used or kept up to date

localnet 192.168.1.0

Hostname to IP address mapping, mostly superseded by DNS

127.0.0.1 localhost
192.168.1.1 cat.pasture.com.au cat

# The following lines are desirable for IPv6 capable hosts

::1      ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Various keywords to tweak non-DNS-specific resolver behaviour

Rarely modified; most options no longer relevant

order hosts,bind
multi on

DNS configuration for resolver

Nameserver defaults to 127.0.0.1, search suffix defaults to DNS domain name

search pasture.com.au
nameserver 10.0.128.97

host performs various DNS queries

host [options] hostname [server]

Common options:

-v verbose

-l list all hosts in a domain (using AXFR)

-t query type (“-t any” is useful)

“Dynamic Host Control Protocol” configures networking details, DNS, etc automatically by querying a “DHCP server”

Various DHCP clients:

dhcpclient Comes with ISC DHCP server, highly configurable

dhcpcd

pump Simple DHCP client written by RedHat

udhcpc Very small DHCP client

License Of This Document

Copyright \begin{matrix}c \\ ◯ \end{matrix} 2005, 2003 Angus Lees <gus@inodes.org>, Geoffrey Robertson <ge@ffrey.com> and Nick Urbanik <nicku@nicku.org>. Permission is granted to make and distribute verbatim copies or modified versions of this document provided that this copyright notice and this permission notice are preserved on all copies under the terms of the GNU General Public License as published by the Free Software Foundation—either version 2 of the License or (at your option) any later version.