隧道技術及L2TP隧道簡介
隧道協議有很多種,不同的隧道協議工作在不同的TCP/IP層
隧道技術(Tunneling)
隧道技術的基本過程是在源局域網與公網的接口處將數據(可以是ISO 七層模型中的數據鏈路層或網絡層數據)作為負載封裝在一種可以在公網上傳輸的數據格式中,在目的局域網與公網的接口處將數據解封裝,取出負載。被封裝的數據包在互聯網上傳遞時所經過的邏輯路徑被稱為“隧道”(Tunnel)。
要使數據順利地被封裝、傳送及解封裝,通信協議是保證的核心。目前VPN隧道協議主要有4種:點到點隧道協議、第二層隧道協議、網絡層隧道協議以及SOCKS v5協議。其中,PPTP和L2TP工作在數據鏈路層,IPSec工作在網絡層,SOCK v5工作在會話層。各協議工作在TCP/IP層,不同的網絡環境適合不同的協議,在選擇VPN產品時,應該注意選擇。
IPSec協議是一個範圍廣泛、開放的VPN安全協議,工作在OSI模型中的第三層——網絡層。
IPSec協議實際上是一套協議而不是一個單個的協議。
IPSecL2TPPPTP
L2TP隧道(L2TP Tunnel)是指在第二層隧道協議(L2TP)端點之間的邏輯鏈接:LAC(L2TP接入聚合器)和LNS(L2TP網絡服務器)。當LNS是服務器時,LAC是隧道的發起人,它等待新的隧道。一旦一個隧道被確立,在這個點之間的新通信將是雙向的。為了對網絡有用,高層協議例如點對點協議(PPP)然後通過L2TP隧道。
l2tp協議綜合了pptp協議和l2f(layer 2 forwarding)協議的優點,並且支持多路隧道,這樣可以使用戶同時訪問internet和企業網。
以netscreen SSG5配置L2TP
實驗效果圖:

實驗目的: 通過L2TP方式撥號到IDC機房ssg5,自動獲取192.168.24.0/24網段的ip地址,使192.168.24.0/24這個網段能夠訪問到COMPANY內部網絡與IDC機房內部網絡,並通過IDC網絡環境連接到互聯網
創建一個撥號VPN客戶端地址段
命名為dial-up-vpn-addr ip段:192.168.24.0/24 zone:trust
創建一個IP地址池
命名ip pool:vpn-ip-pool 從192.168.24.20.20到192.168.24.40
創建一個test1用戶,選擇L2TP User,並添加user password,並關聯IP地址池(vpn-ip-pool)
創建一個L2TP-vpn用戶組,並把available members下面test1賬號添加到左邊group members
修改L2TP隧道的默認設置,關聯IP地址池(vpn-ip-pool),選擇chap的ppp認證及添加DNS
在tunnel頁面選擇dialup group並以剛創建的L2TP-vpn作為撥號組,並選擇外網端口Ethernet0/0,並關聯IP地址池(vpn-ip-pool),Tunnel的name為YS_VPN,由於截圖沒把name截出來,大家注意一下
創建一條策略from untrust to trust,源地址為Dial-Up VPN,由於撥號進來不只要訪問本地網絡還有公司網絡,所以目的地址:ANY 並在Action修改為:tunnel,L2TP:YS_VPN,然後,在logging 與at session beginning打 √

接下來設置撥號網段與公司網段的策略路由,如下圖是在IDC ssg5上設置,COMPANY端也要設置,具體兩端基於策略路由設置詳見以下網址:

最後設置撥號網段可以訪問到互聯網,如下圖,指定撥號網段與目標地址為any

撥號連接並測試是否ping通本地
1. 本人pc的os是win2008,不需要設置任何選項可以直接撥號上去並ping通本地ip
測試結果:

說明已經成功生效了
2. 如果os是xp win7 win2003 需要設置註冊表並 重新啟動設備
直接把以下代碼複製到文本另存為.reg後綴名並運行,或者運行附件L2TP.reg就OK
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters]
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
72,00,61,00,73,00,6d,00,61,00,6e,00,73,00,2e,00,64,00,6c,00,6c,00,00,00
"Medias"=hex(7):72,00,61,00,73,00,74,00,61,00,70,00,69,00,00,00,00,00
"CustomDLL"=hex(7):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,\
20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,4d,00,53,00,4e,00,5c,00,4d,00,53,\
00,4e,00,43,00,6f,00,72,00,65,00,46,00,69,00,6c,00,65,00,73,00,5c,00,63,00,\
75,00,73,00,74,00,64,00,69,00,61,00,6c,00,2e,00,64,00,6c,00,6c,00,00,00,00,\
00
"ServiceDllUnloadOnStop"=dword:00000001
"AllowL2TPWeakCrypto"=dword:00000000
"AllowPPTPWeakCrypto"=dword:00000000
"KeepRasConnections"=dword:00000000
"ProhibitIpSec"=dword:00000001
"AllocatedLuids"=hex:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters\Quarantine]
"AutoRefreshEnabled"=dword:00000000
"AutoRefreshTimeout"=dword:01808580
"Enabled"=dword:00000001
"WorkItemTimeout"=dword:00000bb8
接著在設置vpn屬性--安全—高級—設置
數據加密:可選加密或者加密
質詢握手身份驗證協議(CHAP):打勾
Win7 還要選擇L2TP/IPSEC
注意事項:
1.後期多添加了幾個IDC機房網段,發現撥號獲取的ip ping不到192.168.31.0網段,配置沒錯,查看了策略的配置如下:

後來調整了策略ID 15與18 就OK
2.撥號上來的ip發現上不了網,之前一直都正常,後來改了個DNS的ip為8.8.8.8就OK

本文出自 「 技術在於折騰」 博客,請務必保留此出處 http://viong.blog.51cto.com/844766/477275