问题描述:通过openstack创建的kvm虚拟机中运行docker容器,在使用pipework配置IP后无法访问外部网络
经过几番周折排查后,最后发现原因竟是openstak的网络安全策略。
好了,继续
openstack中neutron配置了安全策略,仅允许指定IP和MAC通过
1 2 3 4 5 6 7 8 |
#通过iptables可以查看到相关策略 iptables -L ... Chain neutron-linuxbri-s7f68dd91-5 (1 references) target prot opt source destination RETURN all -- 192.168.5.126 anywhere MAC FA:16:3E:FD:3F:44 /* Allow traffic from defined IP/MAC pairs. */ DROP all -- anywhere anywhere /* Drop traffic without an IP/MAC allow rule. */ ... |
解决方法
1.修改neutron安全策略,允许br0的mac地址通过
1 2 3 |
# neutron port-update 7f68dd91-5b7f-4b40-b74f-879daa66a9a2 --allow_address_pairs list=true type=dict ip_address=192.168.5.126 mac_address=72:02:97:d3:af:3a # |
如果br0的mac发生变化,将会导致网络不通,需要固定mac地址
2.关闭当前虚拟机的安全策略
1 2 3 |
# neutron port-update 7f68dd91-5b7f-4b40-b74f-879daa66a9a2 --port_security_enabled=False # |
2020-12-05 12:57 沙发
感谢分享