2.4.2.1. Kiểm soát kết nối L2TP
Không giống PPTP, kết nối L2TP điều khiển và quản lý các frame dựa trên giao thức UDP. Định dạng một bản tin điều khiển L2TP chuẩn được mô tả như hình dưới đây.
Hình 2.19. Định dạng bản tin điều khiển L2TP
Giao thức UDP là giao thức vô hướng, không tin cậy, dữ liệu gửi đi không theo thứ tự và có thể bị mất trên đường truyền do đó các bản tin L2TP cũng dễ bị mất trước khi đến bên nhận. Vì thế, L2TP triển khai một kỹ thuật gọi là đánh số bản tin.
Kỹ thuật này đảm bảo các bản tin được gửi đến bên nhận theo đúng trình tự. Hai trường đặc biệt, Next-Received và Next-Sent, được dùng trong bản tin điều khiển L2TP đảm bảo rằng các gói dữ liệu được gửi đi theo đúng trình tự.
Bảng 2.2. Danh sách một số bản tin điều khiển và duy trì L2TP
Tên Mô tả
Start-Control-
Connection-Request
Yêu cầu thiết lập kết nối từ máy khách L2TP.
Start-Control- Connection-Reply
Trả lời bản tin yêu cầu thiết lập kết nối từ máy khách của máy chủ LNS. Thông điệp này cũng được gửi như một hồi đáp đến thông điệp Outgoing-Call-Reply.
Start-Control-
Connection-Connected
Trả lời bản tin Start-Control-Connection-Reply từ máy khách
Outgoing-Call-Request Yêu cầu tạo đường hầm tới LNS của máy khách. Yêu cầu này chứa Call ID để nhận dạng cuộc gọi bên trong đường hầm.
Outgoing-Call-Reply Trả lời bản tin Outgoing-Call-Request từ máy khách của máy chủ LNS.
Hello Thông điệp duy trì kết nối được gửi bởi máy chủ LNS hoặc máy khách. Nếu thông điệp này không được phía còn lại chấp nhận , đường hầm sẽ bị ngắt.
Set-Link-Info Thông điệp từ một trong 2 bên để thiết lập các thông số lựa chọn của PPP.
Call-Disconnect-Notify Trả lời từ máy chủ L2TP để chỉ ra cuộc gọi nào trong đường hầm L2TP bị ngắt.
WAN-Error-Notify Thông điệp từ máy chủ L2TP (LNS) đến tất cả các máy khách L2TP đang kết nối để thông báo lỗi trong giao tiếp PPP của máy chủ.
Stop-Control-
Connection-Request Thông lại kết thúc kiđiệp từể máy khách hom soát kết nối. ặc máy chủ L2TP để báo cho phía còn Stop-Control-
Connection-Reply Trlại. ả lời thông điệp Stop-Control-Connection-Request từ phía còn
56
Tên Mô tả
Stop-Control-
Connection-Notification
Trả lời từ phía còn lại để thông báo kết thúc đường hầm
2.4.2.2. Quá trình đóng gói dữ liệu đường hầm
Cũng giống gói dữ liệu trong đường hầm PPTP, gói dữ liệu L2TP cũng trải qua nhiều tầng đóng gói khác nhau:
Hình 2.20. Quy trình đóng gói dữ liệu L2TP tại bên phát.
• Đóng gói dữ liệu PPP: Không giống phương thức đóng gói của PPTP, dữ liệu
không được mã hóa trước khi đóng gói. Chỉ PPP header được thêm vào dữ liệu gốc.
• Đóng gói frame L2TP: Sau khi dữ liệu gốc được đóng gói bên trong gói PPP,
một L2TP header được thêm vào nó.
• Đóng gói frame UDP: một UDP header được thêm vào gói dữ liệu L2TP. Cổng
nguồn và đích bên trong UDP header được thiết lập là 1710.
• Đóng gói bảo mật dữ liệu UDP: Sau khi L2TP được đóng gói trong UDP, bản
tin UDP đã đóng gói được mã hoá và header ESP được thêm vào nó. Một phần trailer IPSec AH cũng được chèn vào gói dữ liệu đã được mã hóa và đóng gói.
• Đóng gói IP: header IP cuối cùng được thêm vào gói dữ liệu IPSec đã được đóng gói. Phần header IP này chứa địa chỉ IP của máy chủ L2TP (LNS) và người dùng từ xa.
• Đóng gói lớp 2: Phần header và trailer tầng Data Link cuối cùng được thêm vào
gói dữ liệu IP xuất phát từ quá trình đóng gói IP cuối cùng, giúp gói dữ liệu đi đến
nút đích. Nếu nút đích là nội bộ, header và trailer tầng Data Link được dựa trên
công nghệ LAN (như Ethernet). Trường hợp gói dữ liệu được gửi tới một nút đích ở xa, phần header và trailer PPP được thêm vào gói dữ liệu L2TP đã đóng gói.
Qui trình xử lý gói dữ liệu tại nút đích khi đi qua đường hầm ngược lại với qui trình đóng gói. Khi máy chủ hoặc người dùng cuối L2TP nhận được một bản tin được gửi qua đường hầm, nó sẽ lần lượt bóc tách các header và trailer của từng lớp, giải mã, xác thực gói dữ liệu để thu được dữ liệu gốc.
Hình 2.21. Quy trình tách dữ liệu tại bên thu. 2.4.2.3. Quá trình hoạt động
Khi một người dùng từ xa cần thiết lập một đường hầm L2TP thông qua mạng công cộng, các bước được thực hiện tuần tự như sau:
Hình 2.22. Quy trình thiết lập đường hầm L2TP.
1. Người dùng từ xa gửi yêu cầu kết nối đến máy chủ truy cập mạng NAS tại phía nhà cung cấp dịch vụ mạng gần nhất của nó, và bắt đầu khởi tạo một kết nối PPP.
2. NAS chấp nhận yêu cầu kết nối sau khi xác nhận người dùng. NAS dùng phương pháp xác nhận PPP, như PAP, CHAP, SPAP, và EAP cho mục đích này.
3. Sau đó NAS kích hoạt LAC, LAC thu nhận thông tin cùng với LNS của mạng đích.
4. Kế tiếp, LAC thiết lập một đường hầm LAC-LNS thông qua mạng trung gian giữa hai đầu cuối. Đường hầm trung gian có thể là ATM, Frame Relay, hoặc IP/UDP.
5. Sau khi đường hầm được thiết lập, LAC chỉ định một Call ID (CID) đến kết nối và gửi một thông điệp thông báo đến LNS. Thông báo này chứa thông tin có thể được dùng để xác nhận người dùng. Thông điệp cũng chứa các tùy chọn LCP để thoả thuận giữa người dùng và LAC.
6. LNS dùng thông tin đã nhận được từ thông điệp thông báo để xác nhận người dùng cuối. Nếu người dùng được xác nhận thành công và LNS chấp nhận yêu cầu đường hầm, một giao diện PPP ảo (L2TP tunnel) được thiết lập dựa trên các tùy chọn LCP nhận được trong thông điệp thông báo.
7. Sau đó người dùng từ xa và LNS bắt đầu trao đổi dữ liệu thông qua đường
hầm.
L2TP, giống PPTP và L2F, hỗ trợ hai chế độ hoạt động L2TP, bao gồm :
• Chế độ gọi đến: Trong chế độ này, yêu cầu kết nối được khởi tạo bởi người
dùng từ xa.
• Chế độ gọi đi: Trong chế độ này, yêu cầu kết nối được khởi tạo bởi LNS. Do đó, LNS chỉ dẫn LAC lập một cuộc gọi đến người dùng từ xa. Sau khi LAC thiết lập cuộc gọi, người dùng từ xa và LNS có thể trao đổi những gói dữ liệu qua đường hầm.