kubeovn / kube-ovn

A Bridge between SDN and Cloud Native (Project under CNCF)
https://kubeovn.github.io/docs/stable/en/
Apache License 2.0
1.93k stars 438 forks source link

underlay route replace should use the correct ip of interface #2333

Closed hongzhen-ma closed 1 year ago

hongzhen-ma commented 1 year ago

Expected Behavior

pinger pod 可以正常访问其他节点的pinger pod

Actual Behavior

pinger pod 无法正常访问其他节点的pinger pod

Steps to Reproduce the Problem

  1. 创建集群,3 master 1worker节点,overlay 网络
  2. 集群创建成功后,添加underlay 配置,underlay 网卡使用管理网卡 eth0,eth0 网卡上配置有2个IP地址
  3. 关机master节点,重启。出现某个节点上的pinger pod 访问别的节点上pod 不通。实际测试 异常节点上访问别的节点的 ovn0 网卡地址也不通

Additional Info

hongzhen-ma commented 1 year ago

网卡地址信息 image

异常节点pod报错信息 image

underlay provider-networks 信息 image

异常节点路由信息对比 master3为访问异常节点,master2 为访问正常节点 image

chassis 记录geneve ip 为 192.168.108 网段地址

zhangzujian commented 1 year ago

未能复现bug。OVS 转移 IP 时,只跳过 LinkLocal 的路由,普通 link 路由的 src 字段不会被修改。

zhangzujian commented 1 year ago

若 src IP 与 ovs encap ip 不一致,会导致跨节点隧道通信异常。