cloudstack vpc network egress-ingress rules

1、添加VPC网络的ACL规则项(访问控制列表,作用类似防火墙规则)
(1) 发往management的api命令为CreateNetworkACLCmd
CreateNetworkACLCmd extends BaseAsyncCreateCmd
因此,在management中通过api调度模块执行CreateNetworkACLCmd的create()和execute()方法。
(2) 在create方法执行中会向cloud数据库network_acl_item表插入一条记录。
(3)在execute方法执行过程中,会对VPC赋为该ACL规则的tier,privateGateway应用该规则,即生成SetNetworkACLCommand发送到VPC VR所在的hostId。
(4)在agent上启动unix进程执行router_proxy.sh vpc_acl.sh或vpc_privategw_acl.sh routeIp ruleargs。


图1、VPC ACL rule item add in mgt




2、更新VPC网络的ACL规则项
(1) 发往management的api命令为UpdateNetworkACLItemCmd
UpdateNetworkACLItemCmd extends BaseAsyncCustomIdCmd
因此,在management中通过api调度模块执行UpdateNetworkACLItemCmd的execute()方法。


(2)在execute方法执行过程中,先对数据库中ACL规则项修改进行更新,之后 会对VPC赋为该ACL规则的tier,privateGateway应用该规则。(后同添加VPC网络的ACL规则项的执行路径)


3、删除VPC网络的ACL规则项
(1) 发往management的api命令为DeleteNetworkACLCmd
DeleteNetworkACLCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DeleteNetworkACLCmd的execute()方法。
(2)在execute方法执行过程中,先对数据库中ACL规则项修改进行更新,其state设为revoke,之后 会对VPC赋为该ACL规则的tier,privateGateway应用该规则。(后同添加VPC网络的ACL规则项的执行路径)


图2、VPC ACL item del


4、创建VPC public loadbalance规则
(1) 发往management的api命令为createLoadBalancerRuleCmd
createLoadBalancerRuleCmd extends BaseAsyncCreateCmd
因此,在management中通过api调度模块执行createLoadBalancerRuleCmd的create()和execute()方法。
(2) 在create方法执行中会向cloud数据库load_balancing_rules表插入一条记录。
(3)在execute方法执行过程中,仅仅根据数据库中load_balancing_rules表查找到的新记录构建返回结果。


5、为一个或多个VM赋pblic loadbalance规则
(1)  发往management的api命令为AssignToLoadBalancerRuleCmd
AssignToLoadBalancerRuleCmdextends BaseAsyncCmd
因此,在management中通过api调度模块执行AssignToLoadBalancerRuleCmd的execute()方法。
(2) 在execute方法执行过程中,发送LoadBalancerConfigCommand发送到vpc VR所在的hostId配置VPC VR的haproxy。


6、为一个或多个VM删除pblic loadbalance规则
(1) 发往management的api命令为RemoveFromLoadBalancerRuleCmd
RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行RemoveFromLoadBalancerRuleCmd的execute()方法。
(2)在execute方法执行过程中,对数据库中load_balancer_vm_map将对应的id的revoke字段设为1, 发送LoadBalancerConfigCommand发送到vpc VR所在的hostId配置VPC VR的haproxy。


7、删除VPC public loadbalance规则
(1) 发往management的api命令为DeleteLoadBalancerRuleCmd
DeleteLoadBalancerRuleCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DeleteLoadBalancerRuleCmd的execute()方法。
(2)在execute方法执行过程中,先执行删除Ingress firewall rule(发送SetFirewallRulesCommand到vpc VR所在agent上),在删除loadbalance rule(发送LoadBalancerConfigCommand发送到vpc VR所在的hostId)。


8、与VM作staticNat
(1) 发往management的api命令为EnableStaticNatCmd
EnableStaticNatCmdextends BaseCmd
因此,在management中通过api调度模块执行EnableStaticNatCmd的execute()方法。
(2)在execute方法执行过程中,发送SetStaticNatRulesCommand到vpc VR所在的hostId。
(3) 在agent上启动unix进程执行router_proxy.sh vpc_staticnat.sh routeIp ruleargs (若是guestNetwork,则执行router_proxy.sh firewall_nat.sh routeIp ruleargs)。


9、取消与VM作staticNat
(1) 发往management的api命令为DisableStaticNatCmd
DisableStaticNatCmd extends BaseAsyncCmd
因此,在management中通过api调度模块执行DisableStaticNatCmd的execute()方法。
(2)在execute方法执行过程中,发送SetStaticNatRulesCommand到vpc VR所在的hostId。
(3) 在agent上启动unix进程执行router_proxy.sh vpc_staticnat.sh routeIp ruleargs (若是guestNetwork,则执行router_proxy.sh firewall_nat.sh routeIp ruleargs)。




10、创建VPC port forwarding规则
createPortForwardingRule
与geustnetwork同样的执行路径。


11、删除VPC port forwarding规则
deletePortForwardingRule
与geustnetwork同样的执行路径。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值