免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3114 | 回复: 0
打印 上一主题 下一主题

如何做流出流量的分流 [复制链接]

论坛徽章:
1
白羊座
日期:2014-11-19 14:18:59
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-07 16:13 |只看该作者 |倒序浏览
本帖最后由 鸿钧 于 2014-11-07 16:16 编辑

二台linux服务器:

A服务器:公网IP:1.1.1.1   内网IP:192.168.0.1    web服务器
B服务器:公网IP:1.1.1.2   内网IP:192.168.0.2    数据库服务器

这两台服务器内网通过网线直连。

现在的情况是A服务器公网流量过高,需要分流一些流量到B服务器出去,A服务器主要应用是web服务80端口。B服务器就是安装数据库,没有装其他。
要求在不新安装其他应用,就是不改变现有软件环境的情况下,通过路由等,把访问A服务器的web流量,全部让其通过B服务器出去,要如何做呢。


我通过设置如下:
A服务器:
ip rule add fwmark 100 table 3
ip route add 0/0 via 192.168.0.2 table 3
iptables -t mangle -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 100

B服务器:
/sbin/ifconfig lo:0 1.1.1.1 broadcast 1.1.1.1 netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

能够把访问A服务器80的回应包转到B服务器的内网网卡,可是B服务器不能把这个回应包再通过本机eth0应答出去,要怎样才能让包发出去呢?

在B服务器内网网卡监听到转过来的包:

[root@localhost ~]# tcpdump -i eth1 -nnnv port 80
14:07:05.945826 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6098:6170(72) ack 501 win 46
14:07:05.945947 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6170:6171(1) ack 501 win 46
14:07:05.945955 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6171:6172(1) ack 501 win 46
14:07:05.945960 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6172:6173(1) ack 501 win 46
14:07:05.945965 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6173:6174(1) ack 501 win 46
14:07:05.945987 IP 1.1.1.1.80 > 113.92.239.90.14632: P 6174:6179(5) ack 501 win 46
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP