linux下dhcp服务器的典型应用

             Linux下dhcp技术的总结

一:dhcp的工作原理

截图20

简介: DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议)缩写,它

的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一对一对应会造成非常严重的资源浪费。DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。DHCP 的分配形式 首先,必须至少有一台 DHCP 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商 TCP/IP 的设定环境。

原理:

DHCP是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。

1、IP租用请求:在任何时候,客户计算机如果设置为自动获取IP地址,那么在它开机时,

就会检查自己当前是否租用了一个IP地址,如果没有,它就向DCHP请求一个租用,由于该客户计算机并不知道DHCP服务器的地址,所以会用255.255.255.255作为目标地址,源地址使用0.0.0.0,在网络上广播一个DHCPDISCOVER消息,消息包含客户计算机的媒体访问

控制(MAC)地址(网卡上内建的硬件地址)以及它的NetBIOS名字。

2、IP租用提供:当DHCP服务器接收到一个来自客户的IP租用请求时,它会根据自己的作

用域地址池为该客户保留一个IP地址并且在网络上广播一个来实现,该消息包含客户的MAC地址、服务器所能提供的IP地址、子网掩码、租用期限,以及提供该租用的DHCP服务器本身的IP地址。

3、IP租用选择:如果子网还存在其它DHCP服务器,那么客户机在接受了某个DHCP服务器的DHCPOFFER消息后,它会广播一条包含提供租用的服务器的IP地址的DHCPREQUEST消息,在该子网中通告所有其它DHCP服务器它已经接受了一个地址的提供,其他DHCP服务器在接收到这条消息后,就会撤销为该客户提供的租用。然后把为该客户分配的租用地址返回到地址池中,该地址将可以重新作为一个有效地址提供给别的计算机使用。

4、IP租用确认:DHCP服务器接收到来自客户的DHCPREQUEST消息,它就开始配置过程的最后一个阶段,这个确认阶段由DHCP服务器发送一个DHCPACK包给客户,该包包括一个租用期限和客户所请求的所有其它配置信息,至此,完成TCP/IP配置。

分配方式:

人工分配(Manual Allocation),网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期。

自动分配( Automatic Allocation),其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。

动态分配(Dynamic Allocation),当 DHCP客户端 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。动态分配显然比自动 分配更加灵活,尤其是当您的实际 IP 地址不足的时候,使用动态分配的方式是最好的选择。

说明:dhcp使用的协议为udp,服务器端使用的67端口,客户端使用的是68端口。

案例一 :单一区域的管理

需求分析:

在一个局域网中搭建dhcp服务器并为该网段分配各网关参数

示意图:

截图00

实现步骤:

dhcpserver 的搭建 选择vmnet3网卡

1:安装dhcp-3.0.5-21.el5.i386.rpm

[root@zzu ~]# mount /dev/cdrom /mnt/cdrom/

[root@zzu ~]# cd /mnt/cdrom/Server/

[root@zzu Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm

warning: dhcp-3.0.5-21.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID

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

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

2: 查询dhcp的配置文件的所在的位置

[root@zzu Server]# rpm -qc dhcp

/etc/dhcpd.conf

/etc/rc.d/init.d/dhcpd

/etc/rc.d/init.d/dhcrelay

/etc/sysconfig/dhcpd

/etc/sysconfig/dhcrelay

/var/lib/dhcpd/dhcpd.leases

3:修改dhcp的配置文件

[root@zzu Server]# vim /etc/dhcpd.conf 在这里我们可以参考dhcp的模板配置文件

:r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample(底行模式下执行)

1 #

2 ddns-update-style interim;

3 ignore client-updates; 动态的刷新客户端的信息

4

5 subnet 192.168.10.0 netmask 255.255.255.0 {

6

7 # --- default gateway

8 option routers 192.168.10.254; 网关地址

9 option subnet-mask 255.255.255.0; 子网掩码

10

11 option domain-name "www.test.com"; 域名

12 option domain-name-servers 222.88.88.88,222.85.85.85; 域名服务器的地址,注意两个ip地址之间需要要逗号分隔开才行

13

14 option time-offset -18000; # Eastern Standard Time

15 # option ntp-servers 192.168.1.1;

16 # option netbios-name-servers 192.168.1.1;

17 # --- Selects point-to-point node (default is hybrid). Don't change this unless

18 # -- you understand Netbios very well

19 # option netbios-node-type 2;

20

21 range dynamic-bootp 192.168.10.1 192.168.10.253; ip的范围

22 default-lease-time 21600;默认的租约时间为6小时

23 max-lease-time 43200;最大的租约时间为12小时

24

25 # we want the nameserver to appear at a fixed address ip地址的绑定

26 host ns {

27 {ext-server marvin.redhat.com;

28 hardware ethernet 12:34:56:78:AB:CD;

29 fixed-address 207.175.42.254;

30 }

31 }

32 # DHCP Server Configuration file.

--

21,47-54 71

33 # see /usr/share/doc/dhcp*/dhcpd.conf.sample

4:重启dhcp服务

[root@zzu Server]# service dhcpd configtest 检测dhcpd.conf的语法是否正确

[root@zzu Server]# service dhcpd restart 重启dhcp服务

.. dhcpd [ok]

[root@zzu Server]# netstat -tupln |grep dhcpd

udp 0 0 0.0.0.0:67 0.0.0.0:*

[root@zzu ~]# chkconfig dhcpd on 设置dhcpd为自动启动

[root@zzu ~]# chkconfig --list|grep dhcp dhcpd 查看dhcp在各个运行级别中的自启动状态

0:off 1:off 2:on 3:on 4:on 5:on 6:off

5:在客户端进行验证 在这里我们将dhcp server 和客户机均放在vmnet 3 区域

截图01

截图02

6:客户端的查看 我们已经得到了相应的ip地址参数,以及相应的域名

截图03

后续;实现对ip地址的绑定 ,是的特定的主机总是得到同样的ip地址

我们只需要最/etc/dhcpd.conf进行修改即可

[root@zzu ~]# vim /etc/dhcpd.conf

1 #

2 ddns-update-style interim;

3 ignore client-updates;

4

5 subnet 192.168.10.0 netmask 255.255.255.0 {

6

7 # --- default gateway

8 option routers 192.168.10.254;

9 option subnet-mask 255.255.255.0;

10 option domain-name "test.com";

10 option domain-name "test.com";

11 option domain-name-servers 222.88.88.88,222.85.85.85;

12

13 option time-offset -18000;

14 # Eastern Standard Time

15 # option ntp-servers 192.168.1.1;

16 # option netbios-name-servers 192.168.1.1;

12

13 option time-offset -18000;

14 # Eastern Standard Time

15 # option ntp-servers 192.168.1.1;

16 # option netbios-name-servers 192.168.1.1;

17 # --- Selects point-to-point node (default is hybrid). Don't change this unless

18 # -- you understand Netbios very well

19 # option netbios-node-type 2;

20

21 range dynamic-bootp 192.168.10.1 192.168.10.111;

range dynamic-bootp 192.168.10.113 192.168.10.253;

22 default-lease-time 21600;

23 max-lease-time 43200;

24

25 # we want the nameserver to appear at a fixed address

26 host test {

27 next-server marvin.redhat.com;

28 hardware ethernet 00:0c:29:18:30:8b; 客户端的mac地址

29 fixed-address 192.168.10.112;

30 }

31 host ns {

32 next-server marvin.redhat.com;

33 hardware ethernet 12:34:56:78:AB:CD;

34 fixed-address 202.196.64.1;

35 }

36 }

37 # DHCP Server Configuration file.

38 # see /usr/share/doc/dhcp*/dhcpd.conf.sample

-- INSERT --

[root@zzu ~]# service dhcpd restart 重新启动该服务

再次测试

截图04

查看错误时,经常查看相关的日志

/var/log/message /var/lib/dhcpd/dhcp.release

案例二:dhcp中继

原理:

DHCP中继代理原理以及使用的场合(ip包的数据部分存在一个网管作用域)

中继代理原理:

DHCP客户使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源的,但多个 DHCP服务器,毕竟要带来管理上的不方便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务成为可能。

使用的场合:

当一个网络中的主机数目较大时,手工分配IP不仅麻烦而且容易出错。DHCP服务的出现大大方便了主机IP地址的分配。现在的企业组网时,根据实际需要来划分vlan,成了必不可

少的一个步骤。如何让一个DHCP服务器同时为多个网段提供服务,就是我们所要讨论的问题。

需求分析:

在一个企业的网络中有三个子网192.168.2.0 192.168.3.0 192.168.4.0 ,在2.0网段中有一个dhcp server ip地址为192.168.2.100,通过dhcp 中继实现该服务器能够跨子网为各个局域网进行相关服务.

示意图:

截图05

linux下

DHCP SERVER 的搭建

一:同上,安装相应的包并查看相应的网络参数

[root@zzu ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:0C:29:50:03:5E

inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe50:35e/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1534 errors:0 dropped:0 overruns:0 frame:0

TX packets:991 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:141086 (137.7 KiB) TX bytes:150302 (146.7 KiB)

Interrupt:75 Base address:0x2000

[root@zzu ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

0.0.0.0 192.168.2.254 0.0.0.0 UG 0 0 0 eth0

二:修改配置文件

[root@zzu ~]# vim /etc/dhcpd.conf

1

2 ddns-update-style interim;

3 ignore client-updates;

4 shared-network mynet {

5 subnet 192.168.2.0 netmask 255.255.255.0 {

6 } 这是一个空的作用域

7 subnet 192.168.3.0 netmask 255.255.255.0 {

8 option routers 192.168.3.254;

9 option subnet-mask 255.255.255.0;

10 option domain-name "tec.com"; 技术部作用域

11 option domain-name-servers 222.88.88.88,222.85.85.85;

12 range dynamic-bootp 192.168.3.1 192.168.3.253;

13 default-lease-time 21600;

14 max-lease-time 43200;

15 }

16 subnet 192.168.4.0 netmask 255.255.255.0 {

17 option routers 192.168.4.254;

18 option subnet-mask 255.255.255.0;

19 option domain-name "mkt.com"; 市场部作用域

20 option domain-name-servers 222.88.88.88,222.85.85.85;

21 range dynamic-bootp 192.168.4.1 192.168.4.253;

22 default-lease-time 21600;

23 max-lease-time 43200;

24    }

25 }

三:测试重启dhcp服务

[root@zzu ~]# service dhcpd configtest

Syntax: OK

[root@zzu ~]# service dhcpd restart

Starting dhcpd: [ OK ]

[root@zzu ~]#

路由器的配置

一:安装 dhcp-3.0.5

编辑 /etc/sysconfig/dhcrelay

截图10

二:开启dhcp中继

[root@target ~]# service dhcrelay start

Starting dhcrelay: [ok]

[root@target ~]#

[root@target ~]# chkconfig dhcrelay on

三:开启转发功能

vim /etc/sysctl.conf

截图09

[root@zzu ~]# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

[root@zzu ~]#

Net.ipv4.ip_forward =1 执行sysctl -p 一定要执行sysctl -p

四:路由器的网络参数

截图06

截图07

截图08

五:将xp的网卡选为vmnet3模拟tec 3.0 网段的主机 测试

截图11

六:将xp的网卡选为vmnet4模拟mkt 4.0 网段的主机 测试

截图12

七:观察dhcp server 的日志

Tail –f /var/lib/dhcpd/dhcprelease

截图13

windows下

一、配置路由和远程访问

笔者以一台使用Windows Server 2003系统的计算机为例,将该计算机系统配置成LAN路由

器,用来连接这两个不同的子网。

系统默认设置是没有启用这项服务的,所以我们首先要安装并启用它。点击“控制面板→管

理工具”,双击“路由和远程访问”选项,打开“路由和远程访问”窗口,右键点击“本地”

服务器,在弹出的菜单中选择“配置并启用路由及远程访问”选项(见图),弹出“路由及

远程访问服务器安装向导”对话框,点击“下一步”按钮,选择“自定义配置”后,再点击

“下一步”按钮,选择“LAN路由”选项,最后点击“完成”按钮即可。

二、配置DHCP中继代理

我们需要把这台使用Windows Server 2003系统的计算机配置成DHCP中继代理服务器。这

样当DHCP客户机广播请求地址租赁时,中继代理服务器就会把这个消息转发给另一子网中

的DHCP服务器,然后再将DHCP服务器返回的分配IP地址的消息转发给DHCP客户机,从而

协助DHCP客户机完成地址租赁。

提示:中继代理是为不在同一子网中的DHCP客户机和DHCP服务器之间中转DHCP/BOOTP消

息的小程序。

1.安装DHCP中继代理程序

在“路由和远程访问”窗口中,依次展开“本地服务器→IP路由选择→常规”选项,右键

点击“常规”选项,在弹出的菜单中选择“新增路由协议”,然后在“新路由协议”窗口中

选择“DHCP中继代理程序”,接着点击“确定”按钮。

截图14

2.指定DHCP服务器

右键点击刚刚添加的“DHCP中继代理程序”选项,在弹出菜单中选择“属性”,进入“DHCP中继代理程序属性”对话框,在“常规”标签页的“服务器地址”栏中输入另一子网的DHCP服务器的IP地址,如192.168.2.100,然后点击“添加”按钮,最后点击“确定”按钮关闭该对话框。

截图16

3.配置访问接口

右键点击“DHCP中继代理程序”选项,在弹出菜单中选择“新增接口”,然后在“DHCP中继代理程序的新接口”对话框中的“接口”列表框中选中可以访问另一子网DHCP服务器的那个接口,通常这个接口就是连接另一子网的网卡,接着点击“确定”按钮。然后在弹出的“DHCP中继站属性”对话框中,选中“中继DHCP数据包”选项,这样就启用了它的中继功能,最后点击“确定”按钮。完成以上配置后,本子网中的DHCP客户机就可以通过DHCP中继代理程序访问另一子网中的DHCP服务器了。

截图15

4:将xp的网卡选为vmnet3模拟tec 3.0 网段的主机 测试

截图17

5:将xp的网卡选为vmnet4模拟mkt 4.0 网段的主机 测试

截图18

6:观察dhcp server 的日志

截图19

小结

1:dhcp 服务器有效解决解决了客户端ip地址的分配问题,减少了网络管理员的工作量,

超级作用域可以使一台dhcp服务器来管理多个网段的ip地址

Shared-network zzdx{ 超级作用域的符号

subnet 192.168.2.0 netmask 255.255.255.0 {

option routers 192.168.2.254;

option subnet-mask 255.255.255.0;

option domain-name " test.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

range dynamic-bootp 192.168.2.1 192.168.2.253;

default-lease-time 21600;

max-lease-time 43200;

}

subnet 192.168.3.0 netmask 255.255.255.0 {

option routers 192.168.3.254;

option subnet-mask 255.255.255.0;

option domain-name " test.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

range dynamic-bootp 192.168.3.1 192.168.3.253;

default-lease-time 21600;

max-lease-time 43200;

}

}

超级作用的使用必须是一个vl中的ip地址分配完以后才可以使用另一个vl中的ip地址

2:linux 需要为dhcp server 建立一个空的作用域 ,并且需要把所有的借口配置在中继

脚本的借口中 ,而在windows下只需要增加两个需要中继的借口即可

3:dhcp中继减少了资源,节约了资金。

欢迎加入郑州阳仔的网络工程师自由交流群--132444800(请注明自己的身份,就说是51cto的博友)

你可能感兴趣的:(服务器,工作原理,target,blank,的)