腊月的季节

windows搭建DHCP服务器

必备知识

ip地址与二进制的关系:
00000000.00000000.00000000.00000000
0.0.0.0
第一个是二进制0,第二个是根据二进制划分为四个十进制。又是按一个一个字节来划分的。
ABCDE类地址:
A地址由1字节的网络地址和3字节的主机地址组成,网络地址的最高位必须是”0”,地址范围是1.0.0.0到126.0.0.0。126个网络,每个网络能容纳1千多万个主机。
127.0.0.1是电脑的内测地址。
B类地址由两字节的网络地址和两字节的主机地址组成,网络地址的最高位必须是”10”,地址范围是128.0.0.0到191.255.255.255。16320个网络,每个网络能容纳6万多个主机。
C类地址由三字节的网络地址和一字节的主机地址组成,网络地址的最高位必须是”110”,范围从192.0.0.0到223.255.255.255.C类网络可达209万余个,每个网络能容纳254个主机。
D类地址多用于广播,D类IP地址第一个字节以”1110”开始,它并不指向特定网络,目前这一类地址被用在多点广播中。多点广播地址用来一次寻址一组计算机,它表示共享同一协议的一组计算机。
E类IP地址,以”1111”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。这里的全1是指11111111.11111111.11111111.11111111
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。
A类地址的子网掩码为255.0.0.0
B类地址的子网掩码为255.255.0.0
C类地址的子网掩码为255.255.255.0
子网掩码目的就是划分出网络地址和主机地址,关于子网掩码的计算,可以http://www.lzhword.cn/2017/01/17/20170117first/
去看。

DHCP个人理解

其实在网络中DHCP可以是不必要的,通过静态IP地址即可实现,但是在大型网络中,有上万台主机,你不可能一个个去设置吧。所以这就出现了DHCP,这里就将C类地址的DHCP吧。DHCP客户端是以UDP 68号端口进行数据传输的,而DHCP服务器是以UDP 67号端口进行数据传输的。DHCP是利用传输层的UDP 68号端口发送(封装的目的端口为UDP 68号端口),经过网络层IP协议封装后,源IP地址为0.0.0.0(因为此时还没有分配IP地址),目的IP地址为255.255.255.255(有限广播IP地址)。这个有限广播地址就是代表任意一个IPv4子网的广播地址,当然是发送报文的主机所在的子网和DHCP服务器所在子网的广播地址。 至于IP报头中的源地址,由于当前DHCP客户端主机并未分配具体的IP地址,所以只能用具有任意代表功能的0.0.0.0地址来表示了。
客户端发送的报文:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
IP:ID = 0x0; Proto = UDP;Len: 328
IP:Version = 4 (0x4)
IP:Header Length = 20 (0x14)
IP:Service Type = 0 (0x0)
IP:Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = NormalThroughput
IP:.....0.. = NormalReliability
IP:Total Length = 328(0x148)
IP:Identification = 0 (0x0)
IP:Flags Summary = 0 (0x0)
IP:.......0 = Last fragmentin datagram
IP:......0. = May fragmentdatagram ifnecessary
IP:Fragment Offset = 0 (0x0)bytes
IP:Time to Live = 128 (0x80)
IP:Protocol = UDP - User Datagram !---使用UDP传输层协议
IP:Checksum = 0x39A6
IP:Source Address = 0.0.0.0 !---源IP地址为0.0.0.0
IP:Destination Address = 255.255.255.255 !----目的IP地址为255.255.255.255
IP:Data:Number of data bytesremaining =308 (0x0134)
DHCP:Discover (xid=21274A1D)
DHCP:OpCode (op) = 1 (0x1)
DHCP:HardwareType (htype) = 1 (0x1) 10Mb Ethernet
DHCP:Hardware Address Length(hlen) = 6(0x6)
DHCP:Hops (hops) = 0 (0x0)
DHCP:Transaction ID (xid) = 556223005 (0x21274A1D)
DHCP:Seconds (secs) = 0 (0x0)
DHCP:Flags (flags) = 1 (0x1) !---标志位置1,代表以广播方式发送
DHCP:1............... = Broadcast
DHCP:Client IP Address (ciaddr) =0.0.0.0
DHCP:Your IP Address(yiaddr) =0.0.0.0
DHCP:Server IP Address (siaddr) =0.0.0.0
DHCP:Relay IP Address (giaddr)=0.0.0.0
DHCP:Client Ethernet Address (chaddr) =08002B2ED85E
DHCP:Server Host Name (sname) = <Blank>
DHCP:Boot File Name (file) = <Blank>
DHCP:Magic Cookie = [OK]
DHCP:OptionField (options)
DHCP:DHCP MessageType = DHCP Discover !---DHCP报文类型为DHCP Discover
DHCP:Client-identifier =(Type:1) 08 00 2b 2e d8 5e
DHCP:HostName = JUMBO-WS !---DHCP服务器主机名
DHCP:Parameter Request List= (Length:7)01 0f 03 2c 2e 2f 06
DHCP:End of this optionfield

提供阶段:即DHCP服务器向DHCP客户端提供预分配IP地址的阶段。网络中的所有DHCP服务器接收到客户端的DHCP DISCOVER报文后,都会根据自己地址池中IP地址分配的优先次序选出一个IP地址,然后与其它参数一起通过传输层的UDP 67号端口,在DHCP OFFER报文中以广播方式发送给客户端(目的端口是DHCP客户端的UDP 68号端口)。客户端通过封装在帧中的目的MAC地址(也就在DHCP DISCOVER报文中的CHADDR字段值)的比对来确定是否接收该帧。但这样一来,理论上DHCP客户端可能会收到多个DHCP OFFER报文(当网络中存在多个DHCP服务器时),但DHCP客户端只接受第一个到来的DHCP OFFER报文。
服务器的报文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
IP:ID = 0x3C30; Proto = UDP;Len: 328
IP:Version = 4 (0x4)
IP:Header Length = 20 (0x14)
IP:Service Type = 0 (0x0)
IP:Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = NormalThroughput
IP:.....0.. = NormalReliability
IP:Total Length = 328(0x148)
IP:Identification = 15408(0x3C30)
IP:Flags Summary = 0 (0x0)
IP:.......0 = Last fragmentin datagram
IP:......0. = May fragmentdatagram ifnecessary
IP:Fragment Offset = 0 (0x0)bytes
IP:Time to Live = 128 (0x80)
IP:Protocol = UDP - User Datagram
IP:Checksum = 0x2FA8
IP:Source Address = 157.54.48.151
IP:Destination Address = 255.255.255.255
IP:Data:Number of data bytesremaining =308 (0x0134)
DHCP:Offer (xid=21274A1D)
DHCP:OpCode (op) = 2 (0x2)
DHCP:HardwareType (htype) = 1 (0x1) 10Mb Ethernet
DHCP:Hardware Address Length(hlen) = 6(0x6)
DHCP:Hops (hops) = 0 (0x0)
DHCP:Transaction ID (xid) = 556223005 (0x21274A1D)
DHCP:Seconds (secs) = 0 (0x0)
DHCP:Flags (flags) = 1 (0x1)
DHCP:1............... = Broadcast
DHCP:Client IP Address (ciaddr) =0.0.0.0
DHCP:Your IP Address(yiaddr) =157.54.50.5
DHCP:Server IP Address (siaddr) =0.0.0.0
DHCP:Relay IP Address (giaddr)=0.0.0.0
DHCP:Client Ethernet Address(chaddr) =08002B2ED85E
DHCP:Server Host Name (sname) = <Blank>
DHCP:Boot File Name (file) = <Blank>
DHCP:Magic Cookie = [OK]
DHCP:OptionField (options)
DHCP:DHCP MessageType = DHCPOffer !---DHCP报文类型为DHCP Offer
DHCP:SubnetMask =255.255.240.0 !---所分配IP地址的子网掩码为255.255.240.0
DHCP:Renewal Time Value (T1) = 8Days, 0:00:00 !---想要继续租约原来分配的IP地址,则提出续约申请的期限为8天
DHCP:Rebinding Time Value (T2) = 14Days, 0:00:00 !---如果上次申请续约失败,再次申请绑定原来分配到的IP地址的期限为14天
DHCP:IP Address Lease Time =16Days, 0:00:00 !---租约期限为16天,也就是DHCP客户端可使用此IP地址的最长时间为16天
DHCP:ServerIdentifier =157.54.48.151 !---DHCP服务器的IP地址为157.54.48.151
DHCP:Router =157.54.48.1 !---默认网关IP地址为157.54.48.1
DHCP:NetBIOS Name Service =157.54.16.154 !---DNS服务器IP地址为157.54.16.154
DHCP:NetBIOS Node Type =(Length: 1) 04
DHCP:End of this optionfield

选择阶段
即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP OFFER报文,客户端只接受第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文。在该报文的“RequestedAddress”选项中包含DHCP服务器在DHCP OFFER报文中预分配的IP地址,对应的DHCP服务器IP地址等。这样也就相当于同时告诉得其他DHCP服务器,它们可以释放已提供的地址,并将这些地址返回到可用地址池中。
报文:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
IP:ID = 0x100; Proto = UDP;Len: 328
IP:Version = 4 (0x4)
IP:Header Length = 20 (0x14)
IP:Service Type = 0 (0x0)
IP:Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = NormalThroughput
IP:.....0.. = NormalReliability
IP:Total Length = 328(0x148)
IP:Identification = 256(0x100)
IP:Flags Summary = 0 (0x0)
IP:.......0 = Last fragmentin datagram
IP:......0. = May fragmentdatagram ifnecessary
IP:Fragment Offset = 0 (0x0)bytes
IP:Time to Live = 128 (0x80)
IP:Protocol = UDP - UserDatagram
IP:Checksum = 0x38A6
IP:Source Address = 0.0.0.0
IP:Destination Address = 255.255.255.255
IP:Data:Number of data bytesremaining =308 (0x0134)

DHCP:Request (xid=21274A1D)
DHCP:OpCode (op) = 1 (0x1)
DHCP:HardwareType (htype) = 1 (0x1) 10Mb Ethernet
DHCP:Hardware Address Length(hlen) = 6(0x6)
DHCP:Hops (hops) = 0 (0x0)
DHCP:Transaction ID (xid) = 556223005 (0x21274A1D)
DHCP:Seconds (secs) = 0 (0x0)
DHCP:Flags (flags) = 1 (0x1)
DHCP:1............... = Broadcast
DHCP:Client IP Address (ciaddr) =0.0.0.0
DHCP:Your IP Address(yiaddr) =0.0.0.0
DHCP:Server IP Address (siaddr) =0.0.0.0
DHCP:Relay IP Address (giaddr)=0.0.0.0
DHCP:Client Ethernet Address(chaddr) =08002B2ED85E
DHCP:Server Host Name (sname) = <Blank>
DHCP:Boot File Name (file) = <Blank>
DHCP:Magic Cookie = [OK]
DHCP:OptionField (options)
DHCP:DHCP MessageType = DHCP Request
DHCP:Client-identifier = (Type:1) 08 00 2b 2e d8 5e
DHCP:RequestedAddress =157.54.50.5
DHCP:ServerIdentifier =157.54.48.151
DHCP:HostName =JUMBO-WS
DHCP:Parameter Request List= (Length:7)01 0f 03 2c 2e 2f 06
DHCP:End of this optionfield

确认阶段:即DHCP服务器确认分配级DHCP客户端IP地址的阶段。某个DHCP服务器在收到DHCP客户端发来的DHCP REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则以广播方式返回DHCP ACK报文;否则返回DHCP NAK报文,表明地址不能分配给该客户端。
在DHCP 服务器发送的DHCP ACK报文的IP协议头部,Source Address是 DHCP 服务器IP地址,DestinationAddress仍然是广播地址255.255.255.255。在DHCP ACK报文中的Yiaddr字段包含要分配给客户端的IP地址,而Chaddr和DHCP:ClientIdentifier字段是发出请求的客户端中网卡的MAC地址。同时在选项部分也会在DHCP OFFER报文中把所分配的IP地址的子网掩码、默认网关、DNS服务器、租约期、续约时间等信息加上。
报文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
IP:ID = 0x3D30; Proto = UDP;Len: 328
IP:Version = 4 (0x4)
IP:Header Length = 20 (0x14)
IP:Service Type = 0 (0x0)
IP:Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = NormalThroughput
IP:.....0.. = NormalReliability
IP:Total Length = 328(0x148)
IP:Identification = 15664(0x3D30)
IP:Flags Summary = 0 (0x0)
IP:.......0 = Last fragmentin datagram
IP:......0. = May fragmentdatagram ifnecessary
IP:Fragment Offset = 0 (0x0)bytes
IP:Time to Live = 128 (0x80)
IP:Protocol = UDP - UserDatagram
IP:Checksum = 0x2EA8
IP:Source Address = 157.54.48.151
IP:Destination Address = 255.255.255.255
IP:Data:Number of data bytesremaining =308 (0x0134)

DHCP:ACK (xid=21274A1D)
DHCP:OpCode (op) = 2 (0x2)
DHCP:HardwareType (htype) = 1 (0x1) 10Mb Ethernet
DHCP:Hardware Address Length(hlen) = 6(0x6)
DHCP:Hops (hops) = 0 (0x0)
DHCP:Transaction ID (xid) = 556223005 (0x21274A1D)
DHCP:Seconds (secs) = 0 (0x0)
DHCP:Flags (flags) = 1 (0x1)
DHCP:1............... =Broadcast
DHCP:Client IP Address (ciaddr) =0.0.0.0
DHCP:Your IP Address(yiaddr) =157.54.50.5
DHCP:Server IP Address (siaddr) =0.0.0.0
DHCP:Relay IP Address (giaddr)=0.0.0.0
DHCP:Client Ethernet Address(chaddr) =08002B2ED85E
DHCP:Server Host Name (sname) = <Blank>
DHCP:Boot File Name (file) = <Blank>
DHCP:Magic Cookie = [OK]
DHCP:OptionField (options)
DHCP:DHCP MessageType = DHCP ACK
DHCP:Renewal Time Value (T1)= 8Days, 0:00:00
DHCP:Rebinding Time Value(T2) = 14Days, 0:00:00
DHCP:IP Address LeaseTime = 16Days, 0:00:00
DHCP:ServerIdentifier =157.54.48.151
DHCP:SubnetMask =255.255.240.0
DHCP:Router =157.54.48.1
DHCP:NetBIOS Name Service =157.54.16.154
DHCP:NetBIOS NodeType = (Length: 1) 04
DHCP:End of this optionfield

搭建DHCP服务器

首先添加角色和功能
加载中...
下一步
基于角色或基于功能安装
加载中...
下一步服务器选择
从服务器池中选择服务器
加载中...
选择DHCP服务器即可安装。
安装完成后,可能需要重启。
重启后,进入管理器。
点击DHCP,右键服务器名称,点击DHCP管理
加载中...
进入DHCP管理器
加载中...
在这里我们建立IPV4的DHCP,右击IPV4选择新建域。
加载中...
点击下一步
名称和描述可以随意写,我这里写test,test
加载中...
下一步,填写起始IP地址和子网掩码,起始ip地址最好从10开始,而结束ip地址最好是250以前后,因为后面有保留的。这个长度的意思是网络位,子网掩码就是计算网络地址和主机地址的当你填完这些就自动会根据ABCDE网络类型进行自动填充,当然你也可以设置自己的子网。(注意你的ip地址,一定要和你的服务器的ip地址在同一子网,否则就无法在子网广播)
加载中...
下一步,添加排除和延迟,意思就是这些ip为保留ip,不可用。
我选择的是5到15这个ip段。
加载中...
下一步,租用期限
当主机租的ip到了期限会重新获取ip地址。默认为8天。
接着就下一步,由于这里只介绍DHCP服务器搭建,所以其他配置选否。
然后完成。
紧接着可以选择这个作用域并右键激活。
加载中...
我是用的虚拟机的网卡做的DHCP所以结果如下
加载中...

热评文章