Linux路由双线策略路由中出现 不同出口 相同NAT源ip
本帖最后由 amplatzer 于 2010-10-28 19:46 编辑
=======================
环境: 小区 宽带FTTB openwrt 路由系统 基于linux 2.6.32.16 内核 单ISP多拨,分到多个外网ip,带宽叠加 没问题。
用策略路由做负载均衡 ,我不是很清楚 策略路由具体是怎么工作的,但通过 查看 iptables 被 hit中的数据 包,从每个接口出去的包数量都 差不多
现在问题是我在 wan2 口上 可以监听到 带有wan1 wan3 源ip的包
同样 ,在每个wan口都 能监听到一些“非自己” 源ip发出的包,然后这些包出去就都 从那个 “源ip”的端口回来 了。
这样确实 可以达到了负载均衡 ,而且 不存在 qq掉线 之类 的问题,但有很多朋友 跟我一样的环境 。 他们的qq经常 掉线 。随机 的,网银有的时候 也用不成。游戏 也掉。
所以我猜想,是否是 nat 映射 表 超时时间的问题,在一定时间内,如果 有相同 dest 地址 的数据 包过来 。就根据 上一次的 nat 方式 来进行地址 转换,
因为nat 是在routing 之后 的。所以,从哪个接口出去 是策略路由的事。而 nat 照样 可以把他转成 非接口上的源ip 。
那请问如果像我猜想的这样,在哪个地方打开 这个开关呢,或者 说,如果延长这个 nat 映射 有效时间,从而达到 无缝的负载均衡
===============================
情况 是这样,我用某linux 路由系统 ,做双线负载
就在两边 pppoe拨上后,添加 了一条 策略路由
# ip route
222.79.76.1 dev pppoe-wan2 proto kernel scope link src 222.79.76.151
222.79.76.1 dev pppoe-wan1 proto kernel scope link src 222.79.76.130
192.168.1.0/24 dev br-lan proto kernel scope link src 192.168.1.1
default
nexthop via 222.79.76.130 dev pppoe-wan1 weight 1
nexthop via 222.79.76.151 dev pppoe-wan2 weight 1
1 这样一切正常, 我指定 443 端口走wan2 ,然后登录 QQ,(已经指定 tcp服务器)
监控 两个 wan
发现流量 确实 都 走wan2
2 然后,我通过 ip route replace default dev pppoe-wan1 table 200 (table 200 为 443 标记的包所检索 的路由表)
然后,按常理应该是 ,wan2的 443 流量 会断,全部转到 wan1
但是, 实际 情况 是。。出去的流量确实都走了 wan1 ,而 在wan1接口上监听 的包的源ip,都 是wan2的。。
这样回来 的包还是从wan2进来 。
3 退出 qq,重新登录 ,服务器端口不变, 这回就正常 全部 443流量 走 wan1了。。
求解。。 为什么修改策略后。 wan2 发出去的包 的源ip还是 wan1 的呢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
本帖最后由 amplatzer 于 2010-11-01 21:00 编辑
root@H618b:~# iptables-save
# Generated by iptables-save v1.4.6 on Mon Nov 1 21:00:17 2010
*nat
:PREROUTING ACCEPT [880:107590]
:POSTROUTING ACCEPT [2:124]
:OUTPUT ACCEPT [6:384]
:postrouting_rule - [0:0]
:prerouting_lan - [0:0]
:prerouting_rule - [0:0]
:prerouting_wan - [0:0]
:zone_lan_nat - [0:0]
:zone_lan_prerouting - [0:0]
:zone_wan_nat - [0:0]
:zone_wan_prerouting - [0:0]
-A PREROUTING -i pppoe-vvan2 -j zone_wan_prerouting
-A PREROUTING -i pppoe-vvan1 -j zone_wan_prerouting
-A PREROUTING -i br-lan -j zone_lan_prerouting
-A PREROUTING -j prerouting_rule
-A POSTROUTING -j postrouting_rule
-A POSTROUTING -j zone_wan_nat
-A zone_lan_nat -o br-lan -j MASQUERADE
-A zone_lan_prerouting -j prerouting_lan
-A zone_wan_nat -o pppoe-vvan2 -j MASQUERADE
-A zone_wan_nat -o pppoe-vvan1 -j MASQUERADE
-A zone_wan_prerouting -j prerouting_wan
COMMIT
# Completed on Mon Nov 1 21:00:17 2010
# Generated by iptables-save v1.4.6 on Mon Nov 1 21:00:17 2010
*raw
:PREROUTING ACCEPT [25560:22152170]
:OUTPUT ACCEPT [112:17624]
:zone_lan_notrack - [0:0]
:zone_wan_notrack - [0:0]
-A PREROUTING -i pppoe-vvan2 -j zone_wan_notrack
-A PREROUTING -i pppoe-vvan1 -j zone_wan_notrack
-A PREROUTING -i br-lan -j zone_lan_notrack
COMMIT
# Completed on Mon Nov 1 21:00:17 2010
# Generated by iptables-save v1.4.6 on Mon Nov 1 21:00:17 2010
*mangle
:PREROUTING ACCEPT [706:607462]
:INPUT ACCEPT [13:914]
:FORWARD ACCEPT [693:606548]
:OUTPUT ACCEPT [11:2122]
:POSTROUTING ACCEPT [704:608670]
COMMIT
# Completed on Mon Nov 1 21:00:17 2010
# Generated by iptables-save v1.4.6 on Mon Nov 1 21:00:17 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:forward - [0:0]
:forwarding_lan - [0:0]
:forwarding_rule - [0:0]
:forwarding_wan - [0:0]
:input - [0:0]
:input_lan - [0:0]
:input_rule - [0:0]
:input_wan - [0:0]
:output - [0:0]
:output_rule - [0:0]
:reject - [0:0]
:syn_flood - [0:0]
:zone_lan - [0:0]
:zone_lan_ACCEPT - [0:0]
:zone_lan_DROP - [0:0]
:zone_lan_MSSFIX - [0:0]
:zone_lan_REJECT - [0:0]
:zone_lan_forward - [0:0]
:zone_wan - [0:0]
:zone_wan_ACCEPT - [0:0]
:zone_wan_DROP - [0:0]
:zone_wan_MSSFIX - [0:0]
:zone_wan_REJECT - [0:0]
:zone_wan_forward - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn_flood
-A INPUT -j input_rule
-A INPUT -j input
-A FORWARD -j zone_wan_MSSFIX
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j forwarding_rule
-A FORWARD -j forward
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -j output_rule
-A OUTPUT -j output
-A forward -i br-lan -j zone_lan_forward
-A forward -i pppoe-vvan1 -j zone_wan_forward
-A forward -i pppoe-vvan2 -j zone_wan_forward
-A input -i br-lan -j zone_lan
-A input -i pppoe-vvan1 -j zone_wan
-A input -i pppoe-vvan2 -j zone_wan
-A output -j zone_lan_ACCEPT
-A output -j zone_wan_ACCEPT
-A reject -p tcp -j REJECT --reject-with tcp-reset
-A reject -j REJECT --reject-with icmp-port-unreachable
-A syn_flood -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 25/sec --limit-burst 50 -j RETURN
-A syn_flood -j DROP
-A zone_lan -j input_lan
-A zone_lan -j zone_lan_ACCEPT
-A zone_lan_ACCEPT -i br-lan -j ACCEPT
-A zone_lan_ACCEPT -o br-lan -j ACCEPT
-A zone_lan_DROP -i br-lan -j DROP
-A zone_lan_DROP -o br-lan -j DROP
-A zone_lan_MSSFIX -o br-lan -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A zone_lan_REJECT -i br-lan -j reject
-A zone_lan_REJECT -o br-lan -j reject
-A zone_lan_forward -j zone_wan_ACCEPT
-A zone_lan_forward -j forwarding_lan
-A zone_lan_forward -j zone_lan_ACCEPT
-A zone_wan -p udp -m udp --dport 68 -j ACCEPT
-A zone_wan -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A zone_wan -j input_wan
-A zone_wan -j zone_wan_REJECT
-A zone_wan_ACCEPT -i pppoe-vvan2 -j ACCEPT
-A zone_wan_ACCEPT -o pppoe-vvan2 -j ACCEPT
-A zone_wan_ACCEPT -i pppoe-vvan1 -j ACCEPT
-A zone_wan_ACCEPT -o pppoe-vvan1 -j ACCEPT
-A zone_wan_DROP -i pppoe-vvan2 -j DROP
-A zone_wan_DROP -o pppoe-vvan2 -j DROP
-A zone_wan_DROP -i pppoe-vvan1 -j DROP
-A zone_wan_DROP -o pppoe-vvan1 -j DROP
-A zone_wan_MSSFIX -o pppoe-vvan2 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A zone_wan_MSSFIX -o pppoe-vvan1 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A zone_wan_REJECT -i pppoe-vvan2 -j reject
-A zone_wan_REJECT -o pppoe-vvan2 -j reject
-A zone_wan_REJECT -i pppoe-vvan1 -j reject
-A zone_wan_REJECT -o pppoe-vvan1 -j reject
-A zone_wan_forward -j forwarding_wan
-A zone_wan_forward -j zone_wan_REJECT
COMMIT
# Completed on Mon Nov 1 21:00:17 2010
MASQUERADE 这个难道不是SNAT吗?
iptables-save 给我
顶起 求助。
顺便 问一下。。如果 有30条3M的线路 。可以做负载 均衡 么
snat如何做的
回复 6# ssffzz1
没有做 snat 的策略,就是每个出口都 允许 masq 而已。
顶起。
本帖最后由 amplatzer 于 2010-10-25 12:43 编辑
wan2 全是回来 的包
tcpdump -i pppoe-wan2 host 219.133.49.180 and port 443
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pppoe-wan2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
12:22:07.638001 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [P.], ack 2814644970, win 32767, length 41
12:22:08.780895 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [.], ack 154, win 32767, length 0
12:22:08.822331 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [P.], ack 154, win 32767, length 33
12:22:09.007322 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [.], ack 307, win 32767, length 0
12:22:09.041266 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [P.], ack 307, win 32767, length 33
12:22:09.376911 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [.], ack 460, win 32767, length 0
12:22:09.980671 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [.], ack 613, win 32767, length 0
12:22:10.026855 IP 219.133.49.180.443 > 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861: Flags [P.], ack 613, win 32767, length 33
本帖最后由 amplatzer 于 2010-10-25 12:43 编辑
wan1 全是出去的包
tcpdump -i pppoe-wan1 host 219.133.49.180 and port 443
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pppoe-wan1, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
12:21:53.609693 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [.], ack 4216136211, win 63810, length 0
012:22:07.612603 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [P.], ack 1, win 63810, length 41
12:22:07.840344 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [.], ack 42, win 63769, length 0
12:22:08.702606 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [P.], ack 42, win 63769, length 153
12:22:08.984903 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [P.], ack 75, win 63736, length 153
12:22:09.253465 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [.], ack 108, win 63703, length 0
12:22:09.314086 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [P.], ack 108, win 63703, length 153
12:22:09.958437 IP 130.76.79.222.board.xm.fj.dynamic.163data.com.cn.51861 > 219.133.49.180.443: Flags [P.], ack 108, win 63703, length 153
两条线路 均为电信。pppoe的对端ip一样。。