免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: coolend
打印 上一主题 下一主题

[网络管理] 双线策略路由的三种实现方式总结+端口映射[完结] [复制链接]

论坛徽章:
1
平安夜徽章
日期:2015-12-26 00:06:30
31 [报告]
发表于 2008-12-03 16:17 |只看该作者
原帖由 coolend 于 2008-7-22 10:48 发表
非常感谢 kevin.tan 提供的信息,上面的route补丁偶其实已经打了,但是没有取消掉

IP: equal cost multipath with caching support (EXPERIMENTAL)

现在重新编译下内核,看看有没有问题~~~~

我想问下,你这个步骤咋做的

make menuconfig
make clean
make bzImage
make modules
嘛?

论坛徽章:
0
32 [报告]
发表于 2010-01-08 10:52 |只看该作者
很经典,收藏先

论坛徽章:
0
33 [报告]
发表于 2010-02-04 11:00 |只看该作者
能整理出个文档就好了,谢谢了

论坛徽章:
0
34 [报告]
发表于 2012-04-12 16:24 |只看该作者
我现在也遇到同样的问题,按照iptables+iproute2方法配置好后,发现没有效果,还是只能用一个ip访问内网的服务器,请问我怎么监控打标记的连接呢?我想看到底有没有按照需要路由。谢谢回复 4# coolend


   

论坛徽章:
0
35 [报告]
发表于 2012-07-17 22:15 |只看该作者
真心需要帮助,这个问题困扰了几个月了。。。。。。

论坛徽章:
0
36 [报告]
发表于 2012-07-26 14:37 |只看该作者
一直被双线访问内网服务器的路由问题困扰,也在网上找了不少资料,但有些方法比较复杂,对我这种懒人来说实在懒得去看去测试。最接近的方法是iptables+iproute2,但我比较杯具的木有测试成功。。。。。后来自己慢慢想,居然想出了这么个懒办法。
环境
server 1 (Centos5)

双网卡eth1和eth2,分别配置了电信和联通的ip,还有一个内网口eth0做为内网网关。
TEL="eth1"
TEL_IP="电信ip"
TEL_GW="电信网关"
CNC="eth2"
CNC_IP="联通ip"
CNC_GW="联通网关"

这台服务器上已经用策略路由做了数据包原路返回,即从外部访问电信ip则原路从电信ip返回,联通ip也原路返回。
/sbin/ip route replace default via $TEL_GW dev $TEL

/sbin/ip route flush table TEL
/sbin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.1 table TEL
/sbin/ip route add default via $TEL_GW dev $TEL src $TEL_IP table TEL
/sbin/ip rule add from $TEL_IP table TEL

/sbin/ip route flush table CNC
/sbin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.1 table CNC
/sbin/ip route add default via $CNC_GW dev $CNC src $CNC_IP table CNC
/sbin/ip rule add from $CNC_IP table CNC


然后做了iptables的端口映射到server 2机器的21端口。

$IPTABLES -t nat -A PREROUTING -p tcp --dport 4376 -j DNAT --to-destination 192.168.1.2:21

server 2 (Centos6)

应用服务器,只配置了一个内网ip,上面开了ftp服务。

eth0=192.168.1.20

现在的问题是,如果从电信ip访问则可以连接上ftp服务器,因为默认路由是从电信ip出,但从联通ip访问时,从上面的策略路由可以看到,只对是eth1和eth2做了策略路由,ftp服务器返回的数据是从eth0口进入,路由无法区分是从哪个外网ip访问的,所以出口还是会走默认的电信ip,最终被上层网关丢弃而无法正常访问。

此时该如何做才可以做到两个外网ip同时可以访问到内网ftp服务器呢


---------------------------------------------------

7月18日

几个月了,我都没找到一个能用的解决方案。

昨天在网上闲逛,看到有人提到这个问题,说是可以用特定ip做静态路由。

这个说得有些含糊,我理解是在内网ftp上再加一个ip,可以是同一段的内网ip,也可以是不同段的内网ip,然后在网关上做静态路由指向联通出口。这个方法理论上是可行的,但我还没有配置到工作环境里去,等过几天配置好再详细整理有关配置。



-------------------------------------------------------------------------------------

7月26日

几天前,我已经验证了上面的想法,是完全可行的。下面就是完整解决方法。

根据以前的配置,只要在ftp服务器上多加一个内网iip,这个内网ip最好和现有的内网同一段,当然也可以用不同段的内网ip。比如我就在server 2上加了一个。所以现在server2上就有两个内网ip了
eth0=192.168.1.20
eth1=192.168.1.25
对server2的改动就这些,其他的什么都不用动。
接下来再回到server1上
修改iptables的映射
$IPTABLES -t nat -A PREROUTING -p tcp -d 电信ip --dport 4376 -j DNAT --to-destination 192.168.1.20:21
$IPTABLES -t nat -A PREROUTING -p tcp -d 联通ip --dport 4376 -j DNAT --to-destination 192.168.1.25:21
这样就把从两个外网ip访问的流量分别映射到server2的两个ip上。

然后再添加基于源地址的策略路由
ip rule add from 192.168.1.20 table TEL
ip rule add from 192.168.1.25 table CNC
这样做的意思就是如果接收到源地址是192.168.1.20的数据包,就放到tel的路由表中,这样它就会从tel的网关出去了。
同理接收到192.168.1.25为源地址的数据包,就放到cnc路由表中,就从cnc网关出去了。

注意在server1上要同时有
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 电信ip
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to-source 联通ip


到此,就解决了双线访问内网的问题。

论坛徽章:
0
37 [报告]
发表于 2013-01-05 11:07 |只看该作者
感谢楼主分享{:2_168:}

论坛徽章:
0
38 [报告]
发表于 2013-01-07 17:22 |只看该作者
谢谢,正研究这一块的,先来留个脚印,以后详看

论坛徽章:
0
39 [报告]
发表于 2013-01-09 22:06 |只看该作者
最近有用到, 先mark 一下,慢慢看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP