linux6.3 dhcp,2-2-搭建DHCP服务实现动态分配IP地址(Red Hat Enterprise Linux Server6.3)@树袋...

霍伟彦
2023-12-01

理论基础:

DHCP的工作过程#DHCP client 端口:68 / DHCP server端口:67

[root@pan-T ~]# grep bootp /etc/services --color

bootps 67/tcp # BOOTP server

bootps 67/udp

bootpc 68/tcp dhcpc # BOOTP client

bootpc 68/udp dhcpc

1、DHCP Discover阶段

DHCP client寻找DHCP server 的阶段,发送一个广播包"DHCP Discover"目标地址为255.255.255.255 目标端口号为67端口,子网中所有TCP/IP协议主机都会收到"DHCP Discover"消息,但只有DHCP server会做出响应。

2、DHCP Offer阶段

DHCP server对于收到的DHCP Discover消息做出回应,从尚未分配的IP地址池中选择一个IP地址和其他信息通过这个"DHCP Offer"消息发送给client,server用的也是广播包目标地址为255.255.255.255 目标端口号为68端口

3、DHCP Request 阶段

DHCP client选择某一台server提供的IP地址,接受第一个发来的"DHCP Offer"消息,然后以广播的形式向255.255.255.255回答一个"DHCP Request"消息 ,这个消息包含向server请求IP地址的内容,目标端口号是67端口,也是为了要通知所有的DHCP服务器client选择的哪一台server。

4、DHCP Ack 阶段

DHCP server 确认所提供的IP地址,当DHCP server收到来自client发送的"DHCP Request"广播包之后,会向client发送一个包含所提供的IP地址和其他设置的"DHCP Ack"消息,目标端口号是68端口,目标地址为255.255.255.255,告诉client可以使用server所提供的IP地址了,client便采用了此IP地址,其他DHCP server 收回曾经提供的IP

5、重新申请或者更新租约时,再或者重新连接网络时,client不需要发送"DHCP Discover"消息了,而是发送"DHCP Request"消息,当server收到之后,会发送"DHCP Ack"消息过去,如果还可以继续使用原来的IP则结束,如果不能使用了(已经分配了)那就发送一个"DHCP NAck"消息,client收到此消息后,会重新发送"DHCP Discover"消息过来完成四个阶段而获得新IP

6、拓展:DHCP消息有两种

"DHCP Decline"消息 :client 断定server所提供的参数无效时发送,然后重新开始4个阶段IP的申请。

"DHCP Release"消息 :client取消租约时发送

注意:客户端执行DHCP DISCOVER 后,如果没有DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址,配置本机地址。

配置案例:

环境 pan-T.com DHCP server 192.168.15.2

Pan-S.comprintserver 192.168.15.20

Pan-C.com client 测试机 DHCP动态

一、检查环境是否安装了dhcp软件包并安装

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

dhcp-common-4.1.1-31.P1.el6.x86_64

[root@pan-T ~]# yum -y install dhcp

二、查看生成的配置文件

[root@pan-T ~]# rpm -qc dhcp

/etc/dhcp/dhcpd.conf

/etc/dhcp/dhcpd6.conf

/etc/openldap/schema/dhcp.schema

/etc/portreserve/dhcpd

/etc/sysconfig/dhcpd

/etc/sysconfig/dhcpd6

/etc/sysconfig/dhcrelay

/var/lib/dhcpd/dhcpd.leases #记录了分配出去的IP信息和租约信息

/var/lib/dhcpd/dhcpd6.leases

三、修改/etc/dhcp/dhcpd.conf配置文件 # 需要注意的是主配置文件无内容需要copy一份位置在 /usr/share/doc/dhcp*/dhcpd.conf.sample

[root@pan-T ~]# vim /etc/dhcp/dhcpd.conf #查看主配置文件内容得知配置文件为空需要copy

[root@pan-T ~]# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak #更改名称作为备份

[root@pan-T ~]# vim /etc/dhcp/dhcpd.conf #创建配置文件

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample #vim读取sample配置文件

修改如下

subnet 192.168.15.0 netmask 255.255.255.0 { #作用域:可以分配IP的范围 subnet

range 192.168.15.100 192.168.15.150; #地址池:可以分配给客户端的IP

option domain-name-servers 192.168.15.1;

option domain-name "pan-T.com"; #;注意这个分号一定不要忘记否则报错

option routers 192.168.15.1;

option broadcast-address 192.168.15.255;

default-lease-time 600;

max-lease-time 7200;

host printserver { #保留地址:指定某个客户端使用一个特定IP

hardware ethernet 00:0C:29:8B:46:70;

fixed-address 192.168.15.20;

}

}

四、配置DHCP服务器网卡信息

[root@pan-T ~]# ifconfig eth0 #查看网卡信息

eth0 Link encap:Ethernet HWaddr 00:50:56:2C:2B:D0

[root@pan-T ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网卡信息如下

DEVICE=eth0

BOOTPROTO=none

NM_CONTROLLED=yes

ONBOOT=yes

TYPE=Ethernet

UUID="0f211edc-1d4d-47b0-80fc-acf173b3dd8f"

IPV6INIT=no

USERCTL=no

HWADDR=00:50:56:2c:2b:d0

IPADDR=192.168.15.2

NETMASK=255.255.255.0

GATEWAY=192.168.15.1

DNS1=192.168.15.1

[root@pan-T ~]# /etc/init.d/network restart

[root@pan-T ~]# service dhcpd restart

Shutting down dhcpd: [ OK ]

Starting dhcpd: [ OK ]

[root@pan-T ~]# chkconfig dhcpd on

[root@pan-T ~]# chkconfig --list dhcpd

dhcpd 0:off1:off2:on3:on4:on5:on6:off

五、测试结果

[root@pan-S ~]# ifconfig eth0 #测试机printserver获得IP地址信息

eth0 Link encap:Ethernet HWaddr 00:0C:29:8B:46:70

inet addr:192.168.15.20 Bcast:192.168.15.255 Mask:255.255.255.0

[root@pan-C ~]# ifconfig eth0 #测试机PC获得IP地址信息

eth0 Link encap:Ethernet HWaddr 00:0C:29:36:0C:23

inet addr:192.168.15.110 Bcast:192.168.15.255 Mask:255.255.255.0

[root@pan-T ~]# cat /var/lib/dhcpd/dhcpd.leases #查看IP地址分配信息和租期信息

lease 192.168.15.110 {

starts 3 2015/07/01 04:37:24;

ends 3 2015/07/01 04:47:24;

cltt 3 2015/07/01 04:37:24;

binding state active;

next binding state free;

hardware ethernet 00:0c:29:36:0c:23;

client-hostname "pan-C.com";

}

[root@pan-T ~]# route n #查看网关

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.15.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0

0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth0

[root@pan-T ~]# cat /etc/resolv.conf #查看DNS

# Generated by NetworkManager

search com

nameserver 192.168.15.1

[root@pan-S ~]# cat /etc/resolv.conf #查看printserver上DNS

# Generated by NetworkManager

domain pan-T.com

search pan-T.com com

nameserver 192.168.15.1

 类似资料: