linux下dhcp服务器设置

上一篇 / 下一篇  2008-04-13 14:14:51 / 个人分类:Linux

linux现在主要的应用在服务器上。而作为服务器,Web,dhcp,和dns又是互联网上最主要的服务,这一讲,我和朋友们讨论dhcp的应用。
5i(B npl] Q4e?1i0  
B'~-v~b` Z]0  (注意:配置网络服务器,如果你在现有的网络环境中选择安装或者使用VM的桥接网络的时候,有可能会对你当前的网络环境造成影响,请在配置之前咨询你的网络管理人员。)爱踢博客社区'n!?9}b4T`1y B
  
y.C|X b}'l?0  首先介绍下什么是dhcp协议爱踢博客社区;F [ k,s.K%Q L
  
`Fee E8`-r0  dhcp(dynamic host configuration protocol)就是动态主机分配协议,它用于给某个网络段上的主机进行动态分配IP地址和相关网络环境的配置工作,比如我们使用adsl拨号就是用的dhcp协议。
YY/h/`ZkB#N{0  爱踢博客社区 r,I icz7N2L c
  一、dhcp的常用的概念。爱踢博客社区v N2f(dA1T6o
  爱踢博客社区Eg'fi5@T%r;]
  1、 作用域:
!RY'V7bC7mSB\Px0  
'?j }4WooRt0  作用域是一个网络中可分配IP地址的连续。
#x.W |bB0  爱踢博客社区)U/{~9I}c
  2、超级作用域爱踢博客社区 qnSm5tx
  爱踢博客社区 T:~,Tg:Jy'Ivr
  超级作用域是一组作用域的集合。是由一个物理子网中包含的多个IP子网组成的。我们可以理解为作用域是一个用户,而超级作用域就是这个用户的组。
7O1ah?@u5l.W0  
-? BeW c{d}0  3、排除范围
Q6V[;C@S#{0  爱踢博客社区 ?4V-z ?/T:}W4i
  排除范围是用来定义某IP或者某一组的IP不用于分配给dhcp客户机爱踢博客社区v$D+K%O5E
  爱踢博客社区_7`K!q'b]0c.Qq-[Lr4dZ
  4、地址池
Nk4PH/C|G `wS0  爱踢博客社区 eQ nt'eF2T!Mc2~
  定义了dhcp作用域和排除范围后,剩下的可用地址构成了一个地址池。池中的地址可以分配给用户使用
0~sy1Q{/w0  爱踢博客社区&j"NsRg3uF9W+e
  5、租约
E2pXBy_k4e3o.F0  
6S(y,pVa+q_ zj0  就是dhcp服务器指定的时间长度,在此长度内客户机可以使用分配给它的地址,如果租约到期,客户机必须更新ip租约。爱踢博客社区i8i\ b'o7fAm?
  爱踢博客社区7X\8M0zFRE {
  6、保留地址
kS&s k,Q"ac O0  爱踢博客社区G] cdQw&J}/r
  用户可以使用保留地址,保留地址提供了一个将动态地址和其MAC地址相关联的手段。用于保证此网卡长期使用某个IP地址。爱踢博客社区&@zh\KG;L#e
  
3v7Z t6J PT.C F0  7.选项类型。爱踢博客社区p4Di9Ag
  
e*k:M3HMS-S7O"E m0  这是DCHP为工作站提供的其它参数,比如网关的IP地址,dns服务器等。
8y J6ki(f1mQ$B0  爱踢博客社区iD$Y| K;U3G
  这里仅仅介绍了dhcp最基础的一些概念,因为在此主要介绍linux下是如何配置这些服务的。所以如果朋友们想了解更多有关dhcp或者后面介绍的几个服务的知识(linux下和win下的dhcp的概念是一样的)可以参阅网络或者书籍。
l1T%ZG6p {0  
I7kktW:\"pDL|k0  二、Dhcp的设置
B`fA6Q+|!D*|S0  爱踢博客社区,RGK?H
  首先安装dhcp服务。如果你在首次安装时没有选择dhcp组件,你可以在你发行版的安装光盘和rpm的添加删除包中找到相关软件,进行安装,或者可以在第二张光盘的/RedHat/RPMS/下找到dhcp-3.0p11-23.i386.rpm的二进制rpm发行包进行安装,安装后效果相同。爱踢博客社区 v2b%X1I9p(\V1l
   
(f `Vr"M3A0  然后更新的时候按提示插入安装盘
rS d;M [OD&hlt5}L0
Ls Yqd}A9M0  
 
%T {9KX{0t!hh0  再给提示朋友们一次,在linux中,所有的程序配置都由文本文件进行控制。所以我们要设置dhcp服务器,就可以通过修改配置文件来达到目的。
Z~8Z/qh3Gl0  爱踢博客社区T"o7\ SETR;S
  所以我们先看下它的典型的配置文件爱踢博客社区-biyhT+O&D S!K:h
  爱踢博客社区F-{w Wn
  dhcp的配置文件是/etc/dhcpd.conf,不过默认的情况下这个文件不存在,你需要使用它的模板建一个配置文件。模板的位置在/usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample爱踢博客社区5f{!F\ z(J4j
  爱踢博客社区sW;LB+F
  如果你找不到你的配置文件可以使用我们学过的查找命令,locate filename进行寻找,如图:
aK+xVS0~8X0  
  
t mp{qb*jUDd@E0  查找到此文件后,我们先来看下模板的配置情况。
h,DzY|D0  
9yu#[K3H6d0  为了方便,我把这个配置文件用cat 命令给导入到了一个文本文件中,然后弄到win下来了。模板配置文件内容如下:
xG_ ?;AHJ0  
&g2Fpu(S)_{0  和所有的配置文件类似的,它用#代表注释。现在看看每行都说了什么
/Xf.s? `+b0  ddns-update-style interim;
dRv%eU'[H2CU0  #配置使用过渡性 DHCP-DNS互动更新模式。
)HJ1kq3mf;@/g~ z0  ignore client-updates;
U ZB&N2w4m)g2^S0  #忽略客户端更新爱踢博客社区7~2~(G)|:GFG4x
  subnet 192.168.0.0 netmask 255.255.255.0 {
Mmis8Q#U0  #设置子网声明
-`e;o#e Eb7K0  # --- default gateway
)g4S9U,MG.@0  option routers 192.168.0.1;
4nw,akV7z)f"ZW"N0  #设置缺省网关为192.168.0.1爱踢博客社区/Al$z$Xtu;F2G(AV
  
+m!Se/qY7nwF |S)v0  option subnet-mask 255.255.255.0;
3K$D/@d8y0  #设置客户端的子网掩码
}3TT!^[f)pB:o0  option nis-domain "domain.org";爱踢博客社区9q ]4cc(iK-J~!jF
  #为客户设置NIS域爱踢博客社区-_O!\t3M R fb
  option domain-name "domain.org";
/l4o/Wz.S3Q7Y0  #为客户设置域名
*MO?Q'Jg0sR0  option domain-name-servers 192.168.1.1;
)s+GfoG4H:y r3o0  #为客户设置域名服务器爱踢博客社区8SHz5|}-Bt
  option time-offset -18000; # Eastern Standard Time
U;^V[9pH\ vk/a0  #设置偏移时间。爱踢博客社区Y1b&wV.cS
  # option ntp-servers 192.168.1.1;
?i'B0I4Uh\0  设置NTP服务器。爱踢博客社区(E$i E5W U*l#wsF#v
  # option netbios-name-servers 192.168.1.1;爱踢博客社区_*wOxp|h
  设置wins服务器爱踢博客社区D iX%?/X#J;l7F[
  # --- Selects point-to-point node (default is hybrid). Don't change this unless爱踢博客社区q!ZS'V9K'C5_&s*C&]
  # -- you understand Netbios very well
/Vq9IHwrq@0  # option netbios-node-type 2;
2@U;x/[ K(n0  #设置netbios节点类型我不清楚这个netbios节点是什么东西。*_*!,不懂最好不设。嘿嘿。爱踢博客社区 G@VR(mC
  
d2G3t.^{ p8u,RG0  range dynamic-bootp 192.168.0.128 192.168.0.255;
c$Xzl(U1Msyj#}8LV0  #设置动态的地址池。爱踢博客社区[RW&C"z)c
  default-lease-time 21600;爱踢博客社区6a1|7lcz
  #设置缺省的地址租期。爱踢博客社区q%Rhz_~!mX#xwU
  爱踢博客社区jt6m+Dj2bl
  max-lease-time 43200;爱踢博客社区#Rp%P7m(vEe
  #设置客户端最长的地址租期爱踢博客社区~jX5g\"I^
  爱踢博客社区U L E-e,e YM e
  # we want the nameserver to appear at a fixed address
2q2asVr0  //设置主机声明
D9j4n/uG0P.O0  host ns {爱踢博客社区GUI&`:m5?L'_4w
  next-server marvin.redhat.com;爱踢博客社区Qp6eW8I8B)`t
  //设置由于定义服务器从引导文件中装入的主机名,用于无盘站。
+PK.nQ!]o0  hardware ethernet 12:34:56:78:AB:CD;
&N$x:qSiLw0  指定dhcp客户的mac地址
i]0A2] o)_0  fixed-address 207.175.42.254;
#YCZ;tPb3s0  给指定的mac地址分配ip
l F2m4q6c `g Rg-]0  }爱踢博客社区 {S5rVQ5F/mZ ] T/^A
  }爱踢博客社区 {&\J6{,UwD
  
M,a^W*s,rJJ3T ?0  看完了这个配置文件,朋友们如果有一定的英文基础。是不是觉得其实很好懂,其实不要被linux的配置文件吓倒,配置linux远比windows简单和容易理解,这些配置文件给了你一个模板,你照模板进行填写就可以,类似于给了你一张计划书,上面有你要做的事情,你可以选择做或者不做,具体情况根据你的环境填填空就可以了。不象windows会给你一个向导,至于向导干了什么你根本不知道。出了问题,你也不知道改找谁。但是linux则不同,出了问题,你把你的配置单cat出来,然后贴到网上,讲出你的要求,别人很容易知道你到底干了些什么。爱踢博客社区lnl:Td0IJ^j
  爱踢博客社区o8GG r5@? H.p$f5i8H
  后面我们举个例子来做这个配置。爱踢博客社区5y ZF|U;}:F
  爱踢博客社区F9T'W~;Z9T*c.i
  先看下一个图,非常常见的网络环境。(俺改的以前的一个设计方案,因为讲这里是讲dhcp,就不把vlan考虑进来了,朋友们要是有兴趣,可以在社区http://www.easysafe.net/发帖专门讲这方面的问题。)
1kN^i7o!`N~0  
 
我们有一个10.0.0.0的网络,叫做easysafe.net爱踢博客社区S!BC;k9O
  
:uN mF)V0  有一个DHCP,有一套企业应用系统,
(f7l2U5nb0  
^;\)hMmS9vN0  dns的服务器地址10.0.0.12爱踢博客社区@:VG"_J_9|K
  
1m.A \9|^+@[0{0  系统的数据库服务器地址为10.0.0.10爱踢博客社区z%VAf.R#n }
  
-mKUA:kA#tx0  应用服务器地址为10.0.0.11
"eeu [&Ga,Y;}0  爱踢博客社区1X fM*Rm
  有一个网管监控区,放的网管工作站,其IP分别是,10.0.0.30,机器名字叫webmaster
"F1N$^M1DJ7|B0  爱踢博客社区 RH"dZYx&w@
  然后有个防火墙做NAT,内部IP是10.0.0.1,外部IP是202.117.0.43(随便编个.HOHO)爱踢博客社区k'QT"p'af'kZ
  爱踢博客社区t%h?z-\ W6Ka
  你是这个企业的网管,由于你的机器比较多了,工作人员经常找你配IP地址。所以你让老总给你了台淘汰的机器,上面装上linux,配成DHCP服务器,来给他们分配IP地址。
Tfy-^4I;s P0  
$b5kZK9_,\0  那么,现在我们要怎么做呢。
[s5V5{m{8[~:G0  爱踢博客社区i0Ag4{eo~
  首先,我们先要考虑一下这个环境。爱踢博客社区-BFU \PQh,H
  10.0.0.10爱踢博客社区0I p^5f{!`T
  10.0.0.11,爱踢博客社区;|o8iZn hv/{5VS
  10.0.0.1爱踢博客社区#YU&@T/M#u N
  
+Do!A;S;yH#gH0  为避免网络问题,以上地址应该是保留的静态地址,也就是说你应该有一个排除范围。这个范围可大可小,在现在的情况下,为了避免以后的问题,可以把排除范围设置大点。比如我们设置为从10.0.0.1~10.0.0.20,为系统使用的。爱踢博客社区*q)S j5aU^:~d$M*zm
  爱踢博客社区4p0@Lg.S4r
  10.0.0.30是你自己用的,不过你不想让别人用这个ip,也不想每次重新装了系统后重新修改,因此,你决定把你的IP给绑定到MAC上。爱踢博客社区 S WoZkIU8f
  
?wvzOb$Ah*I0  其他的人可以随意使用10.0.0.21~10.0.0.254之间的一个地址。爱踢博客社区L$S#W3P4H8M4Z7lo
  爱踢博客社区 wJTH$s
  好了,现在调出我们的DHCP配置单模板,看如何配置。爱踢博客社区*R5cRqr(~Y7C%Ad
  爱踢博客社区0Qn*nlk2^gX
  ddns-update-style interim;
)eaD%_ wn0  ignore client-updates;爱踢博客社区 U,\_`Dh+Jxm],x
  
}1J {)iJie0  #subnet 192.168.1.0 netmask 255.255.255.0 {
lI#]'HXHt0  #声明变了,我们的总的网络是10.0.0.0/24
okzr"kp4hmI'y,p0  subnet 10.0.0.0 netmask 255.255.255.0{
5mt7PJ|"gEH0  #朋友在修改配置的时候,原有配置我们可以使用#注释掉。
-ROE;O!` q Np`x0  # --- default gateway爱踢博客社区:iE LJH+oJ6}2j
  #option routers 192.168.0.1;
V$KpfG5d0  #路由变了,是10.0.0.1爱踢博客社区2Ai;z,?7j,N;\O
  option routers 10.0.0.1;爱踢博客社区 F#}({"S$F8z H
  option subnet-mask 255.255.255.0;
tpCm g3C8c+NQx0  option broadcast-address 10.0.0.255;爱踢博客社区:{6Z{Ol"jXJ
  #添加一个广播地址
dZ x5Z$s8M[0  爱踢博客社区Q]0b[6For8M
  #这句不用改,因为我们的子网还是个三类地址的子网
\!^"ONT)I*}0  #option nis-domain "domain.org";爱踢博客社区 {bV%Dzym w
  #nis不用
2Z { U(hr8q0  #option nis-domain "easysafe.net ";
x)N/g5U+Et0  #option domain-name "domain.org";
bEA:j)|0  option domain-name "easysafe.net";
9T(W+G{Z*w/D)uBU0  #option domain-name-servers 192.168.1.1;
+{5VZi{M.DO1b0  option domain-name-server 10.0.0.12
B2[J{9] eC%Z0  option time-offset -18000; # Eastern Standard Time
6q2F$piZY J0  #这个时间偏移,根据本地情况来设置。
-o]&Lx(MU_0  # option ntp-servers 192.168.1.1;爱踢博客社区1{A G{jKM N
  # option netbios-name-servers 192.168.1.1;爱踢博客社区2w lK-?OZ9Yo[E-Z
  # --- Selects point-to-point node (default is hybrid). Don't change this unless
&I/C/Aso"r|0  # -- you understand Netbios very well爱踢博客社区Lnbg-\|5EC9T
  # option netbios-node-type 2;
*w,hmx V:P0  #上面的可以不修改,因为我这里没有ntp和wins服务器
;UAfp5l9SwJ|0  #range dynamic-bootp 192.168.0.128 192.168.0.255;爱踢博客社区8TGV jzX
  #这里开始设置你的动态ip地址池了爱踢博客社区%o1F1K;K-ZW$OY]
  #range dynamic-bootp 10.0.0.21 10.0.0.254
?I!B3kxQ}7H0  default-lease-time 21600;爱踢博客社区T0H A0i)Z)r7pf$jv#i
  max-lease-time 43200;
6UFsf)J8Tvo0  #缺省的更新ip时间和最大更新时间不修改默认的就可以。
'F`%~]n8U"S9g8d0  # we want the nameserver to appear at a fixed address
'?~:wS/U~xut)y4v0  #――――――――――――――――――――――
f KE*t+wefL(ednk6a0  #以上为模板中有的配置,现在加一些模板没有的配置爱踢博客社区`|+O-F:vC
  #――――――――――――――――――――――爱踢博客社区KL\:dM8mV;}!L
  爱踢博客社区a,s&r4nW
  subnet 10.0.0.0.0 netmask 255.255.255.0{爱踢博客社区8Nz8BcX#T'g\W
  
#~Z#MCvU~`0  range 10.0.0.21 10.0.0.254;
5A6A^0shtYe0  }
U}$hF7X0  #这里要注意了,在这里我们配置了我们的地址池!!从10.0.0.21到10.0.0.254
S/s*l NDw6?0  爱踢博客社区)wxz l1HO'c2dE
  #host ns {
v:Av6q3e xw(qa;d0  # next-server marvin.redhat.com;爱踢博客社区'o JdIn0K Y Z~'OE
  # hardware ethernet 12:34:56:78:AB:CD;爱踢博客社区dj?n8N+c8l
  # fixed-address 207.175.42.254;
#}+~+d5Z)f uI'Ct@0  #}
"csN|`*a0  #上面的是为特定用户来设置地址的。咱们来看看网管的机器该怎么配置,为了你以后
N5RpR#U6l0q0  #配置的方便,这里加个group声明一下,以便如果哪个人看上了某个地址,你把他固、
wWl?:c_"X)JUT0  #定上就可以。
6x,xZ%{+U w Yv3F0  group {爱踢博客社区 Z4EW0X/y
  host webmaster{
VJze8M-JP_(?0  option host-name “webmaster.easysafe.net”;爱踢博客社区^+_p2q\8}
  #你的主机名。可以就设置为webmaster
G*OT$p"F[0  hardware ethernet 00:cd:a9:70:e3:f3;
!~VWR#W)t0  #你的MAC地址,在linux下直接用ifconfig就可以看到。如果你要看win爱踢博客社区oz5KXW%P2~9m m
  #的mac地址可以用ipconfig当然这个MAC地址是我编的,呵呵。
b3zyw/n*D]^,h0  fixed-address 10.0.0.30
&Q ~%l J4z0  爱踢博客社区o:x n!_#n1E5R4w"~5V
  }
!_*_F#}2KB \0  }
k4_e)x9O$B0  }
2x8{:Nx|(a;b7gf#`0  
@ D'e"O5M+R0  朋友们可以看到,在这里我们改的配置文件的地方并不是很多:)总共加了也没有10条语句,但是dhcp的配置文件已经做好了。爱踢博客社区/TL D DHw
  
puhu D*E\0  然后我们把这个文件复制回etc目录下存储为dhcpd.conf,然后你可以用vi看一下爱踢博客社区,Wk(~7\7i{+k^-D+d*Q
  
 
Ag?N$`-X I-Hk(l0  不过别高兴的太早,linux怎么知道这是你要启动dhcp服务,并且使用这个配置文件呢?
现在就看我们后面要完成哪些工作了。爱踢博客社区8D9v7F'D0Vz!k!r
  爱踢博客社区 w7I"yUkB O
  首先,要运行dhcp,我们需要一个客户租约数据库文件这个文件在/var/lib/dhcpd.leases,默认的这个库是空的,不需要配置,不过管理员可以通过这个来察看dhcp的运行情况。‘
hx+R2Q5N uq0  
(\Q%Ld.`c I4H0  一般来说,这个文件的格式是爱踢博客社区nABg,^(N
  
e a4MH%V0P^0Ub;h0  lease address {statement}爱踢博客社区9]$\+xB#D
  
#~N2h6Q,\\0  根据以上要求创建/var/lib/dhcp/dhcpd.lease文件。爱踢博客社区 JT;F`%R`
  
o#^Zg*zP4v%x0  完成了以上的配置,后面就是要启动dhcp了,和以前说的smb服务一样,也是通过service命令来执行
K+{vdg_\U$^0V0  service dhcpd start爱踢博客社区0y9y_"x;w
  
 
-p)zi"ONl WW+x+}0  启动服务失败,系统提示第10和第27行出错。爱踢博客社区l[h8g:[&B3W6a g
  
4Q?;{?%zo1u%H0  原来一个是把domain-name-servers输错成了domain-name-server爱踢博客社区']r4~yj$k6P{ S
  
#rO@X3|n#n ]a M0  另一个则是添加了两个range爱踢博客社区*T%m \wmBl2b;N
  
C ~4j1]k0  费了半天力,到底把dhcp启动起来了。郁闷,又改了好几遍。爱踢博客社区&Hp _;nM!y0JDn9[
  
  
[1zs1j+j.C{d0  然后可以用pstree来察看此服务是否启动爱踢博客社区 q4K+E)l,~T L
  
;q9g.^(I^%I%s0LJ0  pstree |grep dhcpd爱踢博客社区 w0?U'|%S @$c
  如图所示,服务有了爱踢博客社区?j(g5ojS
  
 
8h&\M%C L"R,pc;y0  如果希望以后每次服务器启动都把dhcp启动的话可以用ntsysV来选择你的dhcp服务器。
+a0Cq(jc%s0wJ0  
DnHGBgFD'?0  如图:爱踢博客社区 lLTgc-jg3Nc {&K*V
  
 爱踢博客社区-Do3cPhYhe]Ew
  还剩下一点小问题,就是客户机的配置。
0T!V/P(w/e'w]bK0  爱踢博客社区;E4mf%n|"M
  客户机win下的不多说了如图:默认就是这样的。
5eR1vg%IjA5N0  
 爱踢博客社区n6X^`kC}
  在linux下面,你可以手动配置你的dhcp。
A(O ni+TxT2[ u0  爱踢博客社区u.o7RD0V
  察看你的网络配置文件,如果你没有设置为自动启动联网,则要修改你的网络配置文件。爱踢博客社区 SJN?Gi H{^
  vi /etc/sysconfig/network
X+W@*ed7y3G'P7rt0  添加爱踢博客社区:VIy#Z&h
  NETWORKING=yes爱踢博客社区TC2\8J@$\nL$@4Rm
  (让引导的时候启动联网)爱踢博客社区B tJ4I+Cp5mX"tu
  或者使用爱踢博客社区ek/[$I!z$t
  
/J&iv#g4^8T7j6P0  @echo “NETWORKING=yes”>/etc/sysconfig/network
~z|'g#h!p/Y0  然后再修改你的网卡配置文件爱踢博客社区Q;S$Faosg
  爱踢博客社区}v)E$I'{W
  /etc/sysconfig/network-scriptes/ifcfg-eth0 文件
tV0MH"so0  应该包含这几行爱踢博客社区,eLI0h3SL6K
  DEVICE=eth0爱踢博客社区H|M*J$JH"R kB|"k
  BOOTPROTO=dhcp爱踢博客社区:D7U*}9Rbh+}
  ONBOOT=yes
 

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar