只针对openstack kilo版本
在kilo版本中, Openstack ironic的部署需要建立一个flat网络,其中物理网络指向管理网的桥上。
这样ironic在部署过程中才可以正常获取dhcp执行pxe安装以及保证python-ironic-agent能正常和
ironic-api 通信。
不过kilo版本中,ironic只是满足了对物理机的部署,并没有解决ironic物理机怎么和正常的租户数据网络
通信,而且ironic直接和管理网相连确实也带来了安全隐患。 本文将介绍如果使用ironic和数据网络通信
只针对tenant network是vlan的情况。
1. 为ironic物理机创建一个port
2. 使用vconfig配置ironic数据网卡,使从这个网卡的通信带上租户网络的vlan id
目前ironic物理机中只有两个网卡,一个管理网(em1), 一个数据网(em2),租户网络的vlan id为140:
[root@host-owner ~]# modprobe 8021q
[root@host-owner ~]# vconfig add em2 140
Added VLAN with VID == 140 to IF -:em2:-
3. 配置ironic数据网络, 刚刚创建port的ip为172.16.1.0/24
$ ifconfig em2.140 172.16.1.15/24
4. 设置静态ip:
cat >> /etc/sysconfig/network-scripts/ifcfg-em2.140 << EOF
DEVICE="em2.140"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="172.16.1.15"
NETMASK="255.255.255.0"
GATEWAY="172.16.1.1"
EOF
5. 这个时候ironic已经可以和网关通信了
[root@host-owner network-scripts]# ping -c 4 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=0.584 ms
64 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=0.084 ms
64 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=0.106 ms
64 bytes from 172.16.1.1: icmp_seq=4 ttl=64 time=0.133 ms
由于ironic物理机路由配置的是管理网的路由,我们希望它之后走数据网路由,所以我们手动删除管理路由
配置数据路由:
[root@host-owner ~]# ip r delete default via 10.160.57.254
[root@host-owner ~]# ip r add default via 172.16.1.1
6. 我们希望ironic的物理机可以被外网访问, 所以可以尝试给它绑定一个floatingip, 这个时候floatingip也是可以访问的。
需要注意的是我们测试的环境外网和管理网是同一张网,所以需要把ironic物理机中的管理网路由规则也得删了
[root@host-owner ~]# ip r delete 10.160.57.0/24 dev em1
[root@host-owner ~]# ip r
default via 172.16.1.1 dev em2.140
172.16.0.0/16 dev em2.140 proto kernel scope link src 172.16.1.15
此时的ironic物理机既可以被数据网访问也可以通过floatingip实现外网访问了。