5/28/2560

ทำความเข้าใจเรื่อง NTP (Network Time Protocol)


เพื่อให้เครื่อง SERVER (Linux Server / Windows Server) ตั้งเวลาที่ถูกต้องตามฐานเวลาในประเทศไทย ผู้ดูแลระบบจำเป็นต้องปรับค่าการตั้งฐานเวลาเอง โดยปกติในระบบ Linux Server/Windows Server จะเปิดบริการ NTP (Network Time Protocol) ให้อัตโนมัติหลักการติดตั้ง ผู้ดูแลระบบสามารถที่ต้องตั้งค่าเองได้ เพื่อป้องกันความผิดพลาดในการเก็บไฟล์ล็อกต่างๆ อีกทั้งเพื่อให้สอดคล้องกับพระราชบัญญัติว่าด้วยการกระทำผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ.๒๕๕๐ เรื่องหลักเกณฑ์การเก็บรักษาข้อมูลจราจรทางคอมพิวเตอร์ของผุ้ให้บริการ ข้อ 9 ดังนี้

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

จากประกาศดังกล่าวผู้ให้บริการจึงต้องมีการปรับฐานเวลาของอุปกรณืในระบบเครือข่าย ให้อ้างอิงตามเวลาสากล โดยการปรับปรุงจะต้องใช้โปรโตคอล NTP บนอุปกรณ์นั้นๆ เพื่อให้เวลามีความถูกต้อง เที่ยงตรง และสอดคล้องกับ พ.ร.บ. คอมพิวเตอร์ฯ ที่ได้ประกาศไว้

NTP (Network Time Protocol) เป็นโปรโตคอลสำหรับใช้เทียบเวลา (Synchronize) ระหว่างอุปกรณ์ที่ให้บริการเทียบเวลา (Time Server) กับคอมพิวเตอร์หรืออุปกรณ์ที่ต้องการเทียบเวลา (Time Client) ผ่านทางเครือข่ายการสื่อสารต่างๆ โดยโปรโตคอลจำทำงานที่พอร์ต 123 และใช้โปรโตคอล UDP ในการให้บริการ ลักษณะการให้บริการเทียบเวลาของโปรโตคอล NTP จะแบ่งออกเป็นลำดับชั้น เรียกว่า Clock Strata โดยในแต่ละลำดับชั้นจะเรียกว่า Stratum โดยจะเริ่มต้นอยู่ที่ Stratum 0 ไปจนถึงลำดับชั้นที่ยอมรับว่ายังมีความเที่ยงตรง คือ Stratum 4 หากมากกว่านี้จะไม่ได้รับการยอมรับตามมาตรฐานที่กำหนดขึ้นมาจากหน่วยงาน ANSI (American National Standards Institute) สำหรับอุปกรณ์คอมพิวเตอร์ที่เทียบเวลากับ Stratum 0 เรียกว่า Stratum 1 ถ้ามีอุปกรณ์คอมพิวเตอร์อื่นๆ ขอเทียบเวลากับ Stratum 1 จะเรียกว่า Stratum 2 ตามลำดับ จนถึง Stratum 4 นั่นหมาบถึงลำดับของ Stratum ที่มากขึ้นจะมีค่าเวลาที่มีความห่างกับเวลามาตรฐานสากล Stratum 0 มากขึ้นด้วย

Stratum 0 เป็นลำดับชั้นแรกในการเทียบเวลา ซึ่งใช้อุปกรณ์ที่ทำหน้าที่ Synchronize เวลามาตรฐานสากล โดยไม่มีค่าหน่วงเวลาใดๆ โดยใช้เทคโนโลยีต่างๆ ได้แก่ Atomic Clock, คลื่นยาว (Long wave radio), การส่งสัญญา GPS, เทคโนโลยี CDMA (เทคโนโลยีแบบที่ค่ายมือถือ) หรืออุปกรณ์เกี่ยวกับเวลาอื่นๆ เช่น WWV, DCF77 ฯลฯ อุปกรณ์ที่เป็น Stratum 0 จะไม่ได้ต่อในระบบ Network แต่จะเชื่อมโดยตรงกับเครื่องที่ทำหน้าที่เป็น Stratum 1 ดังนั้นเซิร์ฟเวอร์ ที่ต่อโดยตรงกับ อุปกรณ์พวก Stratum-0 จะเรียกว่าเป็น Stratum-1 server ซึ่ง Stratum-1 server ถือว่าเป็น Time server ระดับต้น (Primary Time Server) ที่อยู่ในระบบ Network ที่ผู้ใช้บริการ Network Time Protocol (NTP) สามารถมาเชื่อมผ่าน Network มาอ้างอิงเวลาได้

Stratum 1 เป็นลำดับที่ใช้คอมพิวเตอร์เซิร์ฟเวอร์เชื่อมต่อเข้ากับ Stratum 0 เพื่อขอเทียบเวลา โดยใช้โปรโตคอล NTP ในประเทศไทยมีหน่วยงานที่ทำหน้าที่ระดับ Stratum 1 ได้แก่ สถาบันมาตรวิทยาแห่งชาติ และ กรมอุทกศาสตร์กองทัพเรือ

Stratum 2 เป็นลำดับที่ขอเทียบเวลาจากเซิร์ฟเวอร์ในระดับ Stratum 1 โดยใช้เครื่องเซิร์ฟเวอร์เชื่อมผ่านระบบเครือข่ายอินเทอร์เน็ต สามารถร้องขอบริการเทียบเวลาได้มากกว่าหนึ่งแหล่ง Stratum เพื่อรองรับการทำงานกรณีที่ Stratum 1 เครื่องใดเครื่องหนึ่งไม่สามารถให้บริการได้

Note.
ระดับของ Stratum ที่สูงขึ้นจะหมายถึง NTP server จะมีระยะห่างจาก Stratum-1 server มากขึ้น เช่น Stratum-2 หมายถึง NTP Server ที่อ้างอิงเวลามาจาก NTP Server ระดับ Stratum-1, Stratum-3 Server หมายถึง NTP Server ที่อ้างอิงเวลามาจาก NTP Server ระดับ Stratum-2 เป็นอย่างนี้ไปเรื่อยๆ โดยเวลามาตรฐานโลก ที่เรียกว่า “Universal Time Clock (UTC) นับเริ่มต้นที่เมือง กรีนิช ประเทศอังกฤษ เป็น UTC+0 (ประเทศไทย UTC+7)

Q: แล้วเวลา Stratum แต่ละระดับจะมีความผิดเพี้ยนจาก UTC ได้มากน้อยเพียงใด?
- Stratum-1 มีค่าความผิดเพี้ยนไม่เกิน 1 มิลลิวินาที จาก UTC
- Stratum-2 มีค่าความผิดเพี้ยนประมาณ 10-100 มิลลิวินาที จาก UTC

เพื่อให้เครื่อง Endian Firewall ปฏิบัติให้สอดคล้องตามประกาศกระทรวงฯ ในเรื่องนี้ นัยสำคัญ คือ ทำอย่างไรไม่ให้ NTP มีความผิดพลาดเกิน 10 มิลลิวินาที โดยทั่วไปเรามักจะกำหนด Server หรืออุปกรณ์ Network ให้ไป Synchronize time กับ NTP Server ใน Internet ปัญหาคือ การออก Internet นั้นต้องผ่าน Firewall, ผ่านอุปกรณ์ Network ต่างๆ มากมาย ทำให้เกิดการหน่วงเวลา และเวลาที่ได้อาจมีความผิดเพี้ยนสูง อาจเกินกว่า 100 มิลลิวินาที

A:
1. แนวทางแรกคือ ตั้ง NTP Server Stratum-1 ขึ้นมาเองในองค์กร ซึ่งจะทำให้เวลาผิดเพี้ยนน้อยกว่า 10 มิลลิวินาที อย่างแน่นอน

2. แนวทางที่สองคือ ตั้ง NTP Server Straum-2 ขึ้นมา ซึ่งยอมให้เวลาผิดเพี้ยนได้ในระดับ 10-100 มิลลิวินาที แล้วให้ NTP Server ของเราไป Synchronize time กับ Stratum-1 Server จาก Internet และควรเลือก Stratum-1
NTP Server ในประเทศไทย NTP Server ที่เราตั้งขึ้นมาจะนับเป็น Stratum-2 Server จากนั้นก็กำหนดให้ อุปกรณ์ Network หรือ Servers ทุกชนิดในองค์กร Synchronize time มาจาก NTP Server ของเราเอง

3. แนวทางที่สามคือ ไม่ตั้ง NTP Server โดยยังคงกำหนดให้อุปกรณ์ Network หรือ Server ไป Synchronize time ผ่าน Internet โดยพยายามเลือก Stratum-1 Server ซึ่งเวลาก็อาจจะเพี้ยนไปบ้าง เกินกว่า 10 มิลลิวินาทีขึ้นไป ดีกว่าไม่ทำอะไรเลย

1 ความคิดเห็น: