是否可以根据源端口强制 IP 源?

是否可以根据源端口强制 IP 源?

我对路由有疑问。我搜索了互联网,找到了一些提示,但无法让它工作。

我有一台具有 2 个公有 IP 和相同网关的服务器。假设 1.1.1.1(在 eth0 上)和 1.1.1.2(在 eth0:0 上),网关为 1.1.1.254(网络 /24)。

还有第二台服务器(不是我的),其 IP 为 2.2.2.2/24。

在这两台服务器之间,我有 radius 和 http flux。

目前,从我的服务器到另一台服务器的所有流量都来自 IP 1.1.1.1。另请注意,Radius 监听 IP 1.1.1.2 和端口 1812 和 1813(均为 UDP)。

我想要做的是,只有来自 Radius 端口的数据包才会以源 IP 1.1.1.2 发送。所有 HTTP 流量都必须像以前一样来自 1.1.1.1。

答案1

只需让您的 radius 服务器仅绑定到 1.1.1.2。这样它就只会与 IP 1.1.1.2 通信。这正是其bind()设计目的。

请注意,在 Linux 上,bind()不限制可以使用哪个网络接口进行通信。它只是限制可以使用哪个 IP 地址。

当然,如果客户端无论如何都要连接到 1.1.1.1,它将被拒绝。但无论如何,这种通信都行不通:如果你无论如何都以 1.1.1.2 的身份回复,那么联系 1.1.1.1 的主机将无法识别这两个 IP 属于同一主机。


另外,您的帖子表明您正在使用ifconfig和接口别名。请注意,ifconfig已经过时,接口别名已被严重弃用。内核自古以来就具有向接口添加多个 IP 地址的本机功能,而此接口别名只是旧应用程序(如)的兼容层ifconfig。请使用ipiproute2 包中的。 ìp addrip route将向您显示网络接口的真实配置。

答案2

如果接口上有主 IP 和辅助 IP,则连接起源该机器默认使用主 IP。我认为你无法轻易更改它。

相关内容