บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา VLAN (Virtual Local Area Network) เป็นเทคโนโลยีที่เข้ามาช่วยจัดการระบบเครือข่ายโดย ที่จะจำลองสร้างเครือข่าย LAN โดยไม่ขึ้นอยู่กับการเชื่อมต่อทางกายภาพ โดยที่ผู้ดูแลระบบ สามารถสร้างกลุ่มทำงานซึ่งสามารถติดต่อสื่อสารกันภายในกลุ่มอย่างอิสระ โดยกลุ่มผู้ใช้งานจะถูก จำกัดสิทธิให้ติดต่อสื่อสารกันได้เฉพาะที่อยู่ในกลุ่ม VLAN เดียวกัน ซึ่งถือเป็นการรักษาความภัย ของข้อมูลระหว่างแผนกหรือส่วนงานภายในองค์กรบริษัทหรือหน่วยงานได้ โดยที่ VLAN ยัง สามารถช่วยลดความคับคั่งของข้อมูลภายในระบบเครือข่ายคอมพิวเตอร์ที่เกิดจากการ Broadcast เพราะว่า VLAN จะทำการแยก Collision Domain โดยที่จะทำการ Broadcast เฉพาะภายใน VLAN เดียวกัน การกำหนด VLAN ในเครือข่ายสามารถทำได้บนอุปกรณ์ Switch โดยการกำหนด VLAN มีหลายวิธีขึ้นอยู่กับการเลือกใช้งานในแต่ละเครือข่าย เนื่องจากความสามารถของ VLAN ที่กล่าวมาข้างต้นเป็นประโยชน์ในการจัดการระบบ เครือข่ายแต่ต้องใช้ Switch ที่มีความสามารถนี้ซึ่งราคาแพงมาใช้งานและมีขั้นตอนซับซ้อนในการ ใช้ คำสั่งในการกำหนด VLAN ในการสารนิพนธ์นี้จึงมุ่งเน้นในการพัฒนาและออกแบบซอฟต์แวร์ โดยการนำเครื่องคอมพิวเตอร์ที่ติดตั้งระบบปฏิบัติการลินุกซ์มาประยุกต์ให้สามารถทำงานตาม คุณสมบัติของ VLAN ใน Switch ได้โดยการเชื่อมต่อจากการ์ดอีเทอร์เนตเข้ากับเครื่องคอมพิวเตอร์ และที่ง่ายต่อการใช้งานโดยที่โปรแกรมจะทำหน้าที่ในการช่วยที่เขียน Bourne Shell Script เพื่อ สั่งงานให้ระบบปฏิบัติการลินุกซ์จำลองคุณสมบัติของ VLAN ในระบบเครือข่าย 1.2 วัตถุประสงค์ เพื่อพัฒนาและออกแบบซอฟต์แวร์สำหรับจำลองการทำงานของ VLAN บนระบบปฏิบัติการ ลินุกซ์ 2 1.3 ขอบเขตของการวิจัย 1.3.1 ซอฟต์แวร์ที่พัฒนาขึ้นจะใช้ IP Address ในการแบ่ง VLAN ในระบบเครือข่าย 1.3.2 ซอฟต์แวร์ที่พัฒนาขึ้นออกแบบให้ทำงานอยู่ในระบบเครือข่าย Ethernet ขนาดเล็ก 1.3.3 ซอฟต์แวร์ได้พัฒนาและติดตั้งลงในระบบปฏิบัติการลินุกซ์ 1.4 วิธีการวิจัย 1.4.1 ขั้นศึกษา 1.4.1.1 ศึกษาระบบการทำงานของ VLAN ใน Switch 1.4.1.2 ศึกษาและเรียนรู้เกี่ยวกับการทำงานของระบบปฏิบัติการลินุกซ์ 1.4.1.3 ศึกษาการส่งข้อมูลในระบบเครือข่าย 1.4.1.4 ศึกษาภาษา Bourne Shell Script และ ภาษา PHP 1.4.2 ทำการติดตั้งระบบปฏิบัติการลินุกซ์และทำการปรับแต่งค่าเพื่อเชื่อมต่อระบบ LAN 1.4.3 ออกแบบโปรแกรมโดย 1.4.3.1 ออกแบบการรับข้อมูลจาก Network Interface Card เพื่ออ่าน packet ข้อมูล 1.4.3.2 ออกแบบการอ่าน packet ในมาตรฐานของ VLAN ให้เป็นแบบ Ethernet 1.4.3.3 การตรวจสอบ packet เพื่อแยกเครือข่ายในแต่ละ VLAN 1.4.4 พัฒนาโปรแกรม 1.4.5 ทดสอบ 1.4.5.1 ทดสอบโดยนำโปรแกรมที่พัฒนาทำงานในระบบเครือข่ายขนาดเล็กที่จัดทำขึ้น 1.4.5.2 ทดสอบเครือข่ายที่จัดทำขึ้นโดยทำการติดต่อผ่าน Switch ที่ใช้ในระบบ เครือข่ายจริง 1.4.6 ประเมินระบบโดยผู้เชี่ยวชาญ 1.4.7 สรุปผล 1.4.8 จัดทำเอกสาร 3 1.5 อุปกรณ์ที่ใช้ในงานวิจัย เครื่องมือที่ใช้ในการทำสารนิพนธ์จำแนกออกได้ดังนี้ 1.5.1 คอมพิวเตอร์ฮาร์ดแวร์ (Hardware) ที่ใช้ในการพัฒนา มีดังนี้ 1.5.1.1 เครื่องคอมพิวเตอร์ ความเร็ว CPU 300 MHz RAM 64 MB VGA 8 MBขึ้น ไปจำนวน 1 เครื่องพร้อม Network Interface Card 3 แผง (ใช้ติดตั้งระบบปฏิบัติการลินุกซ์) 1.5.1.2 เครื่องคอมพิวเตอร์ ความเร็ว CPU 400 MHz RAM 128 MB VGA 16 MB ขึ้นไปพร้อม Network Interface Card จำนวน 3 เครื่อง 1.5.1.3 อุปกรณ์ Switch 1.5.1.4 สายสัญญาณใช้ในการเชื่อมต่อเครือข่าย 1.5.2 ซอฟต์แวร์ (Software) ที่ใช้ในการวิจัย มีดังนี้ 1.5.2.1 ภาษา PHP และ HTML 1.5.2.2 ภาษา Bourne Shell Script 1.5.2.3 Apache Web Server 1.5.2.4 Macromedia Dream weaver 1.5.2.5 ระบบปฏิบัติการลินุกซ์ 1.6 ระยะเวลาในการดำเนินงาน ระยะเวลา เดือนมิถุนายน 2547 – เดือนกันยายน 2547 มิถุนายน กรกฎาคม สิงหาคม กันยายน 1. ขั้นศึกษา 1.1 ศึกษาระบบการทำงานของ VLAN ใน Switch 1.2 ศึกษาและเรียนรู้เกี่ยวกับการทำงานของระบบปฏิบัติการ ลินุกซ์ 1.3 ศึกษาการส่งข้อมูลในระบบเครือข่าย 1.4 ศึกษาภาษา Bourne Shell Script 1.5 ศึกษาภาษา PHP 2. ทำการติดตั้งระบบปฏิบัติการลินุกซ์และทำการปรับแต่ง ค่าเพื่อเชื่อมต่อระบบ LAN 4 1.6 ระยะเวลาในการดำเนินงาน (ต่อ) มิถุนายน กรกฎาคม สิงหาคม กันยายน 3. ออกแบบโปรแกรม 3.1 ออกแบบการรับข้อมูลจาก Network Interface Card เพื่อ อ่าน packet ข้อมูล 3.2 ออกแบบการอ่าน packet มาตรฐานของ VLAN ให้เป็น แบบ Ethernet 3.3 การตรวจสอบ packet เพื่อแยกเครือข่ายในแต่ละ VLAN 4. พัฒนาโปรแกรม 5. ทดสอบโดยการทดลองใช้งาน 5.1 ทดสอบโดยนำโปรแกรมที่พัฒนามาทำงานระบบ เครือข่ายขนาดเล็กที่จัดทำขึ้น 5.2 ทดสอบเครือข่ายที่จัดทำขึ้นโดยทำการติดต่อผ่าน Switch ที่ใช้ในระบบเครือข่ายจริง 6. ประเมินระบบโดยผู้เชี่ยวชาญ 7. สรุปผล 8. จัดทำเอกสาร 1.7 ประโยชน์ของผลการวิจัย 1.7.1 นำมาใช้งานทดแทน และช่วยลดค่าใช้จ่ายในการซื้ออุปกรณ์ Switch ที่มีราคาแพง 1.7.2 เพื่อเป็นจุดเริ่มต้นในการพัฒนาโปรแกรมมาใช้งานแทนอุปกรณ์ Switch บทที่ 2 ทฤษฎีที่เกี่ยวข้อง ในการพัฒนาโปรแกรมจำลอง VLAN บนระบบปฏิบัติการลินุกซ์ ผู้จัดทำได้มีการศึกษา ทฤษฎีที่เกี่ยวข้องดังนี้ 2.1 VLAN (Virtual Local Area Network) ระบบเครือข่ายขนาดใหญ่ที่มีจำนวนคอมพิวเตอร์เป็นจำนวนมากในระบบเครือข่ายส่วน ใหญ่จะมีการแบ่งเครือข่ายออกเป็น Subnetwork ย่อยๆเพื่อง่ายต่อการดูแลและควบคุมระบบให้ สามารถทำงานได้อย่างมีประสิทธิภาพแต่เมื่อมีคอมพิวเตอร์มากขึ้นอุปกรณ์ที่นำมาช่วยในการแบ่ง ออกเป็นเครือข่ายย่อยได้แก่ Hub แต่การแบ่งก็ยังไม่สามารถช่วยลดปริมาณความหนาแน่นของ ข้อมูลที่เดินทางอยู่ในเครือข่ายได้เพราะ Hub จะทำการ Broadcast ข้อมูลไปยังทุกๆโหนดที่อยู่ใน เครือข่าย นั้น Router Hub Hub Hub Subnetwo rk 1 Subnetwo rk 2 Subnetwo rk 3 ภาพที่ 2-1 การจัดการเครือข่ายโดยใช้ Hub และ Router โดยที่ไม่ได้กำหนด VLAN ต่อมาได้มีการพัฒนาฟังก์ชันการทำงานใหม่ของระบบเครือข่ายขึ้นมา ซึ่งมีชื่อเรียกว่า ฟังก์ชันเครือข่ายเสมือน( VLAN : Virtual LAN ) หรือที่นิยมเรียกสั้น ๆ ว่า " VLAN" ฟังก์ชัน 6 VLAN เปรียบเสมือนการผสมผสานระหว่าง ฟังก์ชันบริดจ์จิงและ ฟังก์ชันเราท์ติงเข้าด้วยกัน และทำให้สามารถที่จะ รองรับการใช้งาน ของผู้ใช้ระบบเครือข่ายคอมพิวเตอร์ได้มากขึ้น เป็นผลให้ Switch ที่มีฟังก์ชันนี้ สามารถที่จะทำงานทดแทนเราท์เตอร์ได้เกือบสมบูรณ์ ในปัจจุบัน VLAN เป็นเทคโนโลยีที่ใช้ในการจำลองสร้างเครือข่าย LAN แต่ไม่ขึ้นอยู่กับการต่อทางกายภาพเช่น Switch หนึ่งตัวสามารถใช้จำลองเครือข่าย LAN ได้ห้าเครือข่าย หรือสามารถใช้ Switch สามตัว จำลองเครือข่าย LAN เพียงหนึ่งเครือข่าย เป็นการจัดแยกการเชื่อมต่อเครือข่ายในรูปแบบที่เรียกว่า โดเมนส์ ซึ่งจุดประสงค์ของการแยกออกเป็นโดเมนส์นี้ ก็เพื่อให้เครื่องคอมพิวเตอร์ที่อยู่ต่าง โดเมนส์ไม่สามารถสื่อสารกันได้ ทั้งนี้เพื่อความปลอดภัยของเครือข่าย รวมทั้งสามารถเพิ่ม ประสิทธิภาพการทำงานของเครือข่ายอีกด้วย ในการสร้าง VLAN โดยใช้อุปกรณ์เครือข่ายหลายตัว โดยในหนึ่งเครือข่ายอาจประกอบด้วย Switch หลาย ๆ ตัว และใน Switch หนึ่งตัวอาจประกอบด้วย VLAN หลาย ๆ โดเมนส์ หรือหลาย VLAN ก็เป็นได้ การแบ่ง VLAN จะทำให้เครื่องคอมพิวเตอร์ แม้จะเชื่อมต่อกันใน Switch เดียวกัน แต่อยู่ต่าง VLAN กัน ไม่สามารถสื่อสารกันได้ รวมทั้งไม่ สามารถมองเห็นกันได้และที่แน่นอน หนึ่ง VLAN สามารถ Broadcast ข้อมูลไปตาม Switch ต่าง ๆ ได้ เช่นกัน ภายใต้ Switch ของ Cisco 1 ตัว สามารถติดตั้ง VLAN ได้มากถึง 64 VLAN และทั้ง ระบบสามารถมี VLAN ได้มากถึง 1024 VLANโดยจะมีพอร์ตที่ทำหน้าที่เชื่อมต่อระหว่างอุปกรณ์ เข้ากับ Switch แต่ละตัวเรียก Trunk port ซึ่งเสมือนมีท่อเชื่อม หรือ Trunk เป็นตัวเชื่อมด้วย เนื่องจาก VLAN เป็น LAN แบบจำลอง ถึงแม้ว่าจะต่อทางกายภาพอยู่บนอุปกรณ์เครือข่ายตัว เดียวกัน แต่การติดต่อกันนั้นจำเป็นต้องใช้อุปกรณ์ที่มีความสามารถในการค้นหาเส้นทาง เช่น เรา เตอร์ หรือ Switch Layer 3 Router Switch VLAN 1 VLAN 2 VLAN 3 ภาพที่ 2-2 การจัดการเครือข่ายโดยใช้ Switch และ Router โดยที่ไม่ได้กำหนด VLAN 7 ลักษณะพิเศษของ VLAN ทั่วๆ ไปคือ 1. VLAN แต่ละเครือข่ายที่ติดต่อกันนั้น จะมีลักษณะเหมือนกับต่อแยกกันด้วยบริดจ์ 2. VLAN สามารถต่อข้ามสวิตช์หลายตัวได้ 3. ท่อเชื่อม (Trunk) ต่างๆ จะรองรับทราฟฟิกที่คับคั่งของแต่ละ VLAN ได้ 2.1.1 ชนิดของ VLAN 2.1.1.1 Layer 1 VLAN : Membership by portsหรือ Port-Based VLAN เป็นการจัดแบ่ง VLAN โดยอาศัยพอร์ตและหมายเลขพอร์ตเป็นหลัก โดยเพียง แต่ กำหนดว่า ในหนึ่ง Switches Hub มีกี่ VLAN มีชื่ออะไรบ้าง และต้องการให้พอร์ตใด หมายเลขใด เป็นสมาชิกของ VLAN ใดบ้าง ภาพที่ 2-3 แสดงลักษณะการแบ่ง VLAN โดยอาศัยหมายเลขพอร์ตเป็นหลัก จากพอร์ตที่ 3 แสดงให้เห็นว่า VLAN 1 ประกอบด้วย เครื่องคอมพิวเตอร์รวมทั้ง เครื่องเซิร์ฟเวอร์ที่เชื่อมต่อกับพอร์ตหมายเลข 1-4 และ VLAN 2 ประกอบด้วย คอมพิวเตอร์ ที่ เชื่อมต่อกับพอร์ตหมายเลข 9-12 ส่วน VLAN 3 ประกอบด้วยคอมพิวเตอร์ที่เชื่อมต่อกับพอร์ต หมายเลข 5-8 เป็นต้น ขั้นตอนในการจัดตั้ง Port-Based VLAN สามารถกระทำได้โดยง่าย โดยมี ขั้นตอนคร่าว ๆ ดังนี้ 1. กำหนด VTP Domain ให้เรียบร้อย (สำหรับสวิตซ์ของ Cisco) 2. กำหนดชื่อของ VLAN รวมทั้งเลขหมายของ VLAN 3. กำหนดหมายเลขพอร์ตให้กับ VLAN แต่ละชุดที่ถูกสร้างขึ้น 8 ข้อเสียของ Port-Based VLAN ได้แก่การที่ สามารถเปลี่ยนแปลงได้ง่าย เนื่องจากการใช้งาน สามารถเปลี่ยนแปลงค่ากำหนดของ VLAN ได้ ก็เพียงแต่ย้ายสายเชื่อมต่อสัญญาณจากหมายเลข พอร์ตหนึ่งไปยังพอร์ตอื่น ๆ ได้ง่าย ดังนั้นการโยกย้าย VLAN ก็เพียงแต่ย้ายสายสายเชื่อมต่อ สัญญาณเท่านั้น 2.1.1.2 Layer 2 VLAN : Membership by MAC Address หรือ MAC Address-Based VLAN เป็นการจัดตั้ง VLAN ที่อาศัย MAC Address เป็นหลัก ซึ่งแอดเดรสนี้เป็น แอดเดรส ที่มาจาก Network Interface Card ของเครื่องคอมพิวเตอร์แต่ละเครื่อง การแบ่ง VLAN ด้วยการ อาศัย MAC Address นี้ง่ายต่อการกำหนดมาก เนื่องจากไม่ต้องกำหนดเลขหมายของพอร์ต ไม่ต้อง สนใจว่า เครื่องคอมพิวเตอร์ในเครือข่ายจะติดตั้งอยู่บนพอร์ตหมายเลขใด และไม่ต้องกังวลว่าใน การที่จะมีการย้ายเพื่อเปลี่ยน VLAN เนื่องจาก ไม่ว่าจะย้ายไปอยู่ที่ใด บนสวิตซ์ตัวใด ตราบใดที่ กำหนด MAC Address ประจำ VLAN แล้ว จะเปลี่ยนแปลง VLAN เองได้ก็ต่อเมื่อเปลี่ยน Network Interface Card ภาพที่ 2-4 แสดงลักษณะการเชื่อมต่อ VLAN แบบ MAC Address-Based ข้อจำกัดของ MAC-Based VLAN 1. พอร์ตที่จะเข้าร่วมใช้งานเป็น MAC-Based VLAN นั้นจะต้องไม่เป็น Static VLANหมายความว่า จะต้องไม่มีการกำหนดหมายเลขพอร์ตที่ตายตัวให้กับ VLAN ต่าง ๆ 9 2. MAC Based VLAN ถูกออกแบบมาให้สามารถสนับสนุน 1 ไคลเอนต์ต่อ หนึ่งพอร์ต (ทางกายภาพสวิตซ์บางรุ่น ) ขณะที่บางสวิตซ์สามารถสนับสนุนได้หลายยูสเซอร์ต่อ 1 พอร์ต 2.1.1.3 Layer 2 VLAN : Membership by Protocol types หรือ Protocol-Based VLAN รูปแบบของ VLAN แบบนี้ จะช่วยให้สามารถจัดสร้าง VLAN ได้อย่างง่ายดาย เนื่องจากว่า การกำหนด VLAN อาศัยโปรโตคอลการทำงานในระดับเน็ตเวิร์กซึ่งได้แก่ IP IPX หรือ AppleTalk Protocol-Based VLAN ถูกนำมาใช้บ่อยในสถานการณ์ที่เครือข่ายประกอบด้วยหลาย Segment หรือติดตั้ง Switchหลาย ๆ ตัว รวมทั้งเครื่องคอมพิวเตอร์ต่างๆ มีการใช้โปรโตคอลที่ แตกต่างกันรวมทั้งเครื่องคอมพิวเตอร์เครื่องหนึ่งอาจติดตั้งใช้งานหลายโปรโตคอล เช่น มีการใช้ งาน IP กับ NetBIOS ในเครื่องเดียวกัน ภาพที่ 2-5 แสดงลักษณะการจัดแบ่ง VLAN แบบ Protocol-Based ข้อดีของการใช้ Protocol-BasedVLAN ได้แก่ความยืดหยุ่น เนื่องจากสามารถกำหนดว่าจะให้คอมพิวเตอร์เครื่องใดเป็นสมาชิกของ VLAN ใด ก็แล้วแต่ว่ามีการเรียกใช้โปรโตคอลอะไร การใช้ VLAN แบบนี้มีประโยชน์มาก เนื่อง จากเครื่องคอมพิวเตอร์ หรือเครื่องเซิร์ฟเวอร์สามารถติดตั้งไว้ที่ใด หรือ Switch ตัวใดก็ได้ ตราบ ใดที่ยังเชื่อมต่อกันอยู่ ผู้ที่ใช้โปรโตคอลเดียวกัน จะสามารถสื่อสารถึงกันได้ 10 2.1.1.4 Layer 3 VLAN : Membership by IP subnet Address หรือ Subnet-Based VLAN Subnet-Based VLAN บางครั้งถูกเรียกว่า Layer 3 Based VLAN เป็น VLAN ที่ถูก สร้างขึ้นโดยอาศัยข้อมูลข่าวสารในระดับ Network Layer โดยสวิตซ์จะตรวจสอบข้อมูล IP Address ที่ Header ของ packet ปกติ IP Address หรือ Subnet-based VLAN จะถูกติดตั้งบน Switch แบบ Layer 3 เท่านั้น ขณะที่ชนิดของ VLAN ที่ได้กล่าวมาก่อนหน้านี้ทำงานบน Layer-2 Switches ภาพที่ 2-6 แสดงการใช้ Layer 3 Switches เพื่อสร้าง VLAN จำนวน 3 ชุดขึ้น จะเห็นว่ามีการแบ่ง VLAN ออกเป็นส่วน ๆ โดยใช้ เลขหมาย IP Address ที่อยู่ต่างเครือข่ายกัน มากำหนด VLAN ที่ ต่างกันขึ้น ข้อดีของการจัด VLAN แบบนี้ ได้แก่ 1. ความยืดหยุ่น เนื่องจากสามารถเปลี่ยนแปลง VLAN โดยการเปลี่ยน IP เท่านั้น การใช้งานสามารถโยกย้ายเครื่องออกจากพอร์ต ได้โดยไม่ต้องกำหนด IP Address ของ เครือข่ายกันใหม่ให้กับคอมพิวเตอร์แต่ละเครื่อง เหมาะสำหรับเครือข่ายที่ใช้โปรโตคอล TCP/IP เป็นหลัก 2. ให้การสนับสนุน Routing โดยสนับสนุนการเชื่อมต่อระหว่าง VLAN ที่ ต่างกันได้ 3. การจัด คอนฟิกของ VLAN แบบนี้ สามารถเกิดขึ้นได้โดยอัตโนมัติ ดังนั้น ค่าใช้จ่ายในการที่จะดูแลการทำงานของ VLAN ประเภทนี้ จะถูกกว่า MAC Address-Based มาก ภาพที่ 2-6 แสดงการจัดตั้ง VLAN แบบ IP Subnet-Based ข้อเสียของ IP หรือ Subnet-Based VLAN ข้อเสียมีเพียงประการเดียว ได้แก่ การจัดตั้ง IP Address ที่อาจเกิดความสับสน รวมทั้งปัญหา ของสวิตซ์บางรุ่นที่อาจสนับสนุนหลาย IP Address บนพอร์ตเดียวกัน 11 2.1.1.5 Higher Layer VLAN's หรือ Application-Based VLAN สามารถติดตั้ง VLAN โดยอาศัยลักษณะหรือชนิดของ Application ได้อีกด้วย แต่จะมี Switch ที่ให้การสนับสนุน การทำงานในลักษณะนี้ไม่ค่อยจะได้เห็นกันบ่อยนัก อีกทั้งมีราคาแพง มาก จุดประสงค์ของการแยก VLAN โดยอาศัย Application นี้ เป็นการเอื้อประโยชน์ให้กับ Application แต่ละตัวที่สามารถใช้แบนด์วิดธ์ได้อย่างเต็มประสิทธิภาพ อีกทั้งสามารถแยกประเภท ของงานออกได้อย่างชัดเจน Application-Based VLAN จึงมีประโยชน์สำหรับหน่วยงานที่ต้องใช้ งานที่จำเพาะเจาะจงเฉพาะผู้ใช้กลุ่มต่าง ๆ ภาพที่ 2-7 แสดงลักษณะของ VLAN ที่อาศัย Application ที่ต่างกันเป็นหลัก 2.1.2 มาตรฐานของ IEEE 802.1Q มาตรฐาน IEEE 802.1Q นั้นเป็นมาตรฐานในการนำข้อมูลของ VLAN membership ใส่เข้า ไปใน Ethernet Frame หรือที่เรียกว่า การ Tagging และโปรโตคอล 802.1Q นี้ถูกพัฒนาเพื่อ แก้ปัญหาเรื่องการบริหารจัดการด้านเครือข่ายที่เพิ่มขึ้น เช่น การกระจายเครือข่ายใหญ่ๆ ให้เป็น ส่วนย่อยๆ ( Segment ) ทำให้ไม่สูญเสียแบนวิธให้กับการ broadcast และ multicast มากเกินไป และยังเป็นการรักษาความปลอดภัยระหว่างส่วนย่อยต่างๆภายในเครือข่ายให้สูงขึ้นอีกด้วยการต่อ เติมเฟรม (tagging Frame) ด้วยมาตรฐาน 802.1Q นั้นจะทำในระดับ Data-Link layer และการทำ VLAN Tagging นั้นจะเป็นการเปลี่ยนรูปแบบของ Ethernet Frame มาตรฐาน 802.3 ให้เป็นรูปแบบ ใหม่ที่เป็นมาตรฐาน 802.3 ac ซึ่งมีไดอะแกรมของเฟรมมาตรฐาน 802.3 ดังภาพที่ 2-8 และ ไดอะแกรมของมาตรฐาน 802.3 ac ดังภาพที่ 2-9 12 ภาพที่ 2-8 แสดงรูปแบบของเฟรม 802.3 ก่อนที่จะทำ VLAN Tagging ภาพที่ 2-9 แสดงรูปแบบของเฟรม 802.3 ac ที่มีการ tagging 802.1Q แล้ว ตารางที่ 2-1 ตารางของคำอธิบายส่วนต่างๆ ของมาตรฐาน 802.3 ac Label Field Name Size Description PRE Preamble 7 bytes Used to synchronize traffic between nodes SF Start Frame Delimiter 1 bytes Marks the beginning of the header DA Destination Address 6 bytes The MAC address of the next/final hop SA Source Address 6 bytes The MAC address of the source TCI Tag Control Info 2 bytes When set to “8100” indicates this frame uses 802.1q and Q tags P Priority 3 bits Indicates 802.1q priority level 0-7 C Canonical Indicator 1 bit Indicates if the MAC address are in caninical Format Ethernet uses “0” VLAN VLAN Identifier(VID) 12 bits Indicates which VLAN this frame belong to (0-4095) T/L Type/Length Field 2 bytes Ethernet II “type” or 802.3 “length” information Payload Payload . 1500bytes User data or higher layer protocol information FSC Frame Check Sequence 4 bytes Error checking on the frame’s content-also know as “CRC” (Cyclical Redundancy Check) PRE SF DA SA T/L Payload FCS PRE SF DA SA T C I P C V L A N T/L Payload FCS 802.1Q 4 bytes 13 2.1.3 VLAN Tagging ของ Cisco การทำ Frame Tagging ตามมาตรฐาน 802.1Q ที่ได้กล่าวมาข้างต้นซึ่งเป็นมาตรฐานที่ใช้งาน ทั่วไป กับ Switch ยี่ห้ออื่นๆ รวมทั้งใช้ได้กับบางรุ่นของ Cisco อีกด้วย ประโยชน์ของการใช้ Frame Tagging นี้ ก็เพื่อให้สามารถสื่อสารกันระหว่าง VLAN หมายเลขเดียวกัน แต่อยู่ต่าง Switch กัน อย่างไรก็ดี Cisco ก็มีโปรโตคอล ที่มีจุดประสงค์ในทำนองเดียวกับ IEEE 802.1Q ซึ่งก็คือ ISL หรือ Inter-switching Link ภาพที่ 2-10 แสดงลักษณะของการสอดแทรกข่าวสารลงไปบน เฟรมข้อมูลที่เรียกว่า Tagged Frame ISL เป็นโปรโตคอลที่ใช้เพื่อการ Encapsulation เฟรมข้อมูล ของ Cisco จุดประสงค์ก็เพื่อการ สื่อสารกัน ระหว่าง VLAN หลายๆวง ที่กระจายไปตาม Switches Hub ต่างๆ โดยอาศัยสายสัญญาณ เชื่อมต่อเพียงหนึ่งเดียวทำให้ VLAN สามารถสื่อสารกันผ่าน Switching Hub หลายๆตัวได้ โดยใช้ วิธีการใส่ Header เพิ่มเติมเข้าไปที่ส่วนหัวของ Frame ภาพที่ 2-11 แสดงการเชื่อมต่อระหว่าง VLAN ที่กระจายตาม Switches ต่างๆด้วย ISL Trunk Destination Source VLAN Tag Control Type/Length Data FCS Address Address Preteral ID Info Bytes 6 6 2 2 2 4 VLAN Preteral ID = Priority Cano- VLAN Identifier 0x8100 nical Bits 16 3 1 12 14 ISL เป็น Protocol ของ Cisco ถูกนำมาใช้งานกับ Fast Ethernet และ Gigabit Ethernet Trunk Link เท่านั้น ซึ่งปัจจุบัน Network Interface Card จาก Intel และผู้ผลิตอื่นๆ ต่างๆ ให้การสนับสนุน ISL เป็นจำนวนมาก หากไม่ต้องการใช้ ISL Protocol แต่ต้องการสื่อสารระหว่าง VLAN บน Trunk Link จะต้อง ใช้ 802.1q Protocol การพัฒนาโปรแกรมในสารนิพนธ์นี้จะใช้มาตรฐาน 802.1Q โดยที่ไม่สามรถใช้ งาน ISL ได้ ภาพที่ 2-12 แสดงลักษณะการทำ Encapsulation ให้กับเฟรมข้อมูล โดยวิธี ISL ของ Cisco 2.1.4 ประโยชน์ของ VLAN 1. เพิ่มประสิทธิภาพของเครือข่าย ในระบบเครือข่ายทั่วไปจะมีการส่งข้อมูล Broadcast จำนวนมาก ทำให้เกิดความคับ คั่ง ( Congestion ) และ VLAN มีความสามารถช่วยเพิ่มประสิทธิภาพของเครือข่ายได้เนื่องจาก VLAN จะจำกัดให้ส่งข้อมูล Broadcast ไปยังผู้ที่อยู่ใน VLAN เดียวกันเท่านั้น 2. ง่ายต่อการบริหารการใช้งาน VLAN อำนวยความสะดวกในการบริหารจัดการโครงสร้างของระบบเครือข่ายให้ง่าย มีความยืดหยุ่น และเสียค่าใช้จ่ายน้อย โดยเพียงเปลี่ยนโครงสร้างทางตรรกะ( Logical ) เท่านั้น ไม่ จำเป็นต้องเปลี่ยนโครงสร้างทางกายภาพ กล่าวคือ ถ้าต้องการเปลี่ยนโครงสร้างของ VLAN ก็ทำโดยการคอนฟิกที่อุปกรณ์เครือข่ายใหม่ไม่จำเป็นเปลี่ยนรูปแบบทางกายภาพของการเชื่อมต่อเครือ ข่ายที่มีอยู่เดิม ISL Header Encapsulated Ethernet CRC 26 bytes Frame 4 bytes DA Type User SA LEN AAAA03 HSA VLAN BPDU INDEX RES VLAN BPDU 15 3. เพิ่มการรักษาความปลอดภัยมากขึ้น เนื่องจากการติดต่อระหว่างอุปกรณ์เครือข่ายจะสามารถทำได้ภายใน VLAN เดียวกัน เท่านั้น ถ้าต้องการที่จะติดต่อข้าม VLAN ต้องติดต่อผ่านอุปกรณ์ค้นหาเส้นทางหรือ Switch Layer 3 2.1.5 ข้อเสียและปัญหาที่พบของการใช้ VLAN 1. ถ้าเป็นการแบ่ง VLAN แบบ port-based นั้นจะมีข้อเสียเมื่อมีการเปลี่ยนพอร์ตนั้น อาจจะต้องทำการคอนฟิก VLAN ใหม่ 2. ถ้าเป็นการแบ่ง VLAN แบบ MAC-based นั้นจะต้องให้ค่าเริ่มต้นของ VLAN membership ก่อน และปัญหาที่เกิดขึ้นคือในระบบเครือข่ายที่ใหญ่มาก จำนวนเครื่องนับพันเครื่อง นอกจากนี้ถ้ามีการใช้เครื่อง Notebook ด้วย ซึ่งก็จะมีค่า MAC และเมื่อทำการเปลี่ยนพอร์ตที่ต่อก็ ต้องทำการคอนฟิก VLAN ใหม่ 2.1.6 ช่องโหว่ของการใช้ VLAN โดยปกติแล้วจะไม่สามารถส่งข้อมูลข้าม VLAN ได้ถ้าไม่ใช้ Router Switch เลเยอร์สาม หรือ ตัวกลางที่ช่วยค้นหาเส้นทางอื่นๆ แต่มีช่องโหว่ที่ทำให้ผู้ใช้สามารถส่งข้อมูลข้าม VLAN ได้โดยไม่ ต้องอาศัยตัวกลาง เรียกว่า " การเบรค VLAN " ซึ่งช่องโหว่นี้เกิดจาก Trunking protocol ของ Switch บางรุ่น และวิธีการทดสอบคือทำการส่งข้อมูลตัวอย่างจาก VLAN หนึ่งไปยัง VLAN อื่น ที่ อยู่บนสวิตช์คนละตัว และข้อมูลที่ส่งนั้นให้ทำการสร้าง Ethernet Frame ที่มี Tag 802.1Q และ เปลี่ยนค่าของหมายเลข VLAN ให้เป็นค่าของหมายเลข VLAN ปลายทางที่ต้องการเบรค เฟรมที่ถูก สร้างขึ้นใหม่ และค่าของ Tag 802.1Q จะมีรูปแบบ "81 00 0n nn" โดยที่ nnn คือหมายเลขของ VLAN ซึ่งผลจากการทดสอบดังกล่างจะสามารถทำการเบรค VLAN ได้ สถานการณ์ต่อไปนี้จะทำให้เกิดช่องโหว่ของ VLAN 1. เมื่อผู้บุกรุกสามารถที่จะเข้าถึงพอร์ตใน Switch ที่เป็น VLAN เดียวกันกับ VLAN ของ Trunk port 2. เครื่องเป้าหมายอยู่บนสวิตช์ต่างกันแต่มีกลุ่ม Trunk เดียวกัน 3. ผู้บุกรุกทราบถึง MAC address ของเครื่องเป้าหมาย 4. Layer 3 device สามารถสร้าง Connection จาก VLAN เป้าหมายกลับไปยัง VLAN ที่เป็นต้นทางได้ 2.1.7 Module 802.1Q ในระบบปฏิบัติการลินุกซ์ การที่จะให้ระบบปฏิบัติการลินุกซ์สามารถที่จะอ่าน Header ของ Ethernet Frame ที่ทำ VLAN Tagging ได้ต้องอาศัยการทำงานของ Module 802.1Q ซึ่งได้รับการพัฒนาโดย Ben Greear ซึ่งพัฒนาขึ้นมาครั้งแรกเพื่อให้สามารถทำงานร่วมกับ Kernel 2.2 ของระบบปฏิบัติการลินุกซ์และ 16 ยังมีการพัฒนาต่อมาโดยหลายเนื่องจากเป็น Open Source ในปัจุบันได้ถูกนำมารวมเข้าไว้ใน Kernel 2.6 ของระบบปฏิบัติการลินุกซ์ขึ้นไปโดยที่ไม่ต้องทำการติดตั้งเพิ่ม 2.1.7.1 วิธีการติดตั้งและเรียกใช้งาน VLAN ใน Module 802.1Q 1. เมื่อทำการ Download VLAN แพคเก็จมาเรียบร้อย ให้แตกไฟล์ที่ได้มา ด้วยคำสั่ง # tar -xvzf vlan*.tar.gz โดยที่ * คือเวอร์ชั่นที่เหมาะสมกับ Kernel ที่ใช้งานใน ระบบปฏิบัติการลินุกซ์ 2. ไปยัง VLAN Directory ตามที่ได้แตกไฟล์ออกมาเพื่อทำการติดตั้งโดยใช้ คำสั่ง # make 3. หลังจากนั้นจะได้โปรแกรมที่ชื่อว่า “vconfig” เพื่อนำมาใช้ในการ กำหนดให้ Network Interface Card สามารถรับ Ethernet Frame ที่ทำ VLAN Tagging ได้ 4. การเรียกใช้งาน “vconfig” ในระบบปฏิบัติการลินุกซ์เพื่อกำหนด VLAN มีคำสั่งดังต่อไปนี้ # vconfig add [interface-name] [vlan-id] เป็นคำสั่งที่ใช้ในการกำหนดค่า VID ให้Network Interface Card โดยที่ [interface-name] คือชื่อของ Network Interface Card ที่ต้องการกำหนด เช่น eth0 หมายถึงNetwork Interface Card ที่1 eth1 Network Interface Card ที่2 [vlan-id] คือค่า VID ที่ต้องการกำหนดใน VLAN # vconfig rem [vlan-device] เป็นคำสั่งที่ใช้ในการลบค่า Network Interface Card ที่ กำหนดค่า VID ไว้ โดยที่ [vlan-device] คือชื่อของ Network Interface Card ที่กำหนดค่า VID ไว้ เช่น eth0.1 หมายถึง Network Interface Card ที่ 1 มีค่า VID เท่ากับ 1 # vconfig set_flag [vlan-device] 0 1 เป็นคำสั่งที่ใช้ในการกำหนดค่า flag ให้ Network Interface Card ที่กำหนดค่า VID ไว้โดยปกติค่าจะเท่ากับ 0 จะทำให้ Header ของ Ethernet Frame บันทึกค่าของ VLAN Tagging ไว้จะกำหนดเป็น 1 ในกรณีที่มีการใช้งานโปรแกรมวิเคราะห์ เครือข่าย ที่ไม่สามารถอ่าน Ethernet Frame ที่มี VLAN Tagging โปรแกรมจะทำการลบ VLAN Tagging ก่อนที่จะผ่านการทำงานขั้นต่อไป # vconfig set_name_type VLAN_PLUS_VID VLAN_PLUS_VID_NO_PAD DEV_PLUS_VID DEV_PLUS_VID_NO_PAD เป็นคำสั่งที่ใช้ในบอกให้ระบบปฏิบัติการลินุกซ์ รู้จักรูปแบบของการอ้างอิง Network Interface Card ที่กำหนดค่า VID ไว้เพื่อนำไปใช้กับคำสั่งอื่นๆ 17 ในระบบปฏิบัติการลินุกซ์โดยสามารถเลือกใช้คำสั่งใดคำสั่งหนึ่งใน 4 แบบ เช่น ถ้าไม่ใช้คำสั่งนี้ใน การกำหนด ค่า IP Address ให้ eth0.1 จะไม่สามารถทำได้ 2.1.7.2 การกำหนดค่า IP Address ในNetwork Interface Cardที่กำหนดค่า VID มี คำสั่งดังนี้ # ip addr add [IP Address] broadcast [Broadcast IP] dev [vlan-device] เป็นคำสั่งที่ใช้ใน การกำหนด IP Address เพิ่มในNetwork Interface Card โดยที่ [IP Address] คือค่าเลข IP Address พร้อม Prefix เช่น 192.168.2.1/24 [Broadcast IP] คือค่าเลข Broadcast IP เช่น 192.168.2.255 [vlan-device] คือชื่อของ Network Interface Card ที่กำหนดค่า VID ไว้ เช่น eth0.1 หมายถึงNetwork Interface Card ใบแรกที่มีค่า VID เท่ากับ 1 # ip link set [vlan-device] updown เป็นคำสั่งที่ให้ Network Interface Card ที่ได้กำหนดค่า IP Address แล้วพร้อมที่จะใช้งานทันทีจะกำหนดเป็น up เมื่อต้องการหยุดการใช้งานในNetwork Interface Cardนั้นให้กำหนดเป็น down 2.2 IP Address คอมพิวเตอร์ส่วนบุคคล ที่ใช้งานโปรโตคอล TCP/IP เมื่อต่อเชื่อมเข้าสู่ Internet ต้องมี หมายเลขหรือรหัสที่บ่งบอก ตำแหน่งของเครื่องที่ต่ออยู่บนอินเทอร์เน็ต โดยการสื่อสารกันใน ระบบเครือข่าย Internetที่มีโปรโตคอล TCP/IP เป็นมาตรฐาน เครื่องคอมพิวเตอร์ทุกเครื่องจะต้องมี หมายเลขประ จำตัวเอาไว้อ้างอิง ให้เครื่องคอมพิวเตอร์อื่นๆ ได้ทราบเหมือนกับคนทุกคนต้องมีชื่อ ให้คนอื่นเรียก หมายเลขอ้างอิงดังกล่าวเรียกว่า IP Address หรือหมายเลข IP หรือบางทีก็เรียกว่า "แอดเดรส IP" เพื่อเป็นการวางมาตรฐานสำหรับปฏิบัติร่วมกัน หน่วยงาน InterNIC (Internet Network Information Center) ซึ่งเป็นหน่วยงานที่ได้รับการจัดตั้งขึ้นโดยรัฐบาลสหรัฐอเมริกา จึงได้ ทำหน้าที่เป็นผู้ออกกฏกติกา สำหรับการจัดสรรหมายเลข IP Address ให้กับเครื่องคอมพิวเตอร์ทั่ว โลกที่จะต้องมีการเชื่อมต่อเข้ากับเครือข่าย Internet โดยมีจุดประสงค์เพื่อป้องกันปัญหาการกำหนด IP Address ซ้ำซ้อนกันขึ้น หมายเลข IP Address ซึ่งมีการกำหนดใช้งานในเครือข่ายคอมพิวเตอร์ทั่วโลกในปัจจุบัน มี ชื่อเรียกเป็นทางการว่า "IPv4" (ในปัจจุบันมีถึงIPV6) มีโครงสร้างการอ้างอิงเป็นตัวเลขฐานสอง ความยาว 32 บิต เพื่อเป็นความสะดวกในการระบุอ้างอิงโดยมีการแยกอ่านค่าเลขฐานสองดังกล่าว ออกเป็น 4 กลุ่ม ๆ ละ 8 บิตเรียงตามลำดับ การอ่านหรืออ้างอิงค่าหมายเลข IP Address โดยทั่วไปที่ มักจะพบหรือใช้อ้างอิงถึง สามารถเขียนให้อยู่ในรูปแบบ 205.46.15.198 แทนที่จะอ่านเป็น 18 11001101.00101110.00001111.11000110 เพราะการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ ด้วยกันนั้น จะใช้การอ้างอิงตัวเลขฐานสองเป็นพื้นฐาน เนื่องจากเป็นมาตรฐานการอ้างอิงในระดับ ภาษาเครื่อง ส่วนการอ่านค่าเป็นตัวเลขฐานสิบนั้นเป็นไปเพื่อความสะดวกของมนุษย์เป็นสำคัญ อนึ่งโดยทั่วไปมักนิยมเรียกกลุ่มข้อมูลแต่ละกลุ่มซึ่งมีขนาด 8 บิตว่า "ออกเต็ด" (Octet) มีการกำหนดแบ่งกลุ่มของ IP Address ที่มีการใช้งานทั่วโลกออกเป็น 5 กลุ่ม หรือ 5 คลาส (Class) แต่จะใช้งานในการ Unicast นั้น คือ คลาส A คลาส B และ คลาส C กติกาที่ใช้ในการ กำหนดแบ่งคลาสของ IP Address นั้น กระทำโดยแบ่งตามค่าตัวเลขฐานสองของออกเต็ดแรก ดัง แสดงรายละเอียดในตารางที่ 2-2 และเนื่องจาก InterNIC มีการประกาศห้ามใช้งานแอดเดรสใน คลาส D และ E ตารางที่ 2-2 การแบ่งคลาสของเลขหมาย IP Address ตามข้อกำหนด InterNIC คลาส ค่าของตัวเลขใน ออกเต็ดแรก แอสเดรสฐานสองของ ออกเต็ดแรกที่เป็นได้ ค่าแอสเดรสฐานสิบ ของออกเต็ดแรก A บิตแรกมีค่าเป็น0 00000001 - 10111111 1 ถึง127 **127ใช้เฉพาะทดสอบ B สองบิตแรกมีค่าเป็น10 10000000 - 10111111 128 ถึง 191 C สามบิตแรกมีค่าเป็น110 11000000 - 11011111 162 ถึง 223 D สี่บิตแรกมีค่าเป็น 1110 11100000 - 11101111 224 ถึง 239 ถูกสงวนไม่ให้ใช้ E ห้าบิตแรกมีค่าเป็น 11110 11110000 - 11110111 240 ถึง 247 ถูกสงวนไม่ให้ใช้ แนวคิดในการแบ่งกลุ่ม IP Address ออกเป็นคลาส ก็เนื่องมาจากที่ InterNIC มองว่าเครือข่าย คอมพิวเตอร์ย่อย ๆ ที่มีการเชื่อมต่อเข้ากับเครือข่าย Internet นั้น มีขนาดเล็กใหญ่ไม่เท่ากัน เครือข่ายของบางองค์กรอาจมีขนาดใหญ่โตและต้องการหมายเลขไอพีแอดเดรสเป็นจำนวนมาก ในขณะที่เครือข่ายขององค์กรบางกลุ่มกลับมีเครื่องคอมพิวเตอร์อยู่เพียงไม่กี่เครื่อง ในปัจจุบัน IP Address ที่จัดว่าอยู่ในคลาส A แทบจะไม่ได้มีการจัดสรรให้กับหน่วยงานใดมากนัก IP Address ใน คลาส A นี้ได้รับการกำหนดขึ้นเพื่อใช้จัดสรรให้กับองค์กรขนาดใหญ่มากที่มีเครื่องคอมพิวเตอร์ เชื่อมต่อภายในองค์กรเป็นจำนวนมาก คลาส B เหมาะสำหรับการกำหนดใช้งานให้กับองค์กรขนาด กลาง คลาส C เป็นคลาสที่มักมีการกำหนดใช้งานกับเครื่องคอมพิวเตอร์ส่วนใหญ่ภายในเครือข่าย Internet 19 2.3 การแบ่งเครือข่ายย่อย (Subnetwork) การทำ Subnetwork ก็คือ การแบ่งเครือข่ายออกเป็นส่วนย่อย ๆ เพื่อให้ง่ายแก่การบริหาร และง่ายแก่การนำไปใช้ เพราะถ้าไม่มีการแบ่ง Subnet แล้วล่ะก็ การแจกจ่ายหมายเลข IP Address ให้กับเครื่องหรือระบบเครือข่ายย่อย ๆ อาจจะทำให้สิ้นเปลืองหมายเลข IP Address ไปโดยใช่เหตุ เพราะว่าถ้ากำหนดเครื่องลูกข่ายแม้ว่าจะเป็นคลาส C ซึ่งสามารถมีเครื่องลูกข่ายได้ถึง 254 เครื่อง แต่ในความเป็นจริงแล้ว ก็คงจะไม่สามารถมีได้มากถึงขนาดนั้น การแบ่ง Subnet จึงเข้ามาช่วยใน การแบ่งเครือข่ายออกเป็นเครือข่ายย่อย ๆ วิธีการแบ่ง Subnet ตามRFC 950 จะแบ่งโดยที่จะใช้ Subnetid มาเพื่อกำหนดว่าเป็นเครือข่ายย่อยที่เท่าไร ตัวอย่างเช่น เครือข่าย 158.108.0.0 อาจใช้8บิต แรกของโฮสต์มาใช้เป็น SubnetID และอีก 8 บิตที่เหลือใช้เป็นเลขโฮสต์ดังภาพที่ 2-13 ส่วนใน SubnetID ที่เพิ่มขึ้นมาถือว่าเป็นการขยายเครือข่ายออกไปจึงเรียกเลขเครือข่ายและ SubnetID รวมกันเรียกว่า พรีฟิกช์เครือข่ายส่วนขยาย (Extended Network Prefix)โดยสามารถเขียนแทน จำนวนบิตพรีฟิกช์ตามภาพที่2-13 ที่ด้วย /24 หรือมีพรีฟิกช์เท่ากับ 24 16 บิต 8 บิต 8 บิต 158.108 SubnetID HostID ภาพที่ 2-13 ตัวอย่างการแบ่งเครือข่ายย่อยของ 158.108 ตารางที่ 2-3 การแบ่งเครือข่ายย่อยของ 158.108 ด้วย Subnet 8 บิต Subnetที่ เครือข่ายย่อย IP Address เริ่มต้น IP Address สุดท้าย 0 158.108.0.0 ไม่ใช้ - 1 158.108.1.0 158.108.1.1 158.108.1.254 2 158.108.2.0 158.108.2.1 158.108.2.254 3 158.108.3.0 158.108.3.1 158.108.3.254 : : : : 253 158.108.253.0 158.108.253.1 158.108.253.254 254 158.108.254.0 158.108.254.1 158.108.254.254 255 158.108.255.0 ไม่ใช้ - พรีฟิกช์เครือข่ายส่วนขยาย 20 Subnetmask เป็นตัวเลข 32 บิต เหมือนกับ IP Address และจะใช้เจ้า Subnetmask นี้ในการ บอกข้อมูลว่ามีกี่บิตเป็น NetworkID และกี่บิตเป็น Host ID โดยที่จะมีค่า บิต 1 สำหรับส่วนที่เป็น NetworkID และ บิต 0 สำหรับส่วนที่เป็น Host ID เช่น ถ้ามี IP Address ที่เป็น Class A ซึ่งมี NetworkID เท่ากับ 8 บิต และ Host ID เท่ากับ 24 บิต สามารถเขียน Subnetmask เรียงตามบิตได้ ดังนี้ 11111111 . 00000000 . 00000000 . 00000000 และถ้าแปลงเป็นเลขฐาน10 ก็จะได้ 255.0.0.0 และในปัจจุบันนิยมเขียน Subnetmask โดยมีพรีฟิกช์ในรูปแบบที่นิยมคือ 158.108.0.0/24โดย เรียกว่าเครือข่าย 158.108.0.0 มีพรีฟิกช์ 24 บิต จากหมายเลข Subnetmask ของ IP ในแต่ละคลาส จะสามารถทราบได้ทันทีว่า แต่ละคลาส นั้นมีเครื่องลูกข่ายได้กี่เครื่อง โดยดูจากหมายเลข 0 ซึ่งถ้าแปลงออกมาเป็นเลขฐานสองแล้วจะได้ ดังนี้ Class A 255.0.0.0 11111111.00000000. 00000000. 00000000 มี 0 จำนวน 24 ตัว จะได้ = 224 = 16,777,214 เครื่อง Class B 255.255.0.0 11111111. 11111111.00000000.00000000 มี 0 จำนวน 16 ตัว จะได้ = 216 = 65,536 เครื่อง Class C 255.255.255.0 11111111. 11111111. 11111111.00000000 มี 0 จำนวน 8 ตัว จะได้ = 28 = 256 เครื่อง ภาพที่ 2-14 การคำนวนจำนวนเครื่องลูกข่ายในแต่ละคลาส ถ้าไม่ได้ทำการแบ่ง Subnet ใด ๆ ก็จะต้องใช้หมายเลข Subnet Mask ที่เป็นค่าดีฟอลต์ของ คลาสๆ นั้น ถ้าอยู่ในคลาส C และไม่ได้แบ่ง Subnet เวลากำหนดหมายเลข Subnet Mask ให้กับ เครื่องลูกข่าย ก็จะกำหนดไว้ที่ 255.255.255.0 บทที่ 3 วิธีการดำเนินงาน สารนิพนธ์ฉบับนี้ ได้ทำการจำลองการทำงานของ VLAN บนระบบปฏิบัติการลินุกซ์ โดยนำคุณสมบัติและความสามารถของระบบปฏิบัติการลินุกซ์ มาใช้ในการรับส่งข้อมูลในเครือข่ายและ ทำการตรวจสอบ packet ข้อมูลที่มีการเดินทางในเครือข่ายเพื่อพิจารณาว่าอยู่ใน VLAN เดียวกัน หรือไม่และทำการส่ง packet ไปยังปลายทางตามที่กำหนดคุณสมบัติไว้ใน VLAN โดยแบ่งการ ดำเนินงานออกเป็นดังนี้ 3.1 ขั้นตอนการออกแบบโปรแกรม ประกอบด้วย การดักจับ packet บนเครือข่าย การอ่าน IP Address ใน Header ของแต่ละ packet การพิจารณา IP Address ที่เป็นสมาชิกในแต่VLAN บนระบบเครือข่าย การทำงานในส่วนของ User Interface ที่ทำงานผ่าน Web Browser 3.2 ขั้นตอนการพัฒนาโปรแกรม ประกอบด้วย เครื่องมือที่ใช้ในการพัฒนาโปรแกรม หลักการพัฒนาโปรแกรม 3.3 ขั้นตอนการประเมินประสิทธิภาพโปรแกรม ประกอบด้วย เครื่องมือที่ใช้ในการประเมินโปรแกรม สถิติที่ใช้ในการวิเคราะห์ข้อมูล 22 3.1 ขั้นตอนการออกแบบโปรแกรม ภาพที่ 3-1 ขั้นตอนการทำงานของ VLAN ที่จำลองในระบบปฏิบัติการลินุกซ์ START ดักจับ packet ที่ผ่านมายังเครื่องลินุกซ์ ที่จำลองการทำงานของ VLAN และที่ ทำหน้าที่เป็น Gateway อ่าน Header แต่ละ packet เพื่อตรวจ IP Address ของต้นทาง และ ปลายทาง ตรวจสอบ IP Address ตามที่ กำหนดใน VLAN ทิ้ง packet นั้น ส่ง packet ไปยังปลายทางของแต่ละ IP Address STOP IP Address ต้นทางและ ปลายทางอยู่ต่าง VLANกัน IP Address ต้นทางและ ปลายทางอยู่ใน VLANเดียวกัน 23 3.1.1 การดักจับ packet บนเครือข่าย หลักการทำงานของการดักจับข้อมูลโดยปกติเครื่องคอมพิวเตอร์ที่อยู่ใน LAN เดียวกันจะ ได้รับข้อมูลที่เครื่องคอมพิวเตอร์ทำการรับและส่งกันในระบบ LAN ทั้งหมด ซึ่งในการรับและส่ง ข้อมูลระหว่างเครื่องคอมพิวเตอร์นั้น จะมีการกำหนด IP Address ของเครื่องรับปลายทาง จึงเป็น หน้าที่ของเครื่องรับปลายทางในการตรวจสอบ Header ของแต่ละ packet ว่ามี IP Address ปลายทางที่ส่งมาถึงเครื่องที่รับหรือไม่ ถ้าใช่ก็จะทำการรับข้อมูล แต่ถ้าไม่ใช่ก็จะทำการปฏิเสธ ข้อมูลดังกล่าว การกระทำนี้สามารถระบุได้ว่าข้อมูลนั้นถูกส่งมาจากต้นทางที่ใดและต้องการส่งไป ยังปลายทางที่ไหน ส่วนของดักจับข้อมูลนั้นเป็นส่วนที่ติดต่อกับ Network Interface Card (NIC) บน ระบบปฏิบัติการลินุกซ์ ซึ่งปกติก็จะทำการอ่าน IP Address ที่ Header และตรวจสอบว่าเป็น packet ที่ส่งมาถึงหรือไม่ แต่ในสารนิพนธ์ต้องการที่จะดักจับ packet ทุกๆ packet ที่เข้ามาจึงได้นำคุณสมบัติที่มีมาในระบบปฏิบัติการลินุกซ์มาใช้โดยการใช้คำสั่ง # echo "1" > /proc/sys/net/ipv4/ip_forward เป็นคำสั่งที่กำหนดค่า 1 ให้ ip_forward ที่เป็น โปรแกรมในอยู่ในระบบปฏิบัติการลินุกซ์เพื่อให้รับ packet อื่นๆนอกจาก packet ที่ส่งมายัง ระบบปฏิบัติการลินุกซ์ โดยปกติจะมีค่าป็น 0 ในการดักจับpacket ให้กำหนดเครื่องคอมพิวเตอร์ที่ อยู่ในเครือข่ายตั้งค่า Gateway มายังเครื่องที่ติดตั้งระบบปฏิบัติการลินุกซ์ที่ทำการจำลอง VLAN เมื่อรับ packet มาก็จะนำไปเก็บไว้ใน buffer ซึ่งอยู่ใน memory เพื่อทำการวิเคราะห์ส่วน Header และข้อมูลบางส่วนของ packet ตั้งแต่ระดับ Network layer ไปจนกระทั่งถึง Application Layer การ อ่านค่า data ใน buffer เพื่อทำการแยก Header ของแต่ละ layer ออก ซึ่งจะได้ Header ในระดับ Data link layer, IP (Network layer) , TCP (Transport layer) ซึ่งสามารถนำข้อมูลที่ได้ดังกล่าวไปใช้งาน ได้ 3.1.2 การอ่าน IP Address ใน Header ของแต่ละpacket เมื่อดักจับ packet ที่มีในระบบเครือข่ายก็จะทำการแยกส่วน Header ของ packet เพื่ออ่าน ข้อมูลในแต่ส่วนการทำสารนิพนธ์นี้จะนำเฉพาะ IP Address มาพิจารณา โดย Headerใน packet ที่ สามารถดักจับได้ภายในเครือข่ายสามารถแบ่งออกได้เป็น 2 แบบคือ Header ที่เป็นแบบ IEEE 802.3 Ethernet Frame ภาพที่ 3-2 Ethernet Frame IEEE 802.3 Preamble: 7 SFD: 7 DA: 6 SA: 6 Types/ Data: 48-1500 CRC:4 Length: 2 Normal Ethernet Frame 24 และส่วน Header ที่เป็นของ VLAN ซึ่งจะมี VLAN Tagging ตามมาตรฐาน IEEE 802.1Q ภาพที่ 3-3 VLAN IEEE 802.1Q Frame ปกติที่ Network Interface Card จะตรวจสอบข้อมูลที่ Header ของแต่ละ packet ก่อนที่จะ ตัดสินใจรับหรือทิ้ง packet นั้นไปใน Network Interface Card บางรุ่นจะทำการทิ้ง packet ที่มี VLAN Tagging เพราะเข้าใจว่า Header ที่อ่านจาก packet นั้นเสียหายและจะไม่สามารถอ่านข้อมูล ของ IP Address ได้ ในการจะให้ระบบปฏิบัติการลินุกซ์ สามารถอ่าน Header ที่มี VLAN Tagging ได้ต้องใช้ 802.1Q Module และทำการกำหนด VID ใน Network Interface Card 3.1.3 การพิจารณา IP Address ที่เป็นสมาชิกในแต่ VLAN บนระบบเครือข่าย ระบบปฏิบัติการลินุกซ์ จะพิจารณาว่าจะส่ง packet ต่อไปยังปลายทางหรือไม่ ในการทำงาน ขั้นนี้จะใช้ IP Address ตรวจสอบสมาชิกในแต่ละ VLAN การกำหนดสมาชิกในแต่ละVLAN ใน สารนิพนธ์นี้ได้นำ Iptable Module ซึ่งเป็น Firewall ของระบบปฏิบัติการลินุกซ์มาใช้งานในการ พิจารณา IP Address ของแต่ละ packet ที่ผ่านเข้ามาเพื่อตรวจสอบว่าเป็นสมาชิกตามที่กำหนดในแต่ ละ VLAN หรือไม่ 3.1.3.1 หลักการทำงานของ Iptable Iptable คือโปรแกรมที่เป็น Firewall นำมาใช้ในการกรอง packet ในระบบปฏิบัติการ ลินุกซ์โดยที่โปรแกรมจะประกอบด้วยตารางข้อมูลของ IP Address ที่ถูกกำหนดเป็นกฎใช้ในการ ตรวจสอบ packet ว่าอนุญาตหรือไม่อนุญาตให้ผ่านเข้ามาในระบบเครือข่าย กฎต่างๆสามารถ กำหนดโดยผู้ดูแลระบบหรือผู้ใช้งานคอมพิวเตอร์ที่สถานะเป็น Root ในระบบปฏิบัติการลินุกซ์ โดยที่ Iptable จะประกอบไปด้วยตารางที่ใช้พิจารณาอยู่ 3 ตารางด้วยกันคือ Pr eamble: 7 SFD: 7 DA: 6 SA: 6 2 2 Types/ Data: 48-1500 CRC:4 TPI TAG Length: 2 IEEE 802.1Q Tagged Frame Inserted Fields IEEE 802.1q only : 81-00 SNAP : AA-AA-03 User CFI Bits of VLAN ID (VID) to Identifly 4,096 Possible VLANS Priority 3 bits 1 bits 12 bits 802.1q 25 1. Chain INPUT เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะเข้ามา ในเครื่องระบบปฏิบัติการลินุกซ์ที่ใช้งาน Iptable อยู่ 2. Chain OUTPUT เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะ ออกจากเครื่องระบบปฏิบัติการลินุกซ์ที่ใช้งาน Iptable อยู่ 3. Chain FORWARD เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะ เข้าในเครื่องระบบปฏิบัติการลินุกซ์และจะถูกส่งต่อ packet ต่อไปยังปลายทางซึ่งใช้ในกรณีที่ใช้ ระบบปฏิบัติการลินุกซ์ทำหน้าที่เป็น Gateway ซึ่งตารางนี้จะเป็นตารางหลักในสารนิพนธ์นี้จะ นำมาใช้ในการตรวจสอบ Ip Address ของ packet ในระบบเครือข่าย เมื่อมี packet ในระบบ เครือข่ายเดินทางมายัง Gateway Routing Decision ทำการตรวจสอบ IP Address ปลายทาง ตรวจสอบ IP Address ในกฏของ FORWARD TABLE ตรวจสอบ IP Address ในกฏของ INPUT TABLE IP Address ปลายทางตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ ทิ้ง packet เมื่อตรวจสอบ ตามกฎที่กำหนดไว้ Local Process ตรวจสอบ IP Address ในกฏของ OUTPUT TABLE จัดส่ง packet ไปยัง IP Address ปลายทาง Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ข้อมูลของระบบ ปฏิบัติการลินุกซ์ที่จะส่งไป ยังคอมพิวเตอร์เครื่องอื่นๆ Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน ภาพที่ 3-4 Block Diagram แสดงขั้นตอนการตรวจสอบ IP Address ใน Iptable 26 ขั้นตอนการทำงานในการตรวจสอบ IP Address ใน Iptable 1. เมื่อ packet ที่มีในระบบเครือข่ายเดินทางเข้ามาที่ระบบปฏิบัติการลินุกซ์ซึ่ง ทำหน้าที่เป็น Gateway ได้รับการอ่านค่า IP Address จาก Header เพื่อที่จะรับการตรวจสอบ IP Address ในขั้นตอน Routing Decision 2. ขั้นตอนการตรวจสอบขั้นแรก Routing Decision จะตรวจสอบ IP Address ปลายทางของแต่ละ packet เมื่อทำการตรวจสอบจะแยก packet ออกเป็น 2 กลุ่ม โดยกลุ่มแรกเมื่อ IP Address ปลายทางตรง IP Address ของระบบปฏิบัติการลินุกซ์ก็จะจัดส่งไปพิจารณาในกฎของ INPUT Table กลุ่มที่ 2 เมื่อ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลิ นุกซ์ก็จะจัดส่งไปพิจารณาในกฎของ FORWARD TABLE โดยในสารนิพนธ์จะใช้ FORWARD TABLE มาใช้ตรวจสอบสมาชิกในแต่ละ VLAN 3. ขั้นตอนการตรวจสอบ IP Address ของแต่ละ packet ใน FORWARD TABLE จะตรวจสอบทั้ง IP Address ต้นทางและปลายทาง โดยกฎที่มีใน FORWARD TABLE จะ ถูกกำหนดให้เฉพาะ IP Address ที่อยู่ใน VLAN เดียวกันสามารถยอมให้ packet ผ่านไปได้ก็จะเข้า สู่กระบวนการส่งต่อไปยัง IP Address ปลายทางต่อไปและ packet ที่มี IP Address อยู่ละ VLAN จะ ไม่ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้และไม่ยอมให้ผ่านก็จะเข้าสู่ขั้นตอนการทิ้ง packet 4. ขั้นตอนการตรวจสอบ IP Address ของแต่ละ packet ใน INPUT TABLE จะตรวจสอบ IP Address ต้นทาง โดยขึ้นอยู่กับกฎที่มีใน INPUT TABLE ถ้ากฎที่ยอมให้ผ่านได้ packet ผ่านไปในเครื่องระบบปฏิบัติการลินุกซ์และ packet ที่มีไม่ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้ก็จัดส่งไปยังขั้นตอนการทิ้ง packet 5. เมื่อระบบปฏิบัติการลินุกซ์จะจัดส่ง packet ไปยังคอมพิวเตอร์อื่นๆใน เครือข่ายก็จะตรวจสอบ IP Address ของแต่ละ packet ที่จะจัดส่งในกฎของ OUTPUT TABLE ถ้า กฎที่ยอมให้ผ่านได้ packet ก็จะถูกส่งไปตามที่ IP Address ปลายทางระบุไว้ในส่วน packet ที่ไม่ ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้และจัดส่งไปยังขั้นตอนการทิ้ง packet ในการออกแบบโปรแกรมในสารนิพนธ์ได้เพิ่มส่วนที่ช่วยให้ระบบเครือข่ายขนาดเล็ก ติดต่อกับ Internet โดยที่มี 1 Public IP Address และต้องการให้เครื่องคอมพิวเตอร์ทั้งหมดใน เครือข่ายใช้งาน Internet จะมีการนำ NAT (Network Address Translation) มาใช้งานเพื่อให้ Private IP Address ที่ได้กำหนดขึ้นมาในระบบเครือข่ายภายในสามารถเปลี่ยนเป็น Public IP Address เพื่อ ออกไปใช้งาน Internet โดยที่การทำงานผ่าน Iptable มีกระบวนการทำงาน ดังนี้ 27 เมื่อมี packet ในระบบ เครือข่ายเดินทางมายัง Gateway Routing Decision ทำการตรวจสอบ IP Address ปลายทาง ตรวจสอบ IP Address ในกฏของ FORWARD TABLE ตรวจสอบ IP Address ในกฏของ INPUT TABLE IP Address ปลายทางตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ ทิ้ง packet เมื่อตรวจสอบ ตามกฎที่กำหนดไว้ Local Process ตรวจสอบ IP Address ในกฏของ OUTPUT TABLE จัดส่ง packet ไปยัง IP Address ปลายทาง Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ข้อมูลของระบบ ปฏิบัติการลินุกซ์ที่จะส่งไป ยังคอมพิวเตอร์เครื่องอื่นๆ Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน PREROUTING POSTROUTING ภาพที่ 3-5 Block Diagram แสดงขั้นตอนการทำงานของ NAT ใน Iptable 28 การทำงานก็จะเหมือนกับ Iptable ที่ได้กล่าวมาข้างต้นโดยตรวจสอบเมื่อ packet เข้า มาได้รับการอ่านค่า IP Address จาก Header และเข้าไปยังส่วนของ PREROUTING ทำการตรวจ IP Address ของต้นทางที่ส่งมา และทำการเปรียบเทียบกับตาราง NAT เพื่อเปลี่ยนเป็น IP Address ของ ปลายทางให้เป็น Private IP Address ปลายทางที่ถูกต้องก่อนส่งไปยังกระบวนการทำ Iptable ต่อไป ส่วนในการเปลี่ยนจาก Private IP Address ต้นทางเป็น Public IP Address ก่อนที่จะออกไปยังระบบ Internet ก็ต้องผ่านกระบวนการใน POSTROUTING ที่โดยใช้ IP Masquerade ซึ่งเป็นการทำ NAT วิธีหนึ่ง โดยจะทำการเปลี่ยน Private IP Address ที่ต้องการจะออกไประบบ Internet ให้เป็น Public IP Address ที่ได้ตั้งค่าไว้ที่ Network Interface Card ที่กำหนดให้เป็นส่วนที่ติดต่อกับเครือข่าย ภายนอก 3.1.3.2 รูปแบบการใช้คำสั่งในการกำหนดกฎในแต่ละ TABLE รูปแบบการใช้งาน Iptable เบื้องต้น Iptable จะมีรูปแบบการใช้งานดังนี้คือ # iptables [table]
ศึกษาและโหลดฟรีเป็นตัวอย่างเกี่ยวกับงานวิจัย all free download research
วันเสาร์ที่ 18 เมษายน พ.ศ. 2552
การพัฒนาโปรแกรมจำลอง VLAN บนระบบปฏิบัติการลีนุกซ์ VLAN Emulator on Linux
บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา VLAN (Virtual Local Area Network) เป็นเทคโนโลยีที่เข้ามาช่วยจัดการระบบเครือข่ายโดย ที่จะจำลองสร้างเครือข่าย LAN โดยไม่ขึ้นอยู่กับการเชื่อมต่อทางกายภาพ โดยที่ผู้ดูแลระบบ สามารถสร้างกลุ่มทำงานซึ่งสามารถติดต่อสื่อสารกันภายในกลุ่มอย่างอิสระ โดยกลุ่มผู้ใช้งานจะถูก จำกัดสิทธิให้ติดต่อสื่อสารกันได้เฉพาะที่อยู่ในกลุ่ม VLAN เดียวกัน ซึ่งถือเป็นการรักษาความภัย ของข้อมูลระหว่างแผนกหรือส่วนงานภายในองค์กรบริษัทหรือหน่วยงานได้ โดยที่ VLAN ยัง สามารถช่วยลดความคับคั่งของข้อมูลภายในระบบเครือข่ายคอมพิวเตอร์ที่เกิดจากการ Broadcast เพราะว่า VLAN จะทำการแยก Collision Domain โดยที่จะทำการ Broadcast เฉพาะภายใน VLAN เดียวกัน การกำหนด VLAN ในเครือข่ายสามารถทำได้บนอุปกรณ์ Switch โดยการกำหนด VLAN มีหลายวิธีขึ้นอยู่กับการเลือกใช้งานในแต่ละเครือข่าย เนื่องจากความสามารถของ VLAN ที่กล่าวมาข้างต้นเป็นประโยชน์ในการจัดการระบบ เครือข่ายแต่ต้องใช้ Switch ที่มีความสามารถนี้ซึ่งราคาแพงมาใช้งานและมีขั้นตอนซับซ้อนในการ ใช้ คำสั่งในการกำหนด VLAN ในการสารนิพนธ์นี้จึงมุ่งเน้นในการพัฒนาและออกแบบซอฟต์แวร์ โดยการนำเครื่องคอมพิวเตอร์ที่ติดตั้งระบบปฏิบัติการลินุกซ์มาประยุกต์ให้สามารถทำงานตาม คุณสมบัติของ VLAN ใน Switch ได้โดยการเชื่อมต่อจากการ์ดอีเทอร์เนตเข้ากับเครื่องคอมพิวเตอร์ และที่ง่ายต่อการใช้งานโดยที่โปรแกรมจะทำหน้าที่ในการช่วยที่เขียน Bourne Shell Script เพื่อ สั่งงานให้ระบบปฏิบัติการลินุกซ์จำลองคุณสมบัติของ VLAN ในระบบเครือข่าย 1.2 วัตถุประสงค์ เพื่อพัฒนาและออกแบบซอฟต์แวร์สำหรับจำลองการทำงานของ VLAN บนระบบปฏิบัติการ ลินุกซ์ 2 1.3 ขอบเขตของการวิจัย 1.3.1 ซอฟต์แวร์ที่พัฒนาขึ้นจะใช้ IP Address ในการแบ่ง VLAN ในระบบเครือข่าย 1.3.2 ซอฟต์แวร์ที่พัฒนาขึ้นออกแบบให้ทำงานอยู่ในระบบเครือข่าย Ethernet ขนาดเล็ก 1.3.3 ซอฟต์แวร์ได้พัฒนาและติดตั้งลงในระบบปฏิบัติการลินุกซ์ 1.4 วิธีการวิจัย 1.4.1 ขั้นศึกษา 1.4.1.1 ศึกษาระบบการทำงานของ VLAN ใน Switch 1.4.1.2 ศึกษาและเรียนรู้เกี่ยวกับการทำงานของระบบปฏิบัติการลินุกซ์ 1.4.1.3 ศึกษาการส่งข้อมูลในระบบเครือข่าย 1.4.1.4 ศึกษาภาษา Bourne Shell Script และ ภาษา PHP 1.4.2 ทำการติดตั้งระบบปฏิบัติการลินุกซ์และทำการปรับแต่งค่าเพื่อเชื่อมต่อระบบ LAN 1.4.3 ออกแบบโปรแกรมโดย 1.4.3.1 ออกแบบการรับข้อมูลจาก Network Interface Card เพื่ออ่าน packet ข้อมูล 1.4.3.2 ออกแบบการอ่าน packet ในมาตรฐานของ VLAN ให้เป็นแบบ Ethernet 1.4.3.3 การตรวจสอบ packet เพื่อแยกเครือข่ายในแต่ละ VLAN 1.4.4 พัฒนาโปรแกรม 1.4.5 ทดสอบ 1.4.5.1 ทดสอบโดยนำโปรแกรมที่พัฒนาทำงานในระบบเครือข่ายขนาดเล็กที่จัดทำขึ้น 1.4.5.2 ทดสอบเครือข่ายที่จัดทำขึ้นโดยทำการติดต่อผ่าน Switch ที่ใช้ในระบบ เครือข่ายจริง 1.4.6 ประเมินระบบโดยผู้เชี่ยวชาญ 1.4.7 สรุปผล 1.4.8 จัดทำเอกสาร 3 1.5 อุปกรณ์ที่ใช้ในงานวิจัย เครื่องมือที่ใช้ในการทำสารนิพนธ์จำแนกออกได้ดังนี้ 1.5.1 คอมพิวเตอร์ฮาร์ดแวร์ (Hardware) ที่ใช้ในการพัฒนา มีดังนี้ 1.5.1.1 เครื่องคอมพิวเตอร์ ความเร็ว CPU 300 MHz RAM 64 MB VGA 8 MBขึ้น ไปจำนวน 1 เครื่องพร้อม Network Interface Card 3 แผง (ใช้ติดตั้งระบบปฏิบัติการลินุกซ์) 1.5.1.2 เครื่องคอมพิวเตอร์ ความเร็ว CPU 400 MHz RAM 128 MB VGA 16 MB ขึ้นไปพร้อม Network Interface Card จำนวน 3 เครื่อง 1.5.1.3 อุปกรณ์ Switch 1.5.1.4 สายสัญญาณใช้ในการเชื่อมต่อเครือข่าย 1.5.2 ซอฟต์แวร์ (Software) ที่ใช้ในการวิจัย มีดังนี้ 1.5.2.1 ภาษา PHP และ HTML 1.5.2.2 ภาษา Bourne Shell Script 1.5.2.3 Apache Web Server 1.5.2.4 Macromedia Dream weaver 1.5.2.5 ระบบปฏิบัติการลินุกซ์ 1.6 ระยะเวลาในการดำเนินงาน ระยะเวลา เดือนมิถุนายน 2547 – เดือนกันยายน 2547 มิถุนายน กรกฎาคม สิงหาคม กันยายน 1. ขั้นศึกษา 1.1 ศึกษาระบบการทำงานของ VLAN ใน Switch 1.2 ศึกษาและเรียนรู้เกี่ยวกับการทำงานของระบบปฏิบัติการ ลินุกซ์ 1.3 ศึกษาการส่งข้อมูลในระบบเครือข่าย 1.4 ศึกษาภาษา Bourne Shell Script 1.5 ศึกษาภาษา PHP 2. ทำการติดตั้งระบบปฏิบัติการลินุกซ์และทำการปรับแต่ง ค่าเพื่อเชื่อมต่อระบบ LAN 4 1.6 ระยะเวลาในการดำเนินงาน (ต่อ) มิถุนายน กรกฎาคม สิงหาคม กันยายน 3. ออกแบบโปรแกรม 3.1 ออกแบบการรับข้อมูลจาก Network Interface Card เพื่อ อ่าน packet ข้อมูล 3.2 ออกแบบการอ่าน packet มาตรฐานของ VLAN ให้เป็น แบบ Ethernet 3.3 การตรวจสอบ packet เพื่อแยกเครือข่ายในแต่ละ VLAN 4. พัฒนาโปรแกรม 5. ทดสอบโดยการทดลองใช้งาน 5.1 ทดสอบโดยนำโปรแกรมที่พัฒนามาทำงานระบบ เครือข่ายขนาดเล็กที่จัดทำขึ้น 5.2 ทดสอบเครือข่ายที่จัดทำขึ้นโดยทำการติดต่อผ่าน Switch ที่ใช้ในระบบเครือข่ายจริง 6. ประเมินระบบโดยผู้เชี่ยวชาญ 7. สรุปผล 8. จัดทำเอกสาร 1.7 ประโยชน์ของผลการวิจัย 1.7.1 นำมาใช้งานทดแทน และช่วยลดค่าใช้จ่ายในการซื้ออุปกรณ์ Switch ที่มีราคาแพง 1.7.2 เพื่อเป็นจุดเริ่มต้นในการพัฒนาโปรแกรมมาใช้งานแทนอุปกรณ์ Switch บทที่ 2 ทฤษฎีที่เกี่ยวข้อง ในการพัฒนาโปรแกรมจำลอง VLAN บนระบบปฏิบัติการลินุกซ์ ผู้จัดทำได้มีการศึกษา ทฤษฎีที่เกี่ยวข้องดังนี้ 2.1 VLAN (Virtual Local Area Network) ระบบเครือข่ายขนาดใหญ่ที่มีจำนวนคอมพิวเตอร์เป็นจำนวนมากในระบบเครือข่ายส่วน ใหญ่จะมีการแบ่งเครือข่ายออกเป็น Subnetwork ย่อยๆเพื่อง่ายต่อการดูแลและควบคุมระบบให้ สามารถทำงานได้อย่างมีประสิทธิภาพแต่เมื่อมีคอมพิวเตอร์มากขึ้นอุปกรณ์ที่นำมาช่วยในการแบ่ง ออกเป็นเครือข่ายย่อยได้แก่ Hub แต่การแบ่งก็ยังไม่สามารถช่วยลดปริมาณความหนาแน่นของ ข้อมูลที่เดินทางอยู่ในเครือข่ายได้เพราะ Hub จะทำการ Broadcast ข้อมูลไปยังทุกๆโหนดที่อยู่ใน เครือข่าย นั้น Router Hub Hub Hub Subnetwo rk 1 Subnetwo rk 2 Subnetwo rk 3 ภาพที่ 2-1 การจัดการเครือข่ายโดยใช้ Hub และ Router โดยที่ไม่ได้กำหนด VLAN ต่อมาได้มีการพัฒนาฟังก์ชันการทำงานใหม่ของระบบเครือข่ายขึ้นมา ซึ่งมีชื่อเรียกว่า ฟังก์ชันเครือข่ายเสมือน( VLAN : Virtual LAN ) หรือที่นิยมเรียกสั้น ๆ ว่า " VLAN" ฟังก์ชัน 6 VLAN เปรียบเสมือนการผสมผสานระหว่าง ฟังก์ชันบริดจ์จิงและ ฟังก์ชันเราท์ติงเข้าด้วยกัน และทำให้สามารถที่จะ รองรับการใช้งาน ของผู้ใช้ระบบเครือข่ายคอมพิวเตอร์ได้มากขึ้น เป็นผลให้ Switch ที่มีฟังก์ชันนี้ สามารถที่จะทำงานทดแทนเราท์เตอร์ได้เกือบสมบูรณ์ ในปัจจุบัน VLAN เป็นเทคโนโลยีที่ใช้ในการจำลองสร้างเครือข่าย LAN แต่ไม่ขึ้นอยู่กับการต่อทางกายภาพเช่น Switch หนึ่งตัวสามารถใช้จำลองเครือข่าย LAN ได้ห้าเครือข่าย หรือสามารถใช้ Switch สามตัว จำลองเครือข่าย LAN เพียงหนึ่งเครือข่าย เป็นการจัดแยกการเชื่อมต่อเครือข่ายในรูปแบบที่เรียกว่า โดเมนส์ ซึ่งจุดประสงค์ของการแยกออกเป็นโดเมนส์นี้ ก็เพื่อให้เครื่องคอมพิวเตอร์ที่อยู่ต่าง โดเมนส์ไม่สามารถสื่อสารกันได้ ทั้งนี้เพื่อความปลอดภัยของเครือข่าย รวมทั้งสามารถเพิ่ม ประสิทธิภาพการทำงานของเครือข่ายอีกด้วย ในการสร้าง VLAN โดยใช้อุปกรณ์เครือข่ายหลายตัว โดยในหนึ่งเครือข่ายอาจประกอบด้วย Switch หลาย ๆ ตัว และใน Switch หนึ่งตัวอาจประกอบด้วย VLAN หลาย ๆ โดเมนส์ หรือหลาย VLAN ก็เป็นได้ การแบ่ง VLAN จะทำให้เครื่องคอมพิวเตอร์ แม้จะเชื่อมต่อกันใน Switch เดียวกัน แต่อยู่ต่าง VLAN กัน ไม่สามารถสื่อสารกันได้ รวมทั้งไม่ สามารถมองเห็นกันได้และที่แน่นอน หนึ่ง VLAN สามารถ Broadcast ข้อมูลไปตาม Switch ต่าง ๆ ได้ เช่นกัน ภายใต้ Switch ของ Cisco 1 ตัว สามารถติดตั้ง VLAN ได้มากถึง 64 VLAN และทั้ง ระบบสามารถมี VLAN ได้มากถึง 1024 VLANโดยจะมีพอร์ตที่ทำหน้าที่เชื่อมต่อระหว่างอุปกรณ์ เข้ากับ Switch แต่ละตัวเรียก Trunk port ซึ่งเสมือนมีท่อเชื่อม หรือ Trunk เป็นตัวเชื่อมด้วย เนื่องจาก VLAN เป็น LAN แบบจำลอง ถึงแม้ว่าจะต่อทางกายภาพอยู่บนอุปกรณ์เครือข่ายตัว เดียวกัน แต่การติดต่อกันนั้นจำเป็นต้องใช้อุปกรณ์ที่มีความสามารถในการค้นหาเส้นทาง เช่น เรา เตอร์ หรือ Switch Layer 3 Router Switch VLAN 1 VLAN 2 VLAN 3 ภาพที่ 2-2 การจัดการเครือข่ายโดยใช้ Switch และ Router โดยที่ไม่ได้กำหนด VLAN 7 ลักษณะพิเศษของ VLAN ทั่วๆ ไปคือ 1. VLAN แต่ละเครือข่ายที่ติดต่อกันนั้น จะมีลักษณะเหมือนกับต่อแยกกันด้วยบริดจ์ 2. VLAN สามารถต่อข้ามสวิตช์หลายตัวได้ 3. ท่อเชื่อม (Trunk) ต่างๆ จะรองรับทราฟฟิกที่คับคั่งของแต่ละ VLAN ได้ 2.1.1 ชนิดของ VLAN 2.1.1.1 Layer 1 VLAN : Membership by portsหรือ Port-Based VLAN เป็นการจัดแบ่ง VLAN โดยอาศัยพอร์ตและหมายเลขพอร์ตเป็นหลัก โดยเพียง แต่ กำหนดว่า ในหนึ่ง Switches Hub มีกี่ VLAN มีชื่ออะไรบ้าง และต้องการให้พอร์ตใด หมายเลขใด เป็นสมาชิกของ VLAN ใดบ้าง ภาพที่ 2-3 แสดงลักษณะการแบ่ง VLAN โดยอาศัยหมายเลขพอร์ตเป็นหลัก จากพอร์ตที่ 3 แสดงให้เห็นว่า VLAN 1 ประกอบด้วย เครื่องคอมพิวเตอร์รวมทั้ง เครื่องเซิร์ฟเวอร์ที่เชื่อมต่อกับพอร์ตหมายเลข 1-4 และ VLAN 2 ประกอบด้วย คอมพิวเตอร์ ที่ เชื่อมต่อกับพอร์ตหมายเลข 9-12 ส่วน VLAN 3 ประกอบด้วยคอมพิวเตอร์ที่เชื่อมต่อกับพอร์ต หมายเลข 5-8 เป็นต้น ขั้นตอนในการจัดตั้ง Port-Based VLAN สามารถกระทำได้โดยง่าย โดยมี ขั้นตอนคร่าว ๆ ดังนี้ 1. กำหนด VTP Domain ให้เรียบร้อย (สำหรับสวิตซ์ของ Cisco) 2. กำหนดชื่อของ VLAN รวมทั้งเลขหมายของ VLAN 3. กำหนดหมายเลขพอร์ตให้กับ VLAN แต่ละชุดที่ถูกสร้างขึ้น 8 ข้อเสียของ Port-Based VLAN ได้แก่การที่ สามารถเปลี่ยนแปลงได้ง่าย เนื่องจากการใช้งาน สามารถเปลี่ยนแปลงค่ากำหนดของ VLAN ได้ ก็เพียงแต่ย้ายสายเชื่อมต่อสัญญาณจากหมายเลข พอร์ตหนึ่งไปยังพอร์ตอื่น ๆ ได้ง่าย ดังนั้นการโยกย้าย VLAN ก็เพียงแต่ย้ายสายสายเชื่อมต่อ สัญญาณเท่านั้น 2.1.1.2 Layer 2 VLAN : Membership by MAC Address หรือ MAC Address-Based VLAN เป็นการจัดตั้ง VLAN ที่อาศัย MAC Address เป็นหลัก ซึ่งแอดเดรสนี้เป็น แอดเดรส ที่มาจาก Network Interface Card ของเครื่องคอมพิวเตอร์แต่ละเครื่อง การแบ่ง VLAN ด้วยการ อาศัย MAC Address นี้ง่ายต่อการกำหนดมาก เนื่องจากไม่ต้องกำหนดเลขหมายของพอร์ต ไม่ต้อง สนใจว่า เครื่องคอมพิวเตอร์ในเครือข่ายจะติดตั้งอยู่บนพอร์ตหมายเลขใด และไม่ต้องกังวลว่าใน การที่จะมีการย้ายเพื่อเปลี่ยน VLAN เนื่องจาก ไม่ว่าจะย้ายไปอยู่ที่ใด บนสวิตซ์ตัวใด ตราบใดที่ กำหนด MAC Address ประจำ VLAN แล้ว จะเปลี่ยนแปลง VLAN เองได้ก็ต่อเมื่อเปลี่ยน Network Interface Card ภาพที่ 2-4 แสดงลักษณะการเชื่อมต่อ VLAN แบบ MAC Address-Based ข้อจำกัดของ MAC-Based VLAN 1. พอร์ตที่จะเข้าร่วมใช้งานเป็น MAC-Based VLAN นั้นจะต้องไม่เป็น Static VLANหมายความว่า จะต้องไม่มีการกำหนดหมายเลขพอร์ตที่ตายตัวให้กับ VLAN ต่าง ๆ 9 2. MAC Based VLAN ถูกออกแบบมาให้สามารถสนับสนุน 1 ไคลเอนต์ต่อ หนึ่งพอร์ต (ทางกายภาพสวิตซ์บางรุ่น ) ขณะที่บางสวิตซ์สามารถสนับสนุนได้หลายยูสเซอร์ต่อ 1 พอร์ต 2.1.1.3 Layer 2 VLAN : Membership by Protocol types หรือ Protocol-Based VLAN รูปแบบของ VLAN แบบนี้ จะช่วยให้สามารถจัดสร้าง VLAN ได้อย่างง่ายดาย เนื่องจากว่า การกำหนด VLAN อาศัยโปรโตคอลการทำงานในระดับเน็ตเวิร์กซึ่งได้แก่ IP IPX หรือ AppleTalk Protocol-Based VLAN ถูกนำมาใช้บ่อยในสถานการณ์ที่เครือข่ายประกอบด้วยหลาย Segment หรือติดตั้ง Switchหลาย ๆ ตัว รวมทั้งเครื่องคอมพิวเตอร์ต่างๆ มีการใช้โปรโตคอลที่ แตกต่างกันรวมทั้งเครื่องคอมพิวเตอร์เครื่องหนึ่งอาจติดตั้งใช้งานหลายโปรโตคอล เช่น มีการใช้ งาน IP กับ NetBIOS ในเครื่องเดียวกัน ภาพที่ 2-5 แสดงลักษณะการจัดแบ่ง VLAN แบบ Protocol-Based ข้อดีของการใช้ Protocol-BasedVLAN ได้แก่ความยืดหยุ่น เนื่องจากสามารถกำหนดว่าจะให้คอมพิวเตอร์เครื่องใดเป็นสมาชิกของ VLAN ใด ก็แล้วแต่ว่ามีการเรียกใช้โปรโตคอลอะไร การใช้ VLAN แบบนี้มีประโยชน์มาก เนื่อง จากเครื่องคอมพิวเตอร์ หรือเครื่องเซิร์ฟเวอร์สามารถติดตั้งไว้ที่ใด หรือ Switch ตัวใดก็ได้ ตราบ ใดที่ยังเชื่อมต่อกันอยู่ ผู้ที่ใช้โปรโตคอลเดียวกัน จะสามารถสื่อสารถึงกันได้ 10 2.1.1.4 Layer 3 VLAN : Membership by IP subnet Address หรือ Subnet-Based VLAN Subnet-Based VLAN บางครั้งถูกเรียกว่า Layer 3 Based VLAN เป็น VLAN ที่ถูก สร้างขึ้นโดยอาศัยข้อมูลข่าวสารในระดับ Network Layer โดยสวิตซ์จะตรวจสอบข้อมูล IP Address ที่ Header ของ packet ปกติ IP Address หรือ Subnet-based VLAN จะถูกติดตั้งบน Switch แบบ Layer 3 เท่านั้น ขณะที่ชนิดของ VLAN ที่ได้กล่าวมาก่อนหน้านี้ทำงานบน Layer-2 Switches ภาพที่ 2-6 แสดงการใช้ Layer 3 Switches เพื่อสร้าง VLAN จำนวน 3 ชุดขึ้น จะเห็นว่ามีการแบ่ง VLAN ออกเป็นส่วน ๆ โดยใช้ เลขหมาย IP Address ที่อยู่ต่างเครือข่ายกัน มากำหนด VLAN ที่ ต่างกันขึ้น ข้อดีของการจัด VLAN แบบนี้ ได้แก่ 1. ความยืดหยุ่น เนื่องจากสามารถเปลี่ยนแปลง VLAN โดยการเปลี่ยน IP เท่านั้น การใช้งานสามารถโยกย้ายเครื่องออกจากพอร์ต ได้โดยไม่ต้องกำหนด IP Address ของ เครือข่ายกันใหม่ให้กับคอมพิวเตอร์แต่ละเครื่อง เหมาะสำหรับเครือข่ายที่ใช้โปรโตคอล TCP/IP เป็นหลัก 2. ให้การสนับสนุน Routing โดยสนับสนุนการเชื่อมต่อระหว่าง VLAN ที่ ต่างกันได้ 3. การจัด คอนฟิกของ VLAN แบบนี้ สามารถเกิดขึ้นได้โดยอัตโนมัติ ดังนั้น ค่าใช้จ่ายในการที่จะดูแลการทำงานของ VLAN ประเภทนี้ จะถูกกว่า MAC Address-Based มาก ภาพที่ 2-6 แสดงการจัดตั้ง VLAN แบบ IP Subnet-Based ข้อเสียของ IP หรือ Subnet-Based VLAN ข้อเสียมีเพียงประการเดียว ได้แก่ การจัดตั้ง IP Address ที่อาจเกิดความสับสน รวมทั้งปัญหา ของสวิตซ์บางรุ่นที่อาจสนับสนุนหลาย IP Address บนพอร์ตเดียวกัน 11 2.1.1.5 Higher Layer VLAN's หรือ Application-Based VLAN สามารถติดตั้ง VLAN โดยอาศัยลักษณะหรือชนิดของ Application ได้อีกด้วย แต่จะมี Switch ที่ให้การสนับสนุน การทำงานในลักษณะนี้ไม่ค่อยจะได้เห็นกันบ่อยนัก อีกทั้งมีราคาแพง มาก จุดประสงค์ของการแยก VLAN โดยอาศัย Application นี้ เป็นการเอื้อประโยชน์ให้กับ Application แต่ละตัวที่สามารถใช้แบนด์วิดธ์ได้อย่างเต็มประสิทธิภาพ อีกทั้งสามารถแยกประเภท ของงานออกได้อย่างชัดเจน Application-Based VLAN จึงมีประโยชน์สำหรับหน่วยงานที่ต้องใช้ งานที่จำเพาะเจาะจงเฉพาะผู้ใช้กลุ่มต่าง ๆ ภาพที่ 2-7 แสดงลักษณะของ VLAN ที่อาศัย Application ที่ต่างกันเป็นหลัก 2.1.2 มาตรฐานของ IEEE 802.1Q มาตรฐาน IEEE 802.1Q นั้นเป็นมาตรฐานในการนำข้อมูลของ VLAN membership ใส่เข้า ไปใน Ethernet Frame หรือที่เรียกว่า การ Tagging และโปรโตคอล 802.1Q นี้ถูกพัฒนาเพื่อ แก้ปัญหาเรื่องการบริหารจัดการด้านเครือข่ายที่เพิ่มขึ้น เช่น การกระจายเครือข่ายใหญ่ๆ ให้เป็น ส่วนย่อยๆ ( Segment ) ทำให้ไม่สูญเสียแบนวิธให้กับการ broadcast และ multicast มากเกินไป และยังเป็นการรักษาความปลอดภัยระหว่างส่วนย่อยต่างๆภายในเครือข่ายให้สูงขึ้นอีกด้วยการต่อ เติมเฟรม (tagging Frame) ด้วยมาตรฐาน 802.1Q นั้นจะทำในระดับ Data-Link layer และการทำ VLAN Tagging นั้นจะเป็นการเปลี่ยนรูปแบบของ Ethernet Frame มาตรฐาน 802.3 ให้เป็นรูปแบบ ใหม่ที่เป็นมาตรฐาน 802.3 ac ซึ่งมีไดอะแกรมของเฟรมมาตรฐาน 802.3 ดังภาพที่ 2-8 และ ไดอะแกรมของมาตรฐาน 802.3 ac ดังภาพที่ 2-9 12 ภาพที่ 2-8 แสดงรูปแบบของเฟรม 802.3 ก่อนที่จะทำ VLAN Tagging ภาพที่ 2-9 แสดงรูปแบบของเฟรม 802.3 ac ที่มีการ tagging 802.1Q แล้ว ตารางที่ 2-1 ตารางของคำอธิบายส่วนต่างๆ ของมาตรฐาน 802.3 ac Label Field Name Size Description PRE Preamble 7 bytes Used to synchronize traffic between nodes SF Start Frame Delimiter 1 bytes Marks the beginning of the header DA Destination Address 6 bytes The MAC address of the next/final hop SA Source Address 6 bytes The MAC address of the source TCI Tag Control Info 2 bytes When set to “8100” indicates this frame uses 802.1q and Q tags P Priority 3 bits Indicates 802.1q priority level 0-7 C Canonical Indicator 1 bit Indicates if the MAC address are in caninical Format Ethernet uses “0” VLAN VLAN Identifier(VID) 12 bits Indicates which VLAN this frame belong to (0-4095) T/L Type/Length Field 2 bytes Ethernet II “type” or 802.3 “length” information Payload Payload . 1500bytes User data or higher layer protocol information FSC Frame Check Sequence 4 bytes Error checking on the frame’s content-also know as “CRC” (Cyclical Redundancy Check) PRE SF DA SA T/L Payload FCS PRE SF DA SA T C I P C V L A N T/L Payload FCS 802.1Q 4 bytes 13 2.1.3 VLAN Tagging ของ Cisco การทำ Frame Tagging ตามมาตรฐาน 802.1Q ที่ได้กล่าวมาข้างต้นซึ่งเป็นมาตรฐานที่ใช้งาน ทั่วไป กับ Switch ยี่ห้ออื่นๆ รวมทั้งใช้ได้กับบางรุ่นของ Cisco อีกด้วย ประโยชน์ของการใช้ Frame Tagging นี้ ก็เพื่อให้สามารถสื่อสารกันระหว่าง VLAN หมายเลขเดียวกัน แต่อยู่ต่าง Switch กัน อย่างไรก็ดี Cisco ก็มีโปรโตคอล ที่มีจุดประสงค์ในทำนองเดียวกับ IEEE 802.1Q ซึ่งก็คือ ISL หรือ Inter-switching Link ภาพที่ 2-10 แสดงลักษณะของการสอดแทรกข่าวสารลงไปบน เฟรมข้อมูลที่เรียกว่า Tagged Frame ISL เป็นโปรโตคอลที่ใช้เพื่อการ Encapsulation เฟรมข้อมูล ของ Cisco จุดประสงค์ก็เพื่อการ สื่อสารกัน ระหว่าง VLAN หลายๆวง ที่กระจายไปตาม Switches Hub ต่างๆ โดยอาศัยสายสัญญาณ เชื่อมต่อเพียงหนึ่งเดียวทำให้ VLAN สามารถสื่อสารกันผ่าน Switching Hub หลายๆตัวได้ โดยใช้ วิธีการใส่ Header เพิ่มเติมเข้าไปที่ส่วนหัวของ Frame ภาพที่ 2-11 แสดงการเชื่อมต่อระหว่าง VLAN ที่กระจายตาม Switches ต่างๆด้วย ISL Trunk Destination Source VLAN Tag Control Type/Length Data FCS Address Address Preteral ID Info Bytes 6 6 2 2 2 4 VLAN Preteral ID = Priority Cano- VLAN Identifier 0x8100 nical Bits 16 3 1 12 14 ISL เป็น Protocol ของ Cisco ถูกนำมาใช้งานกับ Fast Ethernet และ Gigabit Ethernet Trunk Link เท่านั้น ซึ่งปัจจุบัน Network Interface Card จาก Intel และผู้ผลิตอื่นๆ ต่างๆ ให้การสนับสนุน ISL เป็นจำนวนมาก หากไม่ต้องการใช้ ISL Protocol แต่ต้องการสื่อสารระหว่าง VLAN บน Trunk Link จะต้อง ใช้ 802.1q Protocol การพัฒนาโปรแกรมในสารนิพนธ์นี้จะใช้มาตรฐาน 802.1Q โดยที่ไม่สามรถใช้ งาน ISL ได้ ภาพที่ 2-12 แสดงลักษณะการทำ Encapsulation ให้กับเฟรมข้อมูล โดยวิธี ISL ของ Cisco 2.1.4 ประโยชน์ของ VLAN 1. เพิ่มประสิทธิภาพของเครือข่าย ในระบบเครือข่ายทั่วไปจะมีการส่งข้อมูล Broadcast จำนวนมาก ทำให้เกิดความคับ คั่ง ( Congestion ) และ VLAN มีความสามารถช่วยเพิ่มประสิทธิภาพของเครือข่ายได้เนื่องจาก VLAN จะจำกัดให้ส่งข้อมูล Broadcast ไปยังผู้ที่อยู่ใน VLAN เดียวกันเท่านั้น 2. ง่ายต่อการบริหารการใช้งาน VLAN อำนวยความสะดวกในการบริหารจัดการโครงสร้างของระบบเครือข่ายให้ง่าย มีความยืดหยุ่น และเสียค่าใช้จ่ายน้อย โดยเพียงเปลี่ยนโครงสร้างทางตรรกะ( Logical ) เท่านั้น ไม่ จำเป็นต้องเปลี่ยนโครงสร้างทางกายภาพ กล่าวคือ ถ้าต้องการเปลี่ยนโครงสร้างของ VLAN ก็ทำโดยการคอนฟิกที่อุปกรณ์เครือข่ายใหม่ไม่จำเป็นเปลี่ยนรูปแบบทางกายภาพของการเชื่อมต่อเครือ ข่ายที่มีอยู่เดิม ISL Header Encapsulated Ethernet CRC 26 bytes Frame 4 bytes DA Type User SA LEN AAAA03 HSA VLAN BPDU INDEX RES VLAN BPDU 15 3. เพิ่มการรักษาความปลอดภัยมากขึ้น เนื่องจากการติดต่อระหว่างอุปกรณ์เครือข่ายจะสามารถทำได้ภายใน VLAN เดียวกัน เท่านั้น ถ้าต้องการที่จะติดต่อข้าม VLAN ต้องติดต่อผ่านอุปกรณ์ค้นหาเส้นทางหรือ Switch Layer 3 2.1.5 ข้อเสียและปัญหาที่พบของการใช้ VLAN 1. ถ้าเป็นการแบ่ง VLAN แบบ port-based นั้นจะมีข้อเสียเมื่อมีการเปลี่ยนพอร์ตนั้น อาจจะต้องทำการคอนฟิก VLAN ใหม่ 2. ถ้าเป็นการแบ่ง VLAN แบบ MAC-based นั้นจะต้องให้ค่าเริ่มต้นของ VLAN membership ก่อน และปัญหาที่เกิดขึ้นคือในระบบเครือข่ายที่ใหญ่มาก จำนวนเครื่องนับพันเครื่อง นอกจากนี้ถ้ามีการใช้เครื่อง Notebook ด้วย ซึ่งก็จะมีค่า MAC และเมื่อทำการเปลี่ยนพอร์ตที่ต่อก็ ต้องทำการคอนฟิก VLAN ใหม่ 2.1.6 ช่องโหว่ของการใช้ VLAN โดยปกติแล้วจะไม่สามารถส่งข้อมูลข้าม VLAN ได้ถ้าไม่ใช้ Router Switch เลเยอร์สาม หรือ ตัวกลางที่ช่วยค้นหาเส้นทางอื่นๆ แต่มีช่องโหว่ที่ทำให้ผู้ใช้สามารถส่งข้อมูลข้าม VLAN ได้โดยไม่ ต้องอาศัยตัวกลาง เรียกว่า " การเบรค VLAN " ซึ่งช่องโหว่นี้เกิดจาก Trunking protocol ของ Switch บางรุ่น และวิธีการทดสอบคือทำการส่งข้อมูลตัวอย่างจาก VLAN หนึ่งไปยัง VLAN อื่น ที่ อยู่บนสวิตช์คนละตัว และข้อมูลที่ส่งนั้นให้ทำการสร้าง Ethernet Frame ที่มี Tag 802.1Q และ เปลี่ยนค่าของหมายเลข VLAN ให้เป็นค่าของหมายเลข VLAN ปลายทางที่ต้องการเบรค เฟรมที่ถูก สร้างขึ้นใหม่ และค่าของ Tag 802.1Q จะมีรูปแบบ "81 00 0n nn" โดยที่ nnn คือหมายเลขของ VLAN ซึ่งผลจากการทดสอบดังกล่างจะสามารถทำการเบรค VLAN ได้ สถานการณ์ต่อไปนี้จะทำให้เกิดช่องโหว่ของ VLAN 1. เมื่อผู้บุกรุกสามารถที่จะเข้าถึงพอร์ตใน Switch ที่เป็น VLAN เดียวกันกับ VLAN ของ Trunk port 2. เครื่องเป้าหมายอยู่บนสวิตช์ต่างกันแต่มีกลุ่ม Trunk เดียวกัน 3. ผู้บุกรุกทราบถึง MAC address ของเครื่องเป้าหมาย 4. Layer 3 device สามารถสร้าง Connection จาก VLAN เป้าหมายกลับไปยัง VLAN ที่เป็นต้นทางได้ 2.1.7 Module 802.1Q ในระบบปฏิบัติการลินุกซ์ การที่จะให้ระบบปฏิบัติการลินุกซ์สามารถที่จะอ่าน Header ของ Ethernet Frame ที่ทำ VLAN Tagging ได้ต้องอาศัยการทำงานของ Module 802.1Q ซึ่งได้รับการพัฒนาโดย Ben Greear ซึ่งพัฒนาขึ้นมาครั้งแรกเพื่อให้สามารถทำงานร่วมกับ Kernel 2.2 ของระบบปฏิบัติการลินุกซ์และ 16 ยังมีการพัฒนาต่อมาโดยหลายเนื่องจากเป็น Open Source ในปัจุบันได้ถูกนำมารวมเข้าไว้ใน Kernel 2.6 ของระบบปฏิบัติการลินุกซ์ขึ้นไปโดยที่ไม่ต้องทำการติดตั้งเพิ่ม 2.1.7.1 วิธีการติดตั้งและเรียกใช้งาน VLAN ใน Module 802.1Q 1. เมื่อทำการ Download VLAN แพคเก็จมาเรียบร้อย ให้แตกไฟล์ที่ได้มา ด้วยคำสั่ง # tar -xvzf vlan*.tar.gz โดยที่ * คือเวอร์ชั่นที่เหมาะสมกับ Kernel ที่ใช้งานใน ระบบปฏิบัติการลินุกซ์ 2. ไปยัง VLAN Directory ตามที่ได้แตกไฟล์ออกมาเพื่อทำการติดตั้งโดยใช้ คำสั่ง # make 3. หลังจากนั้นจะได้โปรแกรมที่ชื่อว่า “vconfig” เพื่อนำมาใช้ในการ กำหนดให้ Network Interface Card สามารถรับ Ethernet Frame ที่ทำ VLAN Tagging ได้ 4. การเรียกใช้งาน “vconfig” ในระบบปฏิบัติการลินุกซ์เพื่อกำหนด VLAN มีคำสั่งดังต่อไปนี้ # vconfig add [interface-name] [vlan-id] เป็นคำสั่งที่ใช้ในการกำหนดค่า VID ให้Network Interface Card โดยที่ [interface-name] คือชื่อของ Network Interface Card ที่ต้องการกำหนด เช่น eth0 หมายถึงNetwork Interface Card ที่1 eth1 Network Interface Card ที่2 [vlan-id] คือค่า VID ที่ต้องการกำหนดใน VLAN # vconfig rem [vlan-device] เป็นคำสั่งที่ใช้ในการลบค่า Network Interface Card ที่ กำหนดค่า VID ไว้ โดยที่ [vlan-device] คือชื่อของ Network Interface Card ที่กำหนดค่า VID ไว้ เช่น eth0.1 หมายถึง Network Interface Card ที่ 1 มีค่า VID เท่ากับ 1 # vconfig set_flag [vlan-device] 0 1 เป็นคำสั่งที่ใช้ในการกำหนดค่า flag ให้ Network Interface Card ที่กำหนดค่า VID ไว้โดยปกติค่าจะเท่ากับ 0 จะทำให้ Header ของ Ethernet Frame บันทึกค่าของ VLAN Tagging ไว้จะกำหนดเป็น 1 ในกรณีที่มีการใช้งานโปรแกรมวิเคราะห์ เครือข่าย ที่ไม่สามารถอ่าน Ethernet Frame ที่มี VLAN Tagging โปรแกรมจะทำการลบ VLAN Tagging ก่อนที่จะผ่านการทำงานขั้นต่อไป # vconfig set_name_type VLAN_PLUS_VID VLAN_PLUS_VID_NO_PAD DEV_PLUS_VID DEV_PLUS_VID_NO_PAD เป็นคำสั่งที่ใช้ในบอกให้ระบบปฏิบัติการลินุกซ์ รู้จักรูปแบบของการอ้างอิง Network Interface Card ที่กำหนดค่า VID ไว้เพื่อนำไปใช้กับคำสั่งอื่นๆ 17 ในระบบปฏิบัติการลินุกซ์โดยสามารถเลือกใช้คำสั่งใดคำสั่งหนึ่งใน 4 แบบ เช่น ถ้าไม่ใช้คำสั่งนี้ใน การกำหนด ค่า IP Address ให้ eth0.1 จะไม่สามารถทำได้ 2.1.7.2 การกำหนดค่า IP Address ในNetwork Interface Cardที่กำหนดค่า VID มี คำสั่งดังนี้ # ip addr add [IP Address] broadcast [Broadcast IP] dev [vlan-device] เป็นคำสั่งที่ใช้ใน การกำหนด IP Address เพิ่มในNetwork Interface Card โดยที่ [IP Address] คือค่าเลข IP Address พร้อม Prefix เช่น 192.168.2.1/24 [Broadcast IP] คือค่าเลข Broadcast IP เช่น 192.168.2.255 [vlan-device] คือชื่อของ Network Interface Card ที่กำหนดค่า VID ไว้ เช่น eth0.1 หมายถึงNetwork Interface Card ใบแรกที่มีค่า VID เท่ากับ 1 # ip link set [vlan-device] updown เป็นคำสั่งที่ให้ Network Interface Card ที่ได้กำหนดค่า IP Address แล้วพร้อมที่จะใช้งานทันทีจะกำหนดเป็น up เมื่อต้องการหยุดการใช้งานในNetwork Interface Cardนั้นให้กำหนดเป็น down 2.2 IP Address คอมพิวเตอร์ส่วนบุคคล ที่ใช้งานโปรโตคอล TCP/IP เมื่อต่อเชื่อมเข้าสู่ Internet ต้องมี หมายเลขหรือรหัสที่บ่งบอก ตำแหน่งของเครื่องที่ต่ออยู่บนอินเทอร์เน็ต โดยการสื่อสารกันใน ระบบเครือข่าย Internetที่มีโปรโตคอล TCP/IP เป็นมาตรฐาน เครื่องคอมพิวเตอร์ทุกเครื่องจะต้องมี หมายเลขประ จำตัวเอาไว้อ้างอิง ให้เครื่องคอมพิวเตอร์อื่นๆ ได้ทราบเหมือนกับคนทุกคนต้องมีชื่อ ให้คนอื่นเรียก หมายเลขอ้างอิงดังกล่าวเรียกว่า IP Address หรือหมายเลข IP หรือบางทีก็เรียกว่า "แอดเดรส IP" เพื่อเป็นการวางมาตรฐานสำหรับปฏิบัติร่วมกัน หน่วยงาน InterNIC (Internet Network Information Center) ซึ่งเป็นหน่วยงานที่ได้รับการจัดตั้งขึ้นโดยรัฐบาลสหรัฐอเมริกา จึงได้ ทำหน้าที่เป็นผู้ออกกฏกติกา สำหรับการจัดสรรหมายเลข IP Address ให้กับเครื่องคอมพิวเตอร์ทั่ว โลกที่จะต้องมีการเชื่อมต่อเข้ากับเครือข่าย Internet โดยมีจุดประสงค์เพื่อป้องกันปัญหาการกำหนด IP Address ซ้ำซ้อนกันขึ้น หมายเลข IP Address ซึ่งมีการกำหนดใช้งานในเครือข่ายคอมพิวเตอร์ทั่วโลกในปัจจุบัน มี ชื่อเรียกเป็นทางการว่า "IPv4" (ในปัจจุบันมีถึงIPV6) มีโครงสร้างการอ้างอิงเป็นตัวเลขฐานสอง ความยาว 32 บิต เพื่อเป็นความสะดวกในการระบุอ้างอิงโดยมีการแยกอ่านค่าเลขฐานสองดังกล่าว ออกเป็น 4 กลุ่ม ๆ ละ 8 บิตเรียงตามลำดับ การอ่านหรืออ้างอิงค่าหมายเลข IP Address โดยทั่วไปที่ มักจะพบหรือใช้อ้างอิงถึง สามารถเขียนให้อยู่ในรูปแบบ 205.46.15.198 แทนที่จะอ่านเป็น 18 11001101.00101110.00001111.11000110 เพราะการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ ด้วยกันนั้น จะใช้การอ้างอิงตัวเลขฐานสองเป็นพื้นฐาน เนื่องจากเป็นมาตรฐานการอ้างอิงในระดับ ภาษาเครื่อง ส่วนการอ่านค่าเป็นตัวเลขฐานสิบนั้นเป็นไปเพื่อความสะดวกของมนุษย์เป็นสำคัญ อนึ่งโดยทั่วไปมักนิยมเรียกกลุ่มข้อมูลแต่ละกลุ่มซึ่งมีขนาด 8 บิตว่า "ออกเต็ด" (Octet) มีการกำหนดแบ่งกลุ่มของ IP Address ที่มีการใช้งานทั่วโลกออกเป็น 5 กลุ่ม หรือ 5 คลาส (Class) แต่จะใช้งานในการ Unicast นั้น คือ คลาส A คลาส B และ คลาส C กติกาที่ใช้ในการ กำหนดแบ่งคลาสของ IP Address นั้น กระทำโดยแบ่งตามค่าตัวเลขฐานสองของออกเต็ดแรก ดัง แสดงรายละเอียดในตารางที่ 2-2 และเนื่องจาก InterNIC มีการประกาศห้ามใช้งานแอดเดรสใน คลาส D และ E ตารางที่ 2-2 การแบ่งคลาสของเลขหมาย IP Address ตามข้อกำหนด InterNIC คลาส ค่าของตัวเลขใน ออกเต็ดแรก แอสเดรสฐานสองของ ออกเต็ดแรกที่เป็นได้ ค่าแอสเดรสฐานสิบ ของออกเต็ดแรก A บิตแรกมีค่าเป็น0 00000001 - 10111111 1 ถึง127 **127ใช้เฉพาะทดสอบ B สองบิตแรกมีค่าเป็น10 10000000 - 10111111 128 ถึง 191 C สามบิตแรกมีค่าเป็น110 11000000 - 11011111 162 ถึง 223 D สี่บิตแรกมีค่าเป็น 1110 11100000 - 11101111 224 ถึง 239 ถูกสงวนไม่ให้ใช้ E ห้าบิตแรกมีค่าเป็น 11110 11110000 - 11110111 240 ถึง 247 ถูกสงวนไม่ให้ใช้ แนวคิดในการแบ่งกลุ่ม IP Address ออกเป็นคลาส ก็เนื่องมาจากที่ InterNIC มองว่าเครือข่าย คอมพิวเตอร์ย่อย ๆ ที่มีการเชื่อมต่อเข้ากับเครือข่าย Internet นั้น มีขนาดเล็กใหญ่ไม่เท่ากัน เครือข่ายของบางองค์กรอาจมีขนาดใหญ่โตและต้องการหมายเลขไอพีแอดเดรสเป็นจำนวนมาก ในขณะที่เครือข่ายขององค์กรบางกลุ่มกลับมีเครื่องคอมพิวเตอร์อยู่เพียงไม่กี่เครื่อง ในปัจจุบัน IP Address ที่จัดว่าอยู่ในคลาส A แทบจะไม่ได้มีการจัดสรรให้กับหน่วยงานใดมากนัก IP Address ใน คลาส A นี้ได้รับการกำหนดขึ้นเพื่อใช้จัดสรรให้กับองค์กรขนาดใหญ่มากที่มีเครื่องคอมพิวเตอร์ เชื่อมต่อภายในองค์กรเป็นจำนวนมาก คลาส B เหมาะสำหรับการกำหนดใช้งานให้กับองค์กรขนาด กลาง คลาส C เป็นคลาสที่มักมีการกำหนดใช้งานกับเครื่องคอมพิวเตอร์ส่วนใหญ่ภายในเครือข่าย Internet 19 2.3 การแบ่งเครือข่ายย่อย (Subnetwork) การทำ Subnetwork ก็คือ การแบ่งเครือข่ายออกเป็นส่วนย่อย ๆ เพื่อให้ง่ายแก่การบริหาร และง่ายแก่การนำไปใช้ เพราะถ้าไม่มีการแบ่ง Subnet แล้วล่ะก็ การแจกจ่ายหมายเลข IP Address ให้กับเครื่องหรือระบบเครือข่ายย่อย ๆ อาจจะทำให้สิ้นเปลืองหมายเลข IP Address ไปโดยใช่เหตุ เพราะว่าถ้ากำหนดเครื่องลูกข่ายแม้ว่าจะเป็นคลาส C ซึ่งสามารถมีเครื่องลูกข่ายได้ถึง 254 เครื่อง แต่ในความเป็นจริงแล้ว ก็คงจะไม่สามารถมีได้มากถึงขนาดนั้น การแบ่ง Subnet จึงเข้ามาช่วยใน การแบ่งเครือข่ายออกเป็นเครือข่ายย่อย ๆ วิธีการแบ่ง Subnet ตามRFC 950 จะแบ่งโดยที่จะใช้ Subnetid มาเพื่อกำหนดว่าเป็นเครือข่ายย่อยที่เท่าไร ตัวอย่างเช่น เครือข่าย 158.108.0.0 อาจใช้8บิต แรกของโฮสต์มาใช้เป็น SubnetID และอีก 8 บิตที่เหลือใช้เป็นเลขโฮสต์ดังภาพที่ 2-13 ส่วนใน SubnetID ที่เพิ่มขึ้นมาถือว่าเป็นการขยายเครือข่ายออกไปจึงเรียกเลขเครือข่ายและ SubnetID รวมกันเรียกว่า พรีฟิกช์เครือข่ายส่วนขยาย (Extended Network Prefix)โดยสามารถเขียนแทน จำนวนบิตพรีฟิกช์ตามภาพที่2-13 ที่ด้วย /24 หรือมีพรีฟิกช์เท่ากับ 24 16 บิต 8 บิต 8 บิต 158.108 SubnetID HostID ภาพที่ 2-13 ตัวอย่างการแบ่งเครือข่ายย่อยของ 158.108 ตารางที่ 2-3 การแบ่งเครือข่ายย่อยของ 158.108 ด้วย Subnet 8 บิต Subnetที่ เครือข่ายย่อย IP Address เริ่มต้น IP Address สุดท้าย 0 158.108.0.0 ไม่ใช้ - 1 158.108.1.0 158.108.1.1 158.108.1.254 2 158.108.2.0 158.108.2.1 158.108.2.254 3 158.108.3.0 158.108.3.1 158.108.3.254 : : : : 253 158.108.253.0 158.108.253.1 158.108.253.254 254 158.108.254.0 158.108.254.1 158.108.254.254 255 158.108.255.0 ไม่ใช้ - พรีฟิกช์เครือข่ายส่วนขยาย 20 Subnetmask เป็นตัวเลข 32 บิต เหมือนกับ IP Address และจะใช้เจ้า Subnetmask นี้ในการ บอกข้อมูลว่ามีกี่บิตเป็น NetworkID และกี่บิตเป็น Host ID โดยที่จะมีค่า บิต 1 สำหรับส่วนที่เป็น NetworkID และ บิต 0 สำหรับส่วนที่เป็น Host ID เช่น ถ้ามี IP Address ที่เป็น Class A ซึ่งมี NetworkID เท่ากับ 8 บิต และ Host ID เท่ากับ 24 บิต สามารถเขียน Subnetmask เรียงตามบิตได้ ดังนี้ 11111111 . 00000000 . 00000000 . 00000000 และถ้าแปลงเป็นเลขฐาน10 ก็จะได้ 255.0.0.0 และในปัจจุบันนิยมเขียน Subnetmask โดยมีพรีฟิกช์ในรูปแบบที่นิยมคือ 158.108.0.0/24โดย เรียกว่าเครือข่าย 158.108.0.0 มีพรีฟิกช์ 24 บิต จากหมายเลข Subnetmask ของ IP ในแต่ละคลาส จะสามารถทราบได้ทันทีว่า แต่ละคลาส นั้นมีเครื่องลูกข่ายได้กี่เครื่อง โดยดูจากหมายเลข 0 ซึ่งถ้าแปลงออกมาเป็นเลขฐานสองแล้วจะได้ ดังนี้ Class A 255.0.0.0 11111111.00000000. 00000000. 00000000 มี 0 จำนวน 24 ตัว จะได้ = 224 = 16,777,214 เครื่อง Class B 255.255.0.0 11111111. 11111111.00000000.00000000 มี 0 จำนวน 16 ตัว จะได้ = 216 = 65,536 เครื่อง Class C 255.255.255.0 11111111. 11111111. 11111111.00000000 มี 0 จำนวน 8 ตัว จะได้ = 28 = 256 เครื่อง ภาพที่ 2-14 การคำนวนจำนวนเครื่องลูกข่ายในแต่ละคลาส ถ้าไม่ได้ทำการแบ่ง Subnet ใด ๆ ก็จะต้องใช้หมายเลข Subnet Mask ที่เป็นค่าดีฟอลต์ของ คลาสๆ นั้น ถ้าอยู่ในคลาส C และไม่ได้แบ่ง Subnet เวลากำหนดหมายเลข Subnet Mask ให้กับ เครื่องลูกข่าย ก็จะกำหนดไว้ที่ 255.255.255.0 บทที่ 3 วิธีการดำเนินงาน สารนิพนธ์ฉบับนี้ ได้ทำการจำลองการทำงานของ VLAN บนระบบปฏิบัติการลินุกซ์ โดยนำคุณสมบัติและความสามารถของระบบปฏิบัติการลินุกซ์ มาใช้ในการรับส่งข้อมูลในเครือข่ายและ ทำการตรวจสอบ packet ข้อมูลที่มีการเดินทางในเครือข่ายเพื่อพิจารณาว่าอยู่ใน VLAN เดียวกัน หรือไม่และทำการส่ง packet ไปยังปลายทางตามที่กำหนดคุณสมบัติไว้ใน VLAN โดยแบ่งการ ดำเนินงานออกเป็นดังนี้ 3.1 ขั้นตอนการออกแบบโปรแกรม ประกอบด้วย การดักจับ packet บนเครือข่าย การอ่าน IP Address ใน Header ของแต่ละ packet การพิจารณา IP Address ที่เป็นสมาชิกในแต่VLAN บนระบบเครือข่าย การทำงานในส่วนของ User Interface ที่ทำงานผ่าน Web Browser 3.2 ขั้นตอนการพัฒนาโปรแกรม ประกอบด้วย เครื่องมือที่ใช้ในการพัฒนาโปรแกรม หลักการพัฒนาโปรแกรม 3.3 ขั้นตอนการประเมินประสิทธิภาพโปรแกรม ประกอบด้วย เครื่องมือที่ใช้ในการประเมินโปรแกรม สถิติที่ใช้ในการวิเคราะห์ข้อมูล 22 3.1 ขั้นตอนการออกแบบโปรแกรม ภาพที่ 3-1 ขั้นตอนการทำงานของ VLAN ที่จำลองในระบบปฏิบัติการลินุกซ์ START ดักจับ packet ที่ผ่านมายังเครื่องลินุกซ์ ที่จำลองการทำงานของ VLAN และที่ ทำหน้าที่เป็น Gateway อ่าน Header แต่ละ packet เพื่อตรวจ IP Address ของต้นทาง และ ปลายทาง ตรวจสอบ IP Address ตามที่ กำหนดใน VLAN ทิ้ง packet นั้น ส่ง packet ไปยังปลายทางของแต่ละ IP Address STOP IP Address ต้นทางและ ปลายทางอยู่ต่าง VLANกัน IP Address ต้นทางและ ปลายทางอยู่ใน VLANเดียวกัน 23 3.1.1 การดักจับ packet บนเครือข่าย หลักการทำงานของการดักจับข้อมูลโดยปกติเครื่องคอมพิวเตอร์ที่อยู่ใน LAN เดียวกันจะ ได้รับข้อมูลที่เครื่องคอมพิวเตอร์ทำการรับและส่งกันในระบบ LAN ทั้งหมด ซึ่งในการรับและส่ง ข้อมูลระหว่างเครื่องคอมพิวเตอร์นั้น จะมีการกำหนด IP Address ของเครื่องรับปลายทาง จึงเป็น หน้าที่ของเครื่องรับปลายทางในการตรวจสอบ Header ของแต่ละ packet ว่ามี IP Address ปลายทางที่ส่งมาถึงเครื่องที่รับหรือไม่ ถ้าใช่ก็จะทำการรับข้อมูล แต่ถ้าไม่ใช่ก็จะทำการปฏิเสธ ข้อมูลดังกล่าว การกระทำนี้สามารถระบุได้ว่าข้อมูลนั้นถูกส่งมาจากต้นทางที่ใดและต้องการส่งไป ยังปลายทางที่ไหน ส่วนของดักจับข้อมูลนั้นเป็นส่วนที่ติดต่อกับ Network Interface Card (NIC) บน ระบบปฏิบัติการลินุกซ์ ซึ่งปกติก็จะทำการอ่าน IP Address ที่ Header และตรวจสอบว่าเป็น packet ที่ส่งมาถึงหรือไม่ แต่ในสารนิพนธ์ต้องการที่จะดักจับ packet ทุกๆ packet ที่เข้ามาจึงได้นำคุณสมบัติที่มีมาในระบบปฏิบัติการลินุกซ์มาใช้โดยการใช้คำสั่ง # echo "1" > /proc/sys/net/ipv4/ip_forward เป็นคำสั่งที่กำหนดค่า 1 ให้ ip_forward ที่เป็น โปรแกรมในอยู่ในระบบปฏิบัติการลินุกซ์เพื่อให้รับ packet อื่นๆนอกจาก packet ที่ส่งมายัง ระบบปฏิบัติการลินุกซ์ โดยปกติจะมีค่าป็น 0 ในการดักจับpacket ให้กำหนดเครื่องคอมพิวเตอร์ที่ อยู่ในเครือข่ายตั้งค่า Gateway มายังเครื่องที่ติดตั้งระบบปฏิบัติการลินุกซ์ที่ทำการจำลอง VLAN เมื่อรับ packet มาก็จะนำไปเก็บไว้ใน buffer ซึ่งอยู่ใน memory เพื่อทำการวิเคราะห์ส่วน Header และข้อมูลบางส่วนของ packet ตั้งแต่ระดับ Network layer ไปจนกระทั่งถึง Application Layer การ อ่านค่า data ใน buffer เพื่อทำการแยก Header ของแต่ละ layer ออก ซึ่งจะได้ Header ในระดับ Data link layer, IP (Network layer) , TCP (Transport layer) ซึ่งสามารถนำข้อมูลที่ได้ดังกล่าวไปใช้งาน ได้ 3.1.2 การอ่าน IP Address ใน Header ของแต่ละpacket เมื่อดักจับ packet ที่มีในระบบเครือข่ายก็จะทำการแยกส่วน Header ของ packet เพื่ออ่าน ข้อมูลในแต่ส่วนการทำสารนิพนธ์นี้จะนำเฉพาะ IP Address มาพิจารณา โดย Headerใน packet ที่ สามารถดักจับได้ภายในเครือข่ายสามารถแบ่งออกได้เป็น 2 แบบคือ Header ที่เป็นแบบ IEEE 802.3 Ethernet Frame ภาพที่ 3-2 Ethernet Frame IEEE 802.3 Preamble: 7 SFD: 7 DA: 6 SA: 6 Types/ Data: 48-1500 CRC:4 Length: 2 Normal Ethernet Frame 24 และส่วน Header ที่เป็นของ VLAN ซึ่งจะมี VLAN Tagging ตามมาตรฐาน IEEE 802.1Q ภาพที่ 3-3 VLAN IEEE 802.1Q Frame ปกติที่ Network Interface Card จะตรวจสอบข้อมูลที่ Header ของแต่ละ packet ก่อนที่จะ ตัดสินใจรับหรือทิ้ง packet นั้นไปใน Network Interface Card บางรุ่นจะทำการทิ้ง packet ที่มี VLAN Tagging เพราะเข้าใจว่า Header ที่อ่านจาก packet นั้นเสียหายและจะไม่สามารถอ่านข้อมูล ของ IP Address ได้ ในการจะให้ระบบปฏิบัติการลินุกซ์ สามารถอ่าน Header ที่มี VLAN Tagging ได้ต้องใช้ 802.1Q Module และทำการกำหนด VID ใน Network Interface Card 3.1.3 การพิจารณา IP Address ที่เป็นสมาชิกในแต่ VLAN บนระบบเครือข่าย ระบบปฏิบัติการลินุกซ์ จะพิจารณาว่าจะส่ง packet ต่อไปยังปลายทางหรือไม่ ในการทำงาน ขั้นนี้จะใช้ IP Address ตรวจสอบสมาชิกในแต่ละ VLAN การกำหนดสมาชิกในแต่ละVLAN ใน สารนิพนธ์นี้ได้นำ Iptable Module ซึ่งเป็น Firewall ของระบบปฏิบัติการลินุกซ์มาใช้งานในการ พิจารณา IP Address ของแต่ละ packet ที่ผ่านเข้ามาเพื่อตรวจสอบว่าเป็นสมาชิกตามที่กำหนดในแต่ ละ VLAN หรือไม่ 3.1.3.1 หลักการทำงานของ Iptable Iptable คือโปรแกรมที่เป็น Firewall นำมาใช้ในการกรอง packet ในระบบปฏิบัติการ ลินุกซ์โดยที่โปรแกรมจะประกอบด้วยตารางข้อมูลของ IP Address ที่ถูกกำหนดเป็นกฎใช้ในการ ตรวจสอบ packet ว่าอนุญาตหรือไม่อนุญาตให้ผ่านเข้ามาในระบบเครือข่าย กฎต่างๆสามารถ กำหนดโดยผู้ดูแลระบบหรือผู้ใช้งานคอมพิวเตอร์ที่สถานะเป็น Root ในระบบปฏิบัติการลินุกซ์ โดยที่ Iptable จะประกอบไปด้วยตารางที่ใช้พิจารณาอยู่ 3 ตารางด้วยกันคือ Pr eamble: 7 SFD: 7 DA: 6 SA: 6 2 2 Types/ Data: 48-1500 CRC:4 TPI TAG Length: 2 IEEE 802.1Q Tagged Frame Inserted Fields IEEE 802.1q only : 81-00 SNAP : AA-AA-03 User CFI Bits of VLAN ID (VID) to Identifly 4,096 Possible VLANS Priority 3 bits 1 bits 12 bits 802.1q 25 1. Chain INPUT เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะเข้ามา ในเครื่องระบบปฏิบัติการลินุกซ์ที่ใช้งาน Iptable อยู่ 2. Chain OUTPUT เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะ ออกจากเครื่องระบบปฏิบัติการลินุกซ์ที่ใช้งาน Iptable อยู่ 3. Chain FORWARD เป็นตารางที่ใช้ตรวจสอบ IP Address ของ packet ที่จะ เข้าในเครื่องระบบปฏิบัติการลินุกซ์และจะถูกส่งต่อ packet ต่อไปยังปลายทางซึ่งใช้ในกรณีที่ใช้ ระบบปฏิบัติการลินุกซ์ทำหน้าที่เป็น Gateway ซึ่งตารางนี้จะเป็นตารางหลักในสารนิพนธ์นี้จะ นำมาใช้ในการตรวจสอบ Ip Address ของ packet ในระบบเครือข่าย เมื่อมี packet ในระบบ เครือข่ายเดินทางมายัง Gateway Routing Decision ทำการตรวจสอบ IP Address ปลายทาง ตรวจสอบ IP Address ในกฏของ FORWARD TABLE ตรวจสอบ IP Address ในกฏของ INPUT TABLE IP Address ปลายทางตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ ทิ้ง packet เมื่อตรวจสอบ ตามกฎที่กำหนดไว้ Local Process ตรวจสอบ IP Address ในกฏของ OUTPUT TABLE จัดส่ง packet ไปยัง IP Address ปลายทาง Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ข้อมูลของระบบ ปฏิบัติการลินุกซ์ที่จะส่งไป ยังคอมพิวเตอร์เครื่องอื่นๆ Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน ภาพที่ 3-4 Block Diagram แสดงขั้นตอนการตรวจสอบ IP Address ใน Iptable 26 ขั้นตอนการทำงานในการตรวจสอบ IP Address ใน Iptable 1. เมื่อ packet ที่มีในระบบเครือข่ายเดินทางเข้ามาที่ระบบปฏิบัติการลินุกซ์ซึ่ง ทำหน้าที่เป็น Gateway ได้รับการอ่านค่า IP Address จาก Header เพื่อที่จะรับการตรวจสอบ IP Address ในขั้นตอน Routing Decision 2. ขั้นตอนการตรวจสอบขั้นแรก Routing Decision จะตรวจสอบ IP Address ปลายทางของแต่ละ packet เมื่อทำการตรวจสอบจะแยก packet ออกเป็น 2 กลุ่ม โดยกลุ่มแรกเมื่อ IP Address ปลายทางตรง IP Address ของระบบปฏิบัติการลินุกซ์ก็จะจัดส่งไปพิจารณาในกฎของ INPUT Table กลุ่มที่ 2 เมื่อ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลิ นุกซ์ก็จะจัดส่งไปพิจารณาในกฎของ FORWARD TABLE โดยในสารนิพนธ์จะใช้ FORWARD TABLE มาใช้ตรวจสอบสมาชิกในแต่ละ VLAN 3. ขั้นตอนการตรวจสอบ IP Address ของแต่ละ packet ใน FORWARD TABLE จะตรวจสอบทั้ง IP Address ต้นทางและปลายทาง โดยกฎที่มีใน FORWARD TABLE จะ ถูกกำหนดให้เฉพาะ IP Address ที่อยู่ใน VLAN เดียวกันสามารถยอมให้ packet ผ่านไปได้ก็จะเข้า สู่กระบวนการส่งต่อไปยัง IP Address ปลายทางต่อไปและ packet ที่มี IP Address อยู่ละ VLAN จะ ไม่ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้และไม่ยอมให้ผ่านก็จะเข้าสู่ขั้นตอนการทิ้ง packet 4. ขั้นตอนการตรวจสอบ IP Address ของแต่ละ packet ใน INPUT TABLE จะตรวจสอบ IP Address ต้นทาง โดยขึ้นอยู่กับกฎที่มีใน INPUT TABLE ถ้ากฎที่ยอมให้ผ่านได้ packet ผ่านไปในเครื่องระบบปฏิบัติการลินุกซ์และ packet ที่มีไม่ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้ก็จัดส่งไปยังขั้นตอนการทิ้ง packet 5. เมื่อระบบปฏิบัติการลินุกซ์จะจัดส่ง packet ไปยังคอมพิวเตอร์อื่นๆใน เครือข่ายก็จะตรวจสอบ IP Address ของแต่ละ packet ที่จะจัดส่งในกฎของ OUTPUT TABLE ถ้า กฎที่ยอมให้ผ่านได้ packet ก็จะถูกส่งไปตามที่ IP Address ปลายทางระบุไว้ในส่วน packet ที่ไม่ ตรงกับกฎที่กำหนดไว้จะทำให้ ปฏิเสธ packet นี้และจัดส่งไปยังขั้นตอนการทิ้ง packet ในการออกแบบโปรแกรมในสารนิพนธ์ได้เพิ่มส่วนที่ช่วยให้ระบบเครือข่ายขนาดเล็ก ติดต่อกับ Internet โดยที่มี 1 Public IP Address และต้องการให้เครื่องคอมพิวเตอร์ทั้งหมดใน เครือข่ายใช้งาน Internet จะมีการนำ NAT (Network Address Translation) มาใช้งานเพื่อให้ Private IP Address ที่ได้กำหนดขึ้นมาในระบบเครือข่ายภายในสามารถเปลี่ยนเป็น Public IP Address เพื่อ ออกไปใช้งาน Internet โดยที่การทำงานผ่าน Iptable มีกระบวนการทำงาน ดังนี้ 27 เมื่อมี packet ในระบบ เครือข่ายเดินทางมายัง Gateway Routing Decision ทำการตรวจสอบ IP Address ปลายทาง ตรวจสอบ IP Address ในกฏของ FORWARD TABLE ตรวจสอบ IP Address ในกฏของ INPUT TABLE IP Address ปลายทางตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ IP Address ปลายทางไม่ตรงกับ IP Address ของระบบปฏิบัติการลินุกซ์ ทิ้ง packet เมื่อตรวจสอบ ตามกฎที่กำหนดไว้ Local Process ตรวจสอบ IP Address ในกฏของ OUTPUT TABLE จัดส่ง packet ไปยัง IP Address ปลายทาง Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน Packet ข้อมูลของระบบ ปฏิบัติการลินุกซ์ที่จะส่งไป ยังคอมพิวเตอร์เครื่องอื่นๆ Packet ที่กฏในตาราง ปฎิเสธไม่ยอมให้ผ่าน Packet ที่กฏในตาราง ยอมให้ผ่าน PREROUTING POSTROUTING ภาพที่ 3-5 Block Diagram แสดงขั้นตอนการทำงานของ NAT ใน Iptable 28 การทำงานก็จะเหมือนกับ Iptable ที่ได้กล่าวมาข้างต้นโดยตรวจสอบเมื่อ packet เข้า มาได้รับการอ่านค่า IP Address จาก Header และเข้าไปยังส่วนของ PREROUTING ทำการตรวจ IP Address ของต้นทางที่ส่งมา และทำการเปรียบเทียบกับตาราง NAT เพื่อเปลี่ยนเป็น IP Address ของ ปลายทางให้เป็น Private IP Address ปลายทางที่ถูกต้องก่อนส่งไปยังกระบวนการทำ Iptable ต่อไป ส่วนในการเปลี่ยนจาก Private IP Address ต้นทางเป็น Public IP Address ก่อนที่จะออกไปยังระบบ Internet ก็ต้องผ่านกระบวนการใน POSTROUTING ที่โดยใช้ IP Masquerade ซึ่งเป็นการทำ NAT วิธีหนึ่ง โดยจะทำการเปลี่ยน Private IP Address ที่ต้องการจะออกไประบบ Internet ให้เป็น Public IP Address ที่ได้ตั้งค่าไว้ที่ Network Interface Card ที่กำหนดให้เป็นส่วนที่ติดต่อกับเครือข่าย ภายนอก 3.1.3.2 รูปแบบการใช้คำสั่งในการกำหนดกฎในแต่ละ TABLE รูปแบบการใช้งาน Iptable เบื้องต้น Iptable จะมีรูปแบบการใช้งานดังนี้คือ # iptables [table]
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น