共计 2405 个字符,预计需要花费 7 分钟才能阅读完成。
dhcp 理论部分
dhcp:在一个局域网中为计算机分配和 IP 地址、子网掩码、默认网关等的一种协议
协议使用端口:
服务器端:监听在 udp67 端口
客户端:监听在 udp68 端口
dhcp 地址租约过程
1、客户端发送 dhcpdiscover 广播报文,源地址为 0.0.0.0, 目的地址为 255.255.255.255, 目的端口为 udp67
2、服务器相应并发送 offer 广播报文,源地址为 0.0.0.0, 目的地址为 255.255.255.255, 目的端口为 udp68
3、客户端发送 dhcprequest 广播报文
4、服务段发送一个 ack 广播报文,告诉 DHCP Client 可以使用该 IP 地址
注意要点:
1、一个局域网中有多个 dhcp 服务器时,当一个客户端发送 discover 报文时会收到多个 offer 报文,客户端将使用最先收到的 offer 报文的服务器提供的 ip 地址
2、request 报文使用广播的原因:为了通知所有 DHCP 服务器自己将选择哪一台服务器提供的 IP 地址
3、使用 dhcp 获取的 ip 地址有一个租约时长,租约过期后,DHCP 服务器将回收该 IP 地址,若客户端想继续使用必须续约,一般的续约方法是:租期过半时,客户端向服务端发送 dhcp renew 报文来续约。
dhcp 服务器的安装和配置
实验环境:CentOS6.8
1、安装 dhcp 和 dhcp-common 软件包
yum install -y dhcp \\dhcp 的主程序包
yum install -y dhcp-common \\ 被服务器和客户端使用的共同文件
2、复制配置文件
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
3、修改配置文件
vim /etc/dhcp/dhcpd.conf
全局配置
option domain-name “lzs.org”; #定义 DNS 域名
option domain-name-servers ns1.lzs.org, ns2.lzs.org; #定义 DNS 服务器地址
default-lease-time 600; #定义默认客户端租约 IP 的时间长度,单位是秒
max-lease-time 7200; #定义最大客户端租约 IP 的时间长度,单位是秒
局部配置
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.250;
option domain-name-servers ns11.lzs.org,ns12.lzs.org; #定义 dns 服务器(会覆盖全局配置中的 dns 服务器配置)
option domain-name “internal.example.org”; #定义 DNS 域名(会覆盖全局配置中的域名配置)
option routers 192.168.10.1; #定义客户端的默认网关
option broadcast-address 192.168.10.255; #定义广播地址
default-lease-time 600; #定义默认客户端租约 IP 的时间(会覆盖全局配置的相关配置)
max-lease-time 7200; #定义最大客户端租约 IP 的时间(会覆盖全局配置中的相关配置)
}
# 为某一主机分配固定 IP
host lzs {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 192.168.10.2;
}
# 为公司员工分配一个地址段,为来访人员分配另外地址段,且租约时长不同
class “Inside” {
match if substring (option vendor-class-identifier,0,4)=”SUNW”;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.254;
# 公司员工
pool{
option domain-name-servers ns1.lzs.org;
max-lease-time 7200;
default-lease-time 600;
range 192.168.2.10 192.168.2.100;
allow members of “Inside”;
}
# 来访人员
pool{
option domain-name-servers ns2.lzs.org;
max-lease-time 72000;
default-lease-time 6000;
range 192.168.2.150 192.168.2.250;
allow unknown-clients;
}
}
4、启动 dhcpd 服务
service dhcpd start
5、查看 dhcpd 监听的端口
netstat -ulnp |grep dhcpd
可以看到 dhcpd 已经监听在 udp 的 67 号端口上了
注意要点:
1、作为 dhcp 服务器,服务器本身的 ip 地址应该是静态配置的,而且在配置文件里定义的网段要与你的网卡 IP 所处网段一致,若要在一台服务器上为多个网段分配地址,必须要为服务器添加多张网卡。
2、配置文件中每个语句要以; 结尾。
3、配置文件中的局部配置会覆盖全局配置中的相关配置
4、保留地址可以是作用域地址范围内的任何一个 IP 地址,即使该 IP 地址处于排除范围之内
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134830.htm