summaryrefslogtreecommitdiffstats
path: root/slackbook/html/network-configuration-tcpip.html
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /slackbook/html/network-configuration-tcpip.html
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
current-5a12e7c134274dba706667107d10d231517d3e05.tar.xz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'slackbook/html/network-configuration-tcpip.html')
-rw-r--r--slackbook/html/network-configuration-tcpip.html324
1 files changed, 324 insertions, 0 deletions
diff --git a/slackbook/html/network-configuration-tcpip.html b/slackbook/html/network-configuration-tcpip.html
new file mode 100644
index 000000000..3b49437ef
--- /dev/null
+++ b/slackbook/html/network-configuration-tcpip.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org" />
+<title>TCP/IP Configuration</title>
+<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" />
+<link rel="HOME" title="Slackware Linux Essentials" href="index.html" />
+<link rel="UP" title="Network Configuration" href="network-configuration.html" />
+<link rel="PREVIOUS" title="Network Hardware Configuration"
+href="network-configuration-hardware.html" />
+<link rel="NEXT" title="PPP" href="network-configuration-ppp.html" />
+<link rel="STYLESHEET" type="text/css" href="docbook.css" />
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+</head>
+<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"
+alink="#0000FF">
+<div class="NAVHEADER">
+<table summary="Header navigation table" width="100%" border="0" cellpadding="0"
+cellspacing="0">
+<tr>
+<th colspan="3" align="center">Slackware Linux Essentials</th>
+</tr>
+
+<tr>
+<td width="10%" align="left" valign="bottom"><a
+href="network-configuration-hardware.html" accesskey="P">Prev</a></td>
+<td width="80%" align="center" valign="bottom">Chapter 5 Network Configuration</td>
+<td width="10%" align="right" valign="bottom"><a href="network-configuration-ppp.html"
+accesskey="N">Next</a></td>
+</tr>
+</table>
+
+<hr align="LEFT" width="100%" />
+</div>
+
+<div class="SECT1">
+<h1 class="SECT1"><a id="NETWORK-CONFIGURATION-TCPIP"
+name="NETWORK-CONFIGURATION-TCPIP">5.3 TCP/IP Configuration</a></h1>
+
+<p>At this point, your network card should be physically installed in your computer, and
+the relevant kernel modules should be loaded. You will not yet be able to communicate
+over your network card, but information about the network device can be obtained with <tt
+class="COMMAND">ifconfig -a</tt>.</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="SCREEN">
+<samp class="PROMPT">#</samp> <kbd class="USERINPUT">ifconfig -a</kbd>
+eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
+UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
+RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
+TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:100
+RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
+Interrupt:5 Base address:0x8400
+
+lo Link encap:Local Loopback
+inet addr:127.0.0.1 Mask:255.0.0.0
+UP LOOPBACK RUNNING MTU:16436 Metric:1
+RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
+TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:0
+RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)
+</pre>
+</td>
+</tr>
+</table>
+
+<p>If you just typed <tt class="COMMAND">/sbin/ifconfig</tt> without the <var
+class="OPTION">-a</var> suffix, you would not see the <tt class="FILENAME">eth0</tt>
+interface, as your network card does not yet have a valid IP address or route.</p>
+
+<p>While there are many different ways to setup and subnet a network, all of them can be
+broken down into two types: Static and Dynamic. Static networks are setup such that each
+node (geek lingo for thing with an IP address) always has the same IP address. Dynamic
+networks are setup in such a way that the IP addresses for the nodes are controlled by a
+single server called the DHCP server.</p>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="NETWORK-CONFIGURATION-TCPIP-DHCP"
+name="NETWORK-CONFIGURATION-TCPIP-DHCP">5.3.1 DHCP</a></h2>
+
+<p>DHCP (or Dynamic Host Configuration Protocol), is a means by which an IP address may
+be assigned to a computer on boot. When the DHCP <span class="emphasis"><i
+class="EMPHASIS">client</i></span> boots, it puts out a request on the Local Area Network
+for a DHCP <span class="emphasis"><i class="EMPHASIS">server</i></span> to assign it an
+IP address. The DHCP server has a pool (or <span class="emphasis"><i
+class="EMPHASIS">scope</i></span>) of IP addresses available. The server will respond to
+this request with an IP address from the pool, along with a <span class="emphasis"><i
+class="EMPHASIS">lease time</i></span>. Once the lease time for a given IP address lease
+has expired, the client must contact the server again and repeat the negotiation.</p>
+
+<p>The client will then accept the IP address from the server and will configure the
+requested interface with the IP address. There is one more handy trick that DHCP clients
+use for negotiating the IP address that they will be assigned, however. The client will
+remember it's last assigned IP address, and will request that the server re-assign that
+IP address to the client again upon next negotiation. If possible, the server will do so,
+but if not, a new address is assigned. So, the negotiation resembles the following:</p>
+
+<p class="LITERALLAYOUT">&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:&nbsp;Is&nbsp;there&nbsp;a&nbsp;DHCP&nbsp;server&nbsp;available&nbsp;on&nbsp;the&nbsp;LAN?<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Server</i></span>:&nbsp;Yes,&nbsp;there&nbsp;is.&nbsp;Here&nbsp;I&nbsp;am.<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:&nbsp;I&nbsp;need&nbsp;an&nbsp;IP&nbsp;address.<br />
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Server</i></span>:&nbsp;You&nbsp;may&nbsp;take&nbsp;192.168.10.10&nbsp;for&nbsp;19200&nbsp;seconds.<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:&nbsp;Thank&nbsp;you.</p>
+
+<p class="LITERALLAYOUT">&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:&nbsp;Is&nbsp;there&nbsp;a&nbsp;DHCP&nbsp;server&nbsp;available&nbsp;on&nbsp;the&nbsp;LAN?<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Server</i></span>:Yes,&nbsp;there&nbsp;is.&nbsp;Here&nbsp;I&nbsp;am.<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:I&nbsp;need&nbsp;an&nbsp;IP&nbsp;address.&nbsp;The&nbsp;last&nbsp;time&nbsp;we<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;talked,&nbsp;I&nbsp;had&nbsp;192.168.10.10;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;I&nbsp;have&nbsp;it&nbsp;again?<br />
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Server</i></span>:Yes,&nbsp;you&nbsp;may&nbsp;(or&nbsp;No,&nbsp;you&nbsp;may&nbsp;not:&nbsp;take&nbsp;192.168.10.12&nbsp;instead).<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="emphasis"><i
+class="EMPHASIS">Client</i></span>:&nbsp;Thank&nbsp;you.</p>
+
+<p>The DHCP client in Linux is <tt class="COMMAND">/sbin/dhcpcd</tt>. If you load <tt
+class="FILENAME">/etc/rc.d/rc.inet1</tt> in your favorite text editor, you will notice
+that <tt class="COMMAND">/sbin/dhcpcd</tt> is called about midway through the script.
+This will force the conversation shown above. <tt class="COMMAND">dhcpcd</tt> will also
+track the amount of time left on the lease for the current IP address, and will
+automatically contact the DHCP server with a request to renew the lease when necessary.
+DHCP can also control related information, such as what ntp server to use, what route to
+take, etc.</p>
+
+<p>Setting up DHCP on Slackware is simple. Just run <tt class="COMMAND">netconfig</tt>
+and select DHCP when offered. If you have more than one NIC and do not wish <tt
+class="FILENAME">eth0</tt> to be configured by DHCP, just edit the <tt
+class="FILENAME">/etc/rc.d/rc.inet1.conf</tt> file and change the related variable for
+your NIC to &#8220;<var class="LITERAL">YES</var>&#8221;.</p>
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="NETWORK-CONFIGURATION-TCPIP-STATIC"
+name="NETWORK-CONFIGURATION-TCPIP-STATIC">5.3.2 Static IP</a></h2>
+
+<p>Static IP addresses are fixed addresses that only change if manually told to. These
+are used in any case where an administrator doesn't want the IP information to change,
+such for internal servers on a LAN, any server connected to the Internet, and networked
+routers. With static IP addressing, you assign an address and leave it at that. Other
+machines know that you are always at that certain IP address and can contact you at that
+address always.</p>
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="NETWORK-CONFIGURATION-TCPIP-CONF"
+name="NETWORK-CONFIGURATION-TCPIP-CONF">5.3.3 <tt
+class="FILENAME">/etc/rc.d/rc.inet1.conf</tt></a></h2>
+
+<p>If you plan on assigning an IP address to your new Slackware box, you may do so either
+through the <tt class="FILENAME">netconfig</tt> script, or you may edit <tt
+class="FILENAME">/etc/rc.d/rc.inet1.conf</tt>. In <tt
+class="FILENAME">/etc/rc.d/rc.inet1.conf</tt> , you will notice:</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+ # Primary network interface card (eth0)
+ IPADDR[0]=""
+ NETMASK[0]=""
+ USE_DHCP[0]=""
+ DHCP_HOSTNAME[0]=""
+</pre>
+</td>
+</tr>
+</table>
+
+<p>Then further at the bottom:</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+ GATEWAY=""
+</pre>
+</td>
+</tr>
+</table>
+
+<p>In this case, our task is merely to place the correct information between the
+double-quotes. These variables are called by <tt class="FILENAME">/etc/rc.d/rc.inet1</tt>
+at boot time to setup the nics. For each NIC, just enter the correct IP information, or
+put &#8220;<var class="LITERAL">YES</var>&#8221; for <var class="LITERAL">USE_DHCP</var>.
+Slackware will startup the interfaces with the information placed here in the order they
+are found.</p>
+
+<p>The <var class="LITERAL">DEFAULT_GW</var> variable sets up the default route for
+Slackware. All communications between your computer and other computers on the Internet
+must pass through that gateway if no other route is specified for them. If you are using
+DHCP, you will usually not need to enter anything here, as the DHCP server will specify
+what gateway to use.</p>
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="NETWORK-CONFIGURATION-TCPIP-RESOLVER"
+name="NETWORK-CONFIGURATION-TCPIP-RESOLVER">5.3.4 <tt
+class="FILENAME">/etc/resolv.conf</tt></a></h2>
+
+<p>Ok, so you've got an IP address, you've got a default gateway, you may even have ten
+million dollars (give us some), but what good is that if you can't resolve names to IP
+addresses? No one wants to type in <tt class="HOSTID">72.9.234.112</tt> into their web
+browser to reach <tt class="HOSTID">www.slackbook.org</tt>. After all, who other than the
+authors would memorize that IP address? We need to setup DNS, but how? That's where <tt
+class="FILENAME">/etc/resolv.conf</tt> comes into play.</p>
+
+<p>Chances are you already have the proper options in <tt
+class="FILENAME">/etc/resolv.conf</tt>. If you setup your network connection using DHCP,
+the DHCP server should handle updating this file for you. (Technically the DHCP server
+just tells <tt class="COMMAND">dhcpcd</tt> what to put here, and it obeys.) If you need
+to manually update your DNS server list though, you'll need to hand edit <tt
+class="FILENAME">/etc/resolv.conf</tt>. Below is an example:</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="SCREEN">
+<samp class="PROMPT">#</samp> <kbd class="USERINPUT">cat /etc/resolv.conf</kbd>
+nameserver 192.168.1.254
+search lizella.net
+</pre>
+</td>
+</tr>
+</table>
+
+<p>The first line is simple. The nameserver directive tells us what DNS servers to query.
+By necessity these are always IP addresses. You may have as many listed there as you
+like. Slackware will happily check one after the other until one returns a match.</p>
+
+<p>The second line is a little more interesting. The search directive gives us a list of
+domain names to assume whenever a DNS request is made. This allows you to contact a
+machine by only the first part of its FQDN (Fully Qualified Domain Name). For example, if
+&#8220;slackware.com&#8221; were in your search path, you could reach <tt
+class="HOSTID">http://store.slackware.com</tt> by just pointing your web browser at <tt
+class="HOSTID">http://store</tt>.</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="SCREEN">
+<samp class="PROMPT">#</samp> <kbd class="USERINPUT">ping -c 1 store</kbd>
+PING store.slackware.com (69.50.233.153): 56 data bytes
+64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
+1 packets transmitted, 1 packets received, 0% packet loss
+round-trip min/avg/max = 0.251/0.251/0.251 ms
+</pre>
+</td>
+</tr>
+</table>
+
+<br />
+<br />
+</div>
+
+<div class="SECT2">
+<h2 class="SECT2"><a id="NETWORK-CONFIGURATION-TCPIP-HOSTS"
+name="NETWORK-CONFIGURATION-TCPIP-HOSTS">5.3.5 <tt
+class="FILENAME">/etc/hosts</tt></a></h2>
+
+<p>Now that we've got DNS working fine, what if we want to bypass our DNS server, or add
+a DNS entry for a machine that isn't in DNS? Slackware includes the oft-loved <tt
+class="FILENAME">/etc/hosts</tt> file which contains a local list of DNS names and IP
+addresses they should match to.</p>
+
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="SCREEN">
+<samp class="PROMPT">#</samp> <kbd class="USERINPUT">cat /etc/hosts</kbd>
+127.0.0.1 localhost locahost.localdomain
+192.168.1.101 redtail
+172.14.66.32 foobar.slackware.com
+</pre>
+</td>
+</tr>
+</table>
+
+<p>Here you can see that localhost has an IP address of <tt class="HOSTID">127.0.0.1</tt>
+(always reserved for localhost), redtail can be reached at <tt
+class="HOSTID">192.168.1.101</tt>, and <tt class="HOSTID">foobar.slackware.com</tt> is
+<tt class="HOSTID">172.14.66.32</tt>.</p>
+</div>
+</div>
+
+<div class="NAVFOOTER">
+<hr align="LEFT" width="100%" />
+<table summary="Footer navigation table" width="100%" border="0" cellpadding="0"
+cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top"><a href="network-configuration-hardware.html"
+accesskey="P">Prev</a></td>
+<td width="34%" align="center" valign="top"><a href="index.html"
+accesskey="H">Home</a></td>
+<td width="33%" align="right" valign="top"><a href="network-configuration-ppp.html"
+accesskey="N">Next</a></td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">Network Hardware Configuration</td>
+<td width="34%" align="center" valign="top"><a href="network-configuration.html"
+accesskey="U">Up</a></td>
+<td width="33%" align="right" valign="top">PPP</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
+