[CCNA图文笔记]-29-DHCP协议实例详解

0×1.DHCP工作过程
DHCP工作流程如下:


[CCNA图文笔记]-29-DHCP协议实例详解_第1张图片
图1

DHCP客户端(PC1)被配置成自动获取IP,R1上面配置了DHCP服务,当PC1启动连接网络时,通过下面的步骤来从DHCP服务端(R1)上获取IP:
1)PC1通过网卡向外广播DHCP Discover信息,该数据包的目的MAC是广播MAC地址(FFFFFFFFFFFF),源MAC地址是PC1的网卡MAC地址;该数据包的目的IP是255.255.255.255,源IP是0.0.0.0;DHCP使用UDP协议,该数据包的目的UDP端口是67(DHCP服务端使用的UDP端口),源UDP端口是68(客户端使用的UDP端口)。
2)R1收到PC1的DHCP Discover广播包,比如上图中R1的Fa0/0接口配置的IP地址是192.168.1.1/24,R1从Fa0/0接口接收到PC1的DHCP Discover广播包后,它在本地的DHCP配置中寻找可以和自己Fa0/0匹配的地址池(192.168.1.0/24这个子网的地址池),如果配置了这个地址池,R1查找这个地址池中还可以使用的IP地址;这里假设192.168.1.100是可用的,R1在提供租用地址之前首先会发送一个ARP查询包,查询192.168.1.100在网络上有没有被使用,如果收到应答,表明这个IP已经被使用,R1在地址池中换一个地址再发送ARP查询,直到找到没有ARP回复的那个IP地址。
3)R1向PC1发送DHCP Offer信息,其中包括这个没被使用的IP地址,DHCP Offer包仍然是一个广播包,目的MAC是广播MAC地址,源MAC是R1的Fa0/0的MAC地址,目的IP是255.255.255.255,源IP是192.168.1.1,目的端口是UDP68,源端口是UDP67。
4)在上面几步中,如果PC1发送的DHCP Discover广播没有DHCP服务端回复,PC1将无法获得IP地址,PC1会每隔一段时间发送一次DHCP Discover,在没有请求到IP地址的这段时间里,Windows主机会被临时分配一个属于169.254.0.0/16的本地地址。
5)接着上面的第三步,PC1收到R1发回的DHCP Offer信息,PC1马上发送DHCP Request包,表示自己将使用R1所提供的IP地址;该数据包还是一个广播包,目的MAC是广播MAC,源MAC是PC1的网卡MAC,目的IP是255.255.255.255,源IP是0.0.0.0,传输层的目的UDP端口是67,源UDP端口是68。DHCP Request中包含了要选择的DHCP服务器(R1的Fa0/0接口)的IP地址以及客户端(PC1)将要使用的IP地址。
6)R1收到PC1发来的DHCP Request信息后,马上发送DHCP Ack确认信息,该确认信息也是以广播发送的(和第三步中的包头差不多,这里就不描述了)。DHCP Ack中包含了一些其他选项,比如子网掩码、默认网关、DNS地址、租约期限、域名等。
7)PC1收到DHCP Ack后,利用其中的信息配置自己的TCP/IP属性,然后广播一个ARP Reply包,这个包的目的是通知其他设备,该IP地址已经被使用。
0×2.DHCP配置实例
a.思科路由器如何配置DHCP
在GNS3中搭建下面的拓扑,PC1-2为vpcs模拟两台真实计算机,R1是c3640路由,接口连线与IP如下图所示,在R1上配置DHCP服务,让PC1-2分别获取到自己网段的IP地址:


[CCNA图文笔记]-29-DHCP协议实例详解_第2张图片
图2
01

R1>
en

02

R1#
conf
t

03

/配置接口IP/

04

R1(config)#
int
fa 1/0

05

R1(config-if)#
ip
add
192.168.1.254 255.255.255.0

06

R1(config-if)#
no
shut

07

R1(config-if)#
int
fa 2/0

08

R1(config-if)#
ip
add
192.168.2.254 255.255.255.0

09

R1(config-if)#
no
shut

10

R1(config-if)#
exit

11

12

/配置dhcp地址池,地址池自定义名称为xxx1/

13

R1(config)#
ip
dhcp
pool
xxx1

14

15

/这个地址池的可用IP范围/

16

R1(dhcp-config)#
network
192.168.1.0 255.255.255.0

17

/默认网关/

18

R1(dhcp-config)#
default-router
192.168.1.254

19

/默认DNS地址/

20

R1(dhcp-config)#
dns-server
192.168.1.254

21

/域名(可选)/

22

R1(dhcp-config)#
domain-name
www.qingsword.com

23

/租约期限,3天/

24

R1(dhcp-config)#
lease
3

25

R1(dhcp-config)#
exit

26

27

/配置第二个地址池/

28

R1(config)#
ip
dhcp
pool
xxx2

29

30

R1(dhcp-config)#
network
192.168.2.0 255.255.255.0

31

R1(dhcp-config)#
default-router
192.168.2.254

32

R1(dhcp-config)#
dns-server
192.168.2.254

33

R1(dhcp-config)#
domain-name
www.qingsword.com

34

R1(dhcp-config)#
lease
1

35

R1(dhcp-config)#
exit

36

37

/排除地址,下面两个地址不会被DHCP分配出去,因为他们是路由接口地址/

38

R1(config)#
ip
dhcp
excluded-address
192.168.1.254

39

R1(config)#
ip
dhcp
excluded-address
192.168.2.254

40

R1(config)#
end

完成后,打开PC1-2的终端,使用自动获取IP命令:
1

/都能正确的获取IP地址,如果是在真实PC上面自动获取,还能看到域名租约期限等信息/

2

VPCS> set pcname PC1

3

PC1>
ip
dhcp

4

DDORA IP 192.168.1.1/24 GW 192.168.1.254

5

6

VPCS> set pcname R2

7

R2>
ip
dhcp

8

DDORA IP 192.168.2.1/24 GW 192.168.2.254

本来这一部分想用GNS3+VMware中的PC来模拟,但考虑到实验的复杂度和描述难度,就使用vpcs代替了。
b.思科路由器如何配置DHCP中继
如下图所示,R1的f1/0连接到一台vpcs,R1是DHCP中继服务器,R2是DHCP服务器,R1负责将vpcs发来的DHCP广播请求以单播的形式发给DHCP服务器R2:


[CCNA图文笔记]-29-DHCP协议实例详解_第3张图片
图3

R1配置:
01

R1>
en

02

R1#
conf
t

03

04

R1(config)#
int
fa 1/0

05

R1(config-if)#
ip
add
192.168.1.254 255.255.255.0

06

/*

07

  • 在与PC客户端相连的那个接口上配置DHCP中继服务,

08

"ip helper-address 12.1.1.2"

09

  • 将这个接口收到的DHCP广播请求以单播形式发给DHCP服务器12.1.1.2,

10

  • DHCP中继与DHCP服务器之间必须路由可达。

11

*/

12

R1(config-if)#
ip
helper-address
12.1.1.2

13

R1(config-if)#
no
shut

14

15

R1(config-if)#
int
s 0/0

16

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

17

R1(config-if)#
no
shut

18

R1(config-if)#
end

R2配置:
01

R2>
en

02

R2#
conf
t

03

04

R2(config)#
int
s 0/1

05

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

06

R2(config-if)#
no
shut

07

R2(config-if)#
exit

08

09

/DHCP地址池排除R1以太网接口的IP/

10

R2(config)#
ip
dhcp
excluded-address
192.168.1.254

11

/配置地址池与参数/

12

R2(config)#
ip
dhcp
pool
192pool

13

R2(dhcp-config)#
network
192.168.1.0 255.255.255.0

14

R2(dhcp-config)#
default-router
192.168.1.254

15

R2(dhcp-config)#
dns-server
192.168.1.254

16

R2(dhcp-config)#
domain-name
www.qingsword.com

17

R2(dhcp-config)#
lease
3

18

R2(dhcp-config)#
exit

19

20

/如果PC1要和R2通信还要添加下面一条静态路由(这一句并不是DHCP中继必须的)/

21

R2(config)#
ip
route
192.168.1.0 255.255.255.0 12.1.1.1

22

R2(config)#
end

PC1上通过DHCP获取IP:

1

/成功获取到IP和网关/

2

VPCS>
ip
dhcp

3

DDORA IP 192.168.1.1/24 GW 192.168.1.254

4

5

/尝试
ping
R2,通信成功,如果没有在R2上配置那条静态路由,就
ping
不通
/

6

VPCS>
ping
12.1.1.2

7

84 bytes from 12.1.1.2 icmp_seq=1 ttl=254 time=49.999 ms

你可能感兴趣的:([CCNA图文笔记]-29-DHCP协议实例详解)