如何设置自动故障转移防火墙?

如何设置自动故障转移防火墙?

我们有一个内部服务器网络。在这个内部网络中,只有一台服务器可以访问互联网并充当路由/防火墙,以便其他服务器也可以访问互联网。

现在我们要复制我们的防火墙,因为如果它崩溃,我们将无法访问任何服务器。

有没有什么简单的方法可以实现我们内部服务器接口中网关的故障转移?

我的第一个想法是编写一个脚本来更改网关,/etc/networking/interface然后重新启动网络。但这不太可靠。

是否有类似 DNS 第一和第二条目适用于 ip 转发/路由?

答案1

针对您的情况,最简单的方法是使用保持活跃这是VRRP的一种实现。

使用以下命令在每个防火墙上的 Debian Linux 中安装它:

sudo apt-get install keepalived

然后编辑文件 /etc/keepalived/keepalived.conf

对于主人来说(类似于):

vrrp_instance default-gw {
  state MASTER
  virtual_router_id 1
  interface eth1
  priority 100
  authentication {
    auth_type pass
    auth_pass pass1234
  }
  virtual_ipaddress {
     x.x.x.x/xx label eth0:pub
     y.y.y.y/yy label eth1:lan
  }
}

从属配置将相同,但

state SLAVE
priority 101

我的配置可能有点错误(我只是破坏了我已有的配置,没有在公共端设置故障转移地址,而是设置了两个单独的地址),但这就是它的本质。它的作用是创建几个虚拟 IP 地址。其中 eth0:pub 是公共 IP 地址,eth1:lan 是私有 IP 地址。

如果一个主机发生故障,另一个主机将接管。

您可以在 /usr/share/doc/keepalived/samples 下找到大量示例。它是一款功能强大的工具,具有相当多的功能。您甚至可以对服务器进行负载平衡。不幸的是,网站上的网站和文档没有跟上产品开发的步伐,因此您可能会发现一些文档示例无法正常工作。我总是通过谷歌搜索找到答案。

如果您使用 NAT,还有一款产品可以接管内存状态。您可能需要也可能不需要它。但这需要第三个网络接口。

答案2

我建议使用鲤鱼作为答案。不幸的是,它的主要实现是在 BSD 家族中,尚未进入主流 Linux 发行版,如 Debian。但是,你可以结合使用来近似 CARP 的行为conn-track-toolsiptables下面是如何它不需要 Debian 中免费提供的软件以外的任何东西。[1]

相关内容