vpn搭建及pptpd因mtu而影响上传下载速度,显示很慢一例

摘要:vpn搭建及pptpd因mtu而影响上传下载速度,显示很慢一例...

作者:LoveCode标签:vpn,vpn搭建,pptpd,mtu,上传,下载,速度

一、环境及安装

server: centos 6.3 (kvm虚拟机)。

client: ubuntu 10.04。

server上yum install安装pptpd,常规设置好ip分配、用户名密码,添加iptables set mss的参数。

设置/etc/pptpd.conf中的localip与remoteip,分别表示虚拟出来的双方ip范围。

设置/etc/ppp/chap-secrets中的用户名密码和连接ip等。

service pptpd start
iptables -A FORWARD -p tcp —syn -s 172.16.36.0/24 -j TCPMSS —set-mss 1356

client上apt-get install安装的pptpsetup,设置好用户名密码,启动vpn连接。

/usr/sbin/pptpsetup —create vpn —server . . . (server ip) —username vpn —password ASDF —encrypt —start

pptpd v1.4.0


二、遇到困难

scp client_file server 时,速度先很快,级数变慢,最后不动了。

scp server_file client 时,同上表现。

因为server处在vm中(某云主机)。

server最后的公网ip并不在eth0,而是由母机网卡决定。

server的iptable看上去并不生效。


三、联想

vpn慢的原因,最大可能是虚拟出的网络mtu大过了中间的网络mtu值。

猜测是双方的虚拟网卡上的mtu与实际的网络有差别。

分别在server client执行netstat -i。

可以看到ppp0默认的mtu值都在1496左右(真实网卡是1500),找到真凶。


四、解决

server: /etc/ppp/options.pptpd #最后一行添加 mtu 1300,解决下载慢。
client: ifconfig ppp0 mtu 1300 #解决上传慢的问题。

MTU:Maximum Transmission Unit 网络上传送的最大数据包,单位字节,默认一般是1500。

大于mtu的包,在系统层会被拆成多个来发。

各层级的网络路由设备,会协商大家的mtu,选择一个最小的。

协商mtu的时候要发送ICMP包,很多厂商的防火墙会关闭它的传输(防ddos等)。真凶在此。

在无法实现协商mtu的时候,各种事件都会影响mtu的确定,实际表现为在传大文件的时候,寻找mtu的过程中,数据包丢了。原理在此。


CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)