环境:
宿主机: windows10
虚拟机: hyper-v
Openstack版本: Rocky
provider ip段: 192.168.40.0/24 (物理机虚拟接口)
管理 ip段: 192.168.227.0/24 (物理机虚拟接口)
内网 ip段: 192.168.252.0/24


现象描诉:
新增路由后,设置网关为"public"外界无法与public ip"192.168.40.0/24"相互通信
在controller节点上能与public ip通信
在compute节点上"无法"与public ip通信
物理机上"无法"与网关ip通信


定位:
# 以下命令我在controller中运行:
# ip netns list #查看所有网络民命空间名称替换下面代码的spacename
# ip netns exec spacename ifconfig #查看ip是否跟设置有误!!!这里发现mac与controller中提供者接口(网卡)不一致,注意这里不一致是正常的,但是windows虚拟机环境中是不允许的(这是我后面才想起来的,放到这里或许会合适点))
# ip netns exec spacename ping 192.168.252.4 #ping测与实例是否正常note:192.168.252.4 为实例ip
# ip netns exec spacename ping 192.168.40.32 #compute节点ip 测试是否正常
# ip netns exec spacename ping 192.168.40.11 #controller节点ip(本机) 测试是否正常





测试后发现从网络命名空间出来的都无法与192.168.40.0/24 同段互通
随后进行抓包发现arp无法请求到mac地址,后想起来 vmware,hyper-v限制了mac地址修改(用户修改接口mac后物理机上的虚拟接口就会限制(将不允许虚拟机传出分配外的mac地址数据包))(之前vmware中做linux的链路聚合切换流量到备网卡时 右下角vmware网卡接口会弹出警告无法识别mac地址)
然后我看了下hyper-v的网卡设置发现果然有限制


修改controller节点虚拟机的网络设置:


测试正常:
物理机ping 网关ip

物理机连接实例浮动ip

实例中测试网络是否连通

COMMENTS | NOTHING