今天使用VPN客戶端連接Linux服務(wù)端訪問慢問題了,那么碰到這類問題我們要如何來處理?具體就和小編一起來看看吧,希望文章能夠幫助到大家.
我的Vyatta運(yùn)行一直很好,用ROS和Cisco做Tunnel連接到Vyatta跑OSPF用來翻墻,效果一直不錯(cuò),可是當(dāng)使用Windows連接vpn時(shí),經(jīng)常打開網(wǎng)頁超時(shí),但ping各處均正常,所以懷疑是MTU或MSS的問題.
經(jīng)過幾番周折,發(fā)現(xiàn)網(wǎng)頁超時(shí)時(shí),Vyatta日志內(nèi)出現(xiàn)大量異常:
Jan 12 21:02:39 Xirang kernel:[4838172.516489] pptp2:ppp:compressor dropped pkt
然后學(xué)習(xí)了一下,出現(xiàn)這個(gè)問題是因?yàn)?Windows VPN客戶端的MPPE(Microsoft point-to-point Encryption)加密需要占用4個(gè)字節(jié)長(zhǎng)度,原始報(bào)文加上MPPE報(bào)文頭開銷會(huì)超過Linux服務(wù)端pptp接口MTU,最終導(dǎo)致報(bào)文過大被丟棄.
所以解決問題的本質(zhì)就是增加Linux服務(wù)端pptp接口MTU.
解決辦法有三種:
編輯pptpd源碼,增加MTU,使用腳本,在pptp接口連接up以后增加MTU,不使用MPPE加密;
第一種雖然從根本上解決了問題,但是由于水平問題放棄了,第三種由于取消了傳輸加密,心理上覺得不安全,也放棄了.
從網(wǎng)上找到了第二種解決辦法,如下:
- /etc/ppp/ip-up.d/mppefixmtu.sh
- #!/bin/sh
- CURRENT_MTU=”`ip link show $1 | grep -Po ‘(?<=mtu )([0-9]+)’`”
- FIXED_MTU=”`expr $CURRENT_MTU + 4`”
- ip link set $1 mtu $FIXED_MTU --Vevb.com
確保腳本具有可執(zhí)行權(quán)限:
chmod 755 /etc/ppp/ip-up.d/mppefixmtu.sh
這樣MTU加上4以后就可以兼容Windows的MPPE了.
新聞熱點(diǎn)
疑難解答
圖片精選