วันพฤหัสบดีที่ 19 มีนาคม พ.ศ. 2552

ขั้นตอนการทำ server

ขั้นตอนที่ 1 : เตรียมการ - Backup ข้อมูลที่สำคัญในเครื่องที่คิดจะติดตั้ง linux ความแน่นอนคือความไม่แน่นอน - ถ้ามีเครื่องใหม่ และลง linux อย่างเดียวก็หาแผ่น linux มาลงได้เลย .. เพราะเสียแล้วไม่เป็นไร - ถ้ามี windows อยู่ต้องการลงทั้ง 2 ระบบให้ไปหา partition magic มาแบ่ง partition - แบ่งว่าจะใช้ Windows กี่ GB แต่ linux จะใช้ไม่น้อยกว่า 1 GB โดยปกติ - นั่งคิดให้ดีกว่าจะลง linux ไปทำไม เช่น ศึกษาเป็น work station หรือ เป็น server เป็นต้น - ไปหาโปรแกรม linux ซึ่งผมแนะนำว่าเป็น Redhat เพราะมีคนใช้กันมากที่สุดในโลก
ขั้นตอนที่ 2 : ติดตั้ง - ถ้ามี windows อยู่ให้ใช้ partition magic แบ่ง partition ให้เรียบร้อย - ใช้แผ่น CD Boot แล้ว Enter เขาก็จะถามติดตั้งเลย ถ้า VGA card เป็นที่ยอมรับของ linux ก็จะได้เห็นจอสวย - ถ้าไม่มีสนับสนุนก็ต้องเล่น text mode ไปครับ คนที่ผมรู้จักหลายคน หรือแม้แต่เครื่องที่ผมใช้ ยังใช้ text mode เลย - เมื่อเข้าไปต้องแบ่งอย่างน้อย 2 partition คือ linux partiton และ linux swap - Install ตามขั้นตอน ซึ่งใช้เวลาประมาณ 2 ชั่วโมง (เหมือน windows นั่นหละครับ) - ถ้าโชคดี หลังติดตั้งเสร็จก็จะขึ้นคำว่า Login: มารอให้ป้อนรหัสเข้าสู่ระบบ - มีปัญหาการติดตั้งให้ถามที่ http://linux.thai.net เพราะทีมงานไม่ได้ชำนาญในการแก้ปัญหาทุกกรณี (ประสบการณ์น้อยมาก)
ขั้นตอนที่ 3 : ใช้งาน linux เบื้องต้น (Server) - หัดใช้คำสั่งใน linux ที่ใช้กันบ่อย ๆ ซึ่งผมแนะนำในบทที่ 1 หัดเป็นผู้ใช้ - เมื่อใช้เป็นแล้ว ลอง telnet เข้าไปใช้ server ที่อื่นดูครับ .. สั่งสมประสบการณ์ - สู่บทที่ 2 แต่ต้องทำที่เครื่องตนเองนะครับ เช่น useradd usermod หัดใช้คำสั่งระดับสูงดูครับ - ซอกซอนเข้าไปดูระบบ และคำสั่งต่าง ๆ ยิ่งใช้เวลามาก ยิ่งซึมซับ .. ผมเองยังไม่มีเวลาเลย - วิธีการ config ระบบ ดูทุกแฟ้มที่นามสกุล .conf จะเข้าใจการทำงานของ linux มากขึ้น
ขั้นตอนที่ 4 : ใช้ประโยชน์ Server ก่อนจะ upgrade server - หัดใช้ mail แบบต่าง ๆ ที่ Server ให้บริการ เช่น pop, imap, pine เป็นต้น - หัดเขียน Shell script เพราะจะทำให้โอกาสหน้า สามารถแก้ปัญหาระบบได้หลายเรื่อง - หัดเขียนทำเว็บในเครื่องตนเองด้วย html อย่างง่าย - หัดเขียน CGI เพื่อทำให้เว็บที่พัฒนาขึ้นมา เป็นยอดเว็บ เช่น yahoo, hypermart, pantip เป็นต้น
ขั้นตอนที่ 5 : Install application - เนื่องจาก server ที่ติดตั้งไป มีบริการที่เป็นมาตรฐาน หากต้องการความสามารถใหม่ ต้องลงโปรแกรมเพิ่ม - บริการ Webbased mail อย่างง่าย (หัวข้อ 9.71) - บริการ proxy หรือ cache server (หัวข้อ 9.72) - บริการ incoming ใน ftp (หัวข้อ 9.73) - บริการ Apache + php + Mysql (หัวข้อ 9.74) - บริการ SSI (หัวข้อ 9.75) - บริการ Radius (หัวข้อ 9.76 เหมือนเปิดบริการเทียบ ISP เลยครับ) - บริการ Modem (หัวข้อ 9.77 เหมือนเปิดบริการเทียบ ISP เลยครับ)
ขั้นตอนที่ 6 : ความปลอดภัย (Security) - หลายคนบอกว่า ความปลอดภัยเป็นเรื่องแรก แต่ผมว่า server ยัง up ไม่ขึ้น ความปลอดภัยอย่างพึ่งสนเลยครับ - การเป็น System Admin ที่ดี ผมว่าต้องเป็น Hacker ที่ดีด้วย ถึงจะไปด้วยกันได้ (ถ้าไม่รู้ว่า server รั่วอย่างไร จะปิดได้ไง) - อ่านหน่อยครับว่า ถูก hack อย่างไร จะได้เป็นบทเรียน (หัวข้อ 9.51) - อ่านหน่อยครับว่า ปกป้องตัวเองอย่างไร จะได้เป็นบทเรียน (หัวข้อ 9.52) - ป้องกัน hacker มือสมัครเล่นด้วย Restricted shell (หัวข้อ 9.52) - ปิดบริการด้วย TCP wrapper (หัวข้อ 9.54)
ขั้นตอนที่ 7 : เรื่องเฉพาะที่ควรทราบ - ทำให้เครื่องเป็น DNS server (ยังไม่ได้เขียนเป็นจริงจัง) - บริการ Dedicate server (ยังไม่ได้เขียนเป็นจริงจัง) - ทำให้เครื่องมีหลาย IP ในกรณีที่ server ตัวหนึ่งล่ม จะได้ย้ายได้ใน 1 นาที (หัวข้อ 9.10) - Backup ระบบ (หัวข้อ 9.96) แต่ยังไม่ update - ใช้ php เขียนโปรแกรมบริการ mail แข่งกับ hotmail.com (ยังหาเวลาศึกษาไม่ได้) - เปิด free hosting (กำลังพยายาม เพราะระบบยังไม่แข็งพอสู้กับ hacker มืออาชีพ ก็เปิดไม่ได้)
ขั้นตอนการติดตั้ง เมื่อ RedHat 9.0
1. ติดตั้ง linux พร้อม Config ให้ใช้งานเครือข่ายได้
การ install Redhat บ่อยครั้งที่ต้องติดตั้งโปรแกรมเพิ่ม จึงต้องหามาจาก CD และใช้คำสั่ง rpm -i ชื่อแฟ้มใน CD ทั้ง 3 แผ่นมีดังนี้ แผนที่ 1, แผนที่ 2, แผนที่ 3
2. #/usr/bin/setup
1. แล้วกำหนด IP ด้วยนตัวเลือก network
2. แล้วเปิดบริการด้วยตัวเลือก system services : httpd,imap,imaps,ipop2,ipop3,kudzu,named,network,pop3s,sendmail,sshd,syslog,vsftpd,xinetd,servers,services
3. copy passwd, shadow, group จาก server ตัวหลัก มาแทนที่ในเครื่องที่ติดตั้งใหม่
4. เพิ่ม IP ใน Server ตัวเดียวด้วย IFCONFIG
5. เปิดบริการ SAMBA server
6. เปิดบริการ DNS server ให้คอมพิวเตอร์ทั้งหมดในเครือข่าย สามารถใช้ชื่อเว็บไซต์ได้ถูกต้อง มิเช่นนั้นต้องใช้ตัวเลข
7. เปิดบริการ sendmail หรือ smtp ให้ผู้ใช้สามารถส่ง e-mail ด้วย outlook ผ่าน server ของเรา
8. แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf เพื่อเปิดบริการต่าง ๆ ของ apache webserver
9. เปิดบริการ FTP server
10. เปิดบริการ Web-based mail ด้วย uebimiau-2.7.2-any.zip
11. เปิดบริการ Web hosting file manager ด้วย easyhost_free.zip
12. เปิดบริการ Virtual hosts
13. เปิดบริการ RADIUS server
14. เปิดบริการ MYSQL server
15. เปิดบริการ DHCP server แจก Dynamic IP

การทดสอบการทำงานของ DHCP Server

การทดสอบว่าบริการ DHCP server ที่ติดตั้ง สามารถใช้งานได้หรือไม่นั้น ต้องทดสอบจากเครื่องไคลเอนต์คอมพิวเตอร์ที่อยู่บนเครือข่าย โดยในที่นี้จะยกตัวอย่างเป็นเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows XP
การคอนฟิก Windows XP ให้รับค่าหมายเลขไอพีแอดเดรสจาก DHCP Server

1. คลิกขวาที่ My Network Places แล้วเลือก Properties

2. ในหน้าต่าง Network Connection ให้คลิกขวาที่ Local Area Connection แล้วเลือก Properties

3. ในหน้าต่าง Area Connection Properties ให้เลือกที่ Internet Protocol (TCP/IP) แล้วคลิก Properties

4. ในหน้าต่าง Internet Protocol (TCP/IP) Properties โดย default จะตั้งค่าเป็น Obtain an IP address Automatically และ Obtain DNS server address Automatically

5. คลิก OK เพื่อปิดหน้าต่าง Internet Protocol (TCP/IP) Properties

6. คลิก OK เพื่อปิดหน้าต่าง Area Connection Properties และจบการตั้งค่า IP Address

การตรวจสอบการรับค่าหมายเลขไอพีแอดเดรสของเครื่องไคลเอนต์

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

1. คลิก Start คลิก run พิมพ์ cmd ในช่อง Open แล้วกด enter

2. ในหน้าต่างคอมมานด์พร็อมพ์ให้พิมพ์ ipconfig /? แล้วกด enter เพื่อดูคำสั่งต่างๆ ที่สามารถใช้ได้ตัวอย่าง: การใช้คำสั่ง ipconfig ตรวจสอบการรับค่าหมายเลขไอพีแอดเดรส

- ดูค่า IP Address ของเครื่อง ให้รันคำสั่ง ipconfig ที่คอมมานด์พร็อมพ์

C:\>ipconfig

Windows IP Configuration

Connection-specific DNS Suffix . :

IP Address. . . . . . . . . . . . : 192.168.10.56

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 192.168.10.1

C:\>

- ดูค่า IP Address ของเครื่องอย่างละเอียด ให้รันคำสั่ง ipconfig /all ที่คอมมานด์พร็อมพ์

C:\>ipconfig /all

Windows IP Configuration

Host Name . . . . . . . . . . . . : WinXP

Primary Dns Suffix . . . . . . . :

Node Type . . . . . . . . . . . . : Unknown

IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

Connection-specific DNS Suffix . :

Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface

Physical Address. . . . . . . . . : 00-53-45-00-00-00

Dhcp Enabled. . . . . . . . . . . : No

IP Address. . . . . . . . . . . . : 192.168.10.56

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 192.168.10.1

DNS Servers . . . . . . . . . . . : 203.xxx.x.x

Primary WINS Server . . . . . . . : 203.xxx.x.x

NetBIOS over Tcpip. . . . . . . . : Disabled

C:\>

- ยกเลิกค่า IP Address ที่ได้จาก DHCP ให้รันคำสั่ง ipconfig /release ที่คอมมานด์พร็อมพ์

C:\>ipconfig /release

Windows IP Configuration

The operation failed as no adapter is in the state permissible for

this operation.

C:\>

- ขอรับค่า IP Address ที่ได้จาก DHCP ใหม่ ให้รันคำสั่ง ipconfig /renew ที่คอมมานด์พร็อมพ์

การทดสอบการทำงาน

ทดสอบโดยการใช้คำสั่ง ping ไปยังหมายเลขไอพีแอดเดรสของดีฟอลท์เกตเวย์ หรือของเครื่องใกล้เคียง หากได้รับข้อความตามลักษณะของตัวอย่างที่ 1 (Reply from x.x.x.x: bytes=32 time=xxms TTL=255) แสดงว่าการรับค่าหมายเลขไอพีแอดเดรสจาก DHCP เซิร์ฟเวอร์ น่าจะถูกต้อง หากได้รับข้อความตามลักษณะของตัวอย่างที่ 2 (Request timed out.) อาจเป็นไปได้ว่าการตั้งค่าไม่ถูกต้อง แต่หากได้รับข้อความตามลักษณะของตัวอย่างที่ 3 (Destination host unreachable) แสดงว่าเครื่องไคลเอนต์ยังไม่ได้รับค่าหมายเลขไอพีแอดเดรสจาก DHCP เซิร์ฟเวอร์ตัวอย่างที่ 1:

C:\>ping 192.168.2.35

Pinging 10.1.1.1 with 32 bytes of data:

Reply from 192.168.2.35: bytes=32 time=173ms TTL=255

Reply from 192.168.2.35: bytes=32 time=281ms TTL=255

Reply from 192.168.2.35: bytes=32 time=343ms TTL=255

Reply from 192.168.2.35: bytes=32 time=265ms TTL=255

Ping statistics for 192.168.2.35:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 173ms, Maximum = 343ms, Average = 265ms

C:\>

การจัดการ DHCP Server

การจัดการ DHCP Server จะใช้สแนป-อิน DHCP Server โดยให้ไปที่ Manage Your Server แล้วคลิกที่ Manage this DHCP Server ซึ่งจากหน้าต่าง DHCP Server แอดมินสามารถทำจัดการด้านต่างๆ เช่น สร้างสโคปใหม่ (New Scope) แก้ไขอ็อปชันของสโคป เป็นต้น

การสร้างสโคปใหม่

สโคป (Scope) หมายถึง ช่วงของหมายเลขไอพีแอดเดรส (IP Address) สําหรับแจกจ่ายให้กับไคลเอนต์ที่อยู่ในระบบเครือข่าย โดยนอกเหนือจากหมายเลข IP Address แล้ว เรายังสามารถกําหนดค่าอ็อปชันต่างๆ ของสโคป เพื่อนำไปกำหนดให้กับเครื่องไคลเอนต์ได้ด้วย โดยอ็อปชันของสโคปนั้นจะเป็นค่าพารามิเตอร์เสริมต่าง ๆ เช่น หมายเลขไอพีแอดเดรสของดีฟอลต์เกตเวย์, หมายเลขไอพีแอดเดรสของ DNS Server เป็นต้น

การสร้างสโคปใหม่

ขั้นตอนการสร้าง DHCP Scope

1. คลิกขวาที่ชื่อ DHCP Server แล้วเลือก New Scope

2. ในหน้าไดอะล็อกบ็อกซ์ Scope Name ให้ตั้งชื่อของสโคปในช่อง Name ควรตั้งชื่อให้ให้สื่อความหมายเพื่อให้ง่ายต่อการจำในส่วนของช่อง Description จะเป็นคําอธิบายจะใส่หรือไม่ก็ได้ เสร็จแล้วคลิก Next

3. ในหน้าไดอะล็อกบ็อกซ์ IP Address Range ให้กําหนดช่วงของหมายเลขไอพีแอดเดรส โดยระบุแอดแดรสเริ่มต้นในช่อง Start IP address และระบุแอดแดรสสุดท้ายในช่อง End address ในช่อง Length นั้นเป็นจํานวนบิตของ Subnet Address ในที่นี้เท่ากับ 24 (255.255.255.0) ซึ่งเป็นค่าดีฟอลท์ Subnet mask โดยสามารถปรับแต่งจํานวนบิตของค่าของ Subnet mask ได้ตามการออกแบบเครือข่าย เสร็จแล้วคลิกปุ่ม Next

4. ในหน้าไดอะล็อกบ็อกซ์ Add Exclusions ให้ใส่ช่วงหมายเลขไอพีแอดเดรสที่ไม่ต้องการให้อยู่ในสโคปคลิก Add เสร็จแล้วคลิก Next

5. ในไดอะล็อกบ็อกซ Lease Duration ให้กําหนดระยะเวลาที่เครื่องไคลเอนต์สามารถใช้งานหมายเลขไอพีแอดเดรสจากสโคปนี้ได้ โดยปกติค่าดีฟอลต์ของ Lease Duration จะเป็น 8 วัน ซึ่งสามารถแก้ไขได้ตามต้องการ เสร็จแล้วคลิกปุ่ม Next

6. ระบบจะถามว่าต้องการเซต Scope Option เลยหรือไม่ ให้เลือก Yes แล้วคลิกปุ่ม Next

7. ให้ใส่ค่าหมายเลขไอพีแอดเดรสของดีฟอลต์เกตเวย์, หมายเลขไอพีแอดเดรสของ DNS Server เมื่อมีไดอะล็อกบ็อกซ์ถามตามลําดับ 8. ระบบจะถามว่าต้องการแอคติเวต (Activate) สโคปนี้เลยหรือไมการแอคติเวตคือการเปิดการใช้งาน Scope เพื่อให้ เครื่องไคลเอนต์สามารถขอหมายเลขไอพีแอดเดรสที่อยูในสโคปดังกล่าวได้ ให้เลือก Yes แล้วคลิก Next เพื่อทำการแอคติเวต

9. เมื่อทำการแอคติเวต (Activate) สโคปแล้ว จะต้องทำการ Authorize DHCP server ก่อนเพื่อให้อำนาจในการจ่ายหมายเลขไอพีแอดเดรสให้กับเครื่องไคลเอนต์ โดยให้คลิกขวาที่ DHCP server แล้วเลือกเมนู Authorize ซึ่งจะทำการเพิ่มชื่อ DHCP serverเข้าใน Authorized list ของฐานข้อมูล Active Directory

การติดตั้ง DHCP Server

บริการ DHCP Server นั้น ก็เหมือนกับบริการอื่นๆ ของ Windows Server2003 คือจะไม่ถูกติดตั้งโดยดีฟอลท์ โดยวิธีการติดตั้ง DHCP Server นั้น ให้ไปที่ Manage Your Server แล้วคลิกที่ Add or remove role จะได้หน้าต่าง Configure Your Wizard ซึ่งจะช่วยในการ Add or remove a role

ขั้นตอนการติดตั้ง DHCP Server

การติดตั้ง DHCP Server มีขั้นตอนดังนี้

1. ในหน้าต่าง Manage Your Server ให้คลิกที่ Add or remove a role

2. ในหน้าต่าง Preliminary Steps ให้คลิกปุ่ม Next

3. ในหน้าต่าง Server Role ให้คลิกเลือก DHCP Server แล้วคลิกปุ่ม Next

4. ในหน้าต่าง Summary of Selections ให้คลิกปุ่ม Next

5. ในหน้าต่าง Configuring Components ให้รอจนระบบทำงานเสร็จเรียบร้อย แล้วให้คลิก Next

7. ในหน้าต่าง Applying Selections ระบบจะทำการเพิ่ม Role ให้กับ Server ให้รอจนกว่าระบบงานเสร็จเรียบร้อย แล้วให้คลิก Next

8. ในหน้าต่าง Welcome to the New Scope Wizard คลิก Cancel ออกจากการสร้าง Scope แล้วให้เลือก Finish

การติดตั้ง DHCP Server บน Windows Server 2003

การกำหนดหมายเลขไอพีแอดเดรสให้กับเครื่องไคลเอนต์บนระบบเครือข่ายนั้น เป็นหน้าที่หนึ่งของแอดมิน ในกรณีที่เครื่องไคลเอนต์มีจำนวนไม่มาก ตั้งอยู่ในห้องเดียวกันหรือในบริเวณใกล้ๆ กัน การกำหนดหมายเลขไอพีแอดเดรสแบบแมนนวลนั้นก็สามารถทำได้โดยไม่มีความซัลซ้อนอะไร แต่ถ้าเครื่องไคลเอนต์มีจำนวนมาก และตั้งอยู่หลายที่หรือห่างไกลกันการกำหนดหมายเลขไอพีแอดเดรสแบบแมนนวลนั้นคงเป็นเรื่องยาก การแก้ปัญหาเรื่องการกำหนดหมายเลขไอพีแอดเดรสแบบอัตโนมัติโดยใช้บริการแจกจ่ายหมายเลขไอพีให้เครื่องไคลเอนต์ด้วย DHCP Server ซึ่งเป็นฟีเจอร์หนึ่งที่มีใน Windows Server 2003

การต่ออายุการใช้สิทธิ IP Address ของไคลเอนต์

การต่ออายุการใช้สิทธิ IP Address ของไคลเอนต์ (Lease Renewal Process)
เนื่องจากมีข้อกำหนดเรื่องเวลาการใช้ IP Address ที่จัดให้ไคลเอนต์แต่ละเครื่องอาจมีการเปลี่ยนแปลงได้ นอกจากจะมี IP Address มากพอจนสามารถกำหนดระยะเวลาอนุญาตให้ใช้ IP Address ได้ไม่จำกัด ดังนั้นโดยปกติทุกๆช่วงเวลา ไคลเอนต์ต้องตรวจสอบกลับไปยังเครื่องเซิร์ฟเวอร์ DHCP ที่จัดไอพีแอดเดรสมาให้เพื่อขอต่ออายุเวลาการใช้งาน อีกทั้งยังได้รับค่าคอนฟิกกูเรชั่นต่างๆ ที่เปลี่ยนแปลงอีกด้วย เราเรียกกระบวนการนี้ว่า Lease Renewal ซึ่งสามารถทำงานได้หลายวิธีคือ


กระบวนการแบบอัตโนมัติ

กระบวนการ Lease Renewal แบบอัตโนมัตินั้นจะเกิดขึ้นอย่างสม่ำเสมอที่ไคลเอนต์ เมื่อระยะเวลาที่อนุญาตให้ใช้ผ่านไปแล้ว 50% ดังนั้นไคลเอนต์จะเริ่มพยายามขอต่ออายุสิทธินี้หลังจากผ่านไปแล้ว 4 วัน ถ้าเวลาทั้งหมดเป็น 8 วัน การต่ออายุนี้จะเริ่มในขั้นตอนที่ 3 ของ DHCP Lease Generation Process คือเริ่มตั้งแต่ DHCPREQUEST เป็นต้นไป


กระบวนการแบบแมนนวล

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


กระบวนการแบบไดนามิค

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

หลักการทำงานของ DHCP Server (Lease Generation Process)

โปรโตคอลที่ใช้ในการทำงานของ DHCP ส่วนใหญ่เป็นลักษณะบรอดคาสต์ ซึ่งกระบวนการจ่าย IP Address นี้ประกอบไปด้วย 4 ขั้นตอน ที่ไคลเอนต์กับเซิร์ฟเวอร์จะติดต่อกันจนกระทั่งสุดท้าย ไคลเอนต์ DHCP ได้รับไอพีแอดเดรสที่ไม่ซ้ำกับ Host อื่นๆ ตลอดจนค่าคอนฟิกกูเรชั่นอื่นมาใช้งาน มีดังต่อไปนี้

1. DHCPDiscover เริ่มจากเมื่อเปิดเครื่องไคลเอนต์ขึ้นมา ก็จะถูกกำหนดให้ Obtain an IP address automatically ในหน้าจอ TCP/IP Properties ก็จะบรอดคาสต์เมสเสจ DHCPDISCOVER ออกไป ซึ่งจะไปถึงยังคอมพิวเตอร์ทุกเครื่องในเน็ตเวิร์กเซกเมนต์ และยังส่งหมายเลขแอดเดรส MAC ของการ์ดเน็ตเวิร์ก และชื่อแบบNetBIOS ของเครื่องคอมพิวเตอร์อีกด้วย

2. DHCPOffer เครื่อง DHCP Server บอกไคลเอนต์ว่าตัวเองสามารถจัดสรร IP Address ให้ได้ เมจเสจของเซิร์ฟเวอร์เครื่องใดไปถึงยังไคลเอนต์ก่อนก็จะถูกเลือกใช้งานโดยไคลเอนต์ (First-Come-First Serve)

3. DHCPRequest เป็นการตอบรับไปยังเซิร์ฟเวอร์ ตอนนี้ไคลเอนต์เองก็ยังไม่ได้รับไอพีแอดเดรส ดังนั้นการตอบกลับนี้ก็ยังจำเป็นต้องเป็นแบบ “บรอดคาสต์”

4. DHCPAck เมื่อได้รับข้อมูลยืนยันเรียบร้อยแล้ว เซิร์ฟเวอร์จะตอบกลับไปยังไคลเอนต์ประกอบด้วยข้อมูล IP Address ที่จัดสรรให้ไคลเอนต์ ตลอดจนค่าคอนฟิกูเรชั่นอื่นๆ

ขั้นตอนการเชื่อมต่อของเครื่องลูกกับ DHCP server

1. เครื่องลูกค้นหาเครื่อง DHCP server ในเครือข่าย โดยส่ง DHCP discover เพื่อร้องขอ IP address
2. DHCP server จะค้นหา IP ที่ว่างอยู่ในฐานข้อมูล แล้วส่ง DHCP offer กลังไปให้เครื่องลูก

3. เมื่อเครื่องลูกได้รับ IP ก็จะส่งสัญญาณตอบกลับ DHCP Request ให้เครื่องแม่ทราบ

4. DHCP server ส่งสัญญาณ DHCP Ack กลับไปให้เครื่องลูก เพื่อแจ้งว่าเริ่มใช้งานได้

DHCP Server

DHCP Server คือโปรโตคอลที่ใช้ในการกำหนด IP Address อัตโนมัติแก่เครื่องลูกข่ายบนระบบ ที่ติดตั้ง TCP/IP สำหรับ DHCP server มีหน้าที่แจก IP ในเครือข่ายไม่ให้ซ้ำ เป็นการลดความซ้ำซ้อน เมื่อเครื่องลูกเริ่ม boot ก็จะขอ IP address, Subnet mark, หมายเลข DNS และ Default gateway

DHCP Server นิยมใช้กับห้องปฏิบัติการคอมพิวเตอร์ที่มีเครื่องลูกข่ายจำนวนมากๆ ทำให้ไม่ต้องเสียเวลาในการกำหนดค่าต่างๆ ให้กับเครื่องลูกข่าย หรือความหมายง่ายๆ คือ การตั้งค่าระบบเครือข่ายแบบอัตโนมัตินั่นเอง ซึ่งในปัจจุบันมีโปรแกรมทำสามารถใช้ทำเป็น DHCP Server ได้โปรแกรม ตัวที่ขอแนะนำสามารถดาวน์โหลดได้ที่ http://www.isc.org ในเว็บไซต์ก็จะมีหลายเวอร์ชั่นให้เลือกใช้ (ปัจจุบัน คือ DHCP 4.0.0) ผมขอแนะนำ http://ftp.isc.org/isc/dhcp/dhcp-4.0.0.tar.gz เป็นเวอร์ชั่น 4.0.0 หล่ะกันเริ่มเลยนะครับ

ประโยชน์ที่สำคัญของ DNS

คือช่วยแปลงหมายเลขไอพีซึ่งเป็นชุดตัวเลขที่จดจำได้ยาก (เช่น 207.142.131.206) มาเป็นชื่อที่สามารถจดจำได้ง่ายแทน (เช่น wikipedia.org)
สรุป DNS
ระบบ Domain Name System เป็นระบบจัดการแปลงชื่อไปเป็นหมายเลข IP Address มีโครงสร้างฐานข้อมูลแบบลำดับชั้นเพื่อใช้เก็บข้อมูลที่เรียกค้นได้อย่างรวดเร็ว กลไกหลักของระบบ DNS คือ ทำหน้าที่แปลงข้อมูลชื่อและหมายเลข IP Address หรือทำกลับกันได้ และยังมีฟังก์ชั่นเพิ่มเติมอื่น ๆ อีก ข้อกำหนดของ DNS คือ ชื่อในลำดับชั้นที่สองที่ต่อจาก root ได้มีการกำหนดชื่อเฉพาะที่ระบุรายละเอียดของกลุ่มเอาไว้ชัดเจน ข้อมูลใน DNS การทำงานของ DNS เป็นการทำงานแบบไคลเอนต์เซิร์ฟเวอร์ โดยใช้ฐานข้อมูลแบบกระจาย DNS มีทางเลือกใจการใช้งาน ได้ 2 วิธี คืออาศัยเครื่อง DNS server ของผู้ให้บริการ (ISP) เพื่อแปลงชื่อเป็นหมายเลข IP Address ให้กับทุกเครื่องที่อยู่ในเครือข่ายของตน ซึ่งวิธีนี้มีข้อดี คือ องค์กรนั้นไม่จำเป็นต้องเตรียมเครื่องทำหน้าที่ DNS Server และไม่ต้องคอยดูแลจัดการข้อมูลให้ยุ่งยาก แต่ก็มีข้อเสียคือ เมื่อมีการเปลี่ยนแปลงหรือเพิ่มเติมเครื่องในเครือข่าย ก็จะต้องแจ้งให้ผู้ดูแลระบบของบริษัท ISP ทราบเพื่อช่วยแก้ไขข้อมูลให้ ซึ่งจะไม่สามารถทำเองได้ DNS Zone มีการแบ่งจัดการดูแล domain ออกเป็นพื้นที่ย่อยเรียกว่า zone หรือ DNS zone นี้ทำได้โดยการแบ่งกลุ่มย่อยของ node ที่มีลำดับชั้นย่อยลงไปอีกขั้นเพื่อแยก DNS server ให้ดูแลรับผิดชอบแต่ละ zone ไปช่วยให้กรณีเมื่อ DNS server ที่ดูแล zone 1 อยู่เองได้รับคำสั่งขอข้อมูลที่ไม่สามารถหาคำตอบได้ ก็จะมีการส่งค่า IP Address ของ DNS server ที่ดูแล zone ที่ต้องการให้แทนDHCP การทำงานของโปรโตคอล DHCP จัดอยู่ในสถาปัตยกรรมแบบไคลเอนด์เซิร์ฟเวอร์ โดยเครื่องที่ทำหน้าที่เก็บฐานข้อมูลของแอดเดรสและพารามิเตอร์ ที่จำเป็นเพื่อแจกจ่ายให้กับเครื่องคอมพิวเตอร์หรืออุปกรณ์หรืออุปกรณ์อื่นๆจะถูกเรียกว่า DHCP server เพื่อนำไปใช้งาน

การนำไปประยุกต์ใช้งานเชิงสร้างสรรค์

การนำไปประยุกต์ใช้งานเชิงสร้างสรรค์
1. มีการประยุกต์จากระบบ DNS มาเป็นระบบ DDNS โดยทีมงานThai -DDN คือ DDNS ( Dynamic Domain Name System )
2. จากข้อจำกัดของระบบDNS ได้กลายมาเป็นจุดกำเนิดในการประดิษฐ์คิดค้นเทคโนโลยีชื่อโดเมนภาษาไทยในปี 2542 โดยกลุ่มผู้ประดิษฐ์คิดค้นชาวไทย ที่เอื้ออำนวยให้ผู้ใช้อินเทอร์เน็ตสามารถเรียกดูเว็บไซต์ผ่านทางชื่อโดเมนภาษาไทยเต็มรูปแบบ และเปิดโอกาสให้เจ้าของเว็บไซต์ที่ประสบปัญหากับการมีชื่อโดเมนภาษาอังกฤษที่จดจำยาก หรือใช้สื่อสารกับกลุ่มเป้าหมายได้อย่างลำบาก สามารถจดทะเบียนชื่อโดเมนภาษาไทยให้กับเว็บไซต์ของตัวเอง โดยใช้ตัวแปลงรหัสภาษาท้องถิ่นเพื่อทำงานร่วมกับระบบ DNS
3. ในความคิดของกลุ่มเราคิดว่า ในอนาคตข้างหน้าคาดว่ามนุษย์น่าจะสามารถพัฒนาระบบที่คล้ายกับระบบ DSN ที่สามารถแปลงรหัสภาษาของสัตว์ ให้กลายเป็นภาษาที่มนุษย์สามารถเข้าใจได้และสื่อสารกันได้ หรือแปลงรหัสในหุ่นยนต์ที่มีเฉพาะภาษาของประเทศที่ผลิตหุ่นยนต์นั้นให้มีหลากหลายภาษาเพื่อความสะดวกในการสื่อสาร

การทำงานของ DNS

การทำงานของ DNS มีขั้นตอนอย่างง่ายๆ ดังรูปที่ 1 โดยในที่นี้จะไม่ขอกล่าวถึงรายละเอียดปลีกย่อยอื่นๆ ซึ่งมีอยู่มากและยังมีโปรโตคอลพิเศษคอยทำหน้าที่ต่างๆอยู่เบื้องหลังด้วย เช่น โปรโตคอล ARP ช่วยแปลงค่า IP address เป็นค่าฮาร์ดแวร์ เป็นต้น ตามรูปการทำงานของ DNS มีขั้นตอนที่สามารถอธิบายรายละเอียดได้ดังนี้
1. เครื่องคอมพิวเตอร์ลูกข่าย (client) ที่มี domain เป็น abccompany.com ต้องการติดต่อกับเว็บไซต์ที่ชื่อ www.xyz.com ดังนั้นเครื่องไคลเอนด์นี้ จะส่งคำสั่งขอข้อมูลหมายเลข IP address ด้วยกลไก resolver ไปที่ DNS server ที่ดูแล zone ของตนอยู่ คือ domain abccompany.com ในกรณีนี้สมมุติว่าฐานข้อมูลที่มีใน DNS server ไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ทั้งนี้เพราะ DNS server ของ zone abccompany.com จะดูแลฐานข้อมูลเฉพาะเครื่องลูกข่ายตนเอง ดังนั้น DNS server นี้ก็จะส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ที่อยู่ระดับบนกว่า ซึ่งได้กำหนดเอาไว้ให้เป็นเครื่อง DNS server ของบริษัทผู้ให้บริการ ISP นั่นเอง
2. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการ ISP แล้ว เครื่อง DNS server ของ ISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของบริษัท ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีกซึ่งก็ได้มีการกำหนดไว้ว่าเป็นเครื่อง root server

3. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการหรือ ISP แล้ว เครื่อง DNS server ของISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของ ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีก ซึ่งก็ได้มีการกำหนดไว้ว่าเป็น root server

4. คำสั่งขอข้อมูลถูกส่งต่อไปยัง DNS server ของ root เพราะดูแลฐานข้อมูลของ domain name ในระดับสอง (.com)

5. ที่ DNS root server แม้ว่าจะไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ก็ตาม แต่มีข้อมูลที่ทราบว่า DNS server ที่ดูแล zone ของ domain xyz.com อยู่ที่ใด (มีหมายเลข IP address อะไร) DNS root server ก็จะส่งข้อมูลดังกล่าวไปให้ เพราะที่เครื่อง DNS SERVER ที่ดูแล domain xyz.com จะต้องมีข้อมูลของ IP address ของ www.xyz.com อยู่แน่นอน

6. DNS server ของ ISP จะรับข้อมูล IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com เป็น 192.183.255.20 และแจ้งต่อไปให้ DNS server ที่รับผิดชอบ domain xyz.com อีกทีหนึ่ง ในขั้นนี้เครื่อง DNS server ของบริษัท ISP จะเก็บค่าคำตอบเอาไว้ในหน่วยความจำแคชเพื่อใช้กรณีที่มีการเรียกข้อมูลซ้ำอีกในอนาคต จะได้ส่งคำตอบไปให้เลยโดยไม่ต้องไปขอข้อมูลซ้ำอีก ค่าที่เก็บเอาไว้จะมีระยะเวลาที่ต้องปรับปรุงข้อมูลใหม่ตามค่าในฟีลด์ TTL ที่กำหนดไว้ใน resource record

7. DNS server ของบริษัท abccompany.com จะรับข้อมูลหมายเลข IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com ตามที่เครื่อง DNS server ของ ISP ส่งมาให้ และเก็บลงหน่วยความจำแคชของตนเองเช่นกัน เผื่อมีการเรียกใช้อีกในอนาคต แล้วส่งคำสั่งไปถามข้อมูลว่าเครื่อง www.xyz.com อยู่ที่ไหน (มีหมายเลข IP address อะไร)

8. DNS server ของ domain xyz.com ตรวจสอบข้อมูลและแจ้งว่าเครื่อง www.xyz.com อยู่ที่ IP address 192.186.255.26 ข้อมูลถูกส่งกลับไปให้เครื่อง DNS server ของ abccompany.com

9. คำตอบที่ DNS server ของ abccompany.com ได้รับจะถูกส่งต่อให้กับเครื่องไคลเอนต์ที่ต้องการและก็จัดเก็บข้อมูลลงหน่วยความจำแคชเช่นกัน

10. เมื่อเครื่องลูกข่ายทราบว่า www.xyz.com มีหมายเลข IP address อยู่ที่ 192.183.255.26 ก็จะติดต่อกับเครื่อง www.xyz.com โดยถ้าใช้งานเว็บก็จะสร้างการเชื่อมต่อโดยโปรโตคอล HTTP และใช้งาน port 80 เพื่อเรียกดูข้อมูลในเว็บไซต์นั้นต่อไป ตามกลไกลของ TCP/IP อาจมีผู้สงสัยว่าในการทำงานของ DNS server ทั้งหลายในเครือข่ายอินเตอร์เน็ตนั้นมีวิธีการจัดการอย่างไร ซึ่งสามารถอธิบายได้ง่ายๆ ตามขั้นตอนดังกล่าวที่ผ่านมา ซึ่งจะเห็นว่า DNS server จะถูกจัดลำดับในการดูแลฐานข้อมูลแยกกันตามกลุ่ม โดยแบ่งลำดับชั้นให้สอดคล้องกับการกำหนดชื่อ domain และในแต่ละลำดับของ DNS server นี้จะทราบว่าถ้าต้องการติดต่อขอข้อมูลจากลำดับบนขึ้นไปจะติดต่อได้จากหมายเลข IP address อะไร โดยในชั้นบนสุดเป็น root ที่จะดูแลข้อมูลของ domain ลำดับที่สองและย่อยลงไปตามชั้น และแต่ละเซิร์ฟเวอร์ที่ดูแล domain ของตนก็จะเรียกว่าเซิร์ฟเวอร์นั้นมีสิทธิ์ในการรับผิดชอบ zone ของตนเอง การลงทะเบียนขอชื่อ Domain Name

DNS server

ประวัติความเป็นมาของระบบ DNS
ราวช่วงศตวรรษที่ 90 ในขณะที่การใช้งานอีเมลล์เริ่มเป็นที่นิยมอย่างแพร่หลาย จำนวนเครือข่ายที่เชื่อมต่อมายังเครือข่าย ARPA NET ได้เพิ่มจำนวนสูงขึ้นอย่างรวดเร็ว จนทำให้บริการเครือข่ายแบบรวมศูนย์ของ SRI ( The NIC ) เริ่มประสบปัญหาในการจัดการระบบฐานข้อมูลซึ่งใช้ในการอ้างอิงถึงโฮสท์ที่เชื่อมต่อมาจากเครือข่ายอิสระต่างๆ ที่มีโครงสร้างการทำงานที่แตกต่างกัน โดยในขณะนั้น การเพิ่มรายชื่อโฮสท์แต่ละเครื่องเข้ามาในเครือข่าย ARPA NET จำเป็นต้องส่งข้อมูลโดยการ FTP เข้ามาปรับปรุงข้อมูลในไฟล์ Host Table ที่ SRI เป็นผู้ดูแล ซึ่งจะมีการปรับปรุงข้อมูลเพียงสัปดาห์ละ 2 ครั้งเท่านั้น ทำให้การจัดการข้อมูลมีความล่าช้าและไม่ยืดหยุ่น นอกจากนี้เครือข่ายต่างๆ ที่เข้ามาเชื่อมต่อต่างก็ต้องการอิสระในการจัดการบริหารระบบของตนเองจึงเกิดแนวความคิดที่กระจายความรับผิดชอบในการจัดระบบนี้ออกไป โดยแบ่งการจัดพื่นที่ของโลกเสมือนนี้ออกเป็นส่วนๆ โดยกำหนดให้โฮสท์แต่ละเครื่องอยู่ภายใต้ขอบเขตพื้นที่ใดพื้นที่หนึ่งที่ได้แบ่งเอาไว้ โดยแต่ละพื้นที่สามารถแบ่งออกเป็นพ้นที่ที่เล็กลงได้อย่างไม่จำกัด ซึ่งพื้นที่แต่ละส่วน ก็ถูกอ้างไปยังพื้นที่ที่ใหญ่กว่าเป็นลำดับชั้นขึ้นไป เพื่อให้สามารถระบุตำแหน่งอ้างอิงของโฮสท์แต่ละเครื่องที่อยู่ภายใต้ขอบเขตของแต่ละพื้นที่ได้อย่างถูกต้องและรวดเร็ว โดยพื้นที่เสมือนแต่ละส่วนถูกเรียกว่า “ โดเมน” (Domain) และเรียกการอ้างระบบอ้างอิงเป็นลำดับชั้นด้วยชื่อของแต่ละพื้นที่หรือโดเมนนี้ว่า “ ระบบชื่อโดเมน ” ( Domain Name System)ส่วนพื้นที่ทั้งหมดของโลกเสมือนที่ประกอบด้วยพื้นที่ย่อยๆจำนวนมากนี้ จะเรียกว่า “Domain Name Space”

DNS ย่อมาจาก Domain Name System Domain ในความหมายทั่วไป หมายถึง พื้นที่ที่ควบคุม หรือ โลกของความรู้ในอินเตอร์เน็ต domain ประกอบด้วย กลุ่มของตำแหน่งเครือข่าย ชื่อ domain จัดโครงสร้างเป็นระดับ โดยระดับบนสุดเป็นการระบุด้านภูมิศาสตร์หรือจุดมุ่งหมายขององค์กร (เช่น .th หมายถึงประเทศไทย .com หมายถึงหน่วยธุรกิจ) ระดับที่สองเป็นชื่อที่ไม่ซ้ำ (Unique) ภายใน Domain ระดับบนสุด และระดับต่ำที่ต้องนำมาใช้ ดังนั้น Domain Name System ก็เป็นระบบจัดการแปลงชื่อ (Domain Name) ให้เป็นหมายเลข IP address (name-to-IP address mapping) โดยมีโครงสร้างฐานข้อมูลแบบลำดับชั้นเพื่อใช้เก็บข้อมูลที่เรียกค้นได้อย่างรวดเร็ว หรือพูดง่าย ๆ ก็คือ การจดจำตัวเลข IP สำหรับแต่ละที่อยู่เว็บไซต์ มีความยากลำบาก ในทางปฏิบัติ จึงได้มีระบบการแปลงเลข IP ให้เป็นชื่อที่ประกอบขึ้นจากตัวอักษร คำ หรือ วลี เพื่อให้ง่ายต่อการจดจำ ซึ่งเรียกว่า โดเมนเนม (Domain Name) เมื่อเราป้อนที่อยู่เว็บไซต์ หรือโดเมนเนม ให้กับโปรแกรม Browser คอมพิวเตอร์จะทำการ แปลงโดเมนเนมให้เป็นชุดตัวเลข IP เพื่อให้คอมพิวเตอร์ด้วยกันเอง เข้าใจระบบที่ใช้แปลง ค่าระหว่างโดเมนเนม และ เลข IP นี้เรียกว่า Domain Name System (DNS) ซึ่งโดยปกติจะมี 2 ส่วน คือ

Primary Name Server เป็นเครื่องหลักที่เก็บข้อมูล ชื่อ และ IP Address ของเครื่องในโดเมนเนม

Secondary Name Server เป็นเครื่องสำรองที่เก็บสำเนาข้อมูลทั้งหมดของเครื่อง Primary ซึ่งอาจมีการสำรองมากกว่า1 เครื่องก็ได้ โดยการจะจด DNS Name Server ได้ จะต้องมีเครื่องคอมพิวเตอร์ที่เปิดอยู่ตลอด 24 ชั่วโมง เช่น ที่ผู้ให้บริการอินเตอร์เน็ต หรือ ISP (Internet Service Procider) มหาวิทยาลัยใหญ่ บริษัทใหญ่และผู้ให้บริการรับฝากเว็บซึ่งเรียกว่า Web Presence หรือ Web Hosting เป็นต้น การทำงานของระบบ DNS คือ ทำหน้าที่แปลงข้อมูลชื่อและหมายเลข IP address หรือทำกลับกันก็ได้ นอกจากนี้ยังมีฟังก์ชันเพิ่มเติมอื่นๆ อีก เช่น แจ้งชื่อของอีเมล์เซิร์ฟเวอร์ใน domain ที่รับผิดชอบด้วย ในระบบ DNS นั้น จะมีการกำหนด name space ที่มีกฎเกณฑ์อย่างชัดเจน มีวิธีการเก็บข้อมูลเป็นแบบฐานข้อมูลแบบกระจาย ทำงานในลักษณะของไคลเอนต์เซิร์ฟเวอร์ (Client/Server) โดยมี DNS server ให้บริการเรียกค้นชื่อและแปลงข้อมูลให้ตามที่เครื่องลูกข่าย (DNS Client) เรียกเข้ามา เช่น เครื่องลูกข่ายที่ต้องการรับส่งอีเมล์ หรือโอนถ่ายไฟล์ข้อมูลให้กับเครื่องอื่นซึ่งอาจจะรู้เพียงชื่อของเครื่องเซิร์ฟเวอร์ ที่ให้บริการแค่นั้น แต่ไม่รู้หมายเลข IP address เจ้า DNS จะทำหน้าที่แปลงข้อมูลและแจ้งให้เครื่องลูกข่ายตามที่ได้ส่งคำสั่งขอข้อมูลมา และการทำงานแบบไคลเอนต์เซิร์ฟเวอร์นี้เองที่ทำให้เครื่องซึ่งทำหน้าที่ DNS สามารถเป็นได้ทั้งเซิร์ฟเวอร์และไคลเอนต์ของ DNS ในเครื่องเดียวกัน ดังนั้นเครื่องที่ให้บริการในเครือข่ายอินเตอร์เน็ต 1 เครื่องจะมีการอ้างถึงได้หลายอย่าง เช่น

- อ้างตามชื่อ domain เช่น mail.provision.co.th

- อ้างตาม IP address เช่น 204.183.255.30

- อ้างตามหมายเลขฮาร์ดแวร์หรือ MAC address เช่น 00:a0:7c:4d:f2


นักวิจัยด้านความปลอดภัย ตีพิมพ์ paper ข้อมูลทางด้านเทคนิค การโจมตี แบบใหม่

(IDG News Service วันที่ 25 เมษายน 2551) - นาย David Litchfield นักวิจัยด้านความปลอดภัย ตีพิมพ์ paper ข้อมูลทางด้านเทคนิค การโจมตี แบบใหม่ ที่ แฮคเกอร์ สามารถใช้โจมตีฐานข้อมูลของ ออราเคิล ได้การ โจมตีนี้ เรียกว่า "lateral SQL injection" ซึ่งเป็นการโจมตีชนิดนี้ สามารถเพิ่มสิทธิตัวเองเป็น database administrator (DBA) บน Oracle Server เพื่อที่จะลบข้อมูล หรือ แม้กระทั่ง ติดตั้งซอฟต์แวร์เข้าไปใหม่ก็ได้David Litchfield เปิดเผยวิธีการโจมตีชนิดนี้ในการประชุม Black Hat Washington conference เมื่อเดือนกุมภาพันธ์ที่ผ่านมา แต่เพิ่งตีพิมพ์ ออกเป็น paper ข้อมูลทางเทคนิค เมื่อ พฤหัส 24 เมษายนนาย David Litchfield เป็นนักวิจัยที่มีชื่อเสียง จากการมีผลงานตีพิมพ์ รายละเอียดของ SQL Slammer Worm ที่ออกโจมตี ฐานข้อมูล Microsoft's SQL Server เมื่อปี พ.ศ. 2546 ( อ่าน รายละเอียด SQL Slammer Worm ที่นี่ )โดยทั่วไปแล้ว วิธี SQL injection ผู้จู่โจมจะสร้างการเขียนคำสั่งแทรกเข้าไปใน SQL ที่ไปสั่งงานฐานข้อมูล ซึ่งก่อนหน้านี้ ผู้เชี่ยวชาญด้านความปลอดภัย คิดว่าวิธี SQL injection ได้ผลเมื่อผู้จู่โจมใส่ character บางตัวเข้าไปในฐานข้อมูลเท่านั้น (ดูรายละเอียด SQL injection และ วิธีป้องกัน ที่นี่ ) แต่นาย David Litchfield แสดงให้เห็นว่าการจู่โจมชนิดใหม่นี้ได้ผลกับ datatype ชนิด date (วันที่) และ number (ตัวเลข) ด้วยสำหรับ เป้าหมายการโจมตีนี้ คือ โปรแกรมที่เขียนด้วยภาษา Procedural Language/SQL programming language (PL/SQL) ซึ่งใช้กันในหมู่นักพัฒนาโปรแกรมออราเคิลDavid Litchfield ไม่แน่ใจว่า มีการโจมตีจุดอ่อน lateral SQL injection แพร่หลายแค่ไหน แต่เขามั่นใจว่า การโจมตีแบบนี้ในบางสถานการณ์ จะทำให้เกิดความเสียหายอย่างใหญ่หลวงได้"ถ้าคุณเขียนแอพพลิเคชั่นของตัวเองบนออราเคิล ..แน่นอน..คุณอาจกำลังเขียนโค้ดโปรแกรมที่เป็นช่องโหว่ได้" Litchfield กล่าวผู้ เขียนโปรแกรมฐานข้อมูล ควรจะย้อนไปตรวจดูโค้ดที่ตัวเองเขียน เพื่อให้แน่ใจว่า ข้อมูลถูกโปรเซสอย่างถูกต้อง และ ไม่สามารถถูกแทรกคำสั่ง SQL injection ได้สำหรับทาง บริษัท ออราเคิล (สำนักงานใหญ่) ยังไม่มีการออกความเห็นเกี่ยวกับเรื่องนี้แต่อย่างใด(เนื่อง จาก ยังไม่มีการแถลงวิธีการแก้ไขช่องโหว่นี้ จากทางผู้เชี่ยวชาญด้านความปลอดภัย หรือ จากทางออราเคิล เอง ทางเวบ oracleskill.com จึงขออภัยที่จะยังไม่เผยแพร่ รายละเอียดทางเทคนิคการโจมตีแบบใหม่นี้ ภายในเวบไซต์ )

เตือนภัยอย่าหลงเชื่อคลิกลิงก์ที่มากับข้อความที่เพื่อนส่งให้

เตือนภัยอย่าหลงเชื่อคลิกลิงก์ที่มากับข้อความที่เพื่อนส่งให้ทาง Facebook หรือ MySpace ผู้ใช้ที่หลงเชื่อคลิกไปอาจตกเป็นเหยื่อทำให้เครื่องคอมพ์กลายเป็นซอมบี้ไป โดยปริยายแคสเปอร์สกีแลป (Kaspersky Lab) เป็นบริษัทรักษาความปลอดภัยคอมพิวเตอร์ที่ประกาศเตือนภัยหนอนคอมพิวเตอร์ใหม่ซึ่งแพร่กระ จายตัวเองโดยใช้เว็บไซต์เครือข่ายสังคมอย่าง Facebook และ MySpace เป็นช่องทางหลัก ระบุว่าหลักการแพร่กระจายคล้ายกับหนอน MSN ที่เป็นลิงก์แฝงตัวมากับข้อความแชต นั่นคือการใช้ชื่อเพื่อนของผู้รับเป็นตัวล่อให้เกิดความตายใจKaspersky Lab บอกว่า เหยื่อจะได้รับข้อความที่มีลิงก์วีดีโอคลิปทั่วไป เป็นข้อความที่ถูกส่งในชื่อเพื่อนที่รู้จักกัน เมื่อผู้ใช้คลิกลิงก์ก็จะเข้าสู่หน้าพร้อมดาวน์โหลดคลิป ผลปรากฏว่าไฟล์ที่ได้ไม่ใช่ไฟล์วีดีโอแฟลชตามที่หวังไว้ แต่เป็นการติดตั้งโปรแกรมหนอนคอมพ์ลงในเครื่องโดยที่เหยื่อไม่รู้ตัวเมื่อเหยื่อเข้าใช้งานเว็บไซต์เครือข่ายสังคมด้วยเครื่องที่มีเชื้อหนอน คอมพ์อยู่ คอมพิวเตอร์ของเหยื่อจะส่งข้อความทำนองเดียวกันไปยังรายชื่อเพื่อนที่มีอยู่ ในเครื่องโดยอัตโนมัติเพื่อหาเหยื่อรายใหม่ต่อไป ไม่ต่างอะไรกับซอมบี้ผีดิบที่ล่าเหยื่อต่อเนื่องเป็นลูกโซ่Ryan Naraine ผู้เผยแพร่เทคโนโลยีรักษาความปลอดภัยคอมพิวเตอร์ของ Kaspersky Lab ให้สัมภาษณ์ว่า ที่ผ่านมา บริษัทได้ตรวจจับพบหนอนคอมพิวเตอร์ที่ใช้กลลวงแบบนี้หลายชนิด ซึ่งพบว่า ปริมาณผู้ใช้ที่หลงเชื่อกลลวงนี้เพิ่มมากขึ้นอย่างต่อเนื่อง"ผู้คนไว้วางใจไฟล์ที่เพื่อนส่งมา หลายคนไม่ได้ดูว่าไฟล์ที่กำลังดาวน์โหลดอยู่นั้นไม่ใช่ไฟล์แฟลช แต่เป็นไฟล์ไวรัสด้วยซ้ำ" Naraine จึงเน้นย้ำว่าผู้ใช้ควรระมัดระวังการดาวน์โหลดไฟล์จากเพื่อนทุกครั้ง และแน่นอนว่าอย่าปล่อยให้โปรแกรมกำจัดไวรัสในเครื่องล้าสมัย

วันจันทร์ที่ 16 มีนาคม พ.ศ. 2552

การติดตั้ง DHCP Server

การติดตั้ง DHCP Server
บริการ DHCP Server นั้น ก็เหมือนกับบริการอื่นๆ ของ Windows Server2003 คือจะไม่ถูกติดตั้งโดยดีฟอลท์ โดยวิธีการติดตั้ง DHCP Server นั้น ให้ไปที่ Manage Your Server แล้วคลิกที่ Add or remove role จะได้หน้าต่าง Configure Your Wizard ซึ่งจะช่วยในการ Add or remove a role
ขั้นตอนการติดตั้ง DHCP Server
การติดตั้ง DHCP Server มีขั้นตอนดังนี้
1. ในหน้าต่าง Manage Your Server ให้คลิกที่ Add or remove a role
2. ในหน้าต่าง Preliminary Steps ให้คลิกปุ่ม Next
3. ในหน้าต่าง Server Role ให้คลิกเลือก DHCP Server แล้วคลิกปุ่ม Next
4. ในหน้าต่าง Summary of Selections ให้คลิกปุ่ม Next
5. ในหน้าต่าง Configuring Components ให้รอจนระบบทำงานเสร็จเรียบร้อย แล้วให้คลิก Next 7. ในหน้าต่าง Applying Selections ระบบจะทำการเพิ่ม Role ให้กับ Server ให้รอจนกว่าระบบงานเสร็จเรียบร้อย แล้วให้คลิก Next
8. ในหน้าต่าง Welcome to the New Scope Wizard คลิก Cancel ออกจากการสร้าง Scope แล้วให้เลือก Finish

การจัดการ DHCP Server
การจัดการ DHCP Server จะใช้สแนป-อิน DHCP Server โดยให้ไปที่ Manage Your Server แล้วคลิกที่ Manage this DHCP Server ซึ่งจากหน้าต่าง DHCP Server แอดมินสามารถทำจัดการด้านต่างๆ เช่น สร้างสโคปใหม่ (New Scope) แก้ไขอ็อปชันของสโคป เป็นต้น

การสร้างสโคปใหม่
สโคป (Scope) หมายถึง ช่วงของหมายเลขไอพีแอดเดรส (IP Address) สําหรับแจกจ่ายให้กับไคลเอนต์ที่อยู่ในระบบเครือข่าย โดยนอกเหนือจากหมายเลข IP Address แล้ว เรายังสามารถกําหนดค่าอ็อปชันต่างๆ ของสโคป เพื่อนำไปกำหนดให้กับเครื่องไคลเอนต์ได้ด้วย โดยอ็อปชันของสโคปนั้นจะเป็นค่าพารามิเตอร์เสริมต่าง ๆ เช่น หมายเลขไอพีแอดเดรสของดีฟอลต์เกตเวย์, หมายเลขไอพีแอดเดรสของ DNS Server เป็นต้น

การสร้างสโคปใหม่
ขั้นตอนการสร้าง DHCP Scope
1. คลิกขวาที่ชื่อ DHCP Server แล้วเลือก New Scope
2. ในหน้าไดอะล็อกบ็อกซ์ Scope Name ให้ตั้งชื่อของสโคปในช่อง Name ควรตั้งชื่อให้ให้สื่อความหมายเพื่อให้ง่ายต่อการจำในส่วนของช่อง Description จะเป็นคําอธิบายจะใส่หรือไม่ก็ได้ เสร็จแล้วคลิก Next
3. ในหน้าไดอะล็อกบ็อกซ์ IP Address Range ให้กําหนดช่วงของหมายเลขไอพีแอดเดรส โดยระบุแอดแดรสเริ่มต้นในช่อง Start IP address และระบุแอดแดรสสุดท้ายในช่อง End address ในช่อง Length นั้นเป็นจํานวนบิตของ Subnet Address ในที่นี้เท่ากับ 24 (255.255.255.0) ซึ่งเป็นค่าดีฟอลท์ Subnet mask โดยสามารถปรับแต่งจํานวนบิตของค่าของ Subnet mask ได้ตามการออกแบบเครือข่าย เสร็จแล้วคลิกปุ่ม Next
4. ในหน้าไดอะล็อกบ็อกซ์ Add Exclusions ให้ใส่ช่วงหมายเลขไอพีแอดเดรสที่ไม่ต้องการให้อยู่ในสโคปคลิก Add เสร็จแล้วคลิก Next
5. ในไดอะล็อกบ็อกซ Lease Duration ให้กําหนดระยะเวลาที่เครื่องไคลเอนต์สามารถใช้งานหมายเลขไอพีแอดเดรสจากสโคปนี้ได้ โดยปกติค่าดีฟอลต์ของ Lease Duration จะเป็น 8 วัน ซึ่งสามารถแก้ไขได้ตามต้องการ เสร็จแล้วคลิกปุ่ม Next
6. ระบบจะถามว่าต้องการเซต Scope Option เลยหรือไม่ ให้เลือก Yes แล้วคลิกปุ่ม Next
7. ให้ใส่ค่าหมายเลขไอพีแอดเดรสของดีฟอลต์เกตเวย์, หมายเลขไอพีแอดเดรสของ DNS Server เมื่อมีไดอะล็อกบ็อกซ์ถามตามลําดับ
8. ระบบจะถามว่าต้องการแอคติเวต (Activate) สโคปนี้เลยหรือไมการแอคติเวตคือการเปิดการใช้งาน Scope เพื่อให้ เครื่องไคลเอนต์สามารถขอหมายเลขไอพีแอดเดรสที่อยูในสโคปดังกล่าวได้ ให้เลือก Yes แล้วคลิก Next เพื่อทำการแอคติเวต
9. เมื่อทำการแอคติเวต (Activate) สโคปแล้ว จะต้องทำการ Authorize DHCP server ก่อนเพื่อให้อำนาจในการจ่ายหมายเลขไอพีแอดเดรสให้กับเครื่องไคลเอนต์ โดยให้คลิกขวาที่ DHCP server แล้วเลือกเมนู Authorize ซึ่งจะทำการเพิ่มชื่อ DHCP serverเข้าใน Authorized list ของฐานข้อมูล Active Directory

การทดสอบการทำงานของ DHCP Server
การทดสอบว่าบริการ DHCP server ที่ติดตั้ง สามารถใช้งานได้หรือไม่นั้น ต้องทดสอบจากเครื่องไคลเอนต์คอมพิวเตอร์ที่อยู่บนเครือข่าย โดยในที่นี้จะยกตัวอย่างเป็นเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows XP

ขั้นตอนการเชื่อมต่อของเครื่องลูกกับ DHCP server

1. เครื่องลูกค้นหาเครื่อง DHCP server ในเครือข่าย โดยส่ง DHCP discover เพื่อร้องขอ IP address
2. DHCP server จะค้นหา IP ที่ว่างอยู่ในฐานข้อมูล แล้วส่ง DHCP offer กลังไปให้เครื่องลูก

3. เมื่อเครื่องลูกได้รับ IP ก็จะส่งสัญญาณตอบกลับ DHCP Request ให้เครื่องแม่ทราบ
4. DHCP server ส่งสัญญาณ DHCP Ack กลับไปให้เครื่องลูก เพื่อแจ้งว่าเริ่มใช้งานได้

หลักการทำงานของ DHCP Server (Lease Generation Process)
โปรโตคอลที่ใช้ในการทำงานของ DHCP ส่วนใหญ่เป็นลักษณะบรอดคาสต์ ซึ่งกระบวนการจ่าย IP Address นี้ประกอบไปด้วย 4 ขั้นตอน ที่ไคลเอนต์กับเซิร์ฟเวอร์จะติดต่อกันจนกระทั่งสุดท้าย ไคลเอนต์ DHCP ได้รับไอพีแอดเดรสที่ไม่ซ้ำกับ Host อื่นๆ ตลอดจนค่าคอนฟิกกูเรชั่นอื่นมาใช้งาน มีดังต่อไปนี้

1. DHCPDiscover เริ่มจากเมื่อเปิดเครื่องไคลเอนต์ขึ้นมา ก็จะถูกกำหนดให้ Obtain an IP address automatically ในหน้าจอ TCP/IP Properties ก็จะบรอดคาสต์เมสเสจ DHCPDISCOVER ออกไป ซึ่งจะไปถึงยังคอมพิวเตอร์ทุกเครื่องในเน็ตเวิร์กเซกเมนต์ และยังส่งหมายเลขแอดเดรส MAC ของการ์ดเน็ตเวิร์ก และชื่อแบบNetBIOS ของเครื่องคอมพิวเตอร์อีกด้วย

2. DHCPOffer เครื่อง DHCP Server บอกไคลเอนต์ว่าตัวเองสามารถจัดสรร IP Address ให้ได้ เมจเสจของเซิร์ฟเวอร์เครื่องใดไปถึงยังไคลเอนต์ก่อนก็จะถูกเลือกใช้งานโดยไคลเอนต์ (First-Come-First Serve)

3. DHCPRequest เป็นการตอบรับไปยังเซิร์ฟเวอร์ ตอนนี้ไคลเอนต์เองก็ยังไม่ได้รับไอพีแอดเดรส ดังนั้นการตอบกลับนี้ก็ยังจำเป็นต้องเป็นแบบ “บรอดคาสต์”

4. DHCPAck เมื่อได้รับข้อมูลยืนยันเรียบร้อยแล้ว เซิร์ฟเวอร์จะตอบกลับไปยังไคลเอนต์ประกอบด้วยข้อมูล IP Address ที่จัดสรรให้ไคลเอนต์ ตลอดจนค่าคอนฟิกูเรชั่นอื่นๆ
การต่ออายุการใช้สิทธิ IP Address ของไคลเอนต์ (Lease Renewal Process)
เนื่องจากมีข้อกำหนดเรื่องเวลาการใช้ IP Address ที่จัดให้ไคลเอนต์แต่ละเครื่องอาจมีการเปลี่ยนแปลงได้ นอกจากจะมี IP Address มากพอจนสามารถกำหนดระยะเวลาอนุญาตให้ใช้ IP Address ได้ไม่จำกัด ดังนั้นโดยปกติทุกๆช่วงเวลา ไคลเอนต์ต้องตรวจสอบกลับไปยังเครื่องเซิร์ฟเวอร์ DHCP ที่จัดไอพีแอดเดรสมาให้เพื่อขอต่ออายุเวลาการใช้งาน อีกทั้งยังได้รับค่าคอนฟิกกูเรชั่นต่างๆ ที่เปลี่ยนแปลงอีกด้วย เราเรียกกระบวนการนี้ว่า Lease Renewal ซึ่งสามารถทำงานได้หลายวิธีคือ
กระบวนการแบบอัตโนมัติ กระบวนการ Lease Renewal แบบอัตโนมัตินั้นจะเกิดขึ้นอย่างสม่ำเสมอที่ไคลเอนต์ เมื่อระยะเวลาที่อนุญาตให้ใช้ผ่านไปแล้ว 50% ดังนั้นไคลเอนต์จะเริ่มพยายามขอต่ออายุสิทธินี้หลังจากผ่านไปแล้ว 4 วัน ถ้าเวลาทั้งหมดเป็น 8 วัน การต่ออายุนี้จะเริ่มในขั้นตอนที่ 3 ของ DHCP Lease Generation Process คือเริ่มตั้งแต่ DHCPREQUEST เป็นต้นไป
กระบวนการแบบแมนนวล กระบวนการนี้จะทำโดยผู้ใช้งานเองผ่านการพิมพ์คำสั่งที่ Command Line ซึ่งจำเป็นในบางสถานการณ์ เช่นจำเป็นต้องให้ไคลเอนต์ได้รับคอนฟิกกูเรชั่นใหม่จากเซิร์ฟเวอร์ DHCP ในทันที
กระบวนการแบบไดนามิค วิธีนี้เป็นวิธีเดียวที่สามารถนำหมายเลขไอพีมาใช้ซ้ำได้ เมื่อคอมพิวเตอร์ถูกเปิดเครื่องและเริ่มทำงาน เครื่องลูกข่ายจะขอหมายเลขไอพีจากเซิร์ฟเวอร์โดยอัตโนมัติ วิธีนี้ต่างกับแบบอัตโนมัติตรงที่ IP Address ในการทำงานแต่ละครั้ง ไม่จำเป็นต้องเป็นเลขเดิม การติดตั้ง DHCP Server บน Windows Server 2003 การกำหนดหมายเลขไอพีแอดเดรสให้กับเครื่องไคลเอนต์บนระบบเครือข่ายนั้น เป็นหน้าที่หนึ่งของแอดมิน ในกรณีที่เครื่องไคลเอนต์มีจำนวนไม่มาก ตั้งอยู่ในห้องเดียวกันหรือในบริเวณใกล้ๆ กัน การกำหนดหมายเลขไอพีแอดเดรสแบบแมนนวลนั้นก็สามารถทำได้โดยไม่มีความซัลซ้อนอะไร แต่ถ้าเครื่องไคลเอนต์มีจำนวนมาก และตั้งอยู่หลายที่หรือห่างไกลกันการกำหนดหมายเลขไอพีแอดเดรสแบบแมนนวลนั้นคงเป็นเรื่องยาก การแก้ปัญหาเรื่องการกำหนดหมายเลขไอพีแอดเดรสแบบอัตโนมัติโดยใช้บริการแจกจ่ายหมายเลขไอพีให้เครื่องไคลเอนต์ด้วย DHCP Server ซึ่งเป็นฟีเจอร์หนึ่งที่มีใน Windows Server 2003

DHCP Server

DHCP Server คือโปรโตคอลที่ใช้ในการกำหนด IP Address อัตโนมัติแก่เครื่องลูกข่ายบนระบบ ที่ติดตั้ง TCP/IP สำหรับ DHCP server มีหน้าที่แจก IP ในเครือข่ายไม่ให้ซ้ำ เป็นการลดความซ้ำซ้อน เมื่อเครื่องลูกเริ่ม boot ก็จะขอ IP address, Subnet mark, หมายเลข DNS และ Default gateway

DHCP Server นิยมใช้กับห้องปฏิบัติการคอมพิวเตอร์ที่มีเครื่องลูกข่ายจำนวนมากๆ ทำให้ไม่ต้องเสียเวลาในการกำหนดค่าต่างๆ ให้กับเครื่องลูกข่าย หรือความหมายง่ายๆ คือ การตั้งค่าระบบเครือข่ายแบบอัตโนมัตินั่นเอง ซึ่งในปัจจุบันมีโปรแกรมทำสามารถใช้ทำเป็น DHCP Server ได้โปรแกรม ตัวที่ขอแนะนำสามารถดาวน์โหลดได้ที่ http://www.isc.org ในเว็บไซต์ก็จะมีหลายเวอร์ชั่นให้เลือกใช้ (ปัจจุบัน คือ DHCP 4.0.0) ผมขอแนะนำ http://ftp.isc.org/isc/dhcp/dhcp-4.0.0.tar.gz เป็นเวอร์ชั่น 4.0.0 หล่ะกันเริ่มเลยนะครับ

การนำDSNไปประยุกต์ใช้งานเชิงสร้างสรรค์

1. มีการประยุกต์จากระบบ DNS มาเป็นระบบ DDNS โดยทีมงานThai -DDN คือ DDNS ( Dynamic Domain Name System )
2. จากข้อจำกัดของระบบDNS ได้กลายมาเป็นจุดกำเนิดในการประดิษฐ์คิดค้นเทคโนโลยีชื่อโดเมนภาษาไทยในปี 2542 โดยกลุ่มผู้ประดิษฐ์คิดค้นชาวไทย ที่เอื้ออำนวยให้ผู้ใช้อินเทอร์เน็ตสามารถเรียกดูเว็บไซต์ผ่านทางชื่อโดเมนภาษาไทยเต็มรูปแบบ และเปิดโอกาสให้เจ้าของเว็บไซต์ที่ประสบปัญหากับการมีชื่อโดเมนภาษาอังกฤษที่จดจำยาก หรือใช้สื่อสารกับกลุ่มเป้าหมายได้อย่างลำบาก สามารถจดทะเบียนชื่อโดเมนภาษาไทยให้กับเว็บไซต์ของตัวเอง โดยใช้ตัวแปลงรหัสภาษาท้องถิ่นเพื่อทำงานร่วมกับระบบ DNS
3. ในความคิดของกลุ่มเราคิดว่า ในอนาคตข้างหน้าคาดว่ามนุษย์น่าจะสามารถพัฒนาระบบที่คล้ายกับระบบ DSN ที่สามารถแปลงรหัสภาษาของสัตว์ ให้กลายเป็นภาษาที่มนุษย์สามารถเข้าใจได้และสื่อสารกันได้ หรือแปลงรหัสในหุ่นยนต์ที่มีเฉพาะภาษาของประเทศที่ผลิตหุ่นยนต์นั้นให้มีหลากหลายภาษาเพื่อความสะดวกในการสื่อสาร
ประโยชน์ที่สำคัญของ DNS
คือช่วยแปลงหมายเลขไอพีซึ่งเป็นชุดตัวเลขที่จดจำได้ยาก (เช่น 207.142.131.206) มาเป็นชื่อที่สามารถจดจำได้ง่ายแทน (เช่น wikipedia.org)
สรุป DNS
ระบบ Domain Name System เป็นระบบจัดการแปลงชื่อไปเป็นหมายเลข IP Address มีโครงสร้างฐานข้อมูลแบบลำดับชั้นเพื่อใช้เก็บข้อมูลที่เรียกค้นได้อย่างรวดเร็ว กลไกหลักของระบบ DNS คือ ทำหน้าที่แปลงข้อมูลชื่อและหมายเลข IP Address หรือทำกลับกันได้ และยังมีฟังก์ชั่นเพิ่มเติมอื่น ๆ อีก ข้อกำหนดของ DNS คือ ชื่อในลำดับชั้นที่สองที่ต่อจาก root ได้มีการกำหนดชื่อเฉพาะที่ระบุรายละเอียดของกลุ่มเอาไว้ชัดเจน ข้อมูลใน DNS การทำงานของ DNS เป็นการทำงานแบบไคลเอนต์เซิร์ฟเวอร์ โดยใช้ฐานข้อมูลแบบกระจาย DNS มีทางเลือกใจการใช้งาน ได้ 2 วิธี คืออาศัยเครื่อง DNS server ของผู้ให้บริการ (ISP) เพื่อแปลงชื่อเป็นหมายเลข IP Address ให้กับทุกเครื่องที่อยู่ในเครือข่ายของตน ซึ่งวิธีนี้มีข้อดี คือ องค์กรนั้นไม่จำเป็นต้องเตรียมเครื่องทำหน้าที่ DNS Server และไม่ต้องคอยดูแลจัดการข้อมูลให้ยุ่งยาก แต่ก็มีข้อเสียคือ เมื่อมีการเปลี่ยนแปลงหรือเพิ่มเติมเครื่องในเครือข่าย ก็จะต้องแจ้งให้ผู้ดูแลระบบของบริษัท ISP ทราบเพื่อช่วยแก้ไขข้อมูลให้ ซึ่งจะไม่สามารถทำเองได้ DNS Zone มีการแบ่งจัดการดูแล domain ออกเป็นพื้นที่ย่อยเรียกว่า zone หรือ DNS zone นี้ทำได้โดยการแบ่งกลุ่มย่อยของ node ที่มีลำดับชั้นย่อยลงไปอีกขั้นเพื่อแยก DNS server ให้ดูแลรับผิดชอบแต่ละ zone ไปช่วยให้กรณีเมื่อ DNS server ที่ดูแล zone 1 อยู่เองได้รับคำสั่งขอข้อมูลที่ไม่สามารถหาคำตอบได้ ก็จะมีการส่งค่า IP Address ของ DNS server ที่ดูแล zone ที่ต้องการให้แทนDHCP การทำงานของโปรโตคอล DHCP จัดอยู่ในสถาปัตยกรรมแบบไคลเอนด์เซิร์ฟเวอร์ โดยเครื่องที่ทำหน้าที่เก็บฐานข้อมูลของแอดเดรสและพารามิเตอร์ ที่จำเป็นเพื่อแจกจ่ายให้กับเครื่องคอมพิวเตอร์หรืออุปกรณ์หรืออุปกรณ์อื่นๆจะถูกเรียกว่า DHCP server เพื่อนำไปใช้งาน

การทำงานของ DNS

DNS มีขั้นตอนอย่างง่ายๆ ดังรูปที่ 1 โดยในที่นี้จะไม่ขอกล่าวถึงรายละเอียดปลีกย่อยอื่นๆ ซึ่งมีอยู่มากและยังมีโปรโตคอลพิเศษคอยทำหน้าที่ต่างๆอยู่เบื้องหลังด้วย เช่น โปรโตคอล ARP ช่วยแปลงค่า IP address เป็นค่าฮาร์ดแวร์ เป็นต้น ตามรูปการทำงานของ DNS มีขั้นตอนที่สามารถอธิบายรายละเอียดได้ดังนี้
1. เครื่องคอมพิวเตอร์ลูกข่าย (client) ที่มี domain เป็น abccompany.com ต้องการติดต่อกับเว็บไซต์ที่ชื่อ www.xyz.com ดังนั้นเครื่องไคลเอนด์นี้ จะส่งคำสั่งขอข้อมูลหมายเลข IP address ด้วยกลไก resolver ไปที่ DNS server ที่ดูแล zone ของตนอยู่ คือ domain abccompany.com ในกรณีนี้สมมุติว่าฐานข้อมูลที่มีใน DNS server ไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ทั้งนี้เพราะ DNS server ของ zone abccompany.com จะดูแลฐานข้อมูลเฉพาะเครื่องลูกข่ายตนเอง ดังนั้น DNS server นี้ก็จะส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ที่อยู่ระดับบนกว่า ซึ่งได้กำหนดเอาไว้ให้เป็นเครื่อง DNS server ของบริษัทผู้ให้บริการ ISP นั่นเอง
2. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการ ISP แล้ว เครื่อง DNS server ของ ISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของบริษัท ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีกซึ่งก็ได้มีการกำหนดไว้ว่าเป็นเครื่อง root server

3. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการหรือ ISP แล้ว เครื่อง DNS server ของISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของ ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีก ซึ่งก็ได้มีการกำหนดไว้ว่าเป็น root server

4. คำสั่งขอข้อมูลถูกส่งต่อไปยัง DNS server ของ root เพราะดูแลฐานข้อมูลของ domain name ในระดับสอง (.com)

5. ที่ DNS root server แม้ว่าจะไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ก็ตาม แต่มีข้อมูลที่ทราบว่า DNS server ที่ดูแล zone ของ domain xyz.com อยู่ที่ใด (มีหมายเลข IP address อะไร) DNS root server ก็จะส่งข้อมูลดังกล่าวไปให้ เพราะที่เครื่อง DNS SERVER ที่ดูแล domain xyz.com จะต้องมีข้อมูลของ IP address ของ www.xyz.com อยู่แน่นอน

6. DNS server ของ ISP จะรับข้อมูล IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com เป็น 192.183.255.20 และแจ้งต่อไปให้ DNS server ที่รับผิดชอบ domain xyz.com อีกทีหนึ่ง ในขั้นนี้เครื่อง DNS server ของบริษัท ISP จะเก็บค่าคำตอบเอาไว้ในหน่วยความจำแคชเพื่อใช้กรณีที่มีการเรียกข้อมูลซ้ำอีกในอนาคต จะได้ส่งคำตอบไปให้เลยโดยไม่ต้องไปขอข้อมูลซ้ำอีก ค่าที่เก็บเอาไว้จะมีระยะเวลาที่ต้องปรับปรุงข้อมูลใหม่ตามค่าในฟีลด์ TTL ที่กำหนดไว้ใน resource record

7. DNS server ของบริษัท abccompany.com จะรับข้อมูลหมายเลข IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com ตามที่เครื่อง DNS server ของ ISP ส่งมาให้ และเก็บลงหน่วยความจำแคชของตนเองเช่นกัน เผื่อมีการเรียกใช้อีกในอนาคต แล้วส่งคำสั่งไปถามข้อมูลว่าเครื่อง www.xyz.com อยู่ที่ไหน (มีหมายเลข IP address อะไร)

8. DNS server ของ domain xyz.com ตรวจสอบข้อมูลและแจ้งว่าเครื่อง www.xyz.com อยู่ที่ IP address 192.186.255.26 ข้อมูลถูกส่งกลับไปให้เครื่อง DNS server ของ abccompany.com

9. คำตอบที่ DNS server ของ abccompany.com ได้รับจะถูกส่งต่อให้กับเครื่องไคลเอนต์ที่ต้องการและก็จัดเก็บข้อมูลลงหน่วยความจำแคชเช่นกัน

10. เมื่อเครื่องลูกข่ายทราบว่า www.xyz.com มีหมายเลข IP address อยู่ที่ 192.183.255.26 ก็จะติดต่อกับเครื่อง www.xyz.com โดยถ้าใช้งานเว็บก็จะสร้างการเชื่อมต่อโดยโปรโตคอล HTTP และใช้งาน port 80 เพื่อเรียกดูข้อมูลในเว็บไซต์นั้นต่อไป ตามกลไกลของ TCP/IP อาจมีผู้สงสัยว่าในการทำงานของ DNS server ทั้งหลายในเครือข่ายอินเตอร์เน็ตนั้นมีวิธีการจัดการอย่างไร ซึ่งสามารถอธิบายได้ง่ายๆ ตามขั้นตอนดังกล่าวที่ผ่านมา ซึ่งจะเห็นว่า DNS server จะถูกจัดลำดับในการดูแลฐานข้อมูลแยกกันตามกลุ่ม โดยแบ่งลำดับชั้นให้สอดคล้องกับการกำหนดชื่อ domain และในแต่ละลำดับของ DNS server นี้จะทราบว่าถ้าต้องการติดต่อขอข้อมูลจากลำดับบนขึ้นไปจะติดต่อได้จากหมายเลข IP address อะไร โดยในชั้นบนสุดเป็น root ที่จะดูแลข้อมูลของ domain ลำดับที่สองและย่อยลงไปตามชั้น และแต่ละเซิร์ฟเวอร์ที่ดูแล domain ของตนก็จะเรียกว่าเซิร์ฟเวอร์นั้นมีสิทธิ์ในการรับผิดชอบ zone ของตนเอง การลงทะเบียนขอชื่อ Domain Name

DNS server

ประวัติความเป็นมาของระบบ DNS
ราวช่วงศตวรรษที่ 90 ในขณะที่การใช้งานอีเมลล์เริ่มเป็นที่นิยมอย่างแพร่หลาย จำนวนเครือข่ายที่เชื่อมต่อมายังเครือข่าย ARPA NET ได้เพิ่มจำนวนสูงขึ้นอย่างรวดเร็ว จนทำให้บริการเครือข่ายแบบรวมศูนย์ของ SRI ( The NIC ) เริ่มประสบปัญหาในการจัดการระบบฐานข้อมูลซึ่งใช้ในการอ้างอิงถึงโฮสท์ที่เชื่อมต่อมาจากเครือข่ายอิสระต่างๆ ที่มีโครงสร้างการทำงานที่แตกต่างกัน โดยในขณะนั้น การเพิ่มรายชื่อโฮสท์แต่ละเครื่องเข้ามาในเครือข่าย ARPA NET จำเป็นต้องส่งข้อมูลโดยการ FTP เข้ามาปรับปรุงข้อมูลในไฟล์ Host Table ที่ SRI เป็นผู้ดูแล ซึ่งจะมีการปรับปรุงข้อมูลเพียงสัปดาห์ละ 2 ครั้งเท่านั้น ทำให้การจัดการข้อมูลมีความล่าช้าและไม่ยืดหยุ่น นอกจากนี้เครือข่ายต่างๆ ที่เข้ามาเชื่อมต่อต่างก็ต้องการอิสระในการจัดการบริหารระบบของตนเองจึงเกิดแนวความคิดที่กระจายความรับผิดชอบในการจัดระบบนี้ออกไป โดยแบ่งการจัดพื่นที่ของโลกเสมือนนี้ออกเป็นส่วนๆ โดยกำหนดให้โฮสท์แต่ละเครื่องอยู่ภายใต้ขอบเขตพื้นที่ใดพื้นที่หนึ่งที่ได้แบ่งเอาไว้ โดยแต่ละพื้นที่สามารถแบ่งออกเป็นพ้นที่ที่เล็กลงได้อย่างไม่จำกัด ซึ่งพื้นที่แต่ละส่วน ก็ถูกอ้างไปยังพื้นที่ที่ใหญ่กว่าเป็นลำดับชั้นขึ้นไป เพื่อให้สามารถระบุตำแหน่งอ้างอิงของโฮสท์แต่ละเครื่องที่อยู่ภายใต้ขอบเขตของแต่ละพื้นที่ได้อย่างถูกต้องและรวดเร็ว โดยพื้นที่เสมือนแต่ละส่วนถูกเรียกว่า “ โดเมน” (Domain) และเรียกการอ้างระบบอ้างอิงเป็นลำดับชั้นด้วยชื่อของแต่ละพื้นที่หรือโดเมนนี้ว่า “ ระบบชื่อโดเมน ” ( Domain Name System)ส่วนพื้นที่ทั้งหมดของโลกเสมือนที่ประกอบด้วยพื้นที่ย่อยๆจำนวนมากนี้ จะเรียกว่า “Domain Name Space”

DNS ย่อมาจาก Domain Name System Domain ในความหมายทั่วไป หมายถึง พื้นที่ที่ควบคุม หรือ โลกของความรู้ในอินเตอร์เน็ต domain ประกอบด้วย กลุ่มของตำแหน่งเครือข่าย ชื่อ domain จัดโครงสร้างเป็นระดับ โดยระดับบนสุดเป็นการระบุด้านภูมิศาสตร์หรือจุดมุ่งหมายขององค์กร (เช่น .th หมายถึงประเทศไทย .com หมายถึงหน่วยธุรกิจ) ระดับที่สองเป็นชื่อที่ไม่ซ้ำ (Unique) ภายใน Domain ระดับบนสุด และระดับต่ำที่ต้องนำมาใช้ ดังนั้น Domain Name System ก็เป็นระบบจัดการแปลงชื่อ (Domain Name) ให้เป็นหมายเลข IP address (name-to-IP address mapping) โดยมีโครงสร้างฐานข้อมูลแบบลำดับชั้นเพื่อใช้เก็บข้อมูลที่เรียกค้นได้อย่างรวดเร็ว หรือพูดง่าย ๆ ก็คือ การจดจำตัวเลข IP สำหรับแต่ละที่อยู่เว็บไซต์ มีความยากลำบาก ในทางปฏิบัติ จึงได้มีระบบการแปลงเลข IP ให้เป็นชื่อที่ประกอบขึ้นจากตัวอักษร คำ หรือ วลี เพื่อให้ง่ายต่อการจดจำ ซึ่งเรียกว่า โดเมนเนม (Domain Name) เมื่อเราป้อนที่อยู่เว็บไซต์ หรือโดเมนเนม ให้กับโปรแกรม Browser คอมพิวเตอร์จะทำการ แปลงโดเมนเนมให้เป็นชุดตัวเลข IP เพื่อให้คอมพิวเตอร์ด้วยกันเอง เข้าใจระบบที่ใช้แปลง ค่าระหว่างโดเมนเนม และ เลข IP นี้เรียกว่า Domain Name System (DNS) ซึ่งโดยปกติจะมี 2 ส่วน คือ

Primary Name Server เป็นเครื่องหลักที่เก็บข้อมูล ชื่อ และ IP Address ของเครื่องในโดเมนเนม

Secondary Name Server เป็นเครื่องสำรองที่เก็บสำเนาข้อมูลทั้งหมดของเครื่อง Primary ซึ่งอาจมีการสำรองมากกว่า1 เครื่องก็ได้ โดยการจะจด DNS Name Server ได้ จะต้องมีเครื่องคอมพิวเตอร์ที่เปิดอยู่ตลอด 24 ชั่วโมง เช่น ที่ผู้ให้บริการอินเตอร์เน็ต หรือ ISP (Internet Service Procider) มหาวิทยาลัยใหญ่ บริษัทใหญ่และผู้ให้บริการรับฝากเว็บซึ่งเรียกว่า Web Presence หรือ Web Hosting เป็นต้น การทำงานของระบบ DNS คือ ทำหน้าที่แปลงข้อมูลชื่อและหมายเลข IP address หรือทำกลับกันก็ได้ นอกจากนี้ยังมีฟังก์ชันเพิ่มเติมอื่นๆ อีก เช่น แจ้งชื่อของอีเมล์เซิร์ฟเวอร์ใน domain ที่รับผิดชอบด้วย ในระบบ DNS นั้น จะมีการกำหนด name space ที่มีกฎเกณฑ์อย่างชัดเจน มีวิธีการเก็บข้อมูลเป็นแบบฐานข้อมูลแบบกระจาย ทำงานในลักษณะของไคลเอนต์เซิร์ฟเวอร์ (Client/Server) โดยมี DNS server ให้บริการเรียกค้นชื่อและแปลงข้อมูลให้ตามที่เครื่องลูกข่าย (DNS Client) เรียกเข้ามา เช่น เครื่องลูกข่ายที่ต้องการรับส่งอีเมล์ หรือโอนถ่ายไฟล์ข้อมูลให้กับเครื่องอื่นซึ่งอาจจะรู้เพียงชื่อของเครื่องเซิร์ฟเวอร์ ที่ให้บริการแค่นั้น แต่ไม่รู้หมายเลข IP address เจ้า DNS จะทำหน้าที่แปลงข้อมูลและแจ้งให้เครื่องลูกข่ายตามที่ได้ส่งคำสั่งขอข้อมูลมา และการทำงานแบบไคลเอนต์เซิร์ฟเวอร์นี้เองที่ทำให้เครื่องซึ่งทำหน้าที่ DNS สามารถเป็นได้ทั้งเซิร์ฟเวอร์และไคลเอนต์ของ DNS ในเครื่องเดียวกัน ดังนั้นเครื่องที่ให้บริการในเครือข่ายอินเตอร์เน็ต 1 เครื่องจะมีการอ้างถึงได้หลายอย่าง เช่น

- อ้างตามชื่อ domain เช่น mail.provision.co.th

- อ้างตาม IP address เช่น 204.183.255.30

- อ้างตามหมายเลขฮาร์ดแวร์หรือ MAC address เช่น 00:a0:7c:4d:f2


ประโยชน์ของการใช้ Proxy

ผู้ใช้บริการสามารถเรียกดูข้อมูลจาก Web Site ต่าง ๆ ได้รวดเร็วขึ้น และช่วยประหยัดเวลาในการใช้งานอินเทอร์เน็ต ทั้งนี้ก็เพราะ Proxy Server ก็จะสามารถใช้ข้อมูลที่เก็บไว้จากการร้องขอของผู้ใช้รายแรกมาส่งให้แก่ผู้ใช้รายอื่น ๆ ได้เลยโดยไม่จำเป็นต้องทำการร้องขอไปยัง Web Server อีกครั้ง ทำให้สามารถประหยัดได้ทั้งเวลา และ Bandwidth ของเครือข่ายนอกจากนี้ ยังได้ข้อมูลที่มีความถูกต้อง และ ทันสมัยอยู่ตลอดเวลา ซึ่งเป็นผลให้มีความหนาแน่นของระบบเครือข่ายของ มทส. อยู่ในระดับต่ำ

ข้อดีของ Proxy Server
Proxy Server แบบ NAT ก็คือคุณไม่จำเป็นต้องติดตั้งโปรแกรมใดๆ ที่เครื่องลูกข่ายเพิ่มเติมเลย และในกรณีของโปรแกรมบราวเซอร์ก็ไม่ต้องไปกำหนดค่า IP Address ของเครื่องแม่ข่ายและหมายเลขพอร์ตที่ใช้เหมือนในกรณีของแบบแรกนอกจากนี้ยังสามารถเชื่อมต่อกับเครื่องลูกข่ายทุกประเภทได้ทันที่ นับตั้งแต่ Windows , MacOS หรือ Linux อย่างไรก็ตาม Proxy Server แบบ NAT นี้ไม่ได้ถูกออกมาให้ทำงานกับเว็บแคชชิ่ง ดังนั้นคุณจะพบว่า Proxy Server หลายๆ ตัวจะไม่มีคุณสมบัติของเว็บแคชชิ่งอยู่ด้วย ตัวอย่างที่เห็นได้ชัดคือ ICS (Internet Connection Sharing) ของ Windows หรืออุปกรณ์ประเภท Internet Sharing Device เป็นต้น อย่างไรก็ตามโปรแกรม Proxy Server แบบ NAT ที่สามารถทำงานกับเว็บแคชชิ่งได้ในปัจจุบันก็มีออกมาแล้ว เช่นโปรแกรม WinProxy 3.0 ของบริษัท Ositis ( www.winproxy.com) เป็นต้น
สรุป Proxy Server
Proxy Server หรืออาจเรียกกันว่า Cache เป็นอุปกรณ์เครือข่ายชนิดหนึ่ง ซึ่งจะทำการเก็บข้อมูลของหน้าเว็บเพจต่าง ๆ ที่เราเรียกมาดูนั่นเอง โดยจะทำหน้าที่เป็นเสมือน ที่เก็บข้อมูลหน้าเว็บเพจ ที่มีผู้เคยเรียกดูหน้าเว็บนั้นไว้ในระบบของ server และเมื่อมีผู้อื่น เรียกดูข้อมูลที่เป็นหน้าเว็บเพจ ตัวเดียวกันกับที่เคยมีเก็บไว้แล้ว ก็ไม่จำเป็นที่จะต้องไปเรียกอ่านข้อมูลมาจาก server ตัวต้นฉบับจริง ๆ ก็ได้ เพียงแค่ค้นหา ข้อมูลเว็บเพจนั้นจาก proxy ก่อน ซึ่งถ้าหากหาพบหรือมีผู้อื่นเคยเรียกอ่านแล้ว ระบบ proxy server ก็สามารถส่งข้อมูลนั้น มาให้เราได้ดูได้ทันที

หลักการทำงานของ Proxy Server แบบ NAL

เวลาที่คุณเล่นอินเตอร์เน็ตที่บ้านโดยผ่านโมเด็ม เครื่องพีซีของคุณจะได้รับหมายเลข IP Address มาหมายเลขหนึ่งซึ่งถูกกำหนดจากเครื่องเซิร์ฟเวอร์ของ ISP ที่คุณใช้อยู่โดยอัตโนมัติ IP Address ที่ว่านี้คือ IP Address จริงๆ ที่ใช้กันในอินเตอร์เน็ตหรือที่เรียกดันว่า Public IP Address หรือ True IP Address โดยจะถูกใช้เป็น IP Address ชั่วคราวประจำเครื่องของคุณตลอดเวลาที่คุณใช้อินเตอร์เน็ตอยู่ หลักจากที่คุณเลิกใช้อินเตอร์เน็ต IP Address นั้นก็จะถูกดึงคืนเพื่อกำหนดให้ผู้ใช้รายอื่นๆ ต่อๆ ไป
IP Address ที่ได้รับมาจาก ISP คุณสามารถเอามาแชร์ให้กับเครื่องคอมพิวเตอร์เครื่องอื่นอีกที่อยู่ภายในระบบ LAN ได้โดยใช้เทคโนโลยีที่เรียกว่า Network Address Translation หรือ NAT ซึ่งมีหลักการคือการแปลงหมายเลข IP Address ของเครื่องลูกข่ายต่างๆ ที่อยู่ภายในแพ็กเก็ต (packet ) ของ TCP-IP ให้กลายเป็น IP Address จริง (ที่ได้รับมาจาก ISP ) ก่อนจะส่งออกอินเตอร์เน็ต และในทำนองกลับกันจะแปลงหมายเลข IP Address ที่อยู่ในแพ็กเก็ตของ TCP-IP ที่ได้รับมาจากอินเตอร์เน็ตให้กลายเป็นหมายเลข IP Address ภายในของเครื่องลูกข่ายเครื่องใดเครื่องหนึ่งก่อนจะส่งต่อให้เครื่องลูกข่ายเครื่องนั้นในระบบ LAN ต่อไป ด้วยหลักการของ NAT นี้เองทำให้เครื่องลูกข่ายในระบบ LAN แต่ละเครื่องสามารถติดต่อกับอินเตอร์เน็ตได้ เสมือนว่ากำลังเชื่อมต่อกับอินเตอร์เน็ตโดยตรงเลยที่เดียว เครื่องคอมพิวเตอร์ที่ให้บริการของ NAT Router นั่นเอง นอกจากนี้อุปกรณ์ Internet Sharing Device ก็ใช้หลักการของ NAT เช่นเดียวกัน
เทคโนโลยีของ NAT นี้มีชื่อเรียกกันไปหลายอย่าง เช่น เทคนิคการซ่อน IP Address (IP masquerade ) ซึ่งหมายความว่าจะซ่อน IP Address ของเครื่องลูกข่ายไว้ โดยที่เครื่องคอมพิวเตอร์จากภายนอกหรือภายในอินเตอร์เน็ตจะไม่สามารถรู้ว่า IP Address ของเครื่องลูกข่ายเป็นหมายเลขใด บางคนก็เรียกเทคนิคของ NAT ว่าการแชร์ IP Address ซึ่งหมายถึงการนำเอา IP Address ที่ได้รับจาก ISP นั้นมาใช้ร่วมกันในบรรดาเครื่องลูกข่าย ซึ่งเป็นที่มาของคำว่า “IP Sharer” ที่เราได้ใช้เรียกอุปกรณ์ Internet Sharing Device นั่นเอง สำหรับ IP Address ของเครื่องลูกข่ายที่ใช้ในระบบ LAN มักจะเป็น IP Address กลุ่มพิเศษสำหรับใช้ภายในซึ่งจะต่อออกอินเตอร์เน็ตไม่ได้
ผลพลอยได้ของการใช้ NAT ก็คือช่วยให้การถูกบุกรุกหรือเข้าถึงระบบเครือข่าย (ระบบ LAN ) จากภายนอก (อินเตอร์เน็ต) ทำได้ยากมากขึ้น เนื่องจากคอมพิวเตอร์จากภายนอก (อินเตอร์เน็ต) จะไม่สามารถติดต่อกับเครื่องลูกข่ายในระบบ LAN ได้โดยตรง แต่สามารถทำได้โดยติดต่อผ่านเครื่อง Proxy Server เท่านั้น
Proxy Server ที่ใช้เทคโนโลยี NAT นี้กำลังได้รับความนิยมอยู่ในปัจจุบันและถูกเสนอให้กลายเป็นเทคโนโลยีมาตรฐานอีกด้วย ดังนั้นโปรแกรม Proxy Server รุ่นใหม่ๆจึงใช้เทคนิคนี้กันหมด บางยี่ห้อที่ของเดิมเป็น Proxy Server แบบดั้งเดิมก็เอามาปัดฝุ่นโดยเพิ่มคุณสมบัติของ NAT เข้าไปด้วยทำให้สามารถทำงานได้ทั้ง 2 แบบ

หลักการทำงานของ Proxy Server แบบดั้งเดิม

ภายในตัวของ Proxy Server แบบดั้งเดิมนั้นจะประกอบด้วยโปรแกรมหรือบริการย่อยๆ ที่ไว้รองรับการใช้งานจากเครื่องลูกข่ายประเภทต่างๆ อยู่ 3 ตัวคือ WWW Proxy , WinSock Proxy , SOCKS Proxy ซึ่งรายละเอียดของแต่ละบริการที่ดังนี้
WWW Proxy คือบริการที่ทำหน้าที่เป็นตัวกลางในการติดต่อกับ Web Server ต่างๆ ในอินเตอร์เน็ต เพื่อให้คุณสามารถที่จะใช้บริการท่องเว็บ หรือดาวน์โหลดไฟล์จากเว็บไซท์ต่างๆ โปรแกรมในเครื่องลูกข่ายที่ใช้บริการนี้คือ โปรแกรมบราวเซอร์นั่นเอง บริการนี้จะทำงานคู่กับ เว็บแคชชิ่งด้วย
WinSock Proxy คือบริการที่ทำหน้าที่เป็นตัวกลางในการติดต่อกับเซิร์ฟเวอร์ในอินเตอร์เน็ตที่ให้บริการประเภทอื่นๆ นอกเหนือจากในกรณีของ WWW Proxy เช่น บริการรับส่งอีเมล์ , Remote Login (Telnet) หรือ Chat (ICQ , Pirch) เป็นต้น โปรแกรมในเครื่องลูกข่ายที่ใช้บริการนี้ได้แก่ Outlook Express , Telnet , FTP , โปรแกรม Chat (ICQ หรือ Pirch) และโปรแกรมอื่นๆ ที่ใช้โปรโตคลอ WinSock ในกรณีติดต่อ ดังนั้นเครื่องลูกข่ายจะต้องเป็นเครื่องที่ใช้ระบบปฎิบัติการ Windows และต้องติดตั้งโปรแกรมพิเศษเพิ่มเติมที่เรียกว่า WinSock Proxy Client เพื่อใช้ในการติดต่อกับบริการ WinSock Proxy ด้วย
SOCKS Proxy คือบริการที่ทำหน้าที่คล้ายๆ กับ WinSock Proxy แต่จะให้บริการกับโปรแกรมในเครื่องลูกข่ายที่ใช้โปรโตคอล SOCKS ในการติดต่อ ซึ่งโดยมากมักจะเป็นเครื่องลูกข่ายที่ไม่ใช้ Windows เช่น ระบบปฏิบัติการ MacOS (แมคอินทอช) หรือ Unix (Linux) เป็นต้น

ที่เครื่องลูกข่ายจะต้องอาศัยโปรแกรมที่สนับสนุนการเชื่อมต่อผ่าน Proxy Server ด้วย ตัวอย่างเช่น โปรมแกรมบราวเซอร์หรือโปรแกรม Windows Media Player จะที่คุณสมบัติในการเชื่อมต่อกับ Proxy Server โดยผ่านบริการ WWW Proxy ได้อยู่แล้ว คุณเพียงแต่ไปกำหนดค่า IP Address พร้อมด้วยหมายเลขพอร์ตใช้ในการเชื่อมต่อกับตัว Proxy Server ในแต่ละโปรแกรมก็ใช้งานได้แล้ว แต่หากคุณใช้โปรแกรมประเภทอื่นๆ ที่ไม่สนับสนุนการเชื่อมต่อผ่าน Proxy Server แล้วคุณจำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติมที่เครื่องลูกข่ายที่ชื่อว่า WinSock Proxy Client เพื่อใช้ติดต่อสื่อสารกับบริการ WinSock Proxy แทน

สำหรับโปรแกรม WinSock Proxy Client นั้นโดยทั่วไปจะติดมากับชุดโปรแกรมของ Proxy Server อยู่แล้ว แต่มักจะสนับสนุนเฉพาะบน Windows เท่านั้น ถ้าคุณใช้เครื่องลูกข่ายที่เป็น MacOS หรือ Linux ก็ใช้ไม่ได้ ดังนั้นจึงต้องหันไปใช้การเชื่อมต่อผ่านบริการ SOCKS Proxy แทน อย่างไรก็ตามโปรแกรมบน Windows บางตัวก็มีความสามารถในการเชื่อมต่อผ่านบริการทั้ง 3 ประเภทได้ ตัวอย่างเช่นโปรแกรม ICQ 2000b เป็นต้น
Proxy Server แบบดั้งเดิมนี้มักถูกออกแบบให้มีคุณสมบัติอื่นๆ เพิ่มเติมอีก เช่น ระบบตรวจสอบและป้องกันไวรัสที่อาจติดมากับไฟล์หรือข้อมูลจากอินเตอร์เน็ต ระบบการห้ามเข้าถึงข้อมูลในเว็บไซท์ที่ไม่พึงประสงค์ต่างๆ หรือระบบควบคุมการใช้งานของเครื่องลูกข่ายต่างๆ ด้วย
จุดอ่อนของ Proxy Server แบบดั้งเดิมคือเรื่องการติดตั้งและใช้งาน เนื่องจากต้องอาศัยการกำหนดค่า IP Address และหมายเลขพอร์ตของเครื่องแม่ข่ายในโปรแกรมบราวเซอร์ที่เครื่องลูกข่ายแต่ละเครื่อง หรือถ้าเป็นโปรแกรมอื่นๆ ก็ต้องติดตั้งโปรแกรม WinSock Proxy Client ที่เครื่องลูกข่ายทุกเครื่องดังนั้นหากมีการเคลื่อนย้ายหรือเปลี่ยน Proxy Server ก็ต้องตามไปเปลี่ยนที่โปรแกรมทุกตัวในเครื่องลูกข่ายทุกเครื่องด้วยเช่นกัน นอกจากนี้ Proxy Server แบบนี้ยังมักมีปัญหากับโปรแกรมแปลกๆ ใหม่ๆ บนอินเตอร์เน็ตด้วย เช่น โปรแกรมเกมที่เล่นผ่ายอินเตอร์เน็ต ซึ่งต้องอาศัยการเซ็ตอัพที่เฉพาะเจาะจงลงไป ถ้าโชคร้ายหน่อยก็เล่นไม่ได้เลย ดังนั้นจึงให้ Proxy Server แบบนี้ได้รับความนิยมลดลง และ Proxy Server แบบ NAT นั้นกำลังได้รับความนิยมเข้ามาแทนและเพิ่มขึ้นเรื่อยๆ


เว็บแคชชิ่งทำงานอย่างไร
เว็บแคชชิ่งคือการที่เครื่อง Proxy Server ทำการเก็บสำรองข้อมูลของเว็บไซท์ต่างๆ ที่เกิดจากการไปเยี่ยมชมของเครื่องลูกข่ายแต่ละเครื่องไว้ในฮาร์ดดิสก์ซึ่งเรียกว่า แคช (Cache ) จากนั้นหากมีเครื่องลูกข่ายเครื่องใดที่ต้องการเยี่ยมชมเว็บไซท์เหล่านั้นซ้ำอีก เครื่อง Proxy Server ก็จะดึงข้อมูลของเว็บไวท์นั้นจากแคชแล้วส่งกลับไปให้แทน ซึ่งเป็นการลดความถี่ในการเข้าถึงข้อมูลบนอินเตอร์เน็ตได้โดยตรง ในขณะเดียวกันเครื่องลูกข่ายก็จะได้รับข้อมูลเร็วขึ้น เว็บแคชชิ่งจึงเป็นเทคนิคการเพิ่มความเร็วของระบบ ยิ่งถ้าแคชของคุณมีขนานใหญ่เท่าไรแล้วความเร็วของระบบโดยรวมก็จะยิ่งเพิ่มมากขึ้น อย่างไรก็ตามการเก็บแคชไว้เป็นเวลานานๆ โดยไม่อัพเดทจะทำให้เครื่องลูกข่ายได้รับข้อมูลที่ไม่อัพเดทตามไปด้วย ดังนั้นสิ่งที่ต้องระวังคือเรื่องของความถี่หรือนโยบายในการอัพเดทข้อมูลในแคชของคุณด้วย โดยทั่วไปตัวซอฟต์แวร์ของ Proxy Server จะมีเมนูให้คุณใช้สำหรับจัดการกับแคชของคุณได้ อย่างไรก็ตามบางเว็บไซท์หรือบางเว็บเพจถูกสร้างขึ้นเฉพาะสำหรับการเรียกดูแต่ละครั้ง เช่น สร้างจากโปรมแกรม CGI หรือ APS ที่อยู่บน Web Server นั้นๆ ซึ่งไม่สามารถที่จะใช้คุณสมบัติของเว็บแคชชิ่งได้ อย่างนี้เว็บแคชชิ่งก็ช่วยในเรื่องของความเร็วไม่ได้
Proxy Server ที่มีความสามารถทางด้านเว็บแคชชิ่งโดยมากจะเป็น Proxy Server แบบเดิม ซึ่งได้แก่ WinGate , WinRoute (ในโหมดของ Proxy Server ) , Microsoft Proxy Server 2.0 ที่รันบน Windows NT Proxy Server 4.0 และโปรแกรม Squid ที่รันบน Linux หรือถ้าเป็น Windows 2000 Server หรือ ISA Server ให้เลือกใช้ได้เช่นกัน
สำหรับ Proxy Server แบบ NAT (โปรแกรม ICS , WinGate , WinRoute ในโหมดของ ENS-Pltgin และอุปกรณ์สำหรับแชร์อินเตอร์เน็ตชนิดต่างๆ) นั้นโดยมากจะไม่มีคุณสมบัติของเว็บแคชชิ่งอยู่ ดังนั้นความเร็วในการดึงข้อมูลจึงอาจจะสู้แบบแรกไม่ได้แต่ก้ไม่ถึงกับช้ามากอะไรนัก จัดว่าจัดว่าอยู่ในระดับที่ใช้งานได้ดีที่เดียว นอกจากนี้หากคุณต้องการคุณสมบัติของเว็บแคชชิ่งจริงๆ แล้วจึงสามารถติดตั้งโปรแกรมที่ช่วยในการทำเว็บแคชชิ่งส่วนตัวที่เครื่อวลูกข่ายได้ ตัวอย่างเช่นโปรแกรม NetSonic ที่เป็น Freeware และสามารถดาวน์โหลดได้ตามเว็บไซท์ทั่วๆไป นอกจากนี้ในตัวโปรแกรมบราวเซอร์เองยังมีการจัดเก็บแคชในตัวเองอยู่ด้วย ซึ่งช่วยเพิ่มความเร็วในการเข้าถึงเว็บไซท์ได้ในระดับหนึ่ง

ประเภทของ Proxy Server

Proxy Server แบ่งออกได้เป็น 2 ชนิดคือ
1. Proxy Server แบบดั้งเดิม คือ Proxy Server ที่ใช้เทคนิคสมัยเก่าหรือสมัยที่เริ่มจะมีProxy Server ออกมาให้ใช้กัน ซึ่งเป็นเทคนิคที่ผมได้อธิบายไว้ในคำนิยามของ Proxy Server ในหัวข้อก่อนหน้านี้ นั่นเอง ตัวอย่างโปรแกรมประเภทนี้ได้แก่ โปรแกรม Microsoft Proxy Server ของบริษัทไมโครซอฟท์ (ทำงานบน Windows NT Server 4.0 ) , WinGate ของบริษัท Qbik หรือ Netscape Proxy Server ของบริษัท Netscape (ปัจจุบันไม่ค่อยมีคนใช้แล้ว) Proxy Server แบบนี้หากใช้ให้บริการประเภทการท่องเว็บหรือดาวน์โหลดไฟล์ผ่านโปรแกรมบราวเซอร์แล้ว มักจะมีการเก็บสำเนาข้อมูลหรือบริการต่างๆที่ได้รับมาจากการใช้บริการของเครื่องลูกข่ายต่างๆในช่วงก่อนหน้านี้ไว้ในฮาร์ดดิสก์ซึ่งเรียกว่าแคช ( Cache ) ประโยชน์ของแคชก็คือช่วยลดภาระการทำงานของ Proxy Server ที่ต้องไปดึงข้อมูลจากอินเตอร์เน็ตตามคำร้องขอของเครื่องพีซีต่างๆโดยไม่จำเป็น กล่าวคือ หากเครื่องพีซีเครื่องใดเครื่องหนึ่งต้องการข้อมูลจากอินเตอร์เน็ตแล้ว Proxy Server จะมาค้นดูใน Cache ก่อนหากพบว่ามีอยู่แล้วก็จะดึงข้อมูลนั้นส่งกลับไปให้เครื่องลูกข่ายนั้นได้ทันที ทำให้เครื่องลูกข่ายได้รับข้อมูลในเวลาที่เร็วขึ้น ดังนั้น Proxy Server จะไปดึงข้อมูลจากอินเตอร์เน็ตในกรณีที่ข้อมูลที่ต้องการไม่มีใน Cache เท่านั้น วิธีดังกล่าวนี้ภาษาทางเทคนิคจะเรียกว่า “ เว็บแคชชิ่ง” (Web Caching )


2. Proxy Server แบบ NAT คือ Proxy Server สมัยใหม่ที่ใช้เทคนิคเรียกว่า NAT (Network Address Translation ) หรือที่เรียกว่า IP Masquerade ความจริงแล้ว Proxy Server แบบนี้ไม่ตรงกับคำจำกัดความที่ผมให้ไว้ในตอนแรกเท่าไรนัก แต่เพื่อความเข้าใจเชิงเปรียบเทียบจึงพออนุโลมให้เรียกว่า Proxy Server ได้ สิ่งที่ทำให้ Proxy Server แบบนี้มีพฤติกรรมไม่ตรงกับคำจำกัดความของ Proxy Server ก็คือหลักการทำงานของมันที่ใช้เทคนิคที่เรียกว่า NAT นั่นเอง (รายละเอียดจะอธิบายต่อไป) ตัวอย่างโปรแกรมประเภทนี้คือโปรแกรม WinGate รุ่นใหม่ๆ (ต้องติดตั้งซอฟต์แวร์ที่ชื่อว่า ENS Plug – in เพิ่มเติม) หรือโปรแกรม ICS (Internet Connection Sharing ) ที่อยู่ในตัว Window รุ่นใหม่ๆ ตั้งแต่ Window 98 Se

Proxy Server

พร็อกซี่ เซิร์ฟเวอร์(Proxy server)หรือ NAT server คือ เครื่องที่อยู่ตรงกลางระหว่างเครื่องลูกกับอินเทอร์เน็ต เพราะเครื่องลูกในเครือข่ายทั้งหมดจะไม่ติดต่อกับอินเทอร์เน็ตโดยตรง เมื่อเครื่องลูกเรียกดูข้อมูล จะส่งคำขอให้เครื่อง Proxy server และค้นหาข้อมูลนั้นใน เครื่อง Proxy server ว่ามีหรือไม่ หากมีก็จะส่งกลับไปให้เครื่องลูก โดยไม่ออกไปหาจากแหล่งข้อมูลจริง เพราะข้อมูลนั้นถูกเก็บในหน่วยความจำของเครื่อง Proxy server แล้ว จึงเป็นการลดภาระของระบบเครือข่าย ที่จะออกไปนอกเครือข่ายโดยไม่จำเป็น จะเห็นว่า Proxy server ทำหน้าที่เป็น Cache server ทำหน้าที่เก็บข้อมูลที่ผู้ใช้เคยร้องขอ หากมีการร้องขอข้อมูลที่ไม่มีใน proxy ก็จะออกไปหาในอินเทอร์เน็ต แล้วนำกลับมาเก็บใน cache เมื่อผู้ใช้ท่านอื่นต้องการ ก็จะนำจาก cache ไปใช้ได้ทันที สำหรับ Proxy server ที่นิยมใช้ใน Linux เช่น Squid มักให้บริการที่ port 3128 เป็นต้น Proxy server คือ เครื่องบริการที่ทำหน้าที่แปลง address ของเครื่องต้นทางเมื่อมี package ส่งไปยัง local host หรือแปลง address ปลายทาง เมื่อมี package ส่งไปยัง localhost โดยลักษณะที่ชัดเจนของ proxy server คือการทำ caching ทำให้ local host เข้าถึงข้อมูล ซ้ำ ๆ กันได้โดยตรงจากเครื่องบริการ ใน local network ไม่ต้องออกไปนอกเครือข่ายโดยไม่จำเป็น

NAT (Network Address Translation) คือ คุณสมบัติหนึ่งของการแจก IP หรือการทำ IP Sharing เพราะในเครือข่ายขนาดใหญ่จะใช้ Local IP หรือ Fake IP แต่จะมี Real IP อยู่บางส่วน โปรแกรมเครื่องบริการบางโปรแกรมมีหน้าที่กำหนด Local IP ให้เครื่องลูก เมื่อเครื่องลูกต้องการออกไปอ่านข้อมูลจากอินเทอร์เน็ต ก็จะใช้ Real IP ออกไป จากลักษณะดังกล่าง อาจทำให้เครื่องที่เป็น NAT server ทำหน้าที่เป็น Firewall ปกป้องเครื่องลูก เพราะจะไม่มีใครทราบ Local IP ของเครื่องในองค์กรได้ เนื่องจากการออกไปสู่อินเทอร์เน็ตจะใช้ IP ของ NAT server เสมอ จึงไม่มีใครเจาะเข้าสู่เครื่องลูกได้โดยตรง การเป็น NAT server อาจไม่จำเป็นต้องใช้คุณสมบัติ Cache server ก็ได้ เพราะเครื่องที่เป็น Proxy server ที่มีศักยภาพต่ำ จะล่มได้เร็วกว่าเครื่องที่ทำหน้าที่เป็น NAT เพียงอย่างเดียว สำหรับโปรแกรมที่ทำหน้าที่เป็น NAT server เช่น WinGate, WinRoute, WinProxy หรือ ICS(Internet Connection Sharing) เป็นต้น

Mail Server บนระบบปฏิบัติการ Linux

ทฤษฎี
MTA (Mail Tranfer Agent)
ในการส่ง E-mail นั้นจะต้องอาศัย Protocol ที่ชื่อ SMTP (Simple Mail Transfer Protocol) เป็นตัวกลางในการรับและส่ง E-mail แต่ละฉบับ โปรแกรมที่ทำหน้าที่คอยรับการสื่อสารทาง SMTP นั้นมีหลายตัวด้วยกัน เช่น Sendmail, Postfix, qmail, smail, Microsoft Exchange, Lotus Note เป็นต้น โดยปรกติ SMTP จะรอรับการติดต่ออยู่ที่ Port 25 อยู่แล้ว


คำศัพท์ Mail server Server ที่ทำหน้าที่รับส่ง E-mail โดยปรกติแล้วที่ Mail Server จะต้องรันโปรแกรม (service) ประเภท MTA ไว้ เพื่อรับการติดต่อที่ Port 25 MTA ย่อมาจาก Mail Tranfer Agent คือโปแกรมที่ทำหน้าที่รับส่ง E-mail กับ Mail-Server ต่าง โดยจะทำงานผ่าน Simple Mail Tranfer Protocol Mail Client เป็นโปรแกรมที่เอาไว้รับและส่ง E-mail เช่น Outlook Express, Pine, Eudora เป็นต้น

เมื่อผู้ใช้งานส่ง E-mail เมื่อผู้ใช้งาน Sivawut บน Domain sivawut.org ต้องการส่ง email ถึง Prachya บนDomain crma.ac.th โดยปรกติ Sivawut จะต้องใช้โปรแกรมส่ง E-mail เช่น Outlook Express ทำการส่ง E-mail Address เมื่อกดส่ง โปรแกรมจะเข้าไปดูว่า Outgoing นั้นใช้ช่องทางไหน (outgoing คือ ข้อมูลที่บอกว่าจะใช้ mail server ที่ไหนเป็นตัวส่ง E-mail ) ซึ่งปรกติแล้ว Outgoing จะเป็น address ของ mail server ที่เรามีบัญชีใช้งานอยู่ ซึ่งในที่นี้ก็คือ mail.sivawut.org นั่นเอง เมื่อเจอ outgoing Mail โปรแกรม OutlookExpress ก็จะส่ง mail ไปยัง Outgoing Mail ของเรา

เมื่อ mail ถูกส่งถึง outgoing mail แล้ว outgoing ก็ดูว่า จดหมายเราจ่าหน้าไปที่ใด e-mail server ก็จะไปถาม DNS ว่า domain ที่จะส่งไป มี mail server ชื่ออะไร จากนั้นก็จะส่งไปที่ Mail server ที่จ่าหน้าไปถึง กรณีที่ E-mail Server ที่เราจ่าหน้าไป ไม่มีตัวตนอยู่ หรือเครื่องปิด หรืออาจะไม่รับ Mail จากผู้ส่งที่ไม่รู้จัก E-mail ฉบับนั้นจะถูกตีกลับมายังผู้ส่ง เมื่อ E-mail ไปถึง Server ปลายทางแล้ว ก็จะเข้าไปอยู่ใน Mailbox ของผู้ใช้แต่ละคน ตามที่จ่าหน้าไปถึง ด้วยหลักการนี้ ทำให้เราสามารถส่ง E-mail กันถึงได้ทั่วโลก เพียงแค่เชื่อมต่อกับเครือข่ายอินเตอร์เน็ต
POP3 (Post Office Protocol Version 3)
หากเราต้องการจะส่ง e-mail ได้นั้นจะต้องมีชื่อบัญชีผู้ใช้บนเครื่องซึ่งเราต้อง login เข้าไปในเครื่อง mail server โดยตรง ดังนั้นทุกครั้งที่เราต้องการอ่าน Mail เราต้อง Login เข้าไปที่เครื่อง Mail Server ทุกครั้ง ซึ่งเป็นความไม่สะดวกอย่างยิ่ง จึงได้มีคนพัฒนา Protocol ตัวใหม่ขึ้นมาชื่อ Post Office Protocol ( POP ) ซึ่งตอนนี้ถึง Version 3 (POP3) เพื่อใช้ในการ ดึงเอา Mail จาก Mail server ที่เรามีชื่อบัญชีอยู่ มาเก็บไว้ในเครื่องคอมพิวเตอร์ของเราเอง


POP3 (Post Office Protocol version 3) ทำให้เราสามารถ Download e-mail จาก mail server มาเก็บไว้ที่เครื่องคอมพิวเตอร์ของเราเองได้

IMAP4 (Internet Message Access Protocol Version 4)
IMAP เป็น Protocol ที่เอาไว้ใช้ในการ อ่านและเขียนจดหมายอีกตัวหนึ่งที่มีมาเพื่อแก้ปัญหาข้อด้อยของ POP กล่าวคือ POP จะทำการดึงจดหมายจาก Mail Server มาเก็บไว้ที่เครื่องผู้ที่ใช้งาน เมื่อเราดึง Mail มาแล้ว หากเราต้องการอ่าน E-mail ฉบับนั้นอีกแต่ไม่ได้อยู่บนเครื่องเดิม หากเราใช้คอมพิวเตอร์อีกเครื่องดึงเมล์เพื่อมาอ่านอีก เราจะพบกับความว่างเปล่า เพราะว่า E-mail ของเรา ที่ Mail Server ได้ถูกดึงมาอ่านไปที่คอมพิวเตอร์เครื่องแรกเรียบร้อยแล้ว
IMAP จึงถูกออกแบบมาเพื่อแก็ปัญหานี้ กล่าวคือ การทำงานของ IMAP นั้น จะเป็นการ Access เข้าไปโดยตรงที่ MailBox ของเรา ทำให้เราสามารถ อ่าน เขียน ลบ E-mail ของเราได้จากคอมพิวเตอร์เครื่องไหนก็ได้ เพราะ E-mail ของเรา จะอยู่ที่เครื่อง Mail Server ตลอดเวลา ทำให้ง่ายต่อการเข้าถึง
Web based Mail
เมื่อ Internet ได้แพร่หลายไปทุกหน่วยงาน และความสะดวกสบายในการติดต่อสื่อสารด้วยการใช้ E-mail มากขึ้น ทำให้ E-mail ได้เข้าไปมีบทบาทแทบทุกองค์กร ในการติดต่อสื่อสารระหว่างกัน ความต้องการในการใช้ E-mail ในทุกๆที่นั้นได้เพิ่มมากขึ้น สืบเนื่องมาจากการพัฒนาของ HTML และการทำ Dynamic Web ด้วย CGI จึงได้มีผู้คิด Webbased Mail ขึ้นมา เพื่อตอบสนองข้อจำกัดของ POP3 และ การต้อง Login เข้าเครื่อง Mail Server โดยตรง เพื่อลดความยุ่งยากในการใช้โปรแกรม Mail Client ที่หลากหลาย และความยุ่งยากในการปรับตั้งค่าการทำงานของโปรแกรมและความปลอดภัย Webbased-Mail จึงได้กำเนิดขึ้นมา

การทำงานของ Webbased Mail จะใช้ Web Interface เป็นตัวติดต่อกับผู้ใช้งาน ทำให้ผู้ใช้งานสามารถเข้าถึง MailBox จากที่ไหนก็ได้ ขอเพียงแค่เชื่อมต่อกับเครือข่าย Internet ให้ได้ก็พอ และในปัจจุบันได้มี Website หลายๆที่ ได้ให้บริการ Free Webbased-Mail กันมากมายเช่น Yahoo Mail, GMail, Hotmail, ThaiMail เป็นต้น เหล่านี้คือ Webbased Mail ทั้งสิ้น
ในระบบปฎิบัติการ Linux หากเราต้องการเปิดให้บริการ Webbased Mail นั้นก็สามารถทำได้หลายวิธี เช่น ติดตั้ง Web server และ Protocol IMAP จากนั้นก็พัฒนา Webmail Interface ขึ้นมาเองโดยใช้ Server-side Script อย่าง PHP ในการบริหารจัดการกับ MailBox ก็ได้ ซึ่งวิธีที่กล่าวมาค่อนข้างจะยุ่งยากพอสมควร
ในปัจจุบันได้มี Software Opensource บ้างตัวได้แจก Webmail Interface ให้นำไปใช้งานและปรับแต่งได้ฟรี ไม่มีค่าใช้จ่าย ผู้ใช้งานเพียงแค่ ติดตั้งระบบ Mail Server และ Web Server ให้เรียบร้อย จากนั้นนำ Webmail Interface มาติดตั้ง ก็สามารถใช้งานได้ทันที เช่น www.squirrelmail.org
ตัวอย่าง Interface ของ SquirrelMail ตัวอย่าง Interface ของ SquirrelMail
www.openwebmail.org
ปฏิบัติ
ในขั้นตอนนี้ผู้อ่านเข้าใจทฤษฎีการทำงานของ mail server กันเรียบร้อยแล้ว ภาคต่อไปจะเป็นการติดตั้งและปรับแต่งระบบ mail server บน Linux ก่อนอื่นเราต้องมาดู software ที่เราต้องใช้กันก่อน 1. SMTP service 2. POP Service 3. E-mail client สำหรับโปรแกรมที่ไว้บริการ mail server นั้นได้มีอยู่หลายตัวด้วยกัน แต่ในการใช้งานในตัวอย่างนี้ จะใช้โปรแกรม Postfix ซึ่งเป็น mail server ที่มีประสิทธิภาพสูงมาก ตัวหนึ่ง ซึ่งสามารถหารายละเอียดเพิ่มเติมได้จาก http://www.postfix.org
ซึ่งโดยปรกติแล้ว หากเราติดตั้ง Linux แบบมาตรฐาน Package เหล่านี้จะถูกติดตั้งและ start เรียบร้อยแล้ว เราสามารถตรวจดูได้ด้วยการ telnet เข้าไปที่ port 25 หากมีการตอบรับ แสดงว่าได้มีการติดตั้งและใช้งาน SMTP แล้ว


หากแสงผลว่า Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused แสดงว่า ยังไม่ได้มีการติดตั้ง Postfix หรือ อาจจะติดตั้งแล้วแต่ไม่ได้เรียกการทำงานของ Postfix ขึ้นมา หากได้ทำการติดตั้ง Postfix ไปแล้ว ให้เข้าไปดูที่ /etc/init.d/ แล้วให้หา init scripts ที่ชื่อว่า postfix แล้ว start ขึ้นมา โดยใช้คำสั่ง
1. /etc/init.d/./postfix start

หากไม่พบ postfix init scripts ใน /etc/init.d แสดงว่ายังไม่ได้ทำการติดตั้ง postfix ให้ทำการ download และติดตั้ง โดยดาวโหลดได้จาก http://www.postfix.org
ขั้นตอนการ Download และติดตั้ง Postfix

1.เข้าไป download postfix จาก http://www.postfix.org/download

2.ทำการแตกไฟล์ ด้วยคำสั่ง #tar –xvzf postfix*.tar.gz

3. #cd postfix

4. #./configure //รัน Script configure เพื่อเตรียมการ compile

5. #make //คอมไฟล์ source code

6. #make install //ติดตั้งโปรแกรม

7. #/etc/init.d/./postfix start //start postfix daemonการปรับแต่งค่า

เราเริ่มต้น Postfix หลังจากติดตั้งแล้วนั้น จริงๆแล้วโปรแกรมก็สามารถทำงานได้แล้ว เพียงแต่ว่าโปรแกรมยังไม่สามารถทำงานได้ถูกต้องและเต็มประสิทธิภาพนัก Postfix จะได้แค่ส่งเมล์ออก จะไม่สามารถรับ mail จากภายนอกได้ ฉะนั้น เราจึงต้องทำการปรับแต่งค่า เพื่อให้โปรแกรมทำงานได้ตามที่เราต้องการ
โดยมาตรฐานแล้ว เมื่อเราติดตั้ง Postfix เสร็จเรียบร้อย ตัวโปรแกรมจะสร้าง directory ที่เอาไว้เก็บ configuration file ไว้ที่ /etc/postfix ซึ่งใน directory นี้จะมีไฟล์ที่สำคัญต่อระบบด้วยกันอยู่จำนวนหนึ่ง ไฟล์ที่สำคัญที่สุดได้แก่ไฟล์ main.cf ในไฟล์นี้จะประกอบไปด้วยค่าต่างๆที่ไว้สำหรับให้โปรแกรม postfix มาอ่าน เพื่อนำไปตั้งค่าให้กับโปรแกรม
หากเราไม่ทำการแก้ไขค่าใน main.cf เราจะได้แค่ส่งเมล์ออก แต่ไม่สามารถรับเมล์เข้าได้ หากเราต้องการให้ mail server ของเรารับ mail จากที่อื่นได้ เราต้องไปกำหนดชื่อ mail server ใน DNS ก่อน หากในระบบของเราไม่มี DNS server เราก็ต้องใช้หมายเลข ip ของเครื่องเมล์ Server แทนและจะต้องเข้าไปแก้ไขไฟล์ main.cf โดยเข้าไปแก้ไขบรรทัด inet_interfaces = localhost ให้เป็น inet_interfaces = all
โดยใช้คำสั่ง #vi /etc/postfix/main.cf จากนั้นก็ทำการแก้ไขข้อความตามปรกติ แล้วทำการ save และทำการ restart postfix ด้วยคำสั่ง #/etc/init.d/./postfix restart

เป็นอันเสร็จเรียบร้อย ตอนนี้ mail server ของเราก็พร้อมทำงานแล้ว
MTA (Mail Tranfer Agent)ตัวอื่นๆ
ในการจัดตั้ง Mail Server ขึ้นมานั้น ไม่ได้จำเป็นว่าจะต้องใช้ Postfix เพียงอย่างเดียวก็ได้ ในอดีต Sendmail, http://www.sendmail.org เป็น MTA ตัวหนึ่งที่ได้รับความนิยมอย่างสูง เรียกได้ว่าเป็นมาตรฐานของ Linux ก็ว่าได้ เพราะ Linux แทบทุก distro จะติดตั้ง Sendmail เป็น Package มาตรฐานมาให้อยู่แล้ว แต่ด้วยความยุ่งยากและต้องอาศํยความรู้ความเข้ใจอย่างสูงในการปรับแต่งค่าของ Sendmail ทำให้ได้มีการพัฒนา Postfix ขึ้นมา และในปัจจุบัน Postfix ก็ได้พัฒนาจนหลายๆ distro ได้ติดตั้งให้เป็น Package มาตรฐานไปแล้ว

ยังมี MTA อีกหลายตัวที่มีประสิทธิภาพสูงและยังใช้งานได้ฟรีอีกเช่น
Qmail http://www.qmail.org
Exim http://www.exim.org
Courier http://www.courier-mta.org/
เป็นต้น

Mail Server

Mail Server คือ เครื่องบริการรับ-ส่งจดหมายสำหรับสมาชิก บริการที่มีให้ใช้เช่น ส่งจดหมาย รับจดหมาย ส่ง attach file หรือการมี address book เป็นต้น ตัวอย่าง mail server ที่เป็นที่รู้จักทั่วไป เช่น hotmail.com หรือ thaimail.com เป็นต้น
Mail Server จะเป็นการผสมระหว่าง Application Server กับ File Server เพราะผู้ใช้บริการไม่เพียงส่งข้อความในตัว message เท่านั้น แต่เป็นการส่งไฟล์แนบไปด้วย Application Software ที่รู้จักกันคือ MS Exchange Server , Lotus Domino Server

วิธีติดตั้ง APACHE web server

อาปาเช่ (Apache Web Server) คือ เครื่องบริการเว็บ (Web Server) ที่พัฒนาโดยมูลนิธิอาปาเช่ (Apache Software Foundation) ทำให้เครื่องคอมพิวเตอร์เปิดบริการพอร์ท 80 (HTTP Port) ให้ผู้ร้องขอได้เชื่อมต่อผ่านโปรแกรมประเภทเว็บบราวเซอร์ โปรแกรมถูกพัฒนาให้ทำงานบนระบบปฏิบัติการที่หลากหลาย และเป็นแบบโอเพนท์ซอร์ท (Open Source) มักถูกติดตั้งมาพร้อมกับระบบปฏิบัติการลีนุกซ์ จากการไม่เสียค่าลิขสิทธิ์ในการใช้งาน มีการพัฒนาอย่างต่อเนื่อง จึงมีผู้ใช้งานมากที่สุดในปัจจุบัน


+ Download : mirror.in.th หรือ apache.org :: แนะนำ การใช้ apache ใน windows เวอร์ชั่นต่าง ๆ และ FAQs ส่วนการใช้ apache ใน Windows XP จะต้องติดตั้ง SP 1 และ SP 2 ก่อน :: เอกสารแนะนำ How to install php in apache หรือ Using Apache with Microsoft Windows :: เอกสารเกี่ยวกับ Apache รุ่น 1.3 และรุ่น 2.0 :: รายละเอียดจาก php.net เรื่อง php สำหรับ apache 2.0 :: แฟ้มที่มีสกุล .msi (Microsoft installer) ในห้อง WinMe ขึ้นไปไม่มีปัญหา แต่ถ้า Win98 ต้องหามาติดตั้งเพิ่ม InstMsi.exe 1.1

in WindowsXP with apache 2.0
เมื่อติดตั้ง apache 2.0 ใน WindowsXP ที่มุมล่างขวาของ Task bar จะมีภาพแสดง icon ดังภาพด้านล่างนี้
.
in Windows98 with apache 1.3
เมื่อติดตั้ง apache 1.3 จะต้องสั่ง start apache console เหมือนใน DOS mode และต้องไม่ close จอนี้จะครับ ให้เลือก Minimize แทน
.
ทดสอบเปิดเว็บ
หลังติดตั้งจะทำให้เครื่องเป็น Web Server สามารถทดสอบเปิด http://localhost หรือ http://127.0.0.1


ตัวอย่างการใช้บริการของ Apache ทำการ Lock Directory ด้วย .htaccess และ .htpasswd
1. สร้างแฟ้ม .htpasswd ด้วย htpasswd -b -d -c .htpasswd uhello psecret แล้วส่งเข้าห้อง c:\thaiabc
2. เพิ่มบรรทัดข้างล่างนี้ในแฟ้ม .htaccess ซึ่งอยู่ในห้องที่ต้องการ Lock
AuthUserFile c:\thaiabc\.htpasswd
AuthName "Secret directory is protected by User and Password : "
AuthType Basic
require valid-user
DirectoryIndex index.html index.htm index.shtml index.php Manual starting of Apache 2.0
C:\apache\apache2\bin\Apache.exe -k install
C:\apache\apache2\bin\Apache.exe -w -n "Apache2" -k start
explorer http://127.0.0.1
C:\apache\apache2\bin\ApacheMonitor.exe

โปรแกรมที่ทำงานเป็น web server เช่น

Apache เป็นโปรแกรมเว็บเซิร์ฟเวอร์ที่มีความสามารถสูงและเป็นที่นิยมใช้มากที่สุดในปัจจุบัน สามารถทำงานได้หลายระบบปฏิบัติการ เช่น ระบบ Unix, Linux, FreeBSD, Windows ดูรายละเอียดเพิ่มเติมได้ที่ www.apache.org

IIS (Internet Information Server) เป็นเว็บเซิร์ฟเวอร์ที่พัฒนาโดยบริษัทไมโครซอฟต์ ทำงานบนระบบปฏิบัติการ Windows NT 4.0, Windows 2000, Windows XP และ Windows Server 2003 ดูรายละเอียดเพิ่มเติมได้ที่ www.microsoft.com

Jakata Tomcat เป็นเว็บเซิร์ฟเวอร์ที่ใช้ทดสอบสริปต์ JSP(JavaCourseKasetsart Server Page)

หลักการทำงานของ Web Server

Apache webserver จะเป็นโปรแกรมที่รันเป็น Background process และคอยรับข้อมูลที่ port 80 คำว่า port ในที่นี้จะหมายถึง หมายเลขอ้างอิง ในการสื่อสารข้อมูลระหว่างโปรแกรมกับโปรแกรมใน protocol TCP/IP โดยที่ฝั่งที่ต้องการข้อมูล เช่นในกรณีนี้ก็จะเป็นโปรแกรม browser จะอ้างชื่อ URL (Uniform Resource Locator) เป็นลักษณะ http://www.thailinux.com โดย http:// จะบอกว่าเป็น Hypertext transfer protocol ซึ่งเป็นรูปแบบการรับ-ส่ง ข้อมูลแบบหนึ่ง โดยข้อมูลส่วนใหญ่ ก็จะเป็น text ที่อยู่ในรูปแบบของ Html (Hypertext markup language) และรูปภาพที่อยู่ใน Format ของ .gif หรือ .jpg

วันอาทิตย์ที่ 15 มีนาคม พ.ศ. 2552

Web Server

เว็บเซิร์ฟเวอร์ (Web Server) คือ เครื่องคอมพิวเตอร์ที่ทำหน้าที่เป็นเครื่องบริการเว็บแก่ผู้ร้องขอด้วยโปรแกรมประเภทเว็บบราวเซอร์ (Web Browser) ที่ร้องขอข้อมูลผ่านโปรโตคอลเฮชทีทีพี (HTTP = Hyper Text Transfer Protocol) เครื่องจะส่งข้อมูลให้ผู้ร้องขอในรูปของข้อความ ภาพ เสียง หรือสื่อผสม เครื่องบริการเว็บจะเปิดบริการพอร์ท 80 (HTTP Port) ให้ผู้ร้องขอได้เชื่อมต่อผ่านโปรแกรมประเภทเว็บบราวเซอร์ เช่น โปรแกรมอินเทอร์เน็ตเอ็กโพเลอร์ (Internet Explorer) หรือฟายฟร็อก (FireFox Web Browser) แล้วแจ้งชื่อที่ร้องขอในรูปของที่อยู่เว็บ (Web Address หรือ URL = Uniform Resource Locator) เช่น http://www.google.com หรือ http://www.thaiall.com เป็นต้น โปรแกรมที่นิยมนำใช้เป็นเครื่องบริการเว็บ ได้แก่ อาปาเช่ (Apache Web Server) และไมโครซอฟท์ไอไอเอส (Microsoft IIS = Internet Information Server) ส่วนบริการที่มักติดตั้งเพิ่มเพื่อทำให้เครื่องบริการทำงานได้ตรงกับความต้องการของผู้บริหารระบบ (Administrator) เช่น ตัวแปลภาษาสคริปต์ ระบบฐานข้อมูล ระบบจัดการผู้ใช้ เป็นต้น

Application Server

Application Server คือ เซิร์ฟเวอร์ที่รันโปรแกรมประยุกต์ได้ด้วย โดยการทำงานสอดคล้องกับไคลเอ็นต์ เช่น Mail Server (รัน MS Exchange Server) Proxy Server (รัน Proxy Server) หรือ Web Server (รัน Web Server Program เช่น Xitami , Apache )
ใช้ในการประมวลคือมันจะมาประมวลผลที่ Client ทำให้ลดภาระการประมวลผลที่ Server ลงได้ เหมาะกับงานที่ไม่ต้องใช้ประสิทธิภาพ Server สูงมากนัก
Application Server ที่มีประสิทธิภาพในปัจจุบันมีหลากหลาย ซึ่งมุ่งเน้นพัฒนาในแต่ละด้านต่างกันมี Application Server ที่ต้องเสียค่าใช้จ่าย

ในด้านของค่าลิขสิทธิ์ software หากต้องการนำมาติดตั้ง ใช้งาน Application Server บางชิ้นไม่สามารถทำงานได้ในหลากหลาย platform หลายชิ้นมีประสิทธิภาพในการทำงานไม่เพียงพอต่อความต้องการของผู้ใช้งาน

JBoss มีคุณสมบัติต่างๆที่น่าสนใจสำหรับนำมาใช้งานที่สามารถตอบสนองความต้องการได้อย่างมากมายไม่ว่าจะเป็นทางด้าน web service การออกแบบที่เป็น Enterprise มีกลไกการทำงานที่ไม่สลับซับซ้อนแต่ได้ประสิทธิภาพสูง มี service ต่างๆรองรับการใช้งาน รวมทั้งมีคุณสมบัติที่น่าสนใจอื่นๆ ทำให้ JBoss เป็น Application Server ที่น่านำมาศึกษาและทดลองใช้งาน

J2EE ย่อมาจากคําว่า Java 2 Enterprise Edition คือ กลุ่มของชุดคําสั่งภาษาจาวา ที่จําเป็นสําหรับการใช้ภาษาจาวาสร้างโปรแกรมระดับองค์กร

ซึ่งภาษาจาวาเป็นภาษาที่รวมเทคโนโลยีที่จำเป็นทั้งหมดสำหรับการเขียนโปรแกรมในระดับองค์กรเข้าไว้ในตัวมันเลยตั้งแต่ต้น ชุดคำสั่งที่อยู่ในชุดของ J2EE เรียกได้ว่า ครอบคลุมทุกสิ่งทุกอย่างที่โปรแกรมระดับองค์กรต้องการ ดังนั้นการเขียนโปรแกรมระดับองค์กรด้วย J2EE จึงไม่จำเป็นจ้องมีซอฟท์แวร์สนับสนุนใดๆอีก โปรแกรมทั้งโปรแกรม สามารถเขียนขึ้นมาด้วยภาษาจาวาล้วนๆ ชุดคําสั่งในกลุมของ J2EE ประกอบด้วยหลายชุดคําสั่ง ดังนี้

- Java Remote Method Invocation over the Internet Inter-ORB Protocol (RMI-IIOP) - Java Interface Definition Language (Java IDL)

- Java Naming and Directory Interface (JNDI)

- Java Database Connectivity (JDBC)

- Java Message Service (JMS)

- JavaMail

- Java Servlets

- Java Server Pages (JSPs)

- Java Transaction API (JTA) and Java Transaction Service (JTS)

- Enterprise Java Bean (EJB)

- Java API for XML Parsing (JAXP)

- Java Authentication and Authorization Service (JAAS)

- J2EE Connector Architecture (JCA)

คุณลักษณะของ J2EE (Java 2 Platform Enterprise Edition)

- รองรับการพัฒนา Applications แบบ Multitear

- มีโมดูลต่างๆที่ครบครันที่ไม่มีความซับซ้อน

- สนับสนุนการเชื่อมต่อฐานข้อมูลหลากหลายรูปแบบ(JDBC)

- สนับสนุน Corba, Security, EJB component, Servlet API

- รองรับการพัฒนา Applications ทางธุรกิจ รวมถึงเรื่องพนักงานในองค์กร การบริการคู่ค้าขององค์กรขนาดใหญ่

- รองรับการทำ Transaction จำนวนมากๆ
EJB ย่อมาจากคําว่า Enterprise JavaBeans เป็นชื่อเรียกของคอมโพแนนท์ของภาษาจาวา คือ
การสร้างโปรแกรมระดับองค์กรโดยอาศัยหน่วยของโปรแกรมเล็กๆ ซึ่งมี ความเป็นอิสระในตัวเอง ประกอบกันขึ้นมาเป็นโปรแกรมขนาดใหญ่ซึ่งทำงาน ที่ซับซ้อนขึ้นได้การแบ่งงานของโปรแกรมใหญ่ออกเป็นคอมโพเนนท์ทำให้โปรแกรมมีความสามารถในการขยายตัวเพื่อรองรับงานที่เพิ่มขึ้นได้อย่างมีประสิทธิภาพ ในขณะเดียวกันในแง่ของการพัฒนาก็ช่วยให้โปรแกรมเมอร์ทำงานร่วมกันได้ เป็นทีมได้ง่ายขึ้น และลดเวลาในการพัฒนาโปรแกรม เพราะคอมโพเนนท์ที่เขียนมาเพื่อโปรแกรมหนึ่งสามารถนำไปใช้กับโปรแกรมอื่นได้อีกในอนาคต ไม่ต้องเสียเวลาเขียนกันขึ้นมาใหม่อีก

จุดประสงค์ของ EJB ( Enterprise JavaBeans )

EJB เป็น Standard Component สำหรับการพัฒนา Distributed Object-Oriented Business Application ด้วย

Java Programming Language และ EJB สามารถทำงานร่วมกับ Component อื่น ๆ จากบริษัทผู้พัฒนา ( Vendors ) ที่แตกต่างกัน

EJB ง่ายต่อการพัฒนา Application โดยผู้พัฒนาไม่ต้องมีความรู้ด้าน Low-Level Transaction, State Management Details, Multi-threading,

Connection Pooling และ Low-Level API อื่น ๆ

EJB สนับสนุนปรัชญา The Write Once, Run Anywhere ของ Java Programming Language ในการทำงานบน Multiple Platforms โดยปราศจากการ Recompilation หรือแก้ไข Source Code EJB จะเป็นการ Deployment และ Runtime Aspects ในรูปแบบ Enterprise Application's Life Cycle EJB มีข้อกำหนดในการที่จะทำให้ Multiple Vendors สามารถพัฒนาและใช้ Components ที่ถูกพัฒนาขึ้น มาทำงานร่วมกันได้ ( Interoperate at runtime )

EJB จะสนับสนุนความสามารถเฉพาะ Server Platforms ที่มีอยู่ทั่วไป แต่ Vendors สามารถเพิ่มความสามารถพิเศษ ( Specialty ) ของบาง Server Product ลงไปใน EJB Architecture แต่ต้องยังคงความ Compatible ของ EJB ไว้

EJB จะสนับสนุนการทำงานระหว่า Enterprise Application ทั้งที่เป็น J2EE ( Java 2 Platform Enterprise Edition ) และ ที่ไม่เป็น Java Platform
Session Beans เหมาะกับการทำงานลักษณะ Processing หรือ Workflow ระบบที่ออกแบบให้ใช้งาน Session Beans มักจะถูกใช้งานกับระบบการทำงานแบบ standalone และไม่มีการใช้ข้อมูลร่วมกันระหว่างผู้ใช้บริการ Session Beans แบ่งเป็น 2 ชนิดย่อย คือ Stateful และ Stateless Stateful Session Bean ดูแลสถานะของ client เมื่อมีการร้องขอเกิดขึ้นจาก client Stateless Session Bean ไม่มีส่วนการดูแลสถานะ โดยปกติ Stateless Session Bean จะถูกเรียกใช้เมื่อระบบงานที่เราจัดทำขึ้นไม่มีความต้องการให้ container ดูแลสถานะ และผู้พัฒนาระบบงานคำนึงถึงความรวดเร็วในการทำงานมากกว่าการควบคุมสถานะ Entity Beans มักถูกใช้งานเมื่อ Business Component ต้องการเก็บข้อมูลในลักษณะถาวร และมีความต้องการใช้ข้อมูลร่วมกัน ระหว่างผู้ใช้ โดยปกติ Entity Bean สามารถแบ่งออกเป็น 2 ประเภท คือ BMP และ CMP โดยที่ BMP - Bean-Managed Persistence จะถูกใช้งานเมื่อผู้พัฒนาต้องจัดการเรื่องการจัดเก็บสถานะของข้อมูลแบบถาวรเอง CMP - Container-Managed Persistence จะถูกใช้งานในกรณีที่ผู้พัฒนาต้องการให้ container จัดการดูแลเรื่องการเก็บสถานะของข้อมูลให้ โดยที่ผู้พัฒนาเพียงทำการ กำหนดความสัมพันธ์ระหว่าง attribute ของ bean และส่วนที่จัดเก็บข้อมูลเท่านั้น
ตัวอย่าง Java Application Server
Sun Java System Application Server IBM WebSphere Application Server Borland Enterprise Server, AppServer Enhydra JBoss Application Server
เมื่อเราต้องการสร้างเครื่องมือที่จะมาจัดการ application ที่เป็น Java เราจำเป็นอย่างยิ่งที่จะต้องเลือก platform ที่ง่ายสำหรับผู้พัฒนา เพื่อสร้างและทดสอบ Java application เราจะสนใจที่จะนำเอา application server ที่มีขนาดเล็ก หรือ จะหลีกเลี่ยงการใช้ software ที่มีลิขสิทธิ์ ซึ่งมีราคาแพง ดังนั้น JBoss application- server จึงเป็นทางเลือกหนึ่งสำหรับที่เราจะนำมาศึกษา โดย JBoss application server มีการรวมสถาปัตยกรรมที่ยังมีความยืดหยุ่นสำหรับปัจจุบัน และรองรับ เทคโนโลยีในอนาคต ได้เป็นอย่างดี โดยที่เราไม่ต้องเสียค่าใช้จ่ายในด้าน license และรองรับเทคโนโลยีที่สูงกว่ารวมทั้งยังได้รับการสนับสนุนทางด้าน เทคนิคจากทีม ผู้พัฒนาที่เป็นแกนหลักของ JBoss ดังนั้น JBoss จึงเข้ามาเป็นทางเลือกที่ดีสำหรับการพัฒนาโปรแกรมขนาดกลาง (Middleware) อย่างรวดเร็ว

JBoss application server เป็นมาตรฐานทีเป็นพื้นฐานของ J2EE Platform ซึ่งเป็นอิสระในการใช้ ไม่ว่าจะเป็นผู้ใช้ทั่วไปหรือจะเป็น Independent - software vendor (ISV) ไม่คำนึงถึงขนาดของการ deploy JBoss application server กลายมาเป็น platform ที่ได้รับความนิยมมากสำหรับผู้พัฒนาและ ISV และเติบโตอย่างรวดเร็วในรูปแบบของ production deployments ด้วย

ลักษณะของ JBoss

1. Open source,no cost product licenses: JBoss เป็น open source ซึ่งไม่ต้องเสียค่าลิขสิทธิ์ เนื่องจากสามารถ download ได้ฟรีจาก web

2. Performance: JBoss อำนวยต่อการปรับปรุง และ การนำ J2EE Application server ไปใช้ให้เกิดประโยชน์

3. Customizable Footprint: JBoss มีอำนวยต่อการนำมาปรับปรุงใหม่ได้และ มีสถาปัตยกรรมที่ดีและยืดหยุ่นในการสร้าง application ซึ่งมี component model ที่จัดเตรียมไว้ให้ตามที่ต้องการ

4. Services-Oriented Architecture: JBoss มีการบริการสำหรับองค์กรที่แตกต่างออกไป รวมไปถึง Transaction Management, messaging, mail services, security, connection pooling Service ต่างๆเหล่านี้สามารถเพิ่มหรือนำออกไปได้ตามความต้องการ Service ทั้งหมดนี้มี package สำหรับจัดเก็บไว้อย่างเรียบร้อย โดยที่สามารถทำการสร้างและเพิ่ม service เข้าไปได้เอง

5. Enterprise-Class Services for any Java Object: JBoss Application Server สามารถใช้ Aspect-Oriented Programming (AOP) - model ในการส่งต่อไปยัง EJB คล้ายกับการส่ง function 6. Application-level features such as No compilation: ได้รับความนิยมมากจากผู้พัฒนาที่ใช้ภาษา Java ระดับสูง

7. Full security implementation: มีความปลอดภัยสูง ประกอบไปด้วยการผสมผสานกันของ JAAS

8. Full Standard support: JBoss Application Server สนับสนุน J2EE 1.4.x.

การติดตั้งโปรแกรม mySQL Database Server บน Linux

การติดตั้งโปรแกรม mySQL Database Server บน Linux

mySQL เป็น Database Server ที่เป็นที่นิยมบน Linux เนื่องจากมีขนาดเล็ก แต่สามารถรองรับงานทั้งขนาดเล็ก และขนาดกลางได้ดี การติดตั้งก็สามารถทำได้ง่าย และที่สำคัญ สามารถพัฒนาระบบติดต่อผู้ใช้ผ่านทาง WWW ได้โดยง่าย

ชุดโปรแกรม mySQL สามารถหาได้จาก homepage ของ บริษัทHughes

การติดตั้งโปรแกรม mySQLlogin เป็น root หรือว่า login เป็นผู้ใช้ปกติ แล้วใช้คำสั่ง su เพื่อเป็น rootเมื่อทำการ Download ชุดโปรแกรมได้แล้ว ให้นำไปไว้ที่ directory /usr/localแล้วทำการขยาย file ดังนี้

# mv msql-2.0.4.1.tar.gz /usr/local

# cd /usr/local

# gzip -d msql-2.0.4.1.tar.gz

# tar -xvf msql-2.0.4.1.tar

หมายเหตุ ถ้าเป็น mySQL Version อื่น ที่ไม่ใช่ 2.0.4.1 ก็ให้เปลี่ยนชื่อตาม เลข version นั้นเสร็จแล้ว ให้เข้าไปยัง directory msql-2.0.4.1 แล้วทำการ run โปรแกรม make ดังนี้

# cd msql-2.0.4.1

# make targetเสร็จแล้วโปรแกรม make จะทำการสร้าง Target directory ขึ้นมาเป็น directory ย่อยใน directory targets อีกทีหนึ่ง ให้เข้าไปยัง directory นั้น

# cd targets/Linux-2.0.34-i686หมายเหตุ ชื่อ Target directory นี้ อาจจะแตกต่างกันไปในแต่ละเครื่อง เช่นเครื่องที่ใช้ Linux kernel version 2.0.33 และเป็นเครื่อง pentium ก็จะมี Target directory ชื่อว่า Linux-2.0.33-i586 เป็นต้น จึงอาจจะทำการ cd เข้าไปยัง directory targets ก่อน แล้วทำการ list directory ดูก่อนว่ามี Target Directory ชื่อว่าอะไรเป็นต้น แล้วให้ทำการ run โปรแกรม setup และโปรแกรม make อีกครั้งดังนี้

# ./setup

...

# make all

...

# make install

เมื่อทำการ run โปรแกรม make พร้อมกับ option install แล้วโปรแกรม make จะทำการติดตั้งชุดโปรแกรม mySQL ไว้ที่ directory /usr/local/Hughes ซึ่งในขณะนี้ จะทำการลบ Directory /usr/local/msql-2.0.1.4 ออกไปเลยก็ได้ หรือจะเก็บไว้ก็ได้

การปรับแต่งโปรแกรม mySQL

ทำการ add user ชื่อว่า msql ให้มี home directory อยู่ที่ /usr/local/Hughes แล้ว ทำการ logout เข้าไปที่ directory /usr/local/Hughes แล้วทำการ copy file msql.acl.sample เป็น file msql.acl ดังนี้

# cp msql.acl.sample msql.acl

แล้วทำการแก้ไข file msql.conf โดยเปลี่ยนชื่อ Admin_User จาก root ให้เป็น msql เสียก่อนเสร็จแล้ว ลองทำการ run โปรแกรม mySQL เพื่อทำการทดสอบดังนี้

# cd bin

# ./msql2d

Mini SQL Version 2.0.4.1

Copyright (c) 1993-94 David J. Hughes

Copyright (c) 1995-98 Hughes Technologies Pty Ltd.

All rights reserved.

Loading configuration from

'/usr/local/Hughes/msql.conf'.

Server process reconfigured to accept 200 connections.

Server running as user 'msql'.

Server mode is Read/Write.

ถ้าขึ้นข้อความตามด้านบน แสดงว่าการทำงานเรียบร้อยดี ให้ทำการหยุดการทำงานโดยกดปุ่ม CTRL-C แล้วไปแก้ไข file /etc/rc.d/rc.local (กรณีนี้สำหรับ Slackware Distribution , สำหรับ Redhat Distribution ให้ไปแก้ไข file ใน directory /etc/rc.d/rc3.d/ ตามที่เหมาะสม)เพื่อให้เครื่องทำการ run โปรแกรม mSQL ทุกครั้งที่ทำการ boot เครื่อง โดยเพิ่มข้อความต่อไปนี้ ที่ท้าย file /etc/rc.d/rc.local

MSQL=/usr/local/Hughes

if [ -f $MSQL/bin/msql2d ]

then

echo "Start mSQL Database Server"

$MSQL/bin/msql2d 1>/dev/null 2>/dev/null &

fi

เสร็จแล้ว ให้ start โปรแกรม mSQL ขึ้นใหม่อีกครั้ง เพื่อใช้ในการสร้าง Database ต่อไป ดังนี้

# cd /usr/local/Hughes/bin

# msql2d &

การใช้คำสั่ง msqladmin เพื่อจัดการ Database คำสั่ง msqladmin จะใช้ในการควบคุมการทำงานของโปรแกรม mSQL โดยจะสามารถใช้ในการสร้าง/ลบ/ทำสำเนา/เปลี่ยนชื่อ หรือว่าใช้ในการตรวจสอบสถานะการทำงานต่าง ๆ โดยมีการทำงานที่สำคัญดังนี้

* การสร้าง Database ใหม่ ทำได้โดยใช้คำสั่ง

$ msqladmin create DatabaseName>

เมื่อ DatabaseName> คือชื่อ Database ที่ต้องการสร้าง

* การลบ Database ทำได้โดยใช้คำสั่ง

$ msqladmin drop DatabaseName>

เมื่อ DatabaseName> คือชื่อ Database ที่ต้องการลบ

* การทำสำเนา Database ทำได้โดยใช้คำสั่ง

$ msqladmin copy FromDB> ToDB>

เมื่อ FromDB> คือ ชื่อ Database ต้นฉบับ และ ToDB> คือชื่อ Database ที่ต้องการสร้างใหม่

* การเปลี่ยนชื่อ Database ทำได้โดยใช้คำสั่ง

$ msqladmin move FromDB> ToDB>

เมื่อ FromDB> คือชื่อ Database เดิม และ ToDB> คือชื่อใหม่ที่ต้องการเปลี่ยน

* การตรวจสอบสถานะการทำงาน ทำได้โดยใช้คำสั่ง

$ msqladmin stats

นอกจากนั้นยังมีคำสั่งอื่น ๆ อีกเช่น reload ใช้เมื่อต้องการ reload system ใหม่ shutdown ใช้เมื่อต้องการหยุดการทำงาน เป็นต้น

การใช้คำสั่ง msql เพื่อติดต่อกับโปรแกรม mSQL คำสั่ง msql เป็นคำสั่งเพื่อใช้ในการติดต่อกับโปรแกรม mSQL คำสั่งนี้จะอยู่ใน directory /usr/local/Hughes/bin โดยจะต้องระบุว่าต้องการติดต่อเพื่อจัดการกับ Database ตัวไหน เช่น

$ msqladmin create TestDB

Database "TestDB" created.

$ msql TestDB

Welcome to the miniSQL monitor. Type \h for help.

mSQL >

จะเห็นว่า prompt รับคำสั่งจะเปลี่ยนเป็น mSQL> เพื่อบอกว่า โปรแกรม mSQLกำลังรอรับคำสั่งอยู่ สำหรับคำสั่งที่จะใช้ ในการสั่งโปรแกรม mSQL นั้นจะอยู่ในรูปของ SQL (Structural Query Language)ซึ่งสามารถศึกษาโครงสร้างของคำสั่งได้ที่ homepage ของบริษัท Hughe ที่หน้า Language Specification<http://www.hughes.com.au/library/msql2/manual/spec.htm>;
เช่น เมื่อต้องการสร้าง Table เพื่อเก็บข้อมูลหมายเลขโทรศัพท์ ที่ประกอบไปด้วย field 4 field ดังนี้คือชื่อ ชนิด ขนาด

idx int -

name character 40

email character 40

phone character 40 ก็สั่งดังนี้

mSQL > CREATE TABLE phone (

-> idx int not null,

-> name char(40) not null,

-> email char(40) not null,

-> phone char(40))\g

Query OK. 1 row(s) modified or retrieved.

mSQL >

จากตัวอย่างจะเห็นว่า เมื่อเราพิมพ์บรรทัดแรกเสร็จ แล้วกด Enter mSQL ยังไม่คืน prompt แต่จะขึ้น prompt ใหม่ เป็น -> เพื่อบอกให้รู้ว่า คำสั่งยังไม่จบ และเมื่อเราพิมพ์คำสั่งจบแล้ว ก็ให้พิมพ์ \g ต่อ เพื่อบอกว่า พิมพ์ เสร็จแล้ว ถ้าไม่มี Error โปรแกรม mSQL ก็จะแจ้งว่า Query OK แล้ว เมื่อต้องการป้อนข้อมูลเข้าไป ก็สามารถทำได้ดังนี้

mSQL > INSERT INTO phone (

-> idx, name, email, phone

-> ) VALUES (

-> 1, 'Pruet Boonma', 'pruet@ds90.intanon.nectec.or.th', '+66-53-944140 ext 206')\g

Query OK. 1 row(s) modified or retrieved.

mSQL >

และเมื่อต้องการแสดงข้อมูลใน Table นั้น ก็ทำได้โดย

mSQL > SELECT * FROM phone\g

Query OK. 1 row(s) modified orretrieved.

+-----+--------------+---------------------------------+-------------------- idx name email phonee

+-----+--------------+---------------------------------+----------------------+

1 Pruet Boonma pruet@ds90.intanon.nectec.or.th +66-53-944140 ext 206

+-----+--------------+---------------------------------+----------------------+ mSQL >

และเมื่อต้องการจบการทำงานของ msql ก็ใช้คำสั่ง \q ดังตัวอย่าง

mSQL > \q

Bye!

$