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地址处于排除范围之内