精华内容
下载资源
问答
  • Linux网络管理指南

    2010-11-25 19:48:09
    Linux网络管理指南,是对想从事Linux网络管理的人员很有用的一本工具书.
  • 华为FusionCompute网络管理指南.pdf
  • OpenStack的网络管理指南第四部分 原文老地方:http://docs.openstack.org/trunk/openstack-network/admin/content/ch_using.html 目录 核心OpenStack网络API功能 使用Openstack计算和网络 您可以在以下方面...

    OpenStack的网络管理指南第四部分


    目录
    核心OpenStack网络API功能
    Openstack计算使用Openstack网络

    您可以在以下方面使用OpenStack的网络:

    对云租户公开OpenStack的网络API,使他们能够建立丰富的网络拓扑结构。

    由云管理员或自动化的管理工具,为租户建立网络连接。


    核心OpenStack网络API功能

    在您安装和运行OpenStack网络之后,租户和管理员可以通过使用neutron CLI工具或者API来进行创建,读取,更新,删除(CRUD ) 操作。和其它OpenStack的CLI工具一样,neutron工具仅仅是一个围绕OpenStack的网络API的基本包装。使用CLI可以执行的任何操作,以编程方式执行API调用也可以等效实现。

    CLI包括一些配置。有关详情,请参阅”OpenStack的最终用户指南“。

    API抽象
    OpenStack的网络V2.0 API提供了L2网络拓扑结构和在IP地址管理(IPAM)的控制权,还有一个扩展实现基本的三层转发和NAT ,它提供的功能类似于nova网络。

    在Openstack网络API
    '网络'是一个孤立的L2网段(类似于一个VLAN ),为L2网络的拓扑结构可在OpenStack的网络部署奠定了基础。
    “子网”关联一块IP地址和其他网络配置(例如,默认网关或DNS服务器),每个子网都代表一个IPv4或IPv6地址块,如果需要,每个OpenStack的网络网络可以有多个子网。
    '端口'代表L2 网络上的一个连接端口。当一个端口在网络上被创建的时候,默认情况下,它会分配指定子网的可用的固定IP地址。当端口被删除,其分配的地址返回到可用IP子网池中。OpenStack的网络API的用户可以从块中选择一个特定的IP地址,或让OpenStack的网络选择第一个可用的IP地址。

    下表总结了可用于以前的网络抽象的属性。对于更多有关API抽象和操作,请参阅网络API 2.0参考。
    指定是否任何租户都可以访问该网络资源。默认策略设置限制使用该属性只有管理用户。
    Table 4.1. Network Attributes
    AttributeTypeDefault valueDescription
    admin_state_up bool True 网络的管理状态。如果指定为False (down) ,该网络不转发报文。
    id uuid-str Generated 网络的UUID 
    name string None 网络名字,这个字段不必是唯一的
    shared bool False 指定是否任何租户可以访问该网络资源。默认策略设置限制使用该属性只有管理用户。
    status string N/A 指示这个网络目前是否正在运作
    subnets list(uuid-str) Empty list 这个网络的子网列表
    tenant_id uuid-str N/A
    网络的拥有者。只有管理员用户可以设置租户标识,这不能通过 使用授权机制来改变。
    Table 4.2. Subnet Attributes
    AttributeTypeDefault ValueDescription
    allocation_pools list(dict) Every address incidr, excludinggateway_ip (if configured).

    CIDR子范围 列表,可用于动态分配端口。语法:
    :

    [ { "start":"10.0.0.2",
        "end": "10.0.0.254"} ]
    cidr string N/A 基于IP版本的子网的IP地址范围
    dns_nameservers list(string) Empty list 该子网中的主机所使用的DNS名称服务器列表。
    enable_dhcp bool True 指定该子网是否启用DHCP
    gateway_ip string First address in cidr 该子网中设备使用的默认网关。
    host_routes list(dict) Empty list 从这个子网的IP地址(不包括本地子网的路由)的设备应该使用的路由。
    id uuid-string Generated 代表这个子网的UUID
    ip_version int 4 IP 版本.
    name string None 子网的名字
    network_id uuid-string N/A 子网所依附的网络
    tenant_id uuid-string N/A
    网络的所有者。只有管理员用户可以设置租户标识, 这不能通过 使用授权机制来 改变。
    Table 4.3. Port Attributes
    AttributeTypeDefault ValueDescription
    admin_state_up bool true 此端口的管理状态。如果指定为false(down) ,该端口不转发报文。
    device_id string None
    标识使用此端口的 设备(例如,一个虚拟服务器的ID )。
    device_owner string None 标识使用此端口的实体(例如, DHCP代理)。
    fixed_ips list(dict) Automatically allocated from pool 指定此端口的ip地址,将端口关联子网
    id uuid-string Generated 端口的UUID
    mac_address string Generated 使用这个端口的mac地址
    name string None 端口名字
    network_id uuid-string N/A 端口所在的网络
    status string N/A 指示网络目前是否在工作
    tenant_id uuid-string N/A 网络的拥有者。只有管理员用户可以设置租户标识,这不能通过使用授权机制来改变。
    基本操作
    在进一步深入之前,我们强烈建议您先阅读几页OpenStack的最终用户指南关于Openstack网络的部分,该指南中描述了OpenStack网络的CLI一些高级功能。
    下表提供了neutron工具使用的几个例子。
    Table 4.4. Basic OpenStack Networking operations
    ActionCommand
    创建一个网络.
    $ neutron net-create net1
    创建net1的一个子网
    $ neutron subnet-create net1 10.0.0.0/24
    列出租户的端口列表
    $ neutron port-list
    列出租户的端口列表,同时显示idfixed_ipsdevice_owner 
    $ neutron port-list -c id -c fixed_ips -c device_owner
    显示一个特定的端口的详细信息
    $ neutron port-show port-id

    Note

     device_owner 字段描述谁拥有这个端口 端口的 device_owner :

    • "network:" 是OpenStack网络创建的

    • "compute:" 是OpenStack计算创建的.

    管理操作
    云管理员可以根据tenant_id代表任何一个租户执行任何neutron调用,如下所示:
    $ neutron net-create --tenant-id=tenant-id network-name

    比如:

    $ neutron net-create --tenant-id=5e4bbe24b67a4410bc4d9fae29ec394e net1
    [Note] Note

    要查看所有租户ID在OpenStack身份服务中的情况,作为管理员用户运行以下命令:

    $ keystone tenant-list
    高级操作
    下表提供了一些高级的使用neutron的工具来创建和显示网络,子网和端口的例子

    Table 4.5. Advanced OpenStack Networking operations

    Action

    Command

    创建一个共享网络(可以被所有租户所使用)

    $ neutron net-create --shared public-net

    创建一个指定网关的子网

    $ neutron subnet-create --gateway 10.0.0.254 net1 10.0.0.0/24

    创建一个没有网关的子网

    $ neutron subnet-create --no-gateway net1 10.0.0.0/24

    创建一个禁用DHCP的子网

    $ neutron subnet-create net1 10.0.0.0/24 --enable_dhcp False

    创建有一组特定主机路由的子网

    $ neutron subnet-create test-net1 40.0.0.0/24 --host_routes type=dict list=true destination=40.0.1.0/24,nexthop=40.0.0.2

    创建有一组特定DNS域名服务器的子网

    $ neutron subnet-create test-net1 40.0.0.0/24 --dns_nameservers list=true 8.8.8.7 8.8.8.8

    显示网络上的所有端口/ip分配

    $ neutron port-list --network_id net-id



    Openstack计算使用Openstack网络

    基本操作
    Table 4.6. Basic Compute/Networking operations
    ActionCommand
    检查可以网络
    $ neutron net-list
    选定一个Openstack网络来创建一个单网卡虚拟机。
    $ nova boot --image img --flavor flavor --nic net-id=net-id vm-name
    搜索一个OpenStack计算实例所有端口。
    $ neutron port-list --device_id=vm-id
    搜索端口,但只显示端口的mac地址
    $ neutron port-list -c mac_address --device_id=vm-id
    暂时禁止端口发送流量。
    $ neutron port-update port-id --admin_state_up=False
    删除一个虚拟机
    $ nova delete --device_id=vm-id
    [Note] Note

    当你:

    • 创建一个虚拟机,网络上的一个端口会自动创建对应的VM网卡。您可能还需要配置安全组规则来允许访问虚拟机。

    • 删除一个虚拟机 ,底层OpenStack的网络端口将自动删除。

    高级虚拟机创建
    Table 4.7. VM creation operations
    ActionCommand
    创建一个多网卡虚拟机
    $ nova boot --image img --flavor flavor --nic net-id=net1-id --nic net-id=net2-id vm-name
    创建一个指定IP地址的虚拟机:首先创建一个特定ip地址的Openstack网络端口
    然后指定port-id而不是net-id来创建一个虚拟机
    $ neutron port-create --fixed-ip subnet_id=subnet-id,ip_address=IP net-id
    $ nova boot --image img --flavor flavor --nic port-id=port-id vm-name
                   
    创建一个可以连接所有网络的虚拟机,它可以允许没有网卡配置的租户提交请求
    $ nova boot --image img --flavor flavor vm-name
    [Note] Note

    OpenStack网络当前不支持网卡选项中的v4-fixed-ip

    安全组(允许ping和ssh连接虚拟机)
    您必须配置安全组规则,这取决于您所使用的插件类型。如果您正在使用的插件
    • 实现OpenStack的网络安全组,您可以直接利用neutron security-group-rule-create来创建安全组规则。下面的示例允许ping和ssh访问你的虚拟机。

      $ neutron security-group-rule-create --protocol icmp --direction ingress default
      $ neutron security-group-rule-create --protocol tcp --port-range-min 22 --port-range-max 22 --direction ingress default
    • 不实现OpenStack网络安全组,你可以使用nova secgroup-add-rule或者euca-authorize命令来配置Openstack网络的安全组。以下nova命令允许ping和ssh访问你的虚拟机。

      $ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
      $ nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
    [Note] Note

    如果你的插件实现了OpenStack的网络安全组,你也可以利用计算安全组设置security_group_api =neutron在配置文件nova.conf中。设置此选项后,所有计算安全组命令由OpenStack的网络代理。



    展开全文
  • OpenStack的网络管理指南第五部分 原文老地方:http://docs.openstack.org/trunk/openstack-network/admin/content/ch_under_the_hood.html 本章介绍了两种网络场景和open vSwitch插件以及Linux桥接插件如何...

    OpenStack的网络管理指南第五部分


    本章介绍了两种网络场景和open vSwitch插件以及Linux桥接插件如何实现这些场景。

    Open vSwitch

    本节介绍如何用open vSwitch插件实现OpenStack的网络抽象。
    配置

    This example uses VLAN isolation on the switches to isolate tenant networks. This configuration labels the physical network associated with the public network as physnet1, and the physical network associated with the data network as physnet2, which leads to the following configuration options in ovs_neutron_plugin.ini:

    Select Text
    1
    2
    3
    4
    5
    [ovs]
    tenant_network_type = vlan
    network_vlan_ranges = physnet2:100:110
    integration_bridge = br -int
    bridge_mappings = physnet2:br-eth1
    情景1:一个租户,两个网络,一个路由
    第一种方案有两个专用网络( net01 , net02 ) ,每一个网络有一个子网( net01_subnet01 : 192.168.101.0/24 , net02_subnet01:192.168.102.0/24 ) 。两个专用网络都连接到一个路由器将它们与公共网络相连( 10.64.201.0/24 )。


    根据服务租户,创建共享路由器,定义公共网络,将其设置为路由器的默认网关
    $ tenant=$(keystone tenant-list | awk '/service/ {print $2}')
    $ 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/24 --enable_dhcp False
    $ neutron router-gateway-set router01 public01

    根据演示用户租户,建立专用网络net01和相应的子网,把它连接到router01路由器上。配置它来使用物理交换机上ID101的 VLAN 。

    $ tenant=$(keystone tenant-list|awk '/demo/ {print $2}'
    $ neutron net-create --tenant-id $tenant net01 \
              --provider:network_type vlan \
              --provider:physical_network physnet2 \
              --provider:segmentation_id 101
    $ neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24
    $ neutron router-interface-add router01 net01_subnet01

    同样,对于net02 ,采用物理交换机上 ID为102 的VLAN

    $ neutron net-create --tenant-id $tenant net02 \
              --provider:network_type vlan \
              --provider:physical_network physnet2 \
              --provider:segmentation_id 102
    $ neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24
    $ neutron router-interface-add router01 net02_subnet01
    下图显示了如何配置计算主机上的 各种Linux的网络设备 :
    各种类型的网络设备
    [Note] Note

    有四种不同类型的虚拟网络设备: TAP设备, VETH pair,Linux网桥,和Open vSwitch网桥。举个例子,对于一个以太网帧从虚拟机VM01的网卡eth0到物理网络,它必须通过主机内的9台设备:TAP vnet0,Linux bridge qbrnnn, veth pair(qvbnnn, qvonnn), Open vSwitch bridge br-int, veth pair (int-br-eth1, phy-br-eth1), and, finally, the physical network interface card eth1.


    一个TAP设备,比如vnet0,虚拟机像 KVM和Xen是如何实现虚拟网卡的(通常称为一个VIF的vNIC ),发送到一个TAP设备上的以太网帧是被客户操作系统所接受。

    一个VETH pair是一对直接连接在一起虚拟网络接口,一个以太网帧从一个VETH发送到另一个VETH pair。Openstack的网络使用VETH pair作为虚拟网桥之间的虚拟电缆。

    一个Linux网桥的行为像一个枢纽:您可以将多个(物理或虚拟)网络接口设备连接到Linux网桥上,从网桥上任何一个端口发送过来的以太网帧都会被发送到所有其他设备上。

    一个open vSwitch网桥的行为就像一个虚拟的交换机:网络接口设备连接到vSwitch网桥的端口上,这个端口可以想物理交换机一样配置,包括VLAN的配置。


    整合网桥

    br-int OpenvSwitch网桥是整合网桥,计算主机上的所有客户都连接这座网桥,Openstack网络实现网络隔离通过配置br-int的端口。

    物理连接网桥

    br-eth1提供桥连到物理网卡eth1上,它通过VETH pair连接到整合网桥br-int上( INT- BR- eth1的,PHY - BR- eth1 )。

    VLAN 转换

    在这个例子中, net01和net02 VLAN的ID分别为1和2。然而,在我们的例子中的物理网络仅支持VLAN ID的取值范围为101至110 。The Open vSwitch 代理负责为br-int和br-eth1做VLAN转换。当br-eth1的接收帧标记VLAN ID为1,PHY- BR- eth1的相关联的端口,它会修改帧的VLAN ID 为 101。同样,当BR- INT接收帧标记VLAN ID为101,INT- BR- eth1的相关联的端口,它会修改帧的VLAN ID 1 。

    安全组: iptables和Linux网桥

    在理想的情况下,TAP设备vnet0将会直接连接到br-int上边。不幸的是,这是不可能的,因为Openstack安全组的存在,Openstack在TAP设备比如vnet0上使用iptables规则来实现安全组,Open vSwitch 不直接和iptables规则兼容而提供了TAP设备连接的Open vSwitch端口

    OpenStack的网络使用一个额外的Linux网桥和VETH pair作为这个问题的解决方法。vnet0连接到linux网桥而不是直接连接到Open vSwitch桥上,qbrXXX。此网桥通过(qvbXXX, qvoXXX) veth pair连接到br-int


    网络主机配置

    网络主机运行neutron-openvswitch-plugin-agent,the neutron-dhcp-agent, neutron-l3-agent, 和 neutron-metadata-agent 等服务。

    在网络主机上,假设eth0连接到外部网络,eth1连接到数据网络,ovs_neutron_plugin.ini文件应该如下配置

    1
    2
    3
    4
    5
    [ovs]
    tenant_network_type = vlan
    network_vlan_ranges = physnet2:101:110
    integration_bridge = br -int
    bridge_mappings = physnet1:br-ex,physnet2:br-eth1

    下图显示了网络主机的网络设备:

    类似于计算主机,存在一个Open vSwitch integration bridge (br-int)和一个Open vSwitch bridge (br-eth1)连接到数据网络,这两者通过veth pair连接,neutron-openvswitch-plugin-agent 充当两个交换接口的VLAN转换。

    另外一个Open vSwitch bridge,,br-ex,被连接到外部网络的物理接口上。在这个例子中,物理接口是eth0。



    [Note] Note

    内部网桥和外部网桥通过veth pair(int-br-ex,phy-br-ex)连接,这个例子中使用第三层来路由从内部网络到外部网络的数据包。这个例子中没有数据包穿过veth pair。

     
    Open vSwitch 内部端口
    网络主机使用Open vSwitch 内部端口,内部端口使您能够将一个或多个IP地址分配给Open vSwitch,在前面的例子中, BR- INT桥有四个内部端口: tapXXX , qr- YYY , qr- ZZZ , tapWWW。每个内部端口都有一个独立的IP地址与它相关的。内部端口qg- VVV 在br-ex 上。
    DHCP agent
    默认情况下, OpenStack网络的 DHCP代理使用了一项名为dnsmasq的程序为客户提供DHCP服务。OpenStack网络必须为每一个要求DHCP服务的网络创建一个内部端口并且连接到该端口上,在前面的例子中,接口tapXXX是子网net01_subnet01上,接口tapWWW是net02_subnet01上的。
     L3 agent (routing)
    OpenStack网络L3代理通过使用Open vSwitch内部端口实现路由并且依赖网络主机路由数据包。在这个例子: 子网net01_subnet01的接口 qr -YYY ,ip地址为192.168.101.1/24。子网net02_subnet01上的接口qr-ZZZ,ip地址为192.168.102.1/24。接口qg-VVV拥有ip地址为10.64.201.254/24。由于这些接口对网络主机的操作系统可见,因此可以将数据包跨接口路由,只有管理员开启ip转发。
    L3代理使用iptables来实现浮动IP做网络地址转换(NAT ) 。
    展开全文
  • 接上一篇OpenStack的网络管理指南(1) 原文老地方:http://docs.openstack.org/trunk/openstack-network/admin/content/ch_install.html 了解如何安装和运行OpensStack网络服务 初始条件 如果你从零开始...

    接上一篇OpenStack的网络管理指南(1)


    了解如何安装和运行OpensStack网络服务


    初始条件

    如果你从零开始搭建使用OpenStack的网络服务的主机,我们强烈建议您使用的Ubuntu 12.04、12.10或Fedora 17、18,这些平台包含OpenStack的网络包,并且通过很好的测试。

    OpenStack的网络至少需要dnsmasq2.59,它包含了所有必要的选项。


    ubuntu上安装步骤

    指向Grizzly PPAs:
    $echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main | sudo tee /etc/apt/sources.list.d/grizzly.list
    $sudo apt-get install ubuntu-cloud-keyring
    $sudo apt-get update
    $sudo apt-get upgrade 

    安装neutron-server
    neutron-server处理OpenStack网络用户的请求和暴露API 。
    1. 安装 neutron-server 和 CLI 来访问API:

      $sudo apt-get install neutron-server python-neutronclient 
    2. 您还必须安装您选择使用 的插件,例如:

      $sudo apt-get install neutron-plugin-<plugin-name>
    3. 大部分插件要求安装一个数据库,并在插件配置文件配置。例如:

      $sudo apt-get install mysql-server python-mysqldb python-sqlalchemy

      如果你已经为 其他OpenStack的服务使用了一个数据库,你只需要创建一个neurton数据库:

      $mysql -u <user> -p <pass> -e “create database neutron”
    4. 为插件的配置文件配置数据库:

      1. Find the plugin configuration file in /etc/neutron/plugins/<plugin-name> (for example,/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini).

      2. Set in the file:

        sql_connection = mysql://<user>:<password>@localhost/neutron?charset=utf8

     安装RPC

    许多OpenStack的网络插件使用RPC ,使代理可以沟通主进程 neutron-server。如果你的插件需要代理,他们可以使用相同的RPC机制来使用OpenStack的其他组件,如nova。

    使用RabbitMQ作为消息总线的RPC
    1. 可以通过管理网络安装在RabbitMQ的一台主机上(如果已经安装RabbitMQ的其他服务,如计算服务,那么这一步没有必要):

      $sudo apt-get install rabbitmq-server
      $rabbitmqctl change_password guest <password>
    2. 更新 /etc/neutron/neutron.conf :

      rabbit_host=<mgmt-IP-of-rabbit-host> rabbit_password=<password> rabbit_userid=guest

    [Important] 重要

    文件/etc/neutron/neutron.conf必须复制到所有使用neutron-server和neutron-*-agent二进制文件的主机上面


    插件配置: OVS插件

    如果你在多台主机上部署Open vSwitch上(OVS )插件,您将需要使用隧道或VLAN来隔离来自多个网络的流量。隧道更易于部署,因为它不要求网络交换机上配置VLAN 。

    以下安装过程使用隧道模式:

    1. 编辑 /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini 到以下指定值:

      enable_tunneling=True tenant_network_type=gre tunnel_id_ranges=1:1000 # only required for nodes running agents local_ip=<data-net-IP-address-of-node>
    2. 如果您使用的是neutron DHCP 代理, 添加一下内容到 /etc/neutron/dhcp_agent.ini:

      dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf
    3. 创建 /etc/neutron/dnsmasq-neutron.conf, 添加以下的值到该文件降低实例的MTU大小以防止数据包碎片通过GRE隧道

      dhcp-option-force=26,1400
    4. 在改变装有neutron-server节点的配置之后, 重启 neutron-server 获得新的配置:

      $sudo service neutron-server restart

    插件配置:Nicira NVP插件

    1. 安装NVP插件:

      $sudo apt-get install neutron-plugin-nicira
    2. 编辑/etc/neutron/neutron.conf :

      core_plugin = neutron.plugins.nicira.NeutronPlugin.NvpPluginV2

      NVP neutron.conf 文件配置示例:

      core_plugin = neutron.plugins.nicira.NeutronPlugin.NvpPluginV2
      rabbit_host = 192.168.203.10
      allow_overlapping_ips = True

    为了告诉OpenStack网络关于NVP控制器集群,在文件/etc/neutron/plugins/nicira/nvp.ini创建一个新的部分,增加以下内容:

    • 在租户创建一个网络时,NVP运输区(Transport Zone 这个直译的)的UUID将被默认使用。这个值在NVP管理运输区页面被检索到:

      default_tz_uuid = <uuid_of_the_transport_zone>
    • 一个连接字符串被NVP插件用作指示参数当要连接NVP网络服务API的时候。在你的部署中,每个NVP控制器文件中将配置这一行,NVP运营商将可以要求更新NVP控制器的IP和密码,其他都可以设置为默认:

      nvp_controller_connection = <controller_node_ip>:<controller_port>:<api_user>:<api_password>:<request_timeout>:<http_timeout>:<retries>:<redirects>
    • 当一个租户创建一个路由时,NVP L3的网关服务的UUID将被默认使用。这个值可以在NVP管理网关服务页面被检索到:

      default_l3_gw_service_uuid = <uuid_of_the_gateway_service>
      [Warning] Warning

      目前,ubuntu包中没有更新neutron指向NVP配置文件的初始脚本,你必须手动更新/etc/default/neutron-server 

      NEUTRON_PLUGIN_CONFIG = /etc/neutron/plugins/nicira/nvp.ini 
    配置big switch,Floodlight REST代理插件
    1. 编辑 /etc/neutron/neutron.conf :

      core_plugin = neutron.plugins.bigswitch.plugin.NeutronRestProxyV2
    2. 编辑插件配置文件, /etc/neutron/plugins/bigswitch/restproxy.ini:

      server = <controller-ip>:<port>


    3. 重启 neutron-server 获得新的配置:

      $sudo service neutron-server restart


    配置 Ryu插件
    1. 安装 Ryu 插件:

      $sudo apt-get install neutron-plugin-ryu 
    2. 编辑/etc/neutron/neutron.conf:

      core_plugin = neutron.plugins.ryu.ryu_neutron_plugin.RyuNeutronPluginV2
    3. 编辑/etc/neutron/plugins/ryu/ryu.ini, 为ryu-neutron-agent更新以下ovs选项:

      •  openflow_rest_api 是用在告诉Ryu在哪里侦听REST API。 根据你的Ryu设置替换ip地址和端口。

      • ovsdb_interface 是Ryu用来访问ovsdb-server。根据您的设置替换eth0。 ip地址来自于接口名称。如果你想不管接口名称而改变ip地址,可以指定ovsdb_ip。 你可以用ovsdb_port来指定非默认的端口访问ovsdb-server。

      • 需要设置tunnel_interface来告诉哪个ip地址被用于隧道(假如隧道没有被使用,那么这个值被忽略),ip地址来自接口名称

      你可以使用计算节点使用的相同的配置文件,但需要改变其网卡的ip地址

      openflow_rest_api = <ip-address>:<port-no> ovsdb_interface = <eth0> tunnel_interface = <eth0> 
    4. 重启 neutron-server 获得新的设置:

      $sudo service neutron-server restart


    配置PLUMgrid插件

    1. 编辑 /etc/neutron/neutron.conf:

      core_plugin = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2
    2. 编辑 /etc/neutron/plugins/plumgrid/plumgrid.ini :

      Select Text
      1
      2
      3
      4
      5
      [PLUMgridDirector]
      director_server = "PLUMgrid-director-ip-address"
      director_server_port = "PLUMgrid-director-port"
      username = "PLUMgrid-director-admin-username"
      password = "PLUMgrid-director-admin-password"
    3. 重启 neutron-server:

      $sudo service neutron-server restart

    安装这块比较繁琐,而且也没有什么可以详细翻译的,后面的略过了

    展开全文
  • OpenStack的网络管理指南第三部分 原文老地方:http://docs.openstack.org/trunk/openstack-network/admin/content/ch_install.html 要让Openstack的网络工作起来,你必须配置和设置OpenStack的身份服务和...

    OpenStack的网络管理指南第三部分


    要让Openstack的网络工作起来,你必须配置和设置OpenStack的身份服务和OpenStack计算服务。


    配置Openstack身份认证服务

    关于身份认证中的一些概念,可以参阅这里http://www.kankanews.com/ICkengine/archives/10788.shtml

    1、Create the get_id() Function
    get_id ()函数存储已创建的对象的ID,并且可以去除容易出错的复制粘贴的对象id在后续的步骤中

    a.将下面的函数添加到你的.bashrc文件中
    $ function get_id () {
    echo `"$@" | awk '/ id / { print $4 }'`
    }

    b.Source the .bashrc file:
    $ source .bashrc

    2.创建OpenStack的网络服务入口
    OpenStack 网络必须在Openstack计算服务的目录中,如下所示创建服务:
    1. $ NEUTRON_SERVICE_ID=$(get_id keystone service-create --name neutron --type network --description 'OpenStack Networking Service')
    3.创建OpenStack的网络服务端点入口(端点 endpoint 其实指访问服务的地址
    您创建一个OpenStack的网络端点入口的方式取决于您是否正在使用SQL目录驱动程序或模板目录驱动程序:
    a.如果您使用的是SQL驱动程序,请运行以下这些参数
    • $ keystone endpoint-create --region $REGION --service-id $NEUTRON_SERVICE_ID --publicurl 'http://$IP:9696/' --adminurl 'http://$IP:9696/' --internalurl 'http://$IP:9696/'

      比如:

      $ keystone endpoint-create --region myregion --service-id $NEUTRON_SERVICE_ID \
      --publicurl "http://10.211.55.17:9696/" --adminurl "http://10.211.55.17:9696/" --internalurl "http://10.211.55.17:9696/" 

    b.如果您正在使用的是模板驱动程序,添加以下内容到OpenStack计算目录模板文件(default_catalog.templates),使用这些参数
    1
    2
    3
    4
    catalog.$REGION.network.publi cURL = http: // $IP:9696
    catalog.$REGION.network.adminURL = http: // $IP:9696
    catalog.$REGION.network.internalURL = http: // $IP:9696
    catalog.$REGION.network.name = Network Service

    比如:

    Select Text
    1
    2
    3
    4
    catalog.$Region.network.publi cURL = http: //10 .211.55.17:9696
    catalog.$Region.network.adminURL = http: //10 .211.55.17:9696
    catalog.$Region.network.internalURL = http: //10 .211.55.17:9696
    catalog.$Region.network.name = Network Service
    4.创建OpenStack的网络服务用户
    你必须提供管理员用户凭证让Openstack计算和Openstack网络的一些内部组件可以访问Openstack网络API,建议的方法是创建一个特殊的服务租户,该租户创建一个neutron用户,分配这个用户以管理员的角色
    a.创建管理员角色
    1. $ ADMIN_ROLE=$(get_id keystone role-create --name=admin)
    b.创建neutron用户
    1. $ NEUTRON_USER=$(get_id keystone user-create --name=neutron --pass="$NEUTRON_PASSWORD" --email=demo@example.com --tenant-id service)
    c.创建服务租户
    1. $ SERVICE_TENANT=$(get_id keystone tenant-create --name service --description "Services Tenant")
    d.建立租户,用户和角色之间的关系
    $ keystone user-role-add --user_id $NEUTRON_USER --role_id $ADMIN_ROLE --tenant_id $SERVICE_TENANT
    请参阅OpenStack的安装指南来了解更多关于创建服务项目和服务用户的更多细节。


     配置OpenStack计算服务

    在OpenStack的网络使用时,你不能运行OpenStack计算的nova网络(不像传统OpenStack计算部署)。相反Openstack计算委托几乎所有的跟网络相关的决定给Openstack网络。调用面向租户的API来管理对象,例如安全组和浮动ip地址,这些API已经从Openstack计算上剥离由Openstack网络API代理(这句话经过我的加工,原句是这样的:Tenant-facing API calls to manage objects like security groups and floating IPs are proxied by OpenStack Compute to OpenStack Network APIs)
    然而面向运营商的工具(例如:NOVA管理)是没有代理的,因此不该使用代理。

    警告
    当你配置网络时,查阅这份文档是非常重要的,而不是依靠Openstack计算网络文档(NOVA network的文档而不是现在的neutron文档)或者以往与Openstack计算有关的经验。假如关于网络的某条Nova CLI命令或者配置选项没有在本指南中提到,那么这个命令也许不支持Openstack网络。特别的,你不能像nova-manage和nova一样使用CLI工具去管理网络或者ip地址,包括固定和浮动ip。

    注意
    我们强烈建议您先卸载nova网络,并在使用Openstack网络之前,重新启动任何运行nova网络的物理节点。无意中同时运行nova网络和Openstack网络可能会引起问题

    为了确保Openstack计算和Openstack网络(不是nova网络)的正常运行,则必须调整nova.conf的配置。

    网络API和凭据配置
    每次虚拟机在Openstack在设置或者取消设置,所有的nova服务必须使用标准API与Openstack网络进行通信,为了这一点,你必须配置nova.conf文件中的所有项目(用于每个nova-api和nova-compute实例)
    表3.1. 配置
    ItemConfiguration

    network_api_class

    修改默认 nova.network.neutronv2.api.API, 来表明是Openstack网络而不是传统的nova网络模型

    neutron_url

    为这次部署更新neutron-server实例的主机名/IP 和 端口

    neutron_auth_strategy

    为所有的部署保持keystone的默认值

    neutron_admin_tenant_name

    更新上一节OpenStack 身份配置创建的服务租户的名字

    neutron_admin_username

    更新上一节OpenStack 身份配置中创建的用户的名字

    neutron_admin_password

    更新上一节OpenStack 身份配置中创建的用户的密码

    neutron_admin_auth_url

    更新OpenStack的身份服务器的IP地址和端口。这是(keystone)的身份管理API服务器的IP和端口值,而不是身份服务API的IP和端口。

    安全组配置

    OpenStack的网络服务使用了一种比内置安全组功能到OpenStack计算内更加灵活和强大的机制来提供安全组功能,因此,如果您使用OpenStack的网络,你应该始终禁用内置的安全组和安全组代理OpenStack的网络API的调用。如果你不这样做,同时使用两者将会产生安全策略的冲突

    OpenStack的网络代理安全组,请使用以下值配置nova.conf:

    Table 3.2. nova.conf Security Group Settings
    Item Configuration

    firewall_driver

    更新nova.virt.firewall.NoopFirewallDriver。这样nova-compute将不执行iptables过滤本身

    security_group_api

    更新neutron,使所有安全组请求通过OpenStack的网络服务代理。

    元数据配置

    OpenStack计算服务允许虚拟机查询和虚拟机相关的元数据通过web请求一个特殊的169.254.169.254地址,即使请求来自于被隔离的网络,或从多个使用重叠的IP地址网络,OpenStack的网络也支持代理那些nova-API的请求
    要启用代理请求,你必须更新以下nova.conf的字段
    Table 3.3. nova.conf Metadata Settings
    Item Configuration

    service_neutron_metadata_proxy

    更新为true, 否则 nova-api 将不能响应来自neutron-metadata-agent的请求.

    neutron_metadata_proxy_shared_secret

    更新字符串“密码”的值,您还必须为metadata_agent.ini文件配置相同的值,对元数据请求进行身份验证。

    这两个文件中的空字符串的默认值将允许元数据的功能,但是不安全,如果有任何不信任的实体访问元数据API。

    [Note] Note

    作为一项预防措施,即使使用neutron_metadata_proxy_shared_secret ,建议您不要使用相同的nova- API实例租户用于公开元数据。相反,你应该运行一组专用的仅适用你的管理网络的nova- API实例用于公开元数据。一个给定的nova- API实例是否公开元数据API是由配置文件nova.conf的ofenabled_apis值决定的。

     Vif-plugging 配置

    当nova-compute创建一个虚拟机,它连接每个虚拟机的虚拟网卡到Openstack网络控制的虚拟交换机上,通知虚拟交换机哪个Openstack网络端口ID和哪个虚拟网卡相连,不同的Openstack网络插件可能需要不同类型的VIF-plugging,您必须指定类型Vif-plugging来满足nova-compute实例在文件nova.conf中

    以下插件支持“端口绑定”的API扩展,允许nova查询所需的VIF -plugging类型:
    • OVS plugin

    • Linux Bridge Plugin

    • NEC Plugin

    • Big Switch Plugin

    • Hyper-V Plugin

    • Brocade Plugin

      对于这些插件nova.conf默认值就足够了。

    Vif-plugging with Nicira NVP Plugin

    NVP插件的vif配置选择取决于您使用libvirt的版本。要检查您的libvirt的版本,使用方法:
    $ libvirtd version

    nova.conf文件中, 更新libvirt_vif_driver值,取决于您的libvirt版本.

    Table 3.4. nova.conf libvirt Settings
    VersionRequired Value

    libvirt (version >= 0.9.11)

    nova.virt.libvirt.vif.LibvirtOpenVswitchVirtualPortDriver

    libvirt (version < 0.9.11)

    nova.virt.libvirt.vif.LibvirtOpenVswitchDriver

    ESX

    No vif-plugging configuration is required

    XenServer

    nova.virt.xenapi.vif.XenAPIOpenVswitchDriver

    例如: libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver

    [Note] Note

    当你使用的libvirt < 0.9.11, 必须额外编辑/etc/libvirt/qemu.conf, 注释掉条目cgroup_device_acl', 增加条目'/dev/net/tun'到列表中作为配置项,然后重启libvirtd.

    [Note] Note

    假如你的部署包含异构计算平台(例如一些主机是KVM,另外一些是ESX),那么nova-compute 需求的vif-plugging配置可能会不同,即使是在同一个部署中 


     nova.conf配置示例 (nova-compute 和 nova-api)

    例如上面的设置,假设云控制器节点运行Openstack计算,并且Openstack网络IP地址是192.168.1.2,vif-plugging使用LibvirtHybridOVSBridgeDriver.

    network_api_class=nova.network.neutronv2.api.API
    neutron_url=http://192.168.1.2:9696
    neutron_auth_strategy=keystone
    neutron_admin_tenant_name=service
    neutron_admin_username=neutron
    neutron_admin_password=password
    neutron_admin_auth_url=http://192.168.1.2:35357/v2.0
    
    security_group_api=neutron
    firewall_driver=nova.virt.firewall.NoopFirewallDriver
    
    service_neutron_metadata_proxy=true
    neutron_metadata_proxy_shared_secret=foo
    
    # needed only for nova-compute and only for some plugins
    libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
     

    终于完了!!! 发表!!! 亲们求捧场!!!
    展开全文
  • 个人翻译和理解有限,有错误的地方请各位大牛指正 ...openstack网络的建立是为定义网络连接和云中的寻址提供丰富的API,Neutron服务(先前被称为“Quantum”),使运营商能够利用不同的网络技术去搭建他们的云
  • Linux网络管理指南

    2010-06-26 11:28:38
    网络管理 运维 linux 培训 Linux网络管理指南
  • 网络管理员维护指南 网络管理员维护指南 网络管理员维护指南 网络管理员维护指南 网络管理员维护指南
  • 《中小企业网络管理员实战指南》由三位高级网络工程师根据中小企业网络应用现状及网管员需求、结合多年网络工程建设与管理经验倾力编写,旨在全面系统地提高中小企业网络管理员的实战技能。《中小企业网络管理员实战...
  • 网络管理员维护指南

    2008-04-20 08:39:24
    网络管理员维护指南为您的计算机管理带来方便
  • Linux网络管理指南pdf.很经典的LINUX类书籍.
  • 网络管理指南是一个适合管理员的指导方案!
  • linux网络管理指南

    2011-08-23 22:51:37
    linux网络管理指南 高清 很好的一本资源 值得大家学习!
  • 华为 ne80 配置指南 网络管理 部分
  • 网络管理员维护指南。。谁用谁知道。。。。。。。超好使。
  • 中小企业网络管理员实战指南之交换机命令行管理
  • 西门子SCALANCE W网络管理使用指南zip,西门子SCALANCE W网络管理使用指南:本文描述了SCALANCE W模块在工业应用中的网络管理应用,例如Load&Save;,Syslog,E-mail,SNMP和SNTP协议。并阐述了这些网络管理协议的基本...
  • linux网络管理方面的经典书籍,值得研究!
  • linux网络管理指南31章全。系统介绍了linux网络知识
  • 网络管理员考试大纲与培训指南 2009版
  • 网络管理员必读30本技术手册指南,非常有价值的个人学习经验

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,131
精华内容 44,052
关键字:

网络管理指南