linuxbridge是和linuxbridge plugin匹配的core agent,主要实现L2层的功能和security group的功能。security group的功能逐渐会被neutron firewall取代。
linuxbridge的启动命令在linuxbridge_neutron_agent.py中;启动的时候需要提供neutron.conf和linuxbridge_conf.ini配置文件
主要配置项:
 
  linuxbridge_conf.ini
  [vlans]
  network_vlan_ranges = physnet1,physnet2:1000:2999
  tenant_network_type=vlan
  [linux_bridge]
  physical_interface_mappings = physnet1:eth0, physnet2:eth1
  其中physnet1和physnet2表示该节点可用的物理网络名字(physical network, 名字可以随便定义),physical_interface_mappings用来把名字和该网络使用的物理网卡对应起来。

physical_interface_mappings的作用:

  physical_interface_mappings是linuxbridge中最重要的配置项,用来定义节点中的物理网络,可以有多个。openstack中的节点(按功能不同,可分为计算节点,dhcp节点,L3节点等)通过物理网络实现互联。这个物理网络用来实现neutron中定义的虚拟网络拓扑,和openstack的管理网络不是一个,是不同的概念。

  虚拟网络的流量需要通过物理网络承载,而物理网络其实就是该节点上的网卡。在linuxbridge实现中,每个网络对应一个bridge,每个网络又会有一个物理网络(provider:physical_network属性)来承载,与该物理网络对应的网卡(physical_interface_mappings中配置,如physnet1对应eth1),会被加入这个bridge中,这样该网络就可以和外部系统通信了。

  如果虚拟机中需要和外网相连(访问Internet),需要在L3节点(负责路由功能)上配置可以访问外部的物理网络,然后创建一个provider网络 和这个物理网络对应起来。把该provider网络和需要访问外网的虚拟机所在网络加入同一个路由器,即可实现访问外网的功能;

 例子:创建provider网络,public01是该网络的名字,physnet1是物理网络的名字。physical_interface_mappings需要配置physnet1对应的物理网卡,如eth0。

 $neutron router-create router01
$ neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True
$ neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/ --disable-dhcp
$ neutron router-gateway-set router01 public01

  创建可访问外网的网络net01(vlan类型),该网络的物理网络是physnet2。physical_interface_mappings需要配置physnet2对应的物理网卡,如eth1。

$ neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id
$ neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01
192.168.101.0/
$ neutron router-interface-add router01 net01_subnet01

  创建另外一个可访问外网的网络net02

$ neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id
$ neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02
192.168.102.0/
$ neutron router-interface-add router01 net02_subnet01

  这两个网络中的VM就可以访问外网,通过SNAT方式。如果需要外部网络直接访问VM,需要给VM分配一个floating IP地址。

openstack之neutron linuxbridge + vlan组网的更多相关文章

  1. 使用linuxbridge + vlan网络模式

    #openstack pike 使用 linuxbridge + vlan openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/76 ...

  2. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Netruon Open vSwitch + VLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  3. openstack之Neutron网络模式vlan,gre,vxlan详解

    第一:neutron openvswitch + vlan虚拟网络 一:基础知识 vlan基础知识 1.vlan介绍 1.1:首先说下lan,LAN 表示 Local Area Network,本地局 ...

  4. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  5. 玩转OpenStack网络Neutron(2)--使用Open vSwitch实现VLAN类型租户网络

    欢迎转载,转载请保留原作者信息 欢迎交流学习,共同进步! 作者:颜海峰 个人博客:http://yanheven.github.io 微博:海峰_云计算 http://weibo.com/344736 ...

  6. openstack pike 使用 linuxbridge + vxlan

    #openstack pike 使用 linuxbridge + vxlan #openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/ ...

  7. openstack之neutron

    Neutron neutron主要就是用于网络虚拟化,之前将nova的时候说过,网络部分没有写,因为openstack中的网络属于一个大部分,所以今天咱们就来看看neutron到底是怎么样实现网络虚拟 ...

  8. openstack核心组件——neutron网络服务 抓取ip(9)

    云计算openstack核心组件——neutron网络服务(9)   一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务   Neutron 通过 dnsmasq 提供 DHCP 服务 ...

  9. openstack核心组件——neutron网络服务(8)

    云计算openstack核心组件——neutron网络服务(8)   一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云 ...

随机推荐

  1. 欧几里得求最大公约数--JAVA递归实现

    欧几里得算法求最大公约数算法思想: 求p和q的最大公约数,如果q=0,最大公约数就是p:否则,p除以q余数为r,p和q的最大公约数即q和r的最大公约数. java实现代码: public class ...

  2. Xlint以及Java Lint 选项

    Java Lint 选项 Java 编译器的选项包括所谓的标准选项和非标准选项.标准选项是指在当前版本的开发环境中支持,且在未来版本中也将被支持的选项.常用的标准选项比如 -classpath 以及 ...

  3. MySQL存储过程的基本函数

    (1).字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回subst ...

  4. 系统学习Linux的11点建议

    一.从基础开始 常常有些朋友在 Linux 论坛问一些问题,不过,其中大多数的问题都是很基础的.例如为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不 ...

  5. Java面试题之weblogic相关问题

    WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发.集成.部署和管理大型分布式Web应用 ...

  6. SQL Server 触发器2

    触发器可以做很多事情,但也会带来很多问题.使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们. 触发器的一些常见用途如下: 弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服 ...

  7. U3D学习使用笔记(一)

    1.在使用NGUI控件时出现两种回调函数,一种是直接给回调函数赋值,一种是使用EventDelegate. UISlider.onDragFinished = functionName; EventD ...

  8. java 多线程学习(一)

    public class ThreadA extends Thread { ; public ThreadA() { super("ThreadID:" + (++threadID ...

  9. php代码20个实用技巧 ------ 转发自菜鸟教程

    1.不要实用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点:它首先查找指定的php包含路径,然后查找当前目录,因此会检查过 ...

  10. jmeter实例演示

    Jmeter 是比较轻便的性能测试工具,下面根据一个实例演示下jmeter的常见用法 一.前期准备,在使用之前,先分析测试需求,比如:需不要登录?需不需要监视服务器性能?多线程还是多循环?需不需根据流 ...