IST · บทที่ 2 VLAN

หัวข้อ 6 · 16 นาที

VLAN, Access/Trunk และ 802.1Q

นึกภาพก่อน

ตึกหนึ่งมีสามแผนกนั่งปนกันทุกชั้น ถ้าอยากให้ฝ่ายขายไม่เห็น traffic ของฝ่ายบุคคล วิธีเก่าคือซื้อ switch แยกแผนกแล้วเดินสายใหม่ VLAN ทำสิ่งเดียวกันโดยไม่ต้องแตะสาย: บอก switch ว่า "พอร์ต 1–8 เป็นของฝ่ายขาย พอร์ต 9–16 เป็นของฝ่ายบุคคล" switch ตัวเดียวก็ทำตัวเหมือน switch หลายตัวที่ไม่ได้ต่อถึงกัน

VLAN

VLAN (Virtual LAN) คือการแบ่ง broadcast domain แบบ logical โดยไม่ต้องเปลี่ยน topology ทาง physical

  • เครื่องใน VLAN เดียวกันคุยกันได้เหมือนอยู่ switch เดียวกัน ไม่ว่าจะนั่งที่ใด
  • เครื่อง ต่าง VLAN คุยกันตรง ๆ ไม่ได้ ต้องผ่านอุปกรณ์ Layer 3 (บทที่ 4)

ประโยชน์

ประโยชน์อธิบาย
ลด broadcastbroadcast ไปถึงเฉพาะเครื่องใน VLAN เดียวกัน ใช้ bandwidth คุ้มขึ้น
เพิ่ม securitytraffic ของแต่ละกลุ่มแยกจากกันที่ Layer 2
จัดกลุ่มตามหน้าที่ตามแผนก ทีม หรือ application โดยไม่ขึ้นกับตำแหน่งที่นั่ง
ลดค่าใช้จ่ายในการดูแลย้าย เพิ่ม เปลี่ยน (moves/adds/changes) ทำได้ด้วยการตั้งค่า ไม่ต้องเดินสาย
Scalability และ performanceแบ่งเครือข่ายใหญ่ให้เป็นส่วนที่จัดการได้

Access port กับ Trunk port

Access portTrunk port
จำนวน VLAN1 VLANหลาย VLAN
ต่อกับend device (PC, printer, server)switch หรือ router
frameuntaggedtagged ด้วย 802.1Q (ยกเว้น Native VLAN)
หมายเหตุhost ไม่รู้ว่ามี VLANDTP อาจเจรจาเป็น trunk อัตโนมัติ

ทำไมต้องมี trunk: ถ้ามีสอง switch และสาม VLAN โดยไม่มี trunk จะต้องใช้สายสามเส้นระหว่าง switch (เส้นละ VLAN) trunk ขนทุก VLAN ในสายเส้นเดียว โดยติดป้าย (tag) บอกว่าแต่ละ frame เป็นของ VLAN ใด

Trunking protocol

ISLIEEE 802.1Q
เจ้าของCisco (proprietary)IEEE (มาตรฐานเปิด)
วิธีห่อ frame ทั้งก้อนแทรก tag 4 byte เข้าไปใน frame

ปัจจุบันใช้ 802.1Q

802.1Q tag

tag ขนาด 4 byte (32 bit) แทรก หลัง Source MAC ก่อน Type/Length

fieldขนาดความหมาย
TPID (Tag Protocol Identifier)16 bitค่า 0x8100 บอกว่า frame นี้มี 802.1Q tag
Priority (PCP, 802.1p)3 bitระดับความสำคัญ (CoS) 0–7
CFI (หรือ DEI)1 bitCanonical Format Indicator / Drop Eligible Indicator
VLAN ID (VID)12 bitหมายเลข VLAN

16 + 3 + 1 + 12 = 32 bit = 4 byte

ทำไมได้ 4094 VLAN

12 bit ให้ 2¹² = 4096 ค่า (0–4095) แต่ค่า 0 และ 4095 ถูกสงวนไว้ จึงใช้เป็น VLAN ได้ 1–4094

Native VLAN (เบื้องต้น)

บน trunk มี VLAN หนึ่งที่ ไม่ใส่ tag เรียกว่า Native VLAN (default คือ VLAN 1) frame ที่ไม่มี tag เมื่อมาถึงอีกฝั่ง จะถูกจัดเข้า Native VLAN ของฝั่งนั้น สองฝั่งจึงต้องตั้งให้ตรงกัน รายละเอียดและการโจมตีอยู่ในบทเรียนถัดไป

ขั้นที่ 1 / 5เริ่มต้น
VLAN ของ A (access port บน SW1)
Native VLAN ฝั่ง SW1
Native VLAN ฝั่ง SW2
VLAN ของ B (access port บน SW2)
  1. AVLAN 10
  2. SW1native 999
  3. trunk802.1Q
  4. SW2native 999
  5. BVLAN 10

frame ณ จุดนี้

Dest MACSrc MACTypeDataFCS

untagged

tag 4 byte = TPID + Priority + CFI + VLAN ID
1.0×

คำอธิบายทีละขั้น

A จะส่ง frame ไปหา B ผ่าน trunk

A ต่อกับ access port ของ SW1 และ B ต่อกับ access port ของ SW2 สอง switch เชื่อมกันด้วย trunk แบบ 802.1Q ดูว่า tag ถูกใส่และลอกที่จุดใด และ Native VLAN มีผลอย่างไร

ลองใน simulation:

  • "VLAN 10 ติด tag": tag ถูกใส่ที่ SW1 ตอนออก trunk และถูกลอกที่ SW2 ก่อนถึง host
  • "Native VLAN ไม่ติด tag": frame วิ่งบน trunk แบบไม่มี tag
  • "Native mismatch": frame ออกจาก VLAN 1 แต่ไปโผล่ใน VLAN 999

คำสั่งพื้นฐาน

cisco
! สร้าง VLAN
vlan 10
 name Sales

! access port
interface fastEthernet 0/1
 switchport mode access
 switchport access vlan 10

! trunk port
interface gigabitEthernet 0/1
 switchport mode trunk

! ตรวจสอบ
show vlan brief
show interfaces trunk

ตัวอย่างไล่ทีละขั้น

โจทย์: PC-A (VLAN 10) บน SW1 ส่ง frame ไปหา PC-B (VLAN 10) บน SW2 ผ่าน trunk ที่ Native VLAN เป็น 999 frame มีหน้าตาอย่างไรในแต่ละช่วง และยาวขึ้นเท่าใด

  1. A → SW1 (access port): frame ธรรมดา ไม่มี tag — A ไม่รู้ว่าตัวเองอยู่ VLAN ใด
  2. SW1: พอร์ตขาเข้าอยู่ VLAN 10 → frame นี้เป็นของ VLAN 10
  3. SW1 → SW2 (trunk): VLAN 10 ไม่ใช่ Native VLAN (999) → แทรก tag: TPID 0x8100, Priority 0, CFI 0, VID 10 → frame ยาวขึ้น 4 byte และ FCS ถูกคำนวณใหม่
  4. SW2: อ่าน VID = 10 → หา MAC ของ B ในตารางของ VLAN 10
  5. SW2 → B (access port): ลอก tag ออก → B ได้ frame ธรรมดาเหมือนที่ A ส่ง

ถ้า B อยู่ VLAN 20: ขั้น 4 SW2 จะส่งเฉพาะพอร์ตใน VLAN 10 frame จึงไม่ถึง B

จุดที่มักพลาด

1. คิดว่า host ใส่ tag เอง

host ส่ง frame ธรรมดา tag ถูกใส่และลอกโดย switch ที่ trunk

2. จำขนาด field ผิด

TPID 16 · Priority 3 · CFI 1 · VLAN ID 12 bit รวม 4 byte

3. ตอบว่ามี 4096 VLAN

12 bit ให้ 4096 ค่า แต่ใช้ได้ 1–4094

4. คิดว่า VLAN ต่างกันคุยกันได้ถ้าอยู่ switch เดียวกัน

ไม่ได้ ต้องผ่าน Layer 3 เสมอ

5. คิดว่าทุก frame บน trunk มี tag

frame ของ Native VLAN ไม่มี tag

6. สลับ ISL กับ 802.1Q

ISL เป็นของ Cisco · 802.1Q เป็นมาตรฐาน IEEE

ที่มา: Vlan.pdf หน้า 5–7 · chapter2 Switched Network.pdf หน้า 30–44 · มาตรฐานและเทคโนโลยีเครือข่าย (2).pdf หน้า 4