GRE (Generic Routing Encapsulation) เป็นเทคโนโลยี Tunnel ที่ใช้ห่อหุ้ม Packet เพื่อส่งผ่านเครือข่าย IP ระหว่าง Router ส่วน IPsec ใช้ปกป้องข้อมูลด้วยการเข้ารหัสและตรวจสอบความถูกต้อง เมื่อนำมาทำงานร่วมกันเป็น GRE over IPsec จะได้ทั้งความยืดหยุ่นด้าน Routing และการป้องกัน Traffic ระหว่างทาง
บทความนี้อธิบายแนวคิด Architecture, Cisco IOS/IOS XE Lab, การใช้ IKEv2 กับ IPsec Profile, Static Routing, OSPF, MTU/MSS, Verification และ Troubleshooting โดยใช้เครือข่ายจำลองสำหรับการเรียนรู้
1. GRE Tunnel คืออะไร?
GRE เป็น Encapsulation Protocol ที่ห่อหุ้ม Packet ภายใน IP Packet อีกชั้น เพื่อให้ Router สองฝั่งมี Logical Point-to-Point Link ผ่าน Underlay Network เช่น Internet หรือ Private WAN
HQ LAN -- R1 ===== Internet ===== R2 -- Branch LAN
\___ GRE Tunnel ___/
Original Packet -> GRE Header -> Outer IP HeaderGRE มีประโยชน์เมื่อจำเป็นต้องส่ง Routing Traffic หรือสร้าง Overlay Interface ที่ Routing Protocol มองเห็นเป็น Link แต่ GRE เพียงอย่างเดียวไม่เข้ารหัสข้อมูล และไม่ควรใช้ส่งข้อมูลลับผ่าน Internet โดยไม่มีการป้องกันเพิ่มเติม
2. GRE, IPsec และ GRE over IPsec ต่างกันอย่างไร?
| คุณสมบัติ | GRE | IPsec | GRE over IPsec |
|---|---|---|---|
| Encapsulation | มี | มีตาม Mode | GRE ภายใน IPsec |
| Encryption | ไม่มี | มีเมื่อใช้ ESP Encryption | มีเมื่อกำหนด ESP Encryption |
| Routing Protocol ผ่าน Logical Tunnel | รองรับ | ขึ้นกับ Policy/Route-Based Design | รองรับ |
| Overhead | เพิ่ม | เพิ่ม | เพิ่มจากทั้งสองส่วน |
| Use Case | Overlay ภายใน Trusted Network | Secure Site-to-Site | Secure Routed Overlay |
ปัจจุบัน Route-Based IPsec VTI สามารถรองรับ Routing Protocol ได้บน Platform ที่เหมาะสม จึงไม่จำเป็นต้องใช้ GRE เสมอไป ควรเลือก GRE over IPsec เมื่อมี Requirement ด้าน GRE Encapsulation หรือ Compatibility จริง
3. GRE over IPsec ทำงานอย่างไร?
Original IP Packet
|
v
GRE Encapsulation
|
v
IPsec ESP Protection
|
v
Internet Underlay
|
v
IPsec Decryption
|
v
GRE Decapsulation
|
v
Destination LANใน Lab นี้ใช้ GRE Tunnel Interface ที่ผูก IPsec Profile ด้วย tunnel protection โดย IKEv2 ทำหน้าที่เจรจา Key และ ESP ปกป้อง GRE Packet ตาม Security Association ที่สร้างขึ้น
สำหรับ Tunnel Protection บน Cisco บาง Platform ต้องกำหนด IPsec Transform Set เป็น Transport Mode เพื่อปกป้อง GRE Packet อย่างเหมาะสม โดยรายละเอียดและข้อจำกัดแตกต่างตาม Release
4. Lab Topology และ IP Addressing
HQ LAN UNDERLAY BRANCH LAN
10.10.10.0/24 10.20.20.0/24
| |
Gi0/1 R1 Gi0/0 Gi0/0 R2 Gi0/1
| 203.0.113.1 ---- ISP/Internet ---- 198.51.100.2 |
| |
+------------ GRE over IPsec Tunnel ------------+
Tunnel0 172.16.12.1/30
172.16.12.2/30ใช้ Public IP ตัวอย่างจาก Documentation Prefix (203.0.113.0/24 และ 198.51.100.0/24) ซึ่งไม่ใช่ Address สำหรับ Production Internet โดยต้องแทนด้วย IP จริงใน Environment ของตนเอง
| รายการ | HQ-R1 | BR-R2 |
|---|---|---|
| WAN | 203.0.113.1/30 | 198.51.100.2/30 |
| WAN Next Hop | 203.0.113.2 | 198.51.100.1 |
| LAN | 10.10.10.1/24 | 10.20.20.1/24 |
| Tunnel0 | 172.16.12.1/30 | 172.16.12.2/30 |
5. ตรวจสอบก่อน Configure
- ยืนยันว่า Router รองรับ IKEv2, IPsec, GRE Tunnel Protection และ Cryptographic Suite ที่เลือก
- ตรวจ License, IOS/IOS XE Release, Hardware Acceleration และ Throughput Limit
- ทดสอบ Underlay Reachability ระหว่าง Public WAN IP ก่อนสร้าง Tunnel
- กำหนด Authentication Identity และ Pre-Shared Key ให้ตรงกันทั้งสองฝั่ง
- ตรวจ Firewall/ISP ให้ IKE UDP 500, NAT-T UDP 4500 หรือ ESP (IP Protocol 50) ผ่านตาม Topology
- วางแผน Rollback และหลีกเลี่ยงการเปลี่ยน Remote WAN Interface โดยไม่มี Out-of-Band Access
ตัวอย่างต่อไปนี้สมมติว่า Router สามารถติดต่อ WAN Peer ได้โดยตรง และไม่มี NAT คั่นกลาง ค่า CHANGE-THIS-TO-A-LONG-RANDOM-SECRET เป็น Placeholder เท่านั้น ห้ามใช้จริง
6. สร้าง GRE Tunnel พื้นฐาน
HQ-R1
interface Tunnel0
description GRE-TO-BRANCH
ip address 172.16.12.1 255.255.255.252
tunnel source GigabitEthernet0/0
tunnel destination 198.51.100.2
tunnel mode gre ipBR-R2
interface Tunnel0
description GRE-TO-HQ
ip address 172.16.12.2 255.255.255.252
tunnel source GigabitEthernet0/0
tunnel destination 203.0.113.1
tunnel mode gre ipขั้นตอนนี้ยังไม่ปลอดภัยสำหรับข้อมูลลับบน Internet เพราะเป็น GRE แบบไม่มี Encryption ให้เพิ่ม IPsec Protection ก่อนใช้งาน Production
7. IKEv2 และ IPsec Profile
องค์ประกอบสำคัญ ได้แก่ IKEv2 Proposal, IKEv2 Policy, Keyring, IKEv2 Profile, IPsec Transform Set และ IPsec Profile
IKEv2 Proposal + Policy
|
v
Keyring + IKEv2 Profile
|
v
IPsec Transform Set
|
v
IPsec Profile
|
v
Tunnel Protectionตัวอย่างใช้ AES-256-CBC, SHA-256, DH Group 14 สำหรับความเข้ากันได้กับ Lab ที่รองรับ ทั้งนี้สำหรับ Production ควรประเมิน AES-GCM และ DH Group ที่แข็งแกร่งกว่าเมื่อ Platform รองรับ รวมถึงข้อกำหนด Security Baseline ขององค์กร
หมายเหตุ: บาง Platform/Release อาจใช้ Syntax หรือข้อจำกัด IKEv2/IPsec แตกต่างจากตัวอย่าง ตรวจ Command Reference ก่อน Deploy
8. Full Configuration: HQ-R1 และ BR-R2
8.1 HQ-R1
hostname HQ-R1
!
interface GigabitEthernet0/0
description WAN-TO-ISP
ip address 203.0.113.1 255.255.255.252
no shutdown
!
interface GigabitEthernet0/1
description HQ-LAN
ip address 10.10.10.1 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 203.0.113.2
!
crypto ikev2 proposal GRE-IKE-PROP
encryption aes-cbc-256
integrity sha256
group 14
!
crypto ikev2 policy GRE-IKE-POL
proposal GRE-IKE-PROP
!
crypto ikev2 keyring GRE-KEYRING
peer BRANCH
address 198.51.100.2
pre-shared-key local CHANGE-THIS-TO-A-LONG-RANDOM-SECRET
pre-shared-key remote CHANGE-THIS-TO-A-LONG-RANDOM-SECRET
!
crypto ikev2 profile GRE-IKE-PROFILE
match identity remote address 198.51.100.2 255.255.255.255
identity local address 203.0.113.1
authentication remote pre-share
authentication local pre-share
keyring local GRE-KEYRING
!
crypto ipsec transform-set GRE-ESP esp-aes 256 esp-sha256-hmac
mode transport
!
crypto ipsec profile GRE-IPSEC-PROFILE
set transform-set GRE-ESP
set ikev2-profile GRE-IKE-PROFILE
!
interface Tunnel0
description GRE-OVER-IPSEC-TO-BRANCH
ip address 172.16.12.1 255.255.255.252
tunnel source GigabitEthernet0/0
tunnel destination 198.51.100.2
tunnel mode gre ip
tunnel protection ipsec profile GRE-IPSEC-PROFILE
no shutdown
!
ip route 10.20.20.0 255.255.255.0 Tunnel08.2 BR-R2
hostname BR-R2
!
interface GigabitEthernet0/0
description WAN-TO-ISP
ip address 198.51.100.2 255.255.255.252
no shutdown
!
interface GigabitEthernet0/1
description BRANCH-LAN
ip address 10.20.20.1 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 198.51.100.1
!
crypto ikev2 proposal GRE-IKE-PROP
encryption aes-cbc-256
integrity sha256
group 14
!
crypto ikev2 policy GRE-IKE-POL
proposal GRE-IKE-PROP
!
crypto ikev2 keyring GRE-KEYRING
peer HQ
address 203.0.113.1
pre-shared-key local CHANGE-THIS-TO-A-LONG-RANDOM-SECRET
pre-shared-key remote CHANGE-THIS-TO-A-LONG-RANDOM-SECRET
!
crypto ikev2 profile GRE-IKE-PROFILE
match identity remote address 203.0.113.1 255.255.255.255
identity local address 198.51.100.2
authentication remote pre-share
authentication local pre-share
keyring local GRE-KEYRING
!
crypto ipsec transform-set GRE-ESP esp-aes 256 esp-sha256-hmac
mode transport
!
crypto ipsec profile GRE-IPSEC-PROFILE
set transform-set GRE-ESP
set ikev2-profile GRE-IKE-PROFILE
!
interface Tunnel0
description GRE-OVER-IPSEC-TO-HQ
ip address 172.16.12.2 255.255.255.252
tunnel source GigabitEthernet0/0
tunnel destination 203.0.113.1
tunnel mode gre ip
tunnel protection ipsec profile GRE-IPSEC-PROFILE
no shutdown
!
ip route 10.10.10.0 255.255.255.0 Tunnel09. Routing ผ่าน GRE over IPsec
Static Routing
Lab นี้ใช้ Static Routes ไปยัง Remote LAN ผ่าน Tunnel0 ทั้งสองฝั่ง โดย Underlay Default Route ต้องยังนำไปถึง Public IP ของ VPN Peer ได้โดยไม่วนกลับเข้า Tunnel
HQ-R1:
ip route 10.20.20.0 255.255.255.0 Tunnel0
BR-R2:
ip route 10.10.10.0 255.255.255.0 Tunnel0OSPF ผ่าน GRE Tunnel
ถ้าต้องการ Dynamic Routing สามารถใช้ OSPF ผ่าน Tunnel0 แทน Static Remote LAN Routes โดยต้องวางแผน Router ID, Area, Authentication และ Route Filtering
! HQ-R1 (ตัวอย่างทางเลือก)
router ospf 10
router-id 1.1.1.1
passive-interface default
no passive-interface Tunnel0
network 172.16.12.0 0.0.0.3 area 0
network 10.10.10.0 0.0.0.255 area 0
! BR-R2 (ตัวอย่างทางเลือก)
router ospf 10
router-id 2.2.2.2
passive-interface default
no passive-interface Tunnel0
network 172.16.12.0 0.0.0.3 area 0
network 10.20.20.0 0.0.0.255 area 0อย่าใช้ Static Route และ OSPF โดยไม่มีแผน Route Preference ใน Lab ทางเลือกนี้ให้ลบ Static Remote LAN Routes ก่อนทดสอบ OSPF หรือกำหนด Administrative Distance อย่างตั้งใจ
หากใช้ OSPF ควรป้องกัน Routing Adjacency เพิ่มเติมตาม Security Requirement และไม่ Advertise Public Underlay Prefix กลับเข้า Overlay จนทำให้เกิด Recursive Routing
10. MTU, MSS และ Fragmentation
GRE และ IPsec เพิ่ม Header Overhead ทำให้ Packet ที่มีขนาดใกล้ Ethernet MTU อาจถูก Fragment หรือ Drop เมื่อ Path MTU Discovery ทำงานผิดปกติ
Original IP Packet
+ GRE Overhead
+ ESP Overhead
+ Outer IP / Optional UDP
= Larger Packet on Underlayแนวทางตรวจสอบคือทดสอบ Path MTU จริงและดู DF/ICMP Feedback ก่อนปรับค่า Tunnel MTU หรือ TCP MSS ตัวเลขที่เหมาะสมขึ้นอยู่กับ Algorithm, NAT-T, Underlay MTU และ Platform
interface Tunnel0
ip mtu 1400
ip tcp adjust-mss 13601400/1360 เป็นค่าตัวอย่างสำหรับ Lab ไม่ใช่ค่าที่ถูกต้องสำหรับทุก VPN และ TCP MSS Adjustment ไม่ได้แก้ปัญหา UDP Packet ขนาดใหญ่ ต้องตรวจ MTU และ Application Behavior ร่วมกัน
11. Verification Commands
ตรวจ Underlay
show ip route
ping 198.51.100.2 source 203.0.113.1
! จาก HQ-R1; ใช้ Address สลับกันเมื่อทดสอบ BR-R2ตรวจ GRE Tunnel
show interfaces Tunnel0
show ip interface brief
show ip route 10.20.20.0ตรวจ IKEv2 และ IPsec
show crypto ikev2 sa
show crypto ipsec sa
show crypto session detailทดสอบ Tunnel และ LAN
ping 172.16.12.2 source 172.16.12.1
ping 10.20.20.1 source 10.10.10.1
traceroute 10.20.20.1 source 10.10.10.1ตรวจ encaps/encrypt และ decaps/decrypt Counters ระหว่างส่ง Traffic ที่ได้รับอนุญาต การเพิ่มของ Counter ทั้งสองฝั่งช่วยยืนยัน Data Plane มากกว่าการดู Tunnel Interface Up เพียงอย่างเดียว
หากทดสอบจาก LAN Host ต้องตรวจ Default Gateway และ Local Firewall ของ Host ด้วย
12. GRE over IPsec Troubleshooting
Underlay Peer Reachable?
|
v
GRE Tunnel Source/Destination Correct?
|
v
IKEv2 SA Established?
|
v
IPsec SA Established?
|
v
ESP Encaps/Decaps Counters Increase?
|
v
Remote LAN Routes Correct?
|
v
Firewall / NAT / Return Path Correct?
|
v
MTU / MSS / Application TestCase 1: Tunnel Interface Up แต่ Traffic ไม่ผ่าน
ตรวจ IKE/IPsec SA, Routing และ IPsec Counters เพราะ GRE Tunnel State ไม่ได้ยืนยันว่า Protected Traffic ผ่านได้จริง
Case 2: IKEv2 Authentication Failed
ตรวจ PSK, Local/Remote Identity, Peer Address, Proposal และ Clock/Certificate หากใช้ PKI
Case 3: Encapsulation เพิ่ม แต่ Decapsulation ไม่เพิ่ม
ตรวจ Remote Peer, Firewall, NAT-T, ESP, Routing Return Path และ SA ที่ Remote Router
Case 4: OSPF Neighbor ไม่ขึ้น
ตรวจ Tunnel IP, OSPF Area, Hello/Dead Timers, Authentication, MTU, Multicast Handling และ Interface State
Case 5: Ping ได้ แต่ Web/Transfer ค้าง
ตรวจ MTU, TCP MSS, PMTUD, ICMP Filtering และ Fragmentation โดยทดสอบ Packet Size อย่างเป็นระบบ
Case 6: Tunnel Flap เมื่อ WAN เปลี่ยนเส้นทาง
ตรวจ Underlay Route, DPD, Rekey, NAT State และ Recursive Routing รวมถึง ISP Failover Behavior
13. Security และ Production Best Practices
- ใช้ Cryptographic Suite ที่ยังปลอดภัย: ประเมิน AES-GCM, SHA-2 และ Modern DH Groups ตาม Platform และ Policy
- ป้องกัน Key: ใช้ PSK ที่สุ่มและยาวเพียงพอ หรือ Certificate Authentication พร้อมกระบวนการ Rotation
- จำกัด Peer: อนุญาต IKE/NAT-T/ESP เฉพาะ Endpoint ที่จำเป็นเมื่อทำได้
- ใช้ Firewall/ACL: Tunnel Encryption ไม่ได้แทน Segmentation หรือ Least-Privilege Policy
- Monitor: เก็บ Tunnel State, IKE Rekey Events, Crypto Errors, Packet Loss และ Interface Utilization
- ออกแบบ HA: พิจารณา Dual ISP, Redundant Gateway และ Routing Failover
- ทดสอบ MTU: ตรวจ Application Traffic จริง ไม่ใช้ Ping ขนาดเล็กเป็นหลักฐานเดียว
- เลือกเทคโนโลยีตาม Requirement: ถ้า Route-Based IPsec VTI รองรับทุกอย่างที่ต้องการ GRE อาจเป็น Overhead ที่ไม่จำเป็น
14. FAQ
GRE Tunnel เข้ารหัสข้อมูลหรือไม่?
ไม่ GRE เพียงอย่างเดียวเป็น Encapsulation จึงควรใช้ IPsec หรือกลไกอื่นหากต้องการ Confidentiality
GRE over IPsec กับ IPsec VTI ต่างกันอย่างไร?
GRE over IPsec เพิ่ม GRE Encapsulation ก่อน IPsec ส่วน IPsec VTI สร้าง Routed Tunnel Interface ด้วย IPsec โดยไม่ต้องใช้ GRE ในหลายกรณี
GRE ใช้ TCP หรือ UDP Port ใด?
GRE แบบทั่วไปใช้ IP Protocol 47 ไม่ใช่ TCP/UDP Port 47 เมื่อปกป้องด้วย IPsec ให้ตรวจ ESP หรือ NAT-T ตาม Topology
ทำไม GRE over IPsec ทำให้ MTU ลดลง?
เพราะ GRE และ IPsec เพิ่ม Encapsulation Overhead ทำให้ Payload ที่ส่งผ่าน Underlay ได้โดยไม่ Fragment มีขนาดลดลง
OSPF ผ่าน GRE over IPsec ได้หรือไม่?
ได้ โดย GRE Tunnel ทำหน้าที่เป็น Logical Link และ IPsec ปกป้อง Traffic ระหว่าง Tunnel Endpoints
ควรเลือก GRE over IPsec หรือ VTI?
หากต้องการเพียง Secure Routed Site-to-Site VPN ควรประเมิน VTI ก่อน ส่วน GRE over IPsec เหมาะเมื่อมีข้อกำหนดเฉพาะด้าน Encapsulation หรือ Compatibility
15. บทสรุป
GRE ช่วยสร้าง Logical Tunnel ส่วน IPsec ช่วยปกป้อง Traffic การรวมกันเป็น GRE over IPsec เหมาะกับบาง Enterprise Overlay Design แต่ต้องแลกกับ Header Overhead และ Configuration Complexity
GRE = Encapsulation
IPsec = Traffic Protection
GRE over IPsec = Routed Overlay + Protection
Verification = Underlay + IKE + ESP + Routing + ApplicationNetwork Engineer ควรตรวจทั้ง Control Plane และ Data Plane รวมถึง MTU, Routing และ Security Policy เพื่อยืนยันว่า Tunnel ใช้งานได้จริง ไม่ใช่เพียง Interface แสดงสถานะ Up
บทความถัดไป: Network Addressing Design — IPv4 Subnetting, VLSM, IP Address Planning และ VLAN Design
Share your thoughts here
Join the conversation and share your perspective on this article.