cloudpods icon indicating copy to clipboard operation
cloudpods copied to clipboard

[求助/Help]多VLAN网络模式下,虚拟机无法给其它同段虚拟机提供NAT服务

Open SlyChen opened this issue 1 year ago • 8 comments

  1. 版本:高可用私有云集群 3.10.4至3.10.6均同现象。

  2. 网络:

listen_interface: team0.1001
networks:
- team0/br0/bcast0
- team2/br2/bcast2
  • team0即是管理口也是业务口
  • team1是业务口
  1. 现象描述: 虚拟机A与虚拟机B均位于同一物理节点(不同节点现象一样)
  • 虚拟机A同时配置了内网ip和外网IP。并设置net.ipv4.ip_forward = 1,同时通过iptables启用SNAT。
  • 虚拟机B只配置内网IP,并把默认网关指向VM A。

此时,在VM B与VM A是内网互通的,但在VM B上ping 任意公网IP,发现包在VM A所在的物理节点上被丢弃。

SlyChen avatar Oct 13 '23 09:10 SlyChen

支持的。虚拟机-网络设置源/目的检查 @SlyChen

dengju2020 avatar Oct 13 '23 09:10 dengju2020

https://github.com/yunionio/cloudpods/issues/16840 @SlyChen 好像和这个是类似的问题

zexi avatar Oct 13 '23 09:10 zexi

VM A和VM B任意一台关闭检查或两台全部关闭检查后现象还是一样。 image

SlyChen avatar Oct 13 '23 09:10 SlyChen

请按如下流程检查: 1.验证证在A上能够ping通这个外网IP 2. 在B ping这个外网IP,如果不通,请在A上抓包

tcpdump -i <ifname_of_public_nic> -n -v icmp and host <ip_of_ping_destination>

确认从B ping报文被正确发送出去

swordqiu avatar Oct 13 '23 10:10 swordqiu

请按如下流程检查: 1.验证证在A上能够ping通这个外网IP 2. 在B ping这个外网IP,如果不通,请在A上抓包

tcpdump -i <ifname_of_public_nic> -n -v icmp and host <ip_of_ping_destination>

确认从B ping报文被正确发送出去

抱歉,是我的测试环境被还原了。关闭“网络设置源/目的检查”后就可以了。

SlyChen avatar Oct 16 '23 01:10 SlyChen

可以在虚拟机上挂一个物理机同段IP,然后给物理机做SNAT上网吗?测试时候,抓包发现包在物理机上就被直接丢了。

SlyChen avatar Oct 17 '23 08:10 SlyChen

可以在虚拟机上挂一个物理机同段IP,然后给物理机做SNAT上网吗?测试时候,抓包发现包在物理机上就被直接丢了。 @SlyChen

理论上可以的,没有做限制。同样,发现丢包,则需要逐段排查问题,即先在虚拟机ping 物理机,物理机ping外网(如114.114.114.114),然后再在虚拟机ping外网(114.114.114.114),如果前两者通,最后不通,则需要tcpdump抓包看丢包在哪个环节发生,比如SNAT是否转换了正确的源IP?

swordqiu avatar Oct 20 '23 16:10 swordqiu

@swordqiu 挂物理机同段的IP的NAT VM跟其所在物理机就不通,如下:

  • 10.166.40.10是控制节点IP。
  • 10.166.40.199(有带VLAN标记)是NAT VM IP,且位于10.166.40.10上。

示例为在10.166.40.10 PING 10.166.40.199。

在10.166.40.10上抓包如下:

15:11:49.472028 IP 10.166.40.10 > 10.166.40.10: ICMP host 10.166.40.199 unreachable, length 92
15:11:49.472043 IP 10.166.40.10 > 10.166.40.10: ICMP host 10.166.40.199 unreachable, length 92
15:11:49.472064 IP 10.166.40.10 > 10.166.40.10: ICMP host 10.166.40.199 unreachable, length 92

10.166.40.199未抓到任何ICMP报文。

SlyChen avatar Oct 23 '23 07:10 SlyChen