dhcp在企业网中的应用

一、原理

dhcp:动态主机配置协议

作用:动态分配地址等参数

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的设定环境。 它提供三种 IP 定位方式: Manual Allocation 人工分配,获得的IP也叫静态地址,网络管理员为某些少数特定的在网计算机或者网络设备绑定固定ip地址,且地址不会过期。

工作模式:

1、手动  manual   

server---地址池(ip---mac)   2222---1.1.1.1  dhcpclient  -----地址,地址利用率低

2、自动automatic

server    地址池(起始地址   结束地址)

DHCPclient   -----ip地址    mac-----ip(永久)   2222-1.1.1.1   地址利用率低

3、动态方式  dynamic

server地址池(起始地址  结束地址)

DHCPclient------ip地址    mac-----ip(租期)  2222-1.1.1.1    地址利用率高  (通常使用1和3结合来实现dhcp动态分配ip地址)

4、 DHCP请求IP地址的过程

发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。

提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的DHCPOFFER包。

选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发送DHCPOFFER包,客户端从中随机挑选,然后以广播形式向各DHCP服务器回应DHCPREQUEST包,宣告使用它挑中的DHCP服务器提供的地址,并正式请求该DHCP服务器分配地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址。

如果发送给DHCP客户端的DHCPOFFER包中包含无效的配置参数,客户端会向服务器发送DHCPCLINE包拒绝接受已经分配的配置信息。

确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。

5、 DHCP客户端续租IP地址的过程

DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。实际使用中,在IP地址租约期限达到一半时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,通知DHCP客户端已经获得新IP租约。

如果DHCP客户端续租地址时发送的DHCPREQUEST包中的IP地址与DHCP服务器当前分配给它的IP地址(仍在租期内)不一致,DHCP服务器将发送DHCPNAK消息给DHCP客户端。

6、 DHCP客户端释放IP地址的过程

DHCP客户端已从DHCP服务器获得地址,并在租期内正常使用,如果该DHCP客户端不想再使用该地址,则需主动向DHCP服务器发送DHCPRELEASE包,以释放该地址,同时将其IP地址设为0.0.0.0。

二、

案例

基本配置

[root@localhost ~]# mkdir /mnt/cdrom //建立光盘挂载目录

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom //挂载光盘

[root@localhost ~]# cd /mnt/cdrom/Server/ //进入服务目录

[root@localhost Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm //安装dhcp服务器
Preparing... ########################################### [100%]
1:dhcp ########################################### [100%]
[root@localhost Server]# vim /etc/dhcpd.conf //编辑dhcp配置文件

#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
~
~

:r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample //读取该目录下的配置样本文件

1、单作用域配置

[root@station1 ~]# cd /mnt/cdrom/Server/
[root@station1 Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm

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

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 { //用户可以用subnet语句通知DHCP服务器,把服务器可以分配的IP地址范围限制在规定的子网内。Subnet语句包含了表示子网掩码的netmask

# --- default gateway

option routers 192.168.10.1; //设置网关和路由器的IP地址

option subnet-mask 255.255.255.0; //设置子网掩码

option nis-domain "domain.org";

option domain-name "abc1.com"; //设置DNS域名

option domain-name-servers 192.168.10.1; //设置DNS服务器的IP地址(可多个)

option time-offset -18000; # Eastern Standard Time //设置与格林威治时间的偏移差

# option ntp-servers 192.168.1.1;

# option netbios-name-servers 192.168.1.1;

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

# -- you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.10.2 192.168.10.2; //通过range语句,可以指定动态分配给库互动的IP地址范围。在range语句中需要知道地址段的首地址和尾地址(可设多个范围)

default-lease-time 21600; //指定客户端IP地址默认租用的时间长度是多少(以秒为单位)

max-lease-time 43200; //设置客户最长租用IP地址时间(以秒为单位)

# we want the nameserver to appear at a fixed address

host ns { //给某些主机绑定固定IP(可设置多个)

next-server marvin.redhat.com; //设置用于定义服务器从影到文件装副的主机名,一般不用(仅用于设置无盘工作站)

hardware ethernet 12:34:56:78:AB:CD; //需设置固定IP的网卡的MAC地址

fixed-address 207.175.42.254; //对指定的MAC地址分配IP地址

}

}

 

测试

 

2、

超级作用域的配置

当局域网中的主机太多超过254台时,一个子网已经不能满足需求。我们需要配置超级作用域。

 

 

 

1 #
2 ddns-update-style interim;
3 ignore client-updates;
4 shared-network abc { //超级作用域名称
5 subnet 192.168.145.0 netmask 255.255.255.0 {
6
7 # --- default gateway
8 option routers 192.168.145.254;
9 option subnet-mask 255.255.255.0;
10
11 option nis-domain "domain.org";
12 option domain-name "domain.org";
13 option domain-name-servers 222.88.88.88;
14
15 option time-offset -18000; # Eastern Standard Time
16 # option ntp-servers 192.168.1.1;
17 # option netbios-name-servers 192.168.1.1;
18 # --- Selects point-to-point node (default is hybrid). Don't change this unless
19 # -- you understand Netbios very well
20 # option netbios-node-type 2;
21
22 range dynamic-bootp 192.168.145.2 192.168.145.253;
23 default-lease-time 21600;
24 max-lease-time 43200;
25
26 # we want the nameserver to appear at a fixed address
27 host ns {
28 next-server marvin.redhat.com;
29 hardware ethernet 12:34:56:78:AB:CD;
30 fixed-address 207.175.42.254;
31 }
32 }
33 subnet 192.168.146.0 netmask 255.255.255.0 {
34
35 option routers 192.168.146.254;
36 option subnet-mask 255.255.255.0;
37 option domain-name-servers 222.88.88.88,222.85.85.85; 
38 range dynamic-bootp 192.168.146.2 192.168.146.253;
39 default-lease-time 21600;
40 max-lease-time 43200;
41 }
42 }
43 # DHCP Server Configuration file.
44 # see /usr/share/doc/dhcp*/dhcpd.conf.sample
45 #

测试

dhcp服务器是把第一个作用域的地址分放完全后才会使用第二个作用域。由于资源限制,把每个地址池设置了一个地址以供测试。

range dynamic-bootp 192.168.145.2 192.168.145.2;

range dynamic-bootp 192.168.146.2 192.168.146.2;

客户端1

image

客户端2

image

3、dhcp中继

拓补图

 

 

 

 

image

 

 

添加网卡

image

重启主机(路由器)

image

image

image

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:91:2D:4B
inet addr:192.168.145.254 Bcast:192.168.145.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe91:2d4b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:318 errors:0 dropped:0 overruns:0 frame:0
TX packets:270 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26860 (26.2 KiB) TX bytes:50162 (48.9 KiB)
Interrupt:67 Base address:0x2000

eth1 Link encap:Ethernet HWaddr 00:0C:29:91:2D:55
inet addr:192.168.20.254 Bcast:192.168.20.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe91:2d55/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:31062 (30.3 KiB)
Interrupt:67 Base address:0x2080

eth2 Link encap:Ethernet HWaddr 00:0C:29:91:2D:5F
inet addr:192.168.10.254 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe91:2d5f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:15995 (15.6 KiB)
Interrupt:75 Base address:0x2400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:760 (760.0 b) TX bytes:760 (760.0 b)

root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.145.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
[root@localhost ~]# vim /etc/sysctl.conf

1 # Kernel sysctl configuration file for Red Hat Linux
2 #
3 # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
4 # sysctl.conf(5) for more details.
5
6 # Controls IP packet forwarding
7 net.ipv4.ip_forward = 1 //打开路由转发功能
8
9 # Controls source route verification
10 net.ipv4.conf.default.rp_filter = 1
11
12 # Do not accept source routing
13 net.ipv4.conf.default.accept_source_route = 0
14
15 # Controls the System Request debugging functi

由于dhcp中继依赖于dhcp服务器。我们需要安装dhcp服务器。

root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh dhcp-3.0.5-18.el5.i386.rpm
Preparing... ########################################### [100%]
1:dhcp ########################################### [100%]
[root@localhost Server]# vim /etc/sysconfig/dhcrelay

# Command line options here

INTERFACES="eth0 eth1 eth2"
DHCPSERVERS="192.168.145.100"
~
~

[root@localhost Server]# service dhcrelay start //启动dhcrelay 服务
启动 dhcrelay: [确定]
[root@localhost Server]# chkconfig dhcrelay on //设置开机启动

服务器配置

1 #
2 ddns-update-style interim;
3 ignore client-updates;
4 subnet 192.168.20.0 netmask 255.255.255.0
5
6 option routers 192.168.20.254;
7 option subnet-mask 255.255.255.0;
8
9 option domain-name "vlan20.com";
10 option domain-name-servers 222.88.88.88;
11
12 range dynamic-bootp 192.168.20.2 192.168.20.253;
13 default-lease-time 21600;
14 max-lease-time 43200;
15 host ns
16 next-server marvin.redhat.com;
17 hardware ethernet 12:34:56:78:AB:CD;
18 fixed-address 207.175.42.254;
19 }
20 }
21 subnet 192.168.10.0 netmask 255.255.255.0

22
23 option routers 192.168.10.254;
24 option subnet-mask 255.255.255.0;
25
26 option domain-name "vlan10.com";
27 option domain-name-servers 222.88.88.88;
28
29 range dynamic-bootp 192.168.10.2 192.168.10.253;
30 default-lease-time 21600;
31 max-lease-time 43200;
32 host www
33 next-server marvin.redhat.com;
34 hardware ethernet 12:34:56:78:AB:CD;
35 fixed-address 207.175.42.254;
36 }
37 }
38 subnet 192.168.145.0 netmask 255.255.255.0 { //本机所在作用域声明,同windows不同,空白作用域声明。
39
40 }
41 # DHCP Server Configuration file.
42 # see /usr/share/doc/dhcp*/dhcpd.conf.sample
43 #

 

测试

vm2区域客户机测试

360截图20120814174634842

 

 

虚拟机

image

本文出自 “杨康的博客空间” 博客,转载请与作者联系!

你可能感兴趣的:(主机,动态性,的)