前几次装openstack,一直出现问题,特别是对于网路的配置问题,简直就是一窍不通,导致了镜像外网无法访问或者无法分配ip,今天又重新装了一遍,好好研究了一下官方文档里面关于网络的配置。

首先我们来看下官方文档的网络配置/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.10.2
netmask 255.255.255.0
broadcast 10.10.10.255
gateway 10.10.10.1
dns-nameservers 10.10.8.3
auto eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
再看下nova里面的ip设置 /etc/nova/nova.conf
 
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/run/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=10.10.10.2
--ec2_host=10.10.10.2
--rabbit_host=10.10.10.2
--cc_host=10.10.10.2
--nova_url=http://10.10.10.2:8774/v1.1/
--routing_source_ip=10.10.10.2
--glance_api_servers=10.10.10.2:9292
--p_w_picpath_service=nova.p_w_picpath.glance.GlanceImageService
--iscsi_ip_prefix=192.168.4
--sql_connection=mysql://novadbadmin:novasecret@10.10.10.2/nova
--ec2_url=http://10.10.10.2:8773/services/Cloud
--keystone_ec2_url=http://10.10.10.2:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# vnc specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://10.10.10.2:6080/vnc_auto.html
--vncserver_proxyclient_address=10.10.10.2
--vncserver_listen=10.10.10.2
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.4.1/27
--floating_range=10.10.10.2/27
--network_size=32
--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
我们用ip计算器计算一下(刘凯学长教我的,很有用啊)
 
 
 
 
看出来了吧,eth1的ip可不是随便来的。子网掩码和广播地址的最后一位和eth0是一样的,这样能保证可用ip的范围一致。
那我们要怎样做到一致呢?其实很简单,经过我的测试只需修改eth1 ip地址的第三位即可
但是具体怎么修改我不清楚,估计是有种公式及计算的,网络这块我很差劲
如我的ip是122.204.144.201/25 :
 
那么我的eth1的ip地址第三位大于等于128即可,如:
 
 
 
 
大于等于掩码的最后一位
而官方的那个ip第三位则是小于等于广播的最后一位
暂时发现网络配置有这些规律,但是不是这样的,我还不清楚,也没有具体去测试