1. Context 9 nsswitch.conf 1.112.3 2 5 6 6 6 7 7 7 7 8 10 /etc/networks 1.112.3 TCP/IP configuration and troubleshooting Weight 7 Linux Professional Institute Certification — 102 11 /etc/hosts 12 /etc/host.conf 13 /etc/resolv.conf 14 Debugging DNS 14.1 host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 DHCP 16 License Of This Document Angus Lees gus@inodes.org Geoffrey Robertson ge@ffrey.com Nick Urbanik nicku@nicku.org This document Licensed under GPL—see section 16 1 Context 2005 July Outline Topic 112 Networking Fundamentals [14] 1.112.1 Fundamentals of TCP/IP [4] 1.112.3 TCP/IP configuration and troubleshooting [7] 1.112.4 Configure Linux as a PPP client [3] Contents 1 2 3 4 5 Context Objective Resources Configuring network interfaces Adding routes with route 2 2 3 3 4 4 4 4 5 2 Objective 6 netstat 7 Troubleshooting Tools 7.1 Using tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . hostname 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 — a text file holding the hostname 8 /etc/hosts — a file mapping IP addresses ↔ hostnames 3. Resources 1.112.3 3 5. Adding routes with route 1.112.3 4 /etc/networks — an obsolete file that maps only classful network addresses ↔ names /etc/host.conf — an obsolete file replaced by nsswitch /etc/resolv.conf — configuration file used when system looks up a name or address /etc/nsswitch.conf — name service switch configuration file: determines how system looks up name and various other things ifconfig — a command to show and configure network interfaces route — a command to show and configure network routes dhcpcd, dhcpclient, pump — DHCP clients host — a program to query and debug DNS servers hostname (domainname, dnsdomainname) — commands to show the hostname, and NIS domain settings netstat — a command that shows what service is listening on what port ping — sends ICMP ECHO_REQUEST to hosts, displays time it takes to get an answer traceroute — command to show the path that a network connection takes, showing routes along the way tcpdump — packet sniffer command that displays the contents of packets received on a network interface the network scripts run during system initialization. 5 Adding routes with route route – Low level network config $ sudo route add -net 192.168.7.0 netmask 255.255.255.0 dev eth0 ← $ sudo route add default gw 192.168.7.1 ← View routing table: $ route -n ← 6 netstat netstat -a -u -t netstat -r netstat -i netstat -g netstat -M netstat -s Ports in use Routing table Interfaces Multicast groups Masqueraded connections Statistics 7 ping Troubleshooting Tools • Try to bounce an ICMP packet off a host • Good for reachability, round trip delay, packet loss Network debugging 3 Resources TCP/IP Configuration and Troubleshooting Linux Networking HOWTO by Joshua Drake : http://tldp.org/HOWTO/Net-HOWTO/ index.html Linux Ethernet-Howto by Paul Gortmaker : http://tldp.org/HOWTO/Ethernet-HOWTO. html 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 4 Configuring network interfaces 7.1 Using tcpdump tcpdump again tcpdump is your friend, learn to use it $ sudo tcpdump -i ppp0 not port ssh tcpdump: listening on ppp0 21:54:32.913475 10.0.128.107.1024 > 10.0.128.97.domain: fatso.urnet.com.au. (36) (DF) 21:54:33.102745 10.0.128.97.domain > 10.0.128.107.1024: ifconfig – Low level network config Network interface configuration $ sudo ifconfig eth0 192.168.7.26 netmask 255.255.255.0 broadcast 192.168.7.255 ← $ sudo ifconfig eth0 down ← 20147+ A? 20147* 1/3/3 (178) (DF) 8. hostname 1.112.3 5 10. /etc/networks 1.112.3 6 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 (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 (DF) 21:56:10.052869 10.0.128.107.1068 > 203.26.250.2.www: . ack 1 win 5840 (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 (DF) [tos 0x10] 10 /etc/networks /etc/networks • 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 11 /etc/hosts 8 hostname • 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 /etc/hosts • Hostname to IP address mapping, mostly superseded by DNS • Still matters before DNS is running 127.0.0.1 localhost 192.168.1.1 cat.pasture.com.au cat # The following lines are desirable for IPv6 capable hosts /etc/HOSTNAME or /etc/hostname • domainname gives the NIS domainname, NOT the DNS domain 9 nsswitch.conf /etc/nsswitch.conf “Name Service Switch” configuration passwd: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup: compat compat compat files dns files db db db db files files files files ::1 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts 12 /etc/host.conf /etc/host.conf — Resolver configuration • Various keywords to tweak non-DNS-specific resolver behaviour • Rarely modified; most options no longer relevant • See $ man host.conf ← order hosts,bind multi on nis 13. /etc/resolv.conf 1.112.3 7 16. License Of This Document 1.112.3 8 13 /etc/resolv.conf /etc/resolv.conf — DNS configuration • 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 16 License Of This Document License Of This Document Copyright c 2005, 2003 Angus Lees gus@inodes.org, Geoffrey Robertson and Nick Urbanik . 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. 14 Debugging DNS 14.1 host Debugging DNS with host • 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) 15 DHCP DHCP • “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