Linux-DHCP服务器的搭建

安装

yum -y install dhcp
// 注意,在配置文件为空时,会报错,可以把/usr/share/doc/dhcp*/dhcpd.conf.example覆盖到/etc/dhcp/dhcp.conf
systemctl start dhcpd
systemctl enable dhcpd

服务的配置

默认配置文件位置:/etc/dhcp/dhcpd.conf

// 打开dhcpd.conf文件。文件内容仅有注释信息。提示查看/usr/share/doc/dhcp*/dhcpd.conf.example文件

cp /usr/share/doc/dhcp*/dhcpd.conf.example dhcpd.conf

subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.66 192.168.2.244;
        option domain-name-servers 192.168.2.1;
        option domain-name "test.cn";
        option routers 192.168.2.1;
        option broadcast-address 192.168.2.255;
        default-lease-time 600;
        max-lease-time 7200;
}

host vmnet8 {
        // hardware 
        hardware ethernet 00:50:56:c0:00:08;
        fixed-address 192.168.2.111;

}



// 重启失败的原因: 含有多余的配置
// 虚拟机需要关闭本地dhcp分配,禁用网卡在重启
  subnet [网络号] netmask [子网掩码] {...}

  作用:定义作用域,指定子网掩码

  range [起始IP地址] [结束IP地址]

  作用:指定动态获取IP地址范围,可以声明多个range但范围不能重合。

  option routers [IP地址]

  作用:为客户端指定默认网关,可以全局可以局部

  option domain-name [域名]

  作用:为客户端指定默认的域,可以全局可以局部

  option domain-name-servers [IP地址]

  作用:为客户端指定默认DNS服务器地址,可以全局可以局部

  default-lease-time [数字]

  作用:默认最小租约期限(单位秒),可以全局可以局部

  max-lease-time [数字]

  作用:最长租约期限(单位秒),可以全局可以局部

  host [主机注释名]{

    hardware [硬件类型] [硬件地址]

    fixed-address [IP地址]

  }
// 1.DHCP服务器IP地址:192.168.0.253(本机IP地址)
// 2.计算机动态的分配IP网段:192.168.0.0 /24,范围:192.168.0.10~192.168.0.200,默认网关:192.168.0.254,该网段其他地址保留为静态分配。
// 3.物理地址为00:50:56:C0:00:08(VMware Network Adapter VMnet8网卡地址,自行查看)的主机设置固定IP地址:192.168. 0.200,默认租约期限为259200秒(3天),最长租约期限为518400秒(6天)。
// 4.DNS域名解析服务器的域名为www.sdflc,IP地址为192.168.0.1
// 5.分配过程可以分为动态IP地址分配和人工固定地址分配两部分。
语句需要用;结尾,大括号后面不需要加;
2
subnet 192.168.0.0 netmask 255.255.255.0 {
// 设置网段的IP和掩码
  range 192.168.0.0 192.168.0.200;
// 声明范围
  option routers 192.168.0.254;
// 声明网关
}

3
default-lease-time 259200;
// 默认租期(秒)
max-lease-time 518400;
// 最长租期(秒)
host [随便起] {
// 设置固定主机
  hardware ethernet 00:50:56:c0:00:08;
// 硬件的MAC地址
  fixed-address 192.168.0.200;
// 设定固定的ip
}

4. 
option domain-name "www.sdflc";
// 选项 dns域名 ""
option domain-name-servers 192.168.0.1;
// 选项 dnsip地址 

总配置文件

parameters(参数) 说明

参数解释
ddns-update-style配置DHCP-DNS互动更新模式*
default_lease-time [值]指定默认租赁时间长度,单位为 秒
max-lease-time [值]指定最大租赁时间长度,单位为 秒
hardware ethernet [值]指定网卡接口类型和MAC地址
server-name 通知DHCP客户服务器名称
get-lease-hostnames flag检查客户端使用的IP地址
fixed-address ip 分配给客户端一个固定的地址
authritative拒绝不正确的ip地址的请求(要求)

declarations(声明) 说明

声明解释
shared-network来告知是否允许某些子网络分享相同网络*
subnet描述一个ip地址是否属于该子网
range 起始ip 终止ip提供动态分配ip地址的范围
host 主机名称参套特别主机*
group为一组参数提供声明
allow unknown-clients;
denyunknown-client
是否动态分配IP给位置的使用者
allow bootp;
denybootp
是否响应激活查询
allow booting;
deny booting
是否响应使用者查询

option(选项) 说明

选项解释
subnet-mask为客户端设定子网掩码
domain-name为客户端指明DNS名字
domain-name-servers为客户端知名DNS服务器的IP地址
host-name 为客户端指定主机名称
routers为客户端设定默认网关
broadcast-address为客户端设定广播地址
ntp-server为客户端设定网络事件服务器的IP地址
time-offset为客户端设定和格林尼治时间的偏移时间, 单位是秒

详解:

      1 option domain-name "example.org";
      2 option domain-name-servers ns1.example.org, ns2.example.org;
      3 default-lease-time 600;
      4 max-lease-time 7200;
      5 log-facility local7;
      6 subnet 10.152.187.0 netmask 255.255.255.0 {
      7 }
      8 subnet 10.254.239.0 netmask 255.255.255.224 {
      9   range 10.254.239.10 10.254.239.20;
     10   option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
     11 }
     12 subnet 10.254.239.32 netmask 255.255.255.224 {
     13   range dynamic-bootp 10.254.239.40 10.254.239.60;
     14   option broadcast-address 10.254.239.31;
     15   option routers rtr-239-32-1.example.org;
     16 }
     17 subnet 10.5.5.0 netmask 255.255.255.224 {
     18   range 10.5.5.26 10.5.5.30;
     19   option domain-name-servers ns1.internal.example.org;
     20   option domain-name "internal.example.org";

     21   option routers 10.5.5.1;
     22   option broadcast-address 10.5.5.31;
     23   default-lease-time 600;
     24   max-lease-time 7200;
     25 }
     26 host passacaglia {
     27   hardware ethernet 0:0:c0:5d:bd:95;
     28   filename "vmunix.passacaglia";
     29   server-name "toccata.fugue.com";
     30 }
     31 host fantasia {
     32   hardware ethernet 08:00:07:26:c0:a5;
     33   fixed-address fantasia.fugue.com;
     34 }
     35 class "foo" {
     36   match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
     37 }
     38 shared-network 224-29 {
     39   subnet 10.17.224.0 netmask 255.255.255.0 {
     40     option routers rtr-224.example.org;
     41   }
     42   subnet 10.0.29.0 netmask 255.255.255.0 {
     43     option routers rtr-29.example.org;
     44   }
     45   pool {
     46     allow members of "foo";
     47     range 10.17.224.10 10.17.224.250;
     48   }
     49   pool {
     50     deny members of "foo";
     51     range 10.0.29.10 10.0.29.230;
     52   }
     53 }

阅读剩余
THE END