การเทียบเวลาด้วย Network Time Protocol ให้สอดคล้องกับ พรบ. ฯ2550

บทความนี้มีจุดประสงค์เพื่อให้ความรู้สำหรับการใช้บริการเทียบเวลาจาก เครื่อง Time Server ที่เปิดให้บริการสาธารณะ โดยเฉพาะอย่างยิ่งการขอใช้บริการจาก Time Server ของ ThaiCERT (clock.thaicert.org) ด้วยโปรแกรมซึ่งทำงานอยู่บนระบบปฏิบัติการ Windows และ UNIX หากท่านต้องการความรู้เพิ่มเติมเกี่ยวกับการทำงานของ Network Time Protocol (NTP) หรือ Time Server ท่านสามารถศึกษาได้จากเอกสารอ้างอิงที่ [1] และ [2]

การใช้บริการ Time Server ในระบบปฏิบัติการ UNIX หรือ Linux
โปรแกรม สำหรับการเทียบเวลาในระบบปฏิบัติการตระผมลยูนิกซ์ ได้แก่โปรแกรม ntp ซึ่งสามารถดาวน์โหลดได้จากเว็บ http://www.ntp.org/downloads.html

ขั้นตอนการติดตั้งทั่วไปมีดังต่อไปนี้

ดาวน์โหลดโปรแกรมด้วยคำสั่ง wget

wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.0.tar.gz

ขยายไฟล์ tar-ball ด้วยคำสั่ง tar

tar -xzvf ntp-4.2.0.tar.gz

เข้าสู่ไดเรกทอรี ntp-4.2.0 และทำการตั้งค่าระบบก่อนการ compile ด้วย shell script configure

cd ntp-4.2.0

./configure

ทำการ compile ด้วยคำสั่ง make

make

ติดตั้งโปรแกรมด้วยคำสั่ง make install

make install

การเทียบเวลาด้วยคำสั่ง ntpdate
เมื่อ มีการใช้งานคำสั่ง ntpdate โดยตามด้วยอากิวเมนต์ของ Time Server ระบบจะทำการเทียบเคียงเวลาจากเครื่อง Time Server ที่ระบุ ซึ่งผู้ดูแลระบบ หรือ root เท่านั้นที่สามารถใช้งานคำสั่ง ntpdate ได้ ตัวอย่างคำสั่งนี้ที่ทำการเทียบเคียงเวลาจากเครื่อง clock.thaicert.nectec.or.th

ntpdate clock.thaicert.nectec.or.th

10 Sep 15:16:14 ntpdate[2264]: step time server 203.185.132.187 offset 10.006533 sec

เพื่อให้ระบบได้รับการเทียบเคียงเวลาที่ถูกต้องอย่างต่อเนื่อง ผู้ดูแลระบบอาจจะสร้าง cron job ที่มีรูปแบบดังตัวอย่าง

30 * * * * ntpdate clock.thaicert.nectec.or.th

ซึ่ง cron job ข้างต้นหมายถึง ระบบต้องทำการเทียบเวลากับเครื่อง Time Sever ที่ชื่อ clock.thaicert.nectec.or.th ทุกๆ ครึ่งชั่วโมง

การเทียบเวลาด้วย daemon ntpd
การ ใช้งานคำสั่ง ntpdate จะเป็นการขอเทียบเวลา โดยนำค่าเวลาที่ได้จาก Server มาปรับเปลี่ยนทันที อย่างไรก็ตามในระบบที่ต้องการความต่อเนื่องของความเที่ยงตรงมากขึ้นควรใช้ งาน daemon ntpd การตั้งค่าการทำงานของ daemon นี้มีขั้นตอนดังนี้

ปรับแต่งค่าไฟล์ ntp.conf (บางระบบอยู่ใน /etc/ntp.conf หรือ /usr/local/etc/ntp.conf) โดยควรมีการตั้งค่าอย่างน้อยดังต่อไปนี้

restrict default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

server clock.thaicert.org

server 0.asia.pool.ntp.org

ค่าข้างต้นมีความหมายดังนี้

ค่าระบบ
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
server

ความหมาย
เป็น การควบคุมให้ระบบไม่เปิดให้บริการขอเทียบเวลาให้กับเครื่องอื่น เนื่องจากหน้าที่ของเครื่องเป็นเพียง client (ศึกษาเพิ่มเติมจาก manual ของ ntpd)
server กำหนด Time Server ที่ต้องการเทียบเวลา โดยสามารถกำหนดได้อย่างน้อย 1 Server (สามารถค้นหา Public Time Server อื่นๆ จาก http://www.pool.ntp.org/)

ก่อนเริ่มการทำ งานของ ntpd ควรใช้คำสั่ง ntpdate กับ Time Server ที่กำหนดใน ntp.conf ก่อนเพื่อให้เวลาใน client และ Time Server มีค่าใกล้เคียงกัน
เริ่มการทำงานของโปรแกรม ntpd ด้วยคำสั่ง

ntpd

การใช้บริการ Time Server ในระบบปฏิบัติการ Windows
ใน ระบบปฏิบัติการ Windows XP Service Pack 2 , Windows Vista และ Windows 2003 Server จะมีโปรแกรมสำหรับการเทียบเวลาที่ติดตั้งมาพร้อมระบบปฏิบัติ โดยมีขั้นตอนการใช้งานดังแสดงตัวอย่างของ Windows XP Service Pack 2 ดังนี้

Double Click พื้นที่ของวันเวลาบน Task Bar ในตำแหน่งมุมขวาล่าง จะปรากฏโปรแกรม Clock ดังรูป
(http://www.thaicert.org/paper/basic/manualTimeServer/Date&Time1.png)

เลือก Internet Time Tab และเลือก check box “Automatically synchronize with an Internet time server” และเพิ่มค่า Server เป็น clock.thaicert.org และกดปุ่ม Update Now จะได้ผลดังรูป

(http://www.thaicert.org/paper/basic/manualTimeServer/Date&Time2.png)

หลังจากตั้งค่าเสร็จให้กดปุ่ม OK เพื่อยืนยันการตั้งค่าดังกล่าว
บทสรุป
นอก จาก Time Server ของ ThaiCERT ที่ชื่อ clock.thaicert.org แล้ว ยังมีเครื่อง Time Server ที่เปิดให้บริการแก่สาธารณะแหล่งอื่นๆ โดยดูรายละเอียดเพิ่มเติมจากเอกสารอ้างอิง [3] เครื่องมือ และโปรแกรมอื่นๆ สามารถตรวจสอบรายละเอียดเพิ่มเติมดังเอกสารอ้างอิง [4]

เอกสารอ้างอิง

[1] http://www.ntp.org/
[2] http://www.thaicert.nectec.or.th/paper/basic/time_server.pdf
[3] http://www.eecis.udel.edu/~mills/ntp/servers.html
[4] http://www.boulder.nist.gov/timefreq/general/softwarelist.htm

ขอขอบคุณบทความดีๆ จาก:

ขอบคุณครับ

ใช้วิธีตั้ง crontab เพิ่มครับ…วันล่ะครั้ง (ไม่ได้เสียหายอะไร)

ตกลงใช้ของ nectec หรือ สถาบันมาตรวิทยาแห่งชาติ Server :: time1.nimt.or.th และ time2.nimt.or.th และ time3.nimt.or.th เพราะก่อนหน้านี้ที่เปรียบเทียบดูเวลาไม่ได้ตรงกันเลย

ผมใช้ nectec ครับ… (แล้วใครมันตรงกันแน่เนี้ย)

ทุก server ผมชี้ไป nectec หมดครับ
อย่างน้อยถ้ามันไม่ตรงกับใคร server ของผมก็ยังตรงกันเองทุกเครื่อง

ผมใช้ ntp1.cat.net.th ครับ เพราะว่า server ตัวนี้เป็น Stratum-1 ซึ่งจะดึงเวลามาจาก ดาวเทียมโดยตรงครับ
Stratum-2, Stratum-3… เวลามันจะ diff ไปเรื่อยๆครับ

ถ้าจะให้ชัวร์ ให้ใช้ Stratum-1 ดีที่สุดครับ

อ้อ สำหรับ Linux อย่าลืมสั่ง
hwclock --systohc
ตามหลังไปด้วยนะครับ
จะเป็นการ save เวลา ลง bios