12月 292017
 

对于使用linux-bridge来实现网络虚拟化的情况:

如果需要使用vlan来作为provider,则,配置基本如下:

 

/etc/neutron/plugins/ml2/linuxbridge_agent.ini

 

/etc/neutron/plugin.ini

 

注意:  network_vlan_ranges 是需要配置的, 这样在重启neutron服务的时候,会在neutron数据库中创建:

network_vlan_ranges 配置从注释来看,似乎可以不写vlan范围,其实不行,因为需要在表中创建条目,如果指定range大小会1000,则会一次产生1000个数据库记录;

另外,当我们从配置文件中把 provider 删除(或重命名)时,数据库中的条目并不被删除,而且会导致neutron服务启动失败,这时候,可以手动删除上述条目

 

当我们在provider上创建一个vlan id为3000的vlan provider时,会自动创建eth0.3000, 假如compute节点上部署openstack-controller(确切说,应该是neutron)虚拟机,由于该虚拟机也需要类似eth0.3000的接口,然而,宿主机只有一个网卡的情况下,如果虚拟机桥接的也是eth0的话,宿主机上创建了eth0.3000后,虚拟机将不再能收到vlan3000的流量了(被截流了),所以就比较麻烦,所以,建议neutron虚拟机不要部署在计算节点上;也或者还有其它的不愉快。

 

当然,如果确实没有其它的机器安装neutron虚拟机呢?其实办法还是有的:

openstack 中配置给provider的物理网卡使用veth1 就行, 这样的话,vm-neutron也能看到vlan3000的数据包了

 

问: openstack 中配置给provider的物理网卡使用veth0 行不?

根据veth对儿实现原理,veth0接收到的数据如果不是从veth1来的,肯定发送给veth1,否则发送给br0;假如,配置为veth0,则vm的数据发送给veth0.3000后,经过veth0会被发送给veth1,而不是br0,这不是我们想要的

 Posted by at 下午 12:08

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)