การทำ VPN ด้วย GRE Tunnel บนอุปกรณ์ Cisco

สวัสดีครับทุกท่าน วันนี้ผมจะมาแนะนำการทำ VPN ด้วยการใช้ GRE Tunnel บนอุปกรณ์ Cisco กันครับ
การเชื่อมต่อระบบเครือข่ายระหว่างสาขาเข้าด้วยกัน ซึ่งปกติเราจะต้องไปเช่า Link จากทางผู้ให้บริการ เพื่อเชื่อมต่อจาก สาขานึง ไป อีกสาขานึง ก็จะมีค่าใช้จ่ายที่สูงพอสมควร ในปัจจุบัน VPN เป็นอีกหนึ่งทางเลือกที่ทำให้เราประหยัดค่าใช้จ่ายตรงนี้ไปได้พอสมควร เพียงแค่แต่ละสาขามี Internet ใช้งาน ก็สามารถทำ VPN เพื่อให้ แต่ละสาขาสามารถเชื่อมต่อกันได้ และข้อดีอีกอย่างคือ เราสามารถ control เรื่อง routing ได้เองตามที่เราต้องการอีกด้วย
gre2GRE (Generic Routing Encapsulation) เป็นเทคนิคในการทำ VPN แบบนึง โดยสร้าง Tunnel ระหว่างอุปกรณ์ฝั่งต้นทางกับปลายทางขึ้นมา โดยการ encapsulation data ที่ส่งออกไปทาง physical interface
gre3GRE ใช้งานผ่าน IP Protocol Number “47” มีข้อดีคือสามารถ encapsulate Layer 3 protocol ได้ทุกชนิด ทำให้มีความยืดหยุ่นในการใช้งาน และ สามารถใช้งานกับ Dynamic Routing Protocol ได้ด้วย (แต่ IPSec ไม่สามารถใช้งานได้) แต่ข้อมูลที่ถูก encapsulate ผ่าน GRE จะไม่มีการตรวจสอบข้อมูลและรักษาความปลอดภัยใด ๆ เราก็สามารถใช้งานร่วมกับ IPSec ได้เช่นเดียวกัน

gre6จาก Diagram จะมี HQ , BR-1 และ BR-2 แต่ละ สาขามี Internet ของตัวเอง เราจะทำการเชื่อมต่อ แต่ละสาขาเข้าหากันโดยใช้ GRE Tunnel โดย เราจะเชื่อมระหว่าง HQ กับ BR-1 เป็น Tunnel ที่ 1 และ HQ กับ BR-2 เป็น Tunnel ที่ 2
gre5หลังจากทำ GRE แล้ว Tunnel จะถูกสร้างระหว่างต้นทางและปลายทาง เปรียบเสมือนว่า HQ กับ BR-1 และ HQ กับ BR-2 เชื่อมต่อกันตรง แบบในรูปด้านขวา จากนั้นเราสามารถตั้งค่า Routing ระหว่างสาขาหากันได้เลย ก็จะสามารถเชื่อมต่อกันได้

มาดูขึ้นตอนการตั้งค่า GRE Tunnel กันครับ

  1. สร้าง interface tunnel
  2. ระบุ tunnel source ด้วย IP หรือ Interface ของฝั่งต้นทาง (ขา Public ที่เชื่อมไปไป Internet)
  3. ระบุ tunnel destination ด้วย IP ของฝั่งปลายทาง (ขา Public ของฝั่งปลายทาง)
  4. ตั้งค่าใช้งาน Routing ระหว่างสาขา (Static , OSPF , EIGRP)

การตั้งค่า GRE Tunnel บน HQ กับ BR-1

gre8
HQ Router
HQ(config)#interface tunnel 1
HQ(config-if)#ip address 12.12.12.1 255.255.255.252
HQ(config-if)#no shutdown
HQ(config-if)#tunnel source serial 0/0
HQ(config-if)#tunnel destination 1.1.1.2
*Oct 25 16:52:00.359: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
HQ#show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
Tunnel1                12.12.12.1         YES manual up                       up     
HQ#show ip route
C        12.12.12.0/30 is directly connected, Tunnel1
BR-1 Router
Branch-1(config)#interface tunnel 1
Branch-1(config-if)#ip address 12.12.12.2 255.255.255.252
Branch-1(config-if)#no shutdown
Branch-1(config-if)#tunnel source serial 0/0
Branch-1(config-if)#tunnel destination 3.3.3.2
*Oct 25 16:57:46.523: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
Branch-1#show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
Tunnel1                12.12.12.2        YES manual up                       up
Branch-1#show ip route
C        12.12.12.0/30 is directly connected, Tunnel1

ทดสอบโดยการ ping ip บน tunnel

HQ#ping 12.12.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.12.12.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/48/84 ms
Branch-1# ping 12.12.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.12.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/39/60 ms

การตั้งค่า GRE Tunnel บน HQ กับ BR-2

gre8
HQ Router
HQ(config)#interface tunnel 2
HQ(config-if)#ip address 13.13.13.1 255.255.255.252
HQ(config-if)#no shutdown
HQ(config-if)#tunnel source serial 0/0
HQ(config-if)#tunnel destination 2.2.2.2
*Oct 25 17:09:25.391: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel2, changed state to up
HQ#show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
Tunnel2                13.13.13.1         YES manual up                       up  
BR-2 Router
Branch-2(config)#interface tunnel 2
Branch-2(config-if)#ip address 13.13.13.2 255.255.255.252
Branch-2(config-if)#no shutdown
Branch-2(config-if)#tunnel source serial0/0
Branch-2(config-if)#tunnel destination 3.3.3.2
*Oct 25 17:11:53.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel2, changed state to up
Branch-2#show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
Tunnel2                13.13.13.2        YES manual up                       up     

ทดสอบโดยการ ping ip บน tunnel

HQ#ping 13.13.13.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.13.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/64/112 ms
Branch-2#ping 13.13.13.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.13.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/30/40 ms

ตั้งค่า Routing ผ่าน Tunnel เพื่อให้ HQ กับ BR-1 และ BR-2 เชื่อมต่อถึงกันได้
(ในตัวอย่างผมใช้ Dynamic Routing EIGRP นะครับ)

HQ Router
HQ(config)#router eigrp 1
HQ(config-router)#no auto-summary
HQ(config-router)#network 12.12.12.1 0.0.0.0
HQ(config-router)#network 13.13.13.1 0.0.0.0
HQ(config-router)#network 192.168.100.1 0.0.0.0
BR-1 Router
Branch-1(config-if)#router eigrp 1
Branch-1(config-router)#no auto-summary
Branch-1(config-router)#network 12.12.12.2 0.0.0.0
Branch-1(config-router)#network 192.168.1.1 0.0.0.0

BR-2 Router
Branch-2(config-if)#router eigrp 1
Branch-2(config-router)#no auto-summary
Branch-2(config-router)#network 13.13.13.2 0.0.0.0
Branch-2(config-router)#network 192.168.2.1 0.0.0.0

ตรวจสอบ EIGRP neighbor

HQ Router
HQ#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold      Uptime    SRTT   RTO     Q     Seq
(sec)         (ms)                               Cnt   Num
1   12.12.12.2                  Tu1                        11        00:12:23   1269   5000     0       6
0   13.13.13.2                 Tu2                        10       00:12:58    153    1470      0        5
BR-1 Router
Branch-1#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold      Uptime    SRTT   RTO     Q     Seq
(sec)         (ms)                               Cnt   Num
0   12.12.12.1                  Tu1                       14        00:13:57     125     1470     0      9
BR-2 Router
Branch-2#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold      Uptime    SRTT   RTO     Q     Seq
(sec)         (ms)                               Cnt   Num
0   13.13.13.1              Tu2                           11        00:16:51     207     1470     0      10

ตรวจสอบ Routing บน HQ , BR-1 และ BR-2

HQ Router
HQ#show ip route eigrp
D     192.168.1.0/24 [90/27008000] via 12.12.12.2, 00:18:01, Tunnel1
D     192.168.2.0/24 [90/27008000] via 13.13.13.2, 00:18:29, Tunnel2
BR-1 Router
Branch-1#show ip route eigrp
13.0.0.0/30 is subnetted, 1 subnets
D         13.13.13.0 [90/28160000] via 12.12.12.1, 00:18:46, Tunnel1
D     192.168.2.0/24 [90/28288000] via 12.12.12.1, 00:18:46, Tunnel1
D     192.168.100.0/24 [90/27008000] via 12.12.12.1, 00:18:46, Tunnel1
BR-2 Router
Branch-2#show ip route eigrp
12.0.0.0/30 is subnetted, 1 subnets
D         12.12.12.0 [90/28160000] via 13.13.13.1, 00:21:27, Tunnel2
D     192.168.1.0/24 [90/28288000] via 13.13.13.1, 00:20:50, Tunnel2
D     192.168.100.0/24 [90/27008000] via 13.13.13.1, 00:21:27, Tunnel2

ลองทดสอบ ping จาก LAN BR-1 ไปหา LAB BR-2

Branch-1#ping 192.168.2.1 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 112/133/160 ms
ตอนนี้ LAN ของแต่ละสาขา HQ , BR-1 และ BR-2 ก็สามารถเชื่อมต่อหากันได้แล้ว…
จบแลวครับ สำหรับการเชื่อมต่อแต่ละสาขาเข้าหากันโดยการใช้ GRE Tunnel เห็นไหมครับว่าไม่ยากเลย สุดท้ายผมก็หวังว่า บทความนี้จะเป็นประโยชน์กับผู้ที่สนใจไม่มากก็น้อยครับ ถ้าผิดพลาดประการใดก็ขออภัยด้วยครับ
แล้วพบกันในบทความต่อไปนะคร้าบบบ ขอบคุณมากครับ

Facebook Comments

comments