cloudstack GuestNetwork Ingress-Egress rule

2023-10-26



Egress
1 创建 egress 规则
(1)向management发出api命令:
createEgressFirewallRulecmd
的create()方法
最终在cloud数据库firewall_rules表中插一条state:Add,purpose: Firewall,traffic_type: Egress的记录。
execute()方法
management --> agent
SetFirewallRulesCommand
agent-->LibvirtComputingResource-->VirtualRoutingResource


firewall_egress.sh
DEFAULT_EXECUTEINVR_TIMEOUT = 120;//VR执行脚本超时时间120秒
2种操作类型:ScriptConfigItem,FileConfigItem
设置firewall_egress属于 ScriptConfigItem。
scripts/network/domr/router_proxy.sh
(2) 在agent上启动unix进程执行router_proxy.sh firewall_egress.sh routeIp ruleargs
router_proxy.sh检测 routeIp的VR是否ping通,并使用ssh登录到 routeIp去执行
/opt/cloud/bin/firewall_egress.sh ruleargs


              图1、guestnetwork add egress firewall rule in mgt


图2、guestnetwork add egress firewall rule in agent


2 删除egress规则
api命令:DeleteEgressFirewallRuleCmd
DeleteEgressFirewallRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DeleteEgressFirewallRuleCmd的execute()方法。


由management发往agent端的command与添加egress规则一样SetFirewallRulesCommand,只是VR上执行的 ScriptConfigItem的ruleargs变动了。




图3、guestnetwork del egress firewall rule in mgt
Ingress
3 创建Ingress firewall规则
(1) 发往management的api命令为CreateFirewallRuleCmd
CreateFirewallRuleCmd extends BaseAsyncCreateCmd
因此,在management中通过api调度模块执行CreateFirewallRuleCmd的create()和execute()方法。
(2) 在create方法执行中向cloud数据库fire_wall表插入一条traffic_type为Ingress,purpose为Firewall的防火墙规则。
(3)在execute方法执行过程中,生成SetFirewallRulesCommand发送到VR所在的hostId(与Egress  firewall rule一样)。
(4)在agent上启动unix进程执行router_proxy.sh firewall_egress.sh routeIp ruleargs。


4 删除Ingress firewall规则
(1) 发往management的api命令为DeleteFirewallRuleCmd
DeleteFirewallRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DeleteFirewallRuleCmd的execute()方法。


(2) 在execute方法执行过程中,生成SetFirewallRulesCommand发送到VR所在的hostId(与Egress  firewall rule一样)。


(3) 在agent上启动unix进程执行router_proxy.sh firewall_egress.sh routeIp ruleargs。


5 添加VM的LoadBalancerRule
(1) 发往management的api命令为AssignToLoadBalancerRuleCmd
AssignToLoadBalancerRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行AssignToLoadBalancerRuleCmd的execute()方法。


(2) 在execute方法执行过程中,生成LoadBalancerConfigCommand发送到VR所在的hostId。


(3) agent端处理该command通过修改VR上的haproxy的配置文件/etc/haproxy/haproxy.cfg来实现的。








图4、Ingress add loadbalancer






6 删除VM的LoadBalancerRule
(1) 发往management的api命令为RemoveFromLoadBalancerRuleCmd
RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行RemoveFromLoadBalancerRuleCmd的execute()方法。


(2) 在execute方法执行过程中,生成LoadBalancerConfigCommand发送到VR所在的hostId。


(3) agent端处理该command通过修改VR上的haproxy的配置文件/etc/haproxy/haproxy.cfg来实现的。


图5、ingress del loadbalancer


7 更新VM的loadBalancerRule
(1) 发往management的api命令为UpdateLoadBalancerRuleCmd
UpdateLoadBalancerRuleCmd extends BaseAsyncCustomIdCmd
因此,在management中通过api调度模块执行UpdateLoadBalancerRuleCmd的execute()方法。


(2) 在execute方法执行过程中,如果涉及到algorithm的修改,则会生成LoadBalancerConfigCommand发送到VR所在的hostId,name的修改只会更新数据库。


(3) agent端处理该command通过修改VR上的haproxy的配置文件/etc/haproxy/haproxy.cfg来实现的。




8 创建VM的PortForward规则
(1) 发往management的api命令为CreatePortForwardingRuleCmd
CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd
因此,在management中通过api调度模块执行CreatePortForwardingRuleCmd的create()和execute()方法。


(2) 在create方法执行中向cloud数据库port_forwarding_rules表插入一条记录。
(3)在execute方法执行过程中,生成SetPortForwardingRulesCommand发送到VR所在的hostId(与Egress  firewall rule,Igress firewall 走同样的执行路径)。
(4)在agent上启动unix进程执行router_proxy.sh firewall_nat.sh routeIp ruleargs。


9 删除VM的PortForward规则
(1) 发往management的api命令为DeletePortForwardingRuleCmd
DeletePortForwardingRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DeletePortForwardingRuleCmd的execute()方法。


(2) 在execute方法执行过程中,生成SetPortForwardingRulesCommand发送到VR所在的hostId。


(3) 在agent上启动unix进程执行router_proxy.sh firewall_nat.sh routeIp ruleargs。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cloudstack GuestNetwork Ingress-Egress rule 的相关文章

  • R手册(Tidy+Transform)--tidyr

    文章目录 Reshape Data Split or Unit Cells Handle Missing Values tidyr Easily tidy data with spread and gather functions Resh
  • 【Java八股文总结】之计算机网络

    文章目录 计算机网络 一 基础 1 网络体系结构 2 HTTP协议 TCP协议 UDP协议比较 3 网络协议 4 WebSocket和Socket的区别 5 常见的端口及其对应的服务 6 从浏览器输入URL到页面展示发生了什么 1 DNS域
  • 刀具补偿资料汇总

    问题描述 采用不同尺寸的刀具加工同一轮廓尺度的零件 为了编程方便和不改变已经制备好的穿孔带 所以数控装置常备有刀具补偿功能 刀具位置补偿 刀具1 刀尖B点为编程起点 刀具2 刀尖C点 备注 刀尖坐标值 Xb Zb C点坐标原点I C点坐标原
  • 苹果如何安装ipa

    懒省事使用爱思助手即可 1 下载cydiaimpactor 官方地址 百度云下载 https pan baidu com s 1rYIG4go fOEHarSjziA1eg 提取码 3b48 2 连上苹果手机 启动cydiaimpactor
  • 【TensorFlow 入门】1、函数基础

    文章目录 一 np random 1 np random RandomState 2 np random uniform 3 np random rand 4 np random RandomState 二 tf reduce 一 np r
  • 忘记宝塔面板安全入口?修改登录入口让你的服务器更加安全!

    宝塔面板新增加了安全入口登录方式 新安装的宝塔面板默认会随机生成一个8位字符的安全目录 阿里云百科网分享宝塔安全入口登录方式 安全入口修改方法及安全入口关闭的方法 什么是安全入口 原来的宝塔登录地址为 http 你的服务器ip 8888 这
  • Python代码实现“FlappyBird”小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 关注公众号 Python学习指南 回复 FlappyBird 获取 环境搭建 安装Python并添加到环境变量 pip安装需要的相
  • SpringBoot admin 2.0 详解

    一 什么是Spring Boot Admin Spring Boot Admin是一个开源社区项目 用于管理和监控SpringBoot应用程序 应用程序作为Spring Boot Admin Client向为Spring Boot Admi
  • vue项目中使用echarts和china.js实现中国地图

    在echarts最新的5 4 0版本中 已不能直接引用china js来绘制中国地图 需要我们自己下载china js包 在网上查找资料 大部分是在index html文件中直接引入echarts和china js文件 但我使用这种方法在v
  • 平均池化和最大池化区别

    pooling的结果是使得特征减少 参数减少 但pooling的目的并不仅在于此 pooling目的是为了保持某种不变性 旋转 平移 伸缩等 常用的有mean pooling max pooling和Stochastic pooling三种
  • @RequestBody 500 的原因

    因为 RequestBody是调用目标类的无参构造器 若有有参构造就会报错 因此一般实用RequestBody的类 和 domain不同 应该重新配置一个包来存放此类 类 且之赋予他们get set方法

随机推荐

  • VTK教程1--------VTK在win10下的安装

    VTK的安装 本文在win10操作系统下 安装了VTK8 1 2 下文是安装顺序 事先准备三个软件 1 Visual Studio2017 community 该版本可以免费使用 2 CMake 本文使用的版本是cmake 3 13 1 w
  • XREAL 联合创始人吴克艰谈AR:下一代计算平台及其关键技术

    编者按 一种行业观点是 AR或是未来十年 三十年的革命性技术 是下一代计算平台 近半个世纪 我们总能听到苹果在AR行业的创新动作 开辟了新的硬件范式 AR VR行业为苹果不断欢呼的同时 激发了人们的好奇心 究竟 人类在戴上AR眼镜的那一瞬间
  • 【C++】内存分区&引用

    内存分区 首先我们要了解 内存区域大概分为四个区域 1 代码区 这里主要存放我们写的代码的二进表达式 即CPU可以看懂的机械指令 这个区域有两个特征 只读和共享 前者可以保证代码的不会被随意修改 后者可以保证相同代码多次阅读不需要创建多个副
  • linux-kali 2020.3.3 虚拟机 环境 下载安装

    一 所需环境配置文件下载 1 虚拟机 这次配置环境使用的vmware版本为15 5 0 虚拟机大家可以自行在相关微信公众号上搜索破解版 按照其上进行安装 如下图 如果需要也可以vm官方网站上进行下载相关软件 直接下载对应版本即可 vm官网链
  • python argument 1 must be 2-item sequence, not int

    在继续python学习的时候 发现报错了 出现错误argument 1 must be 2 item sequence not int 明明我是照着书打的 为什么会出现错误呢 import pygame import sys from se
  • 《软件测试》第十三章 软件安全测试

    软件测试 第十三章 软件安全测试 13 0 前言 13 1 战争游戏 电影 13 2 了解动机 13 3 威胁模式分析 13 4 软件安全是一项功能吗 软件漏洞是一个缺陷吗 13 5 了解缓冲区溢出 13 6 使用安全的字符串函数 13 7
  • Microsoft visual C++ 2013 redistributable (x86) setup failed

    Microsoft visual C 2013 redistributable x86 0x80070005 setup failed log 截图 下载SubInACL工具 链接 https blogs msdn microsoft co
  • css flex shrink,CSS3 flex-shrink属性用法详解

    下面本文章来给各位介绍一下CSS3 flex shrink使用方法 希望例子能帮助到各位 flex grow控制flex container有多余空间的时候怎么分配 默认值为0 即所有的flex items都不分配 flex shrink1
  • C#里面SQLite读取数据的操作

    挂载表格时候用 public static DataSet Query string SQLString using SQLiteConnection connection new SQLiteConnection connectionSt
  • BottomNavigationView+ViewPager实现页面滑动

    如图所示 在androidstudio中新建一个Bottom Navigation Activity 修改布局中的内容
  • import无法定位到输入点

    torch geometric安装 运行环境需要torch geometric 下载安装完之后 再 import torch geometric时 一直出错 安装不上 找了很多解决方法 终于找到可以解决的办法了 亲测有效 原因 最终发现因为
  • 最小重量机器设计问题

    相关问题 工作分配问题 设某一机器由n个部件组成 每一种部件都可以从m个不同的供应商处购得 设 wij 是从供应商j 处购得的部件i的重量 cij 是相应的价格 试设计一个回溯算法 给出总价格不超过d的最小重量机器设计 对于给定的机器部件重
  • .net core 并发下的线程安全问题

    抱歉 其实内容并不如题 背景 写测试demo所出现的异常 供大家学习与拍砖 net core webapi项目 做了一个授权的filter 真正的生产项目的话 JWT很棒 单个接口测试没有问题 当用前端在同一个页面调用多个接口的时候 运行服
  • Python语言学习实战-内置函数filter()的使用(附源码和实现效果)

    实现功能 filter 函数是Python的内置函数之一 用于过滤序列中的元素 它接受两个参数 一个是函数 用于判断每个元素是否符合条件 另一个是可迭代对象 包含要过滤的元素 filter 函数返回一个迭代器 其中包含所有符合条件的元素 f
  • Beam:没有模板Haskell的数据库功能!

    作为Haskell Web系列的一部分 我们检查了Persistent和Esqueleto库 这些中的第一个允许您使用特殊语法创建数据库模式 然后 您可以使用Template Haskell生成所有必要的Haskell数据类型和类型的实例
  • R语言 第2章 数据对象与数据读写(2)

    重复序列的创建 rep as factor c yizi1 yinzi2 yinzi3 3 rep 是重复函数 它可以将某一向量重复若干次 使用格式 rep x times 1 length out NA each 1 其中x是预重复的序列
  • win10无法装载iso文件_win10系统打开iso格式文件的四种方法

    许多用户在win10系统中下载一个ISO文件 经常重装系统的小伙伴都知道 iso格式是一种光盘映像的文件格式 Windows10系统自带的虚拟光驱 无需任何软件就可以直接打开ISO文件 如果没有虚拟光驱该怎么打开 接下去分享win10系统打
  • python二元函数图像在线绘制_Python:绘制两个变量的二维函数

    我的功能是 def g R r return np sqrt 2 0 R r r R 1 np sqrt R np sqrt R np sqrt 2 0 r 1 r 1 r 1 0 np sqrt R np sqrt 2 0 1 R np
  • R手册(Tidy+Transform)--缺失处理(naniar and simputation)

    文章目录 naniar 缺失数据摘要 阴影矩阵 可视化缺失值变量分布关系 simputation make imputation simpler for missing data 缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类 分组 删
  • cloudstack GuestNetwork Ingress-Egress rule

    Egress 1 创建 egress 规则 1 向management发出api命令 createEgressFirewallRulecmd 的create 方法 最终在cloud数据库firewall rules表中插一条state Ad