DHCP原理:

DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方式,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,而且也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址。

DHCP工作过程分为四个步骤:

第一步(DHCPDISCOVER):客户端发送广播查找可以给自己提供IP地址的DHCP服务器,

第二步(DHCPOFFER):DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址打上标记,以防再次分配。

第三步(DHCPREQUEST):客户端收到广播后再次发送一个广播请求该地址,如果有多台DHCP响应,则第一个收到的优先。

第四步(DHCPACK):DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池中将该地址打上标记,以防再次分配。

更新的过程:

1.重新启动 dhcprequest 直接发送给提供地址的服务器

2.50% dhcprequest 直接发送给曾经提供地址的服务器

87.5% dhcpcover 广播(4个步骤)

100% 终止使用 此时地址变成169.254.x.y

dhcp单作用域和超级作用域

超级作用域是由多个DHCP作用域组成的作用域,单个DHCP作用域只能包含一个固定的子网,而超级作用域可以包含多个DHCP作用域,从而包含多个子网。超级作用域主要用于解决以下问题:

  • 当前单个DHCP作用域中的可用地址几乎耗尽,而且网络中将添加更多的计算机,需要添加额外的IP网络地址范围来扩展同一物理网段的地址空间;

  • DHCP客户端必须迁移到新作用域,例如重新规划IP网络编号,从现有的活动作用域中使用的地址范围迁移到使用另一IP网络地址范围的新作用域;

  • 希望使用两个DHCP服务器在同一物理网段上管理分离的逻辑IP网络。

DHCP中继原理:

如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。用DHCP Relay代理可以去掉在每个物理的网段都要有DHCP服务器的必要,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机。

224822847

 

案例一 dhcp单作用域

[root@uodekoaix ~]# mkdir /mnt/cdrom
[root@uodekoaix ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@uodekoaix ~]# cd /mnt/cdrom/Server
[root@uodekoaix Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm   //安装dhcp服务[root@uodekoaix ~]# vim /etc/dhcpd.conf

2012-08-14_113022

2012-08-14_113137

[root@uodekoaix ~]# service dhcpd configtest            //检测配置文件
Syntax: OK
[root@uodekoaix ~]# service dhcpd start
启动 dhcpd:                                               [确定]

[root@uodekoaix ~]# tail -f /var/log/messages  

[root@uodekoaix ~]# service dhcpd restart

打开一台xp系统并配置如下

2012-08-14_114447

2012-08-14_110056

2012-08-14_113846

[root@uodekoaix ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo 

2012-08-14_110743

[root@uodekoaix Server]# yum list |grep wireshark

This system is not registered with RHN.
RHN support will be disabled.
wireshark.i386                         1.0.8-1.el5_3.1       rhel-

server       
wireshark-gnome.i386                   1.0.8-1.el5_3.1
[root@uodekoaix Server]# yum install -y wireshark.i386

[root@uodekoaix Server]# tshark -ni eth0 -R"udp.port eq 67"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
35.019680      0.0.0.0 -> 255.255.255.255 DHCP DHCP Discover -

Transaction ID 0xe98a0bf8
36.411653 192.168.145.22 -> 192.168.145.253 DHCP DHCP Offer    -

Transaction ID 0xe98a0bf8
36.420754      0.0.0.0 -> 255.255.255.255 DHCP DHCP Request  -

Transaction ID 0xe98a0bf8
36.426779 192.168.145.22 -> 192.168.145.253 DHCP DHCP ACK      -

Transaction ID 0xe98a0bf8

xp网卡先禁用再启用

[root@uodekoaix Server]# vim /var/lib/dhcpd/dhcpd.leases2012-08-14_112210

2012-08-14_112402

2012-08-14_112419

[root@uodekoaix Server]# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.145.253          ether   00:0C:29:44:F8:C4   C                     eth0
192.168.145.10           ether   00:50:56:C0:00:01   C                     eth0
[root@uodekoaix Server]# vim /etc/dhcpd.conf

host ftp {
               next-server marvin.redhat.com;
               hardware ethernet 00:0C:29:44:F8:C4;
               fixed-address 192.168.145.99;

}

XP系统网卡禁用再启用

2012-08-14_120253

2012-08-14_120333

添加备用DNS

[root@uodekoaix Server]# vim /etc/dhcpd.conf

2012-08-14_130820

2012-08-14_130719

案例二 dhcp超级作用域

[root@uodekoaix Server]# vim /etc/dhcpd.conf            //配置文件

2012-08-14_133420

打开xp

2012-08-14_133141

2012-08-14_135249

打开另外一台linux

2012-08-14_134918

2012-08-14_135256

案例三  DHCP中继

linux服务器模拟路由,其中有三块网卡分别为eth0 192.168.145.254    eth1 192.168.20.254     eth2 192.168.10.254

eht0网卡与dhcp服务器通过vmnet1连接;eth1与caiwu通过vmnet2连接;eth2与tec主机通过vmnet3连接

caiwu与tec需要从dhcp服务器上动态获得分别为192.168.10.0,192.168.20.0网段的地址

拓扑图如下

 

打开一台linux做服务器,配置如下

2012-08-14_161611

[root@uodekoaix ~]# vim /etc/dhcpd.conf              //配置文件

2012-08-14_143856

 2012-08-14_144144

2012-08-14_144250

[root@uodekoaix ~]# service dhcpd restart

2012-08-14_172643

打开另外一台linux做路由器并添加三块网卡,连接如下

2012-08-14_170611

配置eth0,eth1,eth2  ip地址及子网掩码

2012-08-14_171241

2012-08-14_171453

2012-08-14_181321

[root@statio n99 ~]# vim /etc/sysctl.conf             //开启路由转发

2012-08-14_172433

[root@station99 ~]# sysctl –p          //重新读取配置文件

2012-08-14_172940

挂载光盘,并安装dhcrelay服务

[root@station99 ~]# mkdir /mnt/cdrom
[root@station99 ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@station99 ~]# cd /mnt/cdrom/Server
[root@station99 Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm
[root@station99 Server]# vim /etc/sysconfig/dhcrelay                //配置文件2012-08-14_173310

[root@station99 Server]# service dhcrelay start

测试 获取地址

打开xp系统,客户端tec选vmnet3网卡获得的ip 

客户端caiwu连接vmnet2网卡获得的ip

2012-08-14_185756

小结:

在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机就不能向服务器申请IP地址,这时就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。