【问题标题】:How to mirror udp traffic between two hosts to a third remote k8s host in a readable manner?如何以可读的方式将两台主机之间的 udp 流量镜像到第三台远程 k8s 主机?
【发布时间】:2021-04-20 07:04:57
【问题描述】:

用例:本地日志服务器流量需要复制到基于云的日志服务器。

工作原理:设备 A 可以通过 UDP 514 将日志发送到日志服务器 B。服务器 B 和基于云的日志服务器 C 可以相互访问,但在不同的网络上。在 B 和 C 之间创建一个 GRE 网络隧道,将它们带入同一网络。因此,从 B 到 C 的流量镜像如下所示。

B # iptables -t mangle -I PREROUTING -i eth0 -p UDP --dport 514 -j TEE --gateway C.greIP

挑战:C 收到的流量实际上是发往 B 的,因此在 C 中被丢弃。C 服务器上的 UDP 端口 514 上有一个侦听器,绑定到 0.0.0.0 但是 C 的日志服务器看不到日志。

似乎 UDP 数据包在 C 处被丢弃。有什么可能的解决方案来处理非本地 ip 流量?

我已经尝试过 DNAT C # iptables -t nat -I PREROUTING -p UDP -d B --dport 514 -j DNAT --to-destination C:514 但它不起作用。 C 上的tcpdump 表示正在接收非本地 IP 的数据包,C # iptables -nvL -t nat 表示正在匹配 DNAT 规则。

【问题讨论】:

    标签: kubernetes networking udp iptables syslog


    【解决方案1】:

    嗯,将数据包从 B 复制到 C 的方法同样适用于 C。

    基本上B复制数据包B # iptables -t mangle -I PREROUTING -i eth0 -p UDP --dport 514 -j TEE --gateway C.greIP,然后一旦数据包到达C,C就可以复制数据包到C # iptables -t mangle -I PREROUTING -i enlight -p udp -d B --dport 514 -j TEE --gateway C

    这允许 C 机器上的本地进程处理重复的 udp syslog 数据包。

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 2011-03-25
      • 1970-01-01
      • 2014-12-08
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      相关资源
      最近更新 更多