home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / unmaintained / mini / DHCPd < prev    next >
Text File  |  1998-05-07  |  9KB  |  403 lines

  1. [ 9 May 1998
  2.   The Linux DHCPd mini-HOWTO is no longer being maintained.  The DHCPd and
  3.   DHCPcd have been merged into a single mini-HOWTO called DHCP.  Please
  4.   feel free to contact me at <linux-howto@sunsite.unc.edu> if you have any
  5.   questions or concerns. ]
  6.  
  7.   DHCP server mini-HOWTO (DHCPd)
  8.   Vladimir Vuksan, vuksan@veus.hr
  9.   v1.3, 15 March 1998
  10.  
  11.   This document attempts to answer basic questions on how to setup your
  12.   Linux box to serve as a DHCP server.
  13.   ______________________________________________________________________
  14.  
  15.   Table of Contents
  16.  
  17.  
  18.   1. Introduction
  19.  
  20.      1.1 New Versions of this Document
  21.      1.2 Feedback
  22.      1.3 Contributors
  23.      1.4 Standard Disclaimer
  24.      1.5 Copyright Information
  25.  
  26.   2. Setup
  27.  
  28.      2.1 Introduction
  29.      2.2 DHCPD server for Linux.
  30.      2.3 Network Configuration.
  31.      2.4 Options for DHCPd
  32.      2.5 Running the server
  33.  
  34.  
  35.   ______________________________________________________________________
  36.  
  37.  
  38.  
  39.   1.  Introduction
  40.  
  41.  
  42.  
  43.  
  44.  
  45.   1.1.  New Versions of this Document
  46.  
  47.   New versions of this document will be periodically posted to
  48.   comp.os.linux.answers.  They will also be added to the various
  49.   anonymous FTP sites who archive such information, including:
  50.  
  51.   ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
  52.  
  53.   In addition, you should generally be able to find this document on the
  54.   Linux Documentation Project page via:
  55.  
  56.   http://sunsite.unc.edu/LDP/
  57.  
  58.  
  59.   1.2.  Feedback
  60.  
  61.   Feedback is most certaintly welcome for this document.  Without your
  62.   submissions and input, this document wouldn't exist. So, please post
  63.   your additions, comments and criticisms to vuksan@veus.hr.
  64.  
  65.  
  66.  
  67.   1.3.  Contributors
  68.  
  69.   This document has been modified from the original version by Paul
  70.   Makeev.
  71.  
  72.  
  73.   1.4.  Standard Disclaimer
  74.  
  75.   No liability for the contents of this documents can be accepted.  Use
  76.   the concepts, examples and other content at your own risk.  As this is
  77.   a new edition of this document, there may be errors and inaccuracies,
  78.   that may of course be damaging to your system.  Proceed with caution,
  79.   and although this is highly unlikely, I don't take any responsibility
  80.   for that.
  81.  
  82.   Also bear in mind that this is NOT official information.  Obtaining
  83.   official information is usually an impossibility with many ISPs. Much
  84.   content in this document are assumptions, which appear to work for
  85.   people. Use the information at your own risk.
  86.  
  87.  
  88.   1.5.  Copyright Information
  89.  
  90.   This document is copyrighted (c)1998 Vladimir Vuksan and distributed
  91.   under the following terms:
  92.  
  93.  
  94.  
  95.   ╖  Linux HOWTO documents may be reproduced and distributed in whole or
  96.      in part, in any medium physical or electronic, as long as this
  97.      copyright notice is retained on all copies. Commercial
  98.      redistribution is allowed and encouraged; however, the author would
  99.      like to be notified of any such distributions.
  100.  
  101.   ╖  All translations, derivative works, or aggregate works
  102.      incorporating any Linux HOWTO documents must be covered under this
  103.      copyright notice.  That is, you may not produce a derivative work
  104.      from a HOWTO and impose additional restrictions on its
  105.      distribution. Exceptions to these rules may be granted under
  106.      certain conditions; please contact the Linux HOWTO coordinator at
  107.      the address given below.
  108.  
  109.   ╖  If you have questions, please contact Greg Hankins, the Linux HOWTO
  110.      coordinator, at
  111.  
  112.      gregh@sunsite.unc.edu
  113.  
  114.  
  115.  
  116.  
  117.  
  118.   2.  Setup
  119.  
  120.   2.1.  Introduction
  121.  
  122.  
  123.   DHCP is Dynamic Host Configuration Protocol. It is used to control
  124.   vital networking parameters of hosts (running clients) with the help
  125.   of server. DHCP is backward compatible with BOOTP. For more
  126.   information see RFC 2131 (old RFC 1531) and other. (See Internet
  127.   Resources section at the end of the document). You can also read DHCP
  128.   FAQ.
  129.  
  130.  
  131.  
  132.   This mini-HOWTO is about DHCP _SERVER_ daemon. There is DHCP _client_
  133.   daemon (DHCPcd) for Linux, which is not described here. Information
  134.   about DHCPcd can be found at:
  135.  
  136.   http://sunsite.unc.edu/LDP/HOWTO/mini/DHCPcd.html
  137.  
  138.  
  139.   2.2.  DHCPD server for Linux.
  140.  
  141.   There are several DHCP servers available for U*X-like OSes, both
  142.   commercial and free. One of more popular free DHCP servers is Paul
  143.   Vixie/ISC DHCPd. You can get it from
  144.  
  145.   ftp://ftp.isc.org/isc/dhcp/dhcp-1.0.0.tar.gz
  146.  
  147.  
  148.  
  149.   After you do you need to unpack. It will create a directory of its
  150.   own. Go into it and type
  151.  
  152.  
  153.  
  154.   ./configure
  155.  
  156.  
  157.  
  158.   It will take few seconds to configure the settings. Then type:
  159.  
  160.  
  161.  
  162.   make
  163.  
  164.  
  165.  
  166.   and
  167.  
  168.  
  169.  
  170.   make install
  171.  
  172.  
  173.  
  174.  
  175.   2.3.  Network Configuration.
  176.  
  177.  
  178.   When done with installation type ifconfig -a. You should get output
  179.   like this:
  180.  
  181.  
  182.  
  183.   eth0      Link encap:10Mbps Ethernet  HWaddr 00:C0:4F:D3:C4:62 inet
  184.   addr:183.217.19.43  Bcast:183.217.19.255  Mask:255.255.255.0 UP
  185.   BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 RX packets:2875542
  186.   errors:0 dropped:0 overruns:0 TX packets:218647 errors:0 dropped:0
  187.   overruns:0 Interrupt:11 Base address:0x210
  188.  
  189.  
  190.  
  191.   If it doesn't say MULTICAST you should reconfigure your kernel and add
  192.   multicast support. On most systems you will not need to do this.
  193.  
  194.  
  195.  
  196.   Next step is to add route for 255.255.255.255. README explains why:
  197.  
  198.  
  199.  
  200.   "In order for dhcpd to work correctly with picky DHCP clients (e.g.,
  201.   Windows 95), it must be able to send packets with an IP destination
  202.   address of 255.255.255.255.  Unfortunately, Linux insists on changing
  203.   255.255.255.255 into the local subnet broadcast address (here, that's
  204.   192.5.5.223).  This results in a DHCP protocol violation, and while
  205.   many DHCP clients don't notice the problem, some (e.g., all Microsoft
  206.   DHCP clients) do.  Clients that have this problem will appear not to
  207.   see DHCPOFFER messages from the server."
  208.  
  209.  
  210.  
  211.   So you have to type
  212.  
  213.  
  214.  
  215.   route add -host 255.255.255.255 dev eth0
  216.  
  217.  
  218.  
  219.   If you get a message
  220.  
  221.  
  222.  
  223.   "255.255.255.255: Unknown host"
  224.  
  225.  
  226.  
  227.   You should try adding the following entry to your /etc/hosts file:
  228.  
  229.  
  230.  
  231.   255.255.255.255 all-ones
  232.  
  233.  
  234.  
  235.   Then, try:
  236.  
  237.  
  238.  
  239.   route add -host all-ones dev eth0
  240.  
  241.  
  242.  
  243.   or
  244.  
  245.  
  246.  
  247.   route add -net 255.255.255.0 dev eth0
  248.  
  249.  
  250.  
  251.   eth0 is of course the name of the network device you are using.  If it
  252.   differs change it appropriately.
  253.  
  254.  
  255.  
  256.  
  257.   2.4.  Options for DHCPd
  258.  
  259.  
  260.   Now you need to configure DHCPd. In order to do this you will have to
  261.   create or edit /etc/dhcpd.conf.
  262.  
  263.  
  264.  
  265.   Most commonly what you want to do is assign randomly IP addresses to
  266.   clients on you local network. This can be done with a paragraphs like
  267.   this
  268.  
  269.  
  270.  
  271.   ______________________________________________________________________
  272.   default-lease-time 600;
  273.   max-lease-time 7200;
  274.   option subnet-mask 255.255.255.0;
  275.   option broadcast-address 192.168.1.255;
  276.   option routers 192.168.1.254;
  277.   option domain-name-servers 192.168.1.1, 192.168.1.2;
  278.   option domain-name "mydomain.org";
  279.  
  280.   subnet 192.168.1.0 netmask 255.255.255.0 {
  281.      range 192.168.1.10 192.168.1.100;
  282.      range 192.168.1.150 192.168.1.200;
  283.   }
  284.   ______________________________________________________________________
  285.  
  286.  
  287.  
  288.  
  289.  
  290.   This will result in DHCP server giving a client an IP address from the
  291.   range of 192.168.1.10-192.168.1.100 and 192.168.1.150-192.168.1.200.
  292.   It will lease an IP address for 600 seconds if the client doesn't ask
  293.   for specific time frame. Otherwise the maximum lease it will allow is
  294.   7200 seconds. The server will also advise the client that it should
  295.   use 255.255.255.0 as its subnet mask, use 192.168.1.255 as its
  296.   broadcast address, use 192.168.1.254 as the router/gateway and
  297.   192.168.1.1 and 192.168.1.2 as its DNS servers.
  298.  
  299.  
  300.  
  301.   You can also assign specific IP addresses based upon clients ethernet
  302.   address e.g.
  303.  
  304.  
  305.  
  306.  
  307.   ______________________________________________________________________
  308.   host haagen {
  309.      hardware ethernet 08:00:2b:4c:59:23;
  310.      fixed-address 192.168.1.222;
  311.   }
  312.   ______________________________________________________________________
  313.  
  314.  
  315.  
  316.  
  317.  
  318.   This will assign IP address of 192.168.1.222 to client with an
  319.   ethernet address of 08:00:2b:4c:59:23.
  320.  
  321.  
  322.  
  323.   You can also mix and match e.g. you can have certain clients getting
  324.   "static" IP addresses and others being alloted dynamic IPs. There are
  325.   a number of other options, if you need any of them read the dhcpd.conf
  326.   man page for details.
  327.  
  328.  
  329.  
  330.  
  331.   2.5.  Running the server
  332.  
  333.  
  334.   You can now invoke the DHCP server. Simply type (or include in the
  335.   bootup scripts)
  336.  
  337.   /usr/sbin/dhcpd
  338.  
  339.  
  340.  
  341.   If you want to verify that everything is working fine you should first
  342.   turn on the debugging mode and put the server in forground. You can do
  343.   it by typing
  344.  
  345.  
  346.  
  347.   /usr/sbin/dhcpd -d -f
  348.  
  349.  
  350.  
  351.   Then try to obtain an IP address with a client. You will see a number
  352.   of debugging messages coming out of the server.
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.