配置 Vyatta 5400 以实现高可用性 (HA)
通过使用虚拟路由冗余协议 (VRRP) 支持 Vyatta 高可用性。 每个网关组都有两个主 VRRP IP 地址,一个用于专用,另一个用于网络的公共端。
仅专用 Vyattas 只有专用 VRRP。
这些 IP 地址是网络基础结构的目标 IP ,用于路由与网关成员关联的 VLAN 上的所有子网。 只有一个 Vyatta 一次运行这些 VRRP IP。 网关组的其他成员将以管理方式关闭这些成员。
可以使用 config-sync 配置命令在两个 Vyattas 之间同步配置。 此配置允许一个成员将特定选项的配置推送到组中的另一个 Vyatta ,并选择性地执行此操作。 您可以仅推送防火墙规则,仅推送 IPsec 配置,或者推送这两个规则集的任意组合。
建议您不要推送 IP 地址或其他网络配置,因为 config-sync 会立即在其他 Vyattas 上落实更改,从而使这些接口联机。 如果要动态启用接口和服务,那么可以使用转换脚本在故障转移时执行此操作。 此外,建议您对关联 VLAN 上的网关 IP 使用更多 VRRP IP 地址。 这使故障转移更易于管理。
两台机器上的基本 VRRP 配置与以下样本配置类似:
interfaces {
bonding bond0 {
address 10.28.94.213/26
duplex auto
hw-id 06:d6:f8:f0:fb:ee
smp_affinity auto
speed auto
vrrp {
vrrp-group 1 {
advertise-interval 1
}
preempt false
priority 254
sync-group vgroup10
rfc3768-compatibility
virtual-address 192.168.10.1/24
}
}
}
bonding bond1 {
address 50.23.184.5/26
duplex auto
hw-id 06:05:09:41:fb:cb
smp_affinity auto
speed auto
vrrp {
vrrp-group 1 {
advertise-interval 1
}
preempt false
priority 254
sync-group vgroup10
rfc3768-compatibility
virtual-address 50.23.184.27/26
}
}
}
loopback lo {
}
}
VRRP 需要先将一个真实的 IP 地址绑定到虚拟接口后,才能发送任何 VRRP 通知。 在许多情况下,您可以简单地从主子网添加 IP ,但这可能与将来的供应冲突,或者您可能希望路由已分配给服务器的每个主子网 IP 的 VLAN。 要解决此问题,您可以在两个 Vyattas 上使用频带外 IP 地址对,这些 IP 地址对可用于相互通信。 下面是一个示例:
在第一个 Vyatta 上:
set interfaces bonding bond0 vif 1000 address 172.16.0.10/29
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 sync-group vgroup10
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 priority 200
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 virtual-address 192.168.10.1/24
在第二个 Vyatta 上:
set interfaces bonding bond0 vif 1000 address 172.16.0.11/29
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 sync-group vgroup10
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 priority 199
set interfaces bonding bond0 vif 1000 vrrp vrrp-group 10 virtual-address 192.168.10.1/24
在这种情况下,两个 Vyattas 都有自己的 IP ,不会与分配的子网发生冲突。 您可以选择几乎任何您想要的专用范围。 只需选择不会与您可能拥有的任何其他路由冲突的小子网,例如, IPsec 隧道上的子网范围,或与 Softlayer 的冲突的 10.0.0.0/8
地址。
另外,请添加 sync-group 名称。 所有 VRRP 地址都应该是同一 sync-group的一部分。 这样,一个接口上的任何故障都会导致同一 sync-group 中的所有接口也发生故障转移。 如果 VRRP 地址不属于同一个 sync-group,那么最终会出现一些是 MASTER 而另一些是 BACKUP 的情况。 请在 bond0 和 bond1 本机 VLAN 配置中使用相同的名称。
bond0 和 bond1 VRRP 配置可能具有一行 rfc3768-compatibility。 VIF 中的 VRRP 不需要此行,只有 bond0 和 bond1 的本机 VLAN 需要。
在新供应的网关对上, config-sync 仅具有最低配置:
config-sync {
remote-router 10.28.94.195 {
password ****************
sync-map syncme
username vyatta
}
必须添加规则以确定要迁移的配置分支。 例如,如果要推送防火墙和 IPSec 配置,请添加以下命令:
set system config-sync sync-map syncme rule 1 action include
set system config-sync sync-map syncme rule 1 location firewall
set system config-sync sync-map syncme rule 2 action include
set system config-sync sync-map syncme rule 2 location "vpn ipsec"
落实这些内容后,会将对防火墙或 IPsec 配置的任何更改推送到落实时的其他 Vyatta。
sync-group 和 sync-map 是两种不同的东西。 sync-map 配置用于将配置更改推送到另一个 Vyatta 的规则。 sync-group 用于将 VRRP IP 作为一个组进行故障转移,而不是一次一个组进行故障转移。 配置其中一项不会影响另一项。