這是我多年以前學習的防火牆的時候學到的文章,是華為官方強叔的分享,文章由淺入深,非常适合初學者,我學習了之後受益匪淺,現在整理一下分享給頭條的夥伴們,希望對IT技術感興趣的初學者朋友們可以從中有所收獲。
正文如下:
現在大家普遍對PC、PAD或手機上的各種客戶端不太陌生了,最常見的是PPPoE客戶端,其次是虛拟專用網絡客戶端。虛拟專用網絡客戶端的作用就是幫助用戶在PC或PAD或手機上觸發建立一條直通公司總部網絡的隧道,實現用戶自由訪問總部網絡的意願。當然用戶能輕松進入隧道也必須可以自由離開隧道??切換到直接訪問Internet,這有點像是掌握了通往地球(總部網絡)的“蟲洞”入口的都教授可以瞬間自由往來于兩個遙遠的星球,當然也可乘坐星際飛行器在宇宙中漫遊(Internet)。無論是在現實社會還是在虛拟網絡世界,幸福生活似乎隻有在消除了時空距離後方能體會,強叔用真實體驗告訴大家Client-Initiated 虛拟專用網絡可以助您輕松過上都教授的幸福生活。
都教授要借助L2TP客戶端穿越“蟲洞”進入公司網絡,必然要先通過“門神”LNS的身份檢查(檢查手段毫不含糊,用戶名稱、密碼、主機名稱、隧道驗證應有盡有)。LNS為通過驗證的用戶發放特别通行證(公司内網IP地址),對試圖混入的人說bye-bye。Client-Initiated 虛拟專用網絡配置中體現的就這樣一個簡單的思路(本例僅給出本地認證配置):
VT接口大家感覺比較陌生吧?它是用于二層協議通信的邏輯接口,比如PPP和L2TP協議通信、PPP和Ethernet協議通信,都會用到它,所以在L2TP 虛拟專用網絡中要開啟VT接口所在安全區域跟L2TP物理接口所在安全區域之間的包過濾,保證PPP和L2TP協議通信暢通無阻。 思想是神經元活動的結果,配置最終體現到一系列的消息交互中。配置不太複雜,但消息交互可不太簡單。為了讓大家一目了然,并方便跟下期的NAS-Initiated 虛拟專用網絡做對比,強叔畫了一張簡圖,然後對着這張圖對L2TP Client與LNS之間的消息交互進行深入剖析。
結合抓包情況來講解一下Client-Initiated 虛拟專用網絡建立的完整過程:
階段1 建立L2TP隧道(控制連接):3條消息協商進入蟲洞時機L2TP Client和LNS通過交互三條消息協商隧道ID、UDP端口(LNS用1701端口響應Client隧道建立請求)、主機名稱、L2TP的版本、隧道驗證(Client不支持隧道驗證時LNS的隧道驗證要關閉,例如WIN7操作系統)等參數。
僅給出隧道ID協商過程:
階段2 建立L2TP會話:3條消息喚醒蟲洞門神L2TP Client和LNS通過交互三條消息協商Session ID,建立L2TP會話。跟“門神”對上話了,才可能提交身份認證材料呀!
注:ZLB表示目前空閑,沒有消息要發送。 Session ID協商過程:
階段3 創建PPP連接:身份認證,發放特别通行證1. LCP協商。LCP協商是兩個方向分開協商的,主要協商MRU大小。 說明:MRU 是PPP的數據鍊路層參數,類似以太網中的MTU。如果PPP鍊路一端設備發送的報文載荷大于對端的 MRU,這個報文在傳送時就會被分片。
2. PPP驗證。 驗證方式包括CHAP、PAP、EAP(高端防火牆不支持),CHAP或PAP可以在本地認證、也可在AAA服務器上認證;EAP隻能在AAA服務器上進行認證。EAP認證比較複雜,我們等到IPSec部分再詳解,此處僅給出最常用的CHAP驗證過程:
經典的三次握手過程:
LNS(或AAA服務器)上配置的用戶名和密碼是用來驗證Client的,當然要求“本人”和“簽證”完全一緻,即要求L2TP Client和LNS上配置的用戶名和密碼完全一緻。這裡詳解一下什麼叫用戶名完全一緻:
這是很多人問過的問題,道理很簡單,但卻是大家幹活時常犯的錯誤。 講了半天domain的問題,大家會不會問劃分domain有何意義?對于大企業來說,往往會按部門來劃分多個domain, LNS(或AAA服務器)都支持根據domain給不同部門創建不同的地址池,也就是不同部門的網段可以通過地址池規劃分開,這樣方便後續部署不同的訪問控制策略。 3. IPCP協商,成功後分配IP地址。 分配給Client的IP地址是10.21.80.2,後續交互的報文都是由10.21.80.2??Client的私網地址發出的。
看到這裡大家會不會問VT接口地址、地址池地址和總部網絡地址如何規劃?注意以下兩點即可: 首先,VT接口地址和地址池地址可以規劃在同一網段,也可以不在同一網段。如果在同一網段,請将兩者配置為不重疊的地址,即VT接口地址不能包含在地址池地址中。 其次,建議把地址池地址和總部網絡地址規劃為不同的網段。如果萬不得已,将地址池地址和總部網絡地址配置為同一網段後,則必須在LNS連接總部網絡的接口上開啟ARP代理功能,并且開啟L2TP虛拟轉發功能,保證LNS可以對總部網絡服務器發出的ARP請求進行應答。 假設LNS連接總部網絡的接口是GigabitEthernet1/1/16,開啟ARP代理功能和L2TP虛拟轉發功能的配置如下:
interface GigabitEthernet1/1/16
ip address 192.168.0.1 255.255.255.0
arp-proxy enable //開啟ARP代理功能
virtual-l2tpforward enable //開啟L2TP虛拟轉發功能
總結一下Client-Initiated 虛拟專用網絡的特點:
階段4 數據封裝傳輸:穿越蟲洞,訪問地球 想把都教授如何穿越蟲洞的過程講清楚很困難,但是把L2TP客戶端的數據如何穿越L2TP隧道達到總部網絡的過程講清楚不太難,這就涉及到了L2TP數據報文的封裝過程。這個過程跟GRE報文穿“馬甲”脫“馬甲”的過程很相似,不同的是馬甲的樣式有點變化:
說明:本例中是兩個Client之間通信,所以私有IP地址為兩個内網地址。
至此,L2TP Client可以暢通無阻訪問總部網絡了,就像都教授穿過蟲洞回到溫暖的家。但有一個疑問,Client發出的報文進入隧道到達總部服務器沒有問題了,但從總部服務器到Client的回程報文是如何進入隧道返回Client的?我們似乎并沒有配置什麼路由将回程報文引導到隧道呀?查看LNS路由表,發現了一個有趣的現象:LNS為獲得私網IP地址的Client自動下發了一條主機路由。
這條自動生成的主機路由協議類型為UNR(User Network Route),下一跳為Client本身的地址,出接口是InLoopBack0。這條路由就是LNS上蟲洞的入口,指引去往Client的報文進入蟲洞,回程報文就不愁找不到隧道入口了。看來在蟲洞建立時,L2TP就已經為都教授的來去自如做好了充分準備,那還有什麼可擔心的呢? 上文我們隻使用了一個Client來講解,實際環境中會有多個Client同時穿過蟲洞訪問總部網絡。如果Client已經不滿足隻訪問總部網絡,還想訪問其他的Client,即Client之間實現相互訪問,L2TP能做到嗎?别忘了,LNS是連接多個蟲洞的中轉站,通過LNS來轉發,兩個Client之間也可以自如訪問。當然,前提是雙方要知道LNS為對方分配的IP地址。
Client-Initiated 虛拟專用網絡的美妙之處強叔已經展示給各位了,下期強叔要為大家推出NAS-Initiated 虛拟專用網絡,一種更強大的L2TP 虛拟專用網絡。
上一篇:「防火牆技術連載21」L2TP 虛拟專用網絡的誕生及演進
整理這些文章,一方面是分享給大家,另一方面也是自己可以複習一遍,希望有人能用得上。整理完了之後我會整理合輯放在主頁欄目中,需要的可以查看。我還會持續更新更多IT相關知識,感興趣的可以關注。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!