OpenStack的网络管理指南(4)——使用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的网络代理。



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值