from: http://blog.sina.com.cn/s/blog_6de3aa8a0102vl7m.html
使用VirualBox创建CentOS7虚拟机
资源分配视宿主windows而定,由于要部署OpenStack,建议配置为CPU 4个,内存6144MB,硬盘80GB。并且为虚拟机分配四个网卡,分别为:【视情况新建和设置全局网络,2个Host-Only网络和1个NAT网络】
网卡名称 | IP地址 | 网络模式 | 网络 | 备注 |
eth0 | 192.168.10.123 | Host-Only#1 | 192.168.10.0/24 | 管理网络 |
eth1 | 192.168.100.123 | Host-Only#2 | 192.168.100.0/24 | 数据网络(tunnel) |
eth2 | 10.10.10.123 | NAT网络 | 10.10.10.0/24 | 外部网络NAT 混杂模式为全部允许 |
eth3 | 192.168.137.123 | Host-Only#3 | 192.168.137.0/24 | 外部网络Host 混杂模式为全部允许 |
VirualBox中CentOS7虚拟机的网卡配置
cat/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.123
NETMASK=255.255.255.0
cat/etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.100.123
NETMASK=255.255.255.0
cat/etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth2
DEVICE=eth2
BOOTPROTO=static
IPADDR=10.10.10.123
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DNS1=114.114.114.114
ONBOOT=yes
cat/etc/sysconfig/network-scripts/ifcfg-eth3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth3
DEVICE=eth3
BOOTPROTO=static
IPADDR=192.168.137.123
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=114.114.114.114
ONBOOT=yes
systemctl restartnetwork
使用RDO部署OpenStack(kilo)
sudo yum update-y
sudo rpm -ivhhttps://repos.fedorapeople.org/repos/openstack/openstack-kilo/rdo-release-kilo-1.noarch.rpm
sudo yum install -yopenstack-packstack
packstack--gen-answer-file=/root/openstack-kilo.cfg
注意:RDO配置文件/root/openstack-kilo.cfg
(1)注意修改常用的密码,比如CONFIG_MARIADB_PW,CONFIG_KEYSTONE_ADMIN_PW等。
(2)将自动生成的IP地址换为指定管理网络eth0的地址192.168.10.123
(3)
packstack--answer-file=/root/openstack-kilo.cfg
此时VirualBox中CentOS7虚拟机的网卡配置,注意br-ex,eth2,br-ex1,eth3
cat/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.123
NETMASK=255.255.255.0
cat/etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.100.123
NETMASK=255.255.255.0
cat/etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=10.10.10.123
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DNS1=114.114.114.114
ONBOOT=yes
cat/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
cat/etc/sysconfig/network-scripts/ifcfg-br-ex1
DEVICE=br-ex1
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.137.123
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=114.114.114.114
ONBOOT=yes
cat/etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex1
ONBOOT=yes
在OVS上创建网桥
ovs-vsctl add-brbr-ex
ovs-vsctl add-portbr-ex eth2
ovs-vsctl add-brbr-ex1
ovs-vsctl add-portbr-ex1 eth3
修改neutron的配置文件
vim/etc/neutron/l3_agent.ini
[DEFAULT]
debug =False
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces =True
gateway_external_network_id =
handle_internal_only_routers = True
external_network_bridge =
metadata_port =9697
send_arp_for_ha =3
periodic_interval =40
periodic_fuzzy_delay = 5
enable_metadata_proxy = True
router_delete_namespaces = False
agent_mode =legacy
vim/etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers =vxlan,vlan,flat
tenant_network_types = vxlan
mechanism_drivers=openvswitch
[ml2_type_flat]
flat_networks =phyExtNat,phyExtHost
[ml2_type_vlan]
network_vlan_ranges= phyExtNat,phyExtHost
[ml2_type_gre]
[ml2_type_vxlan]
vni_ranges=1:1000
vxlan_group=224.0.0.1
[securitygroup]
enable_security_group = True
vim/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
[ovs]
integration_bridge= br-int
tunnel_bridge =br-tun
local_ip=192.168.100.123
bridge_mappings =phyExtNat:br-ex,phyExtHost:br-ex1
enable_tunneling=True
[agent]
polling_interval =2
tunnel_types=vxlan
vxlan_udp_port=4789
l2_population =False
arp_responder =False
enable_distributed_routing = False
[securitygroup]
firewall_driver =neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewal
重启neutron服务
openstack-servicerestart neutron
[root@localhost~(keystone_admin)]# ovs-vsctl show
32a17404-c314-4afd-b19e-607c4b0a43ca
创建两个External Networks
(1)Create ExternalNetwork(For NAT) 【通向internet】
neutron net-createExt-Nat --provider:network_type flat
neutronsubnet-create
(2)Create ExternalNetwork(For Host-Only) 【通向windows宿主机】
neutron net-createExt-Host --provider:network_type flat
neutronsubnet-create
(3)为租户创建两个路由器RA和RB,网关分别设置到Ext-Nat网络和Ext-Host网络;创建两个网络NA和NB,对应的子网分别是SA10.0.0.0/24和SB 10.1.0.0/24。
创建云主机,两个网卡分别为NA(10.0.0.0/24),NB(10.1.0.0/24),并分别为它们绑定Ext-Nat和Ext-Host的两个floatingip
eth0
eth1
[root@localhost~(keystone_admin)]# ovs-vsctl show
32a17404-c314-4afd-b19e-607c4b0a43ca
ovs_version:"2.3.1"
[root@localhost~(keystone_admin)]# brctl show
bridgename
qbr4206e211-1a
qbr6f61d935-f4
测试连通性
(1)云主机内ping外网
左边是在云主机的宿主机上ping Ext-Nat的浮动IP:10.10.10.202
右边是在windows中pingExt-Host的浮动IP:192.168.137.102