C/C++教程

DHCP原理与配置

本文主要是介绍DHCP原理与配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

DHCP工作原理

DHCP服务器的配置

DHCP客户端的使用

DHCP中继原理与配置

DHCP在应用层

 

使用DHCP的好处

减少管理员的工作量

避免输入错误的可能

避免IP地址冲突

当更改IP地址段时,不需要重新配置每个用户的IP地址

提高了IP地址的利用率

方便客户端的配置

 

DHCP的分配方式

自动分配:分配到一个IP地址后永久使用

手动分配:由DHCP服务管理员专门指定IP地址

动态分配:使用完后释放该IP,供其它客户机使用

 

DHCP是 C/S模式 DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。

Sever端:DHCP Sever(运行dhcp服务)

UDP服务:监听端口67(bootps)

Client端:DHCP Client(运行dhcp程序)

UDP服务:监听端口68(bootpc)

 

典型的C/S模式

在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括 IP地址、子网掩码、默认网关地址、DNS服务器地址、广播地址),其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程

 

DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

客户机请求IP地址

当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址

此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

 

服务器响应

DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中寻找是否有合法的IP地址提供给客户机

如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息

 

客户机选择IP地址

DHCP客户机从接收到第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机

 

服务器确定租约

DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确定,该消息包含有IP地址的有效租约和其他可配置的信息

当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化

 

重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息

 

更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约

客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

 

使用DHCP动态配置主机地址

DHCP服务

   为大量客户机自动分配地址,提供网络配置效率

   减轻管理和维护成本、提高网络配置效率

可分配的地址信息主要包括

   网卡的IP地址、子网掩码

   对应的网络地址、广播地址

   默认网关地址

   DNS服务器地址

 

 

systemctl enable dhcpd    #开启DHCP

systemctl disable dhcpd   #关闭DHCP

systemctl is-enabled dhcpd    #查看状态

cd /etc/dhcp

ls

cd /usr/share/doc/dhcp-4.2.5/

ls

less dhcpd.conf.example

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

 

vim /etc/dhcp/dhcpd.conf

设置全局配置参数

default-lease-time 21600;     #默认租约为6小时,单位为秒

max-lease-time 7200;           #最大租约为12小时,单位为秒

option domain-name "benet.com";     #指定默认域名

option domain-name-servers 202.106.0.20,202.106.148.1;      #指定DNS服务器地址

ddns-update-style none;       #禁用DNS动态更新

 

#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)

subnet 192.168.80.0 netmask 255.255.255.0 {                                     #声明要分配的网段地址
range 192.168.80.10 192.168.80.20;                                                    #设置地址池
option routers 192.168.80.254;                                                             #指定默认网关地址
}

 

subnet 192.168.1.0 netmask 255.255.255.0 {                                    
range 192.168.1.100 192.168.1.200;                                                    
option routers 192.168.1.254;                                                             
}

 

subnet 192.168.2.0 netmask 255.255.255.0 {                                    
range 192.168.2.20 192.168.1.30;                                                    
option routers 192.168.2.254;                                                             
}

 

#host主机声明(给单机分配固定的IP地址)

host hostname {                                            #指定需要分配固定IP地址的客户名称

hardware ethernet 08:00:07:26:c0:a5;          #指定该主机的MAC地址
fixed-address 192.168.4.100;                       #指定保留给该主机的IP地址

 

#后面内容可都删除

systemctl start dhcpd

systemctl stop firewall

setenforce 0

 

netstat -anpu|grep ":67"

#如果DHCP服务启动失败,可以查看日志文件

tail -f /var/log/messages

 

 

 

实验:

vi /etc/sysconfig/network-scripts/ifcfg-ens33   #修改内容

IPADDR=192.168.100.10                                #改成DHCP服务器地址

GATEWAY=192.168.100.254                          #改成DHCP服务器网关

#DNS1=8.8.8.8 #注释DNS

systemctl restart network                               #重新启动

ifconfig                                                            #查看一下已经修改好了

 

journalctl -xe

tail -f /var/log/messages

vim /var/log/messages

<Huawei>un
<Huawei>undo te
<Huawei>undo terminal m
<Huawei>undo terminal monitor
Info: Current terminal monitor is off.
<Huawei>sys
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sys
[Huawei]sysname SW1
[SW1]vlan batch 10 20 100

[SW1]in
[SW1]int e
[SW1]int Eth0/0/3
[SW1-Ethernet0/0/3]port link-type trunk
[SW1-Ethernet0/0/3]port trunk allow-pass vlan all

[SW1]int e
[SW1]int Eth0/0/1

[SW1-Ethernet0/0/1]port link-type access

[SW1-Ethernet0/0/1]port default vlan 10

[SW1-Ethernet0/0/2]int eth0/0/2

[SW1-Ethernet0/0/2]port link-type access

[SW1-Ethernet0/0/2]port default vlan 20

[SW1-Ethernet0/0/2]int eth0/0/5
[SW1-Ethernet0/0/5]port link-type access
[SW1-Ethernet0/0/5]port default vlan 100

[SW1-Ethernet0/0/1]int eth0/0/4
[SW1-Ethernet0/0/4]port link-type access
[SW1-Ethernet0/0/4]port default vlan 100

三层交换

[Huawei]sy
[Huawei]sysname SW2
[SW2]vla
[SW2]vlan ba
[SW2]vlan batch 10 20 100

[SW2]int Vlanif 10
[SW2-Vlanif10]ip add 192.168.1.254 24
[SW2-Vlanif10]q
[SW2]int v
[SW2]int Vlanif 20
[SW2-Vlanif20]ip add 192.168.2.254 24
[SW2-Vlanif20]q
[SW2]int Vlanif 100
[SW2-Vlanif100]ip add 192.168.100.254 24

[SW2-Vlanif100]q
[SW2]interface GigabitEthernet0/0/3
[SW2-GigabitEthernet0/0/3]port link-type trunk
[SW2-GigabitEthernet0/0/3]port trunk allow-pass vlan all

[SW2-GigabitEthernet0/0/3]q
[SW2]dhcp enable

[SW2]int Vlanif 10
[SW2-Vlanif10]dhcp select relay
[SW2-Vlanif10]dhcp relay server-ip 192.168.100.10
[SW2-Vlanif10]q
[SW2]int Vlanif 20
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.10
[SW2-Vlanif20]q
[SW2]int v
[SW2]int Vlanif 20
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.10

刷新

ipconfig /reslese

ipconfig /renew

 

假设我们需要将日志记录在/var/log/目录下,我们先touch一个dhcp.log文件

(1)创建dhcp.log文件

#touch /var/log/dhcp.log

#chmod 640 /var/log/dhcp.log

(2)修改/etc/dhcp.conf配置文件,然后保存并退出删除。(注意不同Linux发行版配置文件路径有所不同)

log-facility local4;

(3)在/etc/rsyslog.conf文件中添加

Local4.* /var/log/dhcp.log

 

总结

DHCP工作原理

DHCP服务器配置方法

DHCP客户端获取IP地址

DHCP中继原理与配置

这篇关于DHCP原理与配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!