บทที่ 16

VLAN

แยก LAN ออกจากกันด้วยซอฟต์แวร์ โดยไม่ต้องแตะสายเลย — บทนี้อธิบายว่า VLAN แบ่ง broadcast domain อย่างไร, tag 4 ไบต์ของ 802.1Q ถูกแทรกตรงไหนของเฟรม และ VTP ช่วยไม่ให้ต้องไปตั้งค่าสวิตช์ทีละตัว 100 ตัวได้ยังไง

อ่าน ~15 นาที ออกสอบเป็นข้อความ/วาดรูป พื้นฐาน: บทที่ 14 (เฟรม 802.3) ลงมือทำ: Lab 4 (VLAN + Trunk)
ข้อสอบออกแบบไหน

บทนี้ออกได้ 3 ท่า — (1) อธิบายว่า VLAN แบ่ง broadcast domain อย่างไร พร้อมวาดรูปว่า PC ไหนคุยกับ PC ไหนได้/ไม่ได้ (2) วาดเฟรม 802.1Q ชี้ว่า tag 4 ไบต์แทรกตรงไหนและมีอะไรอยู่ข้างใน (3) เทียบโหมด VTP สามโหมด ว่าโหมดไหนแก้ที่ตัวเองได้ โหมดไหนกระจายต่อ · ทั้งสามท่าเป็นคำถามความเข้าใจ ไม่มีการคำนวณ — วาดรูปกับเขียนตารางเทียบให้เป็น จบ

16.1Virtual LAN (VLAN)

การพัฒนาของสวิตช์ช่วยให้การเชื่อมต่อ LAN มีประสิทธิภาพสูงขึ้นเมื่อเทียบกับการใช้ฮับ และการทำงานของ STP ช่วยให้ติดตั้งสวิตช์จำนวนมากได้โดยไม่ต้องกังวลเรื่อง broadcast storm · Virtual LAN (VLAN) เป็นอีกหนึ่งความสามารถของสวิตช์ที่เอื้อประโยชน์อย่างมากในองค์กรขนาดใหญ่

VLAN ทำอะไรได้

อุปกรณ์ที่เชื่อมต่อใน LAN สื่อสารกันได้โดยไม่เกี่ยวข้องกับสถานที่ติดตั้ง · เมื่ออยู่ VLAN เดียวกัน จะเสมือนว่าอยู่บนสวิตช์ของ LAN เดียวกัน แม้ตัวเครื่องจะอยู่คนละชั้นคนละตึก

และในทางกลับกัน

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

การทำเช่นนี้ถือเป็นการทำเชิงตรรกะหรือโดยซอฟต์แวร์ ไม่เกี่ยวข้องกับการติดตั้งฮาร์ดแวร์ — แต่มีเงื่อนไขว่า สวิตช์ตัวนั้นต้องรองรับการทำงาน VLAN ด้วย

รูปแรกของบทในตำรา (รูปที่ 16.1) สรุปผลของ VLAN ไว้ในภาพเดียว — สวิตช์ตัวเดียวถูกซอยเป็น VLAN 1 · VLAN 2 · VLAN 3 เมื่อมีเฟรมบรอดคาสท์เข้ามาทางพอร์ตของ VLAN 1 สวิตช์จะส่งออกเฉพาะพอร์ตที่อยู่ VLAN 1 เท่านั้น ส่วนฝั่ง VLAN 2 กับ VLAN 3 ไม่มีอะไรออกไปเลย (ในรูปเขียนกำกับไว้ตรง ๆ ว่า “Nothing Here” และ “Nor Here”) — นี่คือกรณีที่เฟรมถูกทิ้ง ซึ่งเป็นหัวใจของทั้งบท

สวิตช์สองตัวในภาพเดียวกัน: ตัวบนแบ่งพอร์ตเป็น VLAN 1, VLAN 2, VLAN 3 และมีลูกศร Incoming Broadcast Frame เข้าทางพอร์ตของ VLAN 1 · ตัวล่างแสดงผลลัพธ์ว่า Outgoing Broadcast ออกเฉพาะพอร์ตของ VLAN 1 ส่วนพอร์ตของ VLAN 2 เขียนว่า Nothing Here และ VLAN 3 เขียนว่า Nor Here
รูปที่ 16.1 จากตำรา — การติดตั้ง VLAN บนสวิตช์ · Incoming Broadcast Frame เข้าทางพอร์ตของ VLAN 1 ⇒ Outgoing Broadcast ออกเฉพาะพอร์ตของ VLAN 1 · ฝั่ง VLAN 2 เขียนว่า “Nothing Here” และ VLAN 3 เขียนว่า “Nor Here” คือไม่มีเฟรมออกไปเลย (จุดที่ต้องสังเกต: สวิตช์ตัวเดียวกันแท้ ๆ แต่บรอดคาสท์ไปได้แค่ VLAN ตัวเอง)

กำหนด VLAN ได้ 2 วิธี

วิธียึดอะไรเป็นหลักข้อดีข้อเสีย
1. Static พอร์ตของสวิตช์ — พอร์ตไหนอยู่ VLAN ไหนก็กำหนดไปตรง ๆ ทำได้โดยง่าย · เห็นภาพชัด แก้ง่าย ย้ายเครื่องไปเสียบพอร์ตอื่น = ต้องตั้งค่าใหม่
2. Dynamic MAC address ของเครื่อง คล่องตัวสูง ในกรณีที่มีพนักงานจำนวนมากที่ต้องย้ายไปมาบ่อย เช่นทุกคนใช้ laptop / notebook — ย้ายที่นั่งแล้ว VLAN ตามไปด้วย ติดตั้งได้ยากกว่า · จึงไม่ได้รับความนิยมมากนัก เพราะติดตั้งยุ่งยาก

ตัวอย่างการกำหนดแบบ static (รูปที่ 16.2 ในหนังสือ)

สร้าง VLAN หมายเลข 2, 3 และ 4 บนสวิตช์ตัวเดียว โดยกำหนดว่า

  • พอร์ต 7 – พอร์ต 9 อยู่บน VLAN 2
  • พอร์ต 10 – พอร์ต 12 อยู่บน VLAN 3
  • พอร์ต 2 – พอร์ต 3 กับ พอร์ต 5 – พอร์ต 6 อยู่บน VLAN 4 (สังเกตว่าไม่ต้องเรียงติดกันก็ได้)
  • พอร์ตที่เหลือเป็นพอร์ตโดยปริยาย — ในสวิตช์ของ Cisco จะให้ VLAN 1 เป็นแบบปริยาย

ผลที่ได้: PC 1 คุยกับ PC 2 ได้ (VLAN เดียวกัน) และ PC 3 คุยกับ PC 4 ได้ (VLAN เดียวกัน) แต่ PC 1 / PC 2 คุยกับ PC 3 / PC 4 ไม่ได้ เพราะอยู่ต่าง VLAN — หรืออาจกล่าวได้ว่าอยู่คนละบรอดคาสท์โดเมน

จุดที่คนพลาดบ่อย — สวิตช์ข้าม VLAN ให้ไม่ได้

ปัญหาที่ตามมาคือ PC 1 และ PC 2 อาจจำเป็นต้องสื่อสารกับ PC 3 และ PC 4 จะทำอย่างไร? เนื่องจากทั้งสองฝั่งเสมือนอยู่ต่างเครือข่าย LAN กัน จึงต้องมีเร้าเตอร์มาช่วยเชื่อม (รูปที่ 16.3) · ถ้าติดตั้งถูกต้อง PC ใน VLAN 2 จะสื่อสารกับ VLAN 4 ได้โดยที่ไม่ทราบเลยว่าทั้งสอง VLAN อยู่บนสวิตช์เดียวกัน · คำตอบผิดที่เจอบ่อยคือ "ตั้งค่าสวิตช์ให้ VLAN คุยกันเอง" — ทำไม่ได้ สวิตช์เป็นอุปกรณ์ Layer 2 ต้องขึ้นไป Layer 3 เท่านั้น

การติดตั้ง VLAN บนสวิตช์ 16 พอร์ต โดยพอร์ต 7-9 เป็น VLAN 2, พอร์ต 10-12 เป็น VLAN 3 และพอร์ต 2-3 กับ 5-6 เป็น VLAN 4
รูปที่ 16.2 จากตำรา — การติดตั้ง VLAN บนสวิตช์ (แบบ static ที่พอร์ต) · พอร์ต 7–9 = VLAN 2 · พอร์ต 10–12 = VLAN 3 · พอร์ต 2–3 และ 5–6 = VLAN 4 พอร์ตที่เหลืออยู่ VLAN 1 โดยปริยาย · ในรูปนี้หนังสือเสียบ PC 1 ที่พอร์ต 3 กับ PC 2 ที่พอร์ต 5 (จึงอยู่ VLAN 4 ด้วยกัน) และ PC 3 ที่พอร์ต 7 กับ PC 4 ที่พอร์ต 9 (อยู่ VLAN 2 ด้วยกัน)
การเชื่อม VLAN 2 กับ VLAN 4 บนสวิตช์ตัวเดียวกันผ่านเร้าเตอร์
รูปที่ 16.3 จากตำรา — การติดตั้ง VLAN บนสวิตช์ ผ่านเร้าเตอร์ · เร้าเตอร์ถูกเสียบเข้ากับพอร์ตของ VLAN 4 และ VLAN 2 เพื่อให้สอง VLAN คุยกันได้ โดยที่ PC ทั้งสองฝั่งไม่ทราบเลยว่าอยู่บนสวิตช์ตัวเดียวกัน

16.1.1VLAN Tagging

การสร้าง VLAN อีกทางหนึ่งคือการเพิ่ม tag ลงบนเฟรมที่ส่ง การใช้ tag ทำให้:

  • ส่งเฟรมไปได้มากกว่าหนึ่ง VLAN พร้อมกัน — สวิตช์หรือเร้าเตอร์จะส่งต่อ (forward) เฟรมไปยังแต่ละ VLAN โดยอาศัยข้อมูลของ tag
  • สามารถส่งผ่านพอร์ตเดียวกันได้ เรียกการทำงานนี้ว่า trunking
  • ผลคือ ประหยัดพอร์ตบนสวิตช์และเร้าเตอร์ — แต่ละ Trunk รองรับได้หลาย VLAN
ตัวเลขที่ทำให้เห็นภาพว่า trunk คุ้มแค่ไหน

ถ้าต้องการเชื่อมสวิตช์สองตัวเข้าด้วยกัน โดยแต่ละตัวมี 4 VLAN — ถ้าไม่ใช้ trunk ต้องเดินสายสี่เส้น เส้นละ VLAN · ถ้าใช้ Trunk เหลือเส้นเดียว · คิดต่อในองค์กรที่มี 20 VLAN ก็คือ 20 เส้น → 1 เส้น

นับพอร์ตจริงจากรูปในตำรา — ทำไม Trunk ถึงคุ้ม

ตำราไม่ได้บอกลอย ๆ ว่า “trunk ประหยัดพอร์ต” แต่พาไต่ให้ดูทีละขั้นด้วยรูปสามรูปติดกัน โดยใช้สวิตช์ 16 พอร์ตตัวเดิม (พอร์ต 0 – พอร์ต 15) ที่ตั้ง VLAN ไว้แบบเดียวกับรูปที่ 16.2 คือ VLAN 4 = พอร์ต 2–3 และ 5–6 · VLAN 2 = พอร์ต 7–9 · VLAN 3 = พอร์ต 10–12

แบบการเชื่อมรูปในตำราจำนวนสายที่ต้องเดินพอร์ตสวิตช์ที่ถูกกินหนึ่งสายขนได้กี่ VLAN
เร้าเตอร์เชื่อม 2 VLAN (VLAN 2 กับ VLAN 4)16.32 เส้น2 พอร์ต1 VLAN ต่อเส้น
เร้าเตอร์เชื่อม 3 VLAN (VLAN 2, 3, 4)16.43 เส้น3 พอร์ต1 VLAN ต่อเส้น
เร้าเตอร์ต่อผ่าน Trunk16.51 เส้น1 พอร์ต (พอร์ต 15)หลาย VLAN ต่อเส้น
สวิตช์ 2 ตัว ตัวละ 4 VLAN ต่อกันด้วย Trunk16.61 เส้น (แทนที่จะเป็น 4 เส้น)1 พอร์ต ต่อสวิตช์หลาย VLAN ต่อเส้น

ขั้นที่ 1 — ยังไม่มี trunk: ถ้าอยากให้ VLAN 2, 3 และ 4 ในรูปที่ 16.3 คุยกันได้ทั้งหมด ต้องลากสายจากเร้าเตอร์ลงมาที่สวิตช์ทีละ VLAN ⇒ 3 VLAN = 3 เส้น = กินพอร์ตสวิตช์ 3 พอร์ต + พอร์ตเร้าเตอร์อีก 3 พอร์ต

สวิตช์ 16 พอร์ตที่แบ่ง VLAN 4 (พอร์ต 2-3 และ 5-6), VLAN 2 (พอร์ต 7-9), VLAN 3 (พอร์ต 10-12) มีเร้าเตอร์อยู่ด้านบนลากสายลงมายังกลุ่มพอร์ตของแต่ละ VLAN รวมสามเส้น และมี PC 1 ถึง PC 4 เสียบที่พอร์ต 3, 5, 7 และ 9
รูปที่ 16.4 จากตำรา — การติดตั้ง VLAN จำนวน 3 VLAN บนสวิตช์ผ่านเร้าเตอร์ · สังเกตสายสามเส้นจากเร้าเตอร์ลงมาที่กลุ่มพอร์ตของ VLAN 4 · VLAN 2 · VLAN 3 (VLAN ละหนึ่งเส้น) — PC 1 อยู่พอร์ต 3, PC 2 พอร์ต 5 (ทั้งคู่ VLAN 4), PC 3 พอร์ต 7, PC 4 พอร์ต 9 (ทั้งคู่ VLAN 2) · ยิ่งเพิ่ม VLAN ยิ่งเปลืองพอร์ตเป็นเงาตามตัว

ขั้นที่ 2 — ใส่ trunk: รูปที่ 16.5 คือการติดตั้ง VLAN เดิมทุกอย่าง แต่ต่อเร้าเตอร์ด้วย Trunk เส้นเดียวที่พอร์ต 15 — การเชื่อมต่อดังกล่าวลดการใช้พอร์ตลง เพราะแต่ละ Trunk รองรับได้หลาย VLAN (นี่คือ Router-on-a-Stick ที่ได้ทำจริงใน Lab 4)

สวิตช์ 16 พอร์ตชุดเดิม แต่คราวนี้เร้าเตอร์ต่อกับพอร์ต 15 ด้วยสายเส้นเดียวที่มีป้ายกำกับว่า Truck (Trunk) แทนการลากสายทีละ VLAN
รูปที่ 16.5 จากตำรา — การติดตั้ง VLAN บนสวิตช์ผ่าน Trunk · เร้าเตอร์ต่อกับพอร์ต 15 เพียงพอร์ตเดียว แล้วสายเส้นนั้นขนทั้ง VLAN 4, VLAN 2 และ VLAN 3 ⇒ จาก 3 เส้นเหลือเส้นเดียว (ป้ายในรูปตำราสะกดว่า “Truck” ซึ่งหมายถึง Trunk)

ขั้นที่ 3 — trunk ระหว่างสวิตช์สองตัว: หากต้องการเชื่อมสวิตช์สองตัวเข้าด้วยกัน โดยแต่ละตัวประกอบไปด้วย สี่ VLAN จะต้องใช้สายสี่เส้น เส้นละ VLAN — การใช้ Trunk ทำให้เหลือเส้นเดียว ดังรูปที่ 16.6

สวิตช์สองตัววางซ้อนกัน แต่ละตัวมี VLAN 4, VLAN 5, VLAN 2, VLAN 3 กระจายอยู่คนละกลุ่มพอร์ต เชื่อมกันด้วยสายเส้นเดียวจากพอร์ต 0 ของสวิตช์ตัวบนไปยังพอร์ต 15 ของสวิตช์ตัวล่าง มีป้ายกำกับว่า Truck และมี PC เสียบที่พอร์ต 5 ของตัวบนกับพอร์ต 3 ของตัวล่าง
รูปที่ 16.6 จากตำรา — การติดตั้ง VLAN บนสวิตช์ผ่าน Trunk (ระหว่างสวิตช์สองตัว) · สายเส้นเดียวจากพอร์ต 0 ของสวิตช์ตัวบน ไปพอร์ต 15 ของสวิตช์ตัวล่าง ขนได้ทั้ง VLAN 2, 3, 4 และ 5 · จุดที่ต้องสังเกต: VLAN 5 อยู่พอร์ต 5–6 บนสวิตช์ตัวบน แต่อยู่พอร์ต 13–14 บนสวิตช์ตัวล่าง — คนละพอร์ต คนละตัวสวิตช์ แต่ยังเป็น VLAN เดียวกัน เพราะ tag บอกไว้
อ่านรูปที่ 16.6 ให้ออก — นี่คือคำตอบของ “VLAN ไม่ผูกกับสถานที่”

เครื่องที่เสียบพอร์ต 5 ของสวิตช์ตัวบน (VLAN 5) กับเครื่องที่อยู่ พอร์ต 13–14 ของสวิตช์ตัวล่าง (VLAN 5 เหมือนกัน) คุยกันได้เสมือนอยู่บนสวิตช์ตัวเดียวกัน ทั้งที่คนละตัว คนละหมายเลขพอร์ต — เพราะเฟรมวิ่งข้าม trunk โดยมี VID = 5 ติดไปด้วย · ในทางกลับกันเครื่องที่ พอร์ต 3 ของสวิตช์ตัวล่าง อยู่ VLAN 4 จึงคุยกับ VLAN 5 ไม่ได้ แม้จะเสียบสวิตช์ตัวเดียวกัน · ประโยคนี้ตอบข้อสอบได้ทั้งข้อ “ข้อดีของ VLAN” และข้อ “ประโยชน์ของ Trunk”

สองโพรโตคอลที่ใช้ทำ tag

ในการส่งเฟรมบน Trunk โดยการใช้ tag อย่างในรูปที่ 16.6 ทั้งสองฝั่งจำเป็นต้องตกลงกันในโพรโตคอลที่จะเลือกใช้ ปัจจุบันหากกล่าวถึงสวิตช์ของ CISCO ทำได้สองวิธี · แต่ไม่ใช่ทุกสวิตช์ที่สนับสนุนการทำงานของทั้งสอง:

IEEE 802.1QISL (Inter-Switch Link)
เจ้าของมาตรฐานเปิด — ทำงานได้กับสวิตช์ของหลายผู้ผลิตโพรโตคอลเฉพาะของ Cisco
วิธีทำงานแทรก tag เข้าไปในเฟรมเดิม 4 ไบต์ห่อหุ้มเฟรมเดิมด้วยเฮดเดอร์ใหม่ — เพิ่มเฮดเดอร์และค่า FCS ให้กับเฟรมเดิม
ขนาดที่เพิ่ม4 ไบต์ → เฟรมสูงสุดเป็น 1522 ไบต์30 ไบต์ → เฟรมสูงสุด 1518 กลายเป็น 1548 ไบต์
FCSต้องคำนวณ FCS ใหม่ เพราะเฟรมเปลี่ยนไปมี FCS ของ ISL เอง คำนวณตั้งแต่เฮดเดอร์ของ ISL — เป็นคนละ FCS กับเฟรมอีเทอร์เน็ต
เข้ากับของเก่าได้ — ถ้าสวิตช์ไม่รองรับโพรโตคอลนี้ เฟรมยังถูกส่งต่อไปได้ เพราะ 802.1Q เพียงเพิ่มข้อมูล VLAN tag ในเฟรมเท่านั้นเสี่ยง — หากไม่ใช่สวิตช์ของ Cisco อาจมีปัญหาในการส่งข้อมูล (เฟรม 1548 ไบต์ใหญ่เกินมาตรฐาน)

Tag ของ 802.1Q แทรกตรงไหน และมีอะไรข้างใน

เพื่อแก้ไขเฟรมอีเทอร์เน็ตเดิมให้สนับสนุน VLAN tag ทำสองอย่าง:

  1. ฟิลด์ Type/Length ของเฟรมถูกกำหนดให้มีค่า 0x8100 — ค่านี้มากกว่า 1500 ดังนั้นอีเทอร์เน็ตจะเข้าใจว่าเป็นการกำหนด Type (ประเภทของเฟรม) มิใช่ Length (ความยาวเฟรม)

  2. สองไบต์ถัดมาถูกใช้กำหนดข้อมูลเกี่ยวกับ tag เรียกว่า tag control information field (TCIF) แบ่งเป็นสามส่วน

ส่วนของ TCIFค่าที่เป็นไปได้ใช้ทำอะไร
Priority Code Point (PCP)ชนิด 0 ถึง 7กำหนดประเภทของทราฟฟิก ใช้เพื่อกำหนดความสำคัญของทราฟฟิก (เช่น เสียง/วิดีโอ ควรได้คิวก่อนไฟล์ดาวน์โหลด)
Canonical Format Indicator (CFI)0 หรือ 1กำหนดรูปแบบของข้อมูล — ลอจิก 0 แบบ little Endian ในขณะที่ลอจิก 1 จะเป็น big Endian
VLAN identifier (VID)ระบุได้สูงสุด 4096 VLANระบุ ID ของ VLAN ที่เฟรมนี้สังกัด
ส่วนขยาย (ไม่ได้อยู่ในหนังสือ แต่ช่วยให้จำขนาดบิตได้)

TCIF ยาว 2 ไบต์ = 16 บิต · แบ่งเป็น PCP 3 บิต (พอดีกับค่า 0–7 = 2³ ค่า), CFI 1 บิต (0 หรือ 1), เหลือ 12 บิต ให้ VID (พอดีกับ 2¹² = 4096 VLAN ตามที่หนังสือระบุ) — 3 + 1 + 12 = 16 บิต ลงตัวพอดี · ในมาตรฐานรุ่นหลัง (802.1Q-2011) บิต CFI ถูกเปลี่ยนชื่อเป็น DEI (Drop Eligible Indicator) และ 0x8100 เรียกว่า TPID (Tag Protocol Identifier) — ถ้าเห็นชื่อ DEI/TPID ใน Wireshark หรือสไลด์ Cisco ก็คือฟิลด์เดียวกันนี้

ส่วนขยาย — Native VLAN

บนพอร์ต trunk แบบ 802.1Q จะมี VLAN หนึ่งที่ถูกกำหนดเป็น native VLAN ซึ่งเฟรมของ VLAN นั้นวิ่งผ่าน trunk โดยไม่ติด tag (untagged) — มีไว้เพื่อความเข้ากันได้กับอุปกรณ์ที่ไม่รู้จัก 802.1Q ตามคุณสมบัติ backward-compatible ที่หนังสือกล่าวถึง · ค่าปริยายของ Cisco คือ VLAN 1 และทั้งสองฝั่งของ trunk ต้องตั้ง native VLAN ให้ตรงกัน ไม่งั้นทราฟฟิกจะ "รั่ว" ข้าม VLAN · หัวข้อนี้ไม่ได้อยู่ในหนังสือ แต่เป็นสิ่งที่ต้องตั้งจริงใน Lab 4

เทียบเฟรม 802.3 เดิมกับเฟรม 802.1Q ที่แทรก VLAN protocol ID 0x8100 และ Tag เข้าไประหว่าง Source address กับ Length
รูปที่ 16.7 จากตำรา — รูปแบบของ IEEE 802.1Q · สังเกตว่า tag ถูกแทรกระหว่าง Source address กับ Length โดยมี VLAN protocol ID = 0x8100 แล้วตัว Tag แตกออกเป็น Pri (PCP) · CFI · VLAN Identifier
ส่วนเพิ่มเติมโดยโพรโตคอล ISL ที่ห่อหุ้มเฟรมอีเทอร์เน็ตเดิมด้วยเฮดเดอร์ ISL และ FSC ของตัวเอง
รูปที่ 16.8 จากตำรา — ส่วนเพิ่มเติมโดยโพรโตคอล ISL · ต่างจาก 802.1Q ตรงที่ ISL ห่อหุ้มเฟรมอีเทอร์เน็ตเดิมทั้งก้อนด้วยเฮดเดอร์ ISL และ FCS ของตัวเอง (เพิ่ม 30 ไบต์ ⇒ 1518 → 1548 ไบต์)
จุดที่คนพลาดบ่อย — "แทรก" ไม่ใช่ "ห่อ"

802.1Q แทรก 4 ไบต์ ระหว่างแอดเดรสต้นทาง (SA) กับฟิลด์ความยาว/ประเภทของเฟรม — เฟรมเดิมยังเป็นเฟรมเดิม แค่ยาวขึ้น 4 ไบต์ · ส่วน ISL ห่อหุ้มเฟรมเดิมทั้งก้อนด้วยเฮดเดอร์ใหม่ + FCS ใหม่ · ถ้าวาดรูปสลับกันสองอันนี้จะเสียคะแนนทันที · และอย่าลืมว่า 802.1Q ต้องคำนวณ FCS ใหม่ เพราะเนื้อเฟรมเปลี่ยนไปแล้ว

16.1.2VLAN Trunking Protocol (VTP)

VTP เป็นโพรโตคอลที่ใช้ช่วยกำหนด VLAN ให้แก่สวิตช์จำนวนมากที่อยู่ในเน็ตเวิร์ก การใช้ VTP ทำให้ติดตั้งบนสวิตช์ตัวเดียวแล้วกระจายไปทั่วเน็ตเวิร์กได้

ลองนึกภาพองค์กรที่มีสวิตช์อยู่ 100 ตัว — การไปตั้งค่าทีละตัวให้ถูกต้องโดยไม่สับสนระหว่าง VLAN นั้นทำได้ยาก และถ้าต้องแก้ไขทีหลังยิ่งเกิดข้อผิดพลาดมากขึ้น

การทำงานเริ่มจาก VTP แจ้ง (advertise) ข้อมูลการติดตั้ง VLAN ไปยังทุกพอร์ตของ Trunk ⇒ สวิตช์ข้างเคียงเรียนรู้ข้อมูลของ VLAN ที่มีอยู่ ⇒ กระจายข้อมูล VLAN ต่อไปยังสวิตช์อื่น ๆ

โหมดรับ advertise แล้วปรับตามไหมสร้าง advertise ใหม่ไหมแก้ที่ตัวสวิตช์เองได้ไหม
Client รอรับและปรับเปลี่ยนตามข้อมูลที่ได้รับ ส่งต่อในเน็ตเวิร์ก ไม่ได้ — การเปลี่ยนแปลง VLAN ในโหมดนี้เกิดขึ้นจาก VTP เท่านั้น ไม่สามารถเปลี่ยนที่สวิตช์ได้โดยตรง
Server รอรับ advertise ของ VTP สร้าง advertise ใหม่ได้ ได้ — แก้ไขหรือลบที่สวิตช์ทำได้ในโหมดนี้ และการแก้ไขจะทำให้เกิดการเปลี่ยนแปลงไปยัง VLAN ทั้งระบบ
Transparent ไม่ปรับตาม — ข้อมูลใน advertise ไม่มีผลใด ๆ ต่อสวิตช์นี้ ส่งต่อ advertise ที่ได้รับเท่านั้น ได้ — แก้ไขได้โดยตรง ณ สวิตช์ และจะไม่มีผลต่อสวิตช์อื่น
จุดที่คนพลาดบ่อย — ควรมี Server กี่ตัว

หนังสือระบุชัดว่า ในระบบทั่วไปควรมีหนึ่งหรือสองสวิตช์เท่านั้นที่เป็นโหมด Server และการแก้ไขใดในโหมดนี้ควรทำอย่างระมัดระวัง เนื่องจากจะถูกกระจายไปทั้งระบบ · การตั้งทุกตัวเป็น Server = ใครแก้ก็ได้ = หายนะ · คำตอบข้อสอบที่ดีต้องมีประโยคนี้

ตัวอย่างจากรูปที่ 16.9 ในหนังสือ

เน็ตเวิร์กประกอบด้วยสวิตช์ 5 ตัว (SW1–SW5) ต่อกันเป็นสายเดียว โดยแต่ละตัวมีโหมดการทำงานตามที่กำกับไว้ในรูป — SW 1 = Server · SW 2 = Client · SW 3 = Transparent · SW 4 = Server · SW 5 = Client (สังเกตว่า SW 3 มีแค่ VLAN 2 ส่วนตัวอื่นมี VLAN 2, 3, 4)

เมื่อ สวิตช์ 4 ส่งการแจ้ง (advertise) ในเน็ตเวิร์ก การแจ้งจะถูกกระจายต่อไป โดยที่ สวิตช์ 2 และสวิตช์ 5 จะถูกปรับตามที่ได้รับจาก VTP Server · แต่ สวิตช์ 3 จะไม่มีการปรับตาม เนื่องจากทำงานอยู่ในโหมด transparent — การเปลี่ยนการติดตั้งของสวิตช์ 3 ทำได้โดยตรงที่ตัวสวิตช์เท่านั้น

16.1.3VTP Management Domain

VTP Management Domain เป็นการกำหนดโดเมนของ VLAN เพื่อระบุกลุ่มของสวิตช์ที่อยู่ภายใต้การจัดการเดียวกัน หรือที่เป็นสมาชิกอยู่ กติกามี 3 ข้อ:

  1. หากสวิตช์ใดไม่อยู่ภายใต้ VTP Domain เดียวกัน จะไม่ได้รับการแจ้ง (advertise) ที่เกิดขึ้น

  2. สวิตช์หนึ่งเครื่องอยู่ภายใต้ VTP domain เดียวเท่านั้น

  3. เพื่อรับข้อมูลจากเซิร์ฟเวอร์ สวิตช์ต้องเชื่อมต่อกันโดยตรง ไม่มีสวิตช์อื่นขั้น

รูปที่ 16.10 ในหนังสือแสดงการเชื่อมต่อของ VTP domain — หากมีการแก้ไขใด ๆ ที่ SW 1 หรือ SW 2 จะไม่มีการส่งต่อไปยัง SW 4 เนื่องจากมี SW 3 ขั้นอยู่ (SW 3 อยู่คนละโดเมน จึงตัดสายส่งต่อขาดตรงนั้น)

อ่านกฎข้อ 3 ให้ออก

กฎ "ต้องเชื่อมต่อกันโดยตรง ไม่มีสวิตช์อื่นขั้น" หมายถึงไม่มีสวิตช์ที่อยู่คนละโดเมนมาขั้นกลาง — สวิตช์ที่ขั้นอยู่จะไม่ส่งต่อ advertise ของโดเมนที่ตัวเองไม่ได้เป็นสมาชิก ⇒ สมาชิกโดเมนเดียวกันที่อยู่คนละฝั่งจึงขาดการติดต่อกันไป · เขียนประโยคนี้ในข้อสอบได้คะแนนแน่นอน

สวิตช์ห้าตัวต่อกันเป็นสายเดียว SW1 VTP Server, SW2 VTP Client, SW3 VTP Transparent, SW4 VTP Server, SW5 VTP Client โดยมีลูกศรกระจาย advertise ออกจาก SW4
รูปที่ 16.9 จากตำรา — การทำงานของ VTP · ลูกศรออกจาก SW 4 (Server) ไปทั้งสองทาง · ใต้สวิตช์แต่ละตัวคือ VLAN ที่มันมีอยู่ — สังเกตว่า SW 3 (Transparent) มีแค่ VLAN 2 เพราะไม่ปรับตาม advertise ที่วิ่งผ่าน
SW1 กับ SW2 อยู่ในวงรีเดียวกัน SW4 อยู่ในอีกวงรี โดยมี SW3 คั่นกลาง แสดงว่าเป็น VTP Domain เดียวกันแต่ถูกตัดขาด
รูปที่ 16.10 จากตำรา — การเชื่อมต่อของ VTP Domain · SW 1, SW 2 และ SW 4 อยู่ VTP Domain เดียวกัน (วงรีสองวง) แต่มี SW 3 ที่อยู่คนละโดเมนขั้นกลาง ⇒ การแก้ไขที่ SW 1 หรือ SW 2 จึงไปไม่ถึง SW 4
รวมกรณี “ไปไม่ถึง / ถูกทิ้ง / ไม่อัปเดต” ของบทนี้ — ข้อสอบชอบถามฝั่งนี้
สถานการณ์เกิดอะไรขึ้นอ้างอิง
บรอดคาสท์เข้ามาที่ VLAN 1ออกเฉพาะพอร์ต VLAN 1 · VLAN 2 และ VLAN 3 ไม่ได้รับเลย (“Nothing Here” / “Nor Here”)รูปที่ 16.1
PC ต่าง VLAN บนสวิตช์ตัวเดียวกัน ping หากันไม่สำเร็จ — อยู่คนละบรอดคาสท์โดเมน สวิตช์ (Layer 2) ข้ามให้ไม่ได้ · แก้ได้ทางเดียวคือผ่านเร้าเตอร์รูปที่ 16.2 → 16.3
ต่อ 802.1Q เข้ากับสวิตช์ที่ไม่รองรับเฟรมยังถูกส่งต่อไปได้ เพราะ 802.1Q เพียงเพิ่มข้อมูล VLAN tag ในเฟรมเท่านั้น (จุดที่หลายคนตอบผิดว่าเฟรมถูกทิ้ง)หัวข้อ 16.1.1
ใช้ ISL กับสวิตช์ที่ไม่ใช่ Ciscoอาจมีปัญหาในการส่งข้อมูล เพราะเฟรมโตเป็น 1548 ไบต์ เกินขนาดมาตรฐานหัวข้อ 16.1.1
advertise ของ VTP วิ่งผ่านสวิตช์โหมด Transparentสวิตช์นั้นส่งต่ออย่างเดียว ไม่ปรับตาม — VLAN ของตัวเองไม่เปลี่ยน (SW 3 มีแค่ VLAN 2)รูปที่ 16.9
สวิตช์ปลายทางอยู่คนละ VTP Domain / มีสวิตช์อื่นขั้นกลางไม่ได้รับ advertise — แก้ที่ SW 1/SW 2 แล้วไปไม่ถึง SW 4รูปที่ 16.10

ส่วนกรณี ลูป/broadcast storm ไม่ใช่หน้าที่ของ VLAN — ตำราโยนให้ STP ในบทที่ 15 จัดการ · VLAN แก้คนละเรื่องกัน คือแบ่งบรอดคาสท์โดเมนให้เล็กลง เพื่อลดทราฟฟิกบน LAN

จากทฤษฎีไปลงมือทำที่ Lab 4

ทุกอย่างในบทนี้ถูกทำจริงใน Lab 4 — VLAN + Trunk + Router-on-a-Stick โดยจับคู่กันแบบนี้:

หัวข้อในบทนี้ทำอะไรใน Lab 4
VLAN แบบ static (กำหนดที่พอร์ต)สั่งให้พอร์ตของสวิตช์เป็น access port ของ VLAN ที่ต้องการ แล้วทดสอบ ping ข้าม VLAN ว่าไม่ผ่าน
Trunking + 802.1Qตั้งพอร์ตระหว่างสวิตช์สองตัวเป็น trunk แล้วจับเฟรมด้วย Wireshark เพื่อดู tag 0x8100 กับ VID ของจริง
ต้องมีเร้าเตอร์เพื่อข้าม VLANตั้ง Router-on-a-Stick (sub-interface หนึ่งอันต่อหนึ่ง VLAN) แล้ว ping ข้าม VLAN ให้ผ่าน
VTP modesตั้งสวิตช์ตัวหนึ่งเป็น server อีกตัวเป็น client แล้วสร้าง VLAN ที่ตัว server ดูว่าโผล่ที่ client เองไหม
เคล็ดตอนจับเฟรมด้วย Wireshark (ส่วนขยาย)

ถ้าจับเฟรมที่ access port จะไม่เห็น tag เพราะสวิตช์ถอด tag ออกไปแล้ว — ต้องจับที่ trunk link ถึงจะเห็นฟิลด์ 802.1Q Virtual LAN พร้อมค่า Priority / CFI / ID · นี่คือการเชื่อมกับ Q3 (Wireshark) ด้วย เพราะเป็นการชี้แอดเดรส/ฟิลด์ในเลเยอร์ 2 ให้ถูก

เช็คความเข้าใจ

PC 1 และ PC 3 เสียบอยู่บนสวิตช์ตัวเดียวกัน แต่ PC 1 อยู่ VLAN 2 และ PC 3 อยู่ VLAN 4 · ทั้งคู่จะสื่อสารกันได้ไหม
แม้อยู่บนสวิตช์เดียวกัน ถ้าอยู่ต่าง VLAN ก็สื่อสารกันไม่ได้ เพราะอยู่คนละบรอดคาสท์โดเมน · ต้องมีเร้าเตอร์มาเชื่อมระหว่าง VLAN 2 กับ VLAN 4 (รูปที่ 16.3) · ส่วน trunk ใช้ขนหลาย VLAN ผ่านสายเส้นเดียว ไม่ได้ทำให้ VLAN คุยข้ามกันได้
ทำไมฟิลด์ Type/Length ของเฟรมที่มี 802.1Q tag ถึงถูกตั้งเป็น 0x8100
0x8100 = 33024 ฐานสิบ ซึ่งมากกว่า 1500 ⇒ ตามกฎของ บทที่ 14 อีเทอร์เน็ตจะตีความฟิลด์นี้เป็น Type (ประเภทของเฟรม) มิใช่ Length (ความยาวเฟรม) · นี่คือกลไกที่ทำให้สวิตช์รุ่นเก่าที่ไม่รู้จัก 802.1Q ยังส่งต่อเฟรมได้ โดยไม่พัง
สวิตช์อยู่ในโหมด VTP Transparent เมื่อได้รับ advertise จาก VTP Server จะเกิดอะไรขึ้น
โหมด Transparent ส่งต่อการแจ้งที่ได้รับเท่านั้น โดยข้อมูลใน advertise ไม่มีผลใด ๆ ต่อสวิตช์ที่ทำงานในโหมดนี้ · การแก้ไขใด ๆ ในสวิตช์นี้ทำได้โดยตรง ณ สวิตช์ และไม่มีผลต่อสวิตช์อื่น — นี่คือสิ่งที่เกิดกับ SW3 ในรูปที่ 16.9
802.1Q เพิ่มขนาดให้เฟรมกี่ไบต์ และทำให้เฟรมสูงสุดเป็นเท่าไร
802.1Q ใช้เพียง 4 ไบต์แทรกระหว่าง SA กับฟิลด์ความยาว/ประเภท ⇒ เฟรมสูงสุด 1518 + 4 = 1522 ไบต์ · ส่วน 30 ไบต์ → 1548 คือของ ISL ซึ่งห่อหุ้มเฟรมเดิม ไม่ใช่แทรก · และอย่าลืมว่าการแทรก tag ทำให้ต้องคำนวณ FCS ใหม่
สวิตช์ตัวหนึ่งมี VLAN 2, 3 และ 4 และต้องการให้ทั้งสาม VLAN คุยข้ามกันได้ผ่านเร้าเตอร์ · ถ้าไม่ใช้ trunk ต้องเดินสายระหว่างสวิตช์กับเร้าเตอร์กี่เส้น และถ้าใช้ trunk เหลือกี่เส้น
ไม่ใช้ trunk = ลากสายทีละ VLAN ⇒ 3 VLAN = 3 เส้น (รูปที่ 16.4) · ใช้ trunk = เส้นเดียวขนได้ทุก VLAN โดยอาศัย tag (รูปที่ 16.5) ⇒ ประหยัดทั้งพอร์ตสวิตช์และพอร์ตเร้าเตอร์ · เทียบกับกรณีสวิตช์สองตัวที่มีตัวละ 4 VLAN ในรูปที่ 16.6 ก็เหมือนกัน คือจาก 4 เส้นเหลือ 1 เส้น
ในรูปที่ 16.1 เฟรมบรอดคาสท์เข้ามาทางพอร์ตของ VLAN 1 · พอร์ตที่อยู่ VLAN 2 และ VLAN 3 จะได้รับอะไร
ในรูปตำราเขียนกำกับตรง ๆ ว่า “Nothing Here” ที่ VLAN 2 และ “Nor Here” ที่ VLAN 3 ⇒ บรอดคาสท์ไม่ข้าม VLAN เพราะแต่ละ VLAN คือคนละบรอดคาสท์โดเมน · ถ้าอยากให้ข้าม ต้องมีเร้าเตอร์ และเร้าเตอร์ก็ไม่ส่งต่อบรอดคาสท์ให้อยู่ดี — สิ่งที่ข้ามได้คือทราฟฟิกที่ถูกเราต์ (unicast ข้าม VLAN) เท่านั้น
เก็บก่อนออกจากบทนี้
  • VLAN = แบ่ง broadcast domain ด้วยซอฟต์แวร์ · VLAN เดียวกัน = เสมือน LAN เดียวกัน · ต่าง VLAN = คุยกันไม่ได้ ต้องผ่านเร้าเตอร์
  • กำหนดได้ 2 แบบ: static (ที่พอร์ต, ง่าย) และ dynamic (ที่ MAC, คล่องตัวแต่ยุ่งยาก จึงไม่นิยม) · Cisco ให้ VLAN 1 เป็นค่าปริยาย
  • Trunk = สายเส้นเดียวขนหลาย VLAN โดยติด tag กำกับ ⇒ ประหยัดพอร์ตบนสวิตช์และเร้าเตอร์ · ตัวเลขที่ต้องจำจากรูป: 3 VLAN ผ่านเร้าเตอร์ = 3 เส้น (16.4) → Trunk เหลือ 1 เส้น (16.5) · สวิตช์ 2 ตัว ตัวละ 4 VLAN = 4 เส้น → Trunk เหลือ 1 เส้น (16.6)
  • 802.1Q: แทรก 4 ไบต์ · Type/Length = 0x8100 (>1500 จึงเป็น Type) · TCIF = PCP (0–7) + CFI (little/big Endian) + VID (สูงสุด 4096 VLAN) · ต้องคำนวณ FCS ใหม่ · เฟรมสูงสุด 1522
  • ISL: ของ Cisco · ห่อหุ้มเฟรมเดิม + FCS ของตัวเอง · เพิ่ม 30 ไบต์ ⇒ 1548 ไบต์
  • VTP 3 โหมด: Server (แก้ได้ + สร้าง advertise · ควรมี 1–2 ตัวเท่านั้น) · Client (แก้ที่ตัวเองไม่ได้ เปลี่ยนได้จาก VTP เท่านั้น) · Transparent (ส่งต่ออย่างเดียว ไม่ปรับตาม แก้เองได้ ไม่กระทบใคร)
  • VTP Domain: คนละโดเมน = ไม่ได้รับ advertise · หนึ่งสวิตช์อยู่ได้โดเมนเดียว · ต้องต่อกันโดยตรง ไม่มีสวิตช์อื่นขั้น