跳转至

VRRP协议与防火墙


2014-06-30 by dongnan

问题描述

两台使用 keepalived 做HA的服务器,在启用iptables防火墙后,都声明为 MASTER 问题:

tcpdump -vvn vrr
14:39:29.037635 IP (tos 0xc0, ttl 255, id 16, offset 0, flags [none], proto VRRP (112), length 40)
172.27.233.42 > 224.0.0.18: VRRPv2, Advertisement, vrid 45, prio 100, authtype simple, intvl 1s, length 20, addrs: 172.27.233.45 auth "123456^@^@"
14:39:29.037657 IP (tos 0x0, ttl 255, id 1471, offset 0, flags [none], proto VRRP (112), length 40)
172.27.233.41 > 224.0.0.18: VRRPv2, Advertisement, vrid 45, prio 120, authtype simple, intvl 1s, length 20, addrs: 172.27.233.45 auth "123456^@^@"

解决方法

这是因为 keepalived 软件是基于 VRRP 协议,而 VRRP 使用组播地址为 224.0.0.18 进行通信对话, 所以需要添加允许组播地址通过的 iptables 规则。

iptables -I INPUT -d 224.0.0.18 -j ACCEPT

VRRP协议

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP) 是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。

VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱, 允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的VRRP路由器中的一台。 控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟IP地址。 一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的IP地址可以作为终端主机的默认第一跳路由器是一种LAN接入设备备份协议。 一个局域网络内的所有主机都设置缺省网关,这样主机发出的目的地址不在本网段的报文将被通过缺省网关发往三层交换机,从而实现了主机和外部网络的通信。

是一种路由容错协议,也可以叫做备份路由协议。一个局域网络内的所有主机都设置缺省路由,当网内主机发出的目的地址不在本网段时, 报文将被通过缺省路由发往外部路由器,从而实现了主机与外部网络的通信。当缺省路由器down掉(即端口关闭)之后,内部主机将无法与外部通信, 如果路由器设置了VRRP时,那么这时,虚拟路由将启用备份路由器,从而实现全网通信。

回到页面顶部