keepalived 查询routerid 防止冲突
时间: 2023-08-06 17:15:23 浏览: 50
要查询 Keepalived 的 Router ID,你可以使用以下命令:
```
ip addr show keepalive
```
在输出中,你应该会看到一个形如 `inet <IP 地址>/32 scope global keepalive` 的行,其中 `<IP 地址>` 就是 Keepalived 的 Router ID。如果你的 Keepalived 集群中有多个节点,你需要确保每个节点的 Router ID 都是唯一的,以避免冲突。你可以在 Keepalived 的配置文件中为每个节点指定一个唯一的 Router ID,例如:
```
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.1/24
}
track_script {
chk_http_port
}
virtual_router_id 51
}
```
在上面的配置文件中,`virtual_router_id` 参数指定了该节点的 Router ID。确保每个节点的 `virtual_router_id` 参数都是唯一的即可。
相关问题
keepalived 如何用TCPdump查询routerid 防止冲突
要使用 tcpdump 查询 Keepalived 的 Router ID,你可以在 Keepalived 的主节点上运行以下命令:
```
sudo tcpdump -i <网卡名称> -n -s 1500 -vvv 'proto VRRP'
```
其中,`<网卡名称>` 是 Keepalived 使用的网卡名称,例如 eth0。运行上述命令后,tcpdump 会显示 Keepalived 发送和接收的 VRRP 报文。在输出中,你应该会看到类似以下的行:
```
IP <VIP> > <VRRP 多播地址>: VRRPv2, Advertisement, vrid <Router ID>, prio <优先级>, authtype simple (1), length 20
```
其中,`<Router ID>` 就是 Keepalived 的 Router ID。你可以根据这个值来检查 Keepalived 集群中是否有冲突。确保每个节点的 Router ID 都是唯一的即可。
keepalived中的virtual_router_id是什么
在 keepalived 中,`virtual_router_id` 是用于标识一个虚拟路由器(Virtual Router)的 ID,取值范围为 0 到 255,它通常用于在多个 keepalived 实例之间进行选举,以确定哪个实例将承担 VIP(Virtual IP)地址的管理工作。
在使用 keepalived 实现高可用性服务时,多个 keepalived 实例会通过网络互相通信,以便对 VIP 地址进行监控和管理。为了避免出现多个实例同时管理 VIP 地址的情况,这些实例会进行选举,选出一个实例作为 VIP 的主管理节点,而其他实例则处于备份状态。`virtual_router_id` 就是用于在这个选举过程中进行区分的。
具体来说,每个 keepalived 实例会在启动时根据自身配置文件中的 `virtual_router_id` 值,向其他实例发送选举请求,其他实例会根据自己的 `virtual_router_id` 值来决定是否参与这次选举,最终选出一个实例作为 VIP 的主管理节点。当主管理节点失效时,其他实例可以再次进行选举,选出新的主节点来继续管理 VIP 地址。