二層隧道協議L2TP(Layer 2 Tunneling Protocol)是虛擬私有撥號網VPDN(Virtual Private Dial-up Network)隧道協議的一種,擴展了點到點協議PPP(Point-to-Point Protocol)的應用,是遠程撥號用戶接入企業總部網絡的一種重要***技術
L2TP經過撥號網絡,基於PPP的協商,創建企業分支用戶到企業總部的隧道,使遠程用戶能夠接入企業總部。PPPoE(PPP over Ethernet)技術更是擴展了L2TP的應用範圍,經過以太網絡鏈接Internet,創建遠程移動辦公人員到企業總部的L2TP隧道
VPDN有如下3種經常使用的隧道技術:
點到點隧道協議PPTP(Point-to-Point Tunneling Protocol)
二層轉發L2F(Layer 2 Forwarding)
二層隧道協議L2TP(Layer 2 Tunneling Protocol)
L2TP集合了PPTP和L2F兩種協議的優勢,目前已被普遍接受,主要應用在單個或少數遠程終端經過公共網絡接入企業內聯網的須要安全
L2TP訪問集中器LAC(L2TP Access Concentrator)是交換網絡上具備PPP和L2TP處理能力的設備。LAC根據PPP報文中所攜帶的用戶名或者域名信息,和LNS創建L2TP隧道鏈接,將PPP協商延展到LNS服務器
L2TP網絡服務器LNS(L2TP Network Server)是終止PPP會話的一端,經過LNS的認證,PPP會話協商成功,遠程用戶能夠訪問企業總部的資源。對L2TP協商,LNS是LAC的對端設備,即LAC和LNS創建了L2TP隧道;對PPP,LNS是PPP會話的邏輯終止端點,即PPP終端和LNS創建了一條點到點的虛擬鏈路
LNS位於企業總部私網與公網邊界,一般是企業總部的網關設備。必要時,LNS還兼有網絡地址轉換(NAT)功能,對企業總部網絡內的私有IP地址與公共IP地址進行轉換網絡
靈活的身份驗證機制以及高度的安全性
L2TP使用PPP提供的安全特性(如PAP、CHAP),對接入用戶進行身份認證
L2TP定義了控制消息的加密傳輸方式,支持L2TP隧道的認證
L2TP對傳輸的數據不加密,但能夠和因特網協議安全協議IPSec(Internet Protocol Security)結合應用,爲數據傳輸提供高度的安全保證
多協議傳輸
L2TP傳輸PPP數據包,PPP能夠傳輸多種協議報文,因此L2TP能夠在IP網絡,幀中繼永久虛擬電路(PVCs),X.25虛擬電路(VCs)或ATM VCs網絡上使用
支持RADIUS(Remote Authentication Dial-in User Service)服務器的驗證
L2TP對接入用戶不只支持本地認證,還支持將撥號接入的用戶名和密碼發往RADIUS服務器進行認證,爲企業管理接入用戶提供了更多的選擇
支持私網地址分配
應用L2TP的企業總部網關,能夠爲遠程用戶動態分配私網地址
可靠性
L2TP協議支持備份LNS,當一個主LNS不可達以後,LAC能夠與備份LNS創建鏈接,加強了***服務的可靠性併發
PPP終端:IP數據報文進行PPP(鏈路層)封裝,發送報文
LAC:收到PPP報文後,根據報文攜帶的用戶名或者域名判斷接入用戶是否爲VPDN用戶是VPDN用戶:對PPP報文進行L2TP封裝,根據LNS的公網地址,再對L2TP報文進行UDP和IP封裝。封裝後的報文最外層爲公網IP地址,通過公網路由轉發到達LNS
非VPDN用戶:對PPP報文進行PPP解封裝,此時LAC爲PPP會話的終止節點
LNS:收到L2TP報文後,依次解除外層的IP封裝、L2TP封裝、PPP封裝,獲得PPP承載的信息,即PPP終端發送的IP數據報文。根據報文中的目的地址,查找路由表使報文達到企業總部的目的主機
企業總部迴應分支用戶時,迴應報文到達LNS後查找路由表,根據轉發接口進行L2TP處理,報文封裝的過程和分支到總部一致ide
L2TP傳輸PPP報文前,須要創建L2TP隧道和會話的鏈接。對於首次發起的L2TP鏈接,有以下流程:
創建L2TP隧道鏈接
LAC收到遠程用戶的PPP協商請求時,LAC向LNS發起L2TP隧道請求。LAC和LNS之間經過L2TP的控制消息,協商隧道ID、隧道認證等內容,協商成功後則創建起一條L2TP隧道,由隧道ID進行標識
創建L2TP會話鏈接
若是L2TP隧道已存在,則在LAC和LNS之間經過L2TP的控制消息,協商會話ID等內容,不然先創建L2TP隧道鏈接。會話中攜帶了LAC的LCP協商信息和用戶認證信息,LNS對收到的信息認證經過後,則通知LAC會話創建成功。L2TP會話鏈接由會話ID進行標識
傳輸PPP報文
L2TP會話創建成功後,PPP終端將數據報文發送至LAC,LAC根據L2TP隧道和會話ID等信息,進行L2TP報文封裝,併發送到LNS,LNS進行L2TP解封裝處理,根據路由轉發表發送至目的主機,完成報文的傳輸測試
LAC設備是電腦上面的一個***客戶端軟件 SecoClient軟件
LNS設備是ensp當中的USG5500設備 S1爲S5700設備加密
LNS設備配置(用USG5500設備模擬)3d
# interface GigabitEthernet0/0/0 alias GE0/MGMT ip address 212.1.1.1 255.255.255.0 service-manage enable service-manage ping permit # interface GigabitEthernet0/0/1 ip address 192.168.1.1 255.255.255.0 service-manage enable service-manage ping permit # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet0/0/1 # firewall zone untrust set priority 5 add interface GigabitEthernet0/0/0 # firewall zone dmz set priority 50 # [LNS]ip route-static 10.1.1.0 255.255.255.0 192.168.1.2 [LNS]firewall packet-filter default permit all ---放行全部安全策略 00:01:39 2020/02/28 Warning:Setting the default packet filtering to permit poses security risks. You are advised to configure the security policy based on the actual data flows. Ar e you sure you want to continue?[Y/N]y
S1設備的配置code
# vlan batch 10 20 # interface Vlanif10 ip address 192.168.1.2 255.255.255.0 # interface Vlanif20 ip address 10.1.1.254 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 20 # ip route-static 172.16.123.0 255.255.255.0 192.168.1.1 #
測試一下LNS的內網服務器的連通blog
[LNS]ping 10.1.1.100 23:59:06 2020/02/27 PING 10.1.1.100: 56 data bytes, press CTRL_C to break Reply from 10.1.1.100: bytes=56 Sequence=1 ttl=127 time=260 ms Reply from 10.1.1.100: bytes=56 Sequence=2 ttl=127 time=90 ms Reply from 10.1.1.100: bytes=56 Sequence=3 ttl=127 time=220 ms Reply from 10.1.1.100: bytes=56 Sequence=4 ttl=127 time=60 ms Reply from 10.1.1.100: bytes=56 Sequence=5 ttl=127 time=150 ms --- 10.1.1.100 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 60/156/260 ms [LNS]
測試一下LNS的外網用戶的連通
[LNS]ping 212.1.1.254 23:59:35 2020/02/27 PING 212.1.1.254: 56 data bytes, press CTRL_C to break Reply from 212.1.1.254: bytes=56 Sequence=1 ttl=128 time=190 ms Reply from 212.1.1.254: bytes=56 Sequence=2 ttl=128 time=110 ms Reply from 212.1.1.254: bytes=56 Sequence=3 ttl=128 time=160 ms Reply from 212.1.1.254: bytes=56 Sequence=4 ttl=128 time=50 ms Reply from 212.1.1.254: bytes=56 Sequence=5 ttl=128 time=110 ms --- 212.1.1.254 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 50/124/190 ms [LNS]
配置本地用戶名和密碼,做爲VPDN用戶信息保存在設備中,用於驗證接入的遠程用戶 配置本地用戶類型,L2TP協議基於PPP協商,須要指定用戶類型爲ppp 用於爲遠程用戶分配地址
# aaa local-user key password cipher Huawei@123 local-user key service-type ppp ip pool 1 172.16.123.100 172.16.123.200 #
須要在S1設備上寫到達172.16.123.0網段的靜態路由
ip route-static 172.16.123.0 255.255.255.0 192.168.1.1
全局使能L2TP功能 建立VT虛擬接口模板 配置PPP認證方式爲chap
# l2tp enable # interface Virtual-Template1 ppp authentication-mode chap alias Virtual-Template1 ip address 1.1.1.1 255.255.255.0 remote address pool 1 #
須要將Virtual-Template1加入到安全區域當中
# firewall zone untrust set priority 5 add interface GigabitEthernet0/0/0 add interface Virtual-Template1 #
配置L2TP組做爲LNS側,響應LAC發起的鏈接請求
配置L2TP隧道的密碼,須要和LNS保持一致。缺省狀況下,L2TP使能了隧道認證功能,未配置隧道認證字
配置隧道名稱,用於發起L2TP鏈接時,LNS根據LAC的隧道名稱接入。缺省狀況下,若是未指定隧道名稱,則設備名稱做爲隧道名稱
# l2tp-group 1 allow l2tp virtual-template 1 tunnel password cipher 123456 tunnel name LNS #
在華爲官網上面下載SecoClient軟件
https://support.huawei.com/enterprise/zh/software/22854327-ESW2000009406
在外網用戶電腦ping公司內網服務器
在LNS設備的G0/0/0接口抓包和G0/0/1接口抓包