我想知道是否可以根据数据包来自哪个接口以不同的方式路由同一个数据包。例如,Linux 机器上有两个以太网接口,eth1 和 eht2。对于具有相同目标和源 IP 地址的 IP 数据包,如果数据包来自 eth1,则下一跳将是 IP-X,如果数据包来自 eth2,则下一跳将是 IP-Y。
答案1
是的,您可以完全按照这种方式操作。但是,您可能并不真的想这样做。这类方案的问题在于,它们往往会破坏其他方向的流量,从而导致网络无法正常工作。您真正想要的可能是基于源的路由。
Linux 允许您创建多个路由表。每个都可以有自己独立的路由和网关。然后,您可以根据数据包接收的接口或源地址选择数据包使用的路由表。通常,源地址就是您真正想要的。例如,这是将一台机器连接到多个 Internet 连接的明智方法。