Advertisement

DHCP——动态主机配置协议

阅读量:

1.IP地址配置方式

方式一:手工配置地址

该方案较为简便易行;然而,在大规模网络架构中实施起来存在一定局限性,在设备数量显著增加的情况下,则会导致手动配置的工作量急剧上升

方式二:动态获取——DHCP

通过基于动态地址获取机制的方式,在大规模网络架构中能够实现对网络拓扑的有效适应,在减少相关管理开销的同时伴随着一定的资源消耗。然而由于动态地址分配过程涉及报文协商这一关键步骤,在确保网络通信正常运行的同时必然会产生额外的带宽开销。

2.DHCP常见的几种报文

DHCP常见的报文大概有以下几种:

DHCP discover报文:用于客户端寻找服务端,是广播包。

DHCP offer报文:该报文由服务端对客户端作出响应,并带有分配给客户端的地址信息,并属于单播数据包类型。

DHCP request报文:该报文用于客户端查询指定地址是否可用。它指示从哪个服务端分配的IP地址。其中首次请求采用广播方式发送,在续租操作中则采用单播方式。

DHCP ACK报文:服务端回应客户端请求的有效IP地址,并且能够使用,属于单播包

该机构的Nak应答用于指示服务端拒绝客户关于特定IP地址的请求。当客户当前剩余租赁期不足总租赁期的一半时, 客户将向机构发出续租请求。若在特定条件下无法将此IP地址分配给该客户, 则机构随后将通过Nak应答指示客户重发Discover应答寻求资源重新分配。

在给定用户的IP地址与现有主机IP地址发生碰撞时(或:当某个用户的IP地址与现有主机IP地址出现重叠时),网络设备会向服务层发出 decline 命令以通知当前IP分配冲突,并促使系统重新进行IP地址分配请求。

DHCP Release 报文:当客户端不再需要获取 IP 地址时(即不再需要连接到网络),就会主动将当前可用的 IP 地址分配给服务端(通常指 DHCP 服务器)。一旦服务端接收到 Release 报文后(即确认已将该客户机释放出的可用 IP 地址),就可以将该客户机释放出的可用 IP 地址分配给其他尚未有连接需求的客户机。

3.DHCP工作原理

1.首先客户端会发起DHCP discover广播,寻找服务端。

当服务端接收到 DHCP 发送给所有客户端的 discover 广播时, 服务器将通过单播机制向客户端发送 DHCP offer, 并伴随分配给每个客户端相应的 IP 地址

客户端接收到 offer 报文以后, 被广播发送了相应的 request 报文, 以请求使用分配到的服务端地址

4.服务端回复ACK报文,用来确认地址可用。

4.DHCP模式分类

接口地址池是服务端使用本端接口网段作为地址池,并将该地址池分配给客户端使用的网络管理方式,在这种情况下,默认情况下网关会将当前接口IP地址赋值给该接口,并且必须启用 DHCP 功能后,在该接口下配置 DHCP 模式即可完成设置

2.全局地址池

为了管理网络资源,在配置全球地址池时需进行手动创建,并配置网络前缀及掩码参数;必须指定网关IP地址(即指定服务端的接口IP地址),该地址标识不可用于分配给客户端机器;在系统中先启用DHCP功能以生成 DHCP服务器角色;完成全球范围内的 DHCP服务器配置后,在相应的接口下设置 DHCP属性

3.DHCP中继

当客户端与服务器不在同一局域网范围内时

5.配置方式

1.接口地址池

服务端配置:

复制代码
 [r2]dhcp enable -------开启DHCP功能

    
 [r2]int g0/0/0
    
 [r2-GigabitEthernet0/0/0]ip address 192.168.12.2 24-----配置接口IP地址
    
 [r2-GigabitEthernet0/0/0]dhcp select interface ----启用接口地址池
    
 [r2-GigabitEthernet0/0/0]dhcp server lease day 1---设置地址租期为1天
    
 [r2-GigabitEthernet0/0/0]dhcp server dns-list 8.8.8.8---设置分配给客户端的DNS地址
    
 [r2-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.12.5 192.168.12.10---设置不分配的地址范围

客户端配置:

复制代码
 [r1]dhcp enable -----开启DHCP功能

    
 [r1]int g0/0/0
    
 [r1-GigabitEthernet0/0/0]ip address dhcp-alloc-----配置IP获取方式为DHCP自动获取

查看R1接口地址:

复制代码
    [r1]dis ip int brief

R1接口已经成功获取到地址。

报文分析:

2.全局地址池

服务端配置:

复制代码
 [r2]dhcp enable -------开启DHCP功能

    
 [r2]ip pool pool1 ----创建地址池
    
 [r2-ip-pool-pool1]network 192.168.12.0 mask 255.255.255.0 ----设置地址前缀和掩码
    
 [r2-ip-pool-pool1]gateway-list 192.168.12.2-----设置网关
    
 [r2-ip-pool-pool1]excluded-ip-address 192.168.12.250 192.168.12.254---设置不分配地址范围
    
 [r2-ip-pool-pool1]dns-list 8.8.8.8---设置DNS地址
    
 [r2]int g0/0/0
    
 [r2-GigabitEthernet0/0/0]ip address 192.168.12.2 255.255.255.0 -----配置接口IP
    
 [r2-GigabitEthernet0/0/0]dhcp select global----选择DHCP模式为全局模式

客户端配置:

复制代码
 [r1]dhcp enable -----开启DHCP功能

    
 [r1]int g0/0/0
    
 [r1-GigabitEthernet0/0/0]ip address dhcp-alloc-----配置IP获取方式为DHCP自动获取

全局地址池的报文交互和接口地址池的报文交互完全类似。

3.DHCP中继

服务端R3配置:

复制代码
 [r3]dhcp enable -------开启DHCP功能

    
 [r3]ip pool pool12 ----创建12网段地址池
    
 [r3-ip-pool-pool1]network 10.1.12.0 mask 255.255.255.0 ----设置地址前缀和掩码
    
 [r3-ip-pool-pool1]gateway-list 10.1.12.2-----设置网关
    
 [r3-ip-pool-pool1]excluded-ip-address 10.1.12.10 10.1.12.20---设置不分配地址范围
    
 [r3-ip-pool-pool1]dns-list 8.8.8.8---设置DNS地址
    
 [r3]ip pool pool34 ----创建34网段地址池
    
 [r3-ip-pool-pool1]network 10.1.34.0 mask 255.255.255.0 ----设置地址前缀和掩码
    
 [r3-ip-pool-pool1]gateway-list 10.1.34.3-----设置网关
    
 [r3-ip-pool-pool1]excluded-ip-address 10.1.34.100 10.1.34.200---设置不分配地址范围
    
 [r3-ip-pool-pool1]dns-list 4.4.4.4---设置DNS地址
    
 [r3]int g0/0/0
    
 [r3-GigabitEthernet0/0/0]ip address 10.1.23.3 255.255.255.0 -----配置接口IP
    
 [r3-GigabitEthernet0/0/0]dhcp select global----选择DHCP模式为全局模式
    
 [r3]int g0/0/1
    
 [r3-GigabitEthernet0/0/0]ip address 10.1.34.3 255.255.255.0 -----配置接口IP
    
 [r3-GigabitEthernet0/0/0]dhcp select global----选择DHCP模式为全局模式

DHCP中继R2配置:

复制代码
 [r2]dhcp enable -------开启DHCP功能

    
 [r2]int g0/0/0
    
 [r2-GigabitEthernet0/0/0]ip address 10.1.12.2 255.255.255.0 -----配置接口IP
    
 [r2-GigabitEthernet0/0/0]dhcp select relay----选择DHCP模式为中继模式
    
 [r2-GigabitEthernet0/0/0]dhcp relay server-ip 10.1.23.3---配置DHCP服务端接口IP
    
 [r2-GigabitEthernet0/0/1]ip address 10.1.23.2 255.255.255.0 -----配置接口IP

客户端R1配置:

复制代码
 [r1]dhcp enable -----开启DHCP功能

    
 [r1]int g0/0/0
    
 [r1-GigabitEthernet0/0/0]ip address dhcp-alloc-----配置IP获取方式为DHCP自动获取

客户端R4配置:

复制代码
 [r4]dhcp enable -----开启DHCP功能

    
 [r4]int g0/0/0
    
 [r4-GigabitEthernet0/0/0]ip address dhcp-alloc-----配置IP获取方式为DHCP自动获取

客户端R1通过中继动态获取IP地址,抓包分析:

R1和R2之间:

R2和R3之间报文:

DHCP中继总结:

R1发出的discover广播包,源IP:0.0.0.0,目的IP:255.255.255.255

经中继转换成单播discover,源IP:10.1.12.2,目的IP:10.1.23.3

服务端的offer单播报文,源IP:10.1.23.3,目的IP:10.1.23.2

经中继转换成单播offer,源IP:10.1.23.3,目的IP:10.1.12.254

R1发出的request广播包,源IP:0.0.0.0,目的IP:255.255.255.255

经中继转换成单播request,源IP:10.1.12.2,目的IP:10.1.23.3

服务端的ACK单播报文,源IP:10.1.23.3,目的IP:10.1.23.2

经中继转换成单播ACK,源IP:10.1.23.3,目的IP:10.1.12.254

此外还支持静态绑定功能, 实现了将地址池中的地址与客户端的MAC地址进行绑定, 其 MAC 地址对应的 IP 地址则不会被分配给其他客户端

静态绑定命令:

复制代码
    [r3-ip-pool-pool34]static-bind ip-address 10.1.34.4 mac-address 00e0-fc32-3901---静态绑定

全部评论 (0)

还没有任何评论哟~