论坛风格切换切换到宽版
  • 961阅读
  • 4回复

[问题求助]请教:NAT不稳定,时常不能按照配置工作 [复制链接]

上一主题 下一主题
离线sharpgun.
 
发帖
2091
C币
-61352
威望
408
贡献值
1
银元
-2
铜钱
4672
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
请教各位大侠,.我在A.RM开发板上连接了两块GPRS模块,并且做了按流量的负载均衡(内核打上equalize补丁),做负载均衡的语句如下:<性病>
ip rout.e replace default equalize nexthop via 192.168.111.11.1 dev ppp0 nextho.p via 192.168.111.111 dev ppp1.
ARM开发板以太口接PC,这几天在开发板上装了ipt.ables想做端口.映射,让PC通过ARM开发板上网,端口映射语句是:域名
ipta.bles -t nat -A POSTROUTING -o ppp.0 -j MASQUERADE虚拟主机
ipta.bles -t n.at -A POSTROUTING -o ppp1 -j MASQUERADE    美容
我.对iptables的设置不是很熟,对.这两句话的理解个人感觉应该是修改从ppp0口发出的包.
的.源地址为p.pp0接口的ip地址,修改从ppp1口发出的包的源地址为ppp1接口的ip地址。教育


这些设置完以后,我在PC上ping一个外网地址,假设ARM上ppp0口的ip地址是A,ppp1口的ip地.址是B,所ping外网地址.为C,PC为D。.
一开始ping很.成功,每个包都能返回,按照我负载均衡的做法,数据包被依次轮换发往ppp0口和p.pp1口。而按照NAT的设置,从ppp0口出的包,源地址被改成了A,从ppp1口出的包,源地址被改成了.B。事实上我在ARM开发板上用tcpd.ump抓包发现也是如此的。.
可是ping了一段时间以后,就出现了一个ping通,接着又ping不通这样的循环交替情.况,在ARM上用tcpdump抓包发现,数据包.还是依次逐个被发往ppp0口和ppp1口,可见负载均衡还是生效的,但是不管是发往哪个.口的数据,数据包的.源地址都被修改成了A地址(.有时候都被指定成了B地址),这时候在ppp0口上的数据包修.改成A地址就可以发送成功,而在ppp1口修改成A地址的数据包发出去后就不会收到reply了。所以造成了以上的情况。我觉得是NAT没有按照原先的配置执行了。域名

哪位大侠遇到过类..似的情况吗,帮小弟解决一下,不胜感激.

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

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线bysoft.
发帖
2044
C币
-560003
威望
365
贡献值
5
银元
-2
铜钱
4527
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
似乎是内核要打补丁



QUOTE:内核打补丁

   如果你希望外网用户,不管通过哪个IP都可以访问到服务器或映射后的内网服务器,那么你就需要为内核打上补丁,
   补丁在 http://www.ssi.bg/~ja/#routes 可以下载到,在 Static, Alternative Routes, Dead Gateway Detection, NAT 找和内核对应的 patch

   下载后为内核打上,然后在

    Networking  --->  Networking options  --->  IP: advanced router

    把 IP: equal cost multipath with caching support (EXPERIMENTAL) 前面的勾去掉

    如果你不想打补丁,或不想动内核,有个简单的办法来实现,即写一个脚本,每隔2秒钟刷新一次route cache

    while : ; do
        ip route flush cache
        sleep 2
    done

文章出处:http://www.diybl.com/course/6_sy ... 2008727/134085.html


离线haikung.
发帖
1977
C币
-152724
威望
335
贡献值
1
银元
-2
铜钱
4311
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
楼上的朋友,能详细说一下么
这个补丁好像是跟route cache有关的,和NAT也有关系么?

发帖
2071
C币
-60458
威望
381
贡献值
1
银元
-2
铜钱
4624
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
二楼的朋友,我试着按你说的打上这个补丁后,发现route cache还是生效的,路由仍然是先查询route cache。是不是我打补丁的方法不对啊,在你给的那篇文章里这样写到:

************************************************************************
下载后为内核打上,然后在

    Networking  --->  Networking options  --->  IP: advanced router

    把 IP: equal cost multipath with caching support (EXPERIMENTAL) 前面的勾去掉
***********************************************************************

但是我配置menuconfig的时候却只发现有“IP: equal cost multipath”,却没有IP: equal cost multipath with caching support (EXPERIMENTAL) 这一项。
我怀疑我配置有问题,还请指正啊,谢谢了

离线lilingdong.
发帖
1975
C币
-132200
威望
375
贡献值
1
银元
-1
铜钱
4481
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13


QUOTE:原帖由 zhsishi 于 2008-10-9 18:36 发表
二楼的朋友,我试着按你说的打上这个补丁后,发现route cache还是生效的,路由仍然是先查询route cache。是不是我打补丁的方法不对啊,在你给的那篇文章里这样写到:

************************************* ...


你好,我自己也没做过负载均衡,只是以前看过这篇文章,觉得你可能是这个问题

我看了下自己的debian,系统自带的2.6.18内核,已经有个打补丁后的选项,不知是不是你内核的问题?
cb.JPG (14.83 KB)
下载次数:2
2008-10-10 00:00


查看EXIF信息
相机品牌:相机型号:曝光时间:
快门光圈:最大光圈值:F闪光灯:关闭
曝光模式:自动曝光程序:测光模式:
白平衡:自动曝光补偿:EV感光度ISO:
焦距:mm35mm等效焦距:mm 拍摄时间:

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