LỜI NÓI ĐẦU. 4
Chương 1. TỔNG QUAN VỀ MẠNG MÁY TÍNH 6
I. Giới thiệu chung về mạng máy tính. 6
1.1 Vài nét sơ lược về mạng. 6
1.2 Kiến trúc phân tầng OSI 7
II. Bộ giao thức TCP/IP. 12
2.1 Giới thiệu chung. 12
2.2 Mô hình TCP/IP. 13
2.3 Sơ đồ địa chỉ IP. 15
2.4 Giao thức Internet (Internet Protocol) 15
2.5 User Datagram Protocol (UDP) 17
2.6 Transmission Control Protocol (TCP) 18
Chương 2. GIAO THỨC ĐƯỜNG HẦM LỚP 2. 19
I. Tổng quan về mạng riêng ảo (Virtual Private Network - VPN) 19
1.1 Khái niệm mạng riêng ảo. 19
1.2 Phân loại mạng riêng ảo. 20
1.3 Những lợi ích của mạng riêng ảo. 22
1.4 Các giao thức thực hiện mạng riêng ảo. 23
II. Vài nét chung về giao thức đường hầm lớp 2 (L2TP) 26
2.1 Giới thiệu chung về L2TP. 26
2.2 Các đặc điểm của L2TP. 26
2.3 Cấu trúc liên kết mạng. 27
2.4 Đường hầm L2TP. 28
2.5 Nguyên lý hoạt động. 31
III. Cách thức tổ chức gói tin L2TP. 32
3.1 Các gói tin L2TP. 32
3.1.1 Các loại thông điệp điều khiển. 33
3.1.2 Cách thức xử lý thông điệp dữ liệu. 33
3.2 Khuôn dạng gói tin. 35
3.3 Cặp giá trị thuộc tính (AVP) 37
3.3.1 Khuôn dạng AVP. 37
3.3.2 Bit bắt buộc (Mandatory) của AVP. 38
3.3.3 Ẩn (bit H) giá trị thuộc tính AVP. 39
3.3.4 Phân loại AVP. 39
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) 57
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)) 57
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)) 58
4.1.4 Xác thực đường hầm (Tunnel Authentication) 58
4.2 Thiết lập một phiên làm việc (Session Establishment) 59
4.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) 60
4.3 Chuyển khung PPP (Forwarding PPP Frames) 62
4.4 Kiểm tra sự tồn tại của đường hầm (Keepalive) 62
4.4.1 Xin chào (Hello) 63
4.5 Bỏ một phiên làm việc (Session Teardown) 63
4.5.1 Thông báo kết thúc cuộc gọi (Call-Disconnect-Notify (CDN)) 63
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)) 64
V. L2TP qua một phương tiện truyền (L2TP Over Specific Media) 64
5.1 L2TP qua UDP/IP (L2TP over UDP/IP) 64
5.2 IP (Internet Protocol) 66
VI. Vấn đề bảo mật L2TP: 66
6.1 Bảo mật cho điểm cuối đường hầm. (Tunnel Endpoint Security) 66
6.2 Bảo mật cho gói (Packet Level Security) 66
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
87 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2685 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Nghiên cứu giao thức L2TP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
dïng Proxy x¸c thùc.
Trêng gi¸ trÞ thuéc tÝnh cña AVP nµy ®îc ®Þnh d¹ng:
0 7 8 15
Reserve
ID
ID gåm 2 byte chøa sè nguyªn kh«ng dÊu, phÇn lín c¸c bit ®îc cho b»ng 0.
AVP nµy b¾t buéc ph¶i xuÊt hiÖn ®èi víi c¸c Proxy Authen kiÓu 2, kiÓu 3 vµ kiÓu 5. §èi víi kiÓu 2 vµ kiÓu 5, trêng ID chøa gi¸ trÞ ID ®îc göi tõ LAC ®Õn client trong Challenge. §èi víi kiÓu 3, nã lµ gi¸ trÞ ®Þnh nghÜa cña yªu cÇu x¸c thùc (Authenticate-Request).
AVP nµy cã thÓ ®îc Èn (bit H b»ng 0 hoÆc 1), bit M ph¶i b»ng 0.
Proxy Authen Response (tr¶ lêi Proxy x¸c thùc) (dïng cho ICCN).
Proxy Authen Response AVP, kiÓu thuéc tÝnh 33, m« t¶ tr¶ lêi x¸c thùc PPP do LAC nhËn ®îc tõ mét nót PPP khi cã sö dông Proxy x¸c thùc.
Trêng gi¸ trÞ thuéc tÝnh cña AVP nµy ®îc ®Þnh d¹ng:
0 31
Response... (arbitrary number of octets)
Trêng Challenge lµ mét x©u c¸c byte cã chiÒu dµi tuú ý.
AVP nµy b¾t buéc ph¶i xuÊt hiÖn ®èi víi c¸c Proxy Authen kiÓu 1, kiÓu 2, kiÓu 3 vµ kiÓu 5. Trêng Response chøa nh÷ng tr¶ lêi cña client ®èi víi c¸c th¸ch thøc (challenge). §èi víi c¸c Proxy Authen kiÓu 2 vµ kiÓu 5, trêng nµy chøa nh÷ng gi¸ trÞ göi tr¶ l¹i cho LAC. §èi víi kiÓu 1 vµ kiÓu 3, nã chøa phÇn password mµ LAC nhËn ®îc tõ client. Trong trêng hîp muèn che dÊu psw ta cã thÓ dïng trêng AVP Èn.
AVP nµy cã thÓ ®îc Èn (bit H b»ng 0 hoÆc 1), bit M ph¶i b»ng 0. ChiÒu dµi cña AVP nµy (tríc khi Èn) lµ 6 céng víi chiÒu dµi cña Response.
3.3.4.6 Các AVP phản ánh tình trạng cuộcgọi
Call Error (cuéc gäi bÞ lçi) (dïng cho WEN).
Call Error AVP, kiÓu thuéc tÝnh lµ 34, ®îc sö dông bëi LAC nh»m göi c¸c th«ng b¸o lçi ®Õn LNS.
Trêng gi¸ trÞ thuéc tÝnh cña AVP nµy ®îc ®Þnh d¹ng:
0 15 16 31
Reserve
CRC Errors (H)
CRC Errors (L)
Framing Errors (H)
Framing Errors (L)
Harware Overruns (H)
Harware Overruns (L)
Buffer Overruns (H)
Buffer Overruns (L)
Time-out Error (H)
Time-out Error (L)
Alignment Error (H)
Alignment Error (L)
C¸c trêng ®îc x¸c ®Þnh nh sau:
Reseved (§Ó dµnh cho t¬ng lai): cha ®îc sö dông, cho b¨ng 0.
CRC Errors (C¸c lçi theo CRC): sè khung PPP nhËn ®îc cã lçi CRC kÓ tõ khi cuéc gäi ®îc thiÕt lËp.
Framing Errors (C¸c khung lçi): sè khung PPP kh«ng hîp lÖ nhËn ®îc.
Harware Overruns (Trµn phÇn cøng): sè c¸c vïng ®Öm bÞ trµn kÓ tõ khi cuéc gäi ®îc thiÕt lËp.
Buffer Overruns (Trµn vïng ®Öm): sè c¸c vïng ®Öm bÞ trµn ph¸t hiÖn ®îc kÓ tõ khi b¾t ®Çu cuéc gäi.
Time-out Errors (c¸c lçi thêi gian chÕt): sè c¸c thêi gian chÕt kÓ tõ khi cuéc gäi b¾t ®Çu.
Alignment Errors (c¸c lçi chuÈn trùc): sè c¸c lçi chuÈn trùc kÓ tõ khi b¾t ®Çu cuéc gäi. (ChuÈn trùc (Alignment) lµ vÞ trÝ chÝnh x¸c cña ®Çu tõ ®äc/ghi trªn r·nh mµ nã ph¶i ®äc)
AVP nµy cã thÓ ®îc Èn (bit H b»ng 0 hoÆc 1), bit M ph¶i b»ng 1. ChiÒu dµi cña AVP nµy (tríc khi Èn) lµ 32.
ACCM (dïng cho SLI).
ACCM AVP, kiÓu thuéc tÝnh lµ 35, ®îc sö dông bëi LNS nh»m th«ng b¸o víi LAC vÒ mét ®µm ph¸n ACCM gi÷a LNS víi mét nót PPP.
Trêng gi¸ trÞ thuéc tÝnh cña AVP nµy ®îc ®Þnh d¹ng:
0 15 16 31
Reserved
Send ACCM (H)
Send ACCM (L)
Receive ACCM (H)
Receive ACCM (L)
Mçi trêng Send ACCM vµ Receive ACCM gåm 4 byte ®øng ngay sau 2 byte ®Çu tiªn vÉn ®îc ®Ó dµnh cho t¬ng lai. Trêng Send ACCM cã thÓ ®îc sö dông bëi LAC nh»m tiÕn hµnh ®ãng gãi th«ng ®iÖp nã göi ®i trong qu¸ tr×nh kÕt nèi. Trêng Receive ACCM cã thÓ ®îc sö dông bëi LAC nh»m ®ãng gãi c¸c cuéc gäi ®Õn trong qu¸ tr×nh kÕt nèi. Gi¸ trÞ ngÇm ®Þnh (default) mµ LAC sö dông ®èi víi c¶ 2 trêng nµy lµ 0xFFFFFFFF. LAC sÏ rÊt quan t©m ®Õn c¸c trêng nµy trõ khi nã cã nh÷ng th«ng tin kh¸c chØ ra r»ng cÇn ph¶i thay ®æi mÆt n¹ yªu cÇu th× hÖ thèng míi ho¹t ®éng ®îc.
AVP nµy cã thÓ ®îc Èn (bit H b»ng 0 hoÆc 1), bit M ph¶i b»ng 1. ChiÒu dµi cña AVP nµy (tríc khi Èn) lµ 16.
IV. Quá trình hoạt động của giao thức L2TP
ViÖc thiÕt lËp mét ®êng hÇm cho phiªn PPP bao gåm 2 bíc:
- ThiÕt lËp mét ®iÒu khiÓn kÕt nèi cho mét ®êng hÇm.
- ThiÕt lËp mét phiªn lµm viÖc ®îc kÝch ho¹t bëi c¸c cuéc gäi ®Õn hoÆc gäi ®i.
§êng hÇm vµ ®iÒu khiÓn kÕt nèi cÇn ®îc thiÕt lËp tríc khi c¸c cuéc gäi ®Õn hay gäi ®i b¾t ®Çu. Mét phiªn lµm viÖc ph¶i ®îc thiÕt lËp tríc khi L2TP vËn chuyÓn c¸c gãi tin PPP. NhiÒu phiªn lµm viÖc cã thÓ ®îc thùc hiÖn trªn cïng mét ®êng hÇm vµ nhiÒu ®êng hÇm cã thÓ cïng tån t¹i gi÷a mét cÆp LNS - LAC.
4.1. Thiết lập điều khiển kết nối (Control Connection Establishment)
§iÒu khiÓn kÕt nèi lµ kÕt nèi ®Çu tiªn cÇn ph¶i cã gi÷a mét cÆp LNS- LAC tríc khi mét phiªn lµm viÖc ®îc tiÕn hµnh. ThiÕt lËp ®iÒu khiÓn kÕt nèi bao gåm viÖc x¸c ®Þnh sù tån t¹i cña nót, kiÓm tra phiªn b¶n (version), khung, bearer capabilities... L2TP cña nót ®ã.
Ba th«ng ®iÖp sÏ ®îc truyÒn ®Ó thiÕt lËp nªn mét ®iÒu khiÓn kÕt nèi. Qu¸ tr×nh nµy nh sau:
LAC hoÆc LNS LAC hoÆc LNS
SCCRQ ->
<- SCCRP
SCCCN ->
<- ZLB ACK
Th«ng ®iÖp ZLB ACK ®îc truyÒn khi kh«ng cßn th«ng ®iÖp nµo cßn ®ang xÕp hµng ®Ó chuyÓn ®Õn nót nµy.
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))
Th«ng ®iÖp ®iÒu khiÓn SCCRQ ®îc sö dông ®Ó b¾t ®Çu thiÕt lËp mét ®êng hÇm gi÷a LNS víi LAC. Nã cã thÓ ®îc göi tõ LAC hoÆc tõ LNS ®Ó b¾t ®Çu qu¸ tr×nh thiÕt lËp ®êng hÇm.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp SCCRQ:
Message Type AVP
Protocol Version
Host Name
Framing Capabilities
Assigned Tunnel ID
C¸c AVP sau ®©y cã thÓ cã trong SCCRQ:
Bearer Capabilities
Receive Window Size
Challenge
Tie Breaker
Firmware Revision
Vendor Name
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))
Th«ng ®iÖp ®iÒu khiÓn SCCRP ®îc sö dông ®Ó tr¶ lêi khi nhËn ®îc SCCRQ. SCCRP ®îc sö dông ®Ó chØ ra r»ng SCCRQ ®· ®îc chÊp nhËn vµ viÖc tiÕn hµnh thiÕt lËp mét ®êng hÇm cã thÓ ®îc tiÕp tôc.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp SCCRP:
Message Type
Protocol Version
Host Name
Framing Capabilities
Assigned Tunnel ID
C¸c AVP sau ®©y cã thÓ cã trong SCCRP:
Bearer Capabilities
Firmware Revision
Vendor Name
Receive Window Size
Challenge
Challenge Response
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))
Th«ng ®iÖp ®iÒu khiÓn SCCCN ®îc göi ®Ó tr¶ lêi SCCRP. SCCCN hoµn thµnh qu¸ tr×nh thiÕt lËp ®êng hÇm.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp SCCCN:
Message Type
C¸c AVP sau ®©y cã thÓ cã trong SCCCN:
Challenge Response
4.1.4 Xác thực đường hầm (Tunnel Authentication)
L2TP sö dông mét ph¬ng ph¸p ®¬n gi¶n, kh«ng b¾t buéc, gièng CHAP (RFC 1994) nh»m x¸c thùc ®êng hÇm trong qu¸ tr×nh thiÕt lËp ®iÒu khiÓn liªn kÕt. NÕu LAC hay LNS muèn x¸c thùc tÝnh hîp lÖ cña mét nót mµ chóng ®ang chuÈn bÞ liªn kÕt hoÆc ®· tån t¹i liªn kÕt, mét Challenge AVP sÏ ®îc göi trong th«ng ®iÖp SCCRQ hoÆc SCCRP. Khi nót bªn kia nhËn ®îc Challenge AVP trong th«ng ®iÖp SCCRQ hoÆc SCCRP, nã sÏ ph¶i göi tr¶ l¹i Response AVP trong th«ng ®iÖp SCCRP hoÆc SCCCN tiÕp theo (t¬ng øng). NÕu nh c©u tr¶ lêi mong muèn vµ c©u tr¶ lêi nhËn ®îc kh¸c nhau, nót ban ®Çu sÏ kh«ng cho phÐp thiÕt lËp ®êng hÇm.
§Ó cã thÓ sö dông qu¸ tr×nh x¸c thùc ®êng hÇm, mét gi¸ trÞ chia xÎ bÝ mËt ph¶i ®îc dïng gi÷a LAC vµ LNS. Gi¸ trÞ nµy ph¶i gièng víi gi¸ trÞ dïng ®Ó Èn AVP.
4.2 Thiết lập một phiên làm việc (Session Establishment)
Sau khi thiÕt lËp thµnh c«ng ®iÒu khiÓn liªn kÕt, mét phiªn lµm viÖc cô thÓ cã thÓ ®îc b¾t ®Çu. Mçi phiªn lµm viÖc sÏ t¬ng øng víi mét dßng PPP tõ LAC ®Õn LNS. Kh«ng gièng nh qu¸ tr×nh thiÕt lËp ®iÒu khiÓn liªn kÕt, qu¸ tr×nh thiÕt lËp phiªn lµm viÖc cã ®Þnh híng cô thÓ ®èi víi LAC hay LNS. LAC th× yªu cÇu LNS chÊp nhËn mét phiªn qua c¸c cuéc gäi ®Õn (incoming call) cßn LNS th× yªu cÇu LAC chÊp nhËn mét phiªn qua c¸c cuéc gäi ®i (outgoing call).
4.2.1 Thiết lập một cuộc gọi đến (Incoming Call Establishment)
Ba th«ng ®iÖp sÏ ®îc truyÒn ®Ó thiÕt lËp nªn mét ®iÒu khiÓn kÕt nèi. Qu¸ tr×nh nµy nh sau:
LAC LNS
ICRQ ->
<- ICRP
ICCN ->
<- ZLB ACK
Th«ng ®iÖp ZLB ACK ®îc truyÒn khi kh«ng cßn th«ng ®iÖp nµo cßn ®ang xÕp hµng ®Ó chuyÓn ®Õn nót nµy.
4.2.1.1 Yêu cầu một cuộc gọi đến (Incoming-Call-Request (ICRQ))
Th«ng ®iÖp ®iÒu khiÓn ICRQ ®îc göi tõ LAC ®Õn LNS khi nã t×m thÊy mét yªu cÇu cuéc gäi ®Õn. §©y lµ th«ng ®iÖp ®Çu tiªn trong ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm L2TP.
ICRQ ®îc sö dông ®Ó chØ ra r»ng mét phiªn lµm viÖc cÇn ph¶i ®îc thiÕt lËp gi÷a LAC víi LNS vµ cung cÊp cho LNS th«ng tin vÒ c¸c tham sè cña phiªn nµy. LAC cã thÓ tr× ho·n tr¶ lêi cuéc gäi cho ®Õn khi nã nhËn ®îc ICRP cña LNS. ICRP cña LNS sÏ cho LAC biÕt r»ng mét phiªn lµm viÖc cã thÓ ®îc thiÕt lËp. C¬ chÕ nµy cho phÐp LNS cã ®îc c¸c th«ng tin cÇn thiÕt vÒ cuéc gäi tríc khi xem xÐt viÖc cã nªn tr¶ lêi hay kh«ng. Mét c¸ch kh¸c lµ LAC cã thÓ tr¶ lêi lu«n cuéc gäi, ®µm ph¸n ®Ó x¸c thùc LCP vµ PPP, vµ dïng nh÷ng th«ng tin thu ®îc ®Ó lùa chän LNS. Trong trêng hîp nµy, cuéc gäi ®· ®îc tr¶ lêi vµo lóc mµ LAC nhËn ®îc th«ng ®iÖp ICRP.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp ICRQ:
Message Type
Assigned Session ID
Call Serial Number
C¸c AVP sau ®©y cã thÓ cã trong ICRQ:
Bearer Type
Physical Channel ID
Calling Number
Called Number
Sub-Address
4.2.1.2 Trả lời một cuộc gọi đến (Incoming-Call Reply (ICRP))
Th«ng ®iÖp ®iÒu khiÓn ICRP ®îc göi tõ LNS ®Õn LAC nh»m tr¶ lêi cho th«ng ®iÖp ICRQ. §©y lµ th«ng ®iÖp thø hai trong sè ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm.
ICRP ®îc sö dông ®Ó chØ ra r»ng ICRQ ®· thµnh c«ng ®ång thêi ®Ó LAC tr¶ lêi cuéc gäi nÕu nh nã vÉn cha tr¶ lêi. Nã còng cho phÐp LNS chØ ra c¸c tham sè cÇn thiÕt cho mét phiªn L2TP.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp ICRP:
Message Type
Assigned Session ID
4.2.1.3 Kết nối cuộc gọi đến (Incoming-Call-Connected (ICCN))
Th«ng ®iÖp ®iÒu khiÓn ICCN ®îc göi tõ LAC ®Õn LNS nh»m tr¶ lêi cho th«ng ®iÖp ICRP. §©y lµ th«ng ®iÖp cuèi cïng trong sè ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm L2TP.
ICCN ®îc sö dông ®Ó chØ ra r»ng ICRP ®· ®îc chÊp nhËn, cuéc gäi ®· ®îc tr¶ lêi, vµ phiªn lµm viÖc L2TP ®· ®îc h×nh thµnh. §ång thêi nã còng cung cÊp thªm c¸c th«ng tin cho LNS vÒ c¸c tham sè ®· sö dông ®Ó tr¶ lêi cuéc gäi (c¸c tham sè cha xuÊt hiÖn lóc göi ®i ICRQ).
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp ICCN:
Message Type
(Tx) Connect Speed
Framing Type
C¸c AVP say ®©y cã thÓ cã trong ICCN:
Initial Received LCP CONFREQ
Last Sent LCP CONFREQ
Last Received LCP CONFREQ
Proxy Authen Type
Proxy Authen Name
Proxy Authen Challenge
Proxy Authen ID
Proxy Authen Response
Private Group ID
Rx Connect Speed
Sequencing Required
4.2.2 Thiết lập một cuộc gọi đi(Outgoing Call Establishment)
Ba th«ng ®iÖp sÏ ®îc truyÒn ®Ó thiÕt lËp nªn mét ®iÒu khiÓn kÕt nèi. Qu¸ tr×nh nµy nh sau:
LAC LNS
<- OCRQ
OCRP ->
OCCN ->
<- ZLB ACK
Th«ng ®iÖp ZLB ACK ®îc truyÒn khi kh«ng cßn th«ng ®iÖp nµo cßn ®ang xÕp hµng ®Ó chuyÓn ®Õn nót nµy.
4.2.2.1 Yêu cầu cuộc gọi đi (Outgoing-Call-Request (OCRQ))
Th«ng ®iÖp ®iÒu khiÓn OCRQ ®îc göi tõ LNS ®Õn LAC cho biÕt mét cuéc gäi ®i tõ LAC sÏ ®îc thiÕt lËp. §©y lµ th«ng ®iÖp ®Çu tiªn trong ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm L2TP.
OCRQ ®îc sö dông ®Ó cho biÕt mét phiªn lµm viÖc sÏ ®îc thiÕt lËp gi÷a LAC vµ LNS ®ång thêi nã cung cÊp cho LAC c¸c tham sè cÇn thiÕt nh»m thùc hiÖn mét phiªn L2TP vµ cuéc gäi mµ nã thùc hiÖn.
Mét LNS cÇn nhËn ®îc Bearer Capabilites AVP tõ LAC trong qu¸ tr×nh thiÕt lËp ®êng hÇm ®Ó cã thÓ thùc hiÖn mét cuéc gäi ®Õn LAC ®ã.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp OCRQ:
Message Type
Assigned Session ID
Call Serial Number
Minimum BPS
Maximum BPS
Bearer Type
Framing Type
Called Number
C¸c AVP say ®©y cã thÓ cã trong OCRQ:
Sub-Address
4.2.2.2 Trả lời một cuộc gọi đi (Outgoing-Call-Reply (OCRP))
Th«ng ®iÖp ®iÒu khiÓn OCRP ®îc göi tõ LAC ®Õn LNS nh»m tr¶ lêi cho th«ng ®iÖp OCRQ. §©y lµ th«ng ®iÖp thø hai trong sè ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm.
OCRP ®îc sö dông ®Ó chØ ra r»ng OCRQ ®· thµnh c«ng ®ång thêi LAC ®ang cè g¾ng ®Ó thùc hiÖn cuéc gäi. Nã còng cho phÐp göi tr¶ l¹i c¸c tham sè cÇn thiÕt cña cuéc gäi.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp OCRP:
Message Type
Assigned Session ID
C¸c AVP say ®©y cã thÓ cã trong OCRP:
Physical Channel ID
4.2.2.3 Kết nối cuộc gọi đi (Outgoing-Call-Connected (OCCN))
Th«ng ®iÖp ®iÒu khiÓn OCCN ®îc göi tõ LAC ®Õn LNS tiÕp sau th«ng ®iÖp OCRP. §©y lµ th«ng ®iÖp cuèi cïng trong sè ba th«ng ®iÖp ®îc sö dông ®Ó thiÕt lËp mét phiªn lµm viÖc trªn ®êng hÇm L2TP.
OCCN ®îc sö dông ®Ó chØ ra r»ng yªu cÇu mét cuéc gäi ®· ®îc chÊp nhËn. §ång thêi nã còng cung cÊp thªm c¸c th«ng tin cho LNS vÒ c¸c tham sè thu ®îc sau khi cuéc gäi ®îc thiÕt lËp.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp OCCN:
Message Type
(Tx) Connect Speed
Framing Type
C¸c AVP say ®©y cã thÓ cã trong OCCN:
Rx Connect Speed
Sequencing Required
4.3 Chuyển khung PPP (Forwarding PPP Frames)
Sau khi qu¸ tr×nh thiÕt lËp ®îc hÇm ®îc hoµn thµnh, khung PPP tõ hÖ thèng tõ xa sÏ ®îc göi ®Õn LAC. LAC sÏ lo¹i bá phÇn CRC, kÕt nèi khung, c¸c byte trong suèt, ®ãng gãi theo khu«n d¹ng L2TP råi chuyÓn chóng ®i trong ®êng hÇm thÝch hîp. LNS sÏ nhËn ®îc c¸c gãi tin L2TP vµ sÏ tiÕn hµnh ®ãng gãi l¹i theo khung PPP.
ViÖc göi mét th«ng ®iÖp cã liªn quan ®Õn mét phiªn lµm viÖc vµ mét ®êng hÇm cô thÓ ®îc cho bëi Session ID vµ Tunnel ID (®îc ghi râ t¹i mçi nót) trong phÇn header cña Session ID vµ Tunnel ID cña tÊt c¶ c¸c cuéc gäi ®i. B»ng c¸ch nµy, nh÷ng khung PPP cã thÓ ®îc dån vµ gi¶i bëi mét ®êng hÇm duy nhÊt tån t¹i gi÷a cÆp LAC-LNS. NhiÒu ®êng hÇm cã thÓ cïng tån t¹i ®èi víi mét cÆp LAC-LNS vµ nhiÒu phiªn lµm viÖc cã thÓ cïng tån t¹i trªn mét ®êng hÇm.
Gi¸ trÞ b»ng 0 ®èi víi c¶ Session ID lÉn Tunnel ID lµ mét gi¸ trÞ ®Æc biÖt vµ kh«ng ®îc phÐp dïng nã ®Ó cÊp cho Session ID vµ Tunnel ID. Trong trêng hîp mét Session ID cha ®îc cÊp gi¸ trÞ tõ nót (vÝ dô khi thiÕt lËp mét phiªn lµm viÖc hoÆc mét ®êng hÇm míi), Session ID sÏ ®îc g¸n lµ 0. KÕ ®ã Assigned Session ID AVP sÏ ®îc dïng ®Ó x¸c ®Þnh gi¸ trÞ cho Session ID ®ã. T¬ng tù, khi mét Tunnel ID cha ®îc cÊp gi¸ trÞ th× nã sÏ ®îc g¸n b»ng 0 råi dïng Assigned Tunnel ID ®Ó x¸c ®Þnh.
4.4 Kiểm tra sự tồn tại của đường hầm (Keepalive)
C¬ chÕ Keepalive ®îc sö dông bëi L2TP nh»m kiÓm tra sù ho¹t ®éng cña mét ®êng hÇm sau mét kho¶ng thêi gian kh«ng cã th«ng ®iÖp nµo ®îc truyÒn trªn ®ã. §iÒu nµy ®îc thùc hiÖn b»ng c¸ch göi ®i gãi tin Hello sau mét kho¶ng thêi gian nhÊt ®Þnh kÓ tõ khi th«ng ®iÖp cuèi cïng ®îc nhËn. Còng gièng nh tÊt c¶ c¸c th«ng ®iÖp ®iÒu khiÓn kh¸c, nÕu nh gãi tin Hello kh«ng ®îc göi ®i mét c¸ch ®¸ng tin cËy th× ®êng hÇm bÞ coi lµ háng vµ cÇn ®îc thiÕt lËp l¹i. Nã cho phÐp t×m thÊy bÊt kú lçi nµo trong viÖc kÕt nèi gi÷a LAC víi LNS. Nã cã thÓ ®îc göi ®i tõ mét ®Çu cña ®êng hÇm.
4.4.1 Xin chào (Hello)
Th«ng ®iÖp ®iÒu khiÓn Hello ®îc göi bëi LAC hoÆc LNS. Th«ng ®iÖp nµy ®îc göi nh»m "gi÷ cho sèng" (keepalive) ®èi víi ®êng hÇm.
Mét nót thêng kh«ng mong muèn nhËn ®îc mét tin Hello t¹i bÊt kú thêi ®iÓm nµo. Còng gièng nh tÊt c¶ c¸c th«ng ®iÖp ®iÒu khiÓn kh¸c, bªn nhËn ®îc th«ng ®iÖp nµy sÏ ph¶i göi tr¶ mét ZLB ACK, hoÆc mét th«ng ®iÖp kh¸c cã liªn quan nh»m kh¼ng ®Þnh ®· nhËn ®îc nã.
Do Hello lµ mét th«ng ®iÖp ®iÒu khiÓn, vµ c¸c th«ng ®iÖp ®iÒu khiÓn ®Òu ®îc göi mét c¸ch ®¸ng tin cËy t¹i c¸c tÇng thÊp, hµm "gi÷ cho sèng" nµy ho¹t ®éng nhê viÖc c¸c ph¬ng tiÖn truyÒn ph¶i vËn chuyÓn nã mét c¸ch ®¸ng tin cËy. NÕu nh cã ng¾t ë mét ph¬ng tiÖn, qu¸ tr×nh vËn chuyÓn sÏ kh«ng thÓ truyÒn th«ng ®iÖp Hello ®i, do ®ã ®êng hÇm sÏ bÞ hñy bá.
"Gi÷ cho sèng" ®èi víi mét ®êng hÇm cã thÓ ®îc thùc hiÖn b»ng c¸ch göi ®i mét th«ng ®iÖp Hello sau mét kho¶ng thêi gian nµo ®ã (gi¸ trÞ ngÇm ®Þnh lµ 60 gi©y) kh«ng cã bÊt kú th«ng ®iÖp nµo ®îc truyÒn trªn ®êng hÇm.
C¬ chÕ Hello ®îc giíi thiÖu cho mäi ®êng hÇm. Trêng Session ID trong th«ng ®iÖp Hello ph¶i b»ng 0.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp Hello:
Message Type
4.5 Bỏ một phiên làm việc (Session Teardown)
Lo¹i bá mét phiªn lµm viÖc cã thÓ ®îc yªu cÇu b»ng c¶ LAC lÉn LNS vµ ®îc hoµn thµnh b»ng c¸ch göi ®i th«ng ®iÖp ®iÒu khiÓn CDN. Sau khi phiªn lµm viÖc cuèi cïng kÕt thóc (hoÆc bÞ bá), ®iÒu khiÓn kÕt nèi còng cã thÓ sÏ kÕt thóc (vµ thêng nh vËy).
Díi ®©y lµ mét vÝ dô ®iÓn h×nh vÒ c¸c th«ng ®iÖp ®iÒu khiÓn ®îc trao ®æi phôc vô cho qu¸ tr×nh nµy:
LAC hoÆc LNS LAC hoÆc LNS
CDN ->
<- ZLB ACK
4.5.1 Thông báo kết thúc cuộc gọi (Call-Disconnect-Notify (CDN))
Th«ng ®iÖp ®iÒu khiÓn CDN ®îc göi bëi LAC hoÆc LNS nh»m yªu cÇu chÊm døt mét cuéc gäi nµo ®ã bªn trong ®êng hÇm. Môc ®Ých cña nã lµ th«ng b¸o nót nµo muèn chÊm døt vµ nguyªn nh©n cña sù chÊm døt ®ã. Nót ®ã sÏ xo¸ tÊt c¶ c¸c th«ng tin vµ kh«ng göi tr¶ bÊt kú th«ng tin nµo nh»m ph¶n ¸nh sù thµnh c«ng hay thÊt b¹i cña sù xo¸ bá ®ã.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp CDN:
Message Type
Result Code
Assigned Session ID
C¸c AVP say ®©y cã thÓ cã trong CDN:
Q.931 Cause Code
4.6 Bỏ điều khiển kết nối (Control Connection Teardown)
Qu¸ tr×nh bá ®iÒu khiÓn kÕt nèi cã thÓ ®îc yªu cÇu b»ng c¶ LAC lÉn LNS vµ ®îc hoµn thµnh b»ng c¸ch göi ®i gãi tin ®iÒu khiÓn StopCCN. Bªn nhËn ®îc th«ng ®iÖp StopCCN ph¶i göi tr¶ l¹i ZLB ACK nh»m th«ng b¸o ®· nhËn ®îc StopCCN vµ ph¶i duy tr× t×nh tr¹ng ®iÒu khiÓn kÕt nèi trong mét kho¶ng thêi gian ®ñ ®Ó hoµn thµnh mét chu kú göi tr¶ l¹i (®Ò phßng trêng hîp ZLB ACK bÞ thÊt l¹c). Kho¶ng thêi gian nµy ®îc ngÇm ®Þnh lµ 31 gi©y.
C¸c th«ng ®iÖp ®îc göi nh sau:
LAC hoÆc LNS LAC hoÆc LNS
StopCCN ->
<- ZLB ACK
B»ng c¸ch göi ®i StopCCN, chóng ta cã thÓ tiÕn hµnh xo¸ bá ®êng hÇm vµ tÊt c¶ c¸c phiªn lµm viÖc trong ®êng hÇm ®ã cïng lóc. Do ®ã, kh«ng cÇn ph¶i bËn t©m ®Õn viÖc xo¸ bá tõng phiªn lµm viÖc cô thÓ khi muèn xo¸ bá toµn bé ®êng hÇm.
4.6.1 Thông báo dừng điều khiển liên kết (Stop-Control-Connection-Notification (StopCCN))
Th«ng ®iÖp ®iÒu khiÓn StopCCN cã thÓ ®îc göi tõ LAC hay LNS nh»m th«ng b¸o ®Õn c¸c nót r»ng ®êng hÇm sÏ bÞ lo¹i bá vµ ®iÒu khiÓn liªn kÕt sÏ bÞ dõng. H¬n n÷a, tÊt c¶ c¸c phiªn ®ang ho¹t ®éng trªn ®êng hÇm còng bÞ xo¸ bá hoµn toµn (mµ kh«ng cÇn göi thªm mét th«ng ®iÖp nµo kh¸c). Nguyªn nh©n cña yªu nµy ®îc nãi ®Õn trong Result Code AVP. Kh«ng cÇn göi tr¶ mét th«ng ®iÖp cô thÓ nµo, chØ cã th«ng ®iÖp ZLB ACK ®îc göi nhê kh¶ n¨ng vËn chuyÓn ®¸ng tin cËy c¸c th«ng ®iÖp ®iÒu khiÓn.
C¸c AVP sau ®©y buéc ph¶i cã trong th«ng ®iÖp StopCCN:
Message Type
Assigned Tunnel ID
Result Code
V. L2TP qua một phương tiện truyền (L2TP Over Specific Media)
L2TP lµ giao thøc tù m« t¶, tù ho¹t ®éng ë tÇng trªn cña ph¬ng tiÖn truyÒn nã. Tuy nhiªn, mét sè chi tiÕt vÒ kÕt nèi L2TP ®Õn ph¬ng tiÖn truyÒn cÇn thiÕt cho phÐp viÖc vËn hµnh liªn t¸c. Môc tiÕp theo sÏ m« t¶ nh÷ng cÇn thiÕt ®Ó L2TP ho¹t ®éng qua mét ph¬ng tiÖn cô thÓ.
5.1 L2TP qua UDP/IP (L2TP over UDP/IP)
L2TP sö dông mét cæng ®¨ng ký UDP 1701 [RFC1700]. Toµn bé gãi tin L2TP, bao gåm c¶ phÇn d÷ liÖu (payload) vµ phÇn header ®îc truyÒn trong gãi UDP. Bªn khëi t¹o ®êng hÇm L2TP lùa chän mét cæng UDP s½n cã (cã thÓ lµ cæng 1701 hoÆc kh¸c), sau ®ã göi ®Þa chØ cÇn ®Õn tíi cæng 1701. Bªn nhËn chän mét cæng cßn trèng trong hÖ thèng cña nã (cã thÓ lµ cæng 1701 hoÆc kh¸c) vµ göi tr¶ l¹i bªn khëi t¹o cæng vµ ®Þa chØ UDP ®ång thêi thiÕt lËp c¸c cæng nguån cho cæng rçi võa t×m ®îc. Sau khi cæng nguån, cæng ®Ých vµ c¸c ®Þa chØ ®îc thiÕt lËp, chóng cã thÓ b¾t ®Çu c¸c c«ng viÖc ®Ó duy tr× ®êng hÇm.
Lu ý r»ng nÕu chän nguån cña bªn nhËn lµ mét cæng bÊt kú (tøc lµ cæng ®Õn kh«ng ph¶i lµ 1701 nh ngÇm ®Þnh) cã thÓ sÏ dÉn ®Õn mét sè khã kh¨n cho L2TP khi sö dông c¸c thiÕt bÞ NAT. Do ®ã, nh÷ng ngêi vËn hµnh cÇn xem xÐt nh÷ng khã kh¨n tiÒm tµng nµy tríc khi lùa chän mét cæng bÊt kú.
Khi ®îc göi trªn nÒn IP, c¸c gãi tin L2TP cã thÓ sÏ bÞ ph©n ®o¹n theo IP. L2TP kh«ng cã ph¬ng tiÖn g× hç trî viÖc tèi u ho¸ c«ng ®o¹n nµy. Mét LAC ®ang ho¹t ®éng cã thÓ khiÕn c¸c LCP cña nã xem xÐt mét MRU cô thÓ nµo ®ã, vµ b»ng c¸ch nµy lµm tèi u m«i trêng cña LAC ®Ó MTU cña ®êng truyÒn chøa gãi tin L2TP gièng nh ®ang ®îc truyÒn víi gi¸ trÞ kh«ng ®æi.
Cã mét ngÇm ®Þnh ®èi víi tÊt c¶ c¸c ho¹t ®éng cña L2TP lµ trêng kiÓm tra lçi (checksums) cña UDP ph¶i ®îc ho¹t ®éng c¶ víi c¸c gãi tin ®iÒu khiÓn lÉn c¸c gãi tin d÷ liÖu. L2TP cã thÓ ®a ra tuú chän ®Ó lo¹i bá trêng checksums. UDP ®èi víi c¸c gãi tin d÷ liÖu, nhng ®èi víi c¸c gãi tin ®iÒu khiÓn th× lu«n lu«n ph¶i cã checksums UDP.
Cæng 1701 ®îc sö dông cho c¶ c¸c gãi tin L2F (RFC2341) lÉn c¸c gãi tin L2TP. Trêng phiªn b¶n (Version) t¹i phÇn header cña mçi gãi tin sÏ gióp m¸y ph©n biÖt ®îc 2 lo¹i gãi tin nµy (nÕu nã b»ng 1 th× lµ gãi tin L2F, nÕu nã lµ 2 th× lµ gãi tin L2TP). NÕu mét m¸y vËn hµnh L2TP kh«ng cã hç trî L2F th× nã ph¶i bá qua tÊt c¶ c¸c gãi tin L2F.
§èi víi mét m¸y PPP sö dông ®êng hÇm L2TP qua UDP/IP, liªn kÕt PPP cã c¸c ®Æc ®iÓm ®Ó s¾p xÕp l¹i hoÆc bá qua c¸c gãi tin. M¸y PPP cã thÓ lo¹i bá c¸c giao thøc kh«ng hç trî IP, ch¼ng h¹n mét m¸y chñ LAN dïng lµm cÇu nèi (bridge). Liªn kÕt PPP cã thÓ lo¹i bá c¸c c¸c giao thøc cã c¸c gãi tin lçi, ch¼ng h¹n nÐn TCP header. D·y sè tuÇn tù cã thÓ ®îc sö dông bëi c¸c th«ng ®iÖp d÷ liÖu L2TP khi c¸c giao thøc kh¸c ®îc truyÒn qua ®êng hÇm PPP kh«ng hç trî viÖc s¾p xÕp l¹i c¸c gãi tin. Kh¶ n¨ng nµy cña c¸c giao thøc kh¸c chóng ta kh«ng bµn ®Õn trong tµi liÖu nµy.
Bá qua mét th«ng ®iÖp còng kh«ng ph¶i lµ dÔ dµng ®èi víi mét sè giao thøc. NÕu nh chøc n¨ng PPP truyÒn tin cËy (RFC1663) ®îc bËt, nh÷ng giao thøc cao h¬n PPP sÏ kh«ng gÆp ph¶i sù mÊt m¸t d÷ liÖu. NÕu nh chøc n¨ng d·y cã thø tù (sequence number) cña L2TP ®îc bËt, L2TP cã thÓ t×m thÊy c¸c gãi tin bÞ mÊt. Trong trêng hîp LNS, c¸c ng¨n xÕp PPP vµ L2TP cã thÓ cïng xuÊt hiÖn, mét gãi tin cã thÓ bÞ b¸o mÊt khi nã nhËn ®îc víi lçi CRC. Khi ng¨n xÕp LAC vµ PPP cïng xuÊt hiÖn, ®iÒu nµy còng ®óng. Khi LAC vµ PPP cã sù kh¸c biÖt vÒ vËt lý, mét tÝn hiÖu t¬ng tù cã thÓ ®îc truyÒn ®i khi PPP nhËn ®îc mét gãi tin víi lçi CRC. Chó ý r»ng c«ng nghÖ nµy cã thÓ g©y phøc t¹p cho viÖc ch÷a lçi ®êng truyÒn, do nã kh«ng thÓ ph©n biÖt ®îc lçi ®êng truyÒn víi lçi cña LAC. H¬n n÷a, c«ng nghÖ nµy kh«ng thÓ ¸p dông ®îc cho tÊt c¶ c¸c phÇn cøng.
NÕu hµm VJ ®îc sö dông, vµ c¶ tÝnh n¨ng truyÒn tin cËy PPP lÉn d·y cã thø tù L2TP ®Òu bÞ t¾t, mçi gãi tin bÞ mÊt lµ 1 trong sè 216 ®o¹n TCP ®îc truyÒn cã néi dung sai (RFC 1144). Khi tû lÖ kÕt hîp c¸c gãi tin bÞ mÊt nµy kh«ng ®îc chÊp nhËn, hµm VJ sÏ kh«ng ®îc sö dông.
Tãm l¹i, cÇn nhí r»ng truyÒn L2TP/UDP/IP ®Òu lµ truyÒn kh«ng tin cËy. Khi mét gãi tin PPP bÞ mÊt, chóng ta cã thÓ sö dông c¸c giao thøc cã u ®iÓm vÒ viÖc t×m kiÕm c¸c gãi tin bÞ mÊt. Nh÷ng giao thøc nµy cã c¬ chÕ nÐn vµ m· ho¸ tèt vµ ®· ®îc nghiªn cøu trong c¸c tµi liÖu kh¸c.
5.2 IP (Internet Protocol)
Khi ho¹t ®éng trong m«i trêng IP, L2TP ph¶i sö dông c¬ chÕ ®ãng gãi UDP nh m« t¶ trong 5.1 nh mét cÊu h×nh ngÇm ®Þnh ®Ó IP ho¹t ®éng. C¸c cÊu h×nh kh¸c (cã thÓ t¬ng øng víi viÖc nÐn header) cã thÓ ®îc ®Þnh nghÜa vµ ®îc xem nh c¸c tuú chän.
VI. Vấn đề bảo mật L2TP:
L2TP cã mét vµi vÊn ®Ò vÒ b¶o mËt trong qu¸ tr×nh ho¹t ®éng cña nã. Trong tµi liÖu nµy chóng ta sÏ xem xÐt c¸c vÊn ®Ò thêng gÆp nhÊt.
6.1 Bảo mật cho điểm cuối đường hầm. (Tunnel Endpoint Security)
Mét ®iÓm cuèi ®êng hÇm cã thÓ lùa chän mét thñ tôc nh»m x¸c thùc nót cßn l¹i trong qu¸ tr×nh thiÕt lËp ®êng hÇm. Thñ tôc x¸c thùc nµy cã t¸c dông b¶o mËt gièng nh CHAP, nã b¶o vÖ chèng t¹o l¹i hay ¨n c¾p th«ng tin trong qu¸ tr×nh thiÕt lËp ®êng hÇm. Thñ tôc nµy kh«ng ®îc thiÕt kÕ ®Ó x¸c thùc c¸c khÝa c¹nh kh¸c sau khi thiÕt lËp ®êng hÇm, do ®ã mét tin tÆc cã thÓ lîi dông nã ®Ó göi ®i c¸c gãi tin trªn mét ®êng hÇm ®· ®îc x¸c thùc tríc ®ã.
Khi viÖc x¸c thùc xuÊt hiÖn, LAC vµ LNS ph¶i chia sÎ víi nhau mét gi¸ trÞ bÝ mËt. Mçi bªn ®Òu sö dông gi¸ trÞ nµy khi yªu cÇu còng nh tr¶ lêi x¸c thùc. Khi gi¸ trÞ bÝ mËt nµy ®· ®îc chia sÎ, ®èi víi mçi th«ng ®iÖp AVP x¸c thùc ®êng hÇm ®Òu chøa gi¸ trÞ kh¸c víi trêng CHAP ID nh»m chèng l¹i viÖc t¹o l¹i ®êng hÇm.
Assigned Tunnel ID vµ Assigned Session ID (xem 4.4.3) ph¶i ®îc lùa chän theo c¸ch kh«ng cho tríc chø kh«ng ®îc chän theo kiÓu tuÇn tù. §iÒu nµy nh»m b¶o vÖ viÖc tÊn c«ng vµo mét phiªn tõ mét ngêi dïng kh«ng cã quyÒn truy nhËp vµo dßng tin ®îc trao ®æi gi÷a LAC vµ LNS.
6.2 Bảo mật cho gói (Packet Level Security)
V× lý do an toµn L2TP yªu cÇu tÊt c¶ c¸c vËn chuyÓn ë tÇng díi nã ph¶i cã kh¶ n¨ng m· ho¸, hîp nhÊt, x¸c thùc trong tÊt c¶ c¸c th«ng ®iÖp L2TP ®îc truyÒn. Yªu cÇu nµy ph¶i ®îc thùc hiÖn ®èi víi L2TP vµ lµ ®éc lËp víi PPP còng nh c¸c giao thøc trong PPP. Do ®ã, L2TP chØ liªn quan ®Õn viÖc b¶o mËt, x¸c thùc, hîp nhÊt c¸c gãi tin L2TP t¹i c¸c ®iÓm cuèi trªn ®êng hÇm (LAC vµ LNS) chø kh«ng gièng nh link-layer chØ b¶o vÖ viÖc truyÒn gi÷a c¸c ®iÓm kÕt thóc vËt lý cña nã.
6.3 Bảo mật cho liên kết (End to End Security)
B¶o mËt cho viÖc vËn chuyÓn c¸c gãi d÷ liÖu L2TP bao gåm c¶ viÖc b¶o mËt cho c¸c gãi PPP ®îc vËn chuyÓn qua ®êng hÇm gi÷a LAC vµ LNS. ViÖc b¶o mËt nµy gi÷a hai host hay hai øng dông còng cÇn ®îc xem träng.
6.4 L2TP và IPSec (L2TP and IP Securtiy)
Khi ch¹y trªn m«i trêng IP, IPSec cung cÊp dÞch vô b¶o mËt møc gãi qua ESP vµ/hoÆc AH. TÊt c¶ c¸c gãi d÷ liÖu còng nh ®iÒu khiÓn L2TP cña mçi ®êng hÇm gièng hÖt nh gãi d÷ liÖu UDP/IP trong hÖ IPSec.
Nh»m t¨ng kh¶ n¨ng b¶o mËt cho viÖc truyÒn IP, IPSec x¸c ®Þnh mét c¬ chÕ ho¹t ®éng cho phÐp t¹o ®êng hÇm c¸c gãi IP. ViÖc mËt m· ho¸ vµ x¸c thùc ë møc gãi ®îc cung cÊp bëi ®êng hÇm IPSec còng t¬ng ®¬ng víi nh÷ng dÞch vô do L2TP cung cÊp.
IPSec còng ®ßi hái c¸c ®Æc ®iÓm ®iÒu khiÓn truy nhËp ®Ó cã thÓ ho¹t ®éng. Nh÷ng ®Æc ®iÓm nµy cho phÐp c¸c gãi tin liªn quan ®Õn c¸c tÇng cao h¬n nh ®Þa chØ IP, cæng... lät qua. Theo c¬ chÕ ®êng hÇm L2TP, viÖc ®i qua nµy ®îc xem xÐt bëi líp PPP hoÆc tÇng m¹ng cao h¬n L2TP. C¸c ®Æc ®iÓm ®ã ®îc ®iÒu khiÓn bëi LNS th«ng qua chÝnh s¸ch cña ngêi b¸n, dùa trªn viÖc x¸c thùc PPP cho c¸c user hoÆc lµ t¹i chÝnh tÇng m¹ng sö dông ph¬ng thøc vËn chuyÓn IPSec cho viÖc giao tiÕp gi÷a c¸c host.
Hai hình sau mô tả vai trò IPSec trong việc bảo vệ hai loại đường hầm L2TP:
Hình 2.13: IPSec bảo vệ đường hầm bắt buộc L2TP
Hình 2.14: IPSec bảo vệ đường hầm tự nguyện L2TP
Chương 3. THIẾT KẾ CHƯƠNG TRÌNH MÔ PHỎNG GIAO THỨC L2TP
Trong chương này, chúng ta sẽ từng bước phân tích và xây dựng chương trình mô phỏng nhằm minh họa một số chức năng cơ bản của giao thức L2TP, từ đó hiểu rõ hơn về sự hoạt động của giao thức.
I. Thiết kế chương trình mô phỏng giao thức L2TP
1.1 Mô hình máy trạng thái hữu hạn (FSM)
Các giao thức tin cậy và các chương trình cài đặt chúng thường khá phức tạp. Do đó, nhiều nghiên cứu đã được tiến hành nhằm tìm ra các kỹ thuật và mô hình để đặc tả và kiểm tra các giao thức.
Một khái niệm quan trọng được dùng trong rất nhiều mô hình giao thức là máy trạng thái hữu hạn. Với kỹ thuật này, mỗi máy giao thức (máy gửi hoặc máy nhận) luôn ở một trạng thái cụ thể tại mỗi thời điểm. Trạng thái của nó bao gồm tất cả các giá trị của các biến, kể cả bộ đếm chương trình.
Từ mỗi trạng thái, có thể có hoặc không có các chuyển dịch tới các trạng thái khác. Các chuyển dịch diễn ra khi một sự kiện nào đó xảy ra, chẳng hạn khi một khung được gửi đi, một khung đến, bộ định giờ hết thời gian…
Một trạng thái đặc biệt được qui định là trạng thái khởi đầu (idle). Trạng thái này tương ứng với sự mô tả hệ thống khi nó bắt đầu hoạt động. Từ trạng thái khởi đầu có thể tới được một số, hoặc có thể là tất cả, các trạng thái khác bằng một chuỗi các chuyển dịch.
Thông thường, để xác định một máy trạng thái hữu hạn của một giao thức, cần xác định được:
- Tập các sự kiện.
- Tập các trạng thái.
- Tập các chuyển dịch giữa các trạng thái.
Việc xây dựng cài đặt FSM bằng phương pháp lập trình có sơ đồ như sau:
Bộ xử lý sự kiện
Đối tượng trạng thái hiện thời
Trong sơ đồ cài đặt FSM nêu trên, bộ xử lý sự kiện gửi tất cả các sự kiện trực tiếp tới đối tượng trạng thái hiện thời. Việc gửi các sự kiện trong cài đặt hướng đối tượng tương đương với việc gọi ra các phương thức trên đối tượng trạng thái hiện thời. Điều này có nghĩa là, đối với mọi sự kiện có thể xảy ra, bộ xử lý sự kiện phải có khả năng gọi ra một phương thức cho trước. Giả sử đối tượng trạng thái hiện thời là một nấc của lớp StataRoot, được tạo ra khi khởi động hệ thống, trước khi xử lý các sự kiện:
StateRoot*curState = new StateRoot
Biến cur StateRoot có giá trị phản ánh trạng thái hiện thời của hệ thống. Trong cài đặt hướng đối tượng, curState là một con trỏ trỏ tới một nấc. Vì vậy, loại đối tượng mà curState trỏ tới biểu thị trạng thái của hệ thống. Việc thay đổi trạng thái trong trường hợp này bao hàm việc thay đổi giá trị của con trỏ curState, tức là nó trỏ tới một nấc của một lớp khác. Vì bộ xử lý sự kiện không biết gì về trạng thái của hệ thống (tức là đối tượng trạng thái hiện thời là loại đối tượng gì) nên bắt buộc tất cả các đối tượng trạng thái phải dùng chung một giao diện. Điều này có nghĩa là tất cả các lớp đối tượng trạng thái phải kế thừa từ một lớp cơ sở chung tao ra giao diện này. Hơn nữa, nếu mỗi trạng thái được biểu diễn bằng một đối tượng thì rõ ràng là có thể diễn dịch FSM bằng một phân cấp lớp trạng thái.
Các bước cần thực hiện khi thiết kế các lớp của FSM:
- Nhận dạng tất cả các sự kiện.
- Đối với mỗi sự kiện, tạo ra một phương thức trong lớp cơ sở để xử lý sự kiện đó. Lớp cơ sở này (lớp StateRoot) tạo ra giao diện với các đối tượng trạng thái.
- Đối với mỗi trạng thái trong FSM, xác định một lớp con kế thừa từ lớp cơ sở, xác định lại các phương thức cần thiết để xử lý các sự kiện cụ thể.
- Nếu lớp được tạo ra không xác định lại một phương thức cụ thể thì nó kế thừa khả năng xử lý sự kiện từ lớp cha.
Trong phần tiếp theo, chúng ta sẽ xây dựng FSM của giao thức L2TP.
2.2 Máy trạng thái hữu hạn của giao thức L2TP
Trong phần này, chúng ta sẽ xem xét chi tiết việc phân tích cài đặt FSM cho giao thức L2TP. Việc thiết kế các FSM cho các hệ thống phức tạp đòi hỏi phải tìm cách tối ưu hoá giữa tổng số trạng thái và khối lượng công việc cần được thực hiện ở mỗi trạng thái. Các bước cần thực hiện trong quá trình thiết kế như sau:
- Nhận dạng các sự kiện.
- Nhận dạng các trạng thái.
- Lặp lại hai bước trên để tinh giảm máy trạng thái. Điều này bao hàm những thay đổi về số lượng, loại sự kiện và số lượng trạng thái.
- Nhận dạng các chuyển dịch.
2.2.1 Các sự kiện đối với L2TP
Bước đầu tiên trong việc thiết kế FSM của giao thức L2TP là nhận dạng tất cả các sự kiện có thể xảy ra. Ta thấy có thể xuất hiện các sự kiện:
- Sự kiện yêu cầu thiết lập điều khiển liên kết (tạo đường hầm)
- Sự kiện yêu cầu thiết lập phiên làm việc.
- Sự kiện xoá bỏ phiên làm việc.
- Sự kiện xoá bỏ liên kết (xoá đường hầm)
2.2.2 Các trạng thái của giao thức L2TP
2.2.2.1 C¸c tr¹ng th¸i ®iÒu khiÓn liªn kÕt (Control Connection States)
ThiÕt lËp ®iÒu khiÓn liªn kÕt ®èi víi giao thøc L2TP kh«ng ph©n biÖt gi÷a LAC vµ LNS thÕ nhng cã ph©n biÖt bªn khëi t¹o vµ bªn nhËn. Nót khëi t¹o lµ nót b¾t ®Çu qu¸ tr×nh thiÕt lËp ®êng hÇm (trong trêng x¶y ra tranh chÊp Tie Breaker, nã sÏ lµ bªn th¾ng). Do c¶ LAC lÉn LNS ®Òu cã thÓ lµ bªn khëi t¹o, sÏ cã trêng hîp x¶y ra xung ®ét.
Qu¸ tr×nh ho¹t ®éng nh sau:
LAC hoÆc LNS LAC hoÆc LNS
SCCRQ ->
<- SCCRP
SCCCN ->
<- ZLB ACK
C¸c tr¹ng th¸i liªn quan ®Õn qu¸ tr×nh thiÕt lËp ®iÒu khiÓn liªn kÕt gi÷a LAC vµ LNS bao gåm:
idle (nhµn rçi)
C¶ bªn khëi t¹o lÉn bªn nhËn ®Òu b¾t ®Çu tõ tr¹ng th¸i nµy. Bªn khëi t¹o göi mét th«ng ®iÖp SCCRQ, trong khi ®ã bªn nhËn vÉn trong tr¹ng th¸i idle cho ®Õn khi nhËn ®îc SCCRQ.
wait-ctl-reply (®îi tr¶ lêi)
Bªn khëi t¹o sÏ kiÓm tra xem liÖu cã tån t¹i mét yªu cÇu kÕt nèi nµo kh¸c t¹i nót nµy kh«ng, nÕu cã sÏ tiÕn hµnh qu¸ tr×nh xö lý xung ®ét nh ®îc m« t¶ ë trªn.
Khi th«ng ®iÖp SCCRP ®îc nhËn, nã ®îc kiÓm tra xem cã t¬ng thÝch vÒ phiªn b¶n kh«ng. NÕu nh phiªn b¶n cña bªn tr¶ lêi thÊp h¬n phiªn b¶n cña bªn yªu cÇu, phiªn b¶n thÊp h¬n sÏ ®îc dïng ®Ó xÐt. NÕu phiªn b¶n thÊp h¬n nµy ®îc chÊp nhËn, bªn khëi t¹o chuyÓn sang t×nh tr¹ng ®îc thiÕt lËp (established). NÕu phiªn b¶n thÊp h¬n nµy kh«ng ®îc chÊp nhËn, mét th«ng ®iÖp StopCCN sÏ ®îc göi ®i råi bªn khëi t¹o sÏ dõng vµ xo¸ bá ®êng hÇm.
wait-ctl-conn
§©y lµ tr¹ng th¸i chê th«ng ®iÖp SCCCN, trong khi chê ®îi th× c©u tr¶ lêi cho th¸ch thøc ®îc kiÓm tra. Sau ®ã ®êng hÇm sÏ ®îc thiÕt lËp hay xo¸ bá tuú thuéc vµo viÖc x¸c thùc thµnh c«ng hay thÊt b¹i.
established (®· thiÕt lËp)
Mét liªn kÕt ®· ®îc thiÕt lËp cã thÓ bÞ xo¸ bá bëi ®iÒu kiÖn néi bé hoÆc do nhËn ®îc mét th«ng ®iÖp Stop-Control-Connection-Notification. Trong trêng hîp do ®iÒu kiÖn néi bé, bªn khëi t¹o ph¶i göi ®i mét th«ng ®iÖp Stop-Control-Connection-Notification vµ xo¸ bá ®êng hÇm. Cßn trêng hîp bªn khëi t¹o nhËn ®îc mét th«ng ®iÖp Stop-Control-Connection-Notification, nã chØ ®¬n gi¶n ph¶i xo¸ bá ®êng hÇm.
S¬ ®å FSM:
Bªn khëi t¹o:
Wait-ctl-reply
idle
established
1 Receive SCCRP/Send StopCCN, Clean
2 Receve SCCCN/Clean
3 Receive StopCCN/Clean
Local Open/Send SCCRQ
Receive SCCRP,acc/Send SCCCN, tunnel open
Local Open/ Tunnel open
1. Receive SCCRP, not acc/Send SCCRQ
2. Receive SCCCN/Send StopSCCN,Clean
3. Receive StopCCN/Clean
1. Admin Tunnel Close/Send StopCCN,Clean
2. Receive SCCRQ,SCCRP,SCCCN/Send StopCCN,Clean
3. Receive StopCCN/Clean
Các trạng thái diễn ra tại bên khởi tạo
Wait-ctl-conn
idle
established
1. Receive SCCRQ,not acc/Send StopCCN,clean
2. Receive SopCCN/Clean
Receive SCCRQ,acc/Send SCCRP
Receive SCCCN,acc/ tunnel- open
Local Open/ tunnel- open
1. Receive SCCCN, not acc/Send StopCCN,Clean
2. Receive SCCRP,SCCRQ/Send StopCCN ,Clean
3. Receive StopCCN/Clean
1. Admin Tunnel Close/Send StopCCN,Clean
2. Receive SCCRQ,SCCRP,SCCCN/Send StopCCN,Clean
3. Receive StopCCN/Clean
Các trạng thái diễn ra tại bên nhận
2.2.2.2 Nh÷ng cuéc gäi ®Õn (Incoming Calls)
Mét yªu cÇu cuéc gäi ®Õn (Incoming Call Request) thêng ®îc göi ®i bëi LAC khi nã nhËn ®îc mét cuéc gäi ®Õn (ch¼ng h¹n, chu«ng ®iÖn tho¹i t¬ng øng reo). LAC sÏ lùa chän Session ID, Serial Number vµ chØ ra kiÓu sãng mang (bearer). C¸c modem thêng hç trî c¸c cuéc gäi kiÓu t¬ng tù (analog). C¸c cuéc gäi ISDN sÏ lµ kiÓu sè (digital) khi kh«ng cÊm dÞch vô kiÓu sè, sÏ lµ kiÓu t¬ng tù nÕu hÖ thèng cã liªn quan ®Õn c¸c modem kiÓu sè. C¸c trêng Calling Number, Called Number, Sub-address cã thÓ n»m trong th«ng ®iÖp nµy nÕu chóng ®îc chÊp nhËn ®èi víi m¹ng ®iÖn tho¹i.
Khi LAC göi ®i mét yªu cÇu cuéc gäi ®Õn, nã sÏ ®îi cho ®Õn khi nhËn ®îc tr¶ lêi tõ phÝa LNS thÕ nhng nã vÉn cã thÓ cha cÇn tr¶ lêi cuéc gäi tõ m¹ng ®iÖn tho¹i. LNS cã thÓ lùa chän ®Ó kh«ng chÊp nhËn cuéc gäi nÕu:
- Kh«ng cßn tµi nguyªn ®Ó ®iÒu khiÓn thªm mét phiªn.
- C¸c trêng ®· gäi (Called Number), ®ang gäi (Calling Number), hay ®Þa chØ phô (Sub-address) kh«ng cã trong sè c¸c user ®îc x¸c nhËn.
- DÞch vô sãng mang kh«ng ®îc chÊp nhËn.
NÕu nh LNS chän c¸ch chÊp nhËn cuéc gäi nã sÏ tr¶ lêi b»ng mét th«ng ®iÖp Incoming-Call-Reply. Khi LAC nhËn ®îc Incoming-Call-Reply, nã sÏ cè g¾ng kÕt nèi cho cuéc gäi. Cuèi cïng mét th«ng ®iÖp kÕt thóc cã thÓ ®îc truyÒn tõ LAC ®Õn LNS nh»m th«ng b¸o r»ng c¶ LAC vµ LNS ®Òu ®· s½n sµng chuyÓn ®Õn tr¹ng th¸i ®· thiÕt lËp. NÕu nh mét cuéc gäi bÞ kÕt thóc tríc khi LNS cã thÓ chÊp nhËn nã, mét th«ng b¸o chÊm døt cuéc gäi (Call-Disconnect-Notify) sÏ ®îc göi tõ LAC th«ng b¸o t×nh tr¹ng nµy.
Khi mét kh¸ch hµng gäi ®Õn cóp m¸y, cuéc gäi ®îc kÕt thóc b×nh thêng vµ LAC sÏ göi mét th«ng b¸o chÊm døt cuéc gäi (Call-Disconnect-Notify). NÕu nh LNS muèn xo¸ mét cuéc gäi, nã sÏ göi ®i mét th«ng b¸o chÊm døt cuéc gäi (Call-Disconnect-Notify) vµ xo¸ bá phiªn lµm viÖc.
Qu¸ tr×nh ho¹t ®éng nh sau:
LAC LNS
ICRQ ->
<- ICRP
ICCN ->
<- ZLB ACK
a/ Các trạng thái cuộc gọi đến ở LAC (LAC Incoming Call States)
C¸c tr¹ng th¸i liªn quan ®Õn cuéc gäi ®Õn ë LAC ®îc ®Þnh nghÜa nh sau:
idle (nhµn rçi)
LAC t×m thÊy mét cuéc gäi ®Õn trªn mét trong sè c¸c giao diÖn cña chóng. Thêng th× ®iÒu nµy cã nghÜa lµ mét ®êng truyÒn sè (analog) sÏ kªu hoÆc ISDN TE t×m thÊy mét th«ng ®iÖp Q.931. LAC sÏ b¾t ®Çu khëi t¹o ®êng hÇm vµ chuyÓn sang tr¹ng th¸i chê viÖc kh¼ng ®Þnh ®êng hÇm tån t¹i.
wait-tunnel (chê ®êng hÇm)
T¹i tr¹ng th¸i nµy mét phiªn ®ang chê sù hoµn thµnh cña mét ®iÒu khiÓn kÕt nèi hoÆc x¸c ®Þnh mét ®êng hÇm ®· tån t¹i. Khi ®êng hÇm ®îc x¸c ®Þnh lµ ®· tån t¹i, c¸c ®iÒu khiÓn liªn quan ®Õn phiªn lµm viÖc cã thÓ ®îc trao ®æi. Bíc ®Çu tiªn cña viÖc nµy lµ göi ®Õn mét Incoming-Call-Request.
wait-reply (chê tr¶ lêi)
LAC nhËn ®îc hoÆc lµ mét th«ng ®iÖp CDN th«ng b¸o r»ng LNS kh«ng chÊp nhËn cuéc gäi (cã lçi hoÆc kh«ng chÊp nhËn) th× sÏ quay trë l¹i tr¹ng th¸i nhµn rçi (idle) hoÆc lµ mét th«ng ®iÖp Incoming-Call-Reply tøc lµ cuéc gäi ®îc chÊp nhËn, LAC sÏ göi ®i mét Incoming-Call-Connected råi chuyÓn ®Õn tr¹ng th¸i ®· liªn kÕt.
established (®· liªn kÕt)
D÷ liÖu ®îc trao ®æi qua ®êng hÇm. Cuéc gäi cã thÓ bÞ xo¸ bá v× c¸c lý do sau:
- Mét sù kiÖn x¶y ra trªn giao diÖn ®· liªn kÕt: LAC göi ®i mét th«ng ®iÖp Call-Disconnect-Notify.
- NhËn ®îc mét th«ng ®iÖp Call-Disconnect-Notify: LAC sÏ dõng l¹i vµ xo¸ bá cuéc gäi.
- Mét lý do côc bé: LAC göi ®i mét th«ng ®iÖp Call-Disconnect-Notify.
S¬ ®å FSM:
Wait-tunnel
idle
established
Receive ICCN,ICRP,CDN/ none
Bearer Ring/Initiate tunnel-open
Receive ICRP,acc/Send ICCN
1. Receive ICRP, not acc/Send CDN,Clean
2. Receive CDN,ICCN/Clean
3. Local close request or line drop/Send CDN,Clean
1. Receive CDN/Clean
2. Receive ICRQ,ICRP,ICCN/Send CDN,Clean
3. Bearer line drop/Send CDN, Clean
Các trạng thái gọi đến ở LAC
Wait-reply
Bearer line drop/Clean
tunnel- open/Send ICRQ
b/ Các trạng thái cuộc gọi đến ở LNS (LNS Incoming Call States)
C¸c tr¹ng th¸i liªn quan ®Õn cuéc gäi ®Õn ë LNS ®îc ®Þnh nghÜa nh sau:
idle (nhµn rçi)
LNS nhËn ®îc mét th«ng ®iÖp Incoming-Call-Request. NÕu cuéc gäi ®Õn kh«ng ®îc chÊp nhËn, mét th«ng ®iÖp Call-Disconnect-Notify sÏ ®îc göi l¹i cho LAC vµ LNS vÉn ë tr¹ng th¸i nhµn rçi. NÕu cuéc gäi ®Õn ®îc chÊp nhËn, LNS sÏ göi cho LAC mét th«ng ®iÖp Incoming-Call-Reply. Phiªn lµm viÖc sÏ chuyÓn sang tr¹ng th¸i chê kÕt nèi (wait-connect).
wait-connect (chê kÕt nèi)
NÕu phiªn lµm viÖc vÉn liªn kÕt víi LAC, LAC sÏ göi th«ng ®iÖp Incoming-Call-Connected ®Õn LNS vµ LNS chuyÓn sang tr¹ng th¸i ®· liªn kÕt (established). LAC còng cã thÓ göi ®i th«ng ®iÖp Call-Disconnect-Notify nh»m th«ng b¸o r»ng cuéc gäi kh«ng ®îc liªn kÕt.
established (®· liªn kÕt)
Phiªn lµm viÖc cã thÓ ®îc kÕt thóc khi nhËn ®îc mét th«ng ®iÖp Call-Disconnect-Notify göi tõ LAC hoÆc khi göi ®i th«ng ®iÖp Call-Disconnect-Notify. ViÖc xo¸ bá sÏ ®îc tiÕn hµnh ë c¶ 2 bªn mµ kh«ng quan t©m bªn nµo ®· cã yªu cÇu nµy.
Sơ đồ FSM:
Wait-connect
idle
established
1 Receive ICRQ,not acc/Send CDN, Clean
2 Receve ICRP/Send CDN, Clean
3 Receive ICCN/Clean
4Receive CDN/Clean
Receive ICRQ,acc/Send ICRP
Receive ICCN,acc/prepare for data
1. Receive ICCN, not acc/Send CDN,Clean
2. Receive ICRQ,ICRP/Send CDN,Clean
3. Receive CDN/Clean
4. Local Close Request/Send CDN, Clean
1. Receive CDN/Clean
2. Local Close Request/ Send CDN,Clean
3. Receive ICRQ, ICRP, ICCN/Send CDN,Clean
Các trạng thái gọi đến ở LAC
2.2.2.3 Các cuộc gọi đi (Outgoing Calls)
Mét cuéc gäi ®i ®îc khëi ®Çu bëi LNS, nã híng dÉn LAC thùc hiÖn mét cuéc gäi. Cã 3 lo¹i th«ng ®iÖp ®èi víi cuéc gäi ®i (outgoing call): Outgoing-Call-Request, Outgoing-Call-Reply, vµ Outgoing-Call-Connected. LNS göi ®i th«ng ®iÖp yªu cÇu cuéc gäi ®i (Outgoing-Call-Request) chØ râ sè ®iÖn tho¹i cÇn gäi ®Õn, ®Þa chØ phô còng nh c¸c th«ng sè kh¸c. LAC cÇn ph¶i tr¶ lêi yªu cÇu cuéc gäi ®i nµy b»ng th«ng ®iÖp tr¶ lêi cuéc gäi ®i (Outgoing-Call-Reply) khi LAC nhËn thÊy nã cã ®ñ tµi nguyªn ®Ó thùc hiÖn cuéc gäi vµ cuéc gäi nµy lµ hîp lÖ. Khi cuéc gäi ®îc LAC hoµn thµnh, nã sÏ göi th«ng ®iÖp Outgoing-Call-Connected ®Õn LNS nh»m th«ng b¸o c¸c kÕt qu¶ cuèi cïng cña cuéc gäi ®ã.
Qu¸ tr×nh thùc hiÖn:
LAC LNS
<- OCRQ
OCRP ->
OCCN ->
<- ZLB ACK
a/ Các trạng thái cuộc gọi đi ở LAC (LAC Outgoing Call States)
C¸c tr¹ng th¸i liªn quan ®Õn cuéc gäi ®i ë LAC ®îc ®Þnh nghÜa nh sau:
idle (nhµn rçi)
NÕu Outgoing-Call-Request nhËn ®îc cã lçi, LAC tr¶ lêi b»ng th«ng ®iÖp Call-Disconnect-Notify. NÕu kh«ng, thiÕt lËp mét kªnh vËt lý vµ göi tr¶ th«ng ®iÖp Outgoing-Call-Reply. TiÕn hµnh cuéc gäi vµ chuyÓn sang tr¹ng th¸i wait-cs-answer.
wait-cs-answer (chê tr¶ lêi)
NÕu cuéc gäi kh«ng ®îc hoµn thµnh hoÆc thêi gian bÞ hÕt trong qu¸ tr×nh chê cuéc gäi hoµn thµnh, LAC sÏ göi mét th«ng ®iÖp Call-Disconnect-Notify th«ng b¸o t×nh tr¹ng lçi råi chuyÓn sang tr¹ng th¸i nhµn rçi. NÕu nh m¹ch ®îc nèi vµ c¸c khung phï hîp ®îc t×m thÊy th× nã sÏ göi th«ng ®iÖp Outgoing-Call-Connected cho biÕt kÕt nèi ®· thµnh c«ng vµ chuyÓn sang tr¹ng th¸i ®· liªn kÕt.
established (®· liªn kÕt)
NÕu LAC nhËn ®îc mét th«ng ®iÖp Call-Disconnect-Notify, phiªn lµm viÖc sÏ bÞ ngng. NÕu nh cuéc gäi bÞ ngng bëi kh¸ch hµng hay do giao diÖn cuéc gäi, th«ng ®iÖp Call-Disconnect-Notify cÇn ®îc göi cho LNS . Bªn göi th«ng ®iÖp Call-Disconnect-Notify sÏ chuyÓn sang tr¹ng th¸i nhµn rçi sau khi biÕt ®îc th«ng ®iÖp ®ã ®· ®îc truyÒn thµnh c«ng.
S¬ ®å FSM:
Wait -cs-answer
idle
established
1 Receive OCRQ,not acc/Send CDN, Clean
2 Receive OCRP/Send CDN,Clean
3 Receive OCCN,CDN/ Clean
Receive OCRQ,acc/Send OCRP,Open bearer
Bearer answer/Send OCCN
1.Bearer failure/Send CDN,Clean
2.Receive OCRQ,OCRP,OCCN/Send CDN,Clean
3.Receive CDN/Clean
1. Receive OCRQ,ỎCP,OCCN/Send CDN,Clean
2. Receive CDN/Clean
3. Bearer line drop/Send CDN,Clean
Các trạng thái gọi đi ở LAC
b/ Các trạng thái cuộc gọi đi ở LNS (LNS Outgoing Call States)
C¸c tr¹ng th¸i liªn quan ®Õn cuéc gäi ®i ë LNS ®îc ®Þnh nghÜa nh sau:
idle (nhµn rçi), wait-tunnel (chê ®êng hÇm)
Khi mét cuéc gäi ®i ®îc b¾t ®Çu, tríc tiªn ®êng hÇm sÏ ®îc thiÕt lËp, c¸c tr¹ng th¸i nµy còng gièng nh c¸c tr¹ng th¸i idel vµ wait-tunnel ë LAC trong c¸c cuéc gäi ®Õn. Sau khi ®êng hÇm ®· ®îc thiÕt lËp, th«ng ®iÖp Outgoing-Call-Request ®îc göi ®Õn cho LAC vµ phiªn lµm viÖc chuyÓn sang tr¹ng th¸i wait-reply (chê tr¶ lêi).
wait-reply (chê tr¶ lêi)
NÕu LNS nhËn ®îc th«ng ®iÖp Call-Disconnect-Notify hoÆc mét lçi nµo ®ã xuÊt hiÖn th× phiªn lµm viÖc bÞ xo¸ vµ quay trë l¹i tr¹ng th¸i nhµn rçi. NÕu nhËn ®îc Outgoing-Call-Reply th× cuéc gäi ®îc tiÕp tôc vµ phiªn lµm viÖc chuyÓn sang tr¹ng th¸i wait-connect (chê kÕt nèi).
wait-connect (chê kÕt nèi)
NÕu LNS nhËn ®îc th«ng ®iÖp Call-Disconnect-Notify, cuéc gäi sÏ thÊt b¹i, phiªn lµm viÖc sÏ bÞ ngng vµ quay trë l¹i tr¹ng th¸i nhµn rçi. NÕu nhËn ®îc Outgoing-Call-Connected th× cuéc gäi ®· thµnh c«ng vµ phiªn lµm viÖc cã thÓ b¾t ®Çu tiÕn hµnh trao ®æi d÷ liÖu.
established (®· liªn kÕt)
NÕu LNS nhËn ®îc th«ng ®iÖp Call-Disconnect-Notify, cuéc gäi ®· bÞ kÕt thóc do nh÷ng lý do ®îc chØ ra ë Cause vµ Result Code, phiªn lµm viÖc quay l¹i tr¹ng th¸i nhµn rçi. NÕu tù LNS chän lùa viÖc kÕt thóc phiªn lµm viÖc, nã sÏ göi ®i th«ng ®iÖp Call-Disconnect-Notify tíi LAC råi xo¸ bá phiªn lµm viÖc ®ã vµ chuyÓn sang tr¹ng th¸i nhµn rçi (idle).
S¬ ®å FSM:
Wait-tunnel
idle
established
1. Receive OCCN,OCRP,CDN/Clean
2. Receive CDN/Clean
Local open/Initiate tunel-open
Receive ICRP,acc/Send ICCN
1. Receive OCRP, not acc/Send CDN,Clean
2. Receive OCCN,OCRQ/Send CDN,Clean
3. Receive CDN/Clean
4. Local close request/ Send CDN,Clean
1. Receive CDN/Clean
2. Local Close Request/Send CDN,Clean
Các trạng thái gọi đi ở LNS
Wait-reply
Local Close Request/Clean
tunnel- open/Send ICRQ
Wait-connect
Receive OCCN
1. Receive OCRQ,ỎCP/Send CDN,Clean
2. Receive CDN/Clean
3. Receive OCRQ,ỎCP,OCCN/Send CDN,Clean
4. Local close Request/Send CDN,Clean
2.2.2.4 Ngưng kết nối đường ngầm (Tunnel Disconnection)
ViÖc ngng kÕt nèi cña ®êng hÇm diÔn ra khi LAC hoÆc LNS göi ®i th«ng ®iÖp Stop-Control-Connection-Notification. Bªn göi th«ng ®iÖp nµy sÏ ph¶i chê mét kho¶ng thêi gian nhÊt ®Þnh ®Ó biÕt ®îc kÕt qu¶ truyÒn cña th«ng ®iÖp nµy tríc khi ®a ra c¸c th«ng tin ®iÒu khiÓn cho ®êng hÇm. Bªn nhËn ®îc th«ng ®iÖp nµy ph¶i göi th«ng b¸o ®· nhËn ®îc, sau ®ã ®a ra c¸c th«ng tin ®iÒu khiÓn thÝch hîp.
Quá trình hoạt động:
LAC hoÆc LNS LAC hoÆc LNS
StopCCN ->
<- ZLB ACK
II. Chương trình mô phỏng giao thức L2TP
2.1 C
Danh s¸ch c¸c thuËt ng÷
- CÆp gi¸ trÞ thuéc tÝnh (AVP: Attribute Value Pair) lµ mét cÆp gi¸ trÞ-thuéc tÝnh cã mèi quan hÖ mét-mét víi nhau. C¸c AVP t¹o nªn c¸c th«ng ®iÖp ®iÒu khiÓn nh»m thiÕt lËp, vËn hµnh hay xo¸ bá c¸c ®êng hÇm.
- Cuéc gäi (Call) lµ mét kÕt nèi (hay ®ang kÕt nèi) gi÷a mét hÖ thèng tõ xa víi mét LAC. VÝ dô nh mét cuéc gäi ®iÖn th«ng qua PSTN. Mét cuéc gäi (®Õn hoÆc ®i) ®îc cho lµ thµnh c«ng khi thiÕt lËp ®îc mét phiªn lµm viÖc gi÷a hÖ thèng tõ xa víi LAC t¬ng øng víi mét ®êng hÇm ®· tån t¹i gi÷a LAC víi LNS tríc ®ã.
- Sè ®îc gäi (Called Number) lµ sè mµ ngêi gäi ®ang cè g¾ng ®Ó gäi tíi.
- Sè ®ang gäi (Calling Number) lµ sè mµ ngêi gäi ®ang gäi.
- CHAP (Challenge Handshake Authentication Protocol) (RFC1994) lµ mét giao thøc kiÓm ®Þnh tÝnh hîp lÖ cña mét m¸y truy cËp dùa trªn ph¬ng ph¸p hái/®¸p.
- §iÒu khiÓn kÕt nèi (Control Connection) lµ c¸c ®iÒu khiÓn cã tÝn hiÖu trong cïng ®êng truyÒn nh»m ®iÒu khiÓn viÖc thiÕt lËp, ho¹t ®éng hay huû bá c¸c phiªn lµm viÖc còng nh c¸c ®êng hÇm.
- Th«ng ®iÖp ®iÒu khiÓn (Control Messages) ®îc trao ®æi gi÷a mét cÆp LAC- LNS. Nã ®iÒu khiÓn c¸c ho¹t ®éng liªn quan ®Õn ®êng hÇm.
- DSLAM (Digital Subscriber Line Access Module) lµ mét thiÕt bÞ m¹ng ®îc dïng ®Ó triÓn khai c¸c dÞch vô DSL. Nã thêng lµ mét bé kÕt nèi c¸c ®êng DSL riªng biÖt ®îc l¾p ®Æt t¹i trô së chÝnh (CO: Central Office).
- Cuéc gäi ®Õn (Incoming Call) lµ mét cuéc gäi ®Õn mét LAC khi mµ LAC nµy ®· t¹o ®êng hÇm víi LNS.
- Cuéc gäi ®i (Outgoing Call): mét cuéc gäi ®îc thùc hiÖn bëi LAC theo yªu cÇu cña LNS.
- LAC (L2TP Access Concentrator) lµ mét nót ho¹t ®éng nh lµ mét ®iÓm cuèi trªn ®êng hÇm vµ ngang hµng víi mét LNS. LAC lµ trung gian gi÷a LNS víi mét hÖ thèng kÕt nèi tõ xa, nã nhËn hoÆc göi ®i c¸c gãi tin cho hai hÖ thèng nµy. C¸c gãi tin ®îc göi tõ LAC ®Õn LNS cÇn ®îc thùc hiÖn dùa trªn c¬ chÕ ®êng hÇm (sÏ ®îc m« t¶ trong tµi liÖu nµy). Mèi liªn kÕt gi÷a LAC víi hÖ thèng kÕt nèi tõ xa cã thÓ lµ côc bé hoÆc lµ liªn kÕt PPP.
- LNS (L2TP Network Server) lµ mét nót ho¹t ®éng nh lµ mét ®iÓm cuèi trªn ®êng hÇm vµ ngang hµng víi mét LAC. LNS lµ ®iÓm kÕt thóc vÒ mÆt logic trong liªn kÕt PPP víi mét hÖ truy cËp tõ xa th«ng qua ®êng hÇm ®îc t¹o ra bëi LAC.
- MD (Management Domain) qu¶n lý tªn miÒn. Mét m¹ng hay mét liªn m¹ng ho¹t ®éng díi sù ®iÒu khiÓn cña mét tæ chøc, mét chÝnh s¸ch hay mét hÖ thèng nµo ®ã. VÝ dô, qu¶n lý cña LNS cã thÓ lµ tËp ®oµn cã server ®ã, cßn qu¶n lý LAC cã thÓ lµ nhµ cung cÊp dÞch vô Internet t¹i ®Þa ph¬ng.
- ThuËt ng÷ "Message" trong tµi liÖu nµy ®îc dÞch lµ "th«ng ®iÖp" hoÆc "gãi tin".
- NAS (Network Access Server) m¸y chñ truy cËp. Lµ mét thiÕt bÞ cung cÊp kh¶ n¨ng truy cËp vµo m¹ng néi bé th«ng qua c¸c hÖ thèng truy cËp tõ xa sö dông ph¬ng ph¸p PSTN. Mét NAS cã thÓ xem nh mét LAC, LNS hoÆc c¶ hai.
- Peer (§iÓm), khi dïng víi L2TP nã cã thÓ ®îc thay thÕ cho c¶ LAC lÉn LNS. C¸i ngang hµng víi LAC lµ LNS vµ ngîc l¹i. Khi dïng trong PPP, nã lµ mét ®Çu cña kÕt nèi.
- HÖ thèng tõ xa (Remote System) lµ c¸c hÖ thèng ®Çu cuèi hay c¸c bé ®Þnh tuyÕn (router) ®îc nèi vµo c¸c m¹ng truy cËp tõ xa. Chóng cã thÓ lµ n¬i khëi t¹o còng nh nhËn c¸c cuéc gäi. §©y còng cã thÓ coi lµ c¸c kh¸ch hµng dial-up hoÆc kh¸ch hµng dial-up ¶o.
- Phiªn lµm viÖc (Session): L2TP lµ mét giao thøc cã liªn kÕt. LNS vµ LAC duy tr× tr¹ng th¸i cho mçi cuéc gäi ®îc ph¸t ®éng hay nhËn tõ LAC. Mét phiªn lµm viÖc L2TP ®îc thùc hiÖn gi÷a LAC vµ LNS khi mét liªn kÕt ®iÓm- ®iÓm gi÷a mét hÖ thèng tõ xa ®Õn mét LNS xuÊt hiÖn. C¸c gãi d÷ liÖu liªn quan ®Õn liªn kÕt PPP ®îc göi qua ®êng hÇm gi÷a LAC vµ LNS. Cã mét liªn kÕt mét- mét gi÷a viÖc thùc hiÖn mét phiªn L2TP víi viÖc thùc hiÖn mét cuéc gäi.
- §êng hÇm (Tunnel): Mét ®êng hÇm tån t¹i víi mçi cÆp LNS-LAC. Mét ®êng hÇm bao gåm mét ®iÒu khiÓn kÕt nèi (Control Connection) vµ c¸c phiªn L2TP (cã thÓ kh«ng cã phiªn nµo). §êng hÇm ®îc dïng ®Ó truyÒn c¸c gãi tin PPP ®· ®îc ®ãng gãi vµ c¸c gãi tin ®iÒu khiÓn gi÷a LNS víi LAC.
- Gãi tin ZLB (Zero-Length Body Message) lµ c¸c gãi tin ®iÒu khiÓn chØ cã phÇn L2TP header. Gãi tin ZLB ®îc dïng ®Ó kiÓm tra ®é tin cËy cña kªnh truyÒn.
- Tæ chøc IETF (Internet Engineering Task Force) lµ mét céng ®ång quèc tÕ réng lín cña c¸c nhµ thiÕt kÕ m¹ng, c¸c nhµ ®iÒu hµnh, c¸c nhµ cung cÊp, vµ c¸c nhµ nghiªn cøu cïng quan t©m ®Õn viÖc ph¸t triÓn cña kiÕn tróc Internet vµ viÖc ®iÒu hµnh m¹ng Internet. Tæ chøc nµy cung cÊp c¸c dÞch vô kü thuËt vµ ph¸t triÓng m¹ng Internet vµ t¹o, thö nghiÖm, hiÖn thùc c¸c tiªu chuÈn Internet ®· ®îc c«ng nhËn vµ ph¸t hµnh bëi ISOC.
- RFC (Request For Comment) lµ c«ng bè chÝnh thøc cña Internet, ®îc dïng kÓ tõ n¨m 1969 ®Ó m« t¶ vµ ®a ra c¸c diÔn gi¶i vÒ giao thøc, thñ tôc, ch¬ng tr×nh vµ kh¸i niÖm.
Tài liệu tham khảo.
1. NguyÔn Thóc H¶i, Gi¸o tr×nh m¹ng m¸y tÝnh vµ c¸c hÖ thèng më, NXB Gi¸o dôc, 8/2000
2. NguyÔn TiÕn, §Æng Xu©n H¬ng, NguyÔn V¨n Hå, Gi¸o tr×nh c¨n b¶n vÒ m¹ng, 6/1999
3. Tanenbaum, Computer Network, 2/2000
4. W. Simpson, The Point-to-Point Protocol (PPP), RFC 1661, 7/1994.
5. W. Simpson, PPP Challenge Handshake Authentication Protocol (CHAP), RFC 1994, 8/1996.
6. A. Valencia, M. Littlewood vµ T. Kolar, Cisco Layer Two Forwarding (Protocol), RFC 2341, 5/1998.
7. K. Hamzeh, G. Pall, W. Verthein, J. Taarud, W. Little, vµ G. Zorn, Point-to-Point Tunneling Protocol (PPTP), RFC 2637, 7/1999
8.W. Tomsley, Layer Two Tunneling Protocol (L2TP), RFC 2661, 8/1999.
Các file đính kèm theo tài liệu này:
- bao cao.doc