📄 dhcp.txt
字号:
DHCP mini-HOWTO (DHCPd/DHCPcd) 作者:Vladimir Vuksan, vuksan@veus.hr 译者: 蒋大伟, dawei@sinica.edu.tw 版本/发行日期:v4.2, 11 June 1999 _________________________________________________________________ 这份文件主要在解答各位,如何把你的 Linux 机器设定成 DHCP 伺服器或 DHCP 用户端,一些基本的问题。 _________________________________________________________________ 1. 介绍 * 1.1 免责声明 * 1.2 如何取得这份文件的最新版本 * 1.3 回馈 * 1.4 供献者 * 1.5 版权声明 2. DHCP 通讯协定3. 设定用户端 * 3.1 下载用户端的监控程式 * 3.2 安装在 Slackware 之上 * 3.3 安装在 RedHat 5.x 和 RedHat 6.x 之上 * 3.4 在 RedHat 4.x 与 Caldera OpenLinux 1.1 上的设定 * 3.5 安装在 Debian 之上 * 3.6 在 LinuxPPC 与 MkLinux 上的设定 * 3.7 “记号环”(Token Ring)网路 * 3.8 最後,请完成以下的动作 * 3.9 其它注意事项 * 3.10 疑难排除 4. 设定 DHCP 伺服器 * 4.1 UNIX 上的 DHCP 伺服器 * 4.2 设定网路组态。 * 4.3 DHCPd 的选项设定 * 4.4 启动伺服器 _________________________________________________________________ 1. 介绍1.1 免责声明 这份文件的内容不接受任何赔偿要求。引用这份文件的概念、例子、以及其他的 内容 时,各位要自己承担风险。由於这是一份新出版的文件,所以可能会有些错 误以及不 正确的地方,因此,当然可能对你的系统造成危害。虽然,灾难不太可 能发生,但还 是请小心为上,出了事我一概不负任何责任。 同时,也请你铭记在心,这份文件所提供的内容并 不是 正式的资讯。这份 文件 的内容,有许多都是假设出来的,看起来好像能运作,但未必可以。引用时,各 位 要自己承担风险。 1.2 如何取得这份文件的最新版本 这份文件的最新版本会定期地张贴在 comp.os.linux.answers 的新闻论坛上。 它也会被放置在各个储存这类资讯的匿名 FTP 站台上,例如: [1]ftp://metalab.unc.edu/pub/Linux/docs/HOWTO 此外,你通常可以在 Linux 文件计划的网页上找到这份文件,请参考网址: [2]http://metalab.unc.edu/LDP/ 这份文件的中文版翻译,请参考网址: [3]http://www.linux.org.tw/CLDP/mini/DHCP.html 我在此正式授予翻译权给凡是要将本文件翻译成自己本国语言的任何人。条件是 你必须将 该翻译版本的链结位址提供给我。 1.3 回馈 凡是对这份文件所作的任何回馈都非常欢迎。没有您的付出和参与,这份文件将 不会 呈现在众人的面前。所以,请将您的建议、批评、和指教寄至 vuksan@veus.hr。 1.4 供献者 这份文件最初是修改自 Paul Makeev 所撰写的版本而来的。 其他对这份文件有过供献的朋友,列举如下: * Heiko Schlittermann * Jonathan Smith * Dan Khabaza * Hal Sadofsky * Henrik Stoerner * Paul Rossington 1.5 版权声明 这份文件自 1998 开始的版权属於 Vladimir Vuksan 所有,并请按照以下规定来 流通: * Linux HOWTO 文件的全部或部分,可以使用任何物理或电子的媒体形式来复 制 与流通,只要这个版权声明被保留在每份拷贝中。商业行为的再流通是被 允许而且受欢 迎的;但是,任何的流通行为,作者都希望能被告知。 * 所有翻译、衍生的工作、或合并任何 Linux HOWTO 文件的聚集工作,都必须 受 到这个版权声明的保护。也就是说,你不可以从 HOWTO 衍生出一份文件 ,然後对这份 衍生文件的流通强加上其他限制条件。除非在一些特定的状况 下,才会允诺这些限制 条件;请联络 Linux HOWTO 的协调人,他的地址如 下: * 如果你有任何疑问,请联络 Linux HOWTO 的协调人 [4]linux-howto@metalab.unc.edu 2. DHCP 通讯协定 DHCP 就是“动态主机设定协定”(Dynamic Host Configuration Protocol)的简 写。DHCP 的 主要用途是:透过伺服器的协助来控管各个主机(执行中的用户端 )上不可缺少的网路 连线参数。DHCP 协定向後相容 BOOTP 这个通讯协定。更进 一步的资讯请参考 RFC 2131 的标准( RFC 1531 是旧标准)以及其它相关资料 。(请参考该文件末尾,参考资料来源 的部分)。你也可以参阅: [5]DHCP FAQ (http://web.syr.edu/ jmwobus/comfaqs/dhcp.faq.html)。 这份文件将会为各位说明 DHCP 伺服器端的“监控程式”(daemon)和用户端的监 控程式。多 数人在工作站上会需要用到户端的监控程式,以便从远端的伺服器上 取得网路设定资讯。而 系统管理员则会使用伺服器端的监控程式,以便散布网路 设定资讯给用户端来取用,所以,i 如果你只是个一般的使用者,那麽你将会需 要用户端的监控程式。 3. 设定用户端3.1 下载用户端的监控程式 核心 2.0.x 不论你使用的是哪一种 Linux 的发行版本,你都必需下载用户端的监控程式。你 所需要 下载的程式套件称为 dhcpcd ,目前的版本编号是 0.70。你可在 [6]此 处 阅读到这个套件的内容说明。 (ftp://metalab.unc.edu/pub/Linux/system/network/daemons/dhcpcd-0.70.ls m) 核心 2.2.x 由於在核心 2.1.x 和 2.2.x 中 ipv4 的网路程式套件曾被修改过(例如,它会 在许多 栏位设定预设值)dhcpcd 无法正常运作。除非你使用的是 RedHat 6.x( 它目前提供了 dhcpcd 1.3.x 和 2.2.x 的核心)否则你就必须下载另一个版本的 dhcpcd(即 1.3.x) 来使用,这是 Sergei Viznyuk sergei@phystech.com 为了 避免上述问题所 修改的版本。你可以在以下几个地方取得: * [7]ftp://phystech.dyn.ml.org/pub/ * [8]http://www.cps.msu.edu/~dunham/out/dhcpcd-1.3.6.tar.gz 接下来所做的说明都是以此为基本的原则。 3.2 安装在 Slackware 之上 你可以从任何 Metalab 的“镜射”(mirror)站台或以下几个地方,下载最新的 DHCPcd 程式套件: * [9]ftp://ftp.cdrom.com/pub/linux/metalab/system/network/daemons/ * [10]ftp://metalab.unc.edu/pub/Linux/system/network/daemons * [11]ftp://ftp.kobe-u.ac.jp/pub/PC-UNIX/Linux/network/dhcp (主站台 在日本) 下载最新版本的 dhcpcd.tar.gz 最新版本 * 将 dhcpcd.tar.gz 解开 tar -zxvf dhcpcd-0.70.tar.gz * 切换至套件解开後的子目录里,并编译 dhcpcd 程式 cd dhcpcd-0.70 make * 安装套件 (你必须以 root 的身份执行以下的命令) make install 这个命令会建立 /etc/dhcpc 这个子目录,DHCPcd 套件会把 DHCP 的资讯储存在 该处, 并且将 dhcpcd 程式档复制到 /usr/sbin 这个子目录里。 为能够在开机时,系统设定初值期间,使用 DHCP 的功能,请做如下的设定: cd /etc/rc.d mv rc.inet1 rc.inet1.OLD 上面的动作会将旧有的网路初值设定“命令稿”(script)移转至 rc.inet1.OLD 。接下来, 你必须建立新的 rc.inet1 命令稿。下面的程式码包含了必需的设定 内容: _________________________________________________________________ #!/bin/sh## rc.inet1 这个 shell 的命令稿会在开机时处理 INET 系统的基本设定。HOSTNAME=`cat /etc/HOSTNAME` # 这个命令或许不是必需的,但是我还是 # 将它保留了下来。# 附接上 loopback(绕回)装置。/sbin/ifconfig lo 127.0.0.1/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo# 若你有乙太网路的连线,则使用下面的命令来设定 eth0 界面。# 若你只有 loopback 或 SLIP 的连线,则不要在这个档案里使用下面的命令。/usr/sbin/dhcpcd _________________________________________________________________ 存档案之後请将电脑重新开机。 当你完成以上的动作後,请跳至 [12]最後的步骤 3.3 安装在 RedHat 5.x 和 RedHat 6.x 之上 DHCPcd 的设定在 RedHat 5.0 与以上的版本其实很容易。你所要作的事情,就是 启动 “控制台”(Control Panel),请输入 control-panel * 选取 Network Configuration 的图像 * 以滑鼠单击 Interfaces 栏标 * 以滑鼠单击 Add 按钮 * 选用 Ethernet 项目 * 在 Edit Ethernet/Bus Interface 对话框中勾选 "Activate interface at boot time" 项目以及选取 DHCP 做为 Interface configuration protocol 项目的 输入。 当你完成以上的动作後,请跳至 [13]最後的步骤 3.4 在 RedHat 4.x 与 Caldera OpenLinux 1.1 上的设定 DHCPcd 在标准的 RedHat 版本中是以 RPM 的包装方式来发行的,你可以在其所 发行的 CD-ROM 上的 RPMS 目录中找到它,或到下面的网址下载: [14]ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd -0.6-2.i386.rpm 然後安装它,如下所示: rpm -i dhcpcd-0.6-2.i386.rpm 或者,你可以按照 Slackware 那节所描述的方法,编译一个属於你自己的版本。 感谢 nothing nothing@cc.gatech.edu 提供以下的资讯给我 _________________________________________________________________ 我把静态的 ip 位址或网域名称,从档案 /etc/resolv.conf 中移除。但是,我留下了search 和 nameserver 的设定行(因为某些原因我的 dhcpcd 伺服器不会产生档案/etc/dhcpc/resol.conf,所以我必须使用静态的 /etc/resolv.conf)。在档案 /etc/sysconfig/network 里,我移除了 HOSTNAME 与 GATEWAY 的设定行。但是,我保留了其它的设定行(NETWORKING、DOMAINNAME、GATEWAYDEV)。在档案 /etc/sysconfig/network-scripts/ifcfg-eth0 里,我移除了 IPADDR、NETMASK、NETWORK、和 BROADCAST 等设定行。但是,我保留了 DEVICE 和 ONBOOT 的设定行,并将BOOTPROTO 的设定行,修改成 BOOTPROTO=dhcp。最後储存档案,并将电脑重新开机。 _________________________________________________________________ 当你完成以上的动作後,请跳至 [15]最後的步骤
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -