论坛风格切换切换到宽版
  • 1384阅读
  • 5回复

[问题求助]Linux中VPN连接不上的问题 [复制链接]

上一主题 下一主题
 
发帖
2093
C币
-152295
威望
391
贡献值
1
银元
-1
铜钱
4772
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
大家好!

最近开发遇到了一个.问题,搞了半个月了,是关于VPN的,希望各路大虾给帮帮忙提.提意见!          婚庆

问题状况:
内网一台机器A(WinXP)通过我们公司的路由器连接到外网,.A跟外网机器B不.能建立VPN连接,错误提示为721。即一直停留在验证用户名和密码的状态下没反.应。电影

排除原因:
1.机器B是没有问题的。
2..换一个别的型号的路由器VPN能够正常使用。外贸
3.我们将别的型号的路由器的FIRMWARE中的zImage提出来覆盖我们的Firmware中的z..Image,VPN能够正.常工作,说明肯定是kernel的问题。电影
    PS:因为那个.能成功跑VPN的kernel是以前做的,其代码已经不幸遗.失,当时的工程师也离职,所以。。。。。。             电子


我的环境:
1.目标kernel的版本为2.4..27<性病>
2..iptables版本为1.3.4健康
3.已经分别打过patch-o-matic-20041001.tar.bz2,pat.c.h-o-matic-ng-20040302.tar.bz2,patch-o.-matic-ng-20040621.tar.bz2,patch-o-matic-ng-20060701.tar.bz2,patch-o-matic-ng-20090.610.tar.bz2等patch,分别编译出来的kernel也出现同.样的问题。              乙肝
4.kernel的..config中ne.tfilter对应的选项如下:    健康
CONFIG_IP_.NF_CONNTRACK=y域名

# CONFI.G_IP_NF_CONNTRACK_MARK is .not set           女人

CONFIG_I.P_NF_FTP=y.

CONFIG_IP_NF_.CT_PR.OTO_GRE=y--------------彩票

CONFI.G_IP_NF_PPTP=y--- 印刷

# CO.NFIG_IP_NF._PPTP_DEBUG is not set电脑

CONFIG_IP_NF._H323=y.

# .CONFIG_IP_.NF_AMANDA is not set虚拟主机

# CONF.IG_IP_NF_TFTP is n.ot set投资

CONFIG_.IP_NF_IRC=y.

CONFIG_IP._NF_MMS=y.

# CONFIG_IP_NF_QUEU.E i.s not set.

CO.NFIG_IP_NF_IPTABLES=y.

# CONF.IG_IP_NF_MATCH_LIMIT is not .set           女人

CON.FIG_IP_NF_MATCH_IPRANG.E=y<性病>

CONFIG_IP_NF_MATCH_MAC=.y学习

# CONFIG_IP_NF_MA.TCH_PKTTYPE is not s.et.

CON.FIG_IP_NF_MATCH_MARK=y           女人

# CONFIG_IP_NF_MATCH_MULT.IPO.RT is not set.

CONFI.G_IP_NF_MATCH_TOS=y健康

CONFIG._IP_NF_MATCH_TIME=y教育

CONFIG_IP_NF_MATC.H_IPV4OP.TIONS=y(        游戏          )

# CONFIG_IP_NF_MATCH_.RECENT is not. set.

# CONF.IG_IP_NF_MATCH_ECN i.s not set.

#. CONFIG_IP_NF_MAT.CH_DSCP is not set    健康

# CONFIG_..IP_NF_MATCH_AH_ESP is not set           建材

# C..ONFIG_IP_NF_MATCH_LENGTH is not set           建材

CONFIG_IP._NF_MATCH_TTL=y.

# CONFIG_IP_NF_.MATCH_TCPMSS is not se.t服务器

# CONFI.G_IP_NF_MATCH_HELPER is not se.t.

CONFI.G_IP_NF_MATCH_S.TATE=y             电子

#. CONFIG_I.P_NF_MATCH_CONNMARK is not set.

CONFIG_IP_NF_MA.TCH_C.ONNTRACK=y学习

#. C.ONFIG_IP_NF_MATCH_UNCLEAN is not set域名

# CONFIG_I.P_NF_MATCH_.STRING is not set             汽车

# CONFIG_IP_.NF_MATCH_OWNER is no.t set(广告)

# CONFIG_IP_NF_.MATCH_PH.YSDEV is not set电脑

CONFIG_IP._NF_FILTER=y    外汇

# CONFIG._IP_NF_TARGET_REJECT is not .set.

# CONFIG_IP._NF_TARGET_MIRROR is .not set服务器

C.ONFIG_IP_NF_NAT=y.

CONFIG_IP_NF_.NAT_NEEDED=y             电子

CONFI.G_IP_NF_TARGET_MASQUERADE=.y投资

CONFIG_IP_NF_TARGE.T_.REDIRECT=y.

# CONFIG._IP_NF_TARGET_.NETMAP is not set.

CONFIG_IP_NF._NAT_H323=y--------------彩票

# CONFIG_IP_N..F_NAT_LOCAL is not set<性病>

CONF.IG_IP_NF_NAT_PPTP=y    美容

CONFIG_IP_NF_NAT_PROT.O_.GRE=y          婚庆

# CONFIG_IP_NF_NAT_SNMP._BASIC is no.t set虚拟主机

CONFIG._IP_NF_NAT_IRC=y.

CONFIG_IP_NF._NAT_MMS=y[成人用品]

CONFIG_IP_NF_NAT_.FTP=y.

CO.NFIG_IP_NF_MANGLE=y.

CONF.IG_IP_NF_TARGET_TOS=y外贸

# CONFIG_IP_NF_TAR.GET_.ECN is not set投资

# CONFIG_IP_NF_TAR.GET_.DSCP is not set(广告)

CONFIG_I.P_NF_TAR.GET_MARK=y--------------彩票

# CONFI.G_.IP_NF_TARGET_IMQ is not set教育

# CONFIG_IP_.NF._TARGET_LOG is not set.

# CONFIG_IP_NF_TAR.GET_CONNMARK .is not set.

C.ON.FIG_IP_NF_TARGET_ULOG=y.

CO.NFI.G_IP_NF_TARGET_TCPMSS=y.

# CONFIG_IP_N.F_ARPTABLES i.s not set              乙肝

# CONFIG_IP_NF_A.LG. is not set(        游戏          )

# CONFIG_I.P_NF_TRIGGERPORT is n.ot set投资
复制代码

请教各位高手,有.没有解决之道,在此道谢!


最佳答案kwest
http://upload.bbs.csuboy.com/Mon_1004/126_7007_c2515fb4e40125e.gif[/img]看楼主的kernel配置           鲜花
CONFIG_.IP_NF_PPTP=y          婚庆
CONFIG_IP_NF_NAT_PPT.P=y.
C.ON.FIG_IP_NF_NAT_PROTO_GRE=y             汽车
这几项都是选中了的,并.无缺少相关模块。最有可能的地方是2.4.27 kernel中有bug。重点关注ip_conntra.ck_pptp.c,ip_nat_pptp.c,ip_nat_proto_gre.c这三个.文件。.
可以参考下这篇文章,也许有些启发:http://linux.chinaunix.net/bbs/viewthread.php?tid=1073407.
不过这篇文章讲的是2..6..13的内核,和2.4有很大不同了。.
我的建议把你2.4.2.7内核中的.这三个文件和2.4.30内核做下对比,看有没有什么地方有改进。.


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
2063
C币
-235799
威望
384
贡献值
1
银元
0
铜钱
4574
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
看楼主的kernel配置
CONFIG_IP_NF_PPTP=y
CONFIG_IP_NF_NAT_PPTP=y
CONFIG_IP_NF_NAT_PROTO_GRE=y
这几项都是选中了的,并无缺少相关模块。最有可能的地方是2.4.27 kernel中有bug。重点关注ip_conntrack_pptp.c,ip_nat_pptp.c,ip_nat_proto_gre.c这三个文件。
可以参考下这篇文章,也许有些启发:http://linux.chinaunix.net/bbs/viewthread.php?tid=1073407
不过这篇文章讲的是2.6.13的内核,和2.4有很大不同了。
我的建议把你2.4.27内核中的这三个文件和2.4.30内核做下对比,看有没有什么地方有改进。


离线smilei34516.
发帖
2024
C币
-140163
威望
393
贡献值
1
银元
-1
铜钱
4592
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
用的是 pptpd 吗?
看了你的 netfilter 配置,有针对 pptp 的 nat 模块,但没有看到针对 gre 的 nat 或 conntrack 模块
记得 2.4 内核需要 gre 模块,2.6 的没弄过,现在我们早改用 openvpn 了,建议你也使用这个吧


离线chinablue.
发帖
2151
C币
-235260
威望
390
贡献值
1
银元
-3
铜钱
4734
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
我们是用的pptp+GRE的

CONFIG_IP_NF_NAT_PROTO_GRE=y
这个是支持GRE的模块么?
CONFIG_IP_NF_CONNTRACK=y
这个是支持CONNTRACK模块么?

本人kernel新手谢谢版主不吝赐教

我的kernel是2.4.27的版本

openvpn等下次大改的时候在看看,现在快要出货了,VPN却还没搞定


离线gionah.
发帖
2040
C币
-235377
威望
400
贡献值
1
银元
-2
铜钱
4620
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13


QUOTE:原帖由 youmin0 于 2009-6-17 17:30 发表
我们是用的pptp+GRE的

CONFIG_IP_NF_NAT_PROTO_GRE=y
这个是支持GRE的模块么?
CONFIG_IP_NF_CONNTRACK=y
这个是支持CONNTRACK模块么?

本人kernel新手谢谢版主不吝赐教

我的kernel是2.4.27的版本
...

好像 GRE 还有 conntrack 部分的,至少 2.4 内核是,需要 patch
至于 CONFIG_IP_NF_CONNTRACK,这是 netfilter 的主 conntrack 处理框架,和你所需的 VPN 扯不上关系

可以参考 kwest 的,我觉得他说的很有道理


离线blueii.
发帖
1982
C币
-152858
威望
353
贡献值
1
银元
-2
铜钱
4430
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
问题终于解决了。

问题的根源在.\include\linux\netfilter_ipv4\ip_conntrack_tuple.h的ip_conntrack_manip_proto结构
呵呵
kwest提供的信息很准确。

union ip_conntrack_manip_proto

{

        /* Add other protocols here. */

        u_int32_t all;



        struct {

                u_int16_t port;

        } tcp;

        struct {

                u_int16_t port;

        } udp;

        struct {

                u_int16_t id;

        } icmp;

        struct {

                u_int32_t key;

        } gre;

};
复制代码

以前的那个工程师不知道为什么把all改成了u_int16_t,然后后面注释加了句For trigger。我没有明白。

不过问题总算解决了,感谢kwest和白金版主!

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个