【摘要】L2 VPN工作在OSI網絡模型的第二層,它可以隱藏地域限制,并提供虛擬專有網絡服務。本論文研究如何基于IPSec隧道實現L2 VPN。
【關鍵詞】L2 VPNIPSec隧道虛擬化The Research and Design of IPSec-based L2 VPN
ZHU Yufeng(School of Electronics Engineering and Computer Science, Peking University, Beijing, 100871, China)
Abstract: L2 VPN is working at layer 2 of OSI network model, which can hide the geographical limitations and provide virtual private network service.
This paper is intended to give solutions to implement L2 VPN using IPSec tunnel.
Key Words:L2 VPN, IPSec Tunnel, Virtualization
一、引言
隨著虛擬化及云計算的興起和應用,VPN隧道成為一個連接不同地區虛擬數據中心或者云計算中心的必備技術,其中L2 VPN工作在OSI網絡模型的第二層,它可以隱藏地域限制,提供虛擬專有網絡服務,能夠更好的滿足虛擬化及云計算的需求。
二、方法研究
L2 VPN基本的概念是將L2網橋和IPSec VPN網關結合,利用VPN隧道模擬物理網線,將2臺或者多臺跨越因特網的網橋連接起來。
如圖所示:
為了實現以上L2 VPN的功能,我們需要考慮以下因素:
(1)如何將L2數據包導向VPN隧道;
(2)如何封裝以太網幀;
(3)數據包的flow設計;
(4)如何支持VLAN;
(5)如何支持多站點多用戶(例如,星型拓撲)。
2.1重定向數據包到VPN隧道
為了很好的連接L2網橋和VPN網關,我們定義一個虛擬的隧道端口,用來解耦合網橋和VPN的功能。對于網橋來說,虛擬隧道端口就像是一個物理端口一樣,用來收發以太網數據包。對于VPN網關來說,虛擬隧道端口就是一個明文數據包進入加密隧道的入口,所有到達虛擬隧道端口的數據包,都將會被加密從隧道發出去。
虛擬隧道端口模擬物理以太網端口,它的功能如下:
(1)在內核中創建一個虛擬網絡端口;
(2)發送以太網數據包。而驅動程序的發送功能,就是VPN隧道加密。
(3)接收以太網數據包。VPN加密后,會把明文放到虛擬端口的接收隊列。
(4)支持網橋MAC反向學習。
(5)支持VLAN tag。
所有對于L2網橋看來,虛擬隧道端口和物理網橋端口沒有任何區別,收到和發送的都是以太網數據包。網橋也不知道VPN網關的存在。同樣,VPN網關也知道網橋的存在,到達VPN網關也只是以太網數據包。
2.2以太網數據包封裝
IPSec隧道工作在三層,用來設計封裝IP數據包,所以我們需要將以太網幀封裝成IP數據包,再將該IP數據包封裝成IPSec數據包。
我們可以考慮以下方式:
(1)EtherIP over IPSec;
(2)非標準的IPSec封裝;
(3)混合模式。
(8)VPN1收到ARP應答密文包,解密去EtherIP和IPSec包頭,查詢MAC地址表,得知出口是eth1,然后將報文發往PC1。此時,VPN1并且更新MAC地址表。
VPN2網橋的MAC表:
(9)PC1收到ARP應答明文包,學到PC2的MAC地址。然后發送ICMP請求到PC2。數據包的目的MAC是PC2-MAC,源MAC是PC1-MAC。
(10)VPN1收到ICMP請求,查詢MAC地址表得到出口是tun1,將數據包送到VPN隧道加密,然后發往VPN2網關。
(11)VPN2收到ICMP請求,查詢MAC地址表,得到出口是eth1,將數據包發送到PC2。
(12)PC2收到ICMP請求并發送ICMP應答,該應答數據包被發發送到VPN2。
(13)VPN2收到ICMP應答,查詢MAC地址表,得到出口是tun1,將數據包通過隧道發送到VPN1。
(14)VPN1收到ICMP應答,查詢MAC地址表,得到出口是eth1,將數據包發送到PC1。
3.1VLAN支持
二層網橋可能連接很多VLAN,隧道端口需要工作在TRUNK模式,這樣可以允許VLAN數據包通過VPN隧道。
拓撲如下:
EtherIP over IPSec可以封裝VLAN tag,但是overhead會比較大。一種優化的方法是分配每個tunnel端口和tunnel一個VALN tag,這樣就不需要封裝VLAN tag,提高有效載荷。
3.2星型拓撲支持
要支持Hub Spoke星型拓撲,我們只需要再增加一個tunnel端口,并且把該端口綁定到一個到Spoke的VPN隧道。該設計非常靈活,易于擴展。
拓撲如下:
四、結束語
本文通過引入虛擬隧道端口,巧妙的將L2網橋和IPSec VPN網關結合在一起,簡單并且有效的將數據包重定向到VPN隧道。
另外,本文通過結合EtherIP over IPSec封裝發送多播和廣播數據包,IPSec封裝發送單播數據包,有效提高了VPN隧道的有效載荷和傳輸性能。
參考文獻
[1] RFC3378: EtherIP: Tunneling Ethernet Frames in IP Datagrams
[2] RFC2784: Generic Routing Encapsulation
[3] RFC3438: Layer Two Tunneling Protocol
[4] RFC4664: Framework for Layer 2 Virtual Private Networks
[5] RFC4665: Service Requirements for Layer2 Provider-Provisioned Virtual Private Networks
[6] RFC4026; Provider Provisioned Virtual Private Network (VPN) Terminology
[7] RFC4301: Security Architecture for the Internet Protocol
[8] RFC4303: IP Encapsulating Security Payload
[9] RFC4306: Internet Key Exchange (IKEv2) Protocol