IPVS 流量似乎没有经过 director 节点上的 netfilter

IPVS 流量似乎没有经过 director 节点上的 netfilter

我在运行 keepalived 的主管节点上有以下设置:

  • 本机 IP 10.65.5.72
  • 贵宾 10.65.5.230
  • 为端口 80 和 443 启用 keepalived DR 模式

我正在调试一个问题,我无法从主管节点本身访问 IPVS 服务,在此过程中注意到 IPVS 流量似乎没有经过 netfilter。为了验证,我在 iptables 中的原始表中设置了以下规则:

Chain PREROUTING (policy ACCEPT 143K packets, 133M bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    60 MARK       all  --  *      *       10.65.5.72           10.65.5.230          MARK and 0xffffffff

然后我就跑了

nc -v -s 10.65.5.72 10.65.5.230 80

我期望数据包计数器会增加,但是没有。

如果我将 nc 命令中的端口号更改为 80 和 443 以外的任何值,那么计数器增量。

同时,我确实看到了数据包计数器在输出中增加

ipvsadm -L -n --stats

当我运行前面提到的 nc 命令时,它应该表明已经生成了一个到达某处的数据包。

这是 ipvs 的预期行为吗?从我在互联网上找到的资料来看,ipvs 流量似乎应该通过 netfilter。是什么导致了我看到的行为?

答案1

回答我自己的问题,如http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-DR.html

当数据包 CIP->VIP 到达导向器时,它将作为第 2 层数据包放入 OUTPUT 链中,其中目标为真实服务器的 MAC 地址。

在将相同的规则添加到 OUTPUT 链后,我确实看到数据包符合规则。

相关内容