请教高手:dhcp问题

发布于 2022-10-03 00:45:44 字数 142 浏览 17 评论 0

请问高手,我的电脑是redhat 7.2现在用pppoe拨号上宽带。下面还有win2k机子,想用redhat 做服务器 win2k做客户机共享上网。本人已经用squid做了代理,但是我想让redhat 做dhcp服务器,win2k自动获得ip上网,不知我该如何做?恳请赐教,不胜感激!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

山有枢 2022-10-10 00:45:44

忘记说了,我有两块网卡,打算让eth1有dhcp功能。
期盼中

溺渁∝ 2022-10-10 00:45:44

DHCP服务器详细配置(转贴)
希望能给对于一个网络维护人员,分配和管理网络内部计算机的IP地址是一件不太容易的事情,这个问题在网络内部的主机数量较多时更加突出,尤其是主机数量大于可用IP地址数量的时候。为了方便将来的IP地址资源管理,我们首先配置一个DHCP服务器,来自动完成管理局域网内部计算机的IP地址分配工作。

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)使网络管理员可以集中管理一个网络系统,对网络中的IP地址进行自动分配。我们通常的拨号上网方式就是通过DHCP从ISP哪里动态得到IP地址的。

DHCP免除了管理员人为分配和改变IP地址的工作,减少网络管理的工作量。DHCP可以动态的或永久的给主机分配IP地址,也可以回收那些不用的,或者分配使用时间到期的IP地址,从而这些地址可以再分配给其他用户使用。当客户使用DHCP协议请求地址时,DHCP服务器将为客户进行地址分配,每个客户都有一个租期,在租期到达之前,客户可以请求重新获得租期,租期过后,客户将不允许使用该地址。

Red Hat Linux使用dhcpd进程提供DHCP服务,启动时dhcpd自动读它的配置文件/etc/dhcpd.conf,dhcpd将客户的租用信息保存在 /var/lib/dhcp/dhcpd.leases文件中,该文件不断被更新,从这里面可以查到IP地址分配的情况。

dhcpd为了向一个子网提供服务,需要知道子网的网络地址和网络掩码,并且还要知道地址分配的范围,下面给出一个简单的dhcpd.conf文件:

subnet 192.168.100.0 netmask 255.255.255.0 {

range 192.168.100.10 192.168.100.253;

}

此例中,dhcpd将给192.168.100.0网络分配192.168.100.10到192.168.100.253的IP地址。

租期时间可以从0秒到无限长,可以根据需要来定。缺省的租期时间为一天,即86400秒。可以为主机定义两个租期长度:

default-lease-time 默认租期时间

max-lease-time 用户可以获得的最长租期时间

下面的配置将缺省的租期时间设置为10分钟,最长租用时间为1小时:

subnet 192.168.100.0 netmask 255.255.255.0 {

range 192.168.100.10 192.168.100.253;

default-lease-time 600;

max-lease-time 3600;

}

DHCP还可以向客户提供更多的参数,这些参数可以用option来指定,下面是一个例子:

subnet 192.168.100.0 netmask 255.255.255.0 {

range 192.168.100.10 192.168.100.253;

default-lease-time 600;

max-lease-time 3600;

option subnet-mask 255.255.255.0;

option routers 192.168.100.254;

option domain-name-servers 202.102.134.68;

}

正如前面讲到的,通过DHCP获得IP地址的客户端电脑,在租期过后,可能就会失去了原来的IP。如果我想让我的某些主机永远都使用一个固定的IP地址,那么可以这样设置:

host pangty {

hardware ethernet 00:10:dc:8f:5b:ff;

fixed-address 192.168.100.9;

}

这样以来,当网卡物理地址(MAC地址)是00:10:dc:8f:5b:ff的主机pangty请求分配IP地址时,DHCP会固定的分配192.168.100.9这个地址给它。

Windows主机的网卡物理地址可以用ipconfig指令获得,在DOS窗口下键入

ipconfig /all

显示的信息里面找到类似这样的一行:

Physical Address. . . . . . . . . : 00-10-DC-8F-5B-FF

后面的00-10-DC-8F-5B-FF就是该网卡的物理地址。

§§ 在Linux服务器上安装配置DHCP服务

在刚才我们安装了Linux的机器上,先检查一下有没有安装dhcp软件包:

[root@rh73 ~]# rpm -qa|grep dhcp

如果还没有安装,在Red Hat Linux 7.3的安装盘上找到dhcp相关的软件包:

[root@rh73 ~]# mount /mnt/cdrom

[root@rh73 ~]# cd /mnt/cdrom/Red Hat/RPMS

[root@rh73 /mnt/cdrom/Red Hat/RPMS]# ll|grep dhcp

-rw-r--r-- 1 root root 121323 May 8 08:11 dhcp-2.0pl5-8.i386.rpm

-rw-r--r-- 1 root root 30509 May 8 07:58 dhcpcd-1.3.22pl1-7.i386.rpm

其中dhcpd是dhcp客户端软件,在系统安装时是默认安装的,现在只需要安装dhcp软件包

[root@rh73 /mnt/cdrom/Red Hat/RPMS]# rpm -ivh dhcp-2.0pl5-8.i386.rpm

Preparing... ########################################### [100%]

1:dhcp ########################################### [100%]

如前面所述,dhcpd默认的配置文件是/etc/dhcpd.conf,在使用之前,首先要配置一下该文件。其实在安装完毕软件包后,dhcp软件包会给出一个例子:/usr/share/doc/dhcp-2.0pl5/dhcpd.conf.sample,你可以将它复制到/etc目录下,名字改成 dhcpd.conf,然后对它进行相应的修改,来适应自己的需求。现在我们不管它,自己来创建一个:

[root@rh73 ~]# vi /etc/dhcpd.conf

然后键入下面的内容:

subnet 192.168.100.0 netmask 255.255.255.0 {

option subnet-mask 255.255.255.0;

range 192.168.100.10 192.168.100.253;

option broadcast-address 192.168.100.255;

option routers 192.168.100.254;

option domain-name-servers 202.102.152.3, 202.102.134.68;

default-lease-time 86400;

max-lease-time 259200;

}

host pangty {

hardware ethernet 00:10:dc:8f:5b:ff;

fixed-address 192.168.100.9;

}

存盘退出。所有的配置基本完成了,配置文件很简单。这个DHCP服务器将为192.168.100.0/255.255.255.0的子网自动分配IP地址,自动分配地址的范围是192.168.100.10到192.168.100.253,自动获得IP地址的主机默认网关是 192.168.100.254,DNS为202.102.152.3和202.102.134.68。该配置文件还为MAC地址是00:10:dc: 8f:5b:ff的主机固定分配192.168.100.9这个地址。

还有一个问题:如果运行dhcpd的机器有多于一个的网卡,还需要告诉dhcpd是工作在哪块网卡接口上的:

[root@rh73 ~]# vi /etc/sysconfig/dhcpd

DHCPDARGS="eth1"

存盘退出。现在启动dhcpd进程:

[root@rh73 ~]# /etc/rc.d/init.d/dhcpd start

Starting dhcpd: [ OK ]

§§ Windows主机做客户端测试DHCP

现在到客户端,测试一下它是否正常工作,以Windows 2000 Professional为例,在控制面板打开“拨号与网络连接”,双击“本地连接”图表察看本地连接状态,选择“属性”:

选择“Internet 协议(TCP/IP)”,点击“属性”按钮:

选中“自动获得IP地址”和“自动获得DNS服务器地址”选项:

点“确定”关闭该对话框。打开一个“命令提示符”窗口(DOS窗口),键入下面的命令:

C:\>;ipconfig/renew

C:\>;ipconfig/all

Windows 2000 IP Configuration

Host Name . . . . . . . . . . . . : pangty

Primary DNS Suffix . . . . . . . :

Node Type . . . . . . . . . . . . : Hybrid

IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :

Description . . . . . . . . . . . : Intel(R) PRO/100 VM Network Connection

Physical Address. . . . . . . . . : 00-10-DC-8F-5B-FF

DHCP Enabled. . . . . . . . . . . : Yes

Autoconfiguration Enabled . . . . : Yes

IP Address. . . . . . . . . . . . : 192.168.100.9

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 192.168.100.254

DHCP Server . . . . . . . . . . . : 192.168.100.254

DNS Servers . . . . . . . . . . . : 202.102.152.3

202.102.134.68

Lease Obtained. . . . . . . . . . : 2002年7月24日 08:21:52

Lease Expires . . . . . . . . . . : 2002年7月24日 20:21:52

一切工作正常,我的计算机pangty通过DHCP获得了IP地址192.168.100.9,以及其他相关的网卡参数。

我们希望服务器每次启动时自动启动dhcp服务,这可以用ntsysv来设置,在命令行键入ntsysv:

[root@rh73 ~]# ntsysv

显示如下对话框:

确定选中了dhcpd项,然后确认,这样每次服务器重起时会自动启动dhcpd进程。

[tips]

我们这里用到了ntsysv这个工具,它是用来管理Linux不同运行级下的进程的,这个工具可以直观的来管理/etc/rc.d/init.d下的启动脚本,决定在某个启动级别是否加载/停止某个服务,与之相关的另外一个命令是chkconfig,下面我们做简单的介绍。

对Linux运行级的了解有助于系统的维护工作。Linux系统启动时遵照Sys V init的boot过程进行,系统boot时首先加载运行init程序,由它负责启动所有的需要在boot时运行的进程。其中包括供你登入的getty, NFS守护进程,FTP守护进程,以及任何需要机器在boot时启动的进程。Sys V init已成为LINUX世界中boot时启动进程的标准。Sys V init的配置文件位于/etc下面的一个名为rc.d子目录中,在rc.d下会发现rc.sysinit以及以下目录:

  init.d

  rc0.d

  rc1.d

  rc2.d

  rc3.d

  rc4.d

  rc5.d

  rc6.d

init.d下面有许多脚本程序。一般来说,针对每一项需要在boot或改变运行级时启动的服务均需要一个脚本程序。这些服务包括网络,NFS,sendmail,httpd等等。启动事件的执行过程是这样的:

" 系统内核查找init并执行第一个发现的init。

" 由init来执行/etc/rc.d/rc.sysinit

" rc.sysinit执行了一系列的操作后接着运行rc.serial(如果存在的话)

" 由init执行所有默认运行级下的脚本程序

" 由init执行rc.local

默认的运行级由/etc/inittab控制。在该文件里面有一行:

id:3:initdefault:

对于大多数系统,该值被设置为3,也就是默认运行级为3。如果您想改变默认运行级,就编辑/etc/inittab,将3改为其它数值。

不同的运行级定义如下:

0 为停机,机器关闭。

1 为单用户模式,就像Win9x 下的安全模式类似。

2 为多用户模式,但是没有NFS 支持。

3 为完整的多用户模式,是标准的运行级。

4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。

5 就是 X11 ,启动时进到 X Window 系统。

6 为重启,运行 init 6 机器就会重启。

以rc2.d为例,该目录下有很多以S加数字开头的符号连接,如S10network。文件开头的S代表start就是启动服务的意思,后面的数字10就是启动、停止的顺序。在同一个目录下,你还可以看到S80sendmail这个文件,因为没有启动网络的情况下,启动sendmail是没有何作用的,所以用80这个数值来指出sendmail的启动在network(10)以后。

另外,在/etc/rc.d/rc2.d 还可以看到那些K开头的文件,例如/etc/rc.d/rc2.d/ K35dhcpd,K代表kill,就是停止或关闭服务。

不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root 口令,那么可以让机器启动进入单用户状态来设置。在启动后的 lilo 提示符下输入:linux single,就可以使机器进入运行级1,并把 root 文件系统挂为读写。此时的单用户模式会跳过所有系统认证,你可以键入passwd指令来改变root口令。

标准的Linux运行级为3 或者5,如果设定是3的话,系统就运行在完全多用户状态。如果设定是5的话,则启动后自动运行X Window系统。

Linux运行级的改变可以通过 init 命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用 init 1 来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S 开头的文件,按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig 命令用来更新和查询不同运行级上的系统服务。

chkconfig语法为:

chkconfig --list [name]

chkconfig --add name

chkconfig --del name

chkconfig [--level levels] name <on|off|reset>;

chkconfig [--level levels] name

chkconfig 有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回 true,否则返回 false。 --level 选项可以指定要查看的运行级而不一定是当前运行级。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。

对于 on 和 off 开关,系统默认只对运行级 3,4,5有效,但是reset可以对所有运行级有效。指定--level选项时,可以选择特定的运行级。

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

chkconfig选项介绍:

--level levels

指定运行级,由数字 0 到 7 构成的字符串,如:--level 35 表示指定运行级3 和5。

--add name

这个选项增加一项新的服务,chkconfig确保每个运行级有一项启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动建立。

--del name

用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

--list name

列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

每个被chkconfig管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用“\”跨行注释。

例如,random.init 包含三行:

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for \

# higher quality random number generation.

表明random脚本在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为80。如果想了解更详细的内容,现在就去看看自己/etc/rc.d/init.d目录下的脚本吧。

__________________

爱你不解释 2022-10-10 00:45:44

我安装的dhcp服务器为什么在/etc/rc.d/init.d/下面没有dhcpd.conf?
我用rpm -qal |grep dhcp得到如下信息:
/etc/dhcpc
/ech/dhcpcd
/sbin/dhcpcd
/usr/share/doc/dhcpcd-1.3.18p8
/usr/share/doc/dhcpcd-1.3.18p8/readme
/usr/share/doc/dhcpcd-1.3.18p8/chcpcd-eth0.exe
/usr/share/doc/iproute-2.2.4/examples/dhcp-client-script
我该如何做?

玻璃人 2022-10-10 00:45:44

dhcp已经安装,那么我的win2k的浏览器里面是否还需要设置proxy以及端口?如果我不设置win2k能不能上网?我想让我的redhat既做代理服务器,又做dhcp服务器,不知该如何?恳请赐教!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文