另类L2TP Tunnel
說到L2TP VPN,大家肯定會想到xl2tpd和openswan的組合,這是傳統L2TP VPN所需要的組件。安裝配置步驟相對比較復雜。通常用作Point to Site模式,即:多個接入點(PC、服務器或者移動設備)連接(撥號)到一個服務器。傳統L2TP VPN的兼容性非常好,主流操作系統原生支持L2TP協議。
Linux內核從3.2開始內置了L2TP Tunnel功能,安裝和配置簡單,不需要任何第三方的組件。缺點是只能支持Site to Site模式,和GRE Tunnel、IPIP Tunnel類似。這種L2TP VPN還有一個最大的優勢就是:接入服務器可以位于NAT設備后面,使用UDP協議通訊,因此非常適合在各種公有云上使用(特別是網絡功能不怎么健全的Microsoft Azure)。
我們使用Ubuntu Server 16.04 LTS為例,在Microsoft Azure日本西和騰訊云廣州之間搭建L2TP Tunnel。將Microsoft Azure日本西作為服務器,騰訊云廣州作為客戶端。客戶端的部分網絡流量經過L2TP Tunnel從服務器端發出。
服務器端配置
#開啟L2TP Tunnel功能,執行一次即可 sudo modprobe l2tp_eth sudo ip l2tp add tunnel tunnel_id 3000 peer_tunnel_id 4000 encap udp local [服務器內網IP地址] remote [客戶端公網IP地址] udp_sport 5000 udp_dport 6000 sudo ip l2tp add session tunnel_id 3000 session_id 1000 peer_session_id 2000 sudo ip link set l2tpeth0 up mtu 1488 #設置Tunnel網卡地址 sudo ip addr add 10.99.1.1 peer 10.99.1.2 dev l2tpeth0 #開啟ip轉發 sysctl -w net.ipv4.ip_forward=1 #開啟SNAT偽裝 sudo iptables -t nat -A POSTROUTING -s 10.99.1.0/24 -j SNAT --to-source [服務器內網IP地址]
客戶端配置
#開啟L2TP Tunnel功能,執行一次即可 sudo modprobe l2tp_eth sudo ip l2tp add tunnel tunnel_id 4000 peer_tunnel_id 3000 encap udp local [客戶端內網IP地址] remote [服務器公網IP地址] udp_sport 6000 udp_dport 5000 sudo ip l2tp add session tunnel_id 4000 session_id 2000 peer_session_id 1000 sudo ip link set l2tpeth0 up mtu 1488 #設置Tunnel網卡地址 sudo ip addr add 10.99.1.2 peer 10.99.1.1 dev l2tpeth0
注意上述配置中,服務器和客戶端的[tunnel_id]和[peer_tunnel_id],[session_id]和[peer_session_id],[udp_sport]和[udp_dport]是“對調互換”的。兩邊Tunnel網卡地址和peer地址也是類似的“對調互換”;服務器端需要開啟IP轉發功能和SNAT;客戶端要根據具體的需求配置靜態路由規則(使用route add命令);還有就是記得為兩邊的服務器開啟對應的UDP端口,通常是在云平臺的Security Group功能中進行配置。本例中要開放UDP 5000和UDP 6000端口。
至此一個高效快捷的L2TP Tunnel就創建完成了,像配置GRE Tunnel一樣簡潔迅速,同時又具備良好的公有云環境兼容性。
轉載于:https://www.cnblogs.com/hunterxue/p/6393330.html
總結
以上是生活随笔為你收集整理的另类L2TP Tunnel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 割眼袋多少钱啊?
- 下一篇: 贷字开头成语有哪些啊?