免费注册 查看新帖 |

Chinaunix

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

[网络管理] linux双网卡做NAT后的路由原路返回问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-04-20 15:56 |只看该作者

回复 #8 Axin 的帖子

当有双网卡时,NAT工作是正确的,但路由的时候,NAT后出来的包的路由却错了,本是这个网卡的包会走另一个网卡的路由,当然SNAT是对的,IP肯定都没错,还是进来时的网卡的IP做为出去的源IP。2个网卡的路由都走缺省的那个网卡的路由去了。策略路由对NAT后内网出来的包无效.两个外网,我已经加了以下的策略路由:
ip rule add from IP1 lookup eth1
ip rule add from IP2 lookup eth2

table eth1:
192.168.6.0/24 dev br0  proto kernel  scope link  src 192.168.6.1
default via IP1 dev eth1

table eth2:
192.168.6.0/24 dev br0  proto kernel  scope link  src 192.168.6.1
default via IP2 dev eth2

论坛徽章:
0
12 [报告]
发表于 2007-04-22 14:38 |只看该作者
IP1 和 IP2是那个地址?

ip rule add from IP1 lookup eth1
ip rule add from IP2 lookup eth2

table eth1:
192.168.6.0/24 dev br0  proto kernel  scope link  src 192.168.6.1
default via IP1 dev eth1

table eth2:
192.168.6.0/24 dev br0  proto kernel  scope link  src 192.168.6.1
default via IP2 dev eth2

论坛徽章:
0
13 [报告]
发表于 2007-04-24 09:51 |只看该作者
adv routing中应该是isp的接口地址,这样不NAT的话是可以实现的
要不cisco也不会到现在还没有研究出来这类双线解决办法。
cisco是先route,再nat,不知道linux是怎么处理的,搞清楚了有没有解决办法就清晰了

LZ的用iptables加MARK的方式我感觉从判断上来说可能。苦于没有环境。
能不能
iptables -t nat -i $if1 -j MARK --set-mark 4 (这里不知道有没有语法错误) ==>ip route add fwmark 4 table T1
iptables -t nat -i $if2 -j MARK --set-mark 5  ==>ip route add fwmark 5 table T2


http://linux-ip.net/html/ch-nat.html 这里说直接用route2解决nat问题比较吸引人:)

[ 本帖最后由 luweinet 于 2007-4-24 10:00 编辑 ]

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
14 [报告]
发表于 2007-04-24 13:49 |只看该作者
原帖由 luweinet 于 2007-4-24 09:51 发表于 12楼  
adv routing中应该是isp的接口地址,这样不NAT的话是可以实现的
要不cisco也不会到现在还没有研究出来这类双线解决办法。
cisco是先route,再nat,不知道linux是怎么处理的,搞清楚了有没有解决办法就清晰了
...



LINUX的路由和NAT的思路和CISCO是一样的,CISCO也有DNAT和SNAT,不过统一都叫NAT。针对DNAT CISCO叫静态映射,对于SNAT叫端口复用。做MARK的方法可能行不通,因为MARK是针对本地协议站的,数据包出去后根本不带有MARK标记,相应的回应包也没有MARK标记。

我个人认为内网及其加双网卡,NAT机器针对不同的来源ISP,DNAT到不同的网卡,在内网服务器上配置从那个网卡进的数据还从那个网卡出(就是高级路由上的做法),也许可以解决。

论坛徽章:
0
15 [报告]
发表于 2007-04-24 14:52 |只看该作者
TO SSFFZZ1,

LZ说有多个机器被NAT了。那按你说的,可否理解成将其中某几个机器走ETH1,另外几个走ETH2?

LZ的问题是ADVANCED ROUTING是在POSTROUTING SNAT前,因此不起任何作用。是吗?

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
16 [报告]
发表于 2007-04-24 15:30 |只看该作者
路由是发生在SNAT钱,DNAT后的事情。

我的思路是这样的,假设内网中有2台内容完全一样的(先不讨论如何同步数据)机器,在NAT服务器上,针对不同的ISP来源数据包DNAT到不同的服务器上去,相应的返回数据包在NAT服务器端,根据不同的源地址,走不同的ISP接口。这样应该能实现。

论坛徽章:
0
17 [报告]
发表于 2007-04-24 15:35 |只看该作者
如果内网络几个机器是独立的(不是CLONE),那么分机器走可以吗?

我也在考虑这个问题)

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
18 [报告]
发表于 2007-04-24 16:00 |只看该作者
不是CLONE

什么是CLONE。

论坛徽章:
0
19 [报告]
发表于 2007-04-24 16:13 |只看该作者
CLONE我这里意思是机器都完全相同(内容完全一样)

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
20 [报告]
发表于 2007-04-24 16:16 |只看该作者
也可以,但譬如说浏览网页会得到不同的内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP