NTP คืออะไร
Network Time Protocol หรือ NTP คืออะไร ? ตามความหมายแล้วมันคือ networking protocol ที่ใช่สำหรับ sync time ของ server ทุกเครื่องใน network ให้ตรงกัน ผ่าน packet-switch ซึ่ง ntp เป็น protocol ที่เก่าแก่มากและมีมาตั้งแต่ 1985 และใช้คงใช้งานจนถึงปัจจุบัน เริ่มต้นคิดค้นโดย David L. Mills ที่ University of Delaware
สาเหตุที่่ต้องมี NTP นั้นก็เพราะ นาฬิกา หรือ clock ของ server, computer ใน network ไม่ได้เที่ยงตรงเท่ากันหมด บางครั้งการคลาดเคลือนกันเพียงหลักวินาทีอาจจะทำให้ application ที่ใช้งานสื่อสารกันผิดพลาดได้ และยิ่งในระบบ server ขนาดใหญ่ที่มีการ run ต่อเนื่องกันเป็นเวลานานหลายปี ย่อมมีความคลาดเคลือนไปบ้างอยู่แล้ว เพราะฉะนั้น NTP จึงเข้ามาช่วยในการทำ synchronize computer ในระบบ network เราให้แม่นยำในระดับ millisecond ความคลาดเคลื่อนที่อาจจะเกินขึ้นใน network latency มีเพียงแค่ 10 ms. สำหรับบน Internet และจะเหลือเพียง 1 ms. ภายใน local network
Protocol ที่ใช้จะอยู่ในรูป client-server หรือ peer-to-peer โดยจพทำการรับส่งข้อมูล timestamps ผ่านทาง UDP (port 123)
Stratum layer
NTP ทำงานเป็นลำดับชั้น หรือ layer โดยแต่ละ layer จะเรียกว่า “stratum” และเรียงตามตัวเลขจากบนสุดคือ 0 ลงไปเรื่อยๆ หมายความว่า stratum1 ทำการ sync กับ server บนสุด และ stratum2 ก็จะ sync กับ computer ที่อยู่ใน stratum1 ต่อมาอีกที ซึ่งจะเห็นว่ายิ่ง stratum มีค่าต่ำจะยิ่งมีความแม่นยำมากกว่า stratum สูงๆ สำหรับวง telecom ตัว ntp จะมีความสำคัญมากเพราะ signaling ที่ส่งกันภายใน network มีความเร็วสูงกว่าระบบ TCP ที่เราใช้กันปกติ รูปแบบของ stratum ที่ใช้งานจึงมีลักษณะนี้
Stratum 0
มีความแม่นยำสูงสุด เพราะเหมือน master clock ทำงานโดยใช้ atomic clokc, GPS clock หรือ radio clock โดยจะสร้าง signal pulse ทุกวินาที เพื่อ sync ให้กับ computer ที่ต่อเข้ามา เราเรียกกันว่า “reference clock”
Strarum 1
เป็น computer ที่ ทำการ sync กับ stratum 0 ทุกๆ ไม่กี่ microsecond ซึ่ง Stratum 1 server ทำการ sync กับ Stratum 1 server ตัวอื่นๆ เพื่อเป็นการเช็ก และ backup อีกที เราเรียกว่า “Primary Time Server”
Stratum2
เป็นพวก computer ที่่ทำการ sync ข้าม network มายัง stratum 1 server พวก stratum 2 นี้จะทำการ sync กับ stratum 1 server และเช็กกับ stratum 2 ตัวอื่นๆเพื่อความแม่นยำ
Stratum 3
เป็นพวก computer ที่่ทำการ sync กับ stratum 2 server ใช้วิธีการ sync แบบเดียวกับ stratum 2 และก็สามารถเปิดให้ stratum 4 เข้ามา sync กับตนได้
วิธีการติดตั้ง ntp
1. Install ntp
สำหรับ Linux สามารถ install ผ่าน repository ได้ เช่น Ubuntu
$ sudo apt-get install ntp
2. Configure NTP server
โดยปกติจะมี configure defult มาให้ใน file
$ vi /etc/ntp.conf
server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org
3. ตรวจสอบ status NTP
$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000 -203.158.247.150 202.47.249.21 2 u 38 64 3 10.116 -19.639 31.226 +103.22.182.121 202.47.249.21 2 u 36 64 3 11.413 -12.157 31.751 *113.53.247.3 (1 .GNSS. 1 u 36 64 3 10.138 -14.026 30.545 -ntp02.cpe.rmutt 179.43.76.147 2 u 99 64 2 10.082 -49.719 0.000 +122.155.169.213 202.47.249.21 2 u 33 64 3 9.054 -12.063 31.938 -alphyn.canonica 132.246.11.231 2 u 32 64 3 280.883 -13.324 32.226
4. หากมีการแก้ไข configure ต้องทำการ restart service
$ sudo service ntp restart
Author: Suphakit Annoppornchai
Credit: https://saixiii.com,https://www.digitalocean.com
[…] server ปัจจุบัน ซึ่งอาจจะมีการทำ sync กับ ntp รวมถึงสามารถตั้งเวลาของ server […]
[…] (00:00) January 1, 1900 เป็นเวลามาตราฐานของ Network Time Protocol (NTP) แต่ […]