IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    VRRP协议

    cjhust发表于 2015-08-18 16:51:33
    love 0
     

    1、知识百科

    高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性,HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。

    实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

    VRRP实质上就是实现HA的一种方式。

    VRRPd is an implementation of VRRPv2 as specified in rfc2338. It run in userspace for linux. In short, VRRP is a protocol which elects a master server on a LAN. If the master fails, a backup server takes over.

    VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),VRRPD是VRRPv2协议的一种实现,运行在linux用户态,VRRP协议是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的VRRP路由器中的一台。

     

    在建立一个网络时,为了保证网络稳定不间断的运行,经常采用一些动态的路由协议,如OSPF(3层)、RIP等,这些路由协议可以自动的绕开很多的网络故障,如:路由器DOWN机等,但很多时候我们可能无法使用这些高端的路由协议:

    (1)因为有时候是用户端,要配置OSPF、RIP等协议必须有上游ISP供应商的支持,但很多ISP供应商是不提供这种服务的,它们只提供静态路由(有时候使用OSPF、RIP等协议的目的是为了进行链路和路由的备份,VRRP可以完全替代他们这部分工作);

    (2)我们有两条以上的Internet线路,需要对他们进行负载均衡和路由线路、路由器的备份(VRRP也主要是为这种需求设计的);

     

    VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),拥有这个对外IP的路由器为master,其他设备不拥有该IP为backup,backup除了接收master的VRRP状态通告信息外,不执行对外的网络功能(如ARP、ICMP等),当master故障时,backup将接管原先master的网络功能。

    配置VRRP协议时,需要配置每个路由器的VRID和优先权值,主要使用VRID将路由器进行分组,具有相同VRID值的路由器为同一个组,同一组的路由器通过使用优先权值来选举master。

    2、部署配置

    配置运行

    #wget http://off.net/~jme/vrrpd/vrrpd-current.tgz

    #tar -zxvf vrrpd-current.tgz

    #cd vrrpd

    #make

    #cp vrrpd /usr/sbin/

    #vrrpd -n -i eth0 -v 100 -p 100 -f /var/run 192.168.0.100  (server1)

    #vrrpd -n -i eth0 -v 100 -p 50 -f /var/run 192.168.0.100   (server2)

    备注1:由于server1的优先级高于server2,当其他机器访问192.168.0.100的时候,会优先访问server1,如果server1机器发生故障,server2会立即接管server1来服务。

    备注2:谁的优先级高,使用ip addr才能看到192.168.0.100这个IP。

    备注3:vrrpd -n -i eth0 -v 100 -f /var/run -p 250 192.168.0.100 192.168.0.101可以宣告多个IP。

    vrrpd -h

    VRRP协议 - cjhust - 我一直在努力

    -n:

    -i:指定网卡;(不能乱指定,否则路由到达不了,抓包会发现ICMP port unreachable)

    -v:指定虚拟server的ID;(主要用来对虚拟路由器分组)

    -s:设置优先权模式,默认是enable;(加上-s是关闭)

    -a:设置认证类型;(还未被实现??)

    -p:指定优先级,按优先级来处理,默认是100;

    -f:指定存放pid文件的目录,默认是/var/run;

    -d:宣告的时间间隔,默认是1s;

    ipaddr:虚拟server的IP地址,可以同时宣告多个IP地址;

    协议格式

    clip_image002

    #tcpdump -i any -nn vrrp

    15:03:31.556922 IP 100.100.100.15( 高优先级的serverIP) > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 250(高优先级的server设置的优先级), authtype none, intvl 1s, length 20

    image

    image

    21(version=2,advertisement=1) 64(virtual ptr ID=100) fa(优先级) 01(addr count)

    00(auth type) 01(adver int) bc cf (checksum)0a 65 1d 64(IP address=10.101.29.100)

    00 00 00 00(Authentication Data)

    00 00 00 00(Authentication Data)

    3、参考资料

    RFC2338(VRRP协议):

    ftp://ftp.ietf.org/rfc/rfc2338.txt

     

    http://off.net/~jme/vrrpd/

    https://www.kernel.org/doc/ols/2001/vrrpd.pdf

    http://www.bitscn.com/plus/view.php?aid=7825

    http://blog.chinaunix.net/uid-127037-id-2919520.html

     



沪ICP备19023445号-2号
友情链接