สารบัญ
VLAN คืออะไร?
VLAN (Virtual Local Area Network) คือเทคโนโลยีที่ช่วยแบ่งเครือข่ายฟิสิคัลหนึ่งเครือข่าย ออกเป็นหลายเครือข่ายเสมือน (Virtual Network) โดยใช้ VLAN ID ตามมาตรฐาน IEEE 802.1Q
ข้อดีของการใช้ VLAN:
- Security: แยก Broadcast Domain ช่วยลดความเสี่ยงด้านความปลอดภัย
- Performance: ลด Broadcast Traffic ทำให้เครือข่ายมีประสิทธิภาพมากขึ้น
- Flexibility: สามารถจัดกลุ่มอุปกรณ์ตามแผนก/หน้าที่ ไม่จำเป็นต้องอยู่ในที่เดียวกัน
- Cost Effective: ไม่ต้องซื้อ Switch แยกสำหรับแต่ละแผนก
VLAN ใน FortiGate:
NAT Mode VLAN
FortiGate ทำหน้าที่เป็น Layer 3 Router
ใน NAT Mode FortiGate จะทำหน้าที่เป็น Gateway สำหรับแต่ละ VLAN สามารถควบคุมการรับส่งข้อมูลระหว่าง VLAN ด้วย Firewall Policy และสามารถทำ NAT เพื่อออกอินเทอร์เน็ตได้
- รองรับ 802.1Q VLAN Trunk
- Inter-VLAN Routing
- DHCP Server แยกกันแต่ละ VLAN
สถาปัตยกรรมเครือข่าย
ตัวอย่างสถาปัตยกรรมที่เราจะใช้ในบทความนี้ ประกอบด้วย FortiGate เชื่อมต่อกับ Switch ผ่าน Trunk Port และมี 2 VLAN คือ VLAN 10 (แผนก IT) และ VLAN 20 (แผนก Accounting)
| VLAN ID | ชื่อ | Subnet | Gateway (FortiGate) | DHCP Range |
|---|---|---|---|---|
| 10 | IT Department | 172.16.10.0/24 | 172.16.10.1 | 172.16.10.100 - 172.16.10.200 |
| 20 | Accounting | 172.16.20.0/24 | 172.16.20.1 | 172.16.20.100 - 172.16.20.200 |
สิ่งที่ต้องเตรียม
Hardware Requirements
- FortiGate Firewall (รุ่นใดก็ได้ เช่น 60E, 100E, 200E)
- Managed Switch ที่รองรับ 802.1Q VLAN (Cisco, FortiSwitch, หรือยี่ห้ออื่น)
- คอมพิวเตอร์หรืออุปกรณ์สำหรับทดสอบ
- สาย LAN Cat5e หรือ Cat6
Software Requirements
- FortiOS 6.0 ขึ้นไป (แนะนำ 7.0 หรือ 7.2)
- Web Browser (Chrome, Firefox, Edge)
- SSH Client (สำหรับ CLI) - Optional
- พื้นฐาน Network TCP/IP
ข้อควรระวัง
การตั้งค่า VLAN อาจส่งผลต่อการเชื่อมต่อเครือข่ายที่มีอยู่ แนะนำให้ทดสอบในสภาพแวดล้อม Lab ก่อน และควร Backup Configuration ของ FortiGate ก่อนเริ่มต้น
สร้าง VLAN Interface
ตั้งค่า VLAN Sub-interface บน FortiGate
วิธี GUI
ไปที่ Network > Interfaces แล้วคลิก Create New > Interface
การตั้งค่า VLAN 10:
| Field | Value |
|---|---|
| Name | VLAN_10 |
| Type | VLAN |
| Interface | port2 (หรือ LAN interface) |
| VLAN ID | 10 |
| Role | LAN |
| IPv4 Address | 172.16.10.1/24 |
| Administrative Access | PING, HTTPS |
วิธี CLI
config system interface
edit "VLAN_10"
set vdom "root"
set type vlan
set interface "port2"
set vlanid 10
set role lan
set mode static
set ip 172.16.10.1 255.255.255.0
set allowaccess ping https
set description "IT Department VLAN"
next
end
config system interface
edit "VLAN_20"
set vdom "root"
set type vlan
set interface "port2"
set vlanid 20
set role lan
set mode static
set ip 172.16.20.1 255.255.255.0
set allowaccess ping https
set description "Accounting Department VLAN"
next
end
ผลลัพธ์
หลังจากสร้าง VLAN Interface เสร็จแล้ว จะเห็น VLAN_10 และ VLAN_20 อยู่ใต้ Interface port2 ในหน้า Network > Interfaces
ตั้งค่า DHCP Server
กำหนดค่า DHCP สำหรับแต่ละ VLAN
DHCP Server จะช่วยจัดสรร IP Address อัตโนมัติให้กับอุปกรณ์ในแต่ละ VLAN ทำให้ไม่ต้องตั้งค่า IP แบบ Static สำหรับทุกเครื่อง
วิธี GUI
- 1 ไปที่ Network > Interfaces
- 2 คลิกที่ VLAN_10 > Edit
- 3 ในส่วน DHCP Server เลือก Enable
-
4
ตั้งค่า IP Range:
172.16.10.100 - 172.16.10.200 -
5
ตั้งค่า Default Gateway:
172.16.10.1(Same as Interface IP) -
6
ตั้งค่า DNS Server:
8.8.8.8, 8.8.4.4
วิธี CLI
config system dhcp server
edit 1
set default-gateway 172.16.10.1
set dns-service default
set interface "VLAN_10"
config ip-range
edit 1
set start-ip 172.16.10.100
set end-ip 172.16.10.200
next
end
set netmask 255.255.255.0
next
end
config system dhcp server
edit 2
set default-gateway 172.16.20.1
set dns-service default
set interface "VLAN_20"
config ip-range
edit 1
set start-ip 172.16.20.100
set end-ip 172.16.20.200
next
end
set netmask 255.255.255.0
next
end
สร้าง Firewall Policy
กำหนดกฎการรับส่งข้อมูลระหว่าง VLAN และออกอินเทอร์เน็ต
Inter-VLAN Policy
กำหนดการสื่อสารระหว่าง VLAN 10 และ VLAN 20
- • VLAN 10 ↔ VLAN 20
- • ไม่ต้องเปิด NAT (Local Routing)
- • สามารถจำกัด Service ได้
Internet Access Policy
อนุญาตให้ทั้งสอง VLAN ออกอินเทอร์เน็ตได้
- • VLAN 10, VLAN 20 → Internet
- • ต้องเปิด NAT
- • ใช้ WAN Interface
3.1 Inter-VLAN Routing Policy
config firewall policy
edit 1
set name "VLAN10_to_VLAN20"
set srcintf "VLAN_10"
set dstintf "VLAN_20"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat disable
next
end
config firewall policy
edit 2
set name "VLAN20_to_VLAN10"
set srcintf "VLAN_20"
set dstintf "VLAN_10"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat disable
next
end
3.2 Internet Access Policy
config firewall policy
edit 3
set name "VLAN10_to_Internet"
set srcintf "VLAN_10"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat enable
next
end
config firewall policy
edit 4
set name "VLAN20_to_Internet"
set srcintf "VLAN_20"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat enable
next
end
หมายเหตุสำคัญ
- • Inter-VLAN: ไม่ต้องเปิด NAT เพราะเป็นการ Routing ภายใน
- • Internet: ต้องเปิด NAT เพื่อแปลง Private IP เป็น Public IP
- • Security: สามารถจำกัด Service เป็น HTTP, HTTPS แทน ALL ได้
ทดสอบการเชื่อมต่อ
ตรวจสอบว่า VLAN ทำงานถูกต้อง
4.1 ทดสอบภายใน VLAN เดียวกัน
ทดสอบ Ping จาก PC1 (VLAN 10) ไป Gateway:
C:\> ping 172.16.10.1
Pinging 172.16.10.1 with 32 bytes of data:
Reply from 172.16.10.1: bytes=32 time<1ms TTL=255
Reply from 172.16.10.1: bytes=32 time<1ms TTL=255
Reply from 172.16.10.1: bytes=32 time<1ms TTL=255
Ping statistics for 172.16.10.1:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss)
4.2 ทดสอบ Inter-VLAN Routing
ทดสอบ Ping จาก PC1 (VLAN 10) ไป PC3 (VLAN 20):
C:\> ping 172.16.20.2
Pinging 172.16.20.2 with 32 bytes of data:
Reply from 172.16.20.2: bytes=32 time=2ms TTL=63
Reply from 172.16.20.2: bytes=32 time=1ms TTL=63
Reply from 172.16.20.2: bytes=32 time=1ms TTL=63
Ping statistics for 172.16.20.2:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss)
TTL=63 แสดงว่า Packet ผ่าน Router (FortiGate) 1 Hop การเชื่อมต่อ Inter-VLAN ทำงานถูกต้อง!
4.3 ทดสอบออกอินเทอร์เน็ต
ทดสอบ Ping ไป Google DNS:
C:\> ping 8.8.8.8
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=15ms TTL=117
Reply from 8.8.8.8: bytes=32 time=14ms TTL=117
Reply from 8.8.8.8: bytes=32 time=14ms TTL=117
Ping statistics for 8.8.8.8:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss)
4.4 ตรวจสอบบน FortiGate
# get system interface physical | grep -A5 VLAN
[VLAN_10]
mode: static
ip: 172.16.10.1 255.255.255.0
status: up
interface: port2
vlanid: 10
[VLAN_20]
mode: static
ip: 172.16.20.1 255.255.255.0
status: up
interface: port2
vlanid: 20
# diagnose firewall policy list list firewall policy in vd: root policy id=1 name='VLAN10_to_VLAN20' action=accept hit=15 src=VLAN_10 dst=VLAN_20 service=ALL policy id=2 name='VLAN20_to_VLAN10' action=accept hit=12 src=VLAN_20 dst=VLAN_10 service=ALL policy id=3 name='VLAN10_to_Internet' action=accept hit=45 src=VLAN_10 dst=wan1 service=ALL NAT=yes policy id=4 name='VLAN20_to_Internet' action=accept hit=32 src=VLAN_20 dst=wan1 service=ALL NAT=yes
การตั้งค่า Switch
นอกจากการตั้งค่า FortiGate แล้ว ยังต้องตั้งค่า Switch ให้รองรับ VLAN Trunk และ Access Port ด้วย
Trunk Port (ไป FortiGate)
Port ที่เชื่อมต่อกับ FortiGate ต้องเป็น Trunk Mode
- Allow VLAN 10, 20
- 802.1Q Tagging
- Native VLAN: ไม่แนะนำให้มี
Access Port (ไป PC)
Port ที่เชื่อมต่อกับ End Device
- Untagged Traffic
- Assign to single VLAN
- Port Security (Optional)
Cisco Switch Configuration
! สร้าง VLAN enable configure terminal vlan 10 name IT_Department vlan 20 name Accounting ! ตั้งค่า Trunk Port (ไป FortiGate) interface GigabitEthernet0/0 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20 ! ตั้งค่า Access Port VLAN 10 (ไป PC) interface GigabitEthernet0/1 switchport mode access switchport access vlan 10 ! ตั้งค่า Access Port VLAN 20 (ไป PC) interface GigabitEthernet0/2 switchport mode access switchport access vlan 20 end write memory
! แสดง VLAN ทั้งหมด show vlan brief VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Gi0/3, Gi1/0, Gi1/1, Gi1/2 10 IT_Department active Gi0/1 20 Accounting active Gi0/2 ! แสดง Trunk Status show interfaces trunk Port Mode Encapsulation Status Native vlan Gi0/0 on 802.1q trunking 1 Port Vlans allowed on trunk Gi0/0 10,20
การแก้ไขปัญหา
ปัญหา: PC ไม่ได้รับ IP จาก DHCP
สาเหตุที่เป็นไปได้:
- • Switch Port ไม่ได้ Assign VLAN ที่ถูกต้อง
- • DHCP Server ไม่ Enable บน VLAN Interface
- • VLAN Interface Down
วิธีแก้:
- • ตรวจสอบ
show vlan briefบน Switch - • ตรวจสอบ DHCP Server Settings
- • ตรวจสอบ
get system interface
ปัญหา: Inter-VLAN ไม่สามารถ Ping กันได้
สาเหตุที่เป็นไปได้:
- • ไม่มี Firewall Policy อนุญาต
- • PC ไม่ได้ตั้งค่า Gateway ที่ถูกต้อง
- • Firewall ของ PC Block ICMP
วิธีแก้:
- • ตรวจสอบ Firewall Policy
- • ตรวจสอบ Default Gateway บน PC
- • ปิด Windows Firewall ชั่วคราว
ปัญหา: ออกอินเทอร์เน็ตไม่ได้
สาเหตุที่เป็นไปได้:
- • NAT ไม่ Enable ใน Policy
- • WAN Interface Down
- • DNS Server ไม่ทำงาน
วิธีแก้:
- • เปิด NAT ใน Internet Policy
- • ตรวจสอบ WAN Status
- • ทดสอบ ping 8.8.8.8 ก่อน
คำสั่ง Debug บน FortiGate
# เคลียร์ debug settings เดิม diagnose debug reset diagnose debug flow filter reset # กำหนด IP ที่ต้องการ debug diagnose debug flow filter addr 172.16.10.2 # แสดงชื่อ function diagnose debug flow show function-name enable # เริ่ม debug 100 packets diagnose debug flow trace start 100 # Enable debug diagnose debug enable # หยุด debug diagnose debug disable
คำถามที่พบบ่อย (FAQ)
Q: ต้องใช้ Switch ยี่ห้อ Cisco เท่านั้นไหม?
A: ไม่จำเป็น สามารถใช้ Switch ยี่ห้ออื่นได้ เช่น FortiSwitch, HP/Aruba, Dell, TP-Link (รุ่น Managed) ขอแค่รองรับ 802.1Q VLAN และ Trunk Port การตั้งค่าอาจแตกต่างกันเล็กน้อยตามรุ่น
Q: สามารถมีกี่ VLAN บน FortiGate?
A: ขึ้นอยู่กับรุ่นของ FortiGate และ FortiOS Version โดยทั่วไปรองรับได้หลายร้อย VLAN แต่ควรพิจารณา Performance และการจัดการด้วย แนะนำไม่เกิน 50-100 VLAN ในองค์กรขนาดกลาง
Q: NAT Mode กับ Transparent Mode ต่างกันอย่างไร?
A: NAT Mode: FortiGate ทำหน้าที่เป็น Router และ NAT ทำให้สามารถแบ่ง Subnet และออกอินเทอร์เน็ตได้
Transparent Mode: FortiGate ทำหน้าที่เหมือน Bridge ไม่มี IP Layer 3 ใช้สำหรับ Inspection เท่านั้น
Q: ถ้าต้องการ Block บาง Website ใน VLAN หนึ่ง?
A: สามารถใช้ Web Filter Profile ร่วมกับ Firewall Policy ได้ โดยสร้าง Web Filter Profile ที่ Block Category หรือ URL ที่ต้องการ แล้ว Apply กับ Policy ของ VLAN นั้น
Q: สามารถทำ VLAN โดยไม่ใช้ Switch ได้ไหม?
A: ได้ ถ้าใช้ FortiSwitch กับ FortiGate ที่รองรับ FortiLink สามารถใช้ FortiGate จัดการ VLAN บน FortiSwitch ได้โดยตรงผ่าน GUI โดยไม่ต้องตั้งค่า Switch แยก
สรุป
สิ่งที่เรียนรู้:
- สร้าง VLAN Interface บน FortiGate
- ตั้งค่า DHCP Server สำหรับแต่ละ VLAN
- สร้าง Firewall Policy สำหรับ Inter-VLAN
- ตั้งค่า NAT สำหรับออกอินเทอร์เน็ต
- ตั้งค่า Switch Trunk/Access Port
- แก้ไขปัญหาและ Debug
Best Practices:
- วางแผน IP Scheme ให้ชัดเจนก่อนตั้งค่า
- ตั้งชื่อ VLAN ให้สื่อความหมาย
- ใช้ Address Object แทน "all" ใน Policy
- เปิด Log Traffic เพื่อการ Audit
- Backup Configuration สม่ำเสมอ