Thứ Năm, 28 tháng 11, 2019

GRE Tunnel là gì? Hướng dẫn cấu hình GRE Tunnel Trên Router Cisco

GRE Tunnel là gì? Hướng dẫn cấu hình GRE Tunnel Trên Router Cisco

Trong bài viết này chúng ta cùng tìm hiểu GRE Tunnel là gì? Cách cấu hình GRE Tunnel trên Router Cisco và sử dụng công nghệ IPSEC Tunnel để mã hóa dữ liệu trên Tunnel

GRE là gì?

GRE là viết tắt của Generic Routing Encapsulation, là giao thức được phát triển bởi Cisco, cho phép đóng gói nhiều loại giao thức lớp Network trong các liên kết Point-to-Point. Một GRE Tunnel được sử dụng khi các gói dữ liệu cần được gửi giữa các mạng khác nhau thông qua internet. Với GRE được cấu hình, 1 đường hầm ảo được tạo giữa 2 Router và các gói tin gửi giữa 2 mạng nội bộ sẽ được truyền qua GRE Tunnel.
Điều quan trọng cần lưu ý là các gói tin truyền trong GRE Tunnel không được mã. Để bảo vệ dữ liệu, chúng ta cần sử dụng công nghệ IPSEC kết hợp với GRE.
Mô hình GRE Tunnel
IPSEC GRE Tunnel về cơ bản giống với IPSEC VPN Site to Site khi cả 2 giao thức đều tạo 1 tunnel để kết nối giữa 2 site cho phép truyền dữ liệu qua chúng. Nhưng điểm khác biệt cơ bản là GRE Tunnel cho phép các gói tin Multicast trong khi IPSEC VPN thì không hỗ trợ. Trong các mạng lớn chạy các giao thức định tuyến như OSPF, EIGRP, bạn cần dùng GRE Tunnel để hỗ trợ các gói tin trao đổi giữa các giao thức này.

Các bước cấu hình

  • Bước 1: Bật giao diện Tunnel và đặt IP cho giao diện này
  • Bước 2: Tạo định tuyến tĩnh để cho phép các mạng nội bộ 2 Site chó thể truy cập được lẫn nhau.
  • Bước 3: Cấu hình IPSEC để mã hóa dữ liệu trên Tunnel

Cấu hình GRE Tunnel trên Router Cisco

Trong mô hình gồm có 2 Site là HQ và BR sử dụng NAT để truy cập internet. Site HQ gồm 2 VLAN: VLAN10-10.0.0.0/24 và VLAN20-10.0.1.0/24. Site BR gôm 1 VLAN 172.16.1.0/24. Router HQ có IP Wan là 100.0.0.100 và Router BR có IP Wan là 100.0.0.1. Yêu cầu bài Lab là cấu hình GRE Tunnel dải 192.168.1.0/24 để cho phép các VLAN giữa 2 site HQ và BR có thể truy cập được lẫn nhau.

Mô hình IPSEC VPN GRE TunnelBước 1: Tạo GRE Tunnel trên Router HQ

HQ#configure terminal
HQ(config)#interface tunnel 0
%LINK-5-CHANGED: Interface Tunnel0, changed state to up
HQ(config-if)#ip address 192.168.1.1 255.255.255.0
HQ(config-if)#tunnel mode gre ip
HQ(config-if)#tunnel source 100.0.0.100
HQ(config-if)#tunnel destination 100.0.0.1
Trong phần tunnel source có nhiều tùy chọn như interface, IP address... các bạn có thể sử dụng các tùy chọn khác nhau. Bên cạnh đó mtu mặc định là 1500 byte nên nếu các bạn kết nối internet qua giao thức PPPoE thì các bạn cần cấu hình thêm mtu để tránh phân mảnh gói tin.
HQ(config)#interface tunnel 0
HQ(config-if)# ip mtu 1400
HQ(config-if)# ip tcp adjust-mss 1360

Bước 2: Tạo GRE Tunnel trên Router BR

Tương tự chúng ta tạo Tunnel trên Router BR
BR#configure terminal
BR(config)#interface tunnel 0
%LINK-5-CHANGED: Interface Tunnel0, changed state to up
BR(config-if)#ip address 192.168.1.2 255.255.255.0

BR(config-if)#tunnel mode gre ip
BR(config-if)# ip mtu 1400
BR(config-if)# ip tcp adjust-mss 1360
BR(config-if)#tunnel source 100.0.0.1
BR(config-if)#tunnel destination 100.0.0.100

Bước 3: Cấu hình định tuyến tĩnh để các VLAN giữa 2 site có thể kết nối được với nhau

Sau khi cấu hình interface tunnel giữa 2 router, chúng ta có thể ping được từ địa chỉ IP 192.168.1.1 trên Router HQ sang 192.168.1.2 của Router BR.
HQ#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms
HQ#
Tuy nhiên lúc này các VLAN giữa 2 site vẫn không thể truy cập được lẫn nhau do router vẫn sử dụng Default route để định tuyến các gói tin này. Chúng ta cần tạo thêm định tuyến tĩnh để cho Router đẩy gói tin thông qua GRE Tunnel.
Cấu hình định tuyến tĩnh trên Router HQ
HQ(config)#ip route 172.16.1.0 255.255.255.0 192.168.1.2
Cấu hình định tuyến tĩnh trên Router BR
BR(config)#ip route 10.0.0.0 255.255.255.0 192.168.1.1
BR(config)#ip route 10.0.1.0 255.255.255.0 192.168.1.1
Bây giờ 2 site có thể ping thông được lẫn nhau thông qua GRE Tunnel

Mã hóa dữ liệu trên GRE Tunnel với IPSEC

Như mình đã đề cập ở trên, GRE là 1 giao thức đóng gói nhưng không mã hóa dữ liệu nên dễ bị bắt capture dữ liệu trên đường truyền. Vì vậy chúng ta phải kết hợp IPSec để mã hóa dữ liệu trong tunnel.

Bước 1: Cấu hình ISAKMP (IKE)

HQ(config)#crypto isakmp policy 1
HQ(config-isakmp)#encryption 3des
HQ(config-isakmp)#hash md5
HQ(config-isakmp)#authentication pre-share
HQ(config-isakmp)#group 2

Bước 2: Cấu hình key để xác thực

HQ(config)#crypto isakmp key cnttshop address 100.0.0.1

Bước 3: Tạo chuyển đổi IPSEC

HQ(config)#crypto ipsec transform-set SET1 esp-3des esp-md5-hmac
HQ(cfg-crypto-trans)# mode transport

Bước 4: Cấu hình IPSEC

R1(config)# crypto ipsec profile GRE-IPSEC
R1(ipsec-profile)# set security-association lifetime seconds 86400
R1(ipsec-profile)# set transform-set SET1

Bước 5: Gán IPSEC vào VPN Tunnel

R1(config)# interface Tunnel 0
R1(config-if)# tunnel protection ipsec profile GRE-IPSEC
Cấu hình tương tự trên Router BR
BR(config)# crypto isakmp policy 1
BR(config-isakmp)# encryption 3des
BR(config-isakmp)# hash md5
BR(config-isakmp)# authentication pre-share
BR(config-isakmp)# group 2
BR(config)# crypto isakmp key cnttshop address 100.0.0.100
BR(config)# crypto ipsec transform-set SET1 esp-3des esp-md5-hmac
BR(cfg-crypto-trans)# mode transport
BR(config)# crypto ipsec profile GRE-IPSEC
BR(ipsec-profile)# set security-association lifetime seconds 86400
BR(ipsec-profile)# set transform-set SET1
BR(config)# interface Tunnel 0
BR(config-if)# tunnel protection ipsec profile GRE-IPSEC
Vậy là chúng ta đã cấu hình xong IPSec GRE Tunnel giữa 2 site. Các bạn có thể dùng lệnh show crypto session để kiểm tra
HQ# show crypto session
Crypto session current status
Interface: Tunnel0
Session status: UP-ACTIVE
Peer: 100.0.0.1 port 500
IKE SA: local 100.0.0.100/500 remote 100.0.0.1/500 Active
IPSEC FLOW: permit 47 host 100.0.0.100 host 100.0.0.1
Active SAs: 2, origin: crypto map
Chúc các bạn thành công!

Không có nhận xét nào:

Đăng nhận xét