在CentOS 7上使用动态DNS配置DHCP故障转移

时间:2020-03-21 11:42:28  来源:igfitidea点击:

我们将使用动态DNS设置DHCP故障转移。

本文是KVM,Katelo和Puppet系列测试环境项目的一部分。

测试环境

我们安装了两个要配置的CentOS 7(最小)服务器,如下所示:

admin1.hl.local(10.11.1.2)将配置为DHCP主服务器
admin2.hl.local(10.11.1.3)将配置为DHCP从属服务器

两台服务器都将SELinux设置为强制模式。

软件

本文使用的软件:

  • CentOS 7
  • DHCP 4.2

配置主DHCP服务器

安装和防火墙

安装软件包并确保已启用该服务:

[admin1]# yum install dhcp
[admin1]# systemctl enable dhcpd

配置防火墙以允许DHCP通信(我们使用iptables):

[admin1]# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 67 -j ACCEPT

允许来自admin2的DHCP对等方通信:

[admin1]# -A INPUT -s 10.11.1.3/32 -p tcp -m state --state NEW -m tcp --dport 647 -j ACCEPT

主dhcpd.conf配置

打开文件“ /etc/dhcp/dhcpd.conf”并按照以下说明进行配置。

请注意,必须在主服务器上定义参数mclt(最大客户端提前期),但不能在从属服务器上定义。
参数split是另一个参数,应在主数据库上定义,而从辅助数据库的配置中省略。
值得注意的是,故障转移节点之间的通信既未加密也未经过身份验证。

failover peer "failover-dhcp" {
  primary; # This defines the master
  address 10.11.1.2;
  port 647;
  peer address 10.11.1.3;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128; # 128 is balanced; use 255 if primary is 100% responsible until failure
  load balance max seconds 3;
}
authoritative;
allow booting;
allow bootp;
next-server 10.11.1.4; # Katello TFTP
filename "pxelinux.0";
default-lease-time 86400; # 1 day
max-lease-time 86400; # 1 day
ddns-update-style interim;
update-static-leases on;
one-lease-per-client on;
# We generated the rndc-key when setting up DNS servers
key "rndc-key" {
  algorithm hmac-md5;
  secret "T0+1uWvaiKLkhWutTNhsGvLw7m4CXbjHr+3CrDwQP5ZMNHeRSvghg2XxQvT3uGVwNle9oMvBEcjB+4GEPDK1Qg==";
};
# We created zones when setting up DNS servers
zone 1.11.10.in-addr.arpa {
  primary 10.11.1.2;
  key "rndc-key";  
}
zone hl.local {
  primary 10.11.1.2;
  key "rndc-key";
}
subnet 10.11.1.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.11.1.255;
  option routers 10.11.1.1;
  option domain-name-servers dns1.hl.local, dns2.hl.local;
  option domain-search "hl.local";
  pool {
    failover peer "failover-dhcp";
    range 10.11.1.40 10.11.1.59;
  }
}
# DHCP leases for PXE boot
host ldap1 {
  hardware ethernet 00:22:FF:00:00:11;
  fixed-address 10.11.1.11;
  option host-name "ldap1.hl.local";
}
host ldap2 {
  hardware ethernet 00:22:FF:00:00:12;
  fixed-address 10.11.1.12;
  option host-name "ldap2.hl.local";
}
host monitoring {
  hardware ethernet 00:22:FF:00:00:13;
  fixed-address 10.11.1.13;
  option host-name "monitoring.hl.local";
}
host syslog {
  hardware ethernet 00:22:FF:00:00:14;
  fixed-address 10.11.1.14;
  option host-name "syslog.hl.local";
}
host storage1 {
  hardware ethernet 00:22:FF:00:00:15;
  fixed-address 10.11.1.15;
  option host-name "storage1.hl.local";
}
host storage2 {
  hardware ethernet 00:22:FF:00:00:16;
  fixed-address 10.11.1.16;
  option host-name "storage2.hl.local";
}
host db1 {
  hardware ethernet 00:22:FF:00:00:17;
  fixed-address 10.11.1.17;
  option host-name "db1.hl.local";
}
host db2 {
  hardware ethernet 00:22:FF:00:00:18;
  fixed-address 10.11.1.18;
  option host-name "db2.hl.local";
}
host proxy1 {
  hardware ethernet 00:22:FF:00:00:19;
  fixed-address 10.11.1.19;
  option host-name "proxy1.hl.local";
}
host proxy2 {
  hardware ethernet 00:22:FF:00:00:20;
  fixed-address 10.11.1.20;
  option host-name "proxy2.hl.local";
}
host web1 {
  hardware ethernet 00:22:FF:00:00:21;
  fixed-address 10.11.1.21;
  option host-name "web1.hl.local";
}
host web2 {
  hardware ethernet 00:22:FF:00:00:22;
  fixed-address 10.11.1.22;
  option host-name "web2.hl.local";
}
host backup {
  hardware ethernet 00:22:FF:00:00:23;
  fixed-address 10.11.1.23;
  option host-name "backup.hl.local";
}

通过明文rndc-key加强文件权限:

[admin1]# chmod 0600 /etc/dhcp/dhcpd.conf

测试配置文件:

[admin1]# dhcpd -t -cf /etc/dhcp/dhcpd.conf

重新启动服务:

[admin1]# systemctl restart dhcpd

检查租约:

[admin1]# tail /var/lib/dhcpd/dhcpd.leases

配置从属DHCP服务器

安装和防火墙

此部分与主服务器相同。

安装软件包并确保已启用该服务:

[admin2]# yum install dhcp
[admin2]# systemctl enable dhcpd

配置防火墙以允许DHCP通信(我们使用iptables):

[admin2]# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 67 -j ACCEPT

允许来自admin1的DHCP对等方通信:

[admin2]# -A INPUT -s 10.11.1.2/32 -p tcp -m state --state NEW -m tcp --dport 647 -j ACCEPT

从属dhcpd.conf配置

打开文件“ /etc/dhcp/dhcpd.conf”并配置以下内容:

failover peer "failover-dhcp" {
  secondary; # This defines the slave
  address 10.11.1.3;
  port 647;
  peer address 10.11.1.2;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  load balance max seconds 3;
}
authoritative;
allow booting;
allow bootp;
next-server 10.11.1.4; # Katello TFTP
filename "pxelinux.0";
default-lease-time 86400; # 1 day
max-lease-time 86400; # 1 day
ddns-update-style interim;
update-static-leases on;
one-lease-per-client on;
# We generated the rndc-key when setting up DNS servers
key "rndc-key" {
  algorithm hmac-md5;
  secret "T0+1uWvaiKLkhWutTNhsGvLw7m4CXbjHr+3CrDwQP5ZMNHeRSvghg2XxQvT3uGVwNle9oMvBEcjB+4GEPDK1Qg==";
};
# We created zones when setting up DNS servers
zone 1.11.10.in-addr.arpa {
  primary 10.11.1.2;
  key "rndc-key";  
}
zone hl.local {
  primary 10.11.1.2;
  key "rndc-key";
}
subnet 10.11.1.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.11.1.255;
  option routers 10.11.1.1;
  option domain-name-servers dns1.hl.local, dns2.hl.local;
  option domain-search "hl.local";
  pool {
    failover peer "failover-dhcp";
    range 10.11.1.40 10.11.1.59;
  }
}
# DHCP leases for PXE boot
host ldap1 {
  hardware ethernet 00:22:FF:00:00:11;
  fixed-address 10.11.1.11;
  option host-name "ldap1.hl.local";
}
host ldap2 {
  hardware ethernet 00:22:FF:00:00:12;
  fixed-address 10.11.1.12;
  option host-name "ldap2.hl.local";
}
host monitoring {
  hardware ethernet 00:22:FF:00:00:13;
  fixed-address 10.11.1.13;
  option host-name "monitoring.hl.local";
}
host syslog {
  hardware ethernet 00:22:FF:00:00:14;
  fixed-address 10.11.1.14;
  option host-name "syslog.hl.local";
}
host storage1 {
  hardware ethernet 00:22:FF:00:00:15;
  fixed-address 10.11.1.15;
  option host-name "storage1.hl.local";
}
host storage2 {
  hardware ethernet 00:22:FF:00:00:16;
  fixed-address 10.11.1.16;
  option host-name "storage2.hl.local";
}
host db1 {
  hardware ethernet 00:22:FF:00:00:17;
  fixed-address 10.11.1.17;
  option host-name "db1.hl.local";
}
host db2 {
  hardware ethernet 00:22:FF:00:00:18;
  fixed-address 10.11.1.18;
  option host-name "db2.hl.local";
}
host proxy1 {
  hardware ethernet 00:22:FF:00:00:19;
  fixed-address 10.11.1.19;
  option host-name "proxy1.hl.local";
}
host proxy2 {
  hardware ethernet 00:22:FF:00:00:20;
  fixed-address 10.11.1.20;
  option host-name "proxy2.hl.local";
}
host web1 {
  hardware ethernet 00:22:FF:00:00:21;
  fixed-address 10.11.1.21;
  option host-name "web1.hl.local";
}
host web2 {
  hardware ethernet 00:22:FF:00:00:22;
  fixed-address 10.11.1.22;
  option host-name "web2.hl.local";
}
host backup {
  hardware ethernet 00:22:FF:00:00:23;
  fixed-address 10.11.1.23;
  option host-name "backup.hl.local";
}

通过明文rndc-key加强文件权限:

[admin2]# chmod 0600 /etc/dhcp/dhcpd.conf

重新启动服务:

[admin2]# systemctl restart dhcpd