openstack云平台中服务地址分为啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openstack云平台中服务地址分为啥相关的知识,希望对你有一定的参考价值。
云计算有IaaS(Infrastructure as a Service,基础架构即服务),PaaS(Platform as a Service,平台即服务),SaaS(Software as a Service,软件即服务)三种基本模型。1.IaaS:提供最底层的IT基础服务,包括处理能力,存储空间,网络资源等,用户可以从中获取硬件或者虚拟化硬件资源(包括luo机或者虚拟机),之后可以给申请到的资源安装操作系统和其它应用程序。一般面向IT管理人员。
IaaS通常分为三种用法:公有云,私有云和混合云
2.PaaS:是已经把安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其它应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的是开发人员。需要了解平台所提供环境下的应用开发和部署。
简单的说,PaaS平台是指云环境中的应用基础设施服务,也可以说是中间件即服务
3.SaaS:可以直接通过互联网给用户提供软件和应用程序服务。用户通过租赁的方式获取安装在厂商或者服务供应商那里的软件。一般面向普通用户,最常见的是提供给用户一组账号和号码。
用户不用再购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动,不用对软件进行维护,提供商会全权管理和维护软件,同时也提供软件的离线操作和本地数据存储
什么是Openstack
Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目
OpenStack是一套IaaS解决方案
OpenStack是一个开源的云计算管理平台
以Apache许可证为授权 参考技术A 在OpenStack Pike版本中创建IPv6子网时,有五种设置地址方式供选择:
上图中这五种方式显示不全,现将其全部展示:
No options specified(Default),
SLAAC: Address discovered from an OpenStack router
SLAAC: Address discovered from an external router
DHCPv6 stateless : Address discovered from OpenStack Router and additional information from OpenStack DHCP
DHCPv6 stateful : Address discovered from OpenStack DHCP
接下来对上述五种方式进行说明:
手工配置,即需要管理员对虚拟机逐台手工配置IPv6地址。
SLAAC (StateLess Autoconfiguration)其实就是利用路由宣告消息(RA)来确定前缀和长度,利用EUI-64算法计算出接口ID。
OpenStack 中又将SLAAC细分为2种,第一种就是利用OpenStack router 路由宣告消息(RA)报文来生成IPv6地址、
第二种SLAAC:利用外部 router的路由宣告消息(RA)报文来生成IPv6地址
无状态DHCPv6,利用OpenStack router 路由宣告消息(RA)报文来生成IPv6地址 ,从OpenStack DHCPv6服务器获取其它信息,比如DNS服务器地址、NTP服务器地址、WINS服务器地址、TFTP服务器地址、IP电话服务器地址、证书服务器地址等。
有状态DHCPv6,从从OpenStack DHCPv6服务器获取IPv6地址及其它信息,比如DNS服务器地址、NTP服务器地址、WINS服务器地址、TFTP服务器地址、IP电话服务器地址、证书服务器地址等。 参考技术B OpenStack中的服务可以进行分布式部署,并且每个核心服务中的子组件也可以分布式部署
云计算openstack-虚拟机获取不到ip(13)
一、现象描述:
openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图:
二、分析思路:
(1)查看neutron服务状态,确保dchp服务正常运行
[email protected]:15:11~#neutron agent-list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ | id | agent_type | host | availability_zone | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ | 3812cb30-7440-4080-bd75-9634687937f6 | DHCP agent | controller | nova | :-) | True | neutron-dhcp-agent | | 51a30db0-9525-42de-b5d8-6b04e2a13baf | Open vSwitch agent | storage | | :-) | True | neutron-openvswitch-agent | | 63416b42-376b-4576-b89d-12694faa2bf9 | L3 agent | controller | nova | :-) | True | neutron-l3-agent | | 7ce3b592-240f-4090-bf09-9a7ecbfa7d3c | Open vSwitch agent | controller | | :-) | True | neutron-openvswitch-agent | | 851ccdd9-ff14-4e8f-971c-9343787ef056 | Open vSwitch agent | compute | | :-) | True | neutron-openvswitch-agent | | 8c458dca-a306-4882-a851-1c47a19ab3c1 | Metadata agent | controller | | :-) | True | neutron-metadata-agent | +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ [email protected]:16:24~#
(2)查看dnsmsp进程是否正常
[email protected]:48:28/var/log/neutron#ps aux | grep dnsmasq nobody 28488 0.0 0.0 53888 1164 ? S 21:51 0:00 dnsmasq --no-hosts --no-resolv --strict-order --except-interface=lo --pid-file=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/host --addn-hosts=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/opts --dhcp-leasefile=/var/lib/neutron/dhcp/1a426ffe-2bf0-4785-96a5-74402004a17b/leases --dhcp-match=set:ipxe,175 --bind-interfaces --interface=tap2c7d9cb9-96 --dhcp-range=set:tag0,172.16.0.0,static,86400s --dhcp-option-force=option:mtu,1450 --dhcp-lease-max=65536 --conf-file= --domain=openstacklocal root 30314 0.0 0.0 112724 988 pts/0 R+ 22:48 0:00 grep --color=auto dnsmasq [email protected]:48:52/var/log/neutron#
(3)检查ovs网桥中的 br-int 集成网桥是否有 tap设备 连接到了dchp-agent 的 namesapce上
[email protected]:16:29~#ovs-vsctl show 552eea67-4365-410a-b683-644af569c52d Manager "ptcp:6640:127.0.0.1" is_connected: true Bridge br-ex Port "eth2" Interface "eth2" Port br-ex Interface br-ex type: internal Port "qg-91819abf-e1" Interface "qg-91819abf-e1" type: internal Bridge br-int Controller "tcp:127.0.0.1:6633" is_connected: true fail_mode: secure Port "tap2c7d9cb9-96" tag: 2 Interface "tap2c7d9cb9-96" type: internal Port br-int Interface br-int type: internal Port patch-tun Interface patch-tun type: patch options: peer=patch-int Port "qr-4056447b-ea" tag: 1 Interface "qr-4056447b-ea" type: internal Bridge br-tun Controller "tcp:127.0.0.1:6633" is_connected: true fail_mode: secure Port "vxlan-c0a8fe97" Interface "vxlan-c0a8fe97" type: vxlan options: df_default="true", in_key=flow, local_ip="192.168.254.150", out_key=flow, remote_ip="192.168.254.151" Port patch-int Interface patch-int type: patch options: peer=patch-tun Port br-tun Interface br-tun type: internal ovs_version: "2.9.0" [email protected]:16:48~#i
在dhcp命名空间中找到对应网络的 namespace 中找到 br-int 网桥上对应的 tap 设备,然后查看 ip 配置:
[email protected]:26:29/var/log/neutron#ip netns show qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: 1) qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b (id: 0) [email protected]:26:44/var/log/neutron# [email protected]:27:14/var/log/neutron# [email protected]:27:14/var/log/neutron#ip netns exec qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 15: tap2c7d9cb9-96: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether fa:16:3e:18:16:47 brd ff:ff:ff:ff:ff:ff inet 172.16.199.10/16 brd 172.16.255.255 scope global tap2c7d9cb9-96 valid_lft forever preferred_lft forever inet 169.254.169.254/16 brd 169.254.255.255 scope global tap2c7d9cb9-96 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe18:1647/64 scope link valid_lft forever preferred_lft forever [email protected]:27:47/var/log/neutron#
三、定位问题:
通过以上排查思路分析,br-int 上是有 tap设备 连接到了dhcp-namespace 中,但却是外部网络的dhcp服务ip,没有发现虚拟机所连接的192.168.168.0/24的dhcp-namespace
四、故障处理流程:
(1)找到对应网络的subnet,把 dchp 功能启用,打对勾
(2)然后到 subnet 中查看时候有 dhcp 端口且有ip,并检查 dhcp-namespace 中的 tap设备是否有了ip
(3)在次查看namespace发现多了一个dhcp-namespace
[email protected]:26:15/var/log/neutron#ip netns show qdhcp-cb06eada-2249-46e7-bcd8-c9c07937231d (id: 2) qrouter-3028515a-106a-4d77-b2bb-edd34ddbc7c7 (id: 1) qdhcp-1a426ffe-2bf0-4785-96a5-74402004a17b (id: 0)
(4)查看dhcp-namespace的 ip 配置,正好是dhcp的服务ip
[email protected]:26:20/var/log/neutron#ip netns exec qdhcp-cb06eada-2249-46e7-bcd8-c9c07937231d ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 21: tap865fcb34-fc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether fa:16:3e:ce:2f:9b brd ff:ff:ff:ff:ff:ff inet 192.168.168.2/24 brd 192.168.168.255 scope global tap865fcb34-fc valid_lft forever preferred_lft forever inet 169.254.169.254/16 brd 169.254.255.255 scope global tap865fcb34-fc valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fece:2f9b/64 scope link valid_lft forever preferred_lft forever [email protected]:26:54/var/log/neutron#
(5)重启虚拟机虚拟机,发现获取到 ip 了
五、总结
在创建虚拟机下发请求后,dnsmasq进程会给虚拟机分配好mac地址和ip地址,并写入到/var/lib/neutron/dhcp/network-id 目录下的host文件中。虚拟机在内网中发送广播来获取ip的过程中,dnsmasq 会监听到然后将host文件中的对应ip通过dchp-namespace分配给虚拟机。
所以,在虚拟机获取ip过程中,必须虚拟机发出的包可以到达dhcp-namespace 经过的虚拟网络设备都存在且正常工作。
如果没有在subnet中开启上述的dhcp功能,那就少了一个对应网络的name-sapce dhcp服务了,所以虚拟机获取不到 ip。
以上是关于openstack云平台中服务地址分为啥的主要内容,如果未能解决你的问题,请参考以下文章