Proxmox VE中虚拟机非对等路由出站数据包被丢的情况分析

有客户反应,在Proxmox VE中的虚拟机,当一条进站TCP连接的进站方向路由经过隧道,而出站方向是直接走默认路由时,出站的数据包被丢。首先我们怀疑iptables:

看来确实配置了conntrack规则,丢掉没有正确建立连接的数据包。但是我们的虚拟机出去到上游路由器是同一个二层,数据包为什么会被丢呢?这就要说到Linux的bridge中有个功能是将所有经过bridge的数据包发给iptables过滤。让我们看看这个功能是否开启:

果然是开启的。Proxmox VE需要实现VM上的ipset,这个功能是必需的。

那么要解决这一问题,我们只能关闭Proxmox VE防火墙的丢弃INVALID包功能了。根据文档,新建或编辑/etc/pve/nodes/<nodename>/host.fw文件:

然后重新启动防火墙服务以更新规则:


参考:

Proxmox VE后台用作分销时的权限设定参考

需求:因为Proxmox VE不好接SolusVM之类的管理面板,所以我们在分销时直接把Proxmox VE自带的管理后台给用户。我们仅允许用户:

  • 开机,关机
  • 使用VNC功能
  • 挂载指定的ISO自行重装系统

参考配置方法如下。

Storage

创建一个叫iso的Datastore用于存放共享的ISO文件。

Pools

为每个用户创建一个pool。

Roles

创建EndUser role用于用户VM,Privileges:

  • Datastore.Audit
  • VM.Audit
  • VM.Config.CDROM
  • VM.Config.Disk(不给这个的话CDROM还是没法修改;但是因为没有Datastore相关的权限,用户是分配不了更多硬盘空间的)
  • VM.Console
  • VM.Monitor
  • VM.PowerMgmt

创建EndUserData role用于共享的存储空间,Privileges:

  • Datastore.Audit

Groups

创建一个User group。

Users

为每个用户创建一个user,Group设为上面创建的User。

Permissions

  • /storage/iso给User group一个EndUserData的role
  • /pool/{user}给对应用户账号一个EndUser的role

关于Aironet 3600系列AP和AIR-RM3000AC-x-K9扩展模块的一些笔记

Autonomous AP(胖AP)模式

第三个interface是会显示出来的,但是不会工作。不用尝试了。

瘦AP模式

第三个interface会使用和机内的802.11n 5GHz interface相同的MAC地址,并且保持相同的工作状态。即你不能禁用一个的同时启用另一个。WLC上不会让你设置802.11ac interface的启用/禁用,以另一个interface的状态为准。

如果想要override第三个interface的频宽、信道或功率,需要先把802.11n 5GHz interface的相应选项设为custom,然后802.11ac interface的值才能修改。

至于设备最终会握手到哪个interface上,这就纯看人品了。一般来说802.11ac的信号强度要比802.11n差一些。

第三个interface不支持CleanAir扫描。

Vultr使用Azure AD作为SSO provider

首先去Azure AD新建一个应用程序。这里需要填写:

  • Redirect URI:https://my.vultr.com/openid/
  • Logout URL:https://my.vultr.com/openid/
  • Home page URL:https://my.vultr.com/sso
  • 删掉所有的permission,一个都不需要
  • 新建一个Client secret

然后去Vultr那边填写:

  • OpenID Provider URL:https://login.microsoftonline.com/{tenant_id}/
  • Client ID和Client secret按实际情况填写

最后在Vultr那边添加一个用户,邮箱填写AAD的UPN即可。

如果出现问题,可以点击这里查看Vultr的SSO登录错误详情。Vultr的SSO还不是很完善,错误记录在UI上直接访问不到,Azure AD支持也是我发了工单以后才刚加上的。


参考:

Hashicorp Vault在auto unseal不可用时的恢复措施

首先想办法拿到原来vault服务器的配置文件。在seal块里面写上一行disabled = "true",然后启动vault服务器(开个新的或者用原来的都行,只要存储后端能连上就行),进入migration模式。你应该会看到类似的log:

然后每个recovery key持有人下载一个vault,在自己的设备上执行:

(PowerShell)

(Bash)

然后输入自己的那份recovery key。如果成功的话,会提示

等输入的recovery key数量到达阈值以后,vault会解锁。

如果要设置新的auto unseal,同样修改配置文件,然后手工unseal一次即可。