在中小范围的网络中,通常只有一个dhcp服务器就可以轻松搞定,也不必过分考虑安全和性能。但是在特大网络或者特殊网络中,一个dhcp服务器不能满足要求。比如要求dhcp服务不能间断,但是在dhcp服务器系统更新或者出现故障的时候就需要另外一台服务器来提供服务了,并且这两台服务器中的dhcp信息需要完全一致。

   由此,dhcp failover应运而生。它实现起来很简单,将两台服务器放置在同一网络中,配置不同的ip地址,然后服务器中的dhcp配置文件开启failover功能,它们的主备角色是在dhcpd.conf中设置的。

1. 组网图

wKiom1MmkKah8IvRAAD-cvsPcCs236.jpg

2. 配置文件

failover peer "dhcp-failover" {
  primary;    #主服务器
  address 192.168.1.254;   #本机ip
  port 647;   #本机端口
  peer address 192.168.1.253;  #另一台服务器ip
  peer port 647;   #另一台服务器端口
  max-response-delay 30;  #热备间保活时长
  max-unacked-updates 10;  #同步时可对多个更新信息确认一次
  load balance max seconds 3;  #负载均衡最大时间间隔
  mclt 1800;   #(Maximum Client Lead Time)在热备不通的时,允许地址的更新时间
  split 128;   #主备服务器负载均摊(128*100%/255=50%,主备各分配一半地址),如果配置为255,则所有地址由主服务器分配
}
subnet 192.168.1.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.250;
  option domain-name-servers 192.168.1.250;
  pool {
    failover peer "dhcp-failover";   #该地址池开启failover功能,如果没有这句,则不对这个地址池实现热备
    max-lease-time 1800;
    range 192.168.1.1 192.168.1.100;
  }
}

另一台服务器的配置文件为:

failover peer "dhcp-failover" {
  secondary; #备用服务器
  address 192.168.1.253;
  port 647;
  peer address 192.168.1.254;
  peer port 647;
  max-response-delay 30;
  max-unacked-updates 10;
  load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.250;
  option domain-name-servers 192.168.1.250;
  pool {
    failover peer "dhcp-failover";
    max-lease-time 1800;
    range 192.168.1.1 192.168.1.100;
  }
}


注:mclt和split字段只能在主服务器中配置,load balance max seconds在主服务器中配置,备服务器中可以不用配置。