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à 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.
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.
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.
HQ#configure terminal |
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
|
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.1BR(config-if)#tunnel destination 100.0.0.100 |
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 |
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 |
Bây giờ 2 site có thể ping thông được lẫn nhau thông qua GRE Tunnel
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.
HQ(config)#crypto isakmp policy 1 |
HQ(config)#crypto isakmp key cnttshop address 100.0.0.1 |
HQ(config)#crypto ipsec transform-set SET1 esp-3des esp-md5-hmac |
R1(config)# crypto ipsec profile GRE-IPSEC
R1(ipsec-profile)# set security-association lifetime seconds 86400
R1(ipsec-profile)# set transform-set SET1
|
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!
Bình luận bài viết