L2TP VPN与PPTP VPN存在以下6个方面不同:
1、PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),帧中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。
2、PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。
3、L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。
4、L2TP自身不提供隧道验证,从L2TP的包头可以看出。隧道认证是由PPP(pap或chap)协议提供!而PPTP则支持隧道验证,PPTP自身就是PPP的扩展!但是当L2TP或PPTP与IPsec共同使用时,可以由IPsec提供隧道验证,不需要在第2层协议上验证隧道。
5、L2TP访问集中器(L2TP Access Concentrator,LAC)是一种附属在网络上的具有PPP端系统和L2Tpv2协议处理能力的设备,它一般就是一个网络接入服务器软件,在远程客户端完成网络接入服务的功能。
6、L2TP网络服务器(L2TP Network Server,LNS)是用于处理L2TP协议服务器端的软件。
扩展资料
VPN的工作原理如下。
1、通常情况下,VPN网关采取双网卡结构,外网卡使用公网IP接入Internet。
2、网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B,其发出的访问数据包的目标地址为终端B的内部IP地址。
3、网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装方式根据所采用的VPN技术不同而不同。
4、网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。
5、网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离,再将数据包反向处理还原成原始的数据包。
6、网络二的VPN网关将还原后的原始数据包发送至目标终端B,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就和从终端A直接发过来的一样。
7、从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。
参考资料:百度百科-L2TP
参考资料:百度百科-虚拟专用网络
1安装需要的软件
yum install make gcc gmp-devel bison flex lsof wget libpcap-devel ppp policycoreutils
2
安装Openswan
wget --no-check-certificate http://www.openswan.org/download/openswan-2.6.35.tar.gztar -zxvf openswan-2.6.35.tar.gzcd openswan-2.6.35make programs install
3
配置IPSec
vi /etc/ipsec.conf
找到protostack=auto,修改为
protostack=netkey
然后在最后加上:
conn L2TP-PSK-NATrightsubnet=vhost:%privalso=L2TP-PSK-noNAT
conn L2TP-PSK-noNATauthby=secretpfs=noauto=addkeyingtries=3rekey=noikelifetime=8hkeylife=1htype=transportleft=YOUR.SERVER.IP.ADDRESSleftprotoport=17/1701right=%anyrightprotoport=17/%any
记得把YOUR.SERVER.IP.ADDRESS改成你自己服务器的IP地址。
4
设置共享密钥PSK
vi /etc/ipsec.secrets
填入以下代码,把YOUR.SERVER.IP.ADDRESS改成你自己服务器的IP地址。
YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"
5
修改包转发设置,下面为两段代码,分别运行
for each in /proc/sys/net/ipv4/conf/*doecho 0 >$each/accept_redirectsecho 0 >$each/send_redirectsdone
这是另外一段代码
echo 1 >/proc/sys/net/core/xfrm_larval_drop
修改内核设置
vi /etc/sysctl.conf
找到"net.ipv4.ip_forward",将其值改为1,然后重启使其生效。
sysctl -p
重启IPSec
/etc/init.d/ipsec restart
安装xl2tpd和rp-l2tp
wget http://sourceforge.net/projects/rp-l2tp/files/rp-l2tp/0.4/rp-l2tp-0.4.tar.gztar -zxvf rp-l2tp-0.4.tar.gzcd rp-l2tp-0.4./configuremakecp handlers/l2tp-control /usr/local/sbin/mkdir /var/run/xl2tpd/ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control
wget http://www.xelerance.com/wp-content/uploads/software/xl2tpd/xl2tpd-1.3.0.tar.gztar -zxvf xl2tpd-1.3.0.tar.gzcd xl2tpd-1.3.0makemake install
建立xl2tpd配置文件
mkdir /etc/xl2tpdvi /etc/xl2tpd/xl2tpd.conf
输入
[global]ipsec saref = yes
[lns default]ip range = 10.82.88.2-10.82.88.254local ip = 10.82.88.1refuse chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes
配置ppp,建立options.xl2tpd文件
vi /etc/ppp/options.xl2tpd
输入
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
设置拨号用户名和密码
vi /etc/ppp/chap-secrets
根据说明输入用户名、密码等,例如:
jackie * jackie *
添加iptables转发规则
iptables --table nat --append POSTROUTING --jump MASQUERADE
保存iptables转发规则
/etc/init.d/iptables save
重启iptables
/etc/init.d/iptables restart
以debug方式启动l2tp,查看有无错误
xl2tpd -D
如果看到"Listening on IP address 0.0.0.0, port 1701"说明配置成功了,但是此时你不一定能连上VPN,配置好之后重启一下服务器。
设置开机启动
vi /etc/rc.local
在rc.local中加入
for each in /proc/sys/net/ipv4/conf/*doecho 0 >$each/accept_redirectsecho 0 >$each/send_redirectsdone
echo 1 >/proc/sys/net/core/xfrm_larval_drop
/etc/init.d/ipsec restart
/usr/local/sbin/xl2tpd
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)