หัวข้อ 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)
ประโยชน์
| ประโยชน์ | อธิบาย |
|---|---|
| ลด broadcast | broadcast ไปถึงเฉพาะเครื่องใน VLAN เดียวกัน ใช้ bandwidth คุ้มขึ้น |
| เพิ่ม security | traffic ของแต่ละกลุ่มแยกจากกันที่ Layer 2 |
| จัดกลุ่มตามหน้าที่ | ตามแผนก ทีม หรือ application โดยไม่ขึ้นกับตำแหน่งที่นั่ง |
| ลดค่าใช้จ่ายในการดูแล | ย้าย เพิ่ม เปลี่ยน (moves/adds/changes) ทำได้ด้วยการตั้งค่า ไม่ต้องเดินสาย |
| Scalability และ performance | แบ่งเครือข่ายใหญ่ให้เป็นส่วนที่จัดการได้ |
Access port กับ Trunk port
| Access port | Trunk port | |
|---|---|---|
| จำนวน VLAN | 1 VLAN | หลาย VLAN |
| ต่อกับ | end device (PC, printer, server) | switch หรือ router |
| frame | untagged | tagged ด้วย 802.1Q (ยกเว้น Native VLAN) |
| หมายเหตุ | host ไม่รู้ว่ามี VLAN | DTP อาจเจรจาเป็น trunk อัตโนมัติ |
ทำไมต้องมี trunk: ถ้ามีสอง switch และสาม VLAN โดยไม่มี trunk จะต้องใช้สายสามเส้นระหว่าง switch (เส้นละ VLAN) trunk ขนทุก VLAN ในสายเส้นเดียว โดยติดป้าย (tag) บอกว่าแต่ละ frame เป็นของ VLAN ใด
Trunking protocol
| ISL | IEEE 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 bit | Canonical 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 ของฝั่งนั้น สองฝั่งจึงต้องตั้งให้ตรงกัน รายละเอียดและการโจมตีอยู่ในบทเรียนถัดไป
- AVLAN 10
- SW1native 999
- trunk802.1Q
- SW2native 999
- BVLAN 10
frame ณ จุดนี้
untagged
คำอธิบายทีละขั้น
A จะส่ง frame ไปหา B ผ่าน trunk
ลองใน simulation:
- "VLAN 10 ติด tag": tag ถูกใส่ที่ SW1 ตอนออก trunk และถูกลอกที่ SW2 ก่อนถึง host
- "Native VLAN ไม่ติด tag": frame วิ่งบน trunk แบบไม่มี tag
- "Native mismatch": frame ออกจาก VLAN 1 แต่ไปโผล่ใน VLAN 999
คำสั่งพื้นฐาน
! สร้าง 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 มีหน้าตาอย่างไรในแต่ละช่วง และยาวขึ้นเท่าใด
- A → SW1 (access port): frame ธรรมดา ไม่มี tag — A ไม่รู้ว่าตัวเองอยู่ VLAN ใด
- SW1: พอร์ตขาเข้าอยู่ VLAN 10 → frame นี้เป็นของ VLAN 10
- SW1 → SW2 (trunk): VLAN 10 ไม่ใช่ Native VLAN (999) → แทรก tag: TPID
0x8100, Priority 0, CFI 0, VID 10 → frame ยาวขึ้น 4 byte และ FCS ถูกคำนวณใหม่ - SW2: อ่าน VID = 10 → หา MAC ของ B ในตารางของ VLAN 10
- 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