vpn搭建及pptpd因mtu上传下载慢一例
时间:2015-12-06 18:25 来源:linux.it.net.cn 作者:IT
一、环境及安装
-
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的过程中,数据包丢了。原理在此。
(责任编辑:IT)
一、环境及安装
二、遇到困难
三、联想
四、解决
|