Skip to content

Commit 57d4818

Browse files
committed
Add Zone creation and VPC creation specifics on Netris
1 parent d60c433 commit 57d4818

File tree

1 file changed

+192
-1
lines changed

1 file changed

+192
-1
lines changed

source/plugins/netris-plugin.rst

Lines changed: 192 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,195 @@ Supported Versions
4343
| KVM | >= 4.20 | 4.4.0 |
4444
+--------------+----------------------+----------------+
4545

46-
Table: Supported Versions
46+
Table: Supported Versions
47+
48+
Configuration
49+
-------------
50+
51+
Prerequisites
52+
~~~~~~~~~~~~~
53+
54+
The Netris plugin is enabled by the 'netris.plugin.enable' setting, which is false by default. It enables the Netris Plugin on CloudStack when it is set to true. The global setting is non-dynamic, that is, the management server would need to be restarted after being modified.
55+
56+
Zone creation
57+
~~~~~~~~~~~~~
58+
59+
The CloudStack Zone creation wizard is extended:
60+
61+
- A new isolation method is added for the Core zone, with Advanced networking and KVM hypervisor: NETRIS
62+
63+
- When the NETRIS isolation method is selected, new steps are added to the zone creation wizard:
64+
// TODO: Add image
65+
66+
- Netris Provider: in this step the administrator must provide:
67+
- Netris provider URL along with an internal name for reference
68+
- Netris provider credentials to login into the Netris provider
69+
- Site name: The Netris Site Name to be linked to
70+
- Admin Tenant Name: The name of the Admin Tenant on the Netris provider
71+
- Netris tag: A tag to be used on each Netris VNET creation
72+
73+
// TODO: Add image
74+
75+
- Public traffic and Netris IP Pool: The public traffic is split in two sections.
76+
- Public traffic: The first Public IP range defined on this section will be marked for system VMs (and a tag will be displayed accordingly, with the name 'systemvm'). The next Public IP ranges defined on this section will be available for VR Public IPs.
77+
- Netris IP Pool: Administrators must provide the Public IP range to be used by VPC operations: Source NAT, Load Balancing, Port Forwarding, Static NAT (this range is marked with the tag 'netris')
78+
79+
- When a new zone is being created, CloudStack will check the Public IP ranges defined and will perform the following actions on Netris:
80+
- Create an IPAM allocation for the Netris IP Pool range linked to the default VPC.
81+
- If an existing IPAM allocation contains the Netris IP Pool provided, then the range must be created as a new IPAM subnet as a child entity of the existing allocation on Netris, with purpose: 'common'. The 'common' subnet purpose allows creating 'nat' and 'load-balancer' child subnets.
82+
83+
..note::
84+
Please note CloudStack expects the public IP ranges defined in the same order as the zone wizard creation displays them. The same order must be preserved in case of adding/editing/removing public IP ranges:
85+
- System VM Public Range
86+
- VRs Public Range
87+
- Netris Public Range
88+
89+
The subsequent steps of zone creation remain unchanged and once the zone is successfully created and enabled, the system VMs come up with IPs from the Public IP Range reserved for System VMs (not the Netris public IP range).
90+
91+
VPC creation on Netris
92+
~~~~~~~~~~~~~~~~~~~~~~
93+
94+
VPC creation on CloudStack performs the following actions on Netris:
95+
96+
- A new VPC is created for the Admin Tenant provided at the zone creation phase, with the name convention: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcName>, where:
97+
- domainID: Internal database ID of the domain
98+
- accountID: Internal database ID of the account
99+
- zoneID: Internal database ID of the VPC
100+
- vpcName: Name of the VPC
101+
102+
- A new IPAM allocation is created for the VPC Guest CIDR, with the following parameters:
103+
- Prefix: The VPC CIDR
104+
- Name: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcCidr>, where:
105+
- vpcCidr: is the CIDR defined for the VPC
106+
- VPC: The new VPC created on the step above
107+
108+
- Source NAT is created for VPC in NAT mode
109+
110+
VPC Tier creation on Netris
111+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
112+
113+
VPC Tier creation on CloudStack performs the following actions on Netris:
114+
115+
- A new IPAM subnet is created for the VPC Tier, with the following parameters:
116+
- Prefix: The VPC Tier CIDR
117+
- Name: D<domainID>-A<accountID>-Z<zoneID>-N<networkID>-<vpcTierCidr>, where:
118+
- networkID: The internal database ID of the network tier
119+
- vpcTierCidr: is the CIDR defined for the VPC Tier
120+
- Purpose: 'common'
121+
- VPC: The VPC created on the step above
122+
123+
- A new vNet is created, with the following parameters:
124+
- Name: D<domainID>-A<accountID>-Z<zoneID>-N<networkID>-<vpcTierName>, where:
125+
- vpcTierName: is the VPC Tier name
126+
- VPC: The VPC created on the step above
127+
- VXLAN ID: A random VXLAN from the range provided on the zone creation
128+
- VLAN ID: Disabled
129+
- Tags: The tag set on the zone creation
130+
- IP Gateway: The VPC Tier gateway IP, from the subnet created on the step above.
131+
- ACLs are created on Netris
132+
133+
- The VPC tiers created from the default VPC network offering for Netris – Routed Mode extends the IPAM Subnet creation for the VPC Tier Guest CIDR by setting the parameter:
134+
- Global Routing = true. This parameter allows advertising the IPs for the VPC tier (required for Routed mode)
135+
136+
..note::
137+
Important: Please consider at least one running VM per VPC tier to prevent VPC tier state transit to Allocated state
138+
139+
140+
Supported VPC Services
141+
~~~~~~~~~~~~~~~~~~~~~~
142+
143+
· The following operations are supported for VPCs created from the default **VPC offering for Netris – NAT mode**:
144+
- Source NAT:
145+
- A new IPAM subnet is created for the Source NAT IP of the VPC, under the Netris IP pool IPAM allocation, with the following parameters:
146+
- **Prefix**: <SOURCE_NAT_IP>/32, where SOURCE_NAT_IP is the VPC Source NAT IP
147+
- **Purpose**: 'nat'
148+
- **VPC**: Default VPC
149+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcCidr>
150+
151+
- A new NAT rule is created with the following parameters:
152+
- **Action**: SNAT
153+
- **Protocol**: ALL
154+
- **VPC**: The associated VPC
155+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-SNAT
156+
- **Source Address**: The VPC CIDR
157+
- **Destination Address**: 0.0.0.0/0
158+
- **SNAT to IP**: true, set to the Source NAT Public IP
159+
160+
- Port forwarding rules:
161+
- A new IPAM subnet is created for the Public IP, under the Netris IP Pool IPAM allocation, with the following parameters:
162+
- **Prefix**: <PUBLIC_IP>/32, where PUBLIC_IP is the selected free public IP
163+
- **Purpose**: 'nat'
164+
- **VPC**: Default VPC
165+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcCidr>
166+
167+
- A new NAT rule is created with the following parameters:
168+
- **Action**: DNAT
169+
- **VPC**: The associated VPC
170+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-DNAT-R<ruleID>, where:
171+
- **Rule ID**: The internal database ID of the port forwarding rule
172+
- **Protocol**: The protocol for the port forwarding rule
173+
- **Source Address**: 0.0.0.0/0
174+
- **Source Port**: 1-65535
175+
- **Destination Address**: The port forwarding Public IP
176+
- **Destination Port**: The port forwarding rule public port
177+
- **DNAT to IP**: <VM_IP>/32, where VM_IP: is the VM guest IP
178+
- **DNAT to port**: The port forwarding rule private port
179+
180+
- Static NAT:
181+
- A new IPAM subnet is created for the Public IP, under the Netris IP Pool IPAM allocation, with the following parameters:
182+
- **Prefix**: <PUBLIC_IP>/32, where PUBLIC_IP is the selected free public IP
183+
- **Purpose**: 'nat'
184+
- **VPC**: Default VPC
185+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcCidr>
186+
187+
- A new NAT rule is created with the following parameters:
188+
- **Action**: DNAT
189+
- **VPC**: The associated VPC
190+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-STATICNAT:
191+
- **Protocol**: ALL
192+
- **Source Address**: 0.0.0.0/0
193+
- **Destination Address**: The port forwarding Public IP
194+
- **DNAT to IP**: <VM_IP>/32, where VM_IP: is the VM guest IP
195+
196+
197+
- Load Balancing:
198+
- A new IPAM subnet is created for the Public IP, under the Netris IP Pool IPAM allocation, with the following parameters:
199+
- **Prefix**: <PUBLIC_IP>/32, where PUBLIC_IP is the selected free public IP
200+
- **Purpose**: 'load-balancer'
201+
- **VPC**: Default VPC
202+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-<vpcCidr>
203+
204+
- A new L4 Load Balancer is created with the following parameters:
205+
- **Action**: DNAT
206+
- **VPC**: The associated VPC
207+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-LB<lbID>, where:
208+
- **lbID**: The internal database ID of the load balancer
209+
- **Protocol**: The protocol for the load balancer
210+
- **Frontend Address**: The load balancer Public IP
211+
- **Frontend Port**: The load balancer public port
212+
- For each VM added to the load balancer:
213+
- **Backend address**: The guest VM IP
214+
- **Backend port**: The load balancer private port
215+
216+
- ACLs
217+
- A new ACL rule is created for each CloudStack ACL rule defined on the network tier ACL:
218+
- **Name**: D<domainID>-A<accountID>-Z<zoneID>-V<vpcID>-N<networkID>-ACL<aclID>, where:
219+
- **aclID**: The internal database ID of the ACL rule
220+
- **VPC**: The associated VPC
221+
- **Protocol**: The selected protocol for the ACL Rule
222+
- **Action**: 'permit' or 'deny' matching the selected Allow or Deny action on CloudStack
223+
- If the traffic type is **Ingress**:
224+
- **Source Address**: The ACL rule CIDR
225+
- **Source Port**: 1-65535
226+
- **Destination Address**: The VPC Tier CIDR
227+
- **Destination Port**: X-Y, where:
228+
- *X*: The ACL rule start port
229+
- *Y*: The ACL rule end port
230+
- If the traffic type is Egress:
231+
- **Reverse**: true
232+
- **Source Address**: The VPC Tier CIDR
233+
- **Source Port**: 1-65535
234+
- **Destination Address**: The ACL rule CIDR
235+
- **Destination Port**: X-Y, where:
236+
- *X*: The ACL rule start port
237+
- *Y*: The ACL rule end port

0 commit comments

Comments
 (0)