VLANs และ เทคนิคในการอิมพลีเมนต์

ฤษฏีของ Virtual Local Area Connections (VLANs) และ เทคนิคในการอิมพลีเมนต์

 

หัวข้อที่จะกล่าวถึงในบทความนี้

–         ความหมายของ VLAN

–         ภาพรวมของ VLAN

–         ประโยชน์ที่จะได้รับจาก การทำ VLAN

–         สแตติก และ ไดนามิค VLAN

–         ทฤษฏีของ Trunk Port และ Access Port ในสวิตซ์

–         รูปแบบการ Encapsulation ของ VLAN

–         Virtual Trunking Protocol (VTP)

–         เทคนิคการ เราติ้งภายใน VLANs หรือที่เรียกกันว่า Inter-VLANs

 

ความหมายของ VLAN

VLAN คือ การแบ่งกลุ่มของสวิตซ์ภายในเลเยอร์ 2 ที่ ไม่ขึ้นกับ ลักษณะทางกายภาพใดๆ กล่าวแบบง่ายๆ ก็คือ เราไม่จำเป็นที่จะต้องนำสวิตซ์มาต่อกันเป็น ทอดๆ เพื่อจัดกลุ่มของสวิตซ์ว่า สวิตซ์กลุ่มนี้คือ กลุ่มเดียวกัน แต่ เราสามารถที่จะ จัดกลุ่มให้ สวิตซ์ที่อยู่ห่างไกลกันออกไปนั้น เป็นสมาชิกของสวิตซ์อีกกลุ่มหนึ่งทางแนวตรรกกะ (Logical Design) ก็ได้

 

รูปที่ 1: การทำ VLANs ซึ่งเป็นการแบ่งกลุ่มของสวิตซ์ในเชิงตรรกะ (Logical Design)

 

ภาพรวมของ VLAN

ในกระบวนการทำงานของสวิตซ์เลเยอร์ 2 นั้น ถึงแม้ว่า ตัวสวิตซ์เองจะสามารถลดปริมานของ โดเมนปะทะ (Collision Domain) ไปได้ ให้เหลือเพียง    1 Collision Domain ต่อ 1 พอร์ทของสวิตซ์แล้วก็ตาม แต่ทว่า ทุกพอร์ทของสวิตซ์นั้น       ก็ยังคงมี บรอดคาสท์โดเมน (Broadcast Domain) อยู่ดี ซึ่ง หากว่า เรานำ สวิตซ์มาต่อกัน หลายๆ จุด และมีการใช้งาน

บรอดคาสท์โดเมนขึ้นมา นั่นหมายถึงว่า ก็ยังคงที่จะมีทราฟฟิก (Traffic) ที่เป็นส่วนเกินออกมาอยู่ดี ซึ่งทราฟฟิกจำพวกนี้จะเป็นตัวที่ทำให้ระบบเน็ตเวิร์กเกิดความล่าช้า และสิ้นเปลือง CPU ในการประมวลผลของอุปกรณ์ดีไวซ์ต่างๆ โดยไม่จำเป็น ซึ่ง การทำ VLAN นี้ จะมาช่วยแก้ปัญหาตรงจุดนี้ได้ เนื่องจาก ในการทำ VLAN นี้ จะเป็นการจำกัดวงของ บรอดคาสท์โดเมนให้อยู่ภายในพอร์ท หรือ ดีไวซ์ที่เรากำหนดเท่านั้น ซึ่งทราฟฟิกจะไม่ถูกส่งผ่านไปยัง

บรอดคาสท์โดเมนอื่นๆ หากไม่มีการคอนฟิกหรือปรับแต่งใดๆ เพิ่มเติม

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

สนิฟเฟอร์โหมด (Sniffer Mode) เพื่อดักจับข้อมูลไปนั้น คงไม่ดีแน่ แต่หากเมื่อมีการทำ VLAN แล้ว เราสามารถที่จะควบคุมทราฟฟิกให้อยู่ในเฉพาะขอบเขตที่เราต้องการได้ เช่น เราต้องการให้ สวิตซ์พอร์ทที่ 1-5 ของสวิตซ์ 1 ซึ่งอยู่ชั้นที่ 1 เป็นสมาชิกเดียวกันกับ สวิตซ์พอร์ทที่ 6-8 ของสวิตซ์ 3 ที่อยู่ชั้นที่ 3 ก็ เป็นได้ โดยที่ ทราฟฟิกจะไม่ถูกส่งออกไปยังพอร์ทอื่นๆ ของสวิตซ์ตัวมันเอง และสวิตซ์ตัวอื่นๆ อีก ซึ่งเป็นมาตรการในการรักษาความปลอดภัยเบื้องต้นของระบบเน็ตเวิร์กได้

รูปที่ 2: ลักษณะการแบ่ง VLAN ออกเป็น VLAN ย่อยๆ โดยไม่ยึดติดกับการ

เชื่อมต่อทางกายภาพ

 

การคอนฟิก VLAN นั้น สามารถกระทำได้ภายใน ตัว IOS ของ สวิตซ์ได้โดยตรง และ การคอนฟิก VLAN นั้น ไม่จำเป็นที่จะต้องมีการย้ายสายเคเบิลใดๆ เพื่อจัดกลุ่มของสวิตซ์ และไม่ต้องการ การเซตติ้งใดๆ ที่ตัว Client เลย จะมีเพียงแต่ หมายเลข IP Address ของ Client ที่จะต้องจัดสรรใหม่ให้แก่ Client ในกรณีที่ต้องการให้ Client ไปอยู่ในต่างซับเน็ตเท่านั้น และ หากต้องการให้ VLAN นั้น สามารถที่จะติดต่อสื่อสารระหว่างกัน หรือที่เรียกว่า Inter VLANs นั้น เราจำเป็นที่จะต้องมีอุปกรณ์ในเลเยอร์ 3 เช่น เราเตอร์ หรือ สวิตซ์เลเยอร์ 3 มาช่วยในการ เราท์ทราฟฟิกระหว่าง VLANs กัน

 

รูปที่ 3: การนำอุปกรณ์ในเลเยอร์ 3 เช่น เราเตอร์ มาเราท์ทราฟฟิกระหว่าง VLANs

 

ประโยชน์ที่จะได้รับจากการทำ VLAN

–         จำกัดการแพร่กระจายของบรอดคาสท์ทราฟฟิกไม่ให้ส่งผลกระทบต่อประสิทธิภาพโดยรวมของเน็ตเวิร์ก

–         สามารถสร้างกลไกด้านความปลอดภัยได้ง่ายขึ้น เช่น การสร้าง Access Control List บนอุปกรณ์เลเยอร์ 3 และ ลดความเสี่ยงเกี่ยวกับการดักจับข้อมูล (Sniffing)

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

–         สามารถ รองรับการขยายตัวของระบบเน็ตเวิร์กที่จะเพิ่มขึ้นในอนาคตได้ง่าย เนื่องจากมีการวางแผนเกี่ยวกับการทำซับเน็ต และการดีไซน์ระบบที่ไม่ยึดติดกับทางกายภาพอีกต่อไป

 

สแตติก และ ไดนามิค VLAN

 

โดยค่าดีฟอล์ท (Default) ทุกๆ พอร์ทของสวิตซ์นั้น จะถูกจัดให้อยู่ใน VLAN 1 หรือ ที่เรียกกันว่า “Management VLAN” ซึ่ง ในการสร้าง-แก้ไข-ลบ VLAN นั้น เราจะไม่สามารถลบ VLAN 1 นี้ได้ และ หมายเลข VLAN นี้ สามารถสร้างได้ตั้งแต่หมายเลข 1 – 1005

 

สแตติก VLAN

สแตติก VLAN หรือ อีกชื่อหนึ่งคือ Port-Based Membership นั้น จะเป็นการพิจารณาความเป็นสมาชิกของ VLAN หนึ่งๆ โดยดูจากพอร์ท ซึ่งพอร์ทของสวิตซ์ที่เชื่อมต่ออยู่กับ Client นั้น ถึงแม้ว่าจะเป็น พอร์ทของสวิตซ์เดียวกัน แต่หากพอร์ททั้งสองนั้นอยู่คนละ VLAN กัน ก็ไม่สามารถที่จะติดต่อกันได้ หากไม่มีอุปกรณ์ในเลเยอร์ 3 มาช่วยในการเราท์ทราฟฟิก ซึ่ง การเซตพอร์ทแต่ละพอร์ทให้เป็นสมาชิกของ VLAN ใดๆ นั้น จะถูกกระทำแบบ Manual จาก System Administrator

 

รูปที่ 4: การเซต VLAN แบบ Static

 

ไดนามิค VLAN

ไดนามิค VLAN เป็นการกำหนด VLAN ให้กับเครื่องClient โดยพิจารณาจากหมายเลข MAC Address ของ Client ซึ่งเมื่อ Client ทำการเชื่อมต่อไปยังสวิตซ์ตัวใดๆ สวิตซ์ที่รัน Dynamic VLAN นี้ก็จะไปหาหมายเลข VLAN ที่ MAP กับ MAC Address นี้จาก Database ส่วนกลางมาให้ ซึ่ง System Administrator สามารถที่จะเซตหมายเลข MAC Address ในการจับคู่กับ VLAN ได้ที่ VLAN Management Policy Server (VMPS)

 

 

รูปที่ 5: การเซต VLAN แบบ Dynamic

 

ทฤษฏีของ Access Port และ Trunk Port ในสวิตซ์

ในการสร้าง VLAN นั้น พอร์ทของสวิตซ์นั้น จะทำหน้าที่อยู่ สองประเภท คือ ACCESS PORT และ TRUNK PORT ซึ่ง จะมีหน้าที่ในการทำงานต่างๆ กันไปตามที่ System Administrator จะเป็นคนกำหนดไว้ ซึ่งหน้าที่หลักๆ ของ ทั้งสองแบบนี้คือ

 

Access Port

เป็นพอร์ทที่ทำหน้าที่เชื่อมต่อระหว่างสวิตซ์จาก Client ไปยังสวิตซ์ ซึ่งเราจะใช้ สายแลนแบบ สายตรง (Straight Through) ในการเชื่อมต่อ และ พอร์ทที่ถูกเซ็ตให้เป็น Access Port นี้ จะมี ทราฟฟิกของ VLAN เพียง VLAN เดียวที่วิ่งผ่านออกยังพอร์ทนี้ ซึ่ง ตัวอย่างในการเซตพอร์ทให้เป็น Access Port นี้คือ

–         พอร์ทที่ เซตระหว่างสวิตซ์ และ Client

–         พอร์ทที่ เซตระหว่างสวิตซ์ และ Server

–         พอร์ท ที่ เซตระหว่าง สวิตซ์ และ เราเตอร์ (มีข้อแม้ว่า เราเตอร์ตัวที่เชื่อมต่อนั้น จะต้องไม่ใช่เราเตอร์ที่ทำหน้าที่ในการเราท์ทราฟฟิกของ Inter VLAN)

 

Trunk Port

เป็นพอร์ททำหน้าที่ คอนเนคสวิตซ์ตัวอื่นๆ ที่ต้องการให้เป็นสมาชิกของ VLAN ต่างๆกัน มาอยู่ด้วยกัน และ ทำหน้าที่ ส่งผ่านทราฟฟิกของ หลายๆ VLAN ให้ กระจายไปยังสวิตซ์ตัวอื่นๆ ที่มีพอร์ทที่ถูกกำหนดให้เป็น VLAN เดียวกันกับสวิตซ์ตัวต้นทางได้ หรือที่เรียกกันโดยทั่วไปว่า UPLINK PORT ซึ่ง ตัวอย่างในการเซตพอร์ทให้เป็น Trunk Port นี้ ก็คือ

–         พอร์ทที่ทำหน้าที่คอนเนคไปยังสวิตซ์ตัวอื่นๆ เช่น UPLINK PORT

–         พอร์ทที่ทำหน้าที่เชื่อมไปยัง เราเตอร์ตัวที่ทำหน้า เราท์ทราฟฟิกระหว่าง VLAN

 

รูปที่ 6: Access Port และ Trunk Port

 

รูปแบบการ Encapsulation ของ VLAN

 

เนื่องจากเฟรมที่วิ่งผ่าน Trunk Port ระหว่างสวิตซ์นั้น มีโอกาสที่เฟรมนั้นๆ จะเป็นของ VLAN ใดๆ ก็ได้ ดังนั้น สวิตซ์แต่ละตัว จำเป็นที่จะต้องหาเทคนิคบางอย่างในการที่จะทำให้ สวิตซ์ปลายทางนั้น สามารถจำแนกได้ว่า ทราฟฟิกที่มันได้รับเข้ามานั้นเป็นของ VLAN ใด เทคนิคที่ว่านั้นคือ การเพิ่มฟิลด์ข้อมูลเข้าไปในเฟรมมาตรฐานของสวิตซ์ เพื่อใช้ในการจำแนก (Identified) ว่า ทราฟฟิกนี้เป็นของ VLAN ใด ซึ่งการเพิ่มฟิลด์เข้าไปในเฟรมนี้ ถือเป็นการ Encapsulation เพิ่มเติมเข้าไปในเฟรม ซึ่ง เทคนิคในการ Encapsulation ของ VLAN นี้จะมีอยู่ด้วยกัน สองแบบ คือ

 

802.1Q (IEEE Standard)

เทคนิคของ IEEE 802.1Q จะใช้วิธีการ เพิ่มฟิลด์พิเศษขนาด 4 Bytes เข้าไปแทรกระหว่างเฟรม และ มันสามารถนำไปใช้ในเทคนิคของ Native VLAN ได้ (หมายถึง เฟรมที่ ตัดส่วนของ IEEE 802.1Q ออก เพื่อจำแนกให้มันเป็นทราฟฟิกพิเศษ เช่น การทำ Voice QoS)

 

ISL (Inter Switch Link: Cisco Proprietary)

ISL จะเพิ่มฟิลด์ขนาด 26 Bytes เข้าไปที่ด้านหน้าสุดของเฟรม และ ต่อท้ายจาก CRC (พูดอีกนัยหนึ่งคือ Encapsulation ห่อหุ้มเฟรมใหม่ทั้งหมดด้วย ISL Field)

 

การ Encapsulation ทั้งสองแบบนี้จะกระทำที่ Egress Port (พอร์ท ขาออก) และ สวิตซ์ที่จะพิจารณาเฟรมนี้ จะพิจารณาหลังจากที่รับเฟรมเข้ามาทางพอร์ทขาเข้า หรือ Ingress Port

 

รูปที่ 6: เทคนิคการ Encapsulation ของ สวิตซ์

 

Virtual Trunking Protocol (VTP)

ในการที่เราจะสร้าง VLAN หนึ่งๆ ขึ้นมาใช้งานนั้น เราจำเป็นที่จะต้องสร้าง VLAN ที่ตัวสวิตซ์หนึ่งๆ (รวมถึงตั้งชื่อให้ VLAN ในบางกรณี) ซึ่งหากว่า ใน Infrastructures ของเรานั้น มีสวิตซ์หลายๆ ตัวอยู่ในระบบนั้น การที่จะสร้าง VLAN ทุกๆ VLAN ขึ้นมานั้น คงเป็นเรื่องที่เสียเวลามากเลยทีเดียว ดังนั้น ทาง ซิสโก้ จึงมีเทคนิคที่จะทำให้เราสามารถออกแบบ และ สร้างหมายเลข VLAN ที่จุดๆ เดียว และมีการกระจาย (Propagation) ไปยังสวิตซ์ตัวอื่นๆ ภายในเน็ตเวิร์กของเราได้ โดยที่ โปรโตคอล VTP นี้ จะมีหลักการในการทำงานดังต่อไปนี้

 

VTP Operation

เมื่อเริ่มแรก เราจะต้อง โปรโมทสวิตซ์ตัวหนึ่งๆ ขึ้นมา โดยที่เราจะต้องมีการสร้าง VLAN ขึ้นที่สวิตซ์ตัวนี้ โดยที่ สวิตซ์ตัวนี้จะมีหน้าที่เป็น VTP Server ให้กับ สวิตซ์ทุกๆตัวในเน็ตเวิร์ก และจากนั้น เมื่อเรานำสวิตซ์ตัวอื่นๆ มาต่อกับมันด้วย (สวิตซ์ตัวแรก จะต้องถูกเซตให้เป็น VTP Server Mode และ สวิตซ์ตัวต่อๆ มา จะต้องถูกเซตเป็น VTP Client Mode และมีการเซต โดเมนเนมภายในสวิตซ์ให้เหมือนกัน (อย่างน้อยที่สุด ในครั้งแรกที่นำสวิตซ์ตัวอื่นๆมาต่อกับ VTP Server สวิตซ์ตัวอื่นๆ จำเป็นที่จะต้องอยู่ในสถานะ Client Mode จนกระทั่งได้เรียนรู้ VLAN Number เรียบร้อยแล้ว) ซึ่ง เมื่อเราเชื่อมต่อในลักษณะนี้แล้วนั้น ทาง VTP Server นั้น จะเป็นตัวแพร่กระจายหมายเลข VLAN ให้แก่ Client Switch เอง ที่เหลือ เราเพียงแต่ทำหน้าที่ เซต พอร์ทของสวิตซ์นั้นๆ ให้ว่ามันอยู่ใน VLAN ใด หรือพอร์ทใดที่ทำหน้าที่เป็น Access Port หรือ Trunk Port เท่านั้น

 

VTP Terminology

 

VTP Domain – เป็นการรวมกลุ่มของสวิตซ์ทั้งหมดที่มีการบริหารจัดการ VLAN เหมือนกัน มาอยู่ด้วยกัน และจะมี ดาต้าเบสของ VLAN เป็นชุดเดียวกัน และ สวิตซ์จะไม่แชร์ดาต้าเบสภายในโดเมนของตน ให้แก่ โดเมนอื่นๆ

 

VTP Modes

–         Server: สวิตซ์ที่ทำหน้าที่เป็น VTP Server Mode นั้น จะมีอิสระอย่างเต็มที่ในการเพิ่ม-ลบ VLAN นั้นๆ ได้ ซึ่ง ใน 1 โดเมน จำเป็นที่จะต้องมีอย่างน้อย 1 VTP Server หรืออาจมากกว่าก็ได้

–         Client: สวิตซ์ที่ทำหน้าที่เป็น VTP Client Mode นั้น จะสามารถทำได้เพียงแค่ รับหมายเลข VLAN มาจาก VTP Server เท่านั้น ไม่สามารถที่จะแก้ไข หรือ ลบ VLAN ได้

–         Transparent: สวิตซ์ที่ทำหน้าที่เป็น VTP Transparent Mode นั้น จะไม่เกี่ยวข้องในการอัพเดตหรือ รับรู้เกี่ยวกับ สวิตซ์ตัวอื่นๆ ภายในโดเมนของมัน แต่มันจะทำการฟอร์เวิร์ดเฟรมที่วิ่งผ่านตัวมันไปยังปลายทางได้ผ่านทางพอร์ท Trunk ของมัน จุดประสงค์ของ VTP Transparent Mode นี้ มักใช้ในการ Save Configurations ของสวิตซ์ (VTP Server, VTP Client ไม่สามารถทำได้)

–         ในการประกาศ VLAN ของ VTP Server นั้น จะใช้วิธีการส่งหมายเลข VLAN และ หมายเลข VTP Advertisement ออกไปยัง VTP Client อื่นๆ โดยการส่งผ่าน Multicast IP Address ซึ่ง VTP Server ที่มี VTP Advertisement ที่มีค่าสูงสุด Client จะรับฟังและ Update ข้อมูลตาม VTP Server นั้นๆ

 

การเราท์ทราฟฟิกระหว่าง VLAN (Inter-VLAN Routing)

ในการเราท์ทราฟฟิกระหว่าง VLAN นั้น เราจำเป็นที่จะต้องมีอุปกรณ์ในเลเยอร์ 3 เช่น เราเตอร์ หรือ สวิตซ์เลเยอร์ 3 เข้ามาช่วยในการเราท์ทราฟฟิกที่อยู่ต่าง VLAN หรือ ต่าง ซับเน็ตกันออกไป ซึ่ง เทคนิคในการนำเอา เราเตอร์มาใช้นั้น เราเรียกว่า “Routes on a stick” และ เทคนิคในการนำเอาสวิตซ์เลเยอร์ 3 มาใช้ในการเราท์ทราฟฟิกนั้น เราเรียกว่า “Switch Virtual Interface (SVI)”

 

รูปที่ 6: เทคนิคการใช้เราเตอร์ในการเราท์ทราฟฟิกระหว่าง VLAN

 

รูปแบบในการเชื่อมต่อแบบ Routes on a stick นี้ เราเตอร์จะใช้เพียง Fast Ethernet อย่างน้อย 1 พอร์ทในการต่อเข้ากับสวิตซ์ และ มีการเซต Sub-Interface ที่รองรับ VLAN นั้นๆ เพื่อทำหน้าที่เราท์ทราฟฟิกระหว่าง VLAN และ จะต้องเซตพอร์ทของสวิตซ์พอร์ทนั้นเป็นแบบ Trunk Port ด้วย และพอร์ทของเราเตอร์ จะต้องมีการเซต Encapsulation ในแบบที่ สวิตซ์ตัวนั้นๆ ยอมรับ เช่น ในการใช้เราเตอร์ในการเราท์ทราฟฟิกของ สวิตซ์ซิสโก้ Catalyst 2950 Series นั้น พอร์ทของเราเตอร์ที่ทำ Routes on a stick นั้น จะต้องเซต Encapsulation เป็นแบบ IEEE 802.1Q จึงจะสามารถใช้งานได้

>

Mayong_ness

อยากเขียนเรื่องราวข้อมูลต่างๆ เพื่อให้คนที่สนใจได้เข้ามาอ่าน..อาจจะไม่ได้เขียนทุกวัน..นานๆที่มาเขียนนะคับ..ถ้าข้อมูลใดไม่ถูกต้องก็ ติชมกันได้นะคับ..

บทความอื่นๆที่น่าสนใจ...