相关疑难解决方法(0)

Linux 中同一子网上的两个网络接口和两个 IP 地址

我最近遇到了一种情况,我需要将同一子网上的两个 IP 地址分配给一台 Linux 主机,以便我们可以运行两个 SSL/TLS 站点。我的第一种方法是使用 IP 别名,例如使用 eth0:0、eth0:1 等,但我们的网络管理员有一些相当严格的安全设置,从而粉碎了这个想法:

  1. 它们使用 DHCP 侦听,通常不允许使用静态 IP 地址。静态寻址是通过使用静态 DHCP 条目来完成的,因此相同的 MAC 地址总是获得相同的 IP 分配。如果您提出要求并且有理由禁用此功能,则可以为每个交换机端口禁用此功能(谢天谢地,我与网络人员的关系很好,这并不难)。
  2. 由于在交换机端口上禁用了 DHCP 侦听,他们必须在交换机上设置一条规则,允许 MAC 地址 X 具有 IP 地址 Y。不幸的是,这也有副作用,即 MAC 地址 X 仅允许具有IP 地址 Y。IP 别名要求为 MAC 地址 X 分配两个 IP 地址,因此这不起作用。

在交换机配置上可能有解决这些问题的方法,但为了与网络管理员保持良好的关系,我试图找到另一种方法。拥有两个网络接口似乎是下一个合乎逻辑的步骤。幸运的是,这个 Linux 系统是一个虚拟机,所以我能够轻松添加第二个网络接口(无需重新启动,我可能会添加 - 非常酷)。几次击键后,我启动并运行了两个网络接口,并且都从 DHCP 中提取了 IP 地址。

但问题来了:网络管理员可以(在交换机上)看到两个接口的 ARP 条目,但只有我提出的第一个网络接口会响应 ping 或任何类型的 TCP 或 UDP 流量。

经过大量的挖掘和戳,这就是我想出的。它似乎有效,但对于看起来应该很简单的事情来说,它似乎也需要做很多工作。有什么替代想法吗?


步骤 1:在所有接口上启用 ARP 过滤:

# sysctl -w net.ipv4.conf.all.arp_filter=1
# echo "net.ipv4.conf.all.arp_filter = 1" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

来自 …

linux routing

22
推荐指数
1
解决办法
11万
查看次数

标签 统计

linux ×1

routing ×1