描述

当你在openstack平台创建一个network,在这个network上创建两台虚拟机,当这两台虚拟机还需要VIP时,你从这个network分配一个地址做为VIP,配置到虚拟机上,你会发现这个VIP并不能被访问。因为在neutron中,从 VM 端口发送/接收的数据包必须具有该 VM 端口的固定 IP/MAC 地址,所以虚拟机的端口在创建时就会把IP/MAC进行了绑定。有这条规则存在,所以VIP 是无法与外部通信,但可以通过如下两个方法来解决。

  • 方法1(推荐): 为需要使用VIP的虚拟机端口配置allwed_address_pairs
  • 方法2: 为需要使用VIP的虚拟机端口disable_secruity

openstack version: Train

方法1

allwed_address_pairs: 允许一个端口在该端口上添加额外的 IP/MAC 地址对,以允许与这些指定值匹配的流量, 使额外的IP能与外部通信。

安全组放通VRRP协议(可选)

keeplived场景下,虚拟机所在安全组放通VRRP协议,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议,可以认为是实现高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

# 找到虚拟机所在安全组的id(3a02e44f-d5bb-40de-99b5-f9467e456bc7)
$ openstack security group rule create 3a02e44f-d5bb-40de-99b5-f9467e456bc7 --protocol vrrp --ingress --remote-ip 0.0.0.0/0
$ openstack security group rule create 3a02e44f-d5bb-40de-99b5-f9467e456bc7 --protocol vrrp --egress --remote-ip 0.0.0.0/0
配置allwed_address_pairs
# 虚拟机端口和VIP都是使用这个network分配的IP
$ openstack network list
test_network a75d1c08-73d7-476e-be3a-37d4532672eb # 从test_network创建一个VIP地址为:192.168.2.253 , 名字为:test-vip
$ neutron port-create test_network --allowed-address-pairs type=dict list=true ip_address=192.168.2.253 --name test-vip
+-----------------------+--------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | {"ip_address": "192.168.2.253", "mac_address": "fa:16:3e:ab:0f:ad"} |
| binding:host_id | |
| binding:profile | {} |
| binding:vif_details | {} |
| binding:vif_type | unbound |
| binding:vnic_type | normal |
| created_at | 2022-02-26T13:57:15Z |
| description | |
| device_id | |
| device_owner | |
| extra_dhcp_opts | |
| fixed_ips | {"subnet_id": "4a7237fc-10a8-4a44-b711-57dfbcee569a", "ip_address": "192.168.2.237"} |
| id | 490ba237-649d-4a52-a923-fbad0c00702a |
| mac_address | fa:16:3e:ab:0f:ad |
| name | test-vip |
| network_id | a75d1c08-73d7-476e-be3a-37d4532672eb |
| port_security_enabled | True |
| project_id | a3f435fc08854b828b3346aa1581d39f |
| revision_number | 1 |
| security_groups | 3a02e44f-d5bb-40de-99b5-f9467e456bc7 |
| status | DOWN |
| tags | |
| tenant_id | a3f435fc08854b828b3346aa1581d39f |
| updated_at | 2022-02-26T13:57:15Z |
+-----------------------+--------------------------------------------------------------------------------------+ # 为需要使用VIP的虚拟机端口添加`allwed_address_pairs`属性。
# vm1 port_id=1bd248cb-a543-46a4-b4ae-8ec9f93ce713
# vm2 port_id=c454a763-2bed-4164-a725-e2ded705c942
$ neutron port-update 1bd248cb-a543-46a4-b4ae-8ec9f93ce713 --allowed-address-pairs type=dict list=true ip_address=192.168.2.253
$ neutron port-update c454a763-2bed-4164-a725-e2ded705c942--allowed-address-pairs type=dict list=true ip_address=192.168.2.253 # 查看端口下是否具有allowed_address_pairs属性。
$ openstack port show 1bd248cb-a543-46a4-b4ae-8ec9f93ce713 | grep allowed_address_pairs
| allowed_address_pairs | ip_address='192.168.2.253', mac_address='fa:16:3e:d1:0d:1d'
$ openstack port show c454a763-2bed-4164-a725-e2ded705c942 | grep allowed_address_pairs
| allowed_address_pairs | ip_address='192.168.2.253', mac_address='fa:16:3e:d1:0d:1d' # 从vm端口删除allwed_address_pairss属性,也就是删除VIP。
$ openstack port unset 1bd248cb-a543-46a4-b4ae-8ec9f93ce713 --allowed-address ip-address='192.168.2.253',mac-address='fa:16:3e:d1:0d:1d'

方法2

删除port安全组

安全组: 连接到虚拟机实例的端口的所有传入和传出流量都被阻止(除非已应用“安全组相应规则”)

# 从test_network创建一个VIP地址为:192.168.2.253 , 名字为:test-vip
$ neutron port-create test_network --allowed-address-pairs type=dict list=true ip_address=192.168.2.253 --name test-vip # 把VIP的端口安全组关闭掉(找到VIP端口的port id)
$ openstack port set --disable-port-security --no-security-group 490ba237-649d-4a52-a923-fbad0c00702a
# 把需要使用VIP的虚拟机端口安全组关闭掉(找到VM端口的port id)
$ openstack port set --disable-port-security --no-security-group 1bd248cb-a543-46a4-b4ae-8ec9f93ce713
$ openstack port set --disable-port-security --no-security-group c454a763-2bed-4164-a725-e2ded705c942

[VIP] openstack环境配置VIP的更多相关文章

  1. Centos7 Openstack - (第一节)基本环境配置

    Centos7 install Openstack - (第一节)基本环境配置 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文 ...

  2. 配置VIP地址

    10.10.10.7  mysql主 redis从 10.10.10.8  mysql从 redis主 现游戏架构如上,游戏后端数据库配置集群.场景描述:若是一台服务器宕机之后,及时切换数据库保持业务 ...

  3. keepalived主备节点都配置vip,vip切换异常案例分析

    原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...

  4. 安装配置好openstack环境的虚拟机,须要改动ip时,在数据库中同步改动ip的方法

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正. 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  5. Kolla 4.0.0环境下VIP无法迁移问题排查

    VRRP无法切换VIP的问题分析: Keepalived的配置文件:/etc/kolla/keepalived/keepalived.conf当中,nopreempt选项是影响切换的因素之一,另一个因 ...

  6. Centos 7 搭建OpenStack 私有云——(1)基础环境配置

    1.简介: OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个开源的云计算管理 ...

  7. KingbaseES R6 集群手工配置VIP案例

    经常有用户问,V8R6集群搭建时没有配置VIP,搭建完成后,如何添加VIP?以下向大家介绍下手动添加VIP 的过程. 一.操作系统环境 操作系统(UOS): root@uos01:~# cat /et ...

  8. Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置

    Oracle 12cR1 RAC 在VMware Workstation上安装(上)-OS环境配置 1.1  整体规划部分 1.1.1  所需软件介绍 Oracle RAC不支持异构平台.在同一个集群 ...

  9. Spring Cloud:多环境配置、eureka 安全认证、容器宿主机IP注册

    记录一下搭建 Spring Cloud 过程中踩过的一些坑,测试的东西断断续续已经弄了好多了,一直没有时间整理搭建过程,时间啊~时间~ Spring 版本 Spring Boot:2.0.6.RELE ...

随机推荐

  1. 【get√】golang新手理解了一点点context

    测试代码如下: package practice import ( "context" "log" //"fmt" "time&q ...

  2. Ajax_同源策略以及跨域问题

    Ajax_同源策略 同源策略是浏览器的一种安全策略, 同源指的是:协议.域名.端口.必须完全相同. 违背同源策略就是跨域. 而AJAX是默认遵循同源策略的: 同源说通俗一点呢就是页面跟获取请求的接口是 ...

  3. 函数的参数python教程

    一:函数 什么是函数? 函数就类似于工具 提前定义之后可以反复使用 代码冗余 结构清晰 修改繁杂等问题 二:函数的语法结构 def 函数名(参数1,参数2) '''函数注释''' 函数体代码 retu ...

  4. linux虚拟机xshell安装

    目录 一:虚拟机安装 二:配置windows网络 三:linux操作系统安装 四:xshell安装使用 一:虚拟机安装 1.双击虚拟机软件 ---> 下一步 直至安装完毕 2.安装Linux操作 ...

  5. coredns 安装

    coredns简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目.CoreDNS是SkyDNS的继任者. Sky ...

  6. 深度评测丨 GaussDB(for Redis) 大 Key 操作的影响

    本文分享自华为云社区<墨天轮评测:GaussDB(for Redis)大Key操作的影响>,作者: 高斯 Redis 官方博客. 在前一篇文章<墨天轮评测:GaussDB(for R ...

  7. jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?

    原文链接https://blog.csdn.net/u012187452/article/details/51779052 1. 什么是jsp 文件? 个人理解.  jsp 是一个容器,可以将我们编写 ...

  8. 最近公共祖先-LCA

    题目描述 时间限制:1.2s 内存限制:256.0MB 问题描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入格式 第一行包含三个正整数\(N\),\(M\),\(S\),分别 ...

  9. [免费下载应用]iNeuKernel.Ocr 图像数据识别与采集原理和产品化应用

    目       录 1..... 应用概述... 2 2..... 免费下载试用... 2 3..... 视频介绍... 2 4..... iNeuLink.Ocr图像数据采集应用... 2 5... ...

  10. CentOS7安装部署Prometheus+Grafana (转)

    转自:https://www.jianshu.com/p/967cb76cd5ca 作为监控系统的后起之秀,prometheus的安装可谓非常简单,不需要第三方的依赖(数据库.缓存.PHP之类的).下 ...