免费注册 查看新帖 |

Chinaunix

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

[系统管理] help! 双线部发布同端口服务问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-09-02 14:14 |只看该作者 |倒序浏览
如图片所示,
我的想法就是将服务器的同一个服务器(同一个内网IP同一个服务端口)发布到两条线路上。
我的配置如下:
$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_1 -d 2.2.2.2 -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80
$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_2 -d 3.3.3.3  -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80

echo "110 CT" >> /etc/iproute2/rt_tables
echo "120 CMC" >> /etc/iproute2/rt_tables

ip rule add from 2.2.2.2 table CT
ip rule add from 3.3.3.3 table CMC
ip route add 0/0 via 2.2.2.1 dev eth1 table CT
ip route add 0/0 via 3.3.3.1 dev eth2 table CMC

结果仍然不通,两条线只能同时有一条线是通的,另一条线不通的原因是返回包是丢到别外一条线路上了。
即此时回包没有经过CT和CMC两个表,而是走了默认路由表main。
针对上述问题,哪位大神给指点一下?

我曾试过通过iptables给包打mark,但由于相同IP相同端口,无法识别回包丢到哪个线路。

ps:
若将FW设备本身的某一个端口在两条线上同时发布,即可以正常访问。

netmap.png (67.37 KB, 下载次数: 28)

netmap.png

论坛徽章:
3
水瓶座
日期:2013-08-19 19:03:1715-16赛季CBA联赛之八一
日期:2016-02-25 18:02:4715-16赛季CBA联赛之佛山
日期:2017-03-27 14:08:12
2 [报告]
发表于 2016-09-04 22:51 |只看该作者
本帖最后由 2008ohmygod 于 2016-09-04 22:59 编辑

包进来的时候根据不同的dest IP(2.2.2.2 或 3.3.3.3 )打个mark ,返回 的时候还会有mark信息,根据mark 做 ip rule应该是可以成功的。


你的在 FW 的接口地址是 2.2.2.2 或 3.3.3.3, FW上 ip rule 规则的源地址不可能是 2.2.2.2 或 3.3.3.3 ,这就是为什么包没有经过 CT 或CMC . 而走的main

论坛徽章:
0
3 [报告]
发表于 2016-09-05 11:41 |只看该作者
回复 2# 2008ohmygod


多谢指导。

按照你所述,在进包上打mark, 我详细配置如下:

$ipt -t mangle -A PREROUTING  -i $Dev_WAN_ISP_1 -d 2.2.2.2 -p tcp --dport 80 -j MARK --set-mark 1
$ipt -t mangle -A PREROUTING  -i $Dev_WAN_ISP_2 -d 3.3.3.3  -p tcp --dport 80 -j MARK --set-mark 2
$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_1 -d 2.2.2.2 -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80
$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_2 -d 3.3.3.3  -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80

echo "110 CT" >> /etc/iproute2/rt_tables
echo "120 CMC" >> /etc/iproute2/rt_tables

ip rule add from 2.2.2.2 table CT
ip rule add fwmark 1 table CT
ip route add 10.0.0.0/8 dev eth0 via 10.1.64.17 table CT
ip route add 0/0 via 2.2.2.1 dev eth1 table CT

ip rule add from 3.3.3.3 table CMC
ip rule add fwmark 2 table CMC
ip route add 10.0.0.0/8 dev eth0 via 10.1.64.17 table CMC
ip route add 0/0 via 3.3.3.1 dev eth2 table CMC

ip route add default equalize nexthop via 2.2.2.1 dev eth1 nexthop via 3.3.3.1 dev eth2

仍然不行的。

我通过iptables日志和wireshark等分析回包,都不能发现回包中的mark.
我觉得mark只是netfilter结构中有效,当数据包路由到内网后mark将消失而无法捕捉,因此返回包中应该不会有mark信息。

论坛徽章:
0
4 [报告]
发表于 2016-09-05 16:47 |只看该作者
本帖最后由 guofs123 于 2016-09-05 17:17 编辑

问题已解决。

解决办法是进包打mark,该包将路由到内网时将mark保存起来链接状态中,当返回包到达时,再将mark恢复出来,然后根据mark来决定返回包的路由。

详细配置如下:

$ipt -t mangle -A PREROUTING  -i $Dev_WAN_ISP_1 -d 2.2.2.2 -p tcp --dport 80 -j MARK --set-mark 1
$ipt -t mangle -A PREROUTING  -i $Dev_WAN_ISP_2 -d 3.3.3.3  -p tcp --dport 80 -j MARK --set-mark 2

$ipt -t mangle -A POSTROUTING -o $Dev_LAN -m mark --mark 1  -j CONNMARK --save-mark
$ipt -t mangle -A POSTROUTING -o $Dev_LAN -m mark --mark 2  -j CONNMARK --save-mark

$ipt -t mangle -A PREROUTING  -i $Dev_LAN  -s 10.1.8.8 -p tcp --sport 80 -j CONNMARK --restore-mark

$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_1 -d 2.2.2.2 -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80
$ipt -t nat    -A PREROUTING -i $Dev_WAN_ISP_2 -d 3.3.3.3  -p tcp --dport 80 -j DNAT --to-destination 10.1.8.8:80

echo "110 CT" >> /etc/iproute2/rt_tables
echo "120 CMC" >> /etc/iproute2/rt_tables

ip rule add from 2.2.2.2 table CT
ip rule add fwmark 1 table CT
ip route add 10.0.0.0/8 dev eth0 via 10.1.64.17 table CT
ip route add 0/0 via 2.2.2.1 dev eth1 table CT

ip rule add from 3.3.3.3 table CMC
ip rule add fwmark 2 table CMC
ip route add 10.0.0.0/8 dev eth0 via 10.1.64.17 table CMC
ip route add 0/0 via 3.3.3.1 dev eth2 table CMC

ip route add default equalize nexthop via 2.2.2.1 dev eth1 nexthop via 3.3.3.1 dev eth2

多谢大家!

论坛徽章:
3
水瓶座
日期:2013-08-19 19:03:1715-16赛季CBA联赛之八一
日期:2016-02-25 18:02:4715-16赛季CBA联赛之佛山
日期:2017-03-27 14:08:12
5 [报告]
发表于 2016-09-05 20:49 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP