本机 IPv6 负载平衡

网络工程 路由 路由器 ip ipv6 负载均衡
2021-07-05 20:55:22

我们有两个用于 IPv6 的软件网关(在 Linux 上),它们从 ISP 获取完整视图并宣布我们的 AS。以及通过网关连接到 Internet 的几个节点。像图片中的东西:

在此处输入图片说明

我们想在网络级别组织传出流量的负载均衡。因此,一个节点通过第一个网关发送数据包,另一个节点通过第二个网关发送数据包。

是否有任何本地 IPv6 功能可以使节点自动选择网关(如果将为每个新连接选择路由,则完美)并且可能会考虑任何路由器的故障。

我知道可以在节点上手动设置网关,或者使用 SLAAC 或 DHCPv6,它应该以某种方式工作。但是可能有更漂亮的本地解决方案,允许设置网关的优先级等等?

更新:这个问题的主要目标是找出是否有一种特殊的机制是用 IPv6 开发的并且专门用于 IPv6,或者类似于 IPv6 的一部分并且打算用于负载平衡。还是应该使用用于 IPv4 的做法?

3个回答

就像 IPv4 一样,有几个 FHRP(第一跳冗余协议)可以做这样的事情:HSRP、VRRP、GLBP 等。

问题是一台主机将只配置一个默认网关,并且主机将发送到其配置的默认网关的 MAC 地址。FHRP 将通过创建一个虚拟 MAC 地址来欺骗主机,主机将向该地址发送包含发往不同网络的数据包的帧。路由器必须配置为使用 FHRP,因为它们必须相互通信,由哪个负责。因为主机必须在第 2 层被愚弄,这超出了第 3 层协议(IPv4、IPv6 等)的范围,因此第 3 层协议中没有内置的注释可以做到这一点。

这真的归结为您尝试负载平衡的内容。IMO,让每台主机手动配置不同的主网关和备用网关以进行负载共享是有点笨拙的。

假设您的目标是跨 ISP 进行负载平衡,则:

如果gateway_1和 之间gateway_2也有 IBGP 对等邻接关系,那么您可以借助每个 ISP 对全局表的看法略有不同来执行出站负载分配。所有流量都将发送至gateway_1,但如果存在到达目的地的更好路径 via ISP_2,则流量将路由gateway_2至 并继续前往ISP_2

为了进一步改进,如果您的最终要求是对来自每个节点的出站流进行负载平衡,然后将 BGP 向下扩展到每个节点,与每个网关对等,然后在这些链接上启用 ECMP 和/或多路径。

一种方法是这样,假设您有足够大的客户端计算机池,并且它们的要求往往或多或少相等。

  • 使用两个虚拟网关 VGW1 和 VGW2 运行 VRRP 或类似功能
  • 调整优先级,使 GW1 赢得 VGW1 的选举,GW2 赢得 VGW2 的选举
  • 理想情况下,在同一台主机上,运行两个网络重叠的 DHCP 服务器
  • GW1 给出范围下半部分的地址,默认 gw VGW1
  • GW2 给出范围顶部一半的地址,默认为 gw VGW2
  • 让 DHCP 服务器竞争

现在,假设两者都运行良好,如果 GW1 的负载稍微多一点,它提供 DHCP 的速度会更慢,因此 GW2 很可能会赢得下一场提供租约的竞赛。因此,两者将倾向于平衡分配。(如果 DHCP 客户端/服务器“粘性”并尝试使用相同的地址和服务器,这可能会出错。)

每个客户端都配置为使用 VGW1 或 VGW2。如果一个物理路由器出现故障,另一个将接管。

我已经用 IPv4 做过这种事情,从来没有用过 v6,但它会以同样的方式工作。