0

我们有不同的机器开启了keepalived实例,我正在寻找一种方法来检查(在网络段级别)所有的virtual_router_id。(为了避免重复。)

因此,1 个工具在网络上侦听 virtual_router_id 并打印它们。

善良的 Rgds,卢克

4

1 回答 1

0

在网络级别上,您可能希望收听多播广播以捕捉 Keepalived 服务器之间的通信。示例(可在https://www.cyberciti.biz/faq/linux-unix-verify-keepalived-working-or-not/上找到):

root@linux:~# tcpdump -vvv -n -i eth0 host 224.0.0.18
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:19:43.530933 IP (tos 0xc0, ttl 255, id 58763, offset 0, flags [none], proto VRRP (112), length 40)
    10.10.10.135 > 224.0.0.18: vrrp 10.10.10.135 > 224.0.0.18: VRRPv2, Advertisement, vrid 134, prio 111, authtype none, intvl 1s, length 20, addrs: 10.10.10.134
11:19:43.530941 IP (tos 0xc0, ttl 255, id 58763, offset 0, flags [none], proto VRRP (112), length 40)
    10.10.10.135 > 224.0.0.18: vrrp 10.10.10.135 > 224.0.0.18: VRRPv2, Advertisement, vrid 134, prio 111, authtype none, intvl 1s, length 20, addrs: 10.10.10.134
11:19:43.530968 IP (tos 0xc0, ttl 255, id 58763, offset 0, flags [none], proto VRRP (112), length 40)
    10.10.10.135 > 224.0.0.18: vrrp 10.10.10.135 > 224.0.0.18: VRRPv2, Advertisement, vrid 134, prio 111, authtype none, intvl 1s, length 20, addrs: 10.10.10.134
11:19:43.530972 IP (tos 0xc0, ttl 255, id 58763, offset 0, flags [none], proto VRRP (112), length 40)
    10.10.10.135 > 224.0.0.18: vrrp 10.10.10.135 > 224.0.0.18: VRRPv2, Advertisement, vrid 134, prio 111, authtype none, intvl 1s, length 20, addrs: 10.10.10.134

通过这种方式,您可以找到虚拟路由器 id ( )和vrid相应的 KeepaliveD 服务器(在此示例中)。10.10.10.13410.10.10.135

但这并不是检测所有 Keepalived 安装/虚拟路由器的万无一失的方法。Keepalived 也可以通过单播(直接 ip<->ip)进行通信,而无需广播到网络中。但是,如果您只使用 vrid 的多播广播,那么您应该能够从网络的角度找到并识别 Keepalived 服务器和使用的虚拟路由器 ID。

如果您使用本地监控代理/守护程序或中央配置系统,您还可以解析 /etc/keepalived/keepalived.conf 文件的virtual_router_id选项。

于 2019-11-18T10:27:19.203 回答