Wednesday, October 29, 2008

Time Server Synchronization

Setup Time Server ตาม พรบ. กันหน่อย
ข้อ ๙ เพื่อให้ข้อมูลจราจรมีความถูกต้องและนำมาใช้ประโยชน์ได้จริงผู้ให้บริการ ต้องตั้งนาฬิกาของอุปกรณ์บริการทุกชนิดให้ตรงกับเวลาอ้างอิงสากล (Stratum 0) โดยผิดพลาดไม่เกิน ๑๐ มิลลิวินาที


ตามที่ค้นหามา ทำให้รู้ว่า Stratum คือลำดับชั้นของการเทียบเวลา
- Stratum 0 เป็น เวลาสากล หรือ International Atomic Time : TAI (แปลกใจตัวย่อล่ะสิ ที่จริงก็คือ ตัวย่อมาจากภาษาฝรั่งเศส คือ Temps Atomique International ครับ) ดูแลโดย BIPM
- Stratum 1 เป็นเครื่องคอมพิวเตอร์แม่ข่ายที่เชื่อมต่อกับ stratum 0 ได้รับค่าเวลามาจาก stratum 0 โดยตรง
- Stratum อื่น ๆ ก็ถ่ายทอดเวลากันมาเรื่อย ๆ

ดังนั้นถ้าจะทำตาม พรบ. เราก็ต้องเทียบเวลากับ เครื่องคอมพิวเตอร์แม่ข่าย ที่อยู่ใน Stratum 1 (เพราะเราไม่สามารถรับเวลาโดยตรงจาก stratum 0 ได้) ซึ่งเลือกได้ตามรูป


ใน Windows มี Service อยู่แล้วชื่อ Windows Time service (W32Time) โดยใช้ Simple Network Time Protocol (SNTP) ตามข้อกำหนด RFC 1769

วิธีใช้งานผ่าน Command line ได้ดังนี้
1.ดูว่าตอนนี้ใช้บริการ Time Server ตัวไหนอยู่
net time /querysntp



ถ้ายังไม่เคย set มาก่อนเลย ก็จะได้ค่าเป็น time.windows.com,0x1

2.เลือกใช้ Time Server ตัวอย่าง เช่น เลือกใช้ของ สถาบันมาตรวิทยาแห่งชาติ ก็ใช้คำสั่ง
net time /setsntp:"time1.nimt.or.th,0x1 time2.nimt.or.th,0x1"


ตามคำบอกเล่าของ Microsoft ,0x1 ต้องมีต่อท้ายไว้กรณีที่เราระบุ Time Server โดยใช้ DNS name แต่ถ้าใช้ IP ก็ไม่ต้อง เช่น
net time /setsntp:"203.185.69.60 203.185.69.59"


3.ทำการ restart Windows Time service ด้วยคำสั่ง
net stop w32time

ตามด้วย
net start w32time


Microsoft เค้ามีรายละเอียดเพิ่มเติมให้ที่ Knowledge Base ครับ

แล้วนี่ก็ link สำหรับอธิบายที่มาของ AnnounceFlags = 5 ครับ

ที่นี้ถ้าเราใช้ DHCP ก็จะง่ายในการกำหนดให้กับ Client ทั้งหลาย
โดยเข้าไปที่ Server Options แล้วกำหนด Time Server (004) ลงไป

ที่นี้เวลา Client ติดต่อขอ IP มา ก็จะได้ค่าของ Time Server ไปด้วย

No comments: