Keepalived:不可预知的转发方式

问题描述

我正在用 keepalived 试验 multipass,我的配置偶尔会起作用。

当我重新启动我的 keepalived 服务时,Forward 输出中的 ipvsadm -Ln 列发生变化。

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.64.64:80 rr
  -> 192.168.64.3:80              Tunnel  100    0          0
  -> 192.168.64.6:80              Tunnel  100    0          0
TCP  192.168.64.65:80 rr
  -> 192.168.64.3:80              Tunnel  100    0          1
  -> 192.168.64.6:80              Tunnel  100    0          1
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.64.64:80 rr
  -> 192.168.64.3:80              (null)  100    0          0
  -> 192.168.64.6:80              (null)  100    0          0
TCP  192.168.64.65:80 rr
  -> 192.168.64.3:80              (null)  100    0          1
  -> 192.168.64.6:80              (null)  100    0          1

当它是 (null)Local 时,curl 虚拟 ip 导致连接被拒绝。

当为Masq时,curl虚拟ip无输出

当它是 RouteTunnel 时,curl 起作用。

我无法预测它会出现哪种模式,每次重启都有不同的结果。并且成功率(拥有Route或Tunnel)非常低。

这是我的配置:

virtual_server 192.168.64.64 80 {
    delay_loop 5
    lb_algo rr
    lb_kind tun
    protocol tcp

    real_server 192.168.64.3 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 192.168.64.6 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...