熟悉 Linux 做多网卡软路由(iptables)的朋友,这个高难度,应该怎么做?

2020-04-10 00:43:26 +08:00
 qazwsxkevin

linux 的机器,估计就是 Centos6,机器上有很多网口,
A 网口是主口 eth0 (类似 WAN ),IP 地址是 192.168.89.22/24,机器上的路由表是 0/0 都往 192.168.89.254 走。

现在有 J 口 eth7 和 K 口 eth8
J 网口 IP 地址,eth7:172.16.20.254/24
K 网口 IP 地址,eth8:192.168.33.6/24

需求一和二: 来自源地址是 172.16.20.0/24 的数据(J 口进来), 在 K 网口出去,eth8 的 IP 做动态 NAT,下一跳往 192.168.33.254 走,并且保证回流的数据,能回流到 172.16.20.0/24

自己做过的尝试是:
iptables -t nat -A POSTROUTING -s 172.16.20.0/24 -o eth8 -j MASQUERADE

用 tcpdump 看到 eth8 根本就没有流量转过去
但后来听别人说,这种需求 iptables 无法做到
要用到 ebtables ?

5313 次点击
所在节点    Linux
21 条回复
qazwsxkevin
2020-04-13 08:55:39 +08:00
感谢各位热心解答,
这个应用已经解决,
正如各位所说的,做了 NAT 后,还要建新路由表+策略路由
这个 linux 被打磨过,看不出是什么版本改出来的
有 /etc/sysconfig,没有 issue 和 version_replease 之类的文件,反正文件结构就很像是 CentOS,也像是 Openwrt 改出来的
关于:
ip route add default via 192.168.33.254 dev eth8 table 12
我这里用这句能写上去,但是不能工作
但是如果不指定接口:
ip route add default via 192.168.33.254 table 12
就正常了,正常逻辑是指定接口会更细化,但实际指了不能工作,也不知道是什么原因了。。。

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

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

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

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

© 2021 V2EX