局域下,有两个网关,数据想原路返回,有什么办法?

2017-04-01 10:13:04 +08:00
 dark456852

在同一个网络下有两个网关,旧的网关 ISP 线路端口已满,但是有台机子设了旧网关为默认网关,从外面进来的新网关数据如何原路返回?服务器是 centos 用了一张网卡,除了使用高级路由策略,双网卡双网段,还有什么好办法?

3125 次点击
所在节点    Linux
17 条回复
dark456852
2017-04-01 10:13:35 +08:00
有大神在吗?
zwzmzd
2017-04-01 10:53:35 +08:00
策略路由,用 ip rule 区分数据包来源,再应用各自的路有表

假设来自 192.168.1.10 的流量想从 192.168.1.10 发送出去:
ip rule add from 192.168.1.10 table xxx
ip route add default via 192.168.1.10 table xxx
不过这个方法仅针对 tcp 协议有效, udp 看应用还要想些其他办法
LoliconInside
2017-04-01 11:06:13 +08:00
嗨呀 不就是多线路由嘛 多大点事。
编辑 /etc/iproute2/rt_tables ,在最后添加两行:
251 old
252 new

然后编辑 /etc/rc.local ,在 exit 0 前面增加如下内容:
OLD_GW="旧网关 IP"
OLD_IP="旧 IP"
NEW_GW="新网关 IP"
NEW_IP="新 IP"

ip route flush table old
ip route add default via $OLD_GW dev 网卡名 src $OLD_IP table old
ip rule add from $OLD_IP table old

ip route flush table new
ip route add default via $NEW_GW dev 网卡名 src $NEW_IP table new
ip rule add from $NEW_IP table new

重启,齐活
nilai
2017-04-01 11:09:47 +08:00
NAT
Sh888
2017-04-01 11:20:01 +08:00
这个架构有点奇怪。为什么多 WAN 不在网关实现,而在客户端实现?
youyoumarco
2017-04-01 11:23:57 +08:00
@LoliconInside 666 膜拜啊
jasontse
2017-04-01 11:44:03 +08:00
搜一下双线双 IP 配置 Windows 和 Linux 都有,基本上就是楼上说的那样。
ifaii
2017-04-01 14:17:58 +08:00
@LoliconInside 你这个方法还得在网关做双向 NAT 才行,如果只有单向 nat 是没法区分原地址的,主机收到的都是外部地址
LoliconInside
2017-04-01 14:30:04 +08:00
@ifaii 先试过再发言 我公司线上的双线服务器都这么配的用了很久了
dark456852
2017-04-03 14:55:01 +08:00
@LoliconInside 你说的这个方法我知道,但公司网络有些复杂,不能使用多网卡,使用多网卡后网络会更复杂, NEW_IP 和 OLD IP 只适用于机房吧?而我这里只有新网关和旧网关来分别出口和入口,无法区别是否有新 IP 和旧 IP ISP 线路。
LoliconInside
2017-04-05 10:25:06 +08:00
@dark456852 只适用于机房是什么意思?麻烦问题再描述的具体一些。
dark456852
2017-04-05 17:22:59 +08:00
@LoliconInside 因为内网没法将外网 IP 定义,只能定义网关,网关决定了外网的出入数据。
LoliconInside
2017-04-06 17:28:13 +08:00
@dark456852 如何定义外网 IP ?我认为不需要定义,上层网关已经将进来的路径决定了,你只需要将数据原路返回,这样不管是私网地址还是公网地址,实际上是一回事。不要觉得私网地址和外网地址不一样,路由原理是一样的,只是出公网有没有 NAT ,能不能直接被其他公网主机访问的区别。
aulong
2020-09-11 22:42:33 +08:00
@zwzmzd 这个 xxx 填什么啊 随便写吗
aulong
2020-09-11 23:36:41 +08:00
@zwzmzd 你这个方法实测不行啊 来源 ip 都是公网 IP 你指定个内网 ip 有啥用
aulong
2020-09-11 23:42:19 +08:00
@zwzmzd 要求是 服务端有两个公网 ip 客户端不管访问哪个都行 你这样设置变成只能访问一个了
aulong
2020-09-11 23:45:41 +08:00
@LoliconInside 你上面说新旧 ip 人家就一张网卡哪来的两个 ip

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351907

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX