如何仅将特定子网(源 IP)路由到特定接口?
操作系统:Linux
我知道我可以通过目标 IP 轻松完成,方法是使用类似
route add 1.2.3.4/24 dev eth4
但我不知道如何根据源 IP 进行路由。
答案1
您需要使用基于策略的路由。类似于
ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>
<name>
是指定的表名,/etc/iproute2/rt_tables
或者您可以使用数字 ID ...
这基本上意味着,所有来自的流量1.2.3.4/24
都将使用路由表进行路由<name>
。IIRC 经过此操作后不会使用默认表,因此如果您需要其他路由(即默认网关),您也需要将它们添加到表中。
答案2
http://wiki.wlug.org.nz/SourceBasedRouting
该站点有一个很好的基于源的路由示例。