草庐IT

07_openstack之安全组与浮动IP

桂安俊@kylinOS 2023-04-09 原文

目录

一、环境准备

二、浮动IP

1、浮动IP介绍

2、创建和分配浮动IP

三、安全组

1、安全组介绍

2、创建安全组

3、给云主机绑定安全组


一、环境准备

部署openstack私有云环境:02_openstack私有云部署_桂安俊@kylinOS的博客-CSDN博客

创建项目和用户:03_openstack之项目及用户管理_桂安俊@kylinOS的博客-CSDN博客

创建镜像:04_openstack之Glance镜像和云主机类型_桂安俊@kylinOS的博客-CSDN博客

创建网络:05_openstack之Neutron网络管理_桂安俊@kylinOS的博客-CSDN博客

创建云主机:06_openstack之创建云主机和常见错误_桂安俊@kylinOS的博客-CSDN博客

以下操作均基于上述环境
 

二、浮动IP

1、浮动IP介绍

  • 浮动IP一般是花钱从运营商购买的;
  • 浮动IP地址用于从外界访问虚拟机实例;
  • 浮动IP只能从现有浮动IP地址池中分配;
  • 虚拟机实例启动后,可以为其关联一个浮动IP地址;
  • 虚拟机实例也可以解除IP地址绑定;

2、创建和分配浮动IP

根据前文创建完云主机后,还不能直接外网访问云主机IP,这时候需要用到浮动IP:

 普通用户user01登录管理界面,选择【计算】--->【访问和安全】--->【分配IP给项目】:

 点击【分配IP】,这个分配的是前面创建的wan IP,即实际生成环境中向运营商买的互联网IP:

每点击一次【分配】IP,就会总WAN IP的资源池里获取一个IP,我们这里可以将资源池分配完,后面创建的云主机就可以直接绑定浮动IP了,直到WAN IP资源池分完,就不会再允许分配IP了:

 回到云主机列表,后面的下拉菜单可以选择【绑定浮动IP】:

选择一个WAN IP,点击关联:

 可以看到host1云主机已经分配了浮动IP:

 此时,外网主机就可以直接ping通:

如果ping不通,可能是默认安全组的原因,下面还要对安全组进行配置。

三、安全组

1、安全组介绍

  • 安全组用于控制对虚拟机实例的访问;
  • 安全组在高层定义了哪些网络及哪些协议是被授权可以访问虚拟机实例的;
  • 每个项目都可以定义自己的安全组;
  • 项目成员可以编辑默认的安全规则,也可以添加新的安全规则;
  • 每个规则都有出和入两个方向;
  • 所有项目都有一个默认的default安全组;

2、创建安全组

如下,默认有一个自带的default安全组,default默认策略是允许内部云主机访问外部资源,不允许外部访问内部,如果内部云主机需要对外开放策略,需要修改或创建新的安全组

 点击【管理规则】进行规则配置:

 在openstack安全组规则中,分为出口和进口2个方向,进就是外部访问内部云主机的策略,出就是内部云主机访问外部网络的策略,这里添加一个入口方向的ALL ICMP规则,即允许外部主机ping通内网云主机:

3、给云主机绑定安全组

 移除default安全组,使用test自建安全组,保存即生效:

 此时云主机可以外部ping通:

如果想ssh访问的话,还需要再修改安全组,开放TCP SSH服务:

这时可以通过外部网络ssh访问云主机内部:

 如果想要开放任何协议、任何IP和端口,即将云主机网络权限全部放开,可以选择“其他协议”:

 

有关07_openstack之安全组与浮动IP的更多相关文章

  1. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  2. ruby - 在 TCPServer (Ruby) 中,我如何从客户端获取 IP/MAC? - 2

    我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!

  3. ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT - 2

    Nginx在生产中的重要性通常基于它为慢速客户端提供服务的能力;在RESTfulAPI的设置中,它似乎是生产堆栈的一个不必要的层,尤其是Puma(不像广泛使用的unicorn可以处理nginx工作)。Pumacanallowmultipleslowclientstoconnectwithoutrequiringaworkertobeblockedontherequesttransaction.Becauseofthis,Pumahandlesslowclientsgracefully.HerokurecommendsPumaforuseinscenarioswhereyouexpect

  4. Java IP归属地查询(离线方式+在线方式,内附查询IP方法) - 2

    一、离线方式1.1.下载ip2region.xdbGitHub项目地址:https://github.com/lionsoul2014/ip2region我们首先需要下载一个ip2region.xdb的文件下载地址:https://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb打开后点击如图的Download图标即可下载。下载完成后,需要将该文件放到我们的项目中。ps:我是直接放到服务器的,因为放在项目的资源文件夹下,当我们调试的时候使用JavaSpring自带的工具去获取该文件的绝对路径时,没有任何问题,能够正

  5. IP数据报格式 - 2

    1、报文格式前几篇总结过较多网络层的知识,ARP,ip地址、子网掩码等等。这次总结一下IP数据报的报文格式IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各种数据格式常常以32位(4字节)为单位来描述的。wireshark中IP数据报文呈现一个IP数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20字节。是所有IP数据报文必须具有的。在首部的固定部分的后面是一些可选字段,其长度可变。2、首部个字段意义  1、版本占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。版本号为6(即IPv6)  2、首部

  6. ruby-on-rails - Ruby/Rails 中 CIDR 的 IP 范围? - 2

    我想做两件事:将IP地址输入转换为CIDR以下是一些示例输入:1.1.1.1192.168.*.*#=>192.168.0-255.0-255192.168.1.2-201.1.1-10.1-100检查给定的IP地址是否属于任何CIDR。这一定是一个非常快速的查询,因为它是我的网络应用程序中非常常见的查找。我正在考虑做这样的事情:defmatches?(request)valid=@ips.select{|cidr|cidr.contains?(request.remote_ip)}!valid.empty?end我认为将IP范围转换为CIDR将使查找速度比我们现在所做的更快,后者将I

  7. ruby - 如何在 ruby​​ 中获取 ip 地址、referer 和用户代理? - 2

    我想记录用户的ip地址、referer和用户代理。在PHP中,我可以从以下变量中获取它们:$_SERVER['REMOTE_ADDR']$_SERVER['HTTP_REFERER']$_SERVER['HTTP_USER_AGENT']如何在ruby​​中获取它们? 最佳答案 PHP嵌入在网络服务器中。Ruby是一种通用语言:如果您需要Web服务器上下文,则必须自己安装。幸运的是,这很容易。最简单的入门方法之一是使用Sinatra。安装gem:geminstallsinatra然后创建myapp.rb:require'sinatr

  8. ruby-on-rails - 如何使用 Ruby/Tor 更改我的 IP 地址? - 2

    我正在使用Rails4.2.7,并且安装了几个Torgem。gem'tor'gem'tor_requests'gem'tor-privoxy'gem'net-telnet'我启动了我的Tor浏览器(在MacElCapitan上运行),我想定期(每20个请求)更改我的TORWeb请求的来源IP地址。所以我试了一下agent=TorPrivoxy::Agent.new'127.0.0.1','',{8118=>9151}do|agent|sleep1puts"NewIPis#{agent.ip}"end但是,这会导致以下错误。我很困惑我还需要如何配置才能完成上述工作。Errorduring

  9. ruby-on-rails - IP地址过滤 - 2

    我正在考虑为我的RailsSaaS应用实现IP地址过滤。简而言之,我希望管理员能够指定一个或多个IP地址(或一系列IP地址),然后我的应用程序只接受来自指定地址的实例请求。我正在考虑使用IPAddress(http://github.com/bluemonk/ipaddress)来解析/验证每个地址/地址范围。这是合适的还是有更好/更合适的库?有没有人实现过这种过滤,谁能描述一种对他们有用的方法,或者有什么我需要担心的陷阱?或者,是否有一个现有的Ruby库可以自动处理所有这些,但我的谷歌搜索却逃过了一劫?非常感谢,灰 最佳答案 ip

  10. ruby - 在ruby中将ip地址转换为32位整数 - 2

    我正在尝试找到一种方法,在Ruby中为puppet模板将IP地址转换为32位整数。这就是我在bash中进行转换的方式。root@ubuntu-server2:~#cattest.sh#!/bin/bash#eth0addressis10.0.2.15privip=`ifconfigeth0|grep"inetaddr:"|cut-d:-f2|cut-d""-f1`;echo"PrivateIP:${privip}";#Turnitintounsigned32-bitintegeripiter=3;foripoctetin`echo${privip}|tr.""`;doipint=$((

随机推荐