我有一个活动的Linux路由器(运行CentOS),它有三个接口(ens100、ens101、ens102).我用iptables来引导交通。
我的问题是“服务器A”和“服务器B”之间的连接。我不能从"Server“中选择"Server”,但是我可以从"Linux路由器“中选择"Server”。我还可以看到,有包从“服务器B”到“服务器A”通过"Linux路由器“ens100接口
我认为这是因为“服务器B”在“交换机A”上有一个默认网关,因此来自“服务器B”的流量通过“交换机A”、“交换机B”以及最后通过"Linux路由器“进行路由。但是,因为"Linux路由器“与”服务器B“在同一个网络中有一个接口,所以从”服务器A“到”服务器B“的所有通信都将绕过”交换机B“和”交换机A“路由。好像是在刹车。
我想在"Linux路由器“上进行某种条件转发或基于策略的路由,以便将从”服务器A“到10.2.0.0/24的通信量路由/转发到”交换机B“,即通过ens100而不是通过ens102 (Linux-路由器上网络10.2.0.0/24的默认路由接口)。
发布于 2020-05-08 16:17:06
正如A.B所评论的--解决方案(不确定是否唯一的解决方案)是使用基于策略的路由。
步骤1:使用未使用的id向/etc/iproute2/rt_tables添加一个新表,在我的例子中是105 appstest
步骤2:强制将新路由表用于“服务器A”驻留的网络连接:ip rule add from 10.5.0.0/24 table appstest
步骤3:从主表中添加路由,但替换:
10.2.0.0/24 dev ens102 proto kernel scope link src 10.2.0.252 metric 102与
10.2.0.0/24 via 10.8.0.254 dev ens100 proto static metric 102
因此,这些命令变成:
ip route add default via 10.8.0.254 dev ens100 proto static metric 100 table appstest
ip route add 10.2.0.0/24 via 10.8.0.254 dev ens100 proto static metric 102 table appstest
ip route add 10.5.0.0/24 dev ens101 proto kernel scope link src 10.5.0.254 metric 101 table appstest
这些指标是我的设置特定的。希望这能帮上忙。
https://serverfault.com/questions/1016294
复制相似问题