Sep 012012
 

最开始接触Openstack,这块是比较头疼的,不同的文档,设置都会有所差异,并且都能工作,到底哪个是正确的呢?恐怕很难有定论,这里总结一下,那天发到邮件列表里请教.

下面这几个设置,最终的结果,就是有一块网卡变成bridge,我理解bridge,就是一个交换机, 虚拟机在上面可以进行互相的通讯.

下面假设 fix IP 采用192.168.100.0/24

一:单网卡

经常有朋友问,如果是单网卡,如何设置(https://blog.hpcloud.com/road-essex-part-4-openstack%E2%84%A2-nova-and-horizon)

在nova.conf 文件里

public_interface=eth0
flat_interface=eth0
flat_network_bridge=br100

由于是单块网卡,这里就比较特别。

/etc/network/interface

auto br100
iface br100 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge_stp off
bridge_fd 0

 

二:双网卡

双网卡,理解起来比较容易。

在nova.conf 文件里

public_interface=eth0
flat_interface=eth1
flat_network_bridge=br100

这里设置的含义就是eth1是一个bridge。

eth0的设置,就和普通网卡设置一样,可以设置静态IP,也是可以dhcp获得。eth1的设置,我至少看到过3种设置

1:把网卡设置成混杂模式

这个很多文档都是这样设置,包括大名鼎鼎的培训机构http://www.mirantis.com/blog/openstack-networking-single-host-flatdhcpmanager/

也是这样推荐。另外Puppet的安装openstack文档,也是这样推荐设置

iface eth1 inet manual
  up ifconfig $IFACE 0.0.0.0 up
  up ifconfig $IFACE promisc

 

2:不设置任何IP

这是我一直使用的设置,这个是https://github.com/managedit/openstack-setup

这位朋友,应该也是参与Openstack的开发者,以前维护Diablo 的deb包的更新

auto eth1
iface eth1 inet manual
up ifconfig eth1 up

 

3:设置IP

采用fix IP的网段,例如fix IP是:192.168.100.0/24, 前面10个IP地址,留给服务器使用。那么我们就可以给eth1设置IP。

http://www.hastexo.com/resources/docs/installing-openstack-essex-4-ubuntu-1204-precise-pangolin/step-1-prepare-your-system

在nova.conf 有一个参数

flat_network_dhcp_start=192.168.100.11

前面保留的IP,就可以用来设置eth1的IP, 启动nova-network后,这个IP,就会变成所有虚拟机的网关. 如果你是采用mutilhost的设计.

  13 Responses to “Openstack的网卡设置”

  1. 双网卡的第一种设置ethe1也是不配IP地址的。至于混杂模式设不设关系不大,例如第二种就没有设,同样可以跑。虽然从理论上来说混杂模式必须设,否则Mac地址包无法通过网卡。但实际上即便不设混杂模式并且给网卡设置IP地址,例如单网卡或者双网卡的第三种情况,mac地址包还是可以收到的。不会受到什么影响。

    • 这几种设置,都能跑,而且没发现有啥影响。刚接触的人,会比较困惑。

  2. 陈老师,您好。比如现在有两张网卡eth0和eth1,如果我将eth1网卡设置为网桥,那么我在终端下输入ifconfig命令可以看到br100的设备吗?我好像看不到哦!希望陈老师指点下。

    • 应该是可以的。不过我记得,你需要创建一个vm,他才会给这个br100分配一个ip地址。

      • 可是我始终是看不到啊!我只看到一个virbr0的虚拟网卡,而且我查了下资料,发现virbr0是安装完qemu-kvm之后才出现的。所以我只好设置flat_network_bridge=virbr0,发现之后也可以运行实例。但话说回来,我的br100哪里去了?br100是什么时候出现的?是安装完bridge-utils之后吗?希望沙克老师指导下,谢谢!

    • 应该是可以的,不过只有在你创建虚拟机之后相应的host上的br100才会有IP,还会出现一张虚拟网卡。

  3. 您好,网卡的设置我完全搞不明白,请指点一下。
    我在virtual box里面装的ubuntu,然后在ubuntu虚机里面装的openstack。这就有问题了。我的eth0使用NAT模式搭在主机上,同时因为听说openstack要两张网卡,于是又配置了两张host-noly的网卡,但其实两张都是指向同一个Veth0。在ubuntu里面,eth0是用dhcp获取ip,eth1是static ip,eth2是manual。这样配置有问题吗?

    安装openstack的脚本是这样的:

    ./OSinstall.sh -T all -F 192.168.16.128/25 -f 192.168.17.128/25 -s 126 -P eth1 -p eth2 -t demo -v kvm

    这里的大P小P我没搞明白,直接装完之后呢,连ubuntu都登陆不了了。。。

  4. 为什么我单网卡安装好openstack,instance创建都没有问题,启动instance后,通过远程管理端可以ping通创建的instance,但在instance上ping不通远程管理端ip,更无法通过instance上网。

  5. 系统是ubuntu12.04,Openstack是Havana版,网络是neutron(ovs),每次都是出现bug,最好的一次是所有服务状态都是正常,但是外网ping不通。针对Openstack的网络使用ovs有什么要注意的吗?谢谢。

  6. 陈老师你好,我用puppet安装的,设置的是有IP的,可是启动Windows实例时发现只有内网的IP被自动分配到了实例中,而外网的没有配置。我的问题是虚拟机实例是不是生成的时候只有一个网卡,需要在开启前添加网卡还是开启后添加(我尝试过将原来DHCP的网卡配成外网地址,但没有成功)?

  7. 问下,在Neutron中,有没有可能一台虚拟机有两个网卡,一个网卡地址属于网络A,另一个属于B,怎么设置?

 Leave a Reply

(required)

(required)