目录

案例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端安装流程
  1. 服务端通过yum安装ntp软件
  2. 修改ntp.conf配置
  3. 手动同步时间
  4. 启动服务
  • 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".

内网环境安装 docker 内网环境安装kerberos_服务器

发现报错为yum源的问题,进行yum源的配置

openEuler虚拟机配置yum源:

1、查看系统内核情况

uname -a

内网环境安装 docker 内网环境安装kerberos_运维_02

 发现内核是x86_64

2、查看原yum源

cd /etc/yum.repos.d/

cat openEuler_x86_64.rep

内网环境安装 docker 内网环境安装kerberos_大数据_03

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

内网环境安装 docker 内网环境安装kerberos_大数据_04

该yum源来自于码云,链接如下:
openEuler-20.03-LTS/generic.repo

4、更新yum源

yum makecache

更新以后,查看 repolist

yum repolist

 

内网环境安装 docker 内网环境安装kerberos_内网环境安装 docker_05

至此就修改完yum源了 

重新下载ntp

内网环境安装 docker 内网环境安装kerberos_网络_06

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


内网环境安装 docker 内网环境安装kerberos_大数据_07

Step 4 启动服务


service ntpd start


Step 5 开机启动

查看开机启动配置:

[root@kerberosServer ~]# systemctl is-enabled ntpd


chkconfig ntpd on


内网环境安装 docker 内网环境安装kerberos_运维_08

2)NTP客户端(使用hadoop01模拟客户端,与服务器进行同步)

Step 1 安装ntp


yum -y install ntp


内网环境安装 docker 内网环境安装kerberos_网络_09

Step 2 修改配置文件


vi /etc/ntp.conf


注释掉默认配置,添加刚刚建立的时间服务器

server 192.168.56.240

内网环境安装 docker 内网环境安装kerberos_内网环境安装 docker_10

 在客户端进行时间同步:

[root@hadoop01 ~]# ntpdate 192.168.56.240

ntp报错解决:no server suitable for synchronization found

报错:在这里我遇到报错: no server suitable for synchronization found

内网环境安装 docker 内网环境安装kerberos_运维_11

解决:检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。 

检查防火墙命令:

1:查看防火状态

systemctl status firewalld

service  iptables status

内网环境安装 docker 内网环境安装kerberos_内网环境安装 docker_12

2:永久关闭防火墙

systemctl disable firewalld

chkconfig iptables off

内网环境安装 docker 内网环境安装kerberos_服务器_13

 重新更新客户端时间

6 案例总结

  • 当局域网中服务器比较多时,NTP能够帮助我们解决时间同步和一致性问题
  • NTP需要安装服务端和客户端
  • 客户端时间与远程时间服务器时间相差太大时,需要手动更新时间
  • 安装Kerberos服务器需要在集群中安装NTP时间服务器