1 Khái niệm GRE VPN
GRE-Generic Routing Encapsulation là giao thức được phát triển đầu tiên bởi Cisco, Giao thức này sẽ đóng gói một số kiểu gói tin vào bên trong các IP tunnels để tạo thành các kết nối điểm-điểm (point-to-point) ảo. Các IP tunnel chạy trên hạ tầng mạng công cộng.
2 Tính năng
GRE thêm vào tối thiểu 24 byte vào gói tin, trong đó bao gồm 20-byte IP header mới, 4 byte còn lại là GRE header. GRE có thể tùy chọn thêm vào 12 byte mở rộng để cung cấp tính năng tin cậy như: checksum, key chứng thực, sequence number.
GRE là công cụ tạo tunnel khá đơn giản nhưng hiệu quả. Nó có thể tạo tunnel cho bấy kì giao thức lớp 3 nào.
GRE cho phép những giao thức định tuyến hoạt động trên kênh truyền của mình.
GRE không có cơ chế bảo mật tốt. Trong khi đó, IPSec cung cấp sự tin cậy cao. Do đó nhà quản trị thường kết hợp GRE với IPSec để tăng tính bảo mật, đồng thời cũng hỗ trợ IPSec trong việc định tuyến và truyền những gói tin có địa chỉ IP Muliticast.
3 GRE header
GRE header bản thân nó chứa đựng 4 byte, đây là kích cỡ nhỏ nhất của một GRE header khi không thêm vào các tùy chọn. 2 byte đầu tiên là các cờ (flags) để chỉ định những tùy chọn GRE. Những tùy chọn này nếu được active, nó thêm vào GRE header. Bảng sau mô tả những tùy chọn của GRE header.
Trong GRE header 2 byte còn lại chỉ định cho trường giao thức. 16 bits này xác định kiểu của gói tin được mang theo trong GRE tunnel. Hình sau mô tả cách mà một gói tin GRE với tất cả tùy chọn được gán vào một IP header và data.
GRE là giao thức có thể đóng gói bất kì gói tin nào của lớp network. GRE cung cấp khả năng có thể định tuyến giữa những mạng riêng (private network) thông qua môi trường Internet bằng cách sử dụng các địa chỉ IP đã được định tuyến.
GRE truyền thống là point-to-point, còn mGRE là sự mở rộng khái niệm này bằng việc cho phép một tunnel có thể đến được nhiều điểm đích, mGRE tunnel là thành phần cơ bản nhất trong DMVPN.
Trong tunnel GRE point-To-point, điểm đầu và cuối được xác định thì có thể truyền dữ liệu. Tuy nhiên, có một vấn đề phát sinh là nếu địa chỉ đích là một multicast (chẳng hạn 224.0.0.5) thì GRE point-to-point không thực hiện được. Để làm được việc này thì phải cần đến mGRE.
5 GRE over IPSec
- Tính năng
Giao thức IPSec có độ an toàn và bảo mật cao, trong khi GRE thì bản thân nó không bảo mật. Nhưng ngược lại, GRE cung cấp khả năng định tuyến và hỗ trợ multicast còn IPSec thì không. Do đó, sự kết hợp giữa IPSec và GRE tạo nên một giải pháp tối ưu khi triển khai mạng DMVPN, mang lại các tính năng sau:
GRE over IPSec là sự kết hợp giữa GRE và IPSec. Lúc này các gói tin GRE sẽ được truyền dẫn qua kênh truyền bảo mật do IPSec thiết lập. Điều này được thực hiện thông qua việc IPSec sẽ đóng gói packets GRE bởi các tham số bảo mật của mình.
GRE over IPSec cũng có hai mode hoạt động: Tunnel mode và Transport mode
GRE over IPSec thường sử dụng chế độ transport, nếu những điểm cuối GRE và IPSec là một, ngược lại thì sử dụng tunnel mode. Dù sử dụng tunnel hay transport mode, IP header và gói tin ban đầu cũng được bảo vệ một cách đầy đủ.
GRE-Generic Routing Encapsulation là giao thức được phát triển đầu tiên bởi Cisco, Giao thức này sẽ đóng gói một số kiểu gói tin vào bên trong các IP tunnels để tạo thành các kết nối điểm-điểm (point-to-point) ảo. Các IP tunnel chạy trên hạ tầng mạng công cộng.
2 Tính năng
GRE thêm vào tối thiểu 24 byte vào gói tin, trong đó bao gồm 20-byte IP header mới, 4 byte còn lại là GRE header. GRE có thể tùy chọn thêm vào 12 byte mở rộng để cung cấp tính năng tin cậy như: checksum, key chứng thực, sequence number.
Hình 1: Định dạng packet được đóng gói với GRE
GRE là công cụ tạo tunnel khá đơn giản nhưng hiệu quả. Nó có thể tạo tunnel cho bấy kì giao thức lớp 3 nào.
GRE cho phép những giao thức định tuyến hoạt động trên kênh truyền của mình.
GRE không có cơ chế bảo mật tốt. Trong khi đó, IPSec cung cấp sự tin cậy cao. Do đó nhà quản trị thường kết hợp GRE với IPSec để tăng tính bảo mật, đồng thời cũng hỗ trợ IPSec trong việc định tuyến và truyền những gói tin có địa chỉ IP Muliticast.
3 GRE header
GRE header bản thân nó chứa đựng 4 byte, đây là kích cỡ nhỏ nhất của một GRE header khi không thêm vào các tùy chọn. 2 byte đầu tiên là các cờ (flags) để chỉ định những tùy chọn GRE. Những tùy chọn này nếu được active, nó thêm vào GRE header. Bảng sau mô tả những tùy chọn của GRE header.
Bảng 2: GRE header
Trong GRE header 2 byte còn lại chỉ định cho trường giao thức. 16 bits này xác định kiểu của gói tin được mang theo trong GRE tunnel. Hình sau mô tả cách mà một gói tin GRE với tất cả tùy chọn được gán vào một IP header và data.
Hình 3: Định dạng tùy chọn trong GRE header
4 Phân loại GREGRE là giao thức có thể đóng gói bất kì gói tin nào của lớp network. GRE cung cấp khả năng có thể định tuyến giữa những mạng riêng (private network) thông qua môi trường Internet bằng cách sử dụng các địa chỉ IP đã được định tuyến.
GRE truyền thống là point-to-point, còn mGRE là sự mở rộng khái niệm này bằng việc cho phép một tunnel có thể đến được nhiều điểm đích, mGRE tunnel là thành phần cơ bản nhất trong DMVPN.
- Point-to-Point GRE
Hình 4: Mô hình Point-to-Point GRE
Trong tunnel GRE point-To-point, điểm đầu và cuối được xác định thì có thể truyền dữ liệu. Tuy nhiên, có một vấn đề phát sinh là nếu địa chỉ đích là một multicast (chẳng hạn 224.0.0.5) thì GRE point-to-point không thực hiện được. Để làm được việc này thì phải cần đến mGRE.
- Point-to-Multipoint GRE (mGRE)
Hình 5: Mô hình Point-to-Multipoint GRE (mGRE)
5 GRE over IPSec
- Tính năng
Giao thức IPSec có độ an toàn và bảo mật cao, trong khi GRE thì bản thân nó không bảo mật. Nhưng ngược lại, GRE cung cấp khả năng định tuyến và hỗ trợ multicast còn IPSec thì không. Do đó, sự kết hợp giữa IPSec và GRE tạo nên một giải pháp tối ưu khi triển khai mạng DMVPN, mang lại các tính năng sau:
- Sự bảo mật, toàn vẹn dữ liệu và chứng thực đầu cuối
- Tăng khả năng mở rộng cho việc thiết kế mạng
- Đáp ứng các ứng dụng multicast.
GRE over IPSec là sự kết hợp giữa GRE và IPSec. Lúc này các gói tin GRE sẽ được truyền dẫn qua kênh truyền bảo mật do IPSec thiết lập. Điều này được thực hiện thông qua việc IPSec sẽ đóng gói packets GRE bởi các tham số bảo mật của mình.
GRE over IPSec cũng có hai mode hoạt động: Tunnel mode và Transport mode
Hình 6: Định dạng gói tin GRE over IPSec
Nhìn hình trên ta thấy, có nhiều lớp IP bên trong một gói tin GRE over IPSec. Lớp trong cùng là gói tin IP ban đầu . Gói tin này được bao bọc trong một GRE header để cho phép chạy những giao thức định tuyến bên trong GRE tunnel. Cuối cùng, IPSec được thêm vào lớp ngoài cùng để cung cấp sự bảo mật và toàn vẹn. Kết quả là hai site có thể trao đổi thông tin định tuyến và những mạng IP với nhau một cách an toàn.GRE over IPSec thường sử dụng chế độ transport, nếu những điểm cuối GRE và IPSec là một, ngược lại thì sử dụng tunnel mode. Dù sử dụng tunnel hay transport mode, IP header và gói tin ban đầu cũng được bảo vệ một cách đầy đủ.