mirror of
git://slackware.nl/current.git
synced 2024-12-27 09:59:16 +01:00
75a4a592e5
Mon Apr 25 13:37:00 UTC 2011 Slackware 13.37 x86_64 stable is released! Thanks to everyone who pitched in on this release: the Slackware team, the folks producing upstream code, and linuxquestions.org for providing a great forum for collaboration and testing. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. As always, thanks to the Slackware community for testing, suggestions, and feedback. :-) Have fun!
324 lines
14 KiB
HTML
324 lines
14 KiB
HTML
<!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"> <span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>: Is there a DHCP server available on the LAN?<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Server</i></span>: Yes, there is. Here I am.<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>: I need an IP address.<br />
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Server</i></span>: You may take 192.168.10.10 for 19200 seconds.<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>: Thank you.</p>
|
|
|
|
<p class="LITERALLAYOUT"> <span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>: Is there a DHCP server available on the LAN?<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Server</i></span>:Yes, there is. Here I am.<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>:I need an IP address. The last time we<br />
|
|
|
|
talked, I had 192.168.10.10;<br />
|
|
May I have it again?<br />
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Server</i></span>:Yes, you may (or No, you may not: take 192.168.10.12 instead).<br />
|
|
|
|
<span class="emphasis"><i
|
|
class="EMPHASIS">Client</i></span>: Thank 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 “<var class="LITERAL">YES</var>”.</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 “<var class="LITERAL">YES</var>” 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
|
|
“slackware.com” 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>
|
|
|