目录
案例1 在局域网中配置时间服务器
1 案例目标
2 环境要求
3 知识储备(NTP协议)
4 案例流程
5 案例实践
1)NTPServer配置
2)NTP客户端(使用hadoop01模拟客户端,与服务器进行同步)
ntp报错解决:no server suitable for synchronization found
6 案例总结
案例1 在局域网中配置时间服务器
1 案例目标
为局域网中的服务器安装时间服务,也为后续Kerberos KDC服务器的安装做基础准备
2 环境要求
- CentOS环境 或者 openeuler环境
- 能连接互联网
3 知识储备(NTP协议)
NTP:Net Time Protocol,网络时间协议,用来在网络中同步各个计算机时间的协议。
NTP的用途是将计算机的时钟和UTC(世界协调时,Universal Time Coordinated)同步,在局域网中精度可以达到0.1ms,而且可以使用加密确认的方式防止病毒对协议进行攻击。
NTP获取UTC时间的来源可以是原子钟、天文台、卫星,或者Internet。
NTP时间同步报文包含的时间是格林威治时间从1900年开始计算的秒数,它不考虑时区
NTP使用UDP,端口号为123
当网络内有很多服务器时,时间是否准确一致就是要考虑的问题,Kerberos要求局域网内的时间必须使用NTP同步。
4 案例流程
- 分为NTPServer安装配置和NTP客户端安装配置
- NTPServer端安装流程
- 服务端通过yum安装ntp软件
- 修改ntp.conf配置
- 手动同步时间
- 启动服务
- NTP客户端安装流程和NTPServer端安装类似,只是在ntp.conf配置上有区别
5 案例实践
前提条件:需要两台虚拟机,一台运行ntp时间服务器,另一台用来做同步时间的客户端(即ntp的客户端)在这里,我的“kerberosServer” 作为ntpserver,hadoop01用作模拟校正时间的客户端
1)NTPServer配置
Step 1 安装ntp
yum -y install ntp
-y参数表示安装自动选择,不需要询问用户
在这里我报错:
[root@kerberos ~]# yum -y install ntp
Error: There are no enabled repositories in "/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d".发现报错为yum源的问题,进行yum源的配置
openEuler虚拟机配置yum源:
1、查看系统内核情况
uname -a
发现内核是x86_64
2、查看原yum源
cd /etc/yum.repos.d/
cat openEuler_x86_64.rep
3、修改配置:
vi /etc/yum.repos.d/openEuler_x86_64.repo
添加如下配置:
[OS] name=OS baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [everything] name=everything baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler [EPOL] name=EPOL baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [debuginfo] name=debuginfo baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler [source] name=source baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler [update] name=update baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/update/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
该yum源来自于码云,链接如下:
openEuler-20.03-LTS/generic.repo4、更新yum源
yum makecache
更新以后,查看 repolist
yum repolist
至此就修改完yum源了
重新下载ntp
Step 2 修改配置
vi /etc/ntp.conf
配置内容:
#上级同步服务器:阿里云时间服务器同步地址 server ntp1.aliyun.com #上级服务器不通时使用本地服务 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 #记录上次的NTP server与上层NTP server联接所花费的时间 driftfile /var/lib/ntp/drift #允许访问时间服务器的IP地址 restrict 127.0.0.1 restrict -6 ::1 restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap #允许任何主机跟进行时间同步 #设置日志路径 startsdir /var/log/ntp/ #设置ntp日志文件 logfile /var/log/ntp/ntp.log
Step 3 手动同步时间
tip:
当你的时间与远程服务器时间相差太多(超过17分钟),远程服务器会拒绝同步时间,因此需要手工调整时钟或者使用ntpdate手工同步一次
ntpdate ntp1.aliyun.com
Step 4 启动服务
service ntpd start
Step 5 开机启动
查看开机启动配置:
[root@kerberosServer ~]# systemctl is-enabled ntpd
chkconfig ntpd on
2)NTP客户端(使用hadoop01模拟客户端,与服务器进行同步)
Step 1 安装ntp
yum -y install ntp
Step 2 修改配置文件
vi /etc/ntp.conf
注释掉默认配置,添加刚刚建立的时间服务器
server 192.168.56.240
在客户端进行时间同步:
[root@hadoop01 ~]# ntpdate 192.168.56.240
ntp报错解决:no server suitable for synchronization found
报错:在这里我遇到报错: no server suitable for synchronization found
解决:检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。
检查防火墙命令:
1:查看防火状态
systemctl status firewalld
service iptables status
2:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
重新更新客户端时间
6 案例总结
- 当局域网中服务器比较多时,NTP能够帮助我们解决时间同步和一致性问题
- NTP需要安装服务端和客户端
- 客户端时间与远程时间服务器时间相差太大时,需要手动更新时间
- 安装Kerberos服务器需要在集群中安装NTP时间服务器