Trên thực tế, VPN đã thực sự trở thành một giải pháp hữu hiệu cho các tổ chức, các công ty nhờ vào các đặc tính của nó nh chi phí thấp, khả năng bảo mật tốt… Nhận thấy đợc vai trò cũng n
Trang 1LỜI CẢM ƠN.
Trớc hết, em xin chân thành cảm ơn thầy giáo: Thạc sĩ Hồ Sĩ Bàng - giảng viên bộ môn Truyền thông và Mạng khoa CNTT, trờng ĐHBK Hà Nội đã h-ớng dẫn và giúp đỡ em rất nhiều trong suốt quá trình từ nghiên cứu đến hoàn thành quyển luận văn này
Tôi cũng xin cảm ơn các bạn Nguyễn Anh Dũng (Trung tâm Tin Học Bu
Điện) và Phạm Hữu Nguyên (Công ty điện toán và truyền số liệu) đã đóng góp cho tôi những ý kiến quý báu và một số tài liệu tham khảo, các anh chị học cùng tôi tại lớp KS2 - K16 CNTT đã giúp đỡ tôi trong quá trình thực tập
và làm quyển luận văn này
Cuối cùng, tôi vô cùng biết ơn những ngời thân trong gia đình và các bạn
đồng nghiệp, những ngời đã tạo điều kiện thuận lợi nhất để tôi có thể tập trung nghiên cứu và hoàn thành tốt đẹp công việc của mình
Hà Nội, ngày 30 tháng 9 năm 2004
Lê Quang Huy
Trang 2§HBK Hµ Néi.
Trang 3LỜI NÓI ĐẦU 5
Chương 1 TỔNG QUAN VỀ MẠNG MÁY TÍNH 7
I Giới thiệu chung về mạng máy tính 7
1.1 Vài nét sơ lược về mạng 7
1.2 Kiến trúc phân tầng OSI 8
II Bộ giao thức TCP/IP 13
2.1 Giới thiệu chung 13
2.2 Mô hình TCP/IP 14
2.3 Sơ đồ địa chỉ IP 15
2.4 Giao thức Internet (Internet Protocol) 16
2.5 User Datagram Protocol (UDP) 18
2.6 Transmission Control Protocol (TCP) 19
Chương 2 GIAO THỨC ĐƯỜNG HẦM LỚP 2 20
I Tổng quan về mạng riêng ảo (Virtual Private Network - VPN) 20
1.1 Khái niệm mạng riêng ảo 20
1.2 Phân loại mạng riêng ảo 21
1.3 Những lợi ích của mạng riêng ảo 23
1.4 Các giao thức thực hiện mạng riêng ảo 25
II Vài nét chung về giao thức đường hầm lớp 2 (L2TP) 27
2.1 Giới thiệu chung về L2TP 27
2.2 Các đặc điểm của L2TP 27
2.3 Cấu trúc liên kết mạng .28
2.4 Đường hầm L2TP 29
2.5 Nguyên lý hoạt động 32
III Cách thức tổ chức gói tin L2TP 33
3.1 Các gói tin L2TP 33
3.1.1 Các loại thông điệp điều khiển .34
3.1.2 Cách thức xử lý thông điệp dữ liệu 34
3.2 Khuôn dạng gói tin 36
3.3 Cặp giá trị thuộc tính (AVP) 38
3.3.1 Khuôn dạng AVP 38
3.3.2 Bit bắt buộc (Mandatory) của AVP 39
3.3.3 Ẩn (bit H) giá trị thuộc tính AVP 40
3.3.4 Phân loại AVP 40
IV Quá trình hoạt động của giao thức L2TP 57
4.1 Thiết lập điều khiển kết nối (Control Connection Establishment) 58
4.1.1 Bắt đầu yêu cầu thiết lập điều khiển liên kết (Start-Control-Connection-Request (SCCRQ)) 58
4.1.2 Trả lời yêu cầu thiết lập điều khiển liên kết (Start-Control-Connection-Reply (SCCRP)) 58
4.1.3 Bắt đầu kết nối thiết lập điều khiển liên kết (Start-Control-Connection-Connected (SCCCN)) 59
4.1.4 Xác thực đường hầm (Tunnel Authentication) 59
4.2 Thiết lập một phiên làm việc (Session Establishment) 59
Trang 44.2.1 Thiết lập một cuộc gọi đến (Incoming Call Establishment) 59
4.2.2 Thiết lập một cuộc gọi đi(Outgoing Call Establishment) 61
4.3 Chuyển khung PPP (Forwarding PPP Frames) 63
4.4 Kiểm tra sự tồn tại của đường hầm (Keepalive) 63
4.4.1 Xin chào (Hello) 63
4.5 Bỏ một phiên làm việc (Session Teardown) 64
4.5.1 Thông báo kết thúc cuộc gọi (Call-Disconnect-Notify (CDN)) 64
4.6 Bỏ điều khiển kết nối (Control Connection Teardown) 64
4.6.1 Thông báo dừng điều khiển liên kết (Stop-Control-Connection-Notification (StopCCN)) 65
V L2TP qua một phương tiện truyền (L2TP Over Specific Media) 65
5.1 L2TP qua UDP/IP (L2TP over UDP/IP) 65
5.2 IP (Internet Protocol) 66
VI Vấn đề bảo mật L2TP: 67
6.1 Bảo mật cho điểm cuối đường hầm (Tunnel Endpoint Security) 67
6.2 Bảo mật cho gói (Packet Level Security) 67
6.3 Bảo mật cho liên kết (End to End Security) 67
6.4 L2TP và IPSec (L2TP and IP Securtiy) 67
Chương 3 THIẾT KẾ CHƯƠNG TRÌNH MÔ PHỎNG GIAO THỨC L2TP 69
I Thiết kế chương trình mô phỏng giao thức L2TP 69
1.1 Mô hình máy trạng thái hữu hạn (FSM) 69
2.2 Máy trạng thái hữu hạn của giao thức L2TP 70
2.2.1 Các sự kiện đối với L2TP 70
2.2.2 Các trạng thái của giao thức L2TP 71
Trang 5LỜI NểI ĐẦU.
Trong những năm gần đây, cùng với sự phát triển mang tính cách mạng trong lĩnh vực công nghệ thông tin, loài ngời đã bớc vào một kỷ nguyên mới,
kỷ nguyên thông tin Ngày nay, ở bất cứ đâu, trong bất cứ lĩnh vực nào, chúng ta đều có thể thấy đợc những thành quả mà công nghệ thông tin mang lại Trong xu thế phát triển chung, các mạng máy tính đã có những bớc tiến nhảy vọt và ngày càng khẳng định vai trò quan trọng của mình Với những u thế nh tiện lợi đối với ngời dùng, phong phú về các nguồn thông tin đợc cung cấp, tiết kiệm thời gian, chi phí các mạng máy tính đã thu hút đ… ợc số lợng ngời sử dụng ngày càng đông đảo và góp phần đáng kể trong sự phát triển kinh tế, xã hội
Mạng riêng ảo hay còn gọi là mạng VPN (Virtual Private Network) đợc biết đến từ những năm 90 của thế kỷ trớc và càng ngày càng có nhiều nhà cung cấp đa ra những giải pháp riêng về VPN cho những khách hàng của mình Trên các tạp chí chuyên đề, trên Internet ở đâu chúng ta cũng có thể…bắt gặp những bài báo, những hội thảo liên quan đến VPN cũng nh các sản phẩm hỗ trợ VPN Trên thực tế, VPN đã thực sự trở thành một giải pháp hữu hiệu cho các tổ chức, các công ty nhờ vào các đặc tính của nó nh chi phí thấp, khả năng bảo mật tốt…
Nhận thấy đợc vai trò cũng nh tầm quan trọng của mạng riêng ảo đối với
sự phát triển của các hệ thống mạng hiện nay cũng nh trong tơng lai, đợc sự hớng dẫn và giúp đỡ nhiệt tình của thầy Hồ Sĩ Bàng, em đã đi sâu vào nghiên cứu giao thức L2TP - là một giao thức quan trọng hỗ trợ việc thực hiện VPN Cho đến nay, em đã hoàn thành bản đồ án với nội dung "Nghiên cứu giao thức L2TP"
Bản đồ án gồm 3 chơng với nội dung cụ thể nh sau:
Trang 6Chơng 1: Tổng quan về mạng máy tính Chơng này trình bày những
kiến thức chung về việc kết nối các máy tính thành mạng, kiến trúc phân tầng OSI và bộ giao thức nổi tiếng TCP/IP
Chơng 2: Giao thức đờng hầm lớp 2 (L2TP) Chơng này trình bầy sơ
l-ợc về VPN, về các giao thức hỗ trợ thực hiện VPN, rồi đi sâu tìm hiểu giao thức L2TP về khái niệm, đặc điểm, cách tổ chức dữ liệu, phơng thức hoạt
động, vấn đề bảo mật trong quá trình hoạt động
Chơng 3: Lập trình mô phỏng giao thức L2TP Dựa trên những nghiên
cứu đợc thực hiện ở chơng 2, tiến hành thiết kế và lập trình mô phỏng L2TP qua các PC
Mặc dù đã rất cố gắng, nhng do thời gian có hạn, kiến thức của em còn hạn chế, tài liệu về giao thức L2TP cũng nh về VPN rất hiếm, nên chắc chắn báo cáo này của em còn nhiều thiếu sót Em rất mong nhận đợc sự đóng góp của các thầy cô cũng nh các bạn sinh viên khi đọc báo cáo này để em có thể hoàn thiện hơn nghiên cứu của mình
Hà nội, ngày 20 tháng 9 năm 2004 Sinh viên thực hiện
Lê Quang Huy
Trang 7Chương 1 TỔNG QUAN VỀ MẠNG MÁY TÍNH
I Giới thiệu chung về mạng máy tính
1.1 Vài nét sơ lược về mạng
Mặc dù công nghiệp máy tính còn khá non trẻ so với những ngành công nghiệp khác, nó đã có sự tăng trưởng mạnh mẽ trong khoảng thời gian gần đây Trong hai thập kỷ đầu tiên kể từ khi ra đời, các hệ thống máy tính có độ tập trung cao, việc hợp nhất máy tính và truyền thông đã có ảnh hưởng sâu sắc tới cách thức tổ chức các hệ thống máy tính Khái niệm về "trung tâm máy tính" với một máy tính lớn để xử lý các bài toán của người sử dụng bây giờ đã trở nên quá lỗi thời Mô hình cũ bao gồm một máy tính duy nhất để phục vụ tất cả các nhu cầu tính toán đã được thay thế bằng mô hình mới trong đó một số lượng lớn các máy tính riêng rẽ được kết nối với nhau để thực hiện nhiệm vụ này Các hệ thống này được gọi là các mạng máy tính.Mạng máy tính là thuật ngữ dùng để chỉ một tập hợp các máy tính được kết nối với nhau để trao đổi thông tin Việc kết nối có thể được thực hiện nhờ dây đồng, dây cáp quang, vi sóng hay các giao thức được sử dụng ở các lớp thấp hơn
Các mạng máy tính có thể sử dụng công nghệ truyền quảng bá (broadcast) hoặc truyền điểm - điểm (point to point) Các mạng truyền quảng
bá sử dụng một kênh truyền thông duy nhất cho tất cả các máy trên mạng này Các gói được truyền trên mạng có chứa một trường địa chỉ định rõ nơi nhận
Ngược lại, các mạng truyền điểm - điểm gồm nhiều kết nối giữa các cặp máy riêng rẽ Để đi từ nguồn đến đích, một gói tin trên mạng loại này có thể phải đi qua một hay nhiều máy trung gian Thường có thể có nhiều tuyến với các độ dài khác nhau, do đó các thuật toán định tuyến đóng một vai trò quan trọng trong các mạng điểm - điểm
Thông thường các mạng cục bộ nhỏ có xu hướng sử dụng công nghệ truyền quảng bá còn các mạng lớn hơn thường sử dụng công nghệ truyền điểm - điểm
Theo kích thước, các mạng có thể phân loại một cách cơ bản như sau:
Mạng cục bộ (Local Area Network - LAN) là mạng có kích thước hạn
chế trong phạm vi hẹp như trong một cơ quan, bộ, ngành… Mạng cục bộ có thể sử dụng cả công nghệ truyền quảng bá lẫn công nghệ truyền điểm - điểm
Mạng đô thị (Metropolitan Area Network - MAN) về cơ bản là một
phiên bản lớn hơn của mạng cục bộ và thường sử dụng công nghệ tương tự với công nghệ sử dụng trong mạng cục bộ
Các mạng cục bộ và mạng đô thị là các mạng không chuyển mạch
Trang 8Mạng diện rộng (Wide Area Network - WAN) là một mạng lớn trên
diện rộng Mạng diện rộng thường là mạng chuyển mạch
Mạng toàn cầu (Global Area Network - GAN) là tập hợp các mạng
được kết nối với nhau cho phép người sử dụng trên các mạng khác nhau (kể
cả không tương thích) có thể truyền thông được với nhau
Các kỹ thuật chuyển mạch bao gồm chuyển mạch kênh, chuyển mạch thông báo và chuyển mạch gói
Các mạng máy tính có thể được sử dụng cho rất nhiều dịch vụ, đối với các công ty hay với từng cá nhân Đối với các công ty, các mạng gồm các máy tính cá nhân được kết nối với nhau mang lại những lợi ích to lớn như nâng cao độ tin cậy, tính linh hoạt, tiết kiệm chi phí… Đối với các cá nhân, mạng máy tính cho phép họ truy nhập tới rất nhiều nguồn thông tin và giải trí khác nhau một cách nhanh chóng và thuận tiện
1.2 Kiến trúc phân tầng OSI
1.2.1 Phân cấp giao thức
Để giảm độ phức tạp thiết kế, hầu hết các mạng được tổ chức dưới dạng các lớp hay các mức, mỗi lớp được xây dựng trên một lớp dưới nó Số lượng lớp, tên của mỗi lớp, nội dung và chức năng của mỗi lớp khác nhau tuỳ theo từng mạng Tuy nhiên, trong tất cả các mạng, mục đích của mỗi lớp là để cung cấp các dịch vụ nhất định cho các lớp cao hơn, che dấu không cho các lớp đó biết về các dịch vụ được cung cấp trong thực tế được thực hiện như thế nào
Các lớp được tạo ra theo nguyên tắc như sau:
- Một lớp phải được tạo ra khi cần một mức trừu tượng khác
- Mỗi lớp phải thực hiện một chức năng được xác định rõ
- Chức năng của mỗi lớp phải được chọn theo các giao thức chuẩn quốc tế
- Các ranh giới giữa các lớp phải được chọn để giảm tới mức nhỏ nhất thông tin đi qua các giao diện
- Số lớp phải đủ lớn sao cho không cần đưa các chức năng tách biệt vào cùng một lớp nhưng phải đủ nhỏ để kiến trúc không trở nên khó sử dụng
1.2.2 Mô hình chuẩn OSI
OSI (Open Systems Interconnection - Liên kết các hệ thống mở) được phát triển bởi tổ chức tiêu chuẩn quốc tế (International Standard Organization - ISO) nhằm đạt được các chuẩn cho việc truyền thông dữ liệu
cho phép các máy tính của các nhà sản xuất khác nhau truyền thông tin được với nhau Các chuẩn này tạo ra một kiến trúc phân lớp cho các hệ thống truyền thông dữ liệu Bản thân mô hình OSI không phải là một kiến trúc mạng vì nó không định rõ các dịch vụ và các giao thức cần được sử dụng trong mỗi lớp Nó chỉ cho biết mỗi lớp cần phải làm gì Tuy nhiên, ISO đã
Trang 9tạo ra các chuẩn cho tất cả các lớp Mô hình này được thể hiện trên hình dưới đây:
- Dịch vụ:
Một dịch vụ là một phương tiện (facility) mà một lớp cung cấp cho lớp trên nó để thực hiện một khía cạnh nào đó của việc truyền thông dữ liệu Các dịch vụ có thể là định hướng kết nối hoặc không kết nối Khi sử dụng dịch
vụ định hướng kết nối, người sử dụng dịch vụ đầu tiên thiết lập một kết nối,
sử dụng kết nối này và cuối cùng giải phóng kết nối Trong dịch vụ không
Network Data - link Physical
Môi trường vật lý Relay Open System Peer to peer protocol
Trang 10kết nối, mỗi thông báo mang địa chỉ nơi nhận đầy đủ và được truyền qua hệ thống độc lập với các thông báo khác Một dịch vụ được định rõ bởi các tập hàm nguyên thủy (primitive) để người sử dụng truy nhập dịch vụ này Có bốn loại hàm nguyên thủy là: yêu cầu (request), chỉ báo (indication), trả lời (response) và xác nhận (confirm).
- Truyền dữ liệu giữa các lớp:
Sơ đồ truyền dữ liệu giữa các lớp được thể hiện qua ví dụ minh hoạ dưới đây:
Hình 1.2: Sơ đồ truyền dữ liệu giữa các lớp
Khi một lớp muốn gửi dữ liệu tới lớp ngang hàng của nó, đơn vị dữ liệu được trao đổi gọi là đơn vị dữ liệu giao thức (Protocol Datagram Unit- PDU) Tuy nhiên, dữ liệu không được gửi trực tiếp tới lớp ngang hàng Dữ liệu này được chuyển xuống lớp dưới, đơn vị dữ liệu này được gọi là đơn vị
dữ liệu dịch vụ (Service Datagram Unit - SDU) PDU của lớp trên và SDU của lớp dưới là giống nhau Lớp dưới bổ sung thông tin điều khiển giao thức (PCI) vào SDU nhận được để tạo ra PDU của nó Quá trình này được lặp lại cho tới lớp dưới cùng Ở phía nhận, quy trình ngược lại được thực hiện cho tới khi PDU tới được lớp ngang hàng
1.2.3 Các lớp trong mô hình OSI
+ Truyền các bit trên kết nối vật lý
+ Chỉ báo các trạng thái liên kết
Trong trường hợp kết nối điểm - nhiều điểm, lớp vật lý sẽ phải cung cấp các dịch vụ bổ sung khác để cho phép lớp liên kết dữ liệu phân biệt các kết
PDU
Trang 11nối vật lý Ngoài ra, lớp vật lý còn có khả năng truyền bá tới tất cả các lớp vật lý khác trong mạng.
- Lớp liên kết dữ liệu (Data-link):
Lớp liên kết dữ liệu sử dụng các dịch vụ do lớp vật lý cung cấp để thực hiện việc truyền dữ liệu Vì môi trường vật lý có thể có lỗi nên một nhiệm
vụ của lớp liên kết dữ liệu là biến đổi nó thành một liên kết truyền dữ liệu càng tin cậy càng tốt Ngoài ra, vì lớp vật lý truyền các bit và việc chuyển dữ liệu thường theo các khối dữ liệu logic nên một nhiệm vụ khác của lớp liên kết dữ liệu là phải tạo ra và nhận biết các khối dữ liệu Ngoài ra, lớp liên kết
dữ liệu phải có một cơ chế nào đó để nhờ nó bên gửi không làm quá tải bên nhận Vì vậy, có thể tóm lược các nhiệm vụ chính của lớp liên kết dữ liệu như sau:
+ Phát hiện lỗi và phục hồi lỗi
+ Tạo khung dữ liệu thành các khối
+ Điều khiển luồng
Lớp liên kết dữ liệu cung cấp các dịch vụ sau cho lớp mạng:
+ Thiết lập kết nối liên kết dữ liệu
+ Giải phóng kết nối liên kết dữ liệu
+ Chuyển dữ liệu liên kết dữ liệu
+ Thiết lập lại kết nối liên kết dữ liệu
- Lớp mạng (Network):
Lớp mạng liên quan tới việc điều khiển sự vận hành của subnet, xác định xem các gói được định tuyến từ nguồn tới đích như thế nào, điều khiển lưu lượng trong mạng, cho phép các mạng có sự đặt địa chỉ, kích thước gói, các giao thức… khác nhau được kết nối với nhau Các dịch vụ mà lớp mạng cung cấp cho lớp trên bao gồm:
+ Thiết lập, duy trì và giải phóng các kết nối mạng
+ Trao đổi dữ liệu lớp cao hơn qua kết nối mạng Dịch vụ này bao gồm khả năng thực hiện việc điều khiển luồng, phát hiện lỗi và phục hồi lỗi
+ Cách ly các lớp cao hơn với việc định tuyến và chuyển dữ liệu khi kết nối mạng được thực hiện qua một hay nhiều subnet
- Lớp giao vận (Transport):
Chức năng cơ bản của lớp giao vận là nhận dữ liệu từ lớp phiên, chia nó thành các đơn vị nhỏ hơn nếu cần, đưa dữ liệu tới lớp mạng và đảm bảo rằng tất cả các đơn vị dữ liệu này tới nơi nhận một cách chính xác Hơn nữa, tất
cả các thao tác này phải được thực hiện một cách có hiệu quả
Lớp giao vận cũng xác định loại dịch vụ cung cấp cho lớp phiên Tuỳ thuộc vào chất lượng của kết nối mạng, lớp giao vận có thể cung cấp toàn bộ hoặc một phần các dịch vụ sau:
+ Chuyển dữ liệu end-to-end (đầu cuối - đầu cuối)
Trang 12+ Phát hiện lỗi và phục hồi lỗi end-to-end.
+ Điều khiển luồng end-to-end
+ Trao đổi dữ liệu bình thường
+ Giải phóng kết nối theo yêu cầu để không làm mất dữ liệu
- Lớp ứng dụng (Application):
Lớp ứng dụng cung cấp các dịch vụ cho các ứng dụng hoặc các chương trình/tiến trình của người sử dụng Hai ứng dụng ngang hàng sử dụng các dịch vụ của lớp ứng dụng và thiết lập một liên kết Lớp ứng dụng còn cung cấp các dịch vụ để quản lý liên kết này, cho phép các ứng dụng truyền thông
Lớp ứng dụng cung cấp các dịch sau:
+ Thiết lập liên kết
+ Giải phóng liên kết
+ Huỷ bỏ liên kết do người sử dụng dịch vụ khởi tạo
+ Huỷ bỏ liên kết do người cung cấp dịch vụ khởi tạo
1.2.4 Vai trò của giao thức trong mạng máy tính.
Mô hình OSI cung cấp các chuẩn cho các lớp thông qua việc xác định cụ thể chức năng của mỗi lớp Việc ghép nối giữa các lớp được thực hiện nhờ các giao diện giữa hai lớp liền kề Vấn đề còn lại là làm thế nào để truyền thông tin giữa các máy
Việc trao đổi thông tin giữa hai máy trên mạng, tương tự với việc giao tiếp thông thường, phải dựa trên những thoả thuận về cách thức tiến hành việc trao đổi thông tin để các bên có thể hiểu nhau Do vậy, việc truyền thông tin trên mạng phải cần đến những quy tắc, quy ước từ những quy ước
về khuôn dạng (cú pháp, ngữ nghĩa) của dữ liệu cho tới các thủ tục gửi và nhận dữ liệu nhằm kiểm soát một cách có hiệu quả và đảm bảo chất lượng cho việc truyền tin Tập hợp tất cả các quy tắc và quy ước đó được gọi là
Trang 13giao thức (Protocol) của mạng Các giao thức chuẩn ISO đề xuất cách xây dựng giao thức cho từng mạng.
Trong các mạng chuyển mạch gói, có thể truyền thông tin theo phương pháp có hướng liên kết (connection) hoặc không hướng liên kết (connectioness)
Với các mạng không hướng liên kết, chỉ có một giai đoạn truyền dữ liệu, các gói dữ liệu được truyền độc lập theo một con đường được xác định dần bằng địa chỉ đích được đặt trong mỗi datagram
Với các mạng có hướng liên kết, các dịch vụ và giao thức trong mỗi tầng của mô hình OSI phải thực hiện ba giai đoạn theo thứ tự thời gian, cụ thể là:
Trong giai đoạn truyền dữ liệu, các cơ chế điều khiển luồng dữ liệu, kiểm soát lỗi… được thực hiện để tăng độ tin cậy và hiệu suất truyền
Khi việc truyền dữ liệu kết thúc, liên kết đã được thiết lập sẽ bị hủy bỏ, các tài nguyên để duy trì kết nối được giải phóng
Các giao thức chuẩn hoá của ISO được xây dựng trên cơ sở bốn hàm nguyên thuỷ: request (yêu cầu), indication (chỉ báo), response (trả lời) và confirm (xác nhận)
II Bộ giao thức TCP/IP.
2.1 Giới thiệu chung
Bộ giao thức TCP/IP là một chuẩn nối mạng được sử dụng rộng rãi nhất Ban đầu được phát triển cho ARPANET (một mạng WAN chuyển mạch gói của chính phủ Mỹ), tới nay với sự tham gia của người sử dụng trên khắp thế giới, TCP/IP trở thành bộ giao thức sử dụng cho mạng toàn cầu Internet.TCP/IP có những đặc điểm sau đây, những đặc điểm này đã làm nó trở nên nổi tiếng:
- Độc lập với kiến trúc của mạng: TCP/IP có thể sử dụng trong các kiến trúc Ethernet, Token Ring, trong mạng cục bộ (LAN) cũng như mạng diện rộng (WAN)
- Chuẩn giao thức mở: TCP/IP có thể thực hiện trên bất kỳ phần cứng hay
hệ điều hành nào Do đó, TCP/IP là tập giao thức lý tưởng để kết hợp phần cứng cũng như phần mềm khác nhau
- Sơ đồ địa chỉ toàn cầu: mỗi máy tính trên mạng TCP/IP có một địa chỉ xác định duy nhất Mỗi gói dữ liệu được gửi trên mạng TCP/IP có một header gồm địa chỉ của máy đích cũng như địa chỉ của máy nguồn
Trang 14- Khung Client-Server: TCP/IP là khung cho những ứng dụng server mạnh hoạt động trên mạng cục bộ và mạng diện rộng
client Chuẩn giao thức ứng dụng: TCP/IP không chỉ cung cấp cho người lập trình phương thức truyền dữ liệu trên mạng giữa các ứng dụng mà còn cung cấp nhiều giao thức mức ứng dụng (những giao thức thực hiện các chức năng thường dùng như e-mail, truyền nhận file)
2.2.2 Lớp Transport
Cung cấp giao tiếp từ chương trình ứng dụng này đến chương trình ứng dụng khác Giao tiếp như vậy được gọi là đầu cuối- tới- đầu cuối (end-to-end) Lớp Transport sẽ đảm bảo thông tin đến mà không bị lỗi và theo đúng trật tự Để làm được điều này, máy nhận phải gửi ACK về báo đã nhận đủ
và đúng thông tin hay chưa, nếu chưa thì máy phát phải truyền lại datagram
đã mất Phần mềm ở lớp Transport chia thông tin thành các gói (packet), trong mỗi gói có chứa các trường (fields): địa chỉ nguồn, địa chỉ đích, checksum, Thông tin sau khi được chia thành các gói sẽ được chuyển xuống các lớp thấp hơn để tiếp tục xử lý và gửi tới máy thu Máy thu sẽ dựa vào nội dung của các trường này để quyết định nhận, kiểm tra tính đúng đắn của việc truyền và phục hồi lại thông tin
Các dịch vụ của lớp Transport có thể là: TCP, UDP (Lớp session và transport của mô hình OSI tương ứng với lớp này của kiến trúc TCP/IP) Khái niệm kết nối phiên (session) trong mô hình OSI có thể so sánh với cơ chế socket của TCP/IP Socket TCP/IP là một điểm cuối (end-point) trong quá trình liên lạc, được tạo bởi địa chỉ của máy tính và một cổng xác định trên máy tính đó Lớp Transport của mô hình OSI tương đương với TCP của TCP/IP TCP cung cấp dịch vụ truyền dữ liệu tin cậy và bảo đảm những gói
dữ liệu sẽ đến nơi theo đúng thứ tự được gửi, không bị trùng lặp cũng như không bị sai
2.2.3 Lớp Internet
Trang 15Lớp Internet điều khiển các gói đi từ máy này đến máy khác theo những đường thích hợp nhất Phần mềm ở lớp Internet sau khi nhận gói từ lớp Transport sẽ đóng gói (encapsulate) dữ liệu trong IP datagram, thêm header vào, rồi thực hiện việc đưa datagram vào mạng theo đường thích hợp để đến máy thu thông qua một thuật toán tìm đường (routing algorithm)
Lớp Internet cũng kiểm soát các gói dữ liệu đến, kiểm tra xem có phải chúng được gửi đến máy đó hay không Nếu đúng, lớp Internet sẽ loại bỏ header của datagram và đưa lên cho lớp Transport xử lý Nếu không, máy sẽ
bỏ qua hoặc sẽ gửi tiếp gói tin theo đường thích hợp để đến đích Một datagram gồm địa chỉ nguồn, địa chỉ đích, dữ liệu và những trường điều khiển khác Chức năng của lớp này tương đương với chức năng của lớp Network và lớp Datalink trong mô hình OSI
2.2.4 Lớp Physical
TCP/IP không định nghĩa việc kết nối vật lý mà dùng những chuẩn sẵn
có cung cấp bởi IEEE (như RS232, Ethernet hay những giao diện khác trong việc truyền dữ liệu)
Khi một packet dữ liệu được gửi đi, nó đến lớp Transport và được gắn thêm một transport header Kế đó lớp Internet thêm internet header Cuối cùng lớp Physical gắn thêm physical header Khi nhận gói dữ liệu, quá trình
sẽ diễn ra ngược lại
Hình 1.3: Mô hình đóng gói dữ liệu
2.3 Sơ đồ địa chỉ IP
Một đặc điểm của mạng IP là có sơ đồ địa chỉ toàn cầu nghĩa là mỗi máy tính trên mạng IP có một địa chỉ duy nhất xác định gọi là địa chỉ IP tạo bởi một số 32 bit Địa chỉ IP chứa đủ những thông tin để xác định duy nhất một mạng và một máy tính trong mạng đó
Applicatio n LayerTCPIP Network Access Protocol
IP Network Access Protocol
TCP
Applicatio n Layer
IP NAP 1 NAP 2
Subnetwork 2
Trang 162.3.1 Các lớp mạng
Vì địa chỉ IP của một máy tính không những phải xác định duy nhất máy tính đó mà còn phải xác định duy nhất mạng mà máy tính đó nối vào nên địa chỉ IP được chia thành phần ID của mạng (net ID) và phần ID của host (host ID) Việc phân chia này không giống nhau cho tất cả các địa chỉ IP mà lớp của địa chỉ sẽ quyết định bao nhiêu bit dành cho net ID và bao nhiêu bit dành cho host ID Có 5 lớp địa chỉ IP: lớp A, B, C dùng cho mục đích chung, lớp D và E dùng cho mục đích đặc biệt trong tương lai Một địa chỉ
IP theo khuôn dạng sau:
- Lớp A có Class ID là bit cao nhất bằng 0; 7 bit kế tiếp là net ID, 24 bit còn lại là host ID
- Lớp B có Class ID là 2 bit cao nhất lần lượt là 1 và 0, 14 bit kế tiếp là net ID, 16 bit cuối cùng là host ID
- Lớp C có Class ID là 3 bit cao nhất lần lượt bằng 1, 1, và 0; 21 bit kế tiếp là Net ID; 8 bit cuối cùng là Host ID
dữ liệu này xuống giao diện mạng hoặc gửi lên các giao thức ở cấp cao hơn Trên một host, có thể xem IP bao gồm hai phần, một phần kiểm soát các gói
dữ liệu đến và một phần kiểm soát việc gửi các gói dữ liệu đi
Cách thức làm việc của IP có những đặc điểm sau:
- Hàng nhập chung, định tuyến chung: Quá trình IP dùng một hàng nhập chung cho tất cả các datagrams mà nó kiểm soát, bất kể là chúng đến từ giao diện mạng hay từ các giao thức lớp cao hơn IP lấy các datagrams ra khỏi hàng nhập và xử lý chúng mà không cần biết chúng đến từ đâu Hàng nhập chung đem lại sự đơn giản trong các thuật toán
Trang 17- IP hoạt động như một quá trình độc lập: Việc thực hiện IP như một quá trình (process) cho phép thực hiện IP độc lập với các cấu hình phần cứng và các giao thức lớp ứng dụng.
- Giao diện nội bộ (local host interface): Để tránh việc phân phát các gói tin nội bộ như một quá trình đặc biệt, IP thực hiện một giao thức mạng giả cho chính nội bộ của máy mình Giao diện này có cùng cấu trúc như các giao diện mạng khác nhưng nó sẽ được xử lý bởi phần mềm giao thức nội bộ thay vì mạng vật lý Việc thực hiện local host interface đặt ra vấn đề về cách thức chọn và xử lý các gói Các datagrams đến từ giao diện mạng nào sẽ được đặt trong hàng chờ tương ứng của giao diện đó Hệ thống có nhiều cách lựa chọn để xử lý ưu tiên cho datagram nào trước Nếu IP luôn ưu tiên cho các datagrams đến từ network interface, lúc đó các datagrams của local host interface sẽ có chỉ số ưu tiên thấp hơn và chúng sẽ chỉ được xử lý khi hàng chờ của network interface trống Ngược lại các datagrams của local host interface được ưu tiên hơn thì chúng sẽ được xử lý trước Việc thực hiện đơn thuần một trong hai phương pháp trên không có hiệu quả tối ưu Trong thực tế, người ta dùng một phương pháp có tên là round-robin, nghĩa
là datagram nào đến trước sẽ được xử lý trước bất kể nguồn gốc của chúng
là từ network interface hay từ local host interface Một khi tất cả các hàng nhập của IP đều trống, quá trình IP sẽ bị chặn Quá trình này sẽ được khôi phục và tiếp tục thực thi khi có datagram đến
- Để kiểm tra và sửa lỗi, IP dùng các tổng kiểm tra (checksum) Số tổng kiểm tra này được đặt trong header và là một số 16 bit
- Khi địa chỉ đích của một datagram ở dạng quảng bá (broadcast) thì tất
cả các máy trên mạng đều nhận được datagram này IP thực hiện 3 địa chỉ quảng bá: broadcast cho mạng nội bộ với địa chỉ toàn là 1, broadcast xác định (lớp A, B, C) với phần địa chỉ của host toàn là 1, và broadcast cho mạng con
- Trước khi gửi một datagram phải chuyển đổi các byte thứ tự sang dạng chuẩn trên mạng Khi nhận một datagram cần thực hiện quá trình chuyển đổi ngược lại Việc chuyển đổi này là quan trọng vì có thể có nhiều thiết bị sử dụng khuôn dạng dữ liệu khác nhau cùng trao đổi trên mạng
2.4.2 Quá trình phần chia và hợp nhất dữ liệu
Giao thức IP khi thực hiện phải luôn có các thuật toán phân chia và hợp nhất dữ liệu Vì mỗi datagram đều được qui định một kích thước giới hạn
mà giá trị lớn nhất được gọi là MTU (Maximum Transfer Unit) Các mạng khác nhau có MTU khác nhau Kích thước MTU cho một mạng được xác định dựa vào các đặc điểm của mạng sao cho các gói được truyền đi với tốc
độ cao nhất
Trang 18Khi truyền một datagram, IP sẽ so sánh kích thước của nó với MTU để xác định xem việc phân chia có cần thiết không Nếu datagram có kích thước lớn hơn MTU thì quá trình phân chia sẽ phải diễn ra Các datagram hình thành sau khi phân chia sẽ được đánh số thứ tự để tiện lợi cho quá trình hợp nhất sau này Sau đó chúng mới được gửi đi.
Một vấn đề khác được đặt ra là các phân mảnh (datagram fragments) khi được truyền qua các mạng có MTU nhỏ hơn, vì vậy chúng lại phải tiếp tục được phân chia Do đó việc đánh số thứ tự cho các datagram phải rất chính xác để quá trình hợp nhất có thể diễn ra hoàn hảo
2.5 User Datagram Protocol (UDP)
Giao thức UDP là cơ chế hướng phi kết nối (connectionless oriented) Nó cho phép một chương trình trên một máy có thể gửi dữ liệu đến chương trình trên một máy khác và nhận trả lời Việc thực hiện được thông qua UDP port
là điểm đầu cũng như điểm cuối trong quá trình thông tin
Khái niệm cổng (port) trong UDP được hiểu như sau: nếu các máy trao đổi dữ liệu được với nhau thông qua địa chỉ thì các quá trình cần phải có chỉ
số nhận dạng khi tiến hành trao đổi thông tin Vì trên một máy trong một thời điểm có thể có rất nhiều quá trình cùng tồn tại, cho nên giá trị port được đưa ra là để có sự phân biệt giữa các quá trình UDP sẽ dựa vào giá trị port
để gửi các gói (packet) thông tin đến đúng địa chỉ của quá trình Vì vậy, một chương trình khi muốn tham gia vào quá trình thông tin thì phải xác định giá trị port cho mình
Các quá trình sử dụng port trong giao tiếp có thể thực hiện theo hai cách Cách liên kết trực tiếp cho phép các quá trình nối kết trực tiếp với nhau và tiến hành trao đổi dữ liệu Một cách khác là mô hình client/server cho phép một quá trình có thể thực hiện nhiều liên kết qua đó có thể gửi nhận dữ liệu với nhiều quá trình khác cùng một lúc
Khi một quá trình muốn trao đổi dữ liệu với một quá trình khác theo phương thức trực tiếp thì cả hai quá trình phải xác định giá trị cổng của chính mình Sau đó một quá trình sẽ tiến hành xác định giá trị cổng cũng như địa chỉ IP của quá trình kia Sau khi định xong thì việc trao đổi dữ liệu mới bắt đầu diễn ra
Còn với mô hình client/server (khách/chủ) thì server phải xác định cổng
và chờ dữ liệu từ chính cổng này Các quá trình client sẽ gọi đến cổng này
để tiến hành quá trình truyền nhận dữ liệu
Khi UDP nhận datagram và tiến hành việc phân phát theo đúng port tương ứng Có hai cách để thực thi Cách thứ nhất là chỉ dựa vào địa chỉ cổng đích, với cách này chương trình có thể nhận được dữ liệu từ tất cả các quá trình khác gửi đến Cách thứ hai là tiến hành việc phân phát dựa trên địa chỉ nguồn và địa chỉ đích, với cách này quá trình chỉ có thể nhận dữ liệu từ
Trang 19một địa chi xác định Mỗi cách trên đều có ưu điểm cũng như nhược điểm tuỳ theo từng thời điểm hoạt động của hệ thống Vì vậy khi thực hiện, cả hai cách trên đều được sử dụng.
2.6 Transmission Control Protocol (TCP)
TCP là một trong những giao thức phức tạp nhất trong các giao thức trên mạng Nó bao gồm cơ chế liên kết trực tiếp, gửi nhận dữ liệu tin cậy và có
tính điều khiển được TCP dùng cơ chế time out (đếm thời gian) và
retransmission(truyền lại) để bảo đảm tính tin cậy trong việc truyền dữ liệu
Ngoài ra, TCP còn cung cấp cơ chế kiểm tra khi có hiện tượng trễ, trùng lặp hay mất mát trong quá trình truyền nhận dữ liệu
TCP được thực hiện thông qua 3 quá trình Quá trình thứ nhất kiểm soát các datagram được truyền đến, quá trình thứ hai chịu trách nhiệm về các datagram sẽ được truyền đi, quá trình còn lại sẽ xử lý các hiện tượng như trễ hoặc truyền lại khi timeout Trên lý thuyết thì các quá trình này có sự liên kết trong hoạt động để tăng tính hiệu quả trong khi thực thi TCP dùng chỉ số trình tự để đánh số cho các datagram trước khi truyền đi và chỉ số này dùng
để xác định thứ tự các frame nhận giúp xác định hiện tượng trễ, trùng lặp hay mất mát trong quá trình truyền nhận
Các quá trình thông tin với nhau dùng TCP cũng sử dụng port để tiến hành giao tiếp Khác với UDP, trước khi giao tiếp các quá trình phải tiến hành liên kết với nhau Sau khi đường truyền được thiết lập thì việc gửi nhận
dữ liệu mới bắt đầu được diễn ra Cơ chế liên kết của TCP giúp quá trình truyền nhận được diễn ra tin cậy hơn Các quá trình thông tin với nhau thường sử dụng mô hình client/server
Trang 20Chương 2 GIAO THỨC ĐƯỜNG HẦM LỚP 2
I Tổng quan về mạng riêng ảo (Virtual Private Network - VPN)
1.1 Khái niệm mạng riêng ảo
Mạng riêng ảo là phương pháp làm cho một mạng công cộng (ví dụ như mạng Internet) hoạt động giống như một mạng cục bộ, có cùng các đặc tính như bảo mật và tính ưu tiên mà người dùng ưa thích VPN cho phép thành lập các kết nối riêng với những người dùng ở xa, các văn phòng chi nhánh của công ty và đối tác của công ty đang sử dụng chung một mạng công cộng Mạng diện rộng WAN (Wide Area Network) truyền thống yêu cầu các công
ty phải trả chi phí và duy trì nhiều loại đường dây riêng, song song với việc đầu tư các thiết bị và đội ngũ cán bộ Chính những vấn đề về chi phí làm cho các công ty dù muốn hưởng những lợi ích mà việc mở rộng mạng đem lại cũng không thể thực hiện được Trong khi đó, VPN không bị những rào cản
về chi phí như các mạng WAN trên do được thực hiện thông qua một mạng công cộng
Thực ra, khái niệm VPN không phải là một khái niệm mới, chúng đã từng được sử dụng trong các mạng điện thoại và trở nên phổ biến do sự phát triển của mạng thông minh Các mạng VPN chỉ trở nên thực sự có tính mới
mẻ khi chúng chuyển thành các mạng IP (mạng sử dụng giao thức Internet) chẳng hạn như mạng Internet Do đó, nhiều người sử dụng thuật ngữ Internet VPN và mạng dữ liệu riêng ảo VPDN (Virtual Private Data Network) để thay cho thuật ngữ VPN VPN sử dụng việc mã hoá dữ liệu để ngăn ngừa các người dùng không được phép truy cập đến dữ liệu và đảm bảo dữ liệu không bị sửa đổi trong quá trình truyền
Nói một cách đơn giản thì một VPN là sự mở rộng của một mạng Intranet riêng thông qua một mạng công cộng như Internet trong đó dữ liệu được đảm bảo an toàn trong quá trình truyền Trong quá trình này, mạng Intranet
sử dụng một khái niệm gọi là "đường hầm" (tunnel) để thực hiện truyền Các đường hầm này có thể giúp cho việc trao đổi dữ liệu giữa hai đối tượng theo kiểu truyền thống point - to - point Hình sau mô phỏng kiểu cài đặt VPN
Trang 21Hình 2.1: Mô hình chung về VPN
Mạng VPN sử dụng công nghệ định đường hầm (tunneling) làm công nghệ cốt lõi Đó là một cơ chế dùng cho việc đóng gói (encapsulate) một giao thức vào trong giao thức khác Trong ngữ cảnh Internet, định đường hầm cho phép những giao thức như IPX, Apple Talk và IP được mã hoá, sau
đó đóng gói trong IP Tương tự, trong ngữ cảnh VPN, định đường hầm che giấu giao thức lớp mạng nguyên thuỷ bằng cách mã hoá gói dữ liệu và chứa gói đã mã hoá vào trong vỏ bọc IP (IP envelope) Vỏ bọc IP này thực ra là gói IP, sau đó sẽ được chuyển đi một cách bảo mật qua mạng Internet Tại bên nhận, sau khi nhận được gói trên sẽ tiến hành gỡ bỏ vỏ bọc bên ngoài và giải mã thông tin dữ liệu trong gói này và phân phối đến thiết bị truy cập thích hợp, chẳng hạn bộ định tuyến
1.2 Phân loại mạng riêng ảo.
Có hai cách chủ yếu để sử dụng các mạng riêng ảo VPN Trước tiên, các mạng VPN có thể kết nối hai mạng với nhau Điều này được biết đến như một mạng kết nối LAN-to-LAN hay một mạng site-to-site VPN Thứ hai, một VPN truy cập từ xa có thể kết nối một người dùng từ xa tới mạng Nói tóm lại, mục đích của công nghệ VPN là phục vụ cho ba yêu cầu cơ bản sau:
- Truy cập bất kỳ lúc nào bởi các remote, mobile worker và các nhân viên của công ty tới tài nguyên mạng trung tâm
- Kết nối giữa các chi nhánh chi nhánh công ty ở xa
- Điều khiển việc truy cập tới tài nguyên mạng đối với khách hàng
Trang 22Dựa vào ba mục đích trên, hiện nay ta có thể phân VPN ra làm ba loại sau:
Để thực thi được Remote Access VPNs, người dùng ở xa cũng như các văn phòng chi nhánh chỉ cần cài đặt các kết nối quay số tới nhà cung cấp dịch vụ ISP hay tới các ISP's POP và kết nối tới tài nguyên mạng của công
ty thông qua Internet Hình minh hoạ như sau:
Hình 2.2: Mô hình Remote Access VPN
Intranet VPNs
Intranet VPNs được sử dụng để kết nối giữa các văn phòng chi nhánh của công ty
Trang 231.3 Những lợi ích của mạng riêng ảo.
VPN mang lại lợi ích thực sự và tức thời cho công ty Có thể dùng VPN
để đơn giản hoá việc truy cập đối với các nhân viên làm việc và người dùng
Trang 24lưu động, mở rộng Intranet đến từng văn phòng chi nhánh, thậm chí triển khai Extranet đến tận khách hàng và các đối tác chủ chốt và điều quan trọng
là những công việc trên đều có chi phí thấp hơn nhiều so với việc mua thiết
bị và đường dây cho mạng WAN riêng VPN do một nhà cung cấp dịch vụ làm chủ và quản lý bằng mô hình kinh tế và các công nghệ tiên tiến, họ có thể phục vụ nhiều tổ chức trên cùng một mạng, dùng các phần mềm hiện đại
để phân biệt lưu lượng dữ liệu của công ty này với lưu lượng của công ty khác Có thể dẫn chứng những ưu điểu của VPN như sau:
Giảm chi phí thường xuyên: VPN cho phép tiết kiệm đến 60% chi phí
so với đường truyền và giảm đáng kể tiền cước gọi đến của các nhân viên làm việc ở xa Giảm được cước đường dài khi truy cập VPN cho các nhân viên di động và các nhân viên làm việc ở xa nhờ vào việc họ truy cập vào mạng thông qua các điểm kết nối POP (Point of Presence) ở địa phương, hạn chế gọi đường dài đến modem tập trung
Giảm chi phí đầu tư: Sẽ không tốn chi phí đầu tư cho máy chủ, bộ định
tuyến cho mạng đường trục và các bộ chuyển mạch phục vụ cho việc truy cập bởi vì các thiết bị này do các nhà cung cấp dịch vụ quản lý và làm chủ Công ty cũng không phải mua, thiết lập cấu hình hoặc quản lý các nhóm modem phức tạp Ngoài ra họ cũng có thể thuê với giá rẻ các thiết bị phục
vụ khách hàng, thường có sẵn ở các nhà cung cấp dịch vụ, hoặc từ các công
ty dịch vụ giá trị gia tăng, nhờ thế việc nâng cấp mạng cũng trở nên dễ dàng
và ít tốn kém hơn
Giảm chi phí quản lý và hỗ trợ: Với quy mô kinh tế của mình, các nhà
cung cấp dịch vụ có thể mang lại cho công ty những khoản tiết kiệm có giá trị so với việc tự quản lý mạng Các công ty luôn nhận được sự phục vụ 24/24 của các nhân viên lành nghề luôn sẵn sàng đáp ứng mọi lúc, giải quyết nhanh chóng các sự cố
Bảo mật dữ liệu: Vì VPN sử dụng công nghệ định đường hầm
(tunneling) để truyền dữ liệu qua mạng công cộng, cho nên dữ liệu truyền được bảo vệ Bên cạnh việc sử dụng tunneling thì VPN còn sử dụng một số phương pháp bảo mật như mã hoá (encryption), xác thực (authentication) và
Trang 25cấp quyền (authorization) để đảm bảo dữ liệu truyền được an toàn, tin cậy và toàn vẹn.
Truy cập mọi nơi, mọi lúc: Khách hàng của VPN qua mạng mở rộng
này có cùng quyền truy cập và khả năng như nhau đối với các dịch vụ trung tâm bao gồm WWW, e-mail, FTP… cũng như các ứng dụng thiết yếu khác, khi truy cập chúng thông qua những phương tiện khác nhau như qua mạng cục bộ LAN, modem, đường thuê bao số xDSL… mà không cần quan tâm đến những thành phần phức tạp bên dưới
1.4 Các giao thức thực hiện mạng riêng ảo.
Các đường hầm (tunnel) chính là đặc tính ảo của VPN, nó làm cho một kết nối giống như một dòng lưu lượng duy nhất trên đường dây Các loại công nghệ đường hầm được dùng phổ biến trong VPN gồm có giao thức định đường hầm điểm - điểm PPTP (Point to Point Tunelling Protocol), giao thức chuyển tiếp lớp 2-L2F (Layer 2 Forwarding) hoặc giao thức định đường hầm lớp 2- L2TP (Layer 2 Tunneling Protocol), và một giao thức mới đang được nghiên cứu phát triển là giao thức bảo mật IP-IPSec (IP Security)
Dưới đây là bảng so sánh 4 giao thức này:
Trang 26Tên Điểm mạnh Điểm yếu Sử dụng trong mạng
+ Không có điều khiển luồng cho đường hầm.
được thêm vào phổ biến
cho truy cập từ xa.
+ Mang tính độc quyền rộng lớn, yêu cầu một máy chủ chạy Win NT để kết thúc những đường hầm.
+ Chỉ sử dụng mã hoá bằng RSA RC- 4.
+ Được dùng tại các máy chủ truy cập từ
xa cho định đường hầm proxy.
+ Có thể được dùng giữa các văn phòng ở
xa mà có sử dụng các máy chủ Win NT để chạy máy chủ truy cập từ xa và định tuyến RRAS (Routing and Remote Access Server).
+ Có thể dùng cho những máy bàn Win9x hay máy trạm dùng WinNT.
+ Ít sản phẩm có khả năng tương tác giữa các nhà cung cấp.
+ Ít hỗ trợ giao diện.
+ Còn đang ở trong giai đoạn phát triển.
+ Phần mềm tốt nhất trên máy tính người dùng cho các giải pháp độc quyền của nhà cung cấp đối với việc truy cập từ xa bằng quay số
Trang 27Từ những nhận xột này, em quyết định đi sõu vào nghiờn cứu L2TP vỡ những ưu điểm nổi bật của nú và đõy cũng là giao thức đó chớnh thức được IETF cụng nhận Tiếp theo đõy sẽ là những nội dung chi tiết liờn quan đến giao thức này.
II Vài nột chung về giao thức đường hầm lớp 2 (L2TP)
2.1 Giới thiệu chung về L2TP
Giao thức đờng hầm lớp 2 (Layer 2 Tunneling Protocol - L2TP) là một giao thức tiêu chuẩn đợc IETF (Internet Engineering Task Force) công nhận
Nó kết hợp các đặc điểm tối u của 2 giao thức đã có trớc đây là giao thức chuyển tiếp lớp 2 (Layer 2 Forwarding - L2F) của Cisco và giao thức đờng hầm điểm-điểm (Point to Point Tunneling Protocol - PPTP) của Microsoft Các phơng pháp truy cập truyền thống trớc đây chỉ cho phép các máy có
địa chỉ IP hoạt động, điều này gây hạn chế rất nhiều các ứng dụng có thể đợc thực hiện qua VPN L2TP hỗ trợ giải pháp đa giao thức, các địa chỉ IP cha
đăng ký hoặc các địa chỉ IP cá nhân thông qua mạng Internet Do đó nó cho phép các phơng tiện truy nhập đã tồn tại nh Internet, Modem, máy chủ truy nhập, thiết bị cuối ISDN (TAs) đợc sử dụng Hơn nữa, nó cho phép khách hàng của công ty có thể truy cập và nhận đợc một số dữ liệu bằng cách truy cập từ xa, điều này làm giảm đáng kể chi phí phần cứng và cho phép các công ty xử lý một cách tập trung việc truy cập dữ liệu của khách hàng
L2TP có tất cả các đặc điểm u việt của L2F, ngoài ra còn có thêm các đặc
điểm khác Một máy có cài đặt L2TP có thể hoạt động với một máy chủ cài
đặt L2F cũng nh các máy chủ đã đợc nâng cấp lên chạy L2TP LNS không yêu cầu thiết lập lại cấu hình mỗi khi một LAC nào đó đợc nâng cấp từ L2F lên L2TP
2.2 Cỏc đặc điểm của L2TP
L2TP có các u điểm sau:
- Ngời dùng khai thác u điểm giá rẻ của Internet Thay vì phải thực hiện cuộc gọi đờng dài để kết nối trực tiếp đến máy chủ truy cập từ xa của một nơi, ngời dùng chỉ cần gọi đến số ISP cục bộ và dùng Internet để xử lý các kết nối đờng dài
- Giao thức cung cấp dial-up ảo vì ngời dùng thực tế không gọi đến nơi
đó, nhng khi kết nối xong, nó có vẻ nh là dial-up
- Vì có dùng tạo khung PPP, ngời dùng từ xa có thể truy cập đến các nơi bằng nhiều giao thức nh IP, IPX, SNA,
- Nơi nhận kết nối cung cấp địa chỉ IP cho ngời dùng từ xa thay cho ISP
Điều này làm nhẹ bớt vấn đề rút ngắn địa chỉ ISP và Internet
- L2TP cung cấp các hệ đầu cuối có tính trong suốt, nghĩa là ngời dùng từ
xa và nơi truy cập không yêu cầu phần mềm đặc biệt để sử dụng dịch vụ một cách an toàn
Trang 28- Một tổ chức có thể dùng phơng pháp kiểm định (authentication) độc lập với ISP Việc kiểm định này có thể đợc thực hiện bằng CHAP (Challenge Handshake Authentication Protocol), PAP (Password Authentication Protocol), TACACS+ (Terminal Access Controller Access Control System Plus), RADIUS (Remote Authentication Dial-in User Service), Card truy cập vòng hay phơng pháp mật khẩu một lần
- L2TP cung cấp giải pháp truyền dữ liệu an toàn khi sử dụng IPSec để mã hoá và sau đó dùng IPSec để xác thực đối với từng gói tin nhận đợc
Các nhợc điểm của L2TP:
- L2TP chạy chậm hơn so với cả PPTP lẫn L2F bởi vì nó sử dụng IPSec để
xác thực mỗi gói tin nhận đợc
- Mặc dù L2TP đã có tất cả các đặc tính của PPTP, một máy chủ truy cập
xa RRAS (Routing and Remote Access Server) vẫn cần phải cấu hình thêm khi chạy trên L2TP
2.3 Cấu trỳc liờn kết mạng
Hình dới đây mô tả một cấu trúc L2TP tiêu biểu Mục đích là truyền các gói tin PPP thông qua đờng hầm giữa các hệ thống từ xa hoặc khách hàng LAC tới một LNS đợc đặt tại mạng LAN
Hình 2.5: Cấu trúc liên kết mạng của L2TP
Đầu tiên, một hệ thống từ xa thiết lập một liên kết PPP thông qua PSTN
đến một LAC Sau đó, LAC sẽ gửi qua đờng hầm gói tin PPP nhờ Internet, Frame Relay hoặc ATM đến LNS Tại LNS có thể thực hiện việc truy cập
PSTN Cloud
INTERNET
Frame Relay or ATM Cloud
HOME LAN
Host
LAC Client
Remote
System
Trang 29đến mạng cục bộ (HOME LAN) Hệ thống từ xa sau đó sẽ nhận đợc địa chỉ
từ mạng cục bộ thông qua việc xét PPP NCP
Một LAC Client (một Host chạy L2TP) cũng có thể tham gia vào đờng hầm với HOME LAN mà không cần sử dụng LAC Trong trờng hợp này, Host chứa phần mềm LAC Client đã đợc nối vào Internet Một kết nối PPP
ảo sẽ đợc thiết lập sau đó LAC Client sẽ thiết lập một đờng hầm đến LNS
2.4 Đường hầm L2TP
L2TP hỗ trợ 2 loại đường hầm - đường hẫm bắt buộc (compulsory tunnel, cũn cú tờn khỏc là đường hầm tĩnh - static tunnel ) và đường hầm tự nguyện (voluntary tunnel, cũn cú tờn khỏc là đường hầm động - dynamic tunnel) Những đường hầm này đúng một vai trũ quan trọng trong việc truyền dữ liệu
an toàn từ một nỳt tới một nỳt Dưới đõy chỳng ta sẽ nghiờn cứu kỹ hơn về vấn đề này
Đường hầm bắt buộc L2TP (L2TP Compulsory Tunnel Mode)
Một đường hầm bắt buộc L2TP được thiết lập giữa một đầu là LAC tại ISP với một đầu khỏc là LNS tại mạng LAN của người dựng Để cú thể hỗ trợ VPN tại ISP, việc thiết lập đường hầm bắt buộc này là rất cần thiết Như vậy, trong trường hợp này ISP đúng một vai trũ quan trọng trong việc thiết lập đường hầm L2TP bởi vỡ một phiờn làm việc cú thể thực hiện được hay khụng một phần do ISP quyết định
Hỡnh 2.6: Đường hầm bắt buộc L2TP
Trong trường hợp đường hầm bắt buộc L2TP, một người dựng từ xa thường là một thực thể thụ động Ngoài việc yờu cầu kết nối, người dựng này khụng đúng bất cứ vai trũ nào trong quỏ trỡnh thiết lập đường hầm Do
đú, khụng cần cú bất cứ sự thay đổi nào tại phớa người dựng
Nghiờn cứu về đường hầm L2TP đặc biệt quan trọng khi xem xột về bảo mật vỡ người dựng từ xa dựng một kết nối PPP để dial-up đến ISP Kết quả
là, người dựng này khụng thể truy cập Internet trừ khi đi qua gateway của tổ chức họ, điều này cho phộp những nhà quản trị mạng cú thể thực thi những
cơ chế nghiờm ngặt về bảo mật, điều khiển truy cập và tớnh toỏn
Cỏc bước để thiết lập một đường hầm bắt buộc L2TP được mụ tả như sau:
Trang 30- Người dùng từ xa yêu cầu một kết nối PPP từ máy chủ truy cập NAS đặt tại ISP.
- NAS xác thực người dùng Quá trình xác thực này cũng giúp cho NAS biết danh tính của người dùng đang yêu cầu kết nối Nếu như định danh của người dùng phù hợp với cơ sở dữ liệu của ISP, những dịch vụ tương ứng với user này sẽ được cung cấp Đồng thời NAS cũng xác định điểm cuối đường hầm LNS
- Nếu NAS đang rỗi để có thể nhận một yêu cầu kết nối, một kết nối PPP được thiết lập giữa ISP với người dùng từ xa
- LAC thiết lập một đường hầm với LNS
- Nếu như kết nối đã được LNS chấp nhận, các khung PPP được đưa qua đường hầm L2TP Những khung được đóng gói L2TP này sau đó được gửi đến LNS thông qua đường hầm
- Cuối cùng, LNS xác thực người dùng và chấp nhận các gói dữ liệu Nếu việc xác thực tốt đẹp, một địa chỉ IP thích hợp sẽ được đóng vào khung để sau đó khung này được gửi đến nút đích nằm trong mạng Intranet
Hình 2.7:Thiết lập một đường hầm bắt buộc L2TP
Đường hầm tự nguyện L2TP (L2TP Voluntary Tunnel Mode)
Một đường hầm tự nguyện L2TP được thiết lập giữa một người dùng từ
xa với một LNS, LNS này được đặt tại LAN Trong trường hợp này, người dùng tư xa hoạt động giống như là một LAC Bởi vì ISP gần như không có
Trang 31vai trò gì trong việc thiết lập đường hầm tự nguyện L2TP cho nên cơ sở vật chất của ISP là trong suốt đối với người dùng đầu cuối Điều này khá giống với đường hầm được tạo ra bởi giao thức PPTP.
Hình 2.8: Đường hầm tự nguyện L2TP
Ưu điểm lớn nhất của đường hầm tự nguyện L2Tp là nó cho phép người dùng từ xa có thể truy cập Internet và thiết lập nhiều phiên làm việc VPN cùng một lúc Tuy nhiên, để có thể sử dụng những lợi ích này, người dùng từ
xa phải được cấp nhiều địa chỉ IP Một trong số các địa chỉ IP sẽ được sử dụng để tạo kết nối PPP đến ISP và mỗi địa chỉ khác được dùng cho một đường hầm L2TP Mặt khác, đây cũng chính là một nhược điểm bởi vì người dùng từ xa, tiếp đó là LAN có thể bị thâm nhập bởi các hacker Thiết lập một đường hầm tự nguyện L2TP thì dễ hơn thiết lập một đường hầm bắt buộc L2TP bởi vì người dùng từ xa đã tạo nên một kết nối PPP đến ISP Các bước để thiết lập đường hầm tự nguyện L2TP như sau:
- LAC (trong trường hợp này là người dùng từ xa), gửi một yêu cầu thiết lập đường hầm tự nguyện đến LNS
- Nếu như yêu cầu thiết lập đường hầm được chấp nhận bởi LNS, LAC sẽ đưa vào đường hầm tương ứng của từng L2TP các khung PPP rồi truyền chúng đi
- LNS nhận các khung dữ liệu, tách bỏ các thông tin về đường hầm rồi xử
Trang 32Hình 2.9: Thiết lập đường hầm tự nguyện L2TP
- NAS sau đó sẽ kích hoạt LAC, tại LAC chứa các thông tin về LNS ở mạng đích
- Tiếp đó, LAC thiết lập một đường hầm với LNS thông qua môi trường mạng giữa chúng (Internet, Frame Relay, ATM)
- Sau khi đường hầm được thiết lập, LAC cấp cho liên kết một Call ID và gửi một thông điệp xác nhận đến LNS Thông điệp xác nhận này chứa các thông tin có thể được sử dụng để xác thực người dùng từ xa (người yêu cầu khởi tạo đường hầm) Thông điệp này cũng mang LCP đã được thoả thuận giữa người dùng với LAC
- LNS sử dụng những thông tin nhận được từ thông điệp xác nhận để xác thực người dùng từ xa Nếu việ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 (đường hầm L2TP) được thiết lập với
sự trợ giúp của LCP nhận được từ gói tin xác nhận
- Người dùng từ xa và LNS sau đó sẽ trao đổi dữ liệu thông qua đường hầm
Trang 33Vận chuyển gói tin (UDP, FR, ATM )
Hỡnh 2.10: Quỏ trỡnh thiết lập đường hầm L2TP
III Cỏch thức tổ chức gúi tin L2TP
3.1 Cỏc gúi tin L2TP
L2TP có hai loại gói tin: gói tin điều khiển và gói tin dữ liệu Các gói tin
điều khiển đợc sử dụng trong việc thiết lập, vận hành và xoá bỏ các đờng hầm và các cuộc gọi Các gói tin dữ liệu đợc sử dụng để đóng gói các gói tin PPP nhằm vận chuyển qua đờng hầm Các gói tin điều khiển đợc sử dụng một kênh đáng tin cậy để truyền Các gói tin dữ liệu không đợc truyền lại khi
có sự mất mát
H ỡnh 2.10:Hai loại gúi tin L2TP
Hình trên mô tả mối quan hệ giữa khung PPP với gói tin điều khiển qua kênh dữ liệu và kênh điều khiển L2TP Các khung PPP đợc truyền qua các kênh dữ liệu không tin cậy với hai phần: phần đầu là các header của L2TP và phần sau là các cơ chế vận chuyển gói tin chẳng hạn UDP, FR, ATM Các gói tin điều khiển đợc truyền qua các kênh điều khiển L2TP tin cậy Các
Trang 34kênh này có thể vận chuyển các gói tin điều khiển cũng nh các gói tin dữ liệu
Dãy số tuần tự cần phải xuất hiện ở mỗi gói tin điều khiển và chúng sẽ
đ-ợc sử dụng để bảo đảm độ tin cậy trong kênh điều khiển L2TP Các gói tin dữ liệu cũng có thể sử dụng dãy số tuần tự để sắp xếp lại các gói tin và để tìm các gói tin bị mất
Tất cả các giá trị đều đợc đặt ở trờng thích hợp và đợc truyền qua mạng theo trật tự (bit cao đợc tryền trớc)
3.1.1 Cỏc loại thụng điệp điều khiển
Các loại thông điệp điều khiển xác định cụ thể một thông điệp nào đó vừa
đợc truyền Chúng ta có thể xem lại mục 3.1 để biết là đối với các thông điệp
điều khiển thì trong phần header của nó luôn có T=1
Tài liệu này mô tả các loại thông điệp điều khiển sau:
Các loại thông điệp quản lý việc thiết lập điều khiển kết nối:
0 Để dành cho các mục đích tơng lai
1 (SCCRQ) Start-Control-Connection-Request (Thông điệp yêu cầu thiết lập điều khiển kết nối)
2 (SCCRP) Start-Control-Connection-Reply (Thông điệp trả lời việc yêu cầu thiết lập điều khiển kết nối)
3 (SCCCN) Start-Control-Connection-Connected (Thông điệp thiết lập
điều khiển kết nối)
4 (StopCCN) Stop-Control-Connection-Notification (Thông điệp dừng việc thiết lập điều khiển kết nối)
5 Để dành cho các mục đích tơng lai
6 (HELLO) Hello
Các loại thông điệp quản lý cuộc gọi:
7 (OCRQ) Outgoing-Call-Request (Thông điệp yêu cầu cuộc gọi đi)
8 (OCRP) Outgoing-Call-Reply (Thông điệp trả lời cuộc gọi đi)
9 (OCCN) Outgoing-Call-Connected (Thông điệp kết nối cuộc gọi đi)
10 (OCRQ) Outgoing-Call-Request (Thông điệp yêu cầu cuộc gọi đến)
11 (OCRP) Outgoing-Call-Reply (Thông điệp trả lời cuộc gọi đến)
12 (OCCN) Outgoing-Call-Connected (Thông điệp kết nối cuộc gọi đến)
13 Để dành cho các mục đích tơng lai
14 (CDN) Call-Disconnected-Notify (Thông điệp thông báo ngừng các cuộc gọi)
Báo lỗi:
15 (WEN) WAN-Error-Notify (Thông điệp thông báo lỗi WAN)
Điều khiển phiên làm việc PPP:
16 (SLI) Set-Link-Info (Thông điệp thiết lập liên kết)
3.1.2 Cỏch thức xử lý thụng điệp dữ liệu
Trang 35Tương tự như việc đóng gói PPTP qua đường hầm, gói dữ liệu L2TP cũng trải qua rất nhiều mức đóng gói Các bước đóng gói bao gồm:
- Đóng PPP vào dữ liệu Không giống như việc đóng gói của PPTP, dữ
liệu không được mã hoá trước khi đóng gói Chỉ có duy nhất một PPP header được thêm vào phần dữ liệu ban đầu
- Đóng gói L2TP các khung PPP Sau khi phần dữ liệu ban đầu được
đóng gói vào gói PPP thì một L2TP Header được thêm vào đó
- Đóng gói UDP các khung L2TP Tiếp đó, các gói L2TP được đóng gói
thành các khung UDP Nói cách khác, một UDP header được thêm vào gói L2TP đã đóng gói Địa chỉ nguồn và địa chỉ đích trong UDP header được đặt
là 1701 (ngầm định) hoặc khác
- Đóng gói IPSEc các gói UDP Sau khi các khung L2TP được đóng gói
theo UDP, khung UDP kết quả được mã hoá và một IPSec ESP header được thêm vào nó Một IPSec AH trailer (phần đánh lừa) cũng được thêm vào dữ liệu sau khi nó đã được đóng gói và mã hoá
- Đóng gói IP các gói dữ liệu IPSec Tiếp đến, một IP header được thêm
vào gói IPSec vừa nhận được IP header này chứa địa chỉ IP của L2TP server (LNS) và người dùng từ xa
- Đóng gói ở lớp liên kết dữ liệu. Cuối cùng, một header ở tầng liên kết
dữ liệu được thêm vào gói IP trên Phần header và trailer của lớp liên kết dữ liệu này giúp cho gói tin đến được nút đích Nếu như nút đích nằm trong mạng cục bộ, các header và trailer này sẽ dựa trên kỹ thuật mạng cục bộ LAN (chẳng hạn, chúng có thể là Ethernet-based) Mặt khác, nếu như nút đích nằm ở xa, một PPP header và trailer sẽ được thêm vào gói tin đã được đóng gói trong đường hầm
Trang 36Hỡnh 2.11: Quỏ trỡnh đúng gúi gúi tin dữ liệu L2TP
Quỏ trỡnh xử lý gúi tin L2TP ở bờn nhận ngược với quỏ trỡnh đúng gúi trờn Khi một thành phần L2TP (LNS hoặc người dựng cuối) nhận được một gúi tin được đúng gúi theo L2TP, nú sẽ xử lý gúi tin và loại bở phần header
và trailer của lớp liờn kết dữ liệu Tiếp đến, gúi tin được xử lý kỹ hơn và phần IP header được loại bỏ Gúi tin dữ liệu sau đú được xỏc thực bằng cỏch kiểm tra những thụng tin cú trong IPSec ESP header và AH trailer IPSec ESP header cũng được sử dụng để giải mó cỏc thụng tin đó mó hoỏ Tiếp đến, UDP header sẽ được xử lý và loại bỏ Cỏc trường Tunnel ID và Call ID trong L2TP header đúng vai trũ xỏc định đường hầm và phiờn làm việc L2TP Cuối cựng, PPP header được xử lý và loại bỏ và phần tải PPP (PPP payload) được truyền tới một giao thức phự hợp để xử lý
Hỡnh dưới đõy mụ tả quỏ trỡnh xử lý gúi dữ liệu L2TP ở bờn nhận:
Hỡnh 2.12: Quỏ trỡnh xử lý gúi L2TP ở bờn nhận
3.2 Khuụn dạng gúi tin
Các gói tin điều khiển và dữ liệu của giao thức L2TP có cùng một khuôn dạng cho phần header Có một số trờng sẽ đợc lựa chọn tuỳ thuộc vào loại gói tin Lu ý rằng các trờng chiều dài (Length), Ns, và Nr là các trờng tuỳ chọn đối với gói tin dữ liệu, nhng đối với gói tin điều khiển thì đó là các tr-ờng bắt buộc
Khuôn dạng phần header của gói tin nh sau:
Trang 370 11 15 16 31
T L X X S X O P X X X X Ver Chiều dài (tùy chọn)
Số hiệu đờng hầm (Tunnel ID) Số hiệu phiên (Session ID)
Offset Size (tuỳ chọn) Offset pad (tuỳ chọn)
Bit T (Type: kiểu) xác định dạng gói tin Nó có giá trị bằng 0 đối với các gói tin dữ liệu và bằng 1 đối với các gói tin điều khiển
Nếu bit L (Length: chiều dài) bằng 1, trờng chiều dài sẽ xuất hiện Bit này bắt buộc phải có giá trị bằng 1 đối với các gói tin điều khiển
Các bit X đợc để dành cho các mở rộng trong tơng lai Tất cả các bit để dành phải có giá trị 0 đối với các cuộc gọi đi và không cần quan tâm đối với các cuộc gọi đến
Khi Bit S (Sequence: dãy số) có giá trị bằng 1 thì các trờng Ns và Nr phải xuất hiện Bit này bắt buộc phải có giá trị bằng 1 đối với các gói tin điều khiển
Khi Bit O (Offset) có giá trị bằng 1 thì trờng Offset size phải xuất hiện Bit này phải có giá trị bằng 0 đối với các gói tin điều khiển
Khi bit P (Priority: u tiên) bằng 1, gói tin dữ liệu này sẽ nhận đợc các u tiên trong việc xếp hàng và truyền Trong trờng hợp này, một yêu cầu LCP đ-
ợc gửi kèm đi cùng gói tin để đảm bảo liên kết luôn luôn đợc hoạt động Nếu không có LCP, có thể có một lúc nào đó liên kết bị đứt quãng Đặc điểm này chỉ có đối với gói tin dữ liệu Bit P sẽ có giá trị bằng 0 đối với các gói tin
điều khiển
Phần Ver phải bằng 2, đây là số Version (phiên bản) của L2TP đợc đề cập
đến trong tài liệu này Giá trị 1 đợc để dành để dùng trong trờng hợp các gói tin L2F đến lẫn với các gói tin L2TP Các gói tin nhận đợc mà không có tr-ờng Ver sẽ bị loại bỏ
Trờng chiều dài (Length) mô tả chiều dài của gói tin theo byte
Trờng số hiệu đờng hầm (Tunnel ID) xác định số hiệu của điều khiển kết nối Đờng hầm L2TP đợc đặt tên theo các số hiệu này tuỳ thuộc vào từng khu vực Tức là, cùng một đờng hầm có thể đợc xác định bởi các số hiệu đ-ờng hầm khác nhau tuỳ vào mỗi điểm cuối trên đờng hầm Tunnel ID trong mỗi gói tin là của ngời nhận chứ không phải là của ngời gửi Tunnel ID đợc lựa chọn và trao đổi khi thiết lập Tunnel ID AVPs trong quá trình tạo ra đờng hầm
Trờng số hiệu phiên (Session ID) xác định số hiệu phiên làm việc trong một đờng hầm Một phiên L2TP đợc đặt tên theo các số hiệu này tuỳ thuộc vào từng khu vực Tức là, cùng một phiên có thể đợc xác định bởi các số hiệu phiên khác nhau tuỳ vào mỗi điểm cuối trên đờng hầm Session ID trong mỗi
Trang 38gói tin là của ngời nhận chứ không phải là của ngời gửi Session ID đợc lựa chọn và trao đổi khi thiết lập Session ID AVPs trong quá trình tạo ra một phiên.
Trờng Ns xác định một dãy số cho các gói tin dữ liệu hoặc điều khiển, bắt
đầu bằng 0 và tăng thêm 1 mỗi khi một gói tin đợc truyền
Trờng Nr xác định số trong dãy số đối với gói tin điều khiển tiếp theo chuẩn bị đợc nhận Do đó, giá trị của Nr bằng giá trị cuối cùng của Ns cộng thêm 1 Trong các gói tin dữ liệu, trờng Nr đợc để dành và nếu có xuất hiện (đợc chỉ định bởi bit S) thì cần phải bỏ qua khi nhận
Trờng Offset Size nếu có xuất hiện thì sẽ mô tả số byte đợc gửi qua L2TP header tại đó dữ liệu cần truyền đợc xem là sẽ bắt đầu Thờng thì trờng Offset Padding (đệm) không xác định Nếu trờng Offset Size xuất hiện thì L2TP header kết thúc sau byte cuối cùng của trờng Offset Padding
3.3 Cặp giỏ trị thuộc tớnh (AVP)
Nhằm tối u hoá khả năng mở rộng nhng vẫn cho phép liên tác, một phơng pháp thống nhất đã đợc sử dụng để mã hoá các kiểu và nội dung của các thông điệp L2TP Việc mã hoá này đợc định nghĩa là AVP (Attribute Value Pair: Cặp giá trị-thuộc tính), và thuật ngữ này sẽ đợc dùng cho đến hết báo cáo này
3.3.1 Khuụn dạng AVP
Mỗi AVP đợc mã hoá nh sau:
0 1 5 6 15 16 31
Attribute Type Attribute Value
[until Length is reached]
Sáu bit đầu tiên là các bit mặt nạ, mô tả các đăc điểm chung nhất của AVP
Hai bit đầu đã đợc định nghĩa, bốn bit còn lại để dành cho các mục đích
t-ơng lai Các bit để dành cho tt-ơng lai (Reserve: rsvd) phải đợc cho bằng 0 Một thông điệp mà có một bit nào đó trong 4 bit rsvd bằng 1 sẽ bị coi là không nhận đợc
Bit bắt buộc (Mandatory: M) điều khiển các yêu cầu cần thiết để xử lý khi
mà có một AVP không nhận biết đợc Nếu bit M đợc thiết lập trong một AVP không nhận biết đợc trong một gói tin tại một phiên làm việc nhất định nào đó, phiên làm việc liên quan đến thông điệp đó phải ngừng lại Nếu bit
M đợc thiết lập trong một AVP không nhận biết đợc trong một gói tin đối với toàn bộ đờng hầm, toàn bộ đờng hầm (và tất cả các phiên làm việc trong nó) phải ngừng lại Nếu nh bit M không đợc thiết lập, một AVP không nhận biết đợc có thể đợc bỏ qua
Trang 39Bit ẩn giấu (Hidden: H) xác định việc ẩn giấu các dữ liệu trong trờng giá trị AVP (AVP Value) của một AVP Khả năng này có thể đợc sử dụng nhằm không đa ra các dữ liệu nhạy cảm, chẳng hạn nh password của ngời dùng, trong mỗi AVP
Trờng chiều dài (Length) Mã hoá số byte (bao gồm toàn bộ chiều dài cùng với trờng mặt nạ) trong AVP đó Chiều dài có thể đợc tính bằng 6 cộng chiều dài của trờng giá trị thuộc tính tính bằng byte Trờng này dài 10 bit, cho phép tối đa 1023 byte dữ liệu trong mỗi AVP Giá trị nhỏ nhất của trờng chiều dài là bằng 6 Khi giá trị này bằng 6, trờng giá trị thuộc tính sẽ không xuất hiện
Số hiệu của ngời bán (Vendor ID) Giá trị đợc IANA qui định (SMI Network Management Private Enterprise Codes (trong RFC 1700) Nếu giá trị này bằng 0, tơng ứng với qui định của IETF cho trờng giá trị thuộc tính, sẽ
đợc sử dụng cho tất cả các AVP trong tài liệu này Bất kỳ nhà sản xuất nào muốn sử dụng phiên bản L2TP mở rộng của riêng họ đều có thể sử dụng Vendor ID của riêng họ cùng với giá trị thuộc tính (Attribute Value) miễn là chúng không bị trùng với giá trị của các nhà sản xuất khác hay là các giá trị
mà IETF dùng trong tơng lai Ta cũng cần lu ý rằng có 16 bit dành cho trờng Vendor ID, do đó số công ty tối đa có thể là 65535
Kiểu thuộc tính (Attribute Type) Một trờng dài 2 byte với một giá trị duy nhất đợc xuất hiện trong tất cả các AVP theo qui định của nhà sản xuất có Vendor ID
Giá trị thuộc tính (Attribute Value) Đây là giá trị đợc qui định bởi 2 trờng Vendor ID và Attribute Type Trờng này ngay sau trờng kiểu thuộc tính (Attribute Type) và kéo dài đến byte cuối cùng đã đợc cho ở trờng chiều dài (Length) (tức là bằng giá trị của trờng chiều dài trừ đi 6) Trờng này sẽ không xuất hiện nếu trờng chiều dài có giá trị bằng 6
3.3.2 Bit bắt buộc (Mandatory) của AVP
Nhận đợc một AVP không nhận biết đợc với bit M xác định là một thảm họa đối với một phiên làm việc hay đờng hầm liên quan đến nó Do đó, bit M chỉ đợc xác định đối với các AVP cực kỳ cần thiết cho việc hoạt động của một phiên làm việc hay một đờng hầm Hơn nữa, trong trờng hợp LAC hay LNS nhận đợc một AVP không nhận biết đợc với bit M đợc thiết lập (bằng 1)
và theo đó huỷ bỏ phiên làm việc hoặc đờng hầm, thì phía mà truyền đi AVP
đó sẽ nhận có trách nhiệm về việc làm hỏng liên tác Trớc khi xác định một AVP với bit M đợc thiết lập, đặc biệt là đối với AVP của một nhà sản xuất nào đó, cần phải chắc chắn rằng điều đó đã đợc xem xét kỹ lỡng
Trong trờng hợp có thể có những cách khác thích hợp thay thế cho việc sử dụng AVP với bit M đợc thiết lập, chẳng hạn nh trờng hợp chỉ cần xem xét xem có tồn tại một sự mở rộng nào không, thay bằng việc thiết lập bit M chỉ nên đơn giản là gửi một yêu cầu AVP và chờ một trả lời AVP
Trang 40Việc sử dụng bit M đối với những AVP mới (không sử dụng trong tài liệu này) phải cung cấp khả năng để có thể bật/tắt tính năng này, tức là AVP này cũng có thể đồng thời gửi hay không gửi trong trờng hợp bit M đợc thiết lập.
3.3.3 Ẩn (bit H) giỏ trị thuộc tớnh AVP
Bit H trong phần header của các AVP cung cấp một cơ chế cho phép bên nhận có thể nhận đợc các AVP đợc hiển thị rõ ràng hay đợc che dấu Đặc
điểm này có thể đợc dùng trong việc truyền các thông điệp điều khiển nhạy cảm chẳng hạn nh password hay ID của ngời dùng
Bit H chỉ đợc thiết lập khi mà LAC và LNS đã cùng nhau chia sẻ các giá trị bí mật Giá trị bí mật này cũng là giá trị bí mật đợc sử dụng trong việc xác thực đờng hầm Nếu bit H đợc thiết lập trong AVP của bất kỳ một thông điêp
điều khiển nào, một Random Vector AVP nhiên sẽ tồn tại trong thông điệp
đó và đứng ngay trớc AVP có giá trị của bit H bằng 1
Việc ẩn giấu giá trị của AVP đợc thực hiện theo một số bớc nh sau: Bớc
đầu tiên là tìm chiều dài và giá trị của AVP gốc (cha ẩn) rồi mã hoá chúng theo kiểu AVP ẩn phụ nh dới đây:
Length of Original Attribute
Padding
Chiều dài của giá trị thuộc tính gốc (Length of Original Attribute Value):
đây là chiều dài của giá trị thuộc tính gốc đợc xuất hiện dới dạng byte Chúng ta cần phải xác định chiều dài của giá trị thuộc tính gốc bởi vì nó sẽ mất đi khi ta thêm vào các phần đệm (Padding)
Giá trị thuộc tính gốc (Original Attribute Value) là giá trị thuộc tính đã xuất hiện trong AVP
Phần đệm (Padding) Các byte ngẫu nhiên đợc thêm vào nhằm che dấu chiều dài của giá trị thuộc tính thật
3.3.4 Phõn loại AVP
Phần tiếp theo chúng ta sẽ xem xét các loại AVP L2TP đợc xác định trong tài liệu này Bên cạnh tên các AVP là một danh sách chỉ ra kiểu thông
điệp đợc sử dụng cho mỗi AVP Sau mỗi tên AVP đều có các mô tả ngắn gọn về chức năng của AVP đó, khuôn dạng của phần giá trị thuộc tính (Attribute Value) ngoài ra còn có một số thông tin cần thiết khác nhằm sử dụng thích hợp AVP đó
3.3.4.1 Những AVP ỏp dụng cho tất cả cỏc loại thụng điệp điều khiển Kiểu thông điệp (Message Type) (đối với tất cả các thông điệp)