NTP(Network Time Protocol)는 네트워크를 통해 여러 컴퓨터 간 시간을 동기화하는 네트워크 프로토콜이다.
일반적으로 하나의 시스템 내의 장비들의 시간을 맞춰주기 위해 사용된다.
NTP서버가 기준점이 되어 클라이언트는 서버의 정보를 받아와 시간을 동기화하게 된다.
일반적으로는 모든 장비가 외부망을 통해 NTP서버에 접속해 시간 데이터를 받아오기 때문에 문제가 없다. 그러나 폐쇄된 내부망 환경처럼 외부망 인터넷 접속을 통한 시간 동기화가 불가능한 경우, 망 내에 시간 동기화용 NTP 서버를 하나 만들어 장비간 시간을 동기화 해줄 필요가 있다.
이 글은 Linux와 Windows 환경에서 NTP서버와 클라이언트를 설정해 주는지 작성한다.
Linux NTP Server
먼저 시스템의 시간의 기준점이 될 서버를 설정해 주어야 한다.
Rocky9에서 진행했으나 Red Hat 계열 리눅스라면 OS에 상관 없이 과정은 동일하다.
다른 장비들이 내부망을 타고 접근하여 시간 정보를 받아가야하기때문에 고정 IP를 할당해 줄 필요가 있다.
해당 과정은 CLI로 고정 IP 할당에서 확인할 수 있다.
현재 NTP서버로 동작할 컴퓨터는 '192.168.1.134'의 IP를 사용중이다.
chrony 패키지를 설치해 준다. 현재 리눅스 환경에서 가장 대중적으로 사용되는 NTP 패키지이다.
sudo yum install chrony
# or
# sudo dnf install chrony
설치했으면 chrony 데몬을 실행해준다.
sudo systemctl enable chronyd
sudo systemctl start chronyd
chrony가 잘 동작하는지는 status명령을 사용해 확인할 수 있다.
sudo systemctl status chronyd
녹색으로 active (running)으로 표시되어 정상적으로 동작중임을 확인할 수 있다.
/etc/chrony.conf에 chrony의 설정값이 저장된다. 해당 파일에서 시간의 소스와 접근 권한 등을 설정해줄 수 있다.
일반적으로는 내부망 안에있는 GPS시계나 외부망의 NTP 서버를 레퍼런스로 삼는다.
여기에서는 외부 인터넷의 NTP서버를 사용할 것이다.
외부망에서 레퍼런스를 찾는다면 https://www.ntppool.org/에서 지역별 NTP서버 확인이 가능하다.
물리적으로 가까우면 그만큼 오차가 적으니 가까운 서버를 사용하는 것이 권장된다.
server 2.kr.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
이렇게 3가지를 레퍼런스로 사용할 예정이다.
/etc/chrony.conf 파일을 관리자 권한으로 연다.
sudo vi /etc/chrony.conf
Rocky OS의 경우 기본적으로 로키에서 운영하는 NTP서버에서 불러오게 설정이 되어있음을 볼 수 있다.
해당 부분('pool 2.rocky.pool.ntp.org iburst')을 주석처리(#) 해주고 설정하고자 하는 서버를 등록한다.
형식은
server "시간 레퍼런스의 IP 혹은 도메인" iburst
으로 작성하면 된다.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst
server 2.kr.pool.ntp.org iburst
server 0.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
내부망의 타 장비에서 NTP 접근을 허용하기 위해 "Allow NTP client access from local network." 부분 설정을 수정해준다.
기본 설정은 접근 비허용이기 때문에 "allow 192.168.0.0/16"부분이 주석처리가 되어있음을 볼 수 있다.
주석을 해제하고 IP대역을 실제로 사용할 영역으로 변경해준다.
현재 내부망에서 장비들이 192.168.1.xxx 대역과 서브넷 255.255.255.0을 사용하기 때문에
192.168.1.0/24로 변경해준다.
# Allow NTP client access from local network.
allow 192.168.1.0/24
ESC키를 눌러 명령모드로 전환 후 ':wq'를 입력해 설정 파일을 저장해준다.
설정 파일의 변경사항이 적용되려면 chrony데몬의 재실행이 필요하다.
sudo systemctl restart chronyd
'chronyc sources'와 'chronyc tracking'을 통해 NTP 레퍼런스가 잘 등록되었는지, 동기화는 잘 되는지 확인할 수 있다.
chronyc tracking
chronyc sources
문제없이 레퍼런스 서버와 동기화됨을 확인할 수 있다.
클라이언트의 접근 및 동기화를 위해 방화벽에서 NTP접근을 허용해준다.
chrony.conf에서 접근 허용한 것은 chrony 자체 권한이고, 내부망을 타고 접근하는 장비들의 NTP 접근을 허가해줘야한다.
sudo firewall-cmd --add-service=ntp --permanent
# chrony.conf에서 접근 허용했던 것처럼 IP대역을 제한하여 방화멱을 열 수 있다.
# sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' service='ntp' accept"
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
방화벽 설정까지 정상적으로 완료되었다면 NTP 서버 설정이 끝났다.
Linux NTP Client
NTP 서버로 동작하는 것 뿐만 아니라, NTP서버에서 시간을 동기화해오기 위해서도 chrony가 필요하다.
Rocky8으로 진행할 것이다. 서버 설정때와 마찬가지로 Red Hat 계열 리눅스라면 버전에 따라 설정이 달라질 부분은 없다.
현재 NTP서버로 동작중인 '192.168.1.134'와 동기화 설정을 해줄 것이다.
chrony 패키지를 설치 후 chrony데몬을 실행하여 정상적으로 chrony가 동작하는지 확인한다.
sudo dnf install chrony
sudo systemctl enable chronyd
sudo systemctl start chronyd
sudo systemctl status chronyd
/etc/chrony.conf 파일을 관리자 권한으로 연다.
sudo vi /etc/chrony.conf
디폴트로 설정되어있는 NTP서버를 지우고(혹은 주석처리하고) 생성한 내부망의 NTP서버의 IP(192.168.1.134)를 사용하여 레퍼런스로 삼는다.
server "시간 레퍼런스의 IP 혹은 도메인" iburst
여러개의 NTP서버를 사용하는 경우 iburst 뒤에 prefer를 붙여 우선순위를 높일 수 있다.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rocky.pool.ntp.org iburst
server 192.168.1.134 iburst prefer
NTP 서버와 동기화만 할거고 자체로 NTP서버로 동작할 것은 아니기 때문에 다른 옵션은 수정할 필요 없다.
ESC키를 눌러 명령모드로 전환 후 ':wq'를 입력해 설정 파일을 저장해준다.
설정 파일의 변경사항이 적용되려면 chrony데몬의 재실행이 필요하다.
sudo systemctl restart chronyd
'chronyc sources'와 'chronyc tracking'을 통해 NTP 레퍼런스가 잘 등록되었는지, 동기화는 잘 되는지 확인할 수 있다.
chronyc tracking
chronyc sources
문제없이 생성한 내부망의 NTP 서버와 동기화됨을 확인할 수 있다.
이런 식으로 모든 장비를 NTP 서버에 연결해주면 된다.
Windows
윈도우는 NTP서버로 사용하는 경우는 거의 없지만 클라이언트로서 NTP 시간 동기화 설정 해주는 과정은 리눅스보다 훨씬 간단하다.
리눅스처럼 별도의 NTP 툴을 설치할 필요가 없고, 윈도우 NTP 기능이 OS 안에 내장되어있다.
NTP 서버 용도라면 레퍼런스로 받아올 소스를 등록해두면 되고, 클라이언트라면 내부망의 NTP서버 IP와 동기화를 설정하면 된다.
위의 리눅스 NTP 서버로 생성한 '192.168.1.134'를 사용할 것이다.
제어판과 서버 관리자에서 직관적으로 설정이 가능하다.
먼저 제어판을 실행한다.
'시계 및 국가' 아래의 '시간 및 날짜 설정'을 클릭한다.
'인터넷 시간' 을 선택한다
'설정 변경'을 클릭한다.
현재 'time.windows.com'에서 동기화받고 있음을 확인할 수 있다.
저 부분에 동기화할 NTP서버(192.168.1.134)를 입력한 후 '지금 업데이트'를 클릭한다.
정상적으로 동기화가 됨을 확인했으면 '확인'을 눌러 창을 나와준다.
NTP 서버 연결이 완료되었다.
'Server' 카테고리의 다른 글
iODD 아이오드 (0) | 2024.02.05 |
---|---|
MultiPath 멀티패스 (0) | 2024.01.16 |
DNS 서버 구축 (0) | 2024.01.08 |
CLI로 고정 IP 할당 (0) | 2023.12.27 |
DELL PowerEdge 서버 OS 설치 (feat. iDRAC) (1) | 2023.12.21 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!