按目标网络将流量路由出不同的网关

Wal*_*ter 10 iptables iproute

我有几个网关,想根据目的地将一些流量从不同的网关路由出去。我猜我需要结合使用 iproute2 和 iptables 规则,但不确定从哪里开始。
有人可以提供一个例子吗?

Bru*_*ger 9

你可能可以做你想做的ip route

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0
Run Code Online (Sandbox Code Playgroud)

第一个ip route add显示单个 IP 地址,将给定的以太网接口 (ep3s8) 发送到下一跳路由器 10.0.0.1

第二条路由针对整个网络 10.xyz,发送给定的以太网卡 eth0。那是“本地网络”,它没有下一跳路由器,它们都在同一条逻辑线路上。

但是,您想man ip-route在做任何事情之前先阅读。另外,请准备好必须重新启动,并且不要远程执行此操作。您可以很容易地创建不正确的路由来终止您的远程访问。在最后的建议中,我是经验之谈。


Mar*_*iae 6

您要问的是policy-based routingsource-based routing。David Schwartz 在同一个站点上有一篇精彩的介绍

我想指出还有一个简洁的小程序,可以在这里找到,它允许您将特定的应用程序绑定到给定的界面。这对于像 openssh 这样的应用程序来说当然很容易,这些应用程序可以选择绑定到所需的侦听地址。但是这个库允许您将没有这些选项的应用程序(如 Firefox)绑定到给定的 IP 地址。

通过这种方式,您可以选择是希望为所有应用程序提供单独的路由表,还是在每个应用程序的基础上覆盖这些相同的规范。