1、什么是VRRP?keepalived又是什么?
VRRP全称是Virtual Router Redundancy Protocol,即虚拟路由冗余协议。它的主要目的是在一个网络中提供冗余的路由。当一个三层网络设备或服务器出现故障时,VRRP可以确保网络仍能正常工作。VRRP通过在这些设备之间使用IP组播或单播通信来实现冗余。它可以确保在网络中有多个物理节点时,且在某些节点发生故障时仍能保持服务。
Keepalived是一个维护IP网络稳定性的重要软件。它是Linux内核中的一个组件,用于实现虚拟路由冗余协议(VRRP)。Keepalived负责监控和维护一个VRRP集群,以确保所有VRRP实例都在线并能相互通信。如果VRRP集群中的任何一个实例出现故障,Keepalived将自动从故障实例中选择一个健康实例来接管故障实例的工作。
VRRP和Keepalived都是保证网络稳定性和可靠性的重要组件,它们在不同的方面发挥着重要作用。
2、网络设备中VRRP协议和服务器中keepalived的两个区别
2.1、网络设备中VRRP协议的虚拟IP地址对应一个虚拟的mac地址,而keepalived的虚拟IP地址对应Master节点的物理IP地址
以下是通过一个实验来验证两者在有关mac地址上的区别。
2.1.1、在网络设备中配置VRRP协议
相关实验拓扑如下:
(1)针对实验中,锐捷路由和交换设备的配置脚本如下:
!Ruijie-Switch-1配置(设置VRRP优先级为120,从而协商为Master节点)
!
vlan range 1,100
!
interface GigabitEthernet 0/0
switchport access vlan 100
!
interface VLAN 100
ip address 172.16.100.11 255.255.255.0
vrrp 1 ip 172.16.100.10
vrrp 1 priority 120
vrrp 1 timers advertise 3
!
end
!Ruijie-Switch-2配置(设置VRRP优先级为100,从而协商为BACKUP节点)
!
vlan range 1,100
!
interface GigabitEthernet 0/0
switchport access vlan 100
!
interface VLAN 100
ip address 172.16.100.12 255.255.255.0
vrrp 1 ip 172.16.100.10
vrrp 1 priority 100
vrrp 1 timers advertise 3
!
End
!Ruijie-vRouter配置
!
interface GigabitEthernet 0/0
no switchport
ip address 172.16.100.5 255.255.255.0
!
(2)刷入脚本后,分别在两台运行VRRP的锐捷交换机上,通过“show vrrp
”命令查看VRRP的协商情况
(3)各个路由交换节点进行互ping后(包括ping真实IP地址和虚拟IP地址),在锐捷路由器上通过“show arp
”命令查看arp表,可发现虚拟IP地址对应一个虚拟mac地址,和真实IP地址对应的真实mac地址都不同,如下:
2.1.2、在Linux服务器中的keepalived
相关实验拓扑如下:
(1)针对本实验中,分别在debian系统和OpenEuler系统中执行“apt install keepalived -y
”和“yum install keepalived -y
”安装keepalived
(2)将debian系统/etc/keepalived
目录下的keepalived.conf
文件修改为以下内容(debian的VRRP优先级为100,为Master):
global_defs {
notification_email {
11202@qq.com
}
notification_email_from keepalived@showjoy.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.26.100
}
}
(3)将OpenEuler系统/etc/keepalived
目录下的keepalived.conf
文件修改为以下内容(OpenEuler的VRRP优先级为50,为BACKUP):
global_defs {
notification_email {
11202@qq.com
}
notification_email_from keepalived@showjoy.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.26.100
}
}
(4)分别在两个系统中执行命令“systemctl restart keepalived
”,使得keepalived的配置生效
(5)验证keepalived冗余效果是否生效
(6)若确定keepalived配置无误,将所有节点进行互ping后,在WinServer服务器上,通过命令“arp -a
”查看arp表,可发现keepalived的虚拟IP地址始终和Master保持一致(若Master出现宕机,Backup升级为Master,此时虚拟IP地址对应的mac地址将变为新的Master)
2.2、keepalived可以通过自定义shell脚本实现应用层进程级别等的冗余备份,而网络设备的VRRP只能实现网络层面冗余备份
如下图所示,keepalived通过/etc/keepalived/keepalived.conf
配置文件中的vrrp_script
和track_script
字段,可以实现包括监控端口号,系统进程等实现冗余备份,例如,通过keepalived监控nginx进程,若nginx进程被杀死,即使服务器仍旧正常运行,相关服务仍旧可以通过自定义脚本切换到Backup节点上, 从而保障业务正常运行:
文章来源:https://www.toymoban.com/news/detail-432402.html
3、两者因使用场景差异,造成以上两个区别
首先针对与keepalived和网络设备VRRP在mac地址机制上的差别,个人认为网络设备之所以会针对虚拟IP地址去虚拟一个虚拟mac出来,主要是为了降低当网络中有mac地址绑定场景时的维护难度,当网关需要配置mac地址绑定时,只需要将虚拟mac地址和网络接口或IP地址绑定起来就可以了,此时无论真实的物理设备的mac如何改变,都不会因为mac地址绑定的原因而造成网络中断,这是网络设备VRRP针对网络层面上的优化,在这一点上,keepalived就需要维护单独维护真实的mac地址绑定。
而针对于keepalived,因为keepalived通常是部署在服务器上,所以会涉及到应用层面上的冗余需求,因此keepalived可以通过自定义shell脚本实现应用进程层面上的冗余,而不单单只是硬件和网络层面上的冗余。文章来源地址https://www.toymoban.com/news/detail-432402.html
到了这里,关于网络设备中VRRP协议和Linux服务器中keepalived的两个区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!