cloudstack vpc network egress-ingress rules

来源:互联网 发布:mac芒果tv下载视频 编辑:程序博客网 时间:2024/06/06 14:08
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
原创粉丝点击