用了这么久的freeipa只是知道freeipa有replica功能,并且能同时对外提供服务,没有主从之分。但一直没有再深入研究,如何实现freeipa的failover 。做了replica的前提下,当一个freeipa宕机以后,客户端认证不受影响。另外一个自动接管。
做freeipa failover有几个前提
1、freeipa必须做了replica 。 replica的做法很简单,网上资料也很多,这里不在啰嗦。注意一点,freeipa4版本和freeipa3的replica的做法不太一样。做的时候注意下就好。
2、必须有内部dns。因为failover的是依赖dns功能实现。所以dns是必须。我用的是bind9。支持srv记录,至于什么dnsmasq 能不能行,我不太清楚没测试过。
做法:
1、就是在搭建好的dns zonefile里添加上
_kerberos-master._tcp.cdh.com. 86400 IN SRV 0 100 88 freeipa1.cdh.com.
_kerberos-master._tcp.cdh.com. 86400 IN SRV 0 100 88 freeipa2.cdh.com.
_kerberos-master._udp.cdh.com. 86400 IN SRV 0 100 88 freeipa1.cdh.com.
_kerberos-master._udp.cdh.com. 86400 IN SRV 0 100 88 freeipa2.cdh.com.
_kerberos._tcp.cdh.com. 86400 IN SRV 0 100 88 freeipa1.cdh.com.
_kerberos._tcp.cdh.com. 86400 IN SRV 0 100 88 freeipa2.cdh.com.
_kerberos._udp.cdh.com. 86400 IN SRV 0 100 88 freeipa1.cdh.com.
_kerberos._udp.cdh.com. 86400 IN SRV 0 100 88 freeipa2.cdh.com.
_kerberos.cdh.com. 86400 IN TXT "CDH.COM"
_kpasswd._tcp.cdh.com. 86400 IN SRV 0 100 464 freeipa1.cdh.com.
_kpasswd._udp.cdh.com. 86400 IN SRV 0 100 464 freeipa1.cdh.com.
_ldap._tcp.cdh.com. 86400 IN SRV 0 100 389 freeipa1.cdh.com.
_ntp._udp.cdh.com. 86400 IN SRV 0 100 123 freeipa1.cdh.com.
freeipa1 和 freeipa2 是我的俩个ipa master 做了replica 。
freeipa1 和 freeipa2 在dns也做好了 A记录,能够正常解析。
2、修改客户端的/etc/krb5.conf
把[libdefaults] 里 dns_lookup_kdc , dns_lookup_realm 两个值都改成true。
然后在[realms] 里 添加两个kdc ,
kdc = freeipa1.cdh.com
kdc = freeipa2.cdh.com
3、systemctl restart sssd
测试:
两个ipa都启动下,看是否能够认证成功。
手动在freeipa1 上执行 ipactl stop 把ipa服务停掉。再测试尝试kinit 。 是否能够认证成功。
good luck !
网友评论