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
时,那么这时,虚拟路由将启用备份路由器,从而实现全网通信。