keepalived 组播的配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived 组播的配置相关的知识,希望对你有一定的参考价值。

keepalived 组播的配置

准备主机2台

server hostname ip
keepalived s1 172.20.27.10
keepalived s2 172.20.27.11

S1节点配置

修改keepalived配置文件

[[email protected] ~]# vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs 
   notification_email 
        [email protected]
   
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id s1.mylinuxops.com
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0


vrrp_instance VI_1 
    state MASTER
    interface ens33
    virtual_router_id 27
    priority 100
    advert_int 2
    authentication 
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress 
        172.20.27.100 dev ens33 label ens33:0
    

启动服务

[[email protected] ~]# systemctl restart keepalived

查看vip是否绑定

[[email protected] ~]# ip a | grep ens33:0
    inet 172.20.27.100/32 scope global ens33:0

s2节点操作

修改keepalive的配置文件

[[email protected] ~]# vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs 
   notification_email 
        [email protected]
   
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id s2.mylinuxops.com
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0


vrrp_instance VI_1 
    state BACKUP
    interface ens33
    virtual_router_id 27
    priority 80
    advert_int 2
    authentication 
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress 
        172.20.27.100 dev ens33 label ens33:0
    

重启服务

[[email protected] ~]# systemctl start keepalived

抓包查看是否组播

在s1节点上抓包

[[email protected] ~]# tcpdump -i ens33:0 -nn net 224.0.0.18
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33:0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:59:35.835747 IP 172.20.27.10 > 224.0.0.18: VRRPv2, Advertisement, vrid 27, prio 100, authtype simple, intvl 2s, length 20
18:59:37.837171 IP 172.20.27.10 > 224.0.0.18: VRRPv2, Advertisement, vrid 27, prio 100, authtype simple, intvl 2s, length 20

抓到发往224.0.0.18的信息

测试keepalived

暂停s1的keepalived服务器查看地址是否会漂移到s2节点上
在s1节点上暂停服务

[[email protected] ~]# systemctl stop keepalived

在s2节点上查看VIP是否被移过来了

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.27.11  netmask 255.255.0.0  broadcast 172.20.255.255
        inet6 fe80::20c:29ff:fe4d:1ce3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4d:1c:e3  txqueuelen 1000  (Ethernet)
        RX packets 21578  bytes 1824843 (1.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 311  bytes 28607 (27.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.27.100  netmask 255.255.255.255  broadcast 0.0.0.0
        ether 00:0c:29:4d:1c:e3  txqueuelen 1000  (Ethernet)
#VIP漂移到s2节点上了
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 482 (482.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 482 (482.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

再次启动s1节点查看是否地址是否被夺回

[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.27.10  netmask 255.255.0.0  broadcast 172.20.255.255
        inet6 fe80::20c:29ff:fec5:123c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c5:12:3c  txqueuelen 1000  (Ethernet)
        RX packets 38095  bytes 2925087 (2.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28612  bytes 7301619 (6.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.27.100  netmask 255.255.255.255  broadcast 0.0.0.0
        ether 00:0c:29:c5:12:3c  txqueuelen 1000  (Ethernet)
# VIP地址再次被抢回去
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2  bytes 140 (140.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 140 (140.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

以上是关于keepalived 组播的配置的主要内容,如果未能解决你的问题,请参考以下文章

keepalived+LVS实现负载均衡集群

keepalived高可用

Multicast_BSR_AnycastRP_MSDP_MBGP

ospf点到点链路为啥使用的是组播的地址而不是单播的地址

多网卡下组播的监听与发送

单播广播组播的区别和特点