Truyền tunnel là công nghệ quan trọng nhất để xây dựng các IP VPN. Truyền tunnel bao gồm đóng bao (encapsulation) một số gói số liệu vào các gói khác theo một tập quy tắc được áp dụng cho cả hai đầu cuối của tunnel. Kết quả là nội dung được đóng bao trong tunnel không thể nhìn thấy đối với mạng công cộng không an ninh nơi các gói được truyền. Cần lưu ý rằng một tunnel có thể có nhiều điểm cuối khi sử dụng địa chỉ nhận đa phương (Multicast).
Hình 2.1. Truyền tunnel trong nối mạng riêng ảo [4]
Khái niệm truyền tunnel được áp dụng cho nối mạng riêng ảo được trình bầy trên Hình 2.1. Trên hình này, các gói được gửi đi từ máy trạm A đến máy trạm Z phải qua rất nhiều chuyển mạch và router. Nếu router C đóng bao gói
đến từ máy A và cổng Y mở bao gói, thì các nút khác mà gói này đi qua sẽ không nhận biết được gói đóng bao "bên ngoài" này và sẽ không thể biết được phần tải tin cũng như địa chỉ điểm nhận cuối cùng của nó. Bằng cách này, tải tin của gói được gửi giữa C và Y sẽ chỉ được nhận biết bởi hai nút mạng này và các máy A, Z là nơi khởi đầu và kết cuối lưu lượng. Điều này tạo ra một cách hiệu quả một "tunnel" mà qua đó các gói được truyền tải với mức an ninh mong muốn.
Có thể định nghĩa tunnel bởi các điểm cuối của nó, các thực thể mạng nơi tháo bao và giao thức đóng bao được sử dụng. Các kỹ thuật truyền tunnel hỗ trợ các VPN như L2TP hay PPTP được sử dụng để đóng bao các khung lớp liên kết (PPP). Tương tự các kỹ thuật truyền tunnel như IP trong IP và các chế độ IPSec được sử dụng để đóng bao các gói lớp mạng.
Theo ngữ cảnh nối mạng riêng ảo, truyền tunnel có thể thực hiện ba nhiệm vụ chính sau:
+ Đóng bao.
+ Tính trong suốt đánh địa chỉ riêng.
+ Toàn vẹn số liệu đầu cuối-đầu cuối và tính bảo mật.
Tính trong suốt đánh địa chỉ riêng cho phép sử dụng các địa chỉ riêng trên hạ tầng IP nơi cho phép đánh địa chỉ công cộng. Vì các nội dung của gói được truyền tunnel và các thuộc khác như các địa chỉ, chỉ có thể được hiểu từ bên ngoài các điểm đầu cuối tunnel, đánh địa chỉ IP riêng hoàn toàn được che đậy khỏi các mạng IP công cộng bằng cách sử dụng các địa chỉ hợp lệ (hình 2.2).
Hình 2.2. Che đậy địa chỉ IP bằng tunnel [4]
Truyền tunnel IP in IP
IP in IP còn được ký hiệu là IPIP, là dịch vụ tunnel phổ biến nhất. Nó đóng bao các gói IP và một gói IP khác. Trong IPIP, tiêu đề ngoài của gói IP nhận dạng các địa chỉ của các điểm cuối tunnel, trong đó địa chỉ nguồn là điạ chỉ của nơi đóng bao còn địa chỉ nhận là địa chỉ cuả nơi tháo bao.
Hình 2.3. Đóng bao và tháo bao cho gói IP trong quá trình truyền tunnel [4]
Vì đôi khi việc đóng bao một gói IP vào một gói IP khác dẫn đến chi phí quá lớn, nhất là khi tải tin của các gói IP cần truyền tunnel quá nhỏ, nên cần định nghĩa thêm cách nén thông tin liên quan đến tiêu đề cuả gói IP bên trong. Cả hai giao thức IP in IP và đóng bao tối thiểu cho IP tunneling đều dựa trên các giao thức khác (chẳng hạn MIP) hay cung cấp phần tử mạng để thiết lập tunnel. IP in IP tự mình không an toàn và đòi hỏi IPsec cho chức năng này. Tổ hợp cả hai chức năng trên được gọi là chế độ tunnel IPsec.
Giao thức truyền tunnel GPRS (GTP)
Trong GPRS và UMTS để truyền các gói trên IP người ta sử dụng giao thức truyền tunnel GTP (GPRS Tunneling Protcol). GTP được sử dụng cho các thủ tục báo hiệu trong mặt phẳng điều khiển (GTP-c) và truyền số liệu trong mặt phẳng người sử dụng (GTP-u) giữa các GSN. Nó cung cấp một tiêu đề và tiêu đề này cùng với tiêu đề TCP/UDP và IP cho phép nhận dạng nút hỗ trợ GPRS (GSN: GPRS Support Node) nhận và xử lý gói tại nơi nhận. Còn có một GTP khác được gọi là GTP' sử dụng cho giao thức tính cước. GTP' được sử dụng giữa các GSN và CGF.
Trong mặt phẳng báo hiệu, GTP-c là một giao thức quản lý và điều khiển tunnel đươc sử dụng để tạo lập, thay đổi và xoá các tunnel giữa các GSN. Các thủ tục báo hiệu này bao gồm: yêu cầu PDP context, cập nhật PDP Context và xoá PDP Context. Các thủ tục này được sử dụng như là một bộ phận của thiết lập phiên hay quản lý di động giữa SGSN và MS. Trong mặt phẳng người sử dụng, GTP-u cung cấp một tiêu đề để để truyền tunnel. Ngoài truyền tunnel, GTP-u cung cấp các tính năng như: truyền theo thứ tự và ghép các luồng.
Giao thức GRE
GRE - Generic Routing Encapsulation là giao thức được phát triển đầu tiên bởi Cisco, với mục đích chính tạo ra kênh truyền ảo (tunnel) để mang các giao thức lớp 3 thông qua mạng IP.
Cơ chế hoạt động của GRE: Để tạo ra các kênh truyền, GRE cũng thực hiện việc đóng gói gói tin tương tự như giao thức IPSec hoạt động ở Tunnel mode. Trong quá trình đóng gói, GRE sẽ thêm các header mới vào gói tin, và header mới này cung cấp các thông số cần thiết dùng để truyền các gói tin thông qua môi trường trung gian.
GRE chèn ít nhất 24 byte vào đầu gói tin, trong đó 20 byte là IP header mới dùng để định tuyến, còn 4 byte là GRE header. Ngoài ra GRE còn có thể tùy chọn thêm 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 2.4. Kiến trúc gói giao thức GRE [4]
Hai byte đầu tiên trong phần GRE header là GRE flag 2-byte. Phần này chứa các cờ dùng để chỉ định những tính năng tùy chọn của GRE
- Bit 0 (checksum): Nếu bit này được bật lên (giá trị bằng 1) thỉ phần checksum được thêm vào sau trường Protocol type của GRE header.
- Bit 2 (key): Nếu bit này được bật lên thì phần Key tính năng chứng thực sẽ được áp dụng, đây như dạng password ở dạng clear text. Khi một thiết bị tạo nhiều tunnel đến nhiều thiết bị đích thì key này được dùng để xác định các thiết bị đích.
- Bit 3 (Sequence number): Khi bit này được bật thì phần sequence number được thêm vào GRE header.
Hai byte tiếp theo là phần Protocol Type chỉ ra giao thức lớp 3 của gói tin ban đầu được GRE đóng gói và truyền qua kênh truyền. Khi gói tin đi qua tunnel nó sẽ được thêm GRE header như trên và sau khi tới đầu bên kia của kênh truyền, gói tin sẽ được loại bỏ GRE header để trả lại gói tin ban đầu. GRE over IPSec: GRE là giao thức không bảo mật, việc kết hợp với IPSec sẽ giúp tăng cường tính năng bảo mật cho kênh truyền. Khi IPSec kết hợp với GRE sẽ cung cấp khả năng định tuyến động trên kênh truyền, do đó tạo ra khả năng mở rộng hệ thống mạng rất lớn.
Cơ chế hoạt động của GRE over IPSec: Lúc này các gói tin GRE sẽ được truyền thông 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 gói tin GRE bởi các thông tin 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 2.5. Các chế độ của GRE
Như hình trên phần IP packet ban đầu sẽ được bao bọc bởi GRE header, sau đó IPSec sẽ thêm thông tin IPSec header để cung cấp những tính năng bảo mật cho gói tin GRE rồi truyền đi. Khi gòi tin đến đầu bên kia của kênh truyền, nó sẽ được thao tác ngược lại để phục hồi gói tin ban đầu.