如何仅将特定子网(源 IP)路由到特定接口?

Ale*_*lex 37 networking linux router routing ip

如何仅将特定子网(源 IP)路由到特定接口?
操作系统:Linux

我知道我可以通过使用类似的目标 IP 轻松完成

route add 1.2.3.4/24 dev eth4

但我不知道如何根据源 IP 进行路由。

小智 36

您需要使用基于策略的路由。有点像

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>
Run Code Online (Sandbox Code Playgroud)

<name>是指定的表名,/etc/iproute2/rt_tables或者您可以使用数字 id ...

这几乎是说,来自的所有流量1.2.3.4/24都将使用路由表进行路由<name>。IIRC在经过这个之后不使用默认表,因此如果您需要其他路由(即默认网关),您也需要将它们添加到表中。

  • 一个更正(但不确定你的是否也适用。对于第二个命令:`ip route add default dev eth4 table &lt;name&gt;`(我认为`table`指令应该放在最后,就像在第一个命令中一样。 .. 也可以用子网替换 `default`,就像在你的例子中一样) (3认同)

day*_*aya 9

http://wiki.wlug.org.nz/SourceBasedRouting

这个站点有一个很好的基于源的路由示例。

  • 请从参考链接中引用答案的重要部分,因为如果链接页面发生更改,答案可能会失效。 (2认同)