Debian - 每个 ip 或接口的默认网关

网络工程 网络访问
2022-03-02 18:28:52

有4个网络接口...

  1. 光纤 300mbps(仅用于服务器之间的内部通信)
  2. GSM 调制解调器(PPP、wvDial、GSM 网络 #1)
  3. 其他 GSM 调制解调器(PPP、wvDial、GSM 网络 #2)
  4. 又一个 GSM 调制解调器(PPP、wvDial、GSM 网络 #3)

默认情况下,一切都使用光纤连接,但我希望某些应用程序强制使用 GSM 网络。所以我将LD_PRELOAD参数与ip binding script一起使用。

这部分有效...您可以设置BIND_ADDR并应用程序使用它,但问题在于default gateway将其设置为光纤网络...因此从 GSM nerwork 绑定 ip 只会导致根本没有连接。

我该如何做对,所以在绑定到接口 2 或 3 或 4 的 ip 后,它将使用该接口的网关?请注意,IP 地址是可变的!

新年快乐!

1个回答

有几种方法可以解决这个问题。

一种方法是基于源地址进行路由。http://www.lartc.org/howto/lartc.rpdb.html#LARTC.RPDB.SIMPLE有一个示例(该示例使用远程源地址,但我不相信本地和远程源地址)。然后,您可以将它与您必须强制应用程序绑定到特定本地地址的脚本结合使用。

另一种方法是使用网络命名空间。这允许您使用网络堆栈的单独副本隔离应用程序。然而,它仍然是一个相当新的功能,当我尝试它时,我无法让它工作。