openstack网络问题

举报
黄生 发表于 2023/05/04 22:45:58 2023/05/04
【摘要】 openstack trainopenstack里的VM,当作为网络代理设备进行网络包的代理转发,类似于网关的角色,可能会遇到问题。原因是作为代理角色,当收到请求并进行代理转发处理,处理完成后在回包时,包里面的源MAC和IP是不匹配的。也就是说,二层的源MAC,是自己的;但三层的源IP,是请求者要访问的目标IP,而不是自己的。(可以用tcpdump加-e看到MAC)这种情况,对于网络代理的角...

openstack train
openstack里的VM,当作为网络代理设备进行网络包的代理转发,类似于网关的角色,可能会遇到问题。
原因是作为代理角色,当收到请求并进行代理转发处理,处理完成后在回包时,包里面的源MAC和IP是不匹配的。
也就是说,二层的源MAC,是自己的;但三层的源IP,是请求者要访问的目标IP,而不是自己的。(可以用tcpdump加-e看到MAC)
这种情况,对于网络代理的角色,是很常见的。但是因为openstack的默认网络规则,导致无法回包。

-N neutron-openvswi-s353171f1-5
-A neutron-openvswi-o353171f1-5 -j neutron-openvswi-s353171f1-5
-A neutron-openvswi-s353171f1-5 -s 10.0.0.44/32 -m mac --mac-source FA:16:3E:47:35:E1 -m comment --comment "Allow traffic from defined IP/MAC pairs." -j RETURN
-A neutron-openvswi-s353171f1-5 -m comment --comment "Drop traffic without an IP/MAC allow rule." -j DROP

因为这个chain里面的规则的存在,VM出去的包,源IP和MAC必须要匹配到VM自己的信息,才可以真正出的去。

这是一个在openstack主机上的iptables规则。chain的名称中,包含了353171f1-5?(?是被截断的那个字符),这串字符,是在VM对应的tap接口的名称、tap所在的linux bridge的名称、bridge上另一个连接ovs的接口的名称,里面都包含的。所以这个特征字符的一致性,代表了他们之前存在某种联系。

打掉对源IP的绑定:

iptables -R neutron-openvswi-s353171f1-5 1 -s 0.0.0.0/0 -m mac --mac-source FA:16:3E:47:35:E1 -m comment --comment "Allow traffic from any IP with specified MAC address." -j RETURN

只能通过命令来,通过安全组无法实现。并且这个潜在的规则,在安全组的默认规则里并没有体现出来。而打掉对源IP的绑定,似乎也无法通过安全组的设置来实现。

以上都是在主机里。不涉及新增的网络命名空间。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。