Openstack ironic与数据网络通信

只针对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实现外网访问了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章